@font-face{font-family:"Archivo";src:url(/assets/fonts/archivo.883f111e6e.woff2) format("woff2");font-weight:400 700;font-stretch:100% 125%;font-display:swap}

:root{
  --night:#061627; --deep:#0A1E33; --panel:#0B2036; --rule:#1C3A56; --line:#23486A;
  --frost:#E6EEF4; --haze:#93AABD; --coolant:#5FD4CF; --signal:#E7B462;
  --gutter:clamp(20px,4vw,64px);
  --font:"Archivo","Helvetica Neue",Helvetica,sans-serif;
  color-scheme:dark;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
/* The section is a dark brand surface in both viewer themes. */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){ --night:#061627; --frost:#E6EEF4; --haze:#93AABD; }
}
:root[data-theme="dark"]{ --night:#061627; --frost:#E6EEF4; --haze:#93AABD; }
html{background:var(--night)}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--night);color:var(--frost);font-family:var(--font);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}

/* ---------- section + pinned stage ---------- */
.facility{position:relative;height:560vh}
.stage{position:sticky;top:calc(64px + env(safe-area-inset-top,0px));
  height:calc(100vh - 64px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));
  height:calc(100svh - 64px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));
  overflow:hidden;isolation:isolate}
.rings{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.rings-back{z-index:0}
.rings-front{z-index:3}
.ring{fill:none;stroke:#17334D;stroke-width:1;transition:stroke .6s}
.ring.is-lit{stroke:#2F6A83}
.ring-label{font-size:11px;letter-spacing:.04em;fill:#4F7190;transition:fill .6s}
.ring-label.is-lit{fill:var(--coolant)}
.building{position:absolute;z-index:2;touch-action:pan-y}
.bsvg{display:block;width:100%;height:auto;overflow:visible}
.overlay{position:absolute;inset:0;width:100%;height:100%;z-index:6;pointer-events:none;overflow:visible}
.leader{fill:none;stroke:var(--coolant);stroke-width:1.2;opacity:.9}
.tip{fill:var(--coolant)}
.hot circle{fill:var(--coolant)}
.hot .pulse{fill:none;stroke:var(--coolant);stroke-width:1.2;transform-box:fill-box;transform-origin:center;
  animation:pulse 1.8s ease-out infinite}
@keyframes pulse{from{transform:scale(1);opacity:.9}to{transform:scale(3.6);opacity:0}}

/* ---------- heading ---------- */
.head{position:absolute;left:var(--gutter);top:clamp(28px,7vh,72px);z-index:7;max-width:36rem}
.head h2{margin:0 0 12px;font-weight:600;font-stretch:125%;font-size:clamp(28px,2.7vw,40px);
  line-height:1.06;letter-spacing:-.012em}
.head p{margin:0;font-size:15px;line-height:1.55;color:var(--haze);max-width:40ch}

/* ---------- step rail ---------- */
.rail{position:absolute;left:var(--gutter);top:52%;transform:translateY(-40%);z-index:7}
.rail ol{list-style:none;margin:0;padding:0 0 0 24px}
.rail-track,.rail-fill{position:absolute;left:0;top:8px;bottom:8px;width:1px}
.rail-track{background:var(--rule)}
.rail-fill{background:var(--coolant);transform-origin:top;transform:scaleY(0)}
.step{position:relative;display:flex;align-items:center;gap:14px;min-height:44px;padding:4px 0;
  background:none;border:0;color:var(--haze);font:inherit;text-align:left;cursor:pointer}
.step-n{display:inline-block;min-width:2ch;font-size:13px;font-weight:500;font-stretch:125%;
  font-variant-numeric:tabular-nums;transition:font-size .4s cubic-bezier(.3,0,.2,1),color .4s}
.step-l{font-size:14px;transition:color .4s}
.step:hover .step-l{color:var(--frost)}
.step[aria-current="step"] .step-n{font-size:26px;font-weight:700;color:var(--frost)}
.step[aria-current="step"] .step-l{color:var(--frost)}
.step[aria-current="step"]::before{content:"";position:absolute;left:-28.5px;top:50%;width:9px;height:9px;
  margin-top:-4.5px;border-radius:50%;background:var(--coolant);box-shadow:0 0 0 4px rgba(73,119,203,.16)}
.step:focus-visible{outline:2px solid var(--coolant);outline-offset:4px;border-radius:6px}

/* ---------- orbiting spec cards ---------- */
.orbit{position:absolute;inset:0}
.orb{position:absolute;left:0;top:0;display:flex;align-items:center;gap:10px;padding:7px 14px 7px 7px;
  background:var(--panel);border:1px solid #1D3C58;border-radius:12px;white-space:nowrap;
  will-change:transform,opacity;transition:border-color .5s,background-color .5s,box-shadow .5s}
.orb-ic{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:#10304A;
  color:#9DB6CA;transition:background-color .5s,color .5s}
.orb-t{display:block;font-size:13px;font-weight:600;line-height:1.2}
.orb-s{display:block;font-size:11.5px;line-height:1.35;color:var(--signal)}
.orb.is-on{border-color:rgba(73,119,203,.5);background:#0D2A40;
  box-shadow:0 0 0 1px rgba(73,119,203,.1),0 14px 34px -14px rgba(73,119,203,.45)}
.orb.is-on .orb-ic{background:rgba(73,119,203,.14);color:var(--coolant)}

/* ---------- callout ---------- */
.callout{position:absolute;right:var(--gutter);top:50%;transform:translateY(-34%);z-index:7;
  width:min(372px,30vw);padding:24px 24px 18px;background:var(--deep);border:1px solid #1F4060;
  border-radius:20px;box-shadow:0 40px 90px -40px rgba(0,0,0,.7)}
.panels{display:grid}
.panel{grid-area:1/1;opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .35s,transform .45s,visibility 0s .45s}
.panel.is-active{opacity:1;visibility:visible;transform:none;
  transition:opacity .5s .18s,transform .6s .18s,visibility 0s}
.pill{display:inline-flex;margin:0 0 14px;padding:4px 11px;border-radius:999px;font-size:12px;font-weight:600;
  color:var(--signal);background:rgba(231,180,98,.1);border:1px solid rgba(231,180,98,.3)}
.panel h3{margin:0 0 10px;font-size:22px;line-height:1.18;font-weight:600;font-stretch:112%;letter-spacing:-.005em}
.panel .body{margin:0 0 18px;font-size:15px;line-height:1.55;color:var(--haze)}
.ring-row{display:flex;align-items:center;gap:10px;margin:0;padding-top:14px;border-top:1px solid var(--rule);
  font-size:12.5px;color:var(--haze)}
.rg{fill:none;stroke:#2A4A66;stroke-width:1.2}
.rg.on{stroke:var(--coolant)}
.specs{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:0;padding:0}
.fine{position:absolute;left:var(--gutter);bottom:clamp(16px,4vh,40px);z-index:7;max-width:62ch;margin:0;
  font-size:12px;line-height:1.5;color:#6F8BA3}

/* ---------- building ---------- */
.bsvg polygon,.bsvg ellipse{stroke:#28537A;stroke-width:1;stroke-linejoin:round;transition:fill .6s,stroke .6s}
.ft{fill:#16395A}.fr{fill:#0F2B45}.fl{fill:#0C243A}
.wall-in{fill:#09203A}.floor{fill:#0A2238}
.hall-floor{fill:#0D2941;stroke:#1C4061}
.rack .ft{fill:#1C4668}.rack .fr{fill:#12334F}.rack .fl{fill:#0F2C45}
.room .ft,.qroom .ft{fill:#143A5A}
.pad{fill:#0A1F33;stroke:#1C3A56;stroke-dasharray:3 4}
.wire,.pole{fill:none;stroke:#3A6A8E;stroke-width:1.5;stroke-linecap:round}
.pipe{fill:none;stroke:#28557A;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:stroke .6s}
.route{fill:none;stroke:#2C5B7E;stroke-width:1.6;stroke-dasharray:2 5}
.flow{fill:none;stroke:var(--coolant);stroke-width:2;stroke-dasharray:5 13;opacity:0;transition:opacity .5s}
.rib,.roof-line,.room-mark{fill:none;stroke:#1C3F5E;stroke-width:1}
.door{fill:#0A2034;stroke:#23496A}
.dish{fill:#1B4467;stroke:#4B7FA6}
.drum{fill:#1B4467;stroke:#4B7FA6}
.beam{stroke:var(--coolant);stroke-width:1;stroke-dasharray:2 6;opacity:0;transition:opacity .5s}
.cryo{fill:#0C2740;stroke:#4B7FA6}.cryo-core{fill:#1B4467}
.fan{fill:#0C2740;stroke:#3A6A8E}
.anchor{fill:none;stroke:none}
.roof-slab .ft{fill:#123452}

.is-lit{filter:url(#glow)}
.is-lit .ft{fill:#2C8A8F}.is-lit .fr{fill:#1E6A71}.is-lit .fl{fill:#17545C}
.is-lit polygon,.is-lit ellipse{stroke:#7FE6E0}
.is-lit .hall-floor{fill:#113C55}
.is-lit .pad{fill:#0C2A3E}
.is-lit .pipe,.is-lit .wire,.is-lit .pole{stroke:#3FA9AC}
.is-lit .flow{opacity:1;animation:flow 1.1s linear infinite}
.is-lit .beam{opacity:.75;animation:flow 1.6s linear infinite}
.is-lit .dish,.is-lit .drum,.is-lit .cryo-core{fill:#2C8A8F}
@keyframes flow{to{stroke-dashoffset:-36}}

#roof,#quantum{transition:transform .95s cubic-bezier(.65,0,.25,1)}
#roof .ft,#roof .fr,#roof .fl{transition:fill-opacity .7s,fill .6s,stroke .6s}
#roof > .sys{transition:opacity .6s}
#front-walls{transition:opacity .7s}
.exploded #roof{transform:translateY(-150px)}
.exploded #roof .roof-slab .ft,.exploded #roof .roof-slab .fr,.exploded #roof .roof-slab .fl{fill-opacity:.05;stroke:#34688E}
.exploded #roof .roof-line{opacity:.3}
.exploded #roof > .sys{opacity:.22}
.exploded #front-walls{opacity:.3}
[data-step="5"] #quantum{transform:translateY(-44px)}

/* ---------- after the section ---------- */
.next{min-height:60vh;display:grid;align-content:center;padding:0 var(--gutter);border-top:1px solid var(--rule)}
.next h2{margin:0;font-weight:600;font-stretch:125%;font-size:clamp(26px,2.6vw,38px);color:#3E5F7D}

/* ---------- mobile ---------- */
@media (max-width:860px){
  .facility{height:auto}
  .stage{position:relative;top:auto;height:auto;overflow:hidden;display:flex;flex-direction:column;
    padding:56px var(--gutter) 40px}
  .head{position:static;max-width:none;margin-bottom:20px}
  .rail{position:relative;top:auto;transform:none;left:auto;order:2;margin:0 calc(var(--gutter) * -1);
    overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .rail::-webkit-scrollbar{display:none}
  .rail ol{display:flex;gap:8px;padding:2px var(--gutter)}
  .rail-track,.rail-fill{display:none}
  .step{white-space:nowrap;gap:8px;padding:0 14px;border:1px solid var(--rule);border-radius:999px}
  .step-n,.step[aria-current="step"] .step-n{font-size:12px;font-weight:600}
  .step-l{font-size:13.5px}
  .step[aria-current="step"]{border-color:rgba(73,119,203,.6);background:rgba(73,119,203,.08)}
  .step[aria-current="step"]::before{display:none}
  .building{position:relative;order:3;width:100%;margin:8px 0 0}
  .orbit,.ring-label{display:none}
  .callout{position:relative;right:auto;top:auto;transform:none;order:4;width:auto;margin-top:4px}
  .specs{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;
    list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
  .specs li{padding:7px 11px;border:1px solid var(--line);border-radius:10px}
  .sp-t{display:block;font-size:13px;font-weight:600}
  .sp-s{display:block;font-size:11.5px;color:var(--signal)}
  .fine{position:static;order:5;margin-top:18px}
  .panel:not(.is-active){display:none}
  .panel.is-active{animation:panel-in .45s ease both}
}
@keyframes panel-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

@media (prefers-reduced-motion:reduce){
  .flow,.beam,.hot .pulse{animation:none!important}
  #roof,#quantum,#front-walls,.panel,.panel.is-active{transition-duration:.01s!important;transition-delay:0s!important}
}


/* ================= v2 tokens: light, navy ink, teal signal ================= */
:root{
  --night:#F2F5F7; --deep:#FFFFFF; --panel:#FFFFFF; --rule:#E1E7EC; --line:#D3DCE3;
  --frost:#061627; --haze:#44576A; --coolant:#4977CB; --signal:#2F5CAF;
  --ink:#061627; --ink-2:#44576A; --mute:#5F6F80; --teal:#4977CB; --teal-ink:#2F5CAF; --teal-soft:#E5ECFA;
  --lift:0 1px 0 rgba(6,22,39,.04),0 24px 48px -28px rgba(6,22,39,.30);
  --lift-sm:0 1px 0 rgba(6,22,39,.04),0 12px 28px -16px rgba(6,22,39,.26);
  --nav-h:64px;--wrap:1360px;--sec:clamp(104px,13vw,184px);
  --ease:cubic-bezier(.2,.75,.1,1);
  color-scheme:light;
}
html{background:var(--night)}
html:not(.lenis){scroll-behavior:smooth}
html{scroll-padding-top:calc(var(--nav-h) + env(safe-area-inset-top,0px))}
html.lenis,html.lenis body{height:auto}
@media (prefers-reduced-motion:reduce){html:not(.lenis){scroll-behavior:auto}}
body{font-size:16px;line-height:1.6;color:var(--ink);background:var(--night)}
a{color:inherit}
::selection{background:var(--teal-soft)}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:2px solid var(--teal);outline-offset:3px;border-radius:4px}
.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 4px rgba(73,119,203,.18)}

/* ---------- facility explorer, light ---------- */
.ring{stroke:#DCE3E9}.ring.is-lit{stroke:#AFC3EC}
.ring-label{fill:#A3B1BE}.ring-label.is-lit{fill:var(--teal-ink)}
.leader{stroke:var(--teal)}.tip,.hot circle{fill:var(--teal)}.hot .pulse{stroke:var(--teal)}
.head h2{font-weight:500;font-stretch:110%;letter-spacing:-.03em}
.head p{color:var(--ink-2)}
.step{color:var(--mute)}
.step:hover .step-l{color:var(--ink)}
.step[aria-current="step"] .step-n,.step[aria-current="step"] .step-l{color:var(--ink)}
.step[aria-current="step"] .step-n{font-weight:600}
.rail-track{background:#DCE3E9}
.orb{background:#fff;border:0;box-shadow:var(--lift-sm)}
.orb-ic{background:#EEF3F6;color:#5B6E80}
.orb-t{color:var(--ink)}
.orb-s{color:var(--teal-ink)}
.orb.is-on{background:#fff;border:0;box-shadow:0 0 0 1.5px rgba(73,119,203,.55),0 18px 36px -16px rgba(73,119,203,.5)}
.orb.is-on .orb-ic{background:var(--teal-soft);color:var(--teal-ink)}
.callout{background:rgba(255,255,255,.94);border:0;box-shadow:var(--lift);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.pill{color:var(--teal-ink);background:var(--teal-soft);border:0}
.panel h3{font-weight:600;font-stretch:108%}
.panel .body{color:var(--ink-2)}
.ring-row{border-top-color:var(--rule);color:var(--ink-2)}
.rg{stroke:#C9D3DC}.rg.on{stroke:var(--teal)}
.fine{color:var(--mute)}
.specs li{border-color:var(--rule);background:#fff}
.sp-s{color:var(--teal-ink)}

.bsvg polygon,.bsvg ellipse{stroke:#BCC8D2}
.ft{fill:#FFFFFF}.fr{fill:#E6ECF0}.fl{fill:#D8E0E7}
.wall-in{fill:#ECF1F4}.floor{fill:#F5F8FA}
.hall-floor{fill:#EDF2F5;stroke:#D5DEE5}
.rack .ft{fill:#FAFBFC}.rack .fr{fill:#CCD6DE}.rack .fl{fill:#B9C6D0}
.room .ft,.qroom .ft{fill:#FFFFFF}
.pad{fill:#EDF2F5;stroke:#CBD5DD}
.wire,.pole{stroke:#9FB0BE}
.pipe{stroke:#B6C4CF}
.route{stroke:#AFBDC8}
.flow,.beam{stroke:var(--teal)}
.rib,.roof-line,.room-mark{stroke:#D8E0E6}
.door{fill:#D5DEE5;stroke:#BCC8D2}
.dish,.drum{fill:#FAFBFC;stroke:#9FB0BE}
.cryo{fill:#E6ECF0;stroke:#9FB0BE}.cryo-core{fill:#C9D4DD}
.fan{fill:#DCE3E9;stroke:#AFBDC8}
.roof-slab .ft{fill:#FBFCFD}
.gshadow{fill:url(#gshade)}
.is-lit .ft{fill:#E5ECFA}.is-lit .fr{fill:#B9CBF0}.is-lit .fl{fill:#9CB5E6}
.is-lit polygon,.is-lit ellipse{stroke:#4977CB}
.is-lit .hall-floor{fill:#EAF0FB}
.is-lit .pad{fill:#EAF0FB}
.is-lit .pipe,.is-lit .wire,.is-lit .pole{stroke:var(--teal)}
.is-lit .dish,.is-lit .drum,.is-lit .cryo-core{fill:#B9CBF0}
.exploded #roof .roof-slab .ft,.exploded #roof .roof-slab .fr,.exploded #roof .roof-slab .fl{fill-opacity:.35;stroke:#C3CFD8}
.exploded #front-walls{opacity:.42}

/* ---------- intro ---------- */
.intro{position:fixed;inset:0;z-index:120;background:var(--night);display:none;flex-direction:column;justify-content:space-between;
  padding:calc(env(safe-area-inset-top,0px) + 22px) var(--gutter) calc(env(safe-area-inset-bottom,0px) + 22px)}
.js .intro{display:flex}
.intro.skip{display:none!important}
.intro-center{flex:1;display:grid;place-content:center;justify-items:center;gap:clamp(22px,3vh,36px)}
.intro-logo{width:clamp(150px,17vw,230px);height:auto;overflow:visible}
.intro-logo .md{transform:scale(0);transform-box:fill-box;transform-origin:center;transition:transform .7s cubic-bezier(.3,1.45,.5,1) var(--d)}
.intro.go .intro-logo .md{transform:scale(1)}
.intro-word{width:clamp(210px,22vw,300px);height:auto;opacity:0;transform:translateY(10px);transition:opacity .8s .8s,transform .9s .8s var(--ease)}
.intro.go .intro-word{opacity:1;transform:none}
.intro-foot{position:absolute;left:var(--gutter);bottom:calc(env(safe-area-inset-bottom,0px) + 22px);display:flex;align-items:center;gap:10px;margin:0;font-size:14px;font-weight:500;color:var(--mute)}
.intro.out{clip-path:inset(0 0 100% 0);transition:clip-path 1s cubic-bezier(.7,0,.2,1)}

/* ---------- custom cursor (only inside [data-cursor]) ---------- */
.cursor{position:fixed;left:0;top:0;z-index:130;pointer-events:none;width:0;height:0}
.cursor span{position:absolute;left:0;top:0;width:88px;height:88px;margin:-44px 0 0 -44px;border-radius:50%;background:var(--ink);color:#fff;
  display:grid;place-items:center;font-size:13px;font-weight:600;letter-spacing:.01em;transform:scale(0);transition:transform .35s var(--ease)}
.cursor.on span{transform:scale(1)}
.cursor.down span{transform:scale(.86)}
@media (pointer:fine){ [data-cursor]{cursor:none} }

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;padding-top:env(safe-area-inset-top,0px);transition:background-color .4s,box-shadow .4s,transform .5s var(--ease)}
.nav.is-solid{background:rgba(242,245,247,.82);box-shadow:0 1px 0 var(--rule);-webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4)}
.nav.hide{transform:translateY(-100%)}
.nav-in{height:var(--nav-h);display:flex;align-items:center;justify-content:space-between;gap:24px}
.mark{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}
.mark svg{display:block;height:clamp(24px,2.3vw,32px);width:auto}
.step[aria-current="step"]::before{box-shadow:0 0 0 4px rgba(73,119,203,.18)}
.nav-links{display:flex;align-items:center;gap:2px;list-style:none;margin:0;padding:0}
.nav-links a:not(.btn){position:relative;display:inline-flex;align-items:center;gap:4px;min-height:44px;padding:0 12px;font-size:14px;color:var(--ink-2);text-decoration:none;transition:color .3s}
.nav-links a:not(.btn)::after{content:"";position:absolute;left:12px;right:12px;bottom:10px;height:1.5px;background:var(--teal);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.nav-links a:not(.btn):hover{color:var(--ink)}
.nav-links a[aria-current="true"],.nav-links a[aria-current="page"]{color:var(--ink)}
.nav-links a[aria-current="true"]::after,.nav-links a[aria-current="page"]::after{transform:scaleX(1)}
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 24px;border-radius:999px;
  font:inherit;font-size:15px;font-weight:600;text-decoration:none;cursor:pointer;border:1px solid transparent;overflow:hidden;isolation:isolate;
  transition:color .4s var(--ease),border-color .4s}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;transform:translateY(101%);transition:transform .5s var(--ease)}
.btn:hover::before{transform:none}
.btn-ink{background:var(--ink);color:#fff}
.btn-ink::before{background:var(--teal)}
.btn-ink:hover{color:var(--ink)}
.btn-line{border-color:#C6D1DA;color:var(--ink)}
.btn-line::before{background:var(--ink)}
.btn-line:hover{color:#fff;border-color:var(--ink)}
.btn-light{border-color:rgba(255,255,255,.3);color:#fff}
.btn-light::before{background:#fff}
.btn-light:hover{color:var(--ink)}
.nav .btn{min-height:40px;padding:0 18px;font-size:14px}
.menu-btn{display:none;background:none;border:1px solid #C6D1DA;border-radius:999px;color:var(--ink);min-height:40px;padding:0 16px;font:inherit;font-size:14px;cursor:pointer}
.ext{width:12px;height:12px;flex:none}

/* ---------- shared type ---------- */
.sec{padding:var(--sec) 0;position:relative}
.sec-head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:48px;align-items:end;margin-bottom:clamp(56px,6vw,88px)}
.h2{margin:0;font-weight:500;font-stretch:110%;font-size:clamp(34px,4.6vw,68px);line-height:.98;letter-spacing:-.035em}
.h2.xl{font-size:clamp(44px,7vw,112px);line-height:.92}
.lede{margin:0;font-size:17.5px;line-height:1.6;color:var(--ink-2);max-width:44ch}
.note{margin:0;font-size:13px;line-height:1.55;color:var(--mute);max-width:70ch}
.st{display:flex;align-items:center;gap:8px;margin:0;font-size:13px;font-weight:600;color:var(--teal-ink)}
.st::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--teal)}

.ln{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}
.ln > span{display:inline-block}
.js [data-reveal] .ln > span{transform:translateY(110%);transition:transform 1.1s var(--ease)}
.js [data-reveal] .ln:nth-child(2) > span{transition-delay:.09s}
.js [data-reveal] .ln:nth-child(3) > span{transition-delay:.18s}
.js [data-reveal].in .ln > span{transform:none}
.js [data-reveal] .lede,.js [data-reveal] .statement{opacity:0;transform:translateY(16px);transition:opacity 1s .25s,transform 1.1s .25s var(--ease)}
.js [data-reveal].in .lede,.js [data-reveal].in .statement{opacity:1;transform:none}

/* image slots */
.shot{position:relative;margin:0;border-radius:24px;overflow:hidden;aspect-ratio:var(--ar,16/9);
  background:linear-gradient(180deg,#E9EEF2,#DDE5EB)}
.shot img{width:100%;height:100%;object-fit:cover;display:block}
.ph{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:6px;padding:24px;text-align:center}
.ph svg{color:#8FA0B0;margin-bottom:4px}
.ph-t{margin:0;font-size:15px;font-weight:600;color:#44576A}
.ph-s{margin:0;font-size:12.5px;color:#7F8FA0}
.js [data-reveal] .shot:not(.bleed) img,.js [data-reveal] .shot:not(.bleed) .ph{transform:scale(1.12);transition:transform 1.6s var(--ease)}
.js [data-reveal].in .shot:not(.bleed) img,.js [data-reveal].in .shot:not(.bleed) .ph{transform:none}

/* ---------- hero ---------- */
.hero{padding:calc(var(--nav-h) + clamp(48px,9vh,112px)) 0 clamp(56px,7vw,96px)}
.kicker{display:flex;align-items:center;gap:10px;margin:0 0 28px;font-size:14px;font-weight:500;color:var(--ink-2)}
.h1{margin:0;font-weight:500;font-stretch:110%;font-size:clamp(46px,8.2vw,140px);line-height:.9;letter-spacing:-.04em}
.hero-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:28px 48px;margin-top:clamp(36px,4vw,56px)}
.hero-p{margin:0;font-size:18px;line-height:1.55;color:var(--ink-2);max-width:42ch}
.ctas{display:flex;flex-wrap:wrap;gap:10px}
.js .hero .ln > span{transform:translateY(110%);transition:transform 1.1s var(--ease)}
.js .hero .ln:nth-child(2) > span{transition-delay:.08s}
.js .hero .ln:nth-child(3) > span{transition-delay:.16s}
.js .hero.in .ln > span{transform:none}
.js .hero .hero-row,.js .hero .kicker{opacity:0;transform:translateY(14px);transition:opacity .9s .35s,transform 1s .35s var(--ease)}
.js .hero.in .hero-row,.js .hero.in .kicker{opacity:1;transform:none}
.hero-media{margin-top:clamp(56px,7vw,96px);--p:0}
.hero-media .shot.bleed{aspect-ratio:auto;height:min(86vh,860px);border-radius:0;
  clip-path:inset(calc((1 - var(--p)) * 5vh) calc((1 - var(--p)) * 8vw) round calc((1 - var(--p)) * 28px + 0px))}
.hero-media .shot.bleed .ph{transform:scale(calc(1.12 - var(--p) * .12))}
.facts{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;margin:clamp(32px,4vw,48px) 0 0;border-top:1px solid var(--rule)}
.facts > div{padding:20px 20px 0 0}
.facts > div + div{padding-left:20px;border-left:1px solid var(--rule)}
.facts dt{font-size:12.5px;color:var(--mute);margin-bottom:6px}
.facts dd{margin:0;font-weight:600;font-stretch:108%;font-size:clamp(17px,1.5vw,22px);line-height:1.2;letter-spacing:-.01em}
.facts dd span{display:block;margin-top:4px;font-weight:400;font-stretch:100%;font-size:13px;line-height:1.45;color:var(--ink-2);letter-spacing:0}

/* ---------- connectivity drag rail ---------- */
.conn-head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:48px;align-items:end;margin-bottom:clamp(48px,5vw,72px)}
.conn-side{display:grid;gap:28px}
.rail-ctl{display:flex;gap:10px}
.round{width:52px;height:52px;border-radius:50%;border:1px solid #C6D1DA;background:transparent;color:var(--ink);display:grid;place-items:center;cursor:pointer;
  transition:background-color .35s,color .35s,border-color .35s}
.round:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.drag{--rail-pad:max(var(--gutter),calc((100vw - var(--wrap)) / 2 + var(--gutter)));scroll-padding-inline:var(--rail-pad);overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;scroll-snap-type:x mandatory;outline-offset:-3px;
  padding:8px 0 40px}
.drag::-webkit-scrollbar{display:none}
.drag.grabbing{scroll-snap-type:none}
.drag-track{display:flex;gap:20px;list-style:none;margin:0;padding:0 var(--rail-pad);width:max-content}
.dcard{flex:none;width:min(400px,78vw);min-height:460px;scroll-snap-align:start;display:flex;flex-direction:column;justify-content:space-between;gap:40px;
  padding:32px;background:#fff;border-radius:28px;box-shadow:var(--lift-sm);transition:transform .6s var(--ease),box-shadow .6s;user-select:none}
.dcard:hover{transform:translateY(-6px);box-shadow:var(--lift)}
.dcard-ic{width:72px;height:72px;border-radius:22px;display:grid;place-items:center;background:var(--teal-soft);color:var(--teal-ink)}
.dcard-ic svg{width:32px;height:32px}
.dcard h3{margin:0 0 10px;font-size:26px;font-weight:500;font-stretch:108%;line-height:1.1;letter-spacing:-.02em}
.dcard p{margin:0 0 18px;font-size:15.5px;line-height:1.6;color:var(--ink-2)}
.dcard .st{margin:0}
.js [data-reveal] .dcard{opacity:0;transform:translateX(60px);transition:opacity .9s,transform 1.2s var(--ease)}
.js [data-reveal].in .dcard{opacity:1;transform:none}
.js [data-reveal].in .dcard:nth-child(2){transition-delay:.08s}
.js [data-reveal].in .dcard:nth-child(3){transition-delay:.16s}
.js [data-reveal].in .dcard:nth-child(4){transition-delay:.24s}
.conn-foot{display:grid;gap:24px}
.progress{height:2px;background:var(--rule);border-radius:2px;overflow:hidden}
.progress span{display:block;height:100%;width:100%;background:var(--ink);transform-origin:left;transform:scaleX(.25)}

/* ---------- dark band ---------- */
.dark{background:var(--ink);color:#fff}
.dark .lede{color:#A9BACB}
.beyond-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(40px,6vw,96px);align-items:center}
.beyond-grid .lede{margin:32px 0 36px}
.dark .shot{background:linear-gradient(180deg,#0E2A43,#0A2034)}
.dark .ph-t{color:#C9D6E2}.dark .ph-s{color:#7F95AA}.dark .ph svg{color:#5F7C96}

/* ---------- stewardship sticky ---------- */
.stew-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(40px,6vw,104px);align-items:start}
.stew-side{align-self:stretch}
.stick{position:sticky;top:calc(var(--nav-h) + 32px)}
.stick .lede{margin:28px 0 40px}
.resil{padding-top:24px;border-top:1px solid var(--rule)}
.resil h3{margin:0 0 8px;font-size:17px;font-weight:600}
.resil p{margin:0;font-size:15px;line-height:1.6;color:var(--ink-2);max-width:46ch}
.stew-list{display:grid;gap:24px}
.panel-card{background:#fff;border-radius:28px;box-shadow:var(--lift-sm);overflow:hidden}
.panel-card .shot{border-radius:0}
.pc-body{padding:28px 32px 32px}
.pc-body h3{margin:0 0 10px;font-size:26px;font-weight:500;font-stretch:108%;line-height:1.1;letter-spacing:-.02em}
.pc-body p{margin:0 0 18px;font-size:15.5px;line-height:1.6;color:var(--ink-2)}
.pc-body .st{margin:0}
.panel-card.compact{display:grid;grid-template-columns:auto 1fr;gap:0;align-items:start;padding-left:32px}
.panel-card.compact .dcard-ic{margin-top:32px}

/* ---------- locations ---------- */
.places{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:20px}
.place{display:flex;flex-direction:column;gap:16px;padding:clamp(28px,3vw,44px);background:#fff;border-radius:28px;box-shadow:var(--lift-sm);min-height:400px;
  transition:transform .6s var(--ease),box-shadow .6s}
.place:hover{transform:translateY(-4px);box-shadow:var(--lift)}
.place.primary{box-shadow:0 0 0 1.5px rgba(73,119,203,.5),var(--lift)}
.place h3{margin:auto 0 0;font-weight:500;font-stretch:110%;font-size:clamp(34px,4vw,60px);line-height:.95;letter-spacing:-.035em}
.place p{margin:0;color:var(--ink-2);font-size:15.5px;line-height:1.6;max-width:44ch}
.place .st{color:var(--teal-ink)}
.region{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ink)!important;padding-top:18px;border-top:1px solid var(--rule)}
.region svg{color:var(--teal)}

/* ---------- community ---------- */
.statement{margin:clamp(40px,5vw,64px) 0 clamp(48px,6vw,80px);font-weight:400;font-stretch:104%;font-size:clamp(24px,2.8vw,42px);line-height:1.22;letter-spacing:-.02em;max-width:30ch}
.comm-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,5vw,80px);align-items:end}
.comm-grid .lede{margin-bottom:20px}

/* ---------- status ---------- */
.now{display:flex;align-items:center;gap:12px;margin:0 0 14px;font-size:15px;font-weight:600}
.track{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;list-style:none;margin:0 0 clamp(72px,8vw,112px);padding:0}
.track::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--rule)}
.track::after{content:"";position:absolute;left:0;top:0;height:2px;margin-top:-.5px;width:calc((100% - 96px) / 4 * .45);background:var(--teal);transform-origin:left}
.js [data-reveal] .track::after{transform:scaleX(0);transition:transform 1.3s cubic-bezier(.6,0,.2,1) .3s}
.js [data-reveal].in .track::after{transform:scaleX(1)}
.track li{position:relative;padding-top:32px}
.track .num{display:block;font-weight:500;font-stretch:110%;font-size:clamp(56px,6vw,96px);line-height:.9;letter-spacing:-.04em;margin-bottom:24px;
  color:transparent;-webkit-text-stroke:1px #B9C6D0;font-variant-numeric:tabular-nums}
.track li.current .num{color:var(--ink);-webkit-text-stroke:0}
.track h3{margin:0 0 8px;font-size:22px;font-weight:600;font-stretch:108%}
.track p{margin:0;font-size:15px;line-height:1.6;color:var(--ink-2)}
.faq{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:48px}
.faq h3.faq-h{margin:0;font-size:24px;font-weight:500;font-stretch:108%;letter-spacing:-.02em}
.faq details{border-bottom:1px solid var(--rule)}
.faq details:first-of-type{border-top:1px solid var(--rule)}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:72px;padding:14px 0;cursor:pointer;list-style:none;font-size:18px;font-weight:500}
.faq summary::-webkit-details-marker{display:none}
.faq summary .plus{flex:none;width:36px;height:36px;border-radius:50%;border:1px solid #C6D1DA;display:grid;place-items:center;color:var(--ink);
  transition:transform .45s var(--ease),background-color .35s,color .35s,border-color .35s}
.faq summary:hover .plus{border-color:var(--ink)}
.faq details[open] summary .plus{transform:rotate(45deg);background:var(--ink);color:#fff;border-color:var(--ink)}
.faq .ans{margin:0;padding:0 56px 24px 0;color:var(--ink-2);font-size:16px;line-height:1.65}
.faq details[open] .ans{animation:ans-in .5s var(--ease) both}
@keyframes ans-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(40px,6vw,96px);align-items:start;margin-top:clamp(48px,5vw,72px)}
.contact-grid .lede{margin:0 0 40px}
.mailto{display:grid;gap:20px;margin:0;padding:0;list-style:none}
.mailto b{display:block;font-size:13px;font-weight:500;color:var(--mute);margin-bottom:2px}
.mailto a{font-size:clamp(18px,1.6vw,22px);font-weight:500;text-decoration:none;background:linear-gradient(var(--teal),var(--teal)) 0 100%/0 1.5px no-repeat;transition:background-size .5s var(--ease)}
.mailto a:hover{background-size:100% 1.5px}
.form{padding:clamp(24px,3vw,40px);background:#fff;border-radius:28px;box-shadow:var(--lift)}
.form fieldset{border:0;margin:0 0 22px;padding:0}
.form legend{font-size:13px;font-weight:600;color:var(--ink-2);margin-bottom:10px;padding:0}
.teams{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.team{position:relative;display:block;cursor:pointer}
.team input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.team span{display:block;height:100%;padding:14px 16px;border:1px solid var(--line);border-radius:16px;font-size:14px;line-height:1.4;color:var(--ink-2);transition:border-color .3s,background-color .3s,box-shadow .3s}
.team span b{display:block;color:var(--ink);font-size:15px;margin-bottom:2px}
.team input:checked + span{border-color:var(--teal);background:#F3F6FD;box-shadow:0 0 0 1px var(--teal)}
.team input:focus-visible + span{outline:2px solid var(--teal);outline-offset:3px}
.routed{margin:10px 0 0;font-size:13px;color:var(--mute)}
.field{display:grid;gap:8px;margin-bottom:18px}
.field label{font-size:13px;font-weight:600;color:var(--ink-2)}
.field input,.field textarea{width:100%;min-height:52px;padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:#F7F9FB;color:var(--ink);font:inherit;font-size:16px;transition:border-color .3s,background-color .3s,box-shadow .3s}
.field textarea{min-height:136px;resize:vertical;line-height:1.55}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--teal);background:#fff;box-shadow:0 0 0 4px rgba(73,119,203,.14)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form .note{margin:4px 0 22px}
.form-msg{margin:14px 0 0;font-size:14px;color:var(--teal-ink);min-height:1.5em}
.form-msg.err{color:#B4432A}

/* ---------- footer ---------- */
.foot{background:var(--ink);color:#fff;padding:clamp(64px,8vw,104px) 0 calc(32px + env(safe-area-inset-bottom,0px));overflow:hidden}
.foot-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px}
.foot-brand{display:grid;gap:10px}
.foot-top p{margin:0;font-size:14px;color:#A9BACB}
.foot-links{display:flex;flex-wrap:wrap;gap:4px 28px;list-style:none;margin:0;padding:0}
.foot-links a{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-size:14px;color:#C9D6E2;text-decoration:none;transition:color .3s}
.foot-links a:hover{color:#fff}
.foot-mark{margin:clamp(48px,6vw,88px) 0 clamp(28px,3vw,40px);line-height:0}
.foot-word{display:block;width:100%;height:auto}
  background:linear-gradient(180deg,#fff 30%,rgba(255,255,255,.35));-webkit-background-clip:text;background-clip:text;color:transparent}
.foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px 40px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12)}
.foot-bottom p{margin:0;font-size:12.5px;line-height:1.55;color:#8BA0B4;max-width:78ch}

/* ---------- menu ---------- */
.menu{position:fixed;inset:0;z-index:60;background:var(--night);padding:calc(env(safe-area-inset-top,0px) + 12px) var(--gutter) 32px;display:flex;flex-direction:column;gap:4px;
  opacity:0;visibility:hidden;transition:opacity .3s,visibility 0s .3s}
.menu.open{opacity:1;visibility:visible;transition:opacity .3s,visibility 0s}
.menu-top{display:flex;justify-content:space-between;align-items:center;height:var(--nav-h);margin-bottom:24px}
.menu a.big{display:flex;align-items:center;min-height:64px;font-size:34px;font-weight:500;font-stretch:110%;letter-spacing:-.03em;text-decoration:none;border-bottom:1px solid var(--rule)}
.menu .btn{margin-top:28px;align-self:flex-start}

/* ================= responsive ================= */
@media (max-width:1080px){
  .nav-links li:not(.cta){display:none}
  .menu-btn{display:inline-flex;align-items:center}
  .sec-head,.conn-head,.beyond-grid,.stew-grid,.comm-grid,.contact-grid,.faq{grid-template-columns:1fr}
  .sec-head,.conn-head{gap:24px}
  .stick{position:static}
  .facts{grid-template-columns:repeat(3,minmax(0,1fr))}
  .facts > div:nth-child(4){border-left:0;padding-left:0}
  .facts > div:nth-child(n+4){margin-top:20px}
  .track{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:48px}
  .track::after{display:none}
}
@media (max-width:720px){
  .nav .btn.cta-btn{display:none}
  .facts{grid-template-columns:1fr 1fr}
  .facts > div{padding:18px 12px 0 0!important;border-left:0!important;margin-top:0!important}
  .places,.teams,.two{grid-template-columns:1fr}
  .track{grid-template-columns:1fr}
  .place{min-height:300px}
  .rail-ctl{display:none}
  .hero-media .shot.bleed{height:62vh}
  .panel-card.compact{grid-template-columns:1fr;padding-left:0}
  .panel-card.compact .dcard-ic{margin:28px 0 0 32px}
  .faq .ans{padding-right:0}
  .ln,.ln > span{display:inline;overflow:visible;padding:0;margin:0}
  .js [data-reveal] .ln > span,.js .hero .ln > span,.intro-lines .ln > span{transform:none}
  .js [data-reveal] :is(.h1,.h2),.js .hero .h1{opacity:0;transform:translateY(12px);transition:opacity .9s,transform 1s var(--ease)}
  .js [data-reveal].in :is(.h1,.h2),.js .hero.in .h1{opacity:1;transform:none}
  .intro-lines{opacity:0;transition:opacity .6s}
  .intro.go .intro-lines{opacity:1}
}
@media (prefers-reduced-motion:reduce){
  .intro{display:none!important}
  .js [data-reveal] *,.js .hero *{transition-duration:.01s!important;transition-delay:0s!important}
  .hero-media .shot.bleed{clip-path:none}
}

/* ---------- ring campus model ---------- */
.bsvg .wall-front{fill:url(#cylO)}
.bsvg .wall-back{fill:#E1E7EC}
.bsvg .wall-court{fill:url(#cylI)}
.bsvg .wall-core{fill:#DCE3E9}
.bsvg .base-band{fill:#C3CFDA;stroke:none}
.bsvg .court{fill:#EEF2F5}
.bsvg .court-dot{fill:#C3CDD7;stroke:none}
.bsvg .court-core{fill:#4977CB;stroke:none}
.bsvg .roof-top{fill:#FBFCFD}
.bsvg .road{fill:none;stroke:#DDE4EA;stroke-width:16;stroke-linecap:round;stroke-linejoin:round}
.bsvg .pond{fill:#DCE7F1;stroke:#C4D3E0}
.solar-row .ft{fill:#CFDAE9}.solar-row .fr,.solar-row .fl{fill:#B8C7DA}
.is-lit .solar-row .ft{fill:#B9CBF0}
.mech .ft{fill:#F5F7F9}
.exploded #roof .roof-slab .roof-top{fill-opacity:.3}
.exploded #roof > .sys{opacity:.2}

/* ---------- photos ---------- */
.dcard.photo{padding:0;overflow:hidden;background:#DDE5EB}
.dcard.photo .shot{height:100%;aspect-ratio:auto;border-radius:0}
.hero-media .shot.bleed img{transform:scale(calc(1.1 - var(--p) * .1));transform-origin:center}
.shot img{user-select:none;-webkit-user-drag:none}

/* ---------- security list + campus facts ---------- */
.protect{list-style:none;margin:18px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px 24px}
.protect li{position:relative;padding-left:16px;font-size:14px;line-height:1.45;color:var(--ink)}
.protect li::before{content:"";position:absolute;left:0;top:.55em;width:6px;height:6px;border-radius:50%;background:var(--teal)}
.campus{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px;margin:0;padding-top:18px;border-top:1px solid var(--rule)}
.campus dt{font-size:12.5px;color:var(--mute);margin-bottom:4px}
.campus dd{margin:0;font-weight:600;font-stretch:106%;font-size:16px;line-height:1.3}
@media (max-width:720px){ .protect,.campus{grid-template-columns:1fr} }

/* ================= Beyond + Privacy pages ================= */
.view[hidden]{display:none}
[id]{scroll-margin-top:calc(var(--nav-h) + 24px)}
.art-hero{padding:calc(var(--nav-h) + clamp(48px,9vh,112px)) 0 0}
.art-hero .h1{margin-top:0}
.art-intro{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px 48px;margin-top:clamp(32px,4vw,52px)}
.js .art-hero .art-intro,.js .art-hero .kicker{opacity:0;transform:translateY(14px);transition:opacity .9s .3s,transform 1s .3s var(--ease)}
.js .art-hero.in .art-intro,.js .art-hero.in .kicker{opacity:1;transform:none}
.byline{margin:0;font-size:14px;line-height:1.5;color:var(--mute);text-align:right}
.art-shot{margin-top:clamp(48px,6vw,88px);border-radius:0;aspect-ratio:21/9;max-height:80vh;width:100%}
.js [data-reveal] .art-shot img{transform:scale(1.08)}
.chap{padding:clamp(88px,10vw,148px) 0;position:relative}
.chap + .chap:not(.dark){border-top:1px solid var(--rule)}
.dark + .chap{border-top:0}
.chap-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,8fr);gap:48px;align-items:start}
.chap-n{position:sticky;top:calc(var(--nav-h) + 32px);margin:0;display:flex;gap:12px;align-items:baseline;font-size:14px;font-weight:600;color:var(--ink-2)}
.chap-n span{font-stretch:110%;color:var(--teal-ink)}
.chap-body{max-width:740px}
.chap-body .h2{margin-bottom:clamp(28px,3vw,44px);font-size:clamp(32px,4vw,58px)}
.chap-body > p{margin:0 0 22px;font-size:18px;line-height:1.7;color:var(--ink-2)}
.chap-body > p.lede{font-size:20px;color:var(--ink)}
.chap-body a:not(.btn){color:var(--ink);text-decoration:underline;text-decoration-color:rgba(73,119,203,.5);text-underline-offset:3px}
.became{list-style:none;margin:36px 0 40px;padding:0;display:grid;gap:6px}
.became li{font-weight:500;font-stretch:108%;font-size:clamp(22px,2.5vw,36px);line-height:1.15;letter-spacing:-.025em;color:#A3B1BE}
.became li:last-child{color:var(--ink)}
.js [data-reveal] .became li{opacity:0;transform:translateY(12px);transition:opacity .7s,transform .8s var(--ease),color .6s}
.js [data-reveal].in .became li{opacity:1;transform:none}
.became li:nth-child(2){transition-delay:.08s}.became li:nth-child(3){transition-delay:.16s}.became li:nth-child(4){transition-delay:.24s}.became li:nth-child(5){transition-delay:.32s}
.pull{margin:40px 0 44px;padding:0}
.pull p{margin:0;font-weight:500;font-stretch:108%;font-size:clamp(24px,2.7vw,40px);line-height:1.18;letter-spacing:-.025em;color:var(--ink);text-indent:-.42em}
.pull p::before{content:"\201C"}
.pull p::after{content:"\201D"}
.questions{list-style:none;margin:0 0 40px;padding:0;border-top:1px solid var(--rule)}
.questions li{padding:20px 0;border-bottom:1px solid var(--rule);font-weight:500;font-stretch:106%;font-size:clamp(20px,2vw,28px);line-height:1.25;letter-spacing:-.015em}
.nature{overflow:hidden}
.nature .chap-grid{position:relative;z-index:1}
.nature .chap-n{color:#A9BACB}
.nature .chap-n span{color:#9DB8EE}
.nature .chap-body > p{color:#C3D0DC}
.galaxy{position:relative;display:block;width:100%;height:clamp(300px,40vw,560px);margin:calc(clamp(88px,10vw,148px) * -.55) 0 clamp(24px,3vw,48px)}
.scale{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:0 0 48px}
.scale div{display:flex;flex-direction:column-reverse;justify-content:flex-end;padding-top:18px;border-top:1px solid rgba(255,255,255,.2)}
.scale dd{margin:0;font-weight:500;font-stretch:110%;font-size:clamp(28px,3.2vw,50px);line-height:1;letter-spacing:-.035em}
.scale dt{margin-top:10px;font-size:13px;line-height:1.4;color:#A9BACB}
sup{line-height:0}
sup a{margin-left:2px;font-size:.72em;font-weight:600;color:var(--teal-ink)!important;text-decoration:none!important}
.dark sup a{color:#9DB8EE!important}
.areas{list-style:none;margin:28px 0 30px;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.areas li{display:grid;gap:16px;align-content:start;padding:18px;background:#fff;border-radius:18px;box-shadow:var(--lift-sm);font-weight:600;font-size:15px;line-height:1.3}
.areas .ic{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:var(--teal-soft);color:var(--teal-ink)}
.define{margin:36px 0 40px;padding:28px 32px;background:#fff;border-radius:22px;box-shadow:var(--lift-sm)}
.define h3{margin:0 0 10px;font-size:20px;font-weight:600;font-stretch:108%}
.define p{margin:0;font-size:16px;line-height:1.65;color:var(--ink-2)}
.twh{margin:36px 0 44px;display:grid;gap:14px}
.twh-row{display:grid;grid-template-columns:52px minmax(0,1fr) 96px;align-items:center;gap:16px}
.twh-y{font-size:14px;color:var(--mute);font-variant-numeric:tabular-nums}
.twh-bar{height:44px;background:#E6ECF1;border-radius:12px;overflow:hidden}
.twh-bar i{display:block;height:100%;width:calc(var(--w) * 100%);background:var(--ink);border-radius:12px;transform-origin:left}
.twh-row + .twh-row .twh-bar i{background:var(--teal)}
.js [data-reveal] .twh-bar i{transform:scaleX(0);transition:transform 1.5s var(--ease) .35s}
.js [data-reveal].in .twh-bar i{transform:scaleX(1)}
.twh-v{font-weight:600;font-stretch:108%;font-size:17px;text-align:right;font-variant-numeric:tabular-nums}
.twh figcaption{margin-top:6px;font-size:13px;line-height:1.5;color:var(--mute)}
.art-cta{margin:36px 0 28px!important}
.h3{margin:44px 0 12px;font-size:22px;font-weight:600;font-stretch:108%;letter-spacing:-.01em;line-height:1.25}
.chap-body > .h3:first-child,.sources .h3{margin-top:0}
.src{margin:28px 0 0;padding:0 0 0 22px;display:grid;gap:18px}
.src li{padding-left:6px;font-size:15px;line-height:1.5}
.src li::marker{color:var(--teal-ink);font-weight:600}
.src a{font-weight:600;color:var(--ink)!important;text-decoration:none!important;background:linear-gradient(var(--teal),var(--teal)) 0 100%/0 1.5px no-repeat;transition:background-size .5s var(--ease)}
.src a:hover{background-size:100% 1.5px}
.src span{display:block;margin-top:3px;font-size:14px;color:var(--ink-2)}
.src li:target{background:var(--teal-soft);border-radius:10px;box-shadow:0 0 0 8px var(--teal-soft)}
.legal{padding:calc(var(--nav-h) + clamp(48px,9vh,112px)) 0 clamp(96px,10vw,148px)}
.legal-side{position:sticky;top:calc(var(--nav-h) + 32px);align-self:start}
.legal-side .h2{margin:0 0 14px}
.legal .chap-body > p{font-size:17px}
@media (max-width:1080px){
  .chap-grid{grid-template-columns:1fr;gap:28px}
  .chap-n,.legal-side{position:static}
  .scale{grid-template-columns:1fr;gap:18px}
  .areas{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:720px){
  .byline{text-align:left}
  .art-shot{aspect-ratio:4/3}
  .twh-row{grid-template-columns:44px minmax(0,1fr) 82px;gap:12px}
  .chap-body > p{font-size:17px}
}

/* ================= dark theme ================= */
.theme-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin-left:4px;padding:0;
  border:1px solid #C6D1DA;border-radius:999px;background:transparent;color:var(--ink);cursor:pointer;
  transition:border-color .3s,background-color .3s,color .3s}
.theme-btn:hover{border-color:var(--ink)}
.theme-btn svg{width:18px;height:18px}
.theme-btn .moon{display:none}
.menu .theme-btn{width:auto;height:48px;gap:10px;padding:0 18px;font:inherit;font-size:15px;font-weight:600;margin:24px 0 0}
.dimmer{position:fixed;inset:0;z-index:200;background:#02080F;opacity:0;pointer-events:none;transition:opacity .34s ease}
.dimmer.on{opacity:.62}
.theming *,.theming *::before,.theming *::after{transition:background-color .7s ease,color .7s ease,border-color .7s ease,
  box-shadow .7s ease,fill .7s ease,stroke .7s ease,opacity .7s ease!important}
.shot{position:relative}
.shot .night-layer{position:absolute;inset:0;opacity:0;transition:opacity .5s ease}
.shot .night-layer img{width:100%;height:100%;object-fit:cover;display:block}
[data-theme="dark"] .shot .night-layer.ready{opacity:1}

:root[data-theme="dark"]{
  --night:#061627; --deep:#0C2237; --panel:#0C2237; --rule:#17324B; --line:#20415F;
  --frost:#E6EEF4; --haze:#9FB3C6; --coolant:#6A93E0; --signal:#9DB8EE;
  --ink:#E6EEF4; --ink-2:#9FB3C6; --mute:#7E93A8; --teal:#6A93E0; --teal-ink:#9DB8EE; --teal-soft:rgba(106,147,224,.16);
  --lift:0 1px 0 rgba(0,0,0,.25),0 26px 52px -30px rgba(0,0,0,.75);
  --lift-sm:0 1px 0 rgba(0,0,0,.2),0 14px 30px -18px rgba(0,0,0,.7);
  color-scheme:dark;
}
[data-theme="dark"] .theme-btn{border-color:#2B4A68;color:var(--ink)}
[data-theme="dark"] .theme-btn:hover{border-color:var(--teal)}
[data-theme="dark"] .theme-btn .moon{display:block}
[data-theme="dark"] .theme-btn .sun{display:none}
[data-theme="dark"] .nav.is-solid{background:rgba(6,22,39,.86);box-shadow:0 1px 0 var(--rule)}
[data-theme="dark"] .btn-ink{background:var(--teal);color:#06131F}
[data-theme="dark"] .btn-ink::before{background:#E6EEF4}
[data-theme="dark"] .btn-ink:hover{color:#06131F}
[data-theme="dark"] .btn-line{border-color:#2B4A68;color:var(--ink)}
[data-theme="dark"] .btn-line::before{background:var(--teal)}
[data-theme="dark"] .btn-line:hover{color:#06131F;border-color:var(--teal)}
[data-theme="dark"] .menu-btn{border-color:#2B4A68;color:var(--ink)}
[data-theme="dark"] .dcard,[data-theme="dark"] .panel-card,[data-theme="dark"] .place,[data-theme="dark"] .form,
[data-theme="dark"] .define,[data-theme="dark"] .areas li,[data-theme="dark"] .orb{background:var(--panel)}
[data-theme="dark"] .place.primary{box-shadow:0 0 0 1.5px rgba(106,147,224,.55),var(--lift)}
[data-theme="dark"] .callout{background:rgba(12,34,55,.94)}
[data-theme="dark"] .orb-ic{background:#14314B;color:#9FB3C6}
[data-theme="dark"] .orb.is-on{box-shadow:0 0 0 1.5px rgba(106,147,224,.6),0 18px 36px -16px rgba(0,0,0,.8)}
[data-theme="dark"] .orb.is-on .orb-ic{background:rgba(106,147,224,.18);color:var(--teal-ink)}
[data-theme="dark"] .ring{stroke:#1B3A57}
[data-theme="dark"] .ring.is-lit{stroke:#3C6BA8}
[data-theme="dark"] .ring-label{fill:#5C7590}
[data-theme="dark"] .rail-track{background:#1B3A57}
[data-theme="dark"] .rg{stroke:#2A4A6A}
[data-theme="dark"] .field input,[data-theme="dark"] .field textarea{background:#081D31;border-color:var(--line);color:var(--ink)}
[data-theme="dark"] .field input:focus,[data-theme="dark"] .field textarea:focus{background:#0A2237;box-shadow:0 0 0 4px rgba(106,147,224,.2)}
[data-theme="dark"] .team span{border-color:var(--line)}
[data-theme="dark"] .team input:checked + span{background:rgba(106,147,224,.12)}
[data-theme="dark"] .twh-bar{background:#12293E}
[data-theme="dark"] .twh-bar i{background:var(--ink)}
[data-theme="dark"] .steward{background:#04101C}
[data-theme="dark"] .dark{background:#0A1E33}
[data-theme="dark"] .foot{background:#04101C}
[data-theme="dark"] .sec + .sec{border-top-color:#102A42}
[data-theme="dark"] .dcard.photo{background:#0E2A43}
[data-theme="dark"] .became li{color:#5C7590}
[data-theme="dark"] .became li:last-child{color:var(--ink)}
[data-theme="dark"] .faq summary .plus{border-color:#2B4A68;color:var(--ink)}
[data-theme="dark"] .faq details[open] summary .plus{background:var(--teal);color:#06131F;border-color:var(--teal)}
[data-theme="dark"] .round{border-color:#2B4A68;color:var(--ink)}
[data-theme="dark"] .round:hover{background:var(--teal);color:#06131F;border-color:var(--teal)}
[data-theme="dark"] .progress span{background:var(--ink)}
[data-theme="dark"] .track li::before{background:var(--night);border-color:#2B4A68}
[data-theme="dark"] .track .num{-webkit-text-stroke-color:#2B4A68}
[data-theme="dark"] .mailto a{box-shadow:none}
[data-theme="dark"] .ph svg{color:#4F6C88}
[data-theme="dark"] .ph-t{color:#C9D6E2}
[data-theme="dark"] .ph-s{color:#7E93A8}
[data-theme="dark"] .shot{background:linear-gradient(180deg,#0E2A43,#0A2034)}
/* campus model */
[data-theme="dark"] .bsvg polygon,[data-theme="dark"] .bsvg ellipse{stroke:#2A5175}
[data-theme="dark"] .ft{fill:#16395A}
[data-theme="dark"] .fr{fill:#0F2B45}
[data-theme="dark"] .fl{fill:#0C243A}
[data-theme="dark"] .wall-in{fill:#09203A}
[data-theme="dark"] .floor{fill:#0A2238}
[data-theme="dark"] .hall-floor{fill:#0D2941;stroke:#1C4061}
[data-theme="dark"] .rack .ft{fill:#1C4668}
[data-theme="dark"] .rack .fr{fill:#12334F}
[data-theme="dark"] .rack .fl{fill:#0F2C45}
[data-theme="dark"] .room .ft,[data-theme="dark"] .qroom .ft{fill:#143A5A}
[data-theme="dark"] .pad{fill:#0A1F33;stroke:#1C3A56}
[data-theme="dark"] .wire,[data-theme="dark"] .pole{stroke:#3A6A8E}
[data-theme="dark"] .pipe{stroke:#28557A}
[data-theme="dark"] .route{stroke:#2C5B7E}
[data-theme="dark"] .rib,[data-theme="dark"] .roof-line,[data-theme="dark"] .room-mark{stroke:#1C3F5E}
[data-theme="dark"] .door{fill:#0A2034;stroke:#23496A}
[data-theme="dark"] .dish,[data-theme="dark"] .drum{fill:#1B4467;stroke:#4B7FA6}
[data-theme="dark"] .cryo{fill:#0C2740;stroke:#4B7FA6}
[data-theme="dark"] .cryo-core{fill:#1B4467}
[data-theme="dark"] .fan{fill:#0C2740;stroke:#3A6A8E}
[data-theme="dark"] .roof-slab .ft{fill:#123452}
[data-theme="dark"] .bsvg .wall-front{fill:url(#cylOd)}
[data-theme="dark"] .bsvg .wall-court{fill:url(#cylId)}
[data-theme="dark"] .bsvg .wall-back{fill:#0B2338}
[data-theme="dark"] .bsvg .wall-core{fill:#10314C}
[data-theme="dark"] .bsvg .base-band{fill:#0A2138}
[data-theme="dark"] .bsvg .court{fill:#081C2F}
[data-theme="dark"] .bsvg .court-dot{fill:#1E3E5C}
[data-theme="dark"] .bsvg .court-core{fill:#6A93E0}
[data-theme="dark"] .bsvg .roof-top{fill:#102F4B}
[data-theme="dark"] .bsvg .road{stroke:#11293E}
[data-theme="dark"] .bsvg .pond{fill:#0C2B47;stroke:#1A4166}
[data-theme="dark"] .solar-row .ft{fill:#1A3A61}
[data-theme="dark"] .mech .ft{fill:#123452}
[data-theme="dark"] .gshadow{opacity:.35}
[data-theme="dark"] .is-lit .ft{fill:#2E5FA8}
[data-theme="dark"] .is-lit .fr{fill:#234A85}
[data-theme="dark"] .is-lit .fl{fill:#1B3B6C}
[data-theme="dark"] .is-lit polygon,[data-theme="dark"] .is-lit ellipse{stroke:#8FB4F2}
[data-theme="dark"] .is-lit .hall-floor{fill:#16406E}
[data-theme="dark"] .is-lit .pad{fill:#12314F}
[data-theme="dark"] .is-lit .solar-row .ft{fill:#2E5FA8}
[data-theme="dark"] .is-lit .dish,[data-theme="dark"] .is-lit .drum,[data-theme="dark"] .is-lit .cryo-core{fill:#5A8AD8}
[data-theme="dark"] .exploded #roof .roof-slab .ft,[data-theme="dark"] .exploded #roof .roof-slab .fr,[data-theme="dark"] .exploded #roof .roof-slab .fl{fill-opacity:.12;stroke:#2A5175}
@media (prefers-reduced-motion:reduce){ .theming *{transition:none!important} .dimmer{display:none} }
[data-theme="dark"] .shot > picture img,[data-theme="dark"] .shot > img{filter:brightness(.86) saturate(.94);transition:filter .7s ease}
[data-theme="dark"] .shot .night-layer img{filter:none}

/* ---------- logo lockups adapt to the theme (fills are remapped, not duplicated) ---------- */
:root{--lk-ink:#172638;--lk-navy:#2E3F53;--lk-slate:#6B7785;--lk-mist:#98A2AD;--lk-light:#C2C8CF;--lk-blue:#4977CB;--lk-sub:#5B6878}
[data-theme="dark"]{--lk-ink:#E9EFF5;--lk-navy:#C3D0DD;--lk-slate:#8FA2B5;--lk-mist:#65798F;--lk-light:#44586F;--lk-blue:#6A93E0;--lk-sub:#9FB3C6}
:is(.mark,.intro) svg [fill="#172638"]{fill:var(--lk-ink)}
:is(.mark,.intro) svg [fill="#2E3F53"]{fill:var(--lk-navy)}
:is(.mark,.intro) svg [fill="#6B7785"]{fill:var(--lk-slate)}
:is(.mark,.intro) svg [fill="#98A2AD"]{fill:var(--lk-mist)}
:is(.mark,.intro) svg [fill="#C2C8CF"]{fill:var(--lk-light)}
:is(.mark,.intro) svg [fill="#4977CB"]{fill:var(--lk-blue)}
:is(.mark,.intro) svg [fill="#5B6878"]{fill:var(--lk-sub)}

html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}
.nf{padding:calc(var(--nav-h) + clamp(64px,14vh,160px)) 0 clamp(96px,14vh,160px)}
.nf .h1{margin:0 0 24px}
.nf .lede{margin-bottom:36px}
.nf .ctas{margin-top:8px}
