/* Teams defines the public grid: one outer edge for every public surface. */
@media(pointer:fine) { html { scrollbar-gutter:stable; } }
:root { --public-width:80%; --public-max-width:2400px; }
@media(max-width:640px) { :root { --public-width:88%; } }
.public-container,.marketing-container,.pf-wrap,.wb-shell {
  width:min(var(--public-width),var(--public-max-width));
  max-width:var(--public-max-width);
  margin-inline:auto;
  padding-inline:0;
}
.public-container .public-container { width:100%; }
.wrap { width:min(var(--public-width),var(--public-max-width)); }
.public-navigation,.topbar {
  top:0; left:0; right:0; width:100%; border:0;
  border-bottom:1px solid #dce4f0; border-radius:0;
  background:#f7f9fd; box-shadow:none;
}
.public-navigation > div,.topbar > .wrap {
  width:min(var(--public-width),var(--public-max-width));
  max-width:var(--public-max-width); padding-inline:0;
}
.public-navigation #mobile-menu { border-radius:0; }
.public-navigation-scrolled { box-shadow:0 3px 16px rgb(9 19 39 / 5%); }
.public-navigation .brand-lockup { gap:10px; }
.public-navigation [aria-label="Search the site"] { min-height:44px; min-width:44px; justify-content:center; padding:10px; border:0; background:transparent; }
@media(min-width:1200px) { .public-navigation a { white-space:nowrap; } }
/* Useful visual depth on a few decision-making pages, with no scroll script. */
.visual-hero { background:radial-gradient(ellipse at 85% 25%,#dbe7ff,transparent 60%),#f3f6fc; }
.visual-hero-layout { display:grid; grid-template-columns:1.1fr 1fr; align-items:center; gap:clamp(24px,5vw,88px); }
.visual-hero-layout > * { min-width:0; }
.visual-hero-layout h1 { font-size:clamp(34px,3.8vw,64px); line-height:1.08; letter-spacing:-.05em; }
.visual-hero-layout p { max-width:55ch; }
.academy-graphic { position:relative; isolation:isolate; border:1px solid #cad9f0; border-radius:24px; padding:24px; background:linear-gradient(145deg,#fff,#e9f0fc); box-shadow:0 22px 65px #25487c15; overflow:hidden; }
.academy-graphic svg { display:block; width:100%; height:auto; }
.academy-graphic figcaption { color:#435e86; font-size:14px; line-height:1.6; margin-top:12px; }
.graphic-caption-title { display:block; color:#183864; font-weight:650; }
.contact-content { background:#eaf0f8; }
.contact-content .contact-card { background:#fff; border:1px solid #cbd8e9; box-shadow:0 8px 30px #1b365917; }
.contact-content .contact-method { background:linear-gradient(145deg,#fff,#f6f9ff); border-top:3px solid #5d88dc; }
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
  .academy-graphic { transition:transform .45s ease,box-shadow .45s ease; }
  .academy-graphic:hover { transform:perspective(1000px) rotateX(2deg) rotateY(-3deg) translateY(-3px); box-shadow:0 28px 65px #25487c25; }
  .academy-graphic .graphic-orbit { transform-origin:250px 155px; animation:graphic-orbit-intro 1.2s ease-out both; }
  @keyframes graphic-orbit-intro { from { transform:rotate(-15deg) scale(.94); opacity:.5; } to { transform:rotate(0) scale(1); opacity:1; } }
}
@media(max-width:900px) { .visual-hero-layout { grid-template-columns:1fr; } .academy-graphic { max-width:600px; width:100%; margin-inline:auto; } }
@media(max-width:640px) { .academy-graphic { padding:16px; border-radius:18px; } }
@media(forced-colors:active) { .academy-graphic,.contact-content .contact-card { border:1px solid CanvasText; } }

.curriculum-map-mobile { display:none; }
@media(max-width:900px) { .curriculum-map-desktop { display:none; } .curriculum-map-mobile { display:block; } .curriculum-map-mobile .academy-graphic { margin-top:16px; } }

/* A compact embedded masthead. Its fixed position keeps page content stationary. */
.public-nav-row { height:var(--nav-height); transition:height .22s ease; }
.public-navigation-scrolled .public-nav-row { height:52px; }
.public-nav-brand-group { gap:clamp(16px,2vw,36px); }
.public-nav-links { gap:2px; }
.public-nav-links > a,.explore-trigger { display:inline-flex; align-items:center; gap:5px; padding:10px 9px; min-height:44px; color:#26354c; font-size:14px; font-weight:550; border-radius:9px; transition:background .18s,color .18s; }
.public-nav-links > a:hover,.explore-trigger:hover,.explore-trigger[aria-expanded=true] { background:#e8eef9; color:#184cc8; }
.explore-trigger { cursor:pointer; border:0; }
.explore-trigger svg { transition:transform .2s; }
.explore-trigger[aria-expanded=true] svg { transform:rotate(180deg); }
.public-navigation .brand-lockup { transform-origin:left center; transition:transform .22s ease; }
.public-navigation-scrolled .brand-lockup { transform:scale(.88); }
.public-navigation #mobile-menu { max-height:calc(100dvh - var(--nav-height)); }
.public-navigation-scrolled #mobile-menu { max-height:calc(100dvh - 52px); }
.explore-panel { position:absolute; top:100%; left:0; right:0; padding-top:8px; }
.explore-panel[hidden] { display:none; }
.explore-panel-inner { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)) 1.1fr; gap:20px; width:100%; padding:24px; border:1px solid #d5dfee; border-radius:20px; background:#f8faff; box-shadow:0 24px 70px #14244424; max-height:calc(100dvh - 100px); overflow:auto; }
.explore-group > p { display:flex; align-items:center; gap:9px; font-size:14px; font-weight:650; color:#4c6283; margin:0 0 12px; }
.explore-group > p svg { width:22px; height:22px; color:#3465d9; flex-shrink:0; }
.public-navigation .explore-group a { display:flex; align-items:center; justify-content:space-between; gap:8px; white-space:normal; min-height:44px; padding:8px; margin-inline:-8px; border-radius:8px; font-size:15px; color:#24364f; }
.explore-group a:hover { background:#e9effb; color:#184cc8; }
.public-navigation .explore-feature { display:flex; flex-direction:column; align-items:flex-start; white-space:normal; gap:9px; padding:20px; border:1px solid #b8d0ff; border-radius:14px; background:linear-gradient(145deg,#e3ecff,#e0f7f5); color:#173b75; font-size:14px; line-height:1.5; }
.explore-feature:hover { border-color:#477ee7; }
.explore-feature strong { font-size:18px; line-height:1.2; }
.explore-feature-label { font-size:12px; text-transform:uppercase; letter-spacing:.08em; }
.explore-path-art { width:100%; color:#5181c6; }
.explore-path-art svg { display:block; width:100%; height:65px; }
.topbar > .wrap { transition:padding .22s ease; }
.topbar.public-navigation-scrolled > .wrap { padding-block:5px; }
@media(min-width:1280px) { .public-navigation-scrolled .public-nav-row { height:60px; } .public-navigation-scrolled #mobile-menu { max-height:calc(100dvh - 60px); } }

/* The native video stays in the same box before, during and after playback. */
.homepage-video-player { display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:contain; background:#020610; border-radius:10px; }
.homepage-video-player:fullscreen { width:100%; height:100%; max-height:none; aspect-ratio:auto; }

@media(prefers-reduced-motion:reduce) {
  .public-nav-row,.public-navigation .brand-lockup,.explore-trigger svg,.topbar > .wrap { transition:none; }
}

.public-nav-tools > button[aria-controls="mobile-menu"] { margin-right:0; }

/* Shared navigation primitives also work in the standalone Teams document. */
:root { --nav-height:56px; }
@media(min-width:1024px) { :root { --nav-height:64px; } }
@media(min-width:1280px) { :root { --nav-height:80px; } }
.public-nav-row,.public-nav-brand-group,.public-nav-tools { display:flex; align-items:center; }
.public-nav-row { justify-content:space-between; }
.public-nav-tools { gap:8px; }
.public-nav-links > a svg { flex-shrink:0; opacity:.7; }
.public-navigation .public-nav-links > a::after,.public-navigation .explore-group a::after,.public-navigation .teams-mobile-panel a::after { content:none; }
.public-navigation .explore-group a:hover { box-shadow:inset 3px 0 #7598e9; }
.teams-navigation.topbar > .wrap { position:relative; padding-block:0; }
.teams-navigation { z-index:50; }
.teams-navigation .brand { gap:10px; flex-shrink:0; min-height:44px; transform-origin:left center; transition:transform .22s ease; }
.teams-navigation.public-navigation-scrolled .brand { transform:scale(.88); }
.teams-desktop-nav,.teams-desktop-auth { display:none; }
.teams-navigation summary { list-style:none; cursor:pointer; }
.teams-navigation summary::-webkit-details-marker { display:none; }
.teams-navigation details[open] > .explore-trigger { background:#e8eef9; color:#184cc8; }
.teams-navigation details[open] > .explore-trigger svg { transform:rotate(180deg); }
.teams-navigation .teams-nav-signin { color:#26354c; font-size:14px; min-height:44px; display:inline-flex; align-items:center; }
.teams-navigation .teams-nav-signup { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:10px 14px; background:#245be8; border-radius:8px; color:#fff; font-size:14px; font-weight:650; box-shadow:0 3px 8px #245be82b; }
.teams-mobile-nav > summary { display:flex; align-items:center; justify-content:center; width:48px; height:48px; }
.teams-mobile-nav > summary svg { width:24px; height:24px; }
.teams-mobile-panel { position:absolute; top:100%; left:0; right:0; overflow:auto; background:#fff; border:1px solid #dce4f0; padding:12px; box-shadow:0 16px 28px #172b4c16; }
.teams-mobile-panel > a,.teams-mobile-panel > details > summary { display:flex; align-items:center; gap:10px; min-height:44px; padding:10px 12px; font-size:16px; color:#26354c; }
.teams-mobile-explore { padding:16px; background:#f3f6fc; border-radius:12px; }
.teams-mobile-explore .explore-group { margin-bottom:14px; }
.teams-mobile-auth { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px; border-top:1px solid #dce4f0; }
@media(min-width:1280px) { .teams-desktop-nav,.teams-desktop-auth { display:flex; align-items:center; } .teams-desktop-auth { gap:16px; } .teams-mobile-nav { display:none; } }
#public-search-dialog { padding:24px; margin:auto; width:min(640px,90vw); max-height:80dvh; overflow:auto; color:#24364f; background:#f8faff; border:1px solid #cedbee; border-radius:18px; box-shadow:0 24px 80px #071c4440; }
#public-search-dialog::backdrop { background:#07132988; }
.teams-search-top { display:flex; align-items:center; justify-content:space-between; font-weight:650; }
.teams-search-top button { width:44px; height:44px; display:grid; place-items:center; border:0; border-radius:8px; background:#e8eef9; }
#teams-search-input { width:100%; min-height:48px; padding:12px; margin:16px 0; border:1px solid #bdcce2; border-radius:10px; font:inherit; background:#fff; }
#teams-search-status { font-size:14px; color:#526883; margin-bottom:8px; }
#teams-search-results a { display:flex; flex-direction:column; gap:4px; min-height:44px; padding:12px; border-radius:10px; color:#24364f; }
#teams-search-results a:hover { background:#e8eef9; }
#teams-search-results span { color:#526883; font-size:14px; }
@media(prefers-reduced-motion:reduce) { .teams-navigation .brand { transition:none; } }
.public-navigation { font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; }
.public-nav-row { width:100%; }
.teams-navigation details:not([open]) > .explore-panel,
.teams-navigation details:not([open]) > .teams-mobile-panel { display:none; }
/* Shared typography and text-only actions for the About and Contact pages. */
.page-kicker { color:#245be8; font-size:13px; font-weight:650; letter-spacing:.14em; text-transform:uppercase; margin-bottom:18px; }
.page-lead { color:#52647e; font-size:18px; line-height:1.7; max-width:54ch; }
.page-actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-top:28px; }
.page-primary,.page-secondary { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:12px 20px; border-radius:10px; font-size:14px; font-weight:650; transition:background .18s,box-shadow .18s; }
.page-primary { background:#245be8; color:#fff; border:1px solid #245be8; }
.page-primary:hover { background:#1748bd; box-shadow:0 6px 18px #245be82a; }
.page-secondary { border:1px solid #bdcce2; color:#243f67; background:#fff; }
.page-secondary:hover { background:#eaf0fa; }
@media(max-width:600px) { .page-lead { font-size:15px; } .page-primary,.page-secondary { font-size:15px; padding:11px 15px; } }

