:root {
  --navy:#062a46; --navy-2:#0b456e; --cyan:#0a8fb2; --cyan-light:#e9f8fb;
  --green:#2b8a65; --red:#b4233d; --amber:#a56500; --ink:#15202b;
  --muted:#5b6874; --line:#dce3e8; --paper:#fff; --background:#f3f7f9;
  --shadow:0 16px 38px rgba(6,42,70,.12);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
* { box-sizing:border-box; }
html { min-height:100%; background:var(--background); color:var(--ink); scroll-behavior:smooth; }
body { margin:0; min-height:100%; color:var(--ink); line-height:1.65; background:radial-gradient(circle at 90% 0%,rgba(10,143,178,.13),transparent 28rem),linear-gradient(180deg,#f9fcfd 0,var(--background) 36rem); }
a { color:var(--navy-2); text-decoration-thickness:1px; text-underline-offset:3px; }
a:hover { color:var(--cyan); }
.skip { position:fixed; left:-9999px; top:.75rem; z-index:100; border-radius:9px; background:var(--navy); color:#fff; padding:.65rem .9rem; }
.skip:focus { left:.75rem; }
.topbar { background:rgba(255,255,255,.94); border-bottom:1px solid rgba(6,42,70,.11); position:sticky; top:0; z-index:10; backdrop-filter:blur(14px); }
.topbar-inner { max-width:1280px; margin:0 auto; padding:.85rem 1.4rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.brand { display:flex; align-items:center; gap:1rem; text-decoration:none; min-width:0; }
.brand img { width:156px; height:48px; object-fit:contain; object-position:left center; }
.brand-copy { border-left:1px solid var(--line); padding-left:1rem; line-height:1.05; }
.brand-copy strong { display:block; font-size:1.15rem; color:var(--navy); letter-spacing:.02em; }
.brand-copy span { color:var(--muted); font-size:.78rem; text-transform:uppercase; letter-spacing:.1em; }
.service-nav { display:flex; align-items:center; gap:.45rem; flex-wrap:wrap; justify-content:flex-end; }
.service-nav a { text-decoration:none; font-weight:650; font-size:.9rem; padding:.55rem .72rem; border-radius:999px; }
.service-nav a:hover,.service-nav a.active { background:var(--cyan-light); color:var(--navy-2); }
.service-nav .admin-link { background:var(--navy); color:#fff; }
.service-nav .admin-link:hover { background:var(--navy-2); color:#fff; }
.shell { max-width:1280px; margin:0 auto; padding:2rem 1.4rem 4rem; }
.docs-layout { display:grid; grid-template-columns:minmax(230px,270px) minmax(0,900px); gap:1.5rem; align-items:start; justify-content:center; }
.home .shell { max-width:1600px; }
.home .docs-layout { grid-template-columns:minmax(220px,250px) minmax(0,760px) minmax(280px,340px); }
.home-rail { position:sticky; top:94px; min-width:0; }
.sidebar { position:sticky; top:94px; max-height:calc(100vh - 112px); overflow:auto; scrollbar-width:thin; }
.sidebar-card,.content-card { background:var(--paper); border:1px solid rgba(6,42,70,.1); border-radius:20px; box-shadow:0 9px 24px rgba(6,42,70,.065); }
.sidebar-card { padding:1rem; }
.sidebar-heading { display:flex; align-items:center; gap:.75rem; padding:.25rem .35rem 1rem; border-bottom:1px solid var(--line); }
.sidebar-heading strong { display:block; color:var(--navy); font-size:.94rem; }
.status-dot { width:.7rem; height:.7rem; flex:0 0 auto; background:#58d39c; border-radius:50%; box-shadow:0 0 0 .28rem rgba(88,211,156,.18); }
.stage-badge { display:inline-block; margin-top:.25rem; padding:.15rem .45rem; border-radius:999px; background:var(--cyan-light); color:var(--navy-2); font-size:.65rem; line-height:1.35; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.sidebar nav { margin-top:.55rem; }
.sidebar .nav-single { margin-bottom:.18rem; }
.sidebar .nav-section { margin:0; padding:0; border:0; border-radius:9px; background:transparent; }
.sidebar .nav-section + .nav-section { margin-top:.18rem; }
.sidebar .nav-section summary { padding:.52rem .58rem; border-radius:9px; color:var(--muted); font-size:.7rem; font-weight:850; line-height:1.2; letter-spacing:.11em; text-transform:uppercase; }
.sidebar .nav-section summary:hover { background:var(--cyan-light); color:var(--navy-2); }
.sidebar .nav-section[open] summary { color:var(--navy); }
.sidebar .nav-section > div { padding:.15rem 0 .45rem; }
.mobile-nav nav h2 { margin:.2rem .55rem .4rem; color:var(--muted); font-size:.68rem; line-height:1.2; letter-spacing:.12em; text-transform:uppercase; }
.sidebar nav a,.mobile-nav nav a { display:block; padding:.48rem .58rem; border-radius:9px; color:var(--navy-2); font-size:.86rem; line-height:1.3; text-decoration:none; }
.sidebar nav a:hover,.mobile-nav nav a:hover { background:var(--cyan-light); color:var(--cyan); }
.sidebar nav a[aria-current="page"],.mobile-nav nav a[aria-current="page"] { background:var(--navy); color:#fff; font-weight:750; box-shadow:0 5px 14px rgba(6,42,70,.16); }
.content-card { min-width:0; padding:clamp(1.4rem,4vw,3.1rem); }
.eyebrow { color:var(--cyan); text-transform:uppercase; letter-spacing:.13em; font-size:.75rem; font-weight:800; margin:0 0 .8rem; }
.content-card h1,.content-card h2,.content-card h3,.content-card h4 { color:var(--navy); line-height:1.18; }
.content-card h1 { margin:.1rem 0 1.2rem; font-size:clamp(2.25rem,5vw,4rem); line-height:1.02; letter-spacing:-.045em; }
.content-card h2 { margin:2.4rem 0 .8rem; padding-top:.35rem; font-size:clamp(1.5rem,3vw,2rem); letter-spacing:-.025em; }
.content-card h3 { margin:1.8rem 0 .6rem; font-size:1.25rem; }
.content-card > p:first-of-type:not(.eyebrow),.content-card h1 + p { color:var(--muted); font-size:1.08rem; line-height:1.72; }
.content-card p,.content-card li { max-width:76ch; }
.content-card li + li { margin-top:.34rem; }
.content-card img,.content-card video { display:block; max-width:100%; height:auto; border-radius:14px; }
.course-video-hero { margin:1.25rem 0 3rem; padding:clamp(1.15rem,3vw,2rem); overflow:hidden; border-radius:20px; background:linear-gradient(145deg,var(--navy) 0,var(--navy-2) 72%,#096d86 100%); color:#fff; box-shadow:var(--shadow); }
.content-card .course-video-hero h2 { margin:.15rem 0 .45rem; padding:0; color:#fff; font-size:clamp(1.7rem,4vw,2.5rem); }
.content-card .course-video-hero > p { max-width:68ch; margin:.35rem 0 1.25rem; color:rgba(255,255,255,.88); font-size:1rem; line-height:1.55; }
.content-card .course-video-hero .course-video-kicker { margin:0; color:#8ee7f2; font-size:.76rem; font-weight:850; letter-spacing:.11em; text-transform:uppercase; }
.content-card .course-video-hero video { width:100%; aspect-ratio:16/9; border:1px solid rgba(255,255,255,.28); border-radius:14px; background:#02131f; box-shadow:0 18px 38px rgba(0,0,0,.28); }
.course-video-pending { margin-top:1.25rem; padding:1.1rem 1.2rem; border:1px solid rgba(255,255,255,.32); border-radius:14px; background:rgba(2,19,31,.58); }
.course-video-pending strong { display:block; margin-bottom:.35rem; color:#8ee7f2; font-size:1.08rem; }
.content-card .course-video-hero .course-video-pending p { margin:0; color:#fff; }
.video-course-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin:1rem 0 2.5rem; }
.content-card .video-course-card { overflow:hidden; border:1px solid rgba(6,42,70,.12); border-radius:16px; background:#fff; color:var(--navy); box-shadow:0 8px 20px rgba(6,42,70,.08); text-decoration:none; transition:transform .16s ease,box-shadow .16s ease; }
.content-card .video-course-card:hover { transform:translateY(-2px); box-shadow:0 14px 30px rgba(6,42,70,.14); }
.content-card .video-course-card img { width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:0; }
.video-course-card span { display:flex; align-items:center; justify-content:space-between; gap:.75rem; padding:.8rem .9rem; }
.video-course-card small { flex:0 0 auto; color:var(--cyan); font-weight:800; }
.people-figure { float:right; width:min(42%,340px); margin:0 0 1.5rem 2rem; overflow:hidden; border:1px solid rgba(6,42,70,.1); border-radius:18px; background:#fff; box-shadow:var(--shadow); }
.people-figure img { width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center 58%; border-radius:0; }
.people-figure figcaption,.research-figure figcaption { padding:.75rem .9rem; color:var(--muted); font-size:.8rem; line-height:1.45; }
.home .content-card h2 { clear:both; }
.research-figure { clear:both; margin:2.5rem 0 0; overflow:hidden; border:1px solid rgba(6,42,70,.1); border-radius:18px; background:#fff; box-shadow:0 9px 24px rgba(6,42,70,.065); }
.research-figure img { width:100%; border-radius:0; }
.content-card hr { border:0; border-top:1px solid var(--line); margin:2rem 0; }
.content-card a { font-weight:600; }
.expedition-callout { position:relative; overflow:hidden; margin:1.6rem 0 2.5rem; padding:clamp(1.35rem,3vw,2rem); border-radius:20px; background:linear-gradient(140deg,var(--navy) 0,var(--navy-2) 70%,#096d86 100%); color:#fff; box-shadow:var(--shadow); }
.home-rail .expedition-callout { margin:0; padding:1.5rem; }
.expedition-callout::after { content:""; position:absolute; width:210px; height:210px; right:-95px; bottom:-120px; border:32px solid rgba(142,231,242,.13); border-radius:50%; }
.expedition-callout h2 { position:relative; z-index:1; margin:.25rem 0 .65rem; padding:0; color:#fff; font-size:clamp(1.55rem,2.3vw,2.25rem); line-height:1.08; }
.expedition-callout > p { position:relative; z-index:1; max-width:68ch; color:rgba(255,255,255,.9); line-height:1.6; }
.expedition-callout .expedition-kicker { margin:0; color:#8ee7f2; font-size:.76rem; font-weight:850; letter-spacing:.11em; text-transform:uppercase; }
.expedition-actions { position:relative; z-index:1; display:flex; align-items:center; flex-wrap:wrap; gap:.75rem 1rem; margin:1.2rem 0; }
.expedition-actions a { color:#fff; font-weight:800; }
.expedition-actions .expedition-primary { padding:.68rem .9rem; border-radius:10px; background:#fff; color:var(--navy); text-decoration:none; }
.expedition-actions .expedition-primary:hover { background:#dff7fa; color:var(--navy); }
.expedition-callout .expedition-privacy { margin-bottom:0; color:rgba(255,255,255,.76); font-size:.88rem; }
.path-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin:1.15rem 0 2.4rem; }
.path-card { position:relative; display:flex; min-height:310px; flex-direction:column; overflow:hidden; padding:1.45rem; border:1px solid rgba(6,42,70,.1); border-radius:18px; background:linear-gradient(150deg,#fff 0,#f6fbfc 100%); box-shadow:0 9px 24px rgba(6,42,70,.065); }
.path-card::after { content:""; position:absolute; width:150px; height:150px; right:-70px; bottom:-80px; border:25px solid rgba(10,143,178,.08); border-radius:50%; }
.path-card.development-path::after { border-color:rgba(6,42,70,.07); }
.path-number { align-self:flex-start; padding:.24rem .55rem; border-radius:999px; background:var(--cyan-light); color:var(--cyan); font-size:.72rem; font-weight:850; letter-spacing:.08em; }
.path-label { margin:1rem 0 .25rem; color:var(--cyan); font-size:.74rem; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.path-card h3 { margin:.2rem 0 .65rem; font-size:1.35rem; }
.path-card p:not(.path-label) { color:var(--muted); line-height:1.55; }
.path-action { position:relative; z-index:1; margin-top:auto; align-self:flex-start; color:var(--navy); font-weight:800!important; text-decoration:none; }
.path-action:hover { color:var(--cyan); }
code { border-radius:5px; background:#eef3f6; color:#173b54; padding:.12rem .3rem; font: .9em ui-monospace,SFMono-Regular,Consolas,monospace; }
pre { margin:1.2rem 0; padding:1rem 1.15rem; overflow:auto; border:1px solid #cfdae0; border-left:4px solid var(--cyan); border-radius:0 12px 12px 0; background:#edf3f6; box-shadow:inset 0 1px 1px rgba(6,42,70,.03); }
pre code { padding:0; background:transparent; color:#15364b; }
blockquote { margin:1.4rem 0; padding:.9rem 1.1rem; border-left:4px solid var(--cyan); border-radius:0 10px 10px 0; background:var(--cyan-light); color:var(--navy); }
blockquote > :first-child { margin-top:0; } blockquote > :last-child { margin-bottom:0; }
table { display:block; width:100%; overflow-x:auto; border-collapse:collapse; font-size:.91rem; }
th,td { padding:.72rem .62rem; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
th { color:var(--navy); background:#f7fafb; font-size:.75rem; text-transform:uppercase; letter-spacing:.06em; }
tr:hover td { background:#fbfdfe; }
details { margin:1rem 0; padding:.8rem 1rem; border:1px solid var(--line); border-radius:12px; background:#fbfdfe; }
summary { color:var(--navy); font-weight:750; cursor:pointer; }
.mobile-nav { display:none; }
footer { max-width:1280px; margin:0 auto; padding:1.4rem; border-top:1px solid rgba(6,42,70,.1); color:var(--muted); display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-size:.88rem; }
footer p { margin:0; }
@media (max-width:1180px) {
  .home .docs-layout { grid-template-columns:220px minmax(0,1fr); }
  .home-rail { grid-column:2; position:static; }
}
@media (max-width:980px) {
  .docs-layout { grid-template-columns:220px minmax(0,1fr); }
  .content-card { padding:1.6rem; }
}
@media (max-width:760px) {
  .topbar-inner { align-items:flex-start; flex-direction:column; }
  .brand img { width:125px; }
  .brand-copy { display:none; }
  .service-nav { justify-content:flex-start; }
  .shell { padding:1rem; }
  .sidebar { display:none; }
  .docs-layout { display:block; }
  .home-rail { margin-top:1rem; }
  .mobile-nav { display:block; margin:0 0 1rem; padding:.72rem 1rem; border:1px solid rgba(6,42,70,.1); border-radius:14px; background:#fff; box-shadow:0 9px 24px rgba(6,42,70,.05); }
  .mobile-nav nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; padding-top:1rem; }
  .content-card h1 { font-size:clamp(2rem,11vw,3rem); }
  .people-figure { float:none; width:100%; max-width:430px; margin:0 auto 1.5rem; }
  .people-figure img { aspect-ratio:5/4; object-position:center 57%; }
  .path-grid { grid-template-columns:1fr; }
  .video-course-grid { grid-template-columns:1fr; }
  .path-card { min-height:260px; }
}
@media (max-width:480px) {
  .service-nav a { padding:.45rem .55rem; font-size:.82rem; }
  .mobile-nav nav { grid-template-columns:1fr; }
  .content-card { padding:1.25rem; border-radius:16px; }
}
@media print {
  .topbar,.sidebar,.mobile-nav,footer,.skip { display:none!important; }
  body { background:#fff; }
  .shell { max-width:none; padding:0; }
  .docs-layout { display:block; }
  .content-card { border:0; box-shadow:none; padding:0; }
}