/* Layout: cinematic opening, then a real-time scene per deck. Story on the left, a curved glass console on the right, a curved helm console along the bottom for navigation. No square frames. Single committed dark look. */
:root{
  --void:#02050b;
  --ice:#a9e8ff;
  --ice-soft:rgba(169,232,255,.55);
  --ice-faint:rgba(169,232,255,.14);
  --signal:#eaf3ff;
  --muted:#8b9db5;
  --gold:#e9d3a0;
  --green:#3ddc97;
  --orange:#ff9f43;
  --red:#ff4d5e;
  --f-serif:"Cormorant Garamond","Didot","Bodoni 72","Georgia",serif;
  --gold-2:#d8a863;
  --f-display:"Jost","Noto Sans JP","Futura","Century Gothic","Avenir Next",system-ui,sans-serif;
  --f-mark:"Syncopate","Jost","Futura",system-ui,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --ease:cubic-bezier(.2,.8,.2,1);
  color-scheme:dark;
}
[hidden]{display:none!important}
html,body{height:100%}
body{margin:0;background:var(--void);color:var(--signal);font-family:var(--f-display);font-weight:300;overflow:hidden;-webkit-font-smoothing:antialiased}
#space{position:fixed;inset:0;width:100%;height:100%;display:block;background:var(--void)}
.grade{position:fixed;inset:0;pointer-events:none;transition:background 3s ease;mix-blend-mode:soft-light}
.scrim{position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(2,5,11,.72) 0%,rgba(2,5,11,.45) 30%,transparent 52%);opacity:0;transition:opacity 2s ease}
body.live .scrim{opacity:1}
.vignette{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 50%,transparent 50%,rgba(0,0,0,.6) 100%)}
.grain{position:fixed;inset:-50px;pointer-events:none;opacity:.07;mix-blend-mode:overlay;z-index:6}
.lb{position:fixed;left:0;right:0;height:0;background:#000;z-index:7;pointer-events:none;transition:height 2.4s cubic-bezier(.6,0,.2,1)}
.lb.top{top:0}.lb.bot{bottom:0}
body.cine .lb{height:calc(11 * var(--vh1))}
#warp{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:8}
.flash{position:fixed;inset:0;pointer-events:none;z-index:8;background:radial-gradient(circle at 50% 50%,rgba(235,248,255,.9),rgba(169,232,255,.25) 30%,transparent 65%);opacity:0}
.flash.go{animation:flash 1.3s ease-out}
@keyframes flash{0%{opacity:0}18%{opacity:.85}100%{opacity:0}}

.hud{position:fixed;inset:0;pointer-events:none}
.hud>*{pointer-events:auto}
.passive,.passive *{pointer-events:none!important}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:1px solid var(--ice);outline-offset:4px;border-radius:14px}
.fade-ui{transition:opacity 1.8s ease}
body:not(.live) .fade-ui{opacity:0;pointer-events:none}

/* ---------- Top bar ---------- */
.bar{position:absolute;top:env(safe-area-inset-top,0px);left:0;right:0;display:flex;align-items:center;gap:20px;padding:20px 34px 0;z-index:3}
.mark{display:flex;align-items:center;gap:13px;color:var(--signal)}
.mark .mono-mark{width:64px;height:auto;flex:none;filter:drop-shadow(0 0 10px rgba(216,168,99,.35))}
.mark b{font-family:var(--f-serif);font-weight:500;font-size:17px;letter-spacing:.32em;display:block;text-align:left;color:#f3e6cf}
.mark span{font-family:var(--f-mark);font-size:8.5px;letter-spacing:.38em;color:var(--muted);display:block;margin-top:4px;text-align:left}
.ctrls{margin-left:auto;display:flex;align-items:center;gap:12px}
.pill-in{height:34px;border-radius:17px;border:1px solid var(--ice-faint);background:rgba(8,18,34,.5);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.search{position:relative}
.search input{width:170px;color:var(--signal);font:300 12px var(--f-display);letter-spacing:.05em;padding:0 14px 0 34px;transition:width .6s var(--ease),border-color .4s,box-shadow .4s}
.search input::placeholder{color:var(--muted)}
.search input:focus{width:240px;border-color:var(--ice-soft);outline:none;box-shadow:0 0 22px rgba(169,232,255,.18),inset 0 1px 0 rgba(255,255,255,.1)}
.search>svg{position:absolute;left:12px;top:10px;width:14px;height:14px;stroke:var(--ice-soft);fill:none;pointer-events:none}
.pop{position:absolute;right:0;top:46px;width:300px;padding:16px;border-radius:22px;background:linear-gradient(160deg,rgba(24,48,78,.9),rgba(5,12,24,.94));backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid var(--ice-faint);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 30px 60px -20px rgba(0,0,0,.8);display:grid;gap:10px;font-size:12.5px;z-index:5;animation:rise .45s var(--ease)}
@keyframes rise{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
.pop p{margin:0;color:var(--muted);font-size:12px;line-height:1.55}
.pop a{color:var(--ice);text-decoration:none;letter-spacing:.02em}
.pop a:hover{text-decoration:underline}
.icon-btn{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--ice-faint);background:rgba(8,18,34,.5);transition:border-color .3s,box-shadow .3s}
.icon-btn svg{width:15px;height:15px;stroke:var(--ice-soft);fill:none;stroke-width:1.4}
.icon-btn:hover{border-color:var(--ice-soft);box-shadow:0 0 16px rgba(169,232,255,.22)}
.icon-btn[aria-pressed="false"] svg{stroke:var(--muted)}
.xlate{position:relative}
.xlate>button{display:flex;align-items:center;gap:8px;padding:0 13px 0 11px;font:500 10px var(--f-mono);letter-spacing:.16em;color:var(--ice)}
.xlate>button svg{width:15px;height:15px;stroke:var(--ice-soft);fill:none;stroke-width:1.3}
.xlate>button:hover{border-color:var(--ice-soft)}
.xlate .pop{width:300px;max-height:min(460px,calc(64 * var(--vh1)));overflow:auto}
.xlate input{height:32px;border-radius:16px;border:1px solid var(--ice-faint);background:rgba(169,232,255,.04);color:var(--signal);padding:0 14px;font:300 12px var(--f-display)}
.xlate h4{margin:8px 0 2px;font:400 9px var(--f-mono);letter-spacing:.22em;color:var(--muted);text-transform:uppercase}
.lang{display:flex;justify-content:space-between;align-items:center;width:100%;padding:8px 10px;font-size:13px;text-align:left;border-radius:12px}
.lang:hover:not(:disabled){background:rgba(169,232,255,.07)}
.lang[aria-pressed="true"]{color:var(--ice);background:rgba(169,232,255,.06)}
.lang small{font:400 9px var(--f-mono);letter-spacing:.14em;color:var(--muted)}
.lang:disabled{color:rgba(234,243,255,.4);cursor:default}
.mtbadge{position:absolute;top:calc(env(safe-area-inset-top,0px) + 64px);right:34px;font:400 12px var(--f-mono);letter-spacing:.14em;color:var(--orange);text-transform:uppercase}

/* ---------- Opening flight ---------- */
#introFade{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;opacity:0}
#introCap{position:fixed;left:0;right:0;bottom:calc(calc(11 * var(--vh1)) + 26px);z-index:8;text-align:center;pointer-events:none;font-family:var(--f-serif);font-style:italic;font-weight:300;font-size:clamp(1.3rem,calc(2.2 * var(--vw1)),1.9rem);letter-spacing:.02em;color:rgba(247,236,214,.92);opacity:0;filter:blur(6px);transition:opacity 1.1s ease,filter 1.1s ease}
#introCap.on{opacity:1;filter:none}
/* ---------- The Library ---------- */
.lib3d{position:relative;height:430px;--rz:330px}
.lib-stage{position:absolute;left:50%;top:40px;width:0;height:0;perspective:1500px;perspective-origin:50% 40%;touch-action:pan-y}
.lib-float{position:absolute;transform-style:preserve-3d;animation:libFloat 7s ease-in-out infinite}
@keyframes libFloat{0%,100%{transform:translateY(0) rotateX(-5deg)}50%{transform:translateY(-10px) rotateX(-3deg)}}
.lib-ring{position:absolute;transform-style:preserve-3d;transform:translateZ(calc(var(--rz) * -1))}
.lcov{position:absolute;left:-92px;top:0;width:184px;height:270px;padding:22px 18px;box-sizing:border-box;border-radius:9px 16px 16px 9px;display:grid;align-content:space-between;text-align:left;color:#fff;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;cursor:pointer;
  background:radial-gradient(120% 90% at 70% 8%,color-mix(in srgb,var(--g) 38%,transparent),transparent 60%),linear-gradient(160deg,var(--c),#05080f);
  box-shadow:inset 3px 0 0 rgba(255,255,255,.12),inset 0 0 0 1px color-mix(in srgb,var(--g) 40%,transparent),0 0 34px color-mix(in srgb,var(--g) 45%,transparent),0 40px 60px -30px #000;filter:saturate(.75) brightness(.8);transition:transform 1.4s cubic-bezier(.45,0,.2,1),opacity 1.2s ease,filter 1.2s ease}
.lcov.front{filter:none}
.lcov.front b{animation:holoFlick 5s steps(1) infinite}
@keyframes holoFlick{0%,100%{opacity:1}47%{opacity:.93}48%{opacity:1}73%{opacity:.96}}
.lcov::after{content:"";position:absolute;left:16px;right:16px;top:50%;height:88px;margin-top:-44px;border-radius:50%;box-shadow:0 0 0 1px color-mix(in srgb,var(--g) 60%,transparent),0 0 0 14px color-mix(in srgb,var(--g) 9%,transparent);opacity:.55;pointer-events:none}
.lcov small{font:400 8.5px var(--f-display);letter-spacing:.34em;color:var(--gold)}
.lcov b{font-family:var(--f-serif);font-weight:500;font-size:25px;line-height:1.05;position:relative;z-index:1}
.lcov i{font-family:var(--f-serif);font-style:italic;font-weight:300;font-size:12.5px;line-height:1.35;color:rgba(255,255,255,.78)}
.lsheen{position:absolute;left:-40%;top:0;bottom:0;width:40%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.14),transparent);animation:sheen 6s ease-in-out infinite;pointer-events:none}
@keyframes sheen{0%,60%{left:-40%}85%,100%{left:110%}}
.lib-beam{position:absolute;left:50%;bottom:66px;width:470px;height:420px;margin-left:-235px;background:linear-gradient(0deg,rgba(169,232,255,.13),rgba(169,232,255,0));clip-path:polygon(9% 0,91% 0,100% 100%,0 100%);animation:beamPulse 4s ease-in-out infinite;pointer-events:none}
@keyframes beamPulse{0%,100%{opacity:.75}50%{opacity:1}}
.lib-pad{position:absolute;left:50%;bottom:36px;width:520px;height:64px;margin-left:-260px;border-radius:50%;background:radial-gradient(ellipse,rgba(169,232,255,.34),rgba(169,232,255,.06) 55%,transparent 70%);box-shadow:0 0 0 1px rgba(169,232,255,.28),inset 0 0 30px rgba(169,232,255,.18);pointer-events:none}
.lib-nav{position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);display:flex;align-items:center;gap:16px}
.lnav{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:var(--ice);font-size:20px;line-height:1;box-shadow:inset 0 0 0 1px rgba(169,232,255,.3)}
.lnav:hover{box-shadow:inset 0 0 0 1px rgba(169,232,255,.7),0 0 18px rgba(169,232,255,.25)}
.lib-dots{display:flex;gap:10px}.lib-dots i{width:8px;height:8px;border-radius:50%;background:rgba(169,232,255,.3);cursor:pointer;transition:background .4s,box-shadow .4s}
.lib-dots i.on{background:var(--orange);box-shadow:0 0 10px var(--orange)}
.lib-feat{margin-top:26px;padding:22px 26px;border-radius:26px;background:radial-gradient(130% 120% at 0% 0%,rgba(120,200,255,.12),rgba(8,16,28,.72) 70%);box-shadow:inset 0 0 0 1px rgba(169,232,255,.18);opacity:0;transform:translateY(8px);transition:opacity .45s,transform .6s var(--ease)}
.lib-feat.show{opacity:1;transform:none}
.lib-feat em{font:400 12px var(--f-display);letter-spacing:.3em;text-transform:uppercase;font-style:normal;color:var(--ice)}
.lib-feat h3{margin:8px 0 4px;font-family:var(--f-serif);font-weight:400;font-size:30px;color:#f3e6cf}
.lib-feat p{margin:0 0 16px;font-family:var(--f-serif);font-style:italic;font-size:17px;line-height:1.45;color:rgba(234,243,255,.8)}
.lf-b{display:flex;gap:12px;flex-wrap:wrap}
@media (max-width:980px){.lib3d{height:360px;--rz:230px}.lcov{transform-origin:50% 50%;scale:.8}.lib-beam,.lib-pad{width:320px;margin-left:-160px}}

/* ---------- Crew Careers ---------- */
.page.jobs{grid-template-rows:minmax(calc(52 * var(--vh1)),auto) auto auto auto;align-items:end}
.page.jobs .hero{padding-bottom:10px}
.board{grid-column:1/-1;padding-top:clamp(60px,calc(9 * var(--vh1)),110px)}
.board-h2{font-family:var(--f-serif);font-weight:300;font-size:clamp(2rem,calc(3.2 * var(--vw1)),2.9rem);line-height:1.1;margin:14px 0 0}
.board .assigns{margin-top:28px}
a.assign{text-decoration:none;color:inherit}
.ext{font-size:14px;color:var(--gold)}
.stepn{display:inline-grid;place-items:center;width:22px;height:22px;margin-right:12px;border-radius:50%;font:400 10px var(--f-mono);color:var(--void);background:var(--gold);box-shadow:0 0 12px rgba(233,211,160,.45);letter-spacing:0}
.mentor{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr);gap:40px;align-items:center;margin-top:clamp(60px,calc(9 * var(--vh1)),110px);padding:40px 44px;border-radius:32px;background:radial-gradient(120% 140% at 0% 0%,rgba(233,211,160,.10),rgba(8,18,26,.75) 60%);box-shadow:inset 0 0 0 1px rgba(233,211,160,.22),0 40px 80px -50px #000}
.mentor h2{font-family:var(--f-serif);font-weight:300;font-size:clamp(1.8rem,calc(2.8 * var(--vw1)),2.5rem);margin:14px 0 12px}
.mentor p{margin:0 0 18px;color:rgba(234,243,255,.8);line-height:1.75;font-size:15.5px;max-width:60ch}
.m-helps{display:flex;flex-wrap:wrap;gap:10px}.m-helps span{font:400 10.5px var(--f-display);letter-spacing:.14em;text-transform:uppercase;padding:9px 16px;border-radius:999px;color:var(--gold);box-shadow:inset 0 0 0 1px rgba(233,211,160,.35)}
.m-cta{display:grid;justify-items:start;gap:14px}.m-cta small{font-size:12.5px;color:var(--muted);line-height:1.5}
.board-h{display:flex;align-items:center;gap:10px;font:400 10px var(--f-display);letter-spacing:.32em;text-transform:uppercase;color:var(--gold);margin:0 0 16px 6px}
.assigns{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.assign{position:relative;display:grid;gap:8px;text-align:left;padding:22px 22px 20px;border-radius:26px;overflow:hidden;background:linear-gradient(160deg,rgba(16,40,52,.78),rgba(6,14,22,.86));box-shadow:inset 0 0 0 1px rgba(140,230,240,.16),inset 0 1px 0 rgba(255,255,255,.06),0 30px 60px -36px #000;transition:transform .5s var(--ease),box-shadow .5s}
.assign:hover{transform:translateY(-4px);box-shadow:inset 0 0 0 1px rgba(233,211,160,.6),0 0 40px rgba(233,211,160,.14),0 34px 60px -30px #000}
.as-sheen{position:absolute;left:-60%;top:0;bottom:0;width:50%;background:linear-gradient(100deg,transparent,rgba(255,240,210,.12),transparent);transition:left .9s var(--ease);pointer-events:none}
.assign:hover .as-sheen{left:120%}
.as-top{display:flex;justify-content:space-between;align-items:center}
.as-top em{font:400 9px var(--f-mono);letter-spacing:.18em;text-transform:uppercase;font-style:normal;color:rgba(140,230,240,.9)}
.pips{display:flex;gap:5px}.pips i{width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 8px rgba(233,211,160,.7)}
.assign strong{font-family:var(--f-serif);font-weight:400;font-size:1.45rem;line-height:1.15;color:#f3e6cf}
.assign small{font-size:13px;line-height:1.55;color:rgba(234,243,255,.74)}
.as-go{margin-top:4px;font:400 10px var(--f-display);letter-spacing:.2em;text-transform:uppercase;color:var(--ice)}
.studio{grid-column:1/-1;padding-top:clamp(60px,calc(9 * var(--vh1)),110px)}
.st-head h2{font-family:var(--f-serif);font-weight:300;font-size:clamp(2rem,calc(3.2 * var(--vw1)),2.9rem);line-height:1.1;margin:14px 0 0}
.st-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:28px;margin-top:30px;align-items:start}
.st-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:26px;border-radius:28px;background:radial-gradient(130% 120% at 0% 0%,rgba(120,220,230,.08),rgba(6,14,22,.8) 70%);box-shadow:inset 0 0 0 1px rgba(140,230,240,.14)}
.st-form label{display:grid;gap:7px}.st-form label.wide{grid-column:1/-1}
.st-form span{font:400 12px var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.st-form input,.st-form textarea{width:100%;min-width:0;box-sizing:border-box}
.st-form input{font:300 15px var(--f-display);color:var(--signal);padding:13px 16px;border-radius:16px;border:0;outline:0;background:rgba(2,10,18,.6);box-shadow:inset 0 0 0 1px rgba(140,230,240,.16);transition:box-shadow .3s}
.st-form input:focus{box-shadow:inset 0 0 0 1px rgba(233,211,160,.6),0 0 20px rgba(233,211,160,.12)}
.st-form input::placeholder{color:rgba(234,243,255,.3)}
.st-kind{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.st-full{grid-column:1/-1;display:grid;gap:14px;padding-top:6px}
.st-full[hidden]{display:none}
.st-sub{font:400 10px var(--f-display);letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-top:8px}
.st-row3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.exp{display:grid;gap:12px;padding:14px;border-radius:20px;background:rgba(2,10,18,.35);box-shadow:inset 0 0 0 1px rgba(140,230,240,.08)}
.st-form textarea{font:300 14px var(--f-display);color:var(--signal);padding:12px 16px;border-radius:16px;border:0;outline:0;resize:vertical;background:rgba(2,10,18,.6);box-shadow:inset 0 0 0 1px rgba(140,230,240,.16)}
.st-form textarea:focus{box-shadow:inset 0 0 0 1px rgba(233,211,160,.6)}
.st-form textarea::placeholder{color:rgba(234,243,255,.3)}
.doc-sheet.resume .doc-h{text-align:center;padding-bottom:16px}
.rs-name{font-family:var(--f-serif);font-size:1.9rem;font-weight:500;letter-spacing:.02em}
.rs-role{font-family:var(--f-serif);font-style:italic;font-size:1.05rem;color:#7a5a24;margin-top:2px}
.rs-contact{font-size:12px;color:#4a5566;margin-top:8px;letter-spacing:.04em}
.doc-b h5{margin:16px 0 8px;font:600 10px var(--f-display);letter-spacing:.26em;text-transform:uppercase;color:#7a5a24}
.rj{margin-bottom:12px}.rj-h{display:flex;justify-content:space-between;gap:12px;font-size:14px}.rj-h span{font-size:12.5px;color:#4a5566;white-space:nowrap}
.rj-o{font-size:13px;color:#4a5566;font-style:italic;margin:2px 0 6px}
.rj ul{margin:0;padding-left:18px}.rj li{font-size:13.5px;line-height:1.6;margin-bottom:3px}
.rs-skills{display:flex;flex-wrap:wrap;gap:8px}.rs-skills span{font-size:12.5px;padding:4px 12px;border-radius:999px;background:rgba(122,90,36,.1);color:#3a2f1c}
@media print{body.printing-doc *{visibility:hidden!important}body.printing-doc .doc-sheet,body.printing-doc .doc-sheet *{visibility:visible!important}
  body.printing-doc .doc-sheet{position:fixed!important;left:0;top:0;width:100%;min-height:0;transform:none!important;box-shadow:none!important;background:#fff!important;border-radius:0;padding:40px 48px}}
.st-doc{display:grid;gap:14px;position:sticky;top:18px;align-self:start}
.doc-sheet{position:relative;min-height:330px;padding:34px 36px;border-radius:22px;background:linear-gradient(170deg,rgba(248,244,234,.96),rgba(232,226,212,.94));color:#1d2430;box-shadow:0 40px 80px -40px #000,0 0 50px rgba(233,211,160,.12);transform:perspective(1600px) rotateY(-3deg);transform-origin:100% 50%}
.doc-h{font-family:var(--f-serif);font-size:1.5rem;font-weight:500;color:#101722;margin-bottom:18px;padding-bottom:14px;box-shadow:0 1px 0 rgba(160,130,70,.35)}
.doc-b p{margin:0 0 12px;font-size:14.5px;line-height:1.7}
.doc-act{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.doc-note{font-size:12px;color:var(--muted)}
.cc-tv{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:center;padding-top:clamp(40px,calc(6 * var(--vh1)),70px)}
.cc-tv .tv{order:2}
.cc-tv h3{font-family:var(--f-serif);font-weight:300;font-size:2rem;margin:12px 0 10px}
.cc-tv p{color:rgba(234,243,255,.75);line-height:1.7;font-size:15px;max-width:48ch}
@media (max-width:1180px){.assigns{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:980px){.assigns,.st-grid,.cc-tv,.st-form,.mentor{grid-template-columns:1fr}.doc-sheet{transform:none}}
/* ---------- Room to room ---------- */
#xfer.lite .xf-veil{background:radial-gradient(ellipse at 50% 46%,rgba(6,16,32,.2),rgba(2,5,11,.72) 75%)}

/* ---------- Communications ---------- */
.page.contact{grid-template-rows:minmax(calc(calc(100 * var(--vh1)) - 78px - 118px - 40px),auto) auto;align-items:center}
.cm-facts{display:flex;flex-wrap:wrap;gap:30px;margin:4px 0 32px}
.cm-facts b{display:block;font:200 26px var(--f-display);color:var(--signal)}
.cm-facts span{display:block;font:400 12px var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:5px;max-width:16ch;line-height:1.5}
.cm-console{grid-column:1/-1;max-width:760px;padding-bottom:30px}
.cm-card{position:relative;padding:28px 32px 30px;border-radius:32px;background:linear-gradient(170deg,rgba(18,34,58,.86),rgba(6,12,24,.9));box-shadow:inset 0 0 0 1px rgba(169,232,255,.16),inset 0 1px 0 rgba(255,255,255,.08),0 50px 90px -50px #000,0 0 60px rgba(90,160,255,.08);backdrop-filter:blur(6px)}
.cm-head{display:flex;justify-content:space-between;align-items:center;font:400 10px var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ice)}
.cm-head b{font-weight:400;color:#8fe3c3}
.cm-card #sigwave{display:block;width:100%;height:46px;margin:10px 0 6px}
.cm-step{display:flex;align-items:center;margin:22px 0 12px;font:400 10px var(--f-display);letter-spacing:.28em;text-transform:uppercase;color:var(--gold)}
.cm-topics,.cm-langs{display:flex;flex-wrap:wrap;gap:10px}
.cm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.cm-grid label{display:grid;gap:7px}.cm-grid .wide{grid-column:1/-1}
.cm-grid span{font:400 12px var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.cm-grid input,.cm-grid textarea{width:100%;box-sizing:border-box;font:300 15px var(--f-display);color:var(--signal);padding:13px 16px;border-radius:16px;border:0;outline:0;background:rgba(2,8,18,.6);box-shadow:inset 0 0 0 1px rgba(169,232,255,.16);transition:box-shadow .3s;resize:vertical}
.cm-grid input:focus,.cm-grid textarea:focus{box-shadow:inset 0 0 0 1px rgba(233,211,160,.6),0 0 20px rgba(233,211,160,.12)}
.cm-grid textarea::placeholder{color:rgba(234,243,255,.3)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.cm-send{display:flex;align-items:center;gap:18px;margin-top:26px}
.cm-send small{font-size:12.5px;color:#ffb38a}
#cform.sending{animation:encode 1.4s ease forwards}
@keyframes encode{0%{opacity:1;filter:none;transform:none}60%{opacity:.4;filter:blur(3px) brightness(1.6);transform:scale(.985)}100%{opacity:0;filter:blur(10px) brightness(2);transform:scale(.96) translateX(40px)}}
.cm-done{display:grid;justify-items:center;text-align:center;gap:10px;padding:34px 10px 10px;animation:materialize 1s var(--ease)}
.cm-done h3{margin:6px 0 0;font-family:var(--f-serif);font-weight:300;font-size:2rem;color:#f3e6cf}
.cm-done p{margin:0 0 10px;max-width:46ch;color:rgba(234,243,255,.78);line-height:1.7}
.cm-check svg{width:74px;height:74px;fill:none;stroke-linecap:round;stroke-linejoin:round}
.cm-check circle{stroke:rgba(143,227,195,.35);stroke-width:1.5}
.cm-check path{stroke:#8fe3c3;stroke-width:2.4;stroke-dasharray:40;stroke-dashoffset:40;animation:tick .9s ease .3s forwards;filter:drop-shadow(0 0 6px rgba(143,227,195,.6))}
@keyframes tick{to{stroke-dashoffset:0}}
.cm-foot{margin:16px 6px 0;font-size:12.5px;color:var(--muted);line-height:1.6}
@media (max-width:980px){.cm-grid{grid-template-columns:1fr}.cm-card{padding:22px}}

/* ---------- About: the personnel file ---------- */
.page.about{display:block;max-width:1180px}
.page.about .dossier{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:clamp(36px,calc(6 * var(--vw1)),84px);align-items:center;min-height:calc(calc(100 * var(--vh1)) - 78px - 118px - 40px);padding:10px 0 30px}
.portrait{display:grid;justify-items:center;gap:16px}
.pt-frame{position:relative;width:min(300px,calc(70 * var(--vw1)));aspect-ratio:3/4;border-radius:160px 160px 30px 30px;overflow:hidden;background:radial-gradient(120% 80% at 50% 20%,rgba(120,190,255,.16),rgba(6,14,26,.9) 70%);box-shadow:inset 0 0 0 1px rgba(169,232,255,.28),0 0 0 7px rgba(169,232,255,.035),0 0 60px rgba(90,170,255,.16),0 40px 80px -40px #000}
.pt-frame>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:52% 22%;filter:saturate(.92) contrast(1.03)}
.pt-frame::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(180deg,rgba(120,190,255,.10),rgba(0,0,0,0) 35%,rgba(2,8,18,.35));pointer-events:none}
.pt-empty{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:18px}
.pt-empty img{width:58%;opacity:.55;filter:drop-shadow(0 0 22px rgba(233,211,160,.3))}
.pt-empty span{font:400 10px var(--f-display);letter-spacing:.36em;text-transform:uppercase;color:rgba(169,232,255,.55)}
.pt-scan{position:absolute;left:0;right:0;height:38%;top:-40%;background:linear-gradient(180deg,rgba(169,232,255,0),rgba(169,232,255,.10) 85%,rgba(210,244,255,.28));animation:ptScan 5.5s cubic-bezier(.5,0,.5,1) infinite;pointer-events:none}
@keyframes ptScan{0%{top:-40%}60%,100%{top:105%}}
.pt-cap{font:400 12px var(--f-mono);letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.dossier-txt h1{margin:18px 0 8px}
.role{font-family:var(--f-serif);font-style:italic;font-weight:300;font-size:clamp(1.25rem,calc(1.8 * var(--vw1)),1.6rem);color:var(--gold);margin:0 0 22px;letter-spacing:.01em}
.facts4{display:grid;grid-template-columns:repeat(4,minmax(0,auto));justify-content:start;gap:30px;margin:6px 0 34px}
.facts4 b{display:block;font:200 34px var(--f-display);color:var(--signal);text-shadow:0 0 24px rgba(169,232,255,.25)}
.facts4 span{display:block;max-width:12ch;font:400 12px var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);line-height:1.5;margin-top:4px}
.ab-sec{padding:clamp(70px,calc(10 * var(--vh1)),120px) 0 0}
.sec-head{margin-bottom:34px}
.sec-head h2{font-family:var(--f-serif);font-weight:300;font-size:clamp(2rem,calc(3.2 * var(--vw1)),2.9rem);line-height:1.1;margin:14px 0 0;letter-spacing:-.003em}
.sec-sub{margin:14px 0 0;max-width:60ch;color:rgba(234,243,255,.72);font-size:15px;line-height:1.7}
.reveal{opacity:0;transform:translateY(26px);transition:opacity 1.1s ease,transform 1.3s var(--ease)}
.reveal.in{opacity:1;transform:none}
/* the story */
.story{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);gap:clamp(30px,calc(6 * var(--vw1)),90px);align-items:start}
.story-quote{position:sticky;top:30px}
.story-quote blockquote{margin:18px 0 0;font-family:var(--f-serif);font-style:italic;font-weight:300;font-size:clamp(1.8rem,calc(2.8 * var(--vw1)),2.6rem);line-height:1.22;color:#f3e6cf;text-wrap:balance}
.story-quote blockquote::before{content:"\201C";display:block;font-size:4rem;line-height:.6;color:var(--gold);opacity:.6;margin-bottom:14px}
.story-body p{margin:0 0 22px;font-size:16.5px;line-height:1.85;color:rgba(234,243,255,.84);letter-spacing:.012em}
.story-body p:first-child::first-letter{font-family:var(--f-serif);font-size:3.6em;float:left;line-height:.9;margin:6px 12px 0 0;color:var(--gold)}
/* the journey */
.curve{position:relative;height:250px}
.curve svg{position:absolute;left:0;top:20px;width:100%;height:170px;overflow:visible}
.curve path{stroke-dasharray:1;stroke-dashoffset:1}
#ab-journey.in .curve path{animation:drawC 2.6s var(--ease) .2s forwards}
@keyframes drawC{to{stroke-dashoffset:0}}
.enode{position:absolute;transform:translate(-50%,-7px);display:grid;justify-items:center;gap:6px;width:150px;text-align:center;opacity:0;transition:opacity .8s ease}
#ab-journey.in .enode{opacity:1}
#ab-journey.in .enode:nth-of-type(1){transition-delay:0.50s}#ab-journey.in .enode:nth-of-type(2){transition-delay:0.75s}#ab-journey.in .enode:nth-of-type(3){transition-delay:1.00s}#ab-journey.in .enode:nth-of-type(4){transition-delay:1.25s}#ab-journey.in .enode:nth-of-type(5){transition-delay:1.50s}#ab-journey.in .enode:nth-of-type(6){transition-delay:1.75s}#ab-journey.in .enode:nth-of-type(7){transition-delay:2.00s}
.enode i{width:13px;height:13px;border-radius:50%;background:#06101c;box-shadow:inset 0 0 0 1.5px var(--ice),0 0 12px rgba(169,232,255,.4);transition:transform .5s var(--ease),background .5s,box-shadow .5s}
.enode b{font:400 13px var(--f-mono);letter-spacing:.14em;color:var(--signal)}
.enode span{font-size:12.5px;line-height:1.4;color:var(--muted);transition:color .4s}
.enode:hover i{transform:scale(1.25)}
.enode.on i{background:var(--orange);box-shadow:0 0 0 5px rgba(255,159,67,.15),0 0 22px var(--orange);transform:scale(1.35)}
.enode.on span{color:var(--signal)}
.traveler{position:absolute;left:50%;top:40px;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;background:radial-gradient(circle,rgba(255,236,210,.95),rgba(255,180,100,.35) 40%,rgba(255,160,80,0) 70%);transition:left 1.4s var(--ease),top 1.4s var(--ease);pointer-events:none;opacity:0}
#ab-journey.in .traveler{opacity:1;transition:left 1.4s var(--ease),top 1.4s var(--ease),opacity 1s ease 2.4s}
.era-panel{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.5fr);gap:40px;padding:32px 38px;border-radius:30px;background:radial-gradient(120% 140% at 0% 0%,rgba(120,200,255,.10),rgba(10,24,44,.55) 60%);box-shadow:inset 0 0 0 1px rgba(169,232,255,.14),0 30px 60px -40px #000;backdrop-filter:blur(3px);opacity:0;transform:translateY(8px);transition:opacity .45s ease,transform .6s var(--ease);min-height:160px}
.era-panel.show{opacity:1;transform:none}
.ep-when b{display:block;font-family:var(--f-serif);font-weight:300;font-size:clamp(1.6rem,calc(2.4 * var(--vw1)),2.2rem);color:var(--gold)}
.ep-when span{display:block;margin-top:8px;font-size:14px;line-height:1.55;color:rgba(234,243,255,.7)}
.ep-what h3{margin:0 0 14px;font-weight:300;font-size:clamp(1.15rem,calc(1.6 * var(--vw1)),1.4rem);line-height:1.35}
.ep-what ul{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.ep-what li{position:relative;padding-left:22px;font-size:14.5px;line-height:1.6;color:rgba(234,243,255,.8)}
.ep-what li::before{content:"";position:absolute;left:2px;top:.62em;width:7px;height:7px;border-radius:50%;background:var(--ice);box-shadow:0 0 10px var(--ice)}
/* the record */
.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:26px}
.fchip{font:400 10.5px var(--f-display);letter-spacing:.16em;text-transform:uppercase;padding:10px 18px;border-radius:999px;color:var(--muted);background:rgba(10,22,40,.5);box-shadow:inset 0 0 0 1px rgba(169,232,255,.14);transition:color .3s,box-shadow .3s,background .3s}
.fchip:hover{color:var(--signal)}
.fchip[aria-pressed="true"]{color:var(--ice);background:rgba(169,232,255,.08);box-shadow:inset 0 0 0 1px rgba(169,232,255,.5),0 0 18px rgba(169,232,255,.15)}
.creds{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px}
.cred{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:16px;align-items:center;padding:18px 18px 18px 18px;border-radius:24px;background:linear-gradient(160deg,rgba(18,34,56,.75),rgba(8,16,28,.8));box-shadow:inset 0 0 0 1px rgba(169,232,255,.1),inset 0 1px 0 rgba(255,255,255,.05);transition:box-shadow .4s,transform .4s var(--ease)}
.cred:hover{transform:translateY(-3px);box-shadow:inset 0 0 0 1px rgba(233,211,160,.35),0 18px 40px -24px rgba(0,0,0,.9),0 0 30px rgba(233,211,160,.08)}
.cred.off{display:none}
.medal-ic{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,rgba(233,211,160,.18),rgba(20,24,30,.6));box-shadow:inset 0 0 0 1.4px rgba(233,211,160,.55),0 0 18px rgba(233,211,160,.12)}
.medal-ic svg{width:26px;height:26px;fill:none;stroke:var(--gold);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.cred h4{margin:0 0 5px;font-family:var(--f-serif);font-weight:400;font-size:1.13rem;line-height:1.25;color:#f3e6cf}
.cred p{margin:0;font-size:12.5px;line-height:1.5;color:var(--muted)}
.cred-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:9px}
.cred-meta .yr{white-space:nowrap;font:400 11px var(--f-mono);letter-spacing:.12em;color:var(--ice)}
.cred-meta .st{white-space:nowrap;font:400 12px var(--f-display);letter-spacing:.14em;text-transform:uppercase;padding:4px 10px;border-radius:999px;color:rgba(234,243,255,.75);background:rgba(169,232,255,.06)}
.cred-meta .st.ok{color:#8fe3c3;background:rgba(61,220,151,.08);box-shadow:inset 0 0 0 1px rgba(61,220,151,.25)}
.cred-meta .st.prog{color:#ffc58a;background:rgba(255,159,67,.08);box-shadow:inset 0 0 0 1px rgba(255,159,67,.3)}
.cred-view{align-self:start;font:400 12px var(--f-display);letter-spacing:.16em;text-transform:uppercase;padding:8px 13px;border-radius:999px;color:var(--ice);box-shadow:inset 0 0 0 1px rgba(169,232,255,.22)}
.cred-view:hover{box-shadow:inset 0 0 0 1px rgba(169,232,255,.6),0 0 16px rgba(169,232,255,.2)}
.learn{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(30px,calc(5 * var(--vw1)),70px);align-items:center;margin-top:56px;padding:34px 40px;border-radius:32px;background:radial-gradient(120% 140% at 0% 50%,rgba(120,200,255,.08),rgba(8,16,28,.6) 60%);box-shadow:inset 0 0 0 1px rgba(169,232,255,.1)}
.donut-wrap{position:relative;width:220px;height:220px}
.donut{width:100%;height:100%;transform:rotate(-90deg)}
.donut circle{transition:stroke-dasharray 1.8s var(--ease);filter:drop-shadow(0 0 4px currentColor)}
.donut-c{position:absolute;inset:0;display:grid;place-content:center;text-align:center}
.donut-c b{font:200 44px var(--f-display);color:var(--signal)}
.donut-c span{font:400 12px var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.learn-txt h3{margin:12px 0 10px;font-family:var(--f-serif);font-weight:300;font-size:2rem}
.learn-txt p{margin:0 0 18px;color:rgba(234,243,255,.75);line-height:1.7;font-size:15px;max-width:52ch}
.learn-txt ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;max-width:420px}
.learn-txt li{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:12px;align-items:center;font-size:14px;color:rgba(234,243,255,.85)}
.learn-txt li i{width:9px;height:9px;border-radius:50%}
.learn-txt li b{font:400 13px var(--f-mono);color:var(--signal)}
/* books and partners */
.books{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.bk{display:grid;gap:8px;text-align:left;padding:24px 22px;border-radius:24px;background:linear-gradient(160deg,rgba(18,34,56,.7),rgba(8,16,28,.8));box-shadow:inset 0 0 0 1px rgba(169,232,255,.1);transition:transform .4s var(--ease),box-shadow .4s}
.bk:hover{transform:translateY(-3px);box-shadow:inset 0 0 0 1px rgba(233,211,160,.35)}
.bk em{font:400 12px var(--f-mono);letter-spacing:.18em;text-transform:uppercase;font-style:normal;color:var(--muted)}
.bk strong{font-family:var(--f-serif);font-weight:400;font-size:1.45rem;color:#f3e6cf}
.bk span{font-size:12px;color:var(--ice)}
.net{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.page.about + .sitefoot{margin-top:110px}
@media (max-width:980px){
  .page.about .dossier{grid-template-columns:1fr;min-height:0;padding-top:20px}
  .facts4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .story{grid-template-columns:1fr}.story-quote{position:static}
  .enode{width:64px}.enode span{display:none}
  .era-panel{grid-template-columns:1fr;gap:16px;padding:24px}
  .learn{grid-template-columns:1fr;justify-items:center;padding:26px}
  .books{grid-template-columns:repeat(2,minmax(0,1fr))}.net{grid-template-columns:1fr}
  .creds{grid-template-columns:1fr}
}
/* the transfer from the bridge */
#xfer{position:fixed;inset:0;z-index:6;pointer-events:none;visibility:hidden}
#xfer.go{visibility:visible}
#xfer .xf-veil{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 46%,rgba(6,16,32,.78),rgba(2,5,11,.96) 70%);opacity:0}
#xfer.go .xf-veil{animation:xfVeil 2.15s ease forwards}
@keyframes xfVeil{0%{opacity:0}20%{opacity:1}74%{opacity:1}100%{opacity:0}}
#xfer .xf-sweep{position:absolute;left:0;right:0;height:calc(34 * var(--vh1));top:calc(-36 * var(--vh1));background:linear-gradient(180deg,rgba(169,232,255,0),rgba(169,232,255,.07) 70%,rgba(200,240,255,.16) 92%,rgba(169,232,255,0));mix-blend-mode:screen;filter:blur(6px)}
#xfer.go .xf-sweep{animation:xfSweep .95s cubic-bezier(.6,0,.3,1) .1s forwards}
@keyframes xfSweep{to{top:calc(105 * var(--vh1))}}
#xfer .xf-iris{position:absolute;left:50%;top:46%;width:calc(42 * var(--vmin1));height:calc(42 * var(--vmin1));margin:calc(-21 * var(--vmin1)) 0 0 calc(-21 * var(--vmin1));fill:none;opacity:0;transform:scale(.3)}
#xfer .xf-iris circle{stroke:rgba(169,232,255,.55);stroke-width:.8}
#xfer .xf-iris circle.b{stroke:rgba(233,211,160,.45);stroke-width:.5}
#xfer .xf-iris .c{stroke:rgba(220,246,255,.9);stroke-width:1.6}
#xfer.go .xf-iris{animation:xfIris 1.4s cubic-bezier(.3,0,.2,1) .3s forwards}
@keyframes xfIris{0%{opacity:0;transform:scale(.5) rotate(0)}25%{opacity:1;transform:scale(1) rotate(80deg)}78%{opacity:1;transform:scale(1.06) rotate(170deg)}100%{opacity:0;transform:scale(1.18) rotate(200deg)}}
#xfer .xf-cap{position:absolute;left:0;right:0;top:calc(46% + calc(25 * var(--vmin1)));text-align:center;opacity:0}
#xfer.go .xf-cap{animation:xfCap 1.3s ease .42s forwards}
@keyframes xfCap{0%{opacity:0;filter:blur(6px)}22%{opacity:1;filter:none}76%{opacity:1;filter:none}100%{opacity:0;filter:blur(4px)}}
#xfer .xf-cap small{display:block;font:400 10px var(--f-display);letter-spacing:.42em;text-transform:uppercase;color:var(--ice);margin-bottom:10px}
#xfer .xf-cap span{font-family:var(--f-serif);font-style:italic;font-weight:300;font-size:clamp(1.6rem,calc(2.6 * var(--vw1)),2.3rem);color:#f7ecd6}
@media (prefers-reduced-motion:reduce){#xfer{display:none}.reveal{opacity:1;transform:none}}

/* ---------- Bridge: the captain's view ---------- */
.bframe{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;opacity:0;transition:opacity 1.4s ease}
body.live[data-deck="bridge"] .bframe{opacity:1}
body[data-deck="contact"] .sitefoot .socials,body[data-deck="contact"] .sitefoot .lbl{display:none}
.reticle{position:fixed;left:0;top:0;width:10px;height:10px;pointer-events:none;opacity:0;transition:opacity .9s ease}
.reticle svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.reticle .rl{position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap;font:400 10.5px var(--f-display);letter-spacing:.34em;text-transform:uppercase;color:rgba(207,239,255,.85)}
.reticle .rl.t{top:-28px}.reticle .rl.b{bottom:-28px;font-size:12px;letter-spacing:.24em;color:rgba(159,212,245,.72)}
@media (max-width:980px){.bframe,.reticle{display:none}}
@media (min-width:981px){
  .page.home{display:block}
  .page.home .bview{position:relative;height:calc(calc(100 * var(--vh1)) - 78px - 118px - 6px);min-height:560px}
  .page.home .hero{position:absolute;left:4.5%;top:8.5%;max-width:430px;padding:26px 30px 24px;border-radius:28px;background:radial-gradient(130% 120% at 0% 0%,rgba(120,200,255,.12),rgba(20,60,110,.05) 70%);box-shadow:inset 0 0 0 1px rgba(160,220,255,.18),0 0 50px rgba(90,170,255,.08);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
  .page.home h1{font-size:clamp(2.4rem,calc(3.4 * var(--vw1)),3.1rem);margin:12px 0 12px}
  .page.home .sub{font-size:.92rem;line-height:1.58;margin-bottom:16px}
  .page.home .stats{gap:22px;margin-bottom:18px}.page.home .stat b{font-size:26px}
  .page.home .right{position:absolute;left:50%;bottom:0;width:min(800px,calc(58 * var(--vw1)));margin:0;transform:translateX(-50%) perspective(1000px) rotateX(32deg);transform-origin:50% 100%}
  .page.home .right .glass{background:linear-gradient(180deg,rgba(18,30,44,.94),rgba(8,14,22,.96));box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 0 0 1px rgba(150,210,255,.12),0 30px 60px -30px #000}
  .page.home .teasers{margin-top:60px}
}
/* ---------- Stage ---------- */
.stage{position:absolute;top:calc(env(safe-area-inset-top,0px) + 78px);bottom:calc(env(safe-area-inset-bottom,0px) + 118px);left:0;right:0;overflow-y:auto;overflow-x:hidden;padding-inline:34px;scrollbar-width:thin;scrollbar-color:rgba(169,232,255,.2) transparent;opacity:0;transform:translateY(10px);filter:blur(6px);transition:opacity .9s ease,transform 1.1s var(--ease),filter .9s ease;pointer-events:none}
.stage.show{opacity:1;transform:none;filter:none;pointer-events:auto}
.stage.out{transition:opacity .5s ease,transform .6s ease,filter .5s ease}
.page{min-height:100%;box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,calc(6 * var(--vw1)),100px);align-items:center;padding-block:24px 40px;max-width:1440px;margin:0 auto}
.page.home .right{align-self:end;justify-self:end;width:min(100%,540px)}
.hero{min-width:0}
.eyebrow{font:400 10.5px var(--f-mark);letter-spacing:.42em;text-transform:uppercase;color:var(--ice);display:flex;align-items:center;gap:14px}
.eyebrow::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ice);box-shadow:0 0 12px var(--ice),0 0 3px #fff;flex:none}
h1{font-family:var(--f-serif);font-weight:300;font-size:clamp(2.6rem,calc(5.2 * var(--vw1)),5rem);line-height:1.02;letter-spacing:-.005em;margin:20px 0 18px;text-wrap:balance}
h2,h3,h4{font-family:var(--f-serif);font-weight:300;letter-spacing:-.003em}
.sub{font-size:clamp(1rem,calc(1.2 * var(--vw1)),1.12rem);font-weight:300;line-height:1.65;letter-spacing:.025em;color:rgba(234,243,255,.76);margin:0 0 30px;max-width:46ch}
.stats{display:flex;gap:34px;flex-wrap:wrap;margin:0 0 34px}
.stat b{display:block;font:200 36px var(--f-display);letter-spacing:.01em;font-variant-numeric:tabular-nums;color:var(--signal);text-shadow:0 0 24px rgba(169,232,255,.25)}
.stat span{font:400 12px var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center}

/* ---------- Curved glass console ---------- */
.right{min-width:0;perspective:1600px}
.glass{position:relative;border-radius:34px;padding:30px 30px 26px;
  background:linear-gradient(115deg,rgba(255,255,255,.07) 0%,transparent 26%),linear-gradient(165deg,rgba(70,120,170,.16),rgba(8,18,34,.56) 55%,rgba(4,10,20,.66));
  backdrop-filter:blur(18px) saturate(1.15);-webkit-backdrop-filter:blur(18px) saturate(1.15);
  border:1px solid rgba(169,232,255,.13);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),inset 0 0 70px rgba(169,232,255,.05),0 50px 90px -40px rgba(0,0,0,.95);
  transform:rotateY(-9deg);transform-origin:100% 50%}
.glass::before{content:"";position:absolute;left:10%;right:10%;top:-1px;height:48px;border-top:1.5px solid rgba(190,240,255,.85);border-radius:50% 50% 0 0/100% 100% 0 0;filter:drop-shadow(0 0 6px rgba(169,232,255,.9));-webkit-mask:linear-gradient(90deg,transparent,#000 28%,#000 72%,transparent);mask:linear-gradient(90deg,transparent,#000 28%,#000 72%,transparent);pointer-events:none}
.glass::after{content:"";position:absolute;left:22%;right:22%;bottom:-2px;height:3px;border-radius:50%;background:radial-gradient(ellipse at 50% 50%,rgba(169,232,255,.7),transparent 70%);filter:blur(1.5px);pointer-events:none}
.chead{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;font:400 12px var(--f-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.chead b{font-weight:400;color:var(--ice)}
.lbl{font:400 12px var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;justify-content:center}
.val{font:300 20px var(--f-display);letter-spacing:.04em;color:var(--signal);font-variant-numeric:tabular-nums}
.val small{font-size:12px;color:var(--muted);margin-left:4px;letter-spacing:.1em}
.dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:8px;flex:none}
.dot.live{background:var(--green);box-shadow:0 0 7px var(--green)}
.dot.amb{box-shadow:inset 0 0 0 1px var(--muted)}
.well{border-radius:20px;background:rgba(169,232,255,.04);box-shadow:inset 0 1px 0 rgba(255,255,255,.05),inset 0 0 0 1px rgba(169,232,255,.06)}

/* home telemetry */
.tele{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 14px;align-items:start}
.inst{position:relative;display:grid;gap:8px;justify-items:center;min-width:0}
#core,#radar{width:128px;height:128px;max-width:100%}
.core-read{position:absolute;left:0;right:0;top:0;height:128px;display:grid;place-items:center;text-align:center}
.core-read .lbl{font-size:8px}
#temp{width:128px;height:92px;max-width:100%}
.temp-read{position:absolute;left:0;right:0;top:44px;text-align:center}
.unit{font:500 9px var(--f-mono);letter-spacing:.16em;color:var(--ice);padding:5px 11px;border-radius:12px;background:rgba(169,232,255,.06);box-shadow:inset 0 0 0 1px var(--ice-faint)}
.unit:hover{box-shadow:inset 0 0 0 1px var(--ice-soft)}
.waves{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px;padding:14px 16px 10px}
.waves>div{display:grid;gap:6px;min-width:0}
.waves .lbl{justify-content:flex-start}
#osc{width:100%;height:52px}
#spec{width:100%;height:52px}
.legend{grid-column:1/-1;display:flex;gap:18px;justify-content:center;font:400 9px var(--f-mono);letter-spacing:.16em;color:var(--muted);text-transform:uppercase}
.legend span{display:flex;align-items:center}

/* about curved timeline */
.arcrail{position:relative}
.arcrail svg{position:absolute;left:0;top:0;overflow:visible}
.arow{position:absolute;right:0;display:grid;grid-template-columns:52px minmax(0,1fr);gap:12px;align-items:center;min-height:40px}
.arow b{font:500 12px var(--f-mono);letter-spacing:.1em;color:var(--ice);font-variant-numeric:tabular-nums}
.arow span{font-size:14px;line-height:1.35;color:rgba(234,243,255,.86)}
.partners{margin-top:18px;display:grid;gap:10px}
.partner{display:grid;grid-template-columns:42px minmax(0,1fr);gap:14px;align-items:center;padding:12px 14px}
.ring-id{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font:400 10px var(--f-mark);letter-spacing:.1em;color:var(--ice);background:radial-gradient(circle at 35% 30%,rgba(169,232,255,.25),rgba(169,232,255,.03) 70%);box-shadow:inset 0 0 0 1px rgba(169,232,255,.35),0 0 18px rgba(169,232,255,.12)}
.partner strong{display:block;font-weight:400;font-size:14px}
.partner em{font-style:normal;font-size:12.5px;color:var(--muted)}

/* services dials */
.dials{display:flex;gap:10px;flex-wrap:wrap;justify-content:space-between;margin-bottom:22px}
.dial{position:relative;width:76px;display:grid;justify-items:center;gap:9px;text-align:center}
.dial .ring{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;position:relative;background:radial-gradient(circle at 35% 30%,rgba(169,232,255,.12),rgba(4,10,20,.4) 70%);box-shadow:inset 0 0 0 1px var(--ice-faint),inset 0 1px 0 rgba(255,255,255,.12);transition:box-shadow .5s,transform .3s}
.dial .ring::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:1.5px solid transparent;border-top-color:rgba(169,232,255,.4);animation:spin 14s linear infinite;opacity:0;transition:opacity .5s}
.dial svg{width:24px;height:24px;stroke:var(--ice-soft);fill:none;stroke-width:1.2}
.dial small{font:400 8.5px var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);line-height:1.4}
.dial:hover .ring{transform:scale(1.05)}
.dial[aria-pressed="true"] .ring{box-shadow:inset 0 0 0 1px var(--ice),inset 0 0 22px rgba(169,232,255,.25),0 0 26px rgba(169,232,255,.3)}
.dial[aria-pressed="true"] .ring::after{opacity:1}
.dial[aria-pressed="true"] svg{stroke:var(--signal)}
.dial[aria-pressed="true"] small{color:var(--ice)}
.svc-detail{padding:20px 22px}
.svc-detail h3{margin:0 0 8px;font-weight:300;font-size:22px}
.svc-detail p{margin:0 0 18px;color:rgba(234,243,255,.8);line-height:1.6;font-size:14.5px;max-width:52ch}
.secure{display:flex;align-items:center;gap:10px;font:400 12px var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:16px}
.secure svg{width:14px;height:14px;stroke:var(--green);fill:none;stroke-width:1.4}

/* academy */
#constel{width:100%;height:220px}
.featured{display:grid;gap:10px;margin-top:10px;padding:18px 20px}
.featured h3{margin:0;font-weight:300;font-size:19px}
.path{display:flex;gap:4px;align-items:center}
.path i{flex:1;height:5px;border-radius:3px;background:rgba(169,232,255,.13)}
.path i.done{background:var(--ice);box-shadow:0 0 6px rgba(169,232,255,.6)}
.path i.now{background:var(--orange);box-shadow:0 0 8px var(--orange);animation:pip 1.6s infinite}
.featured .lbl{justify-content:flex-start;letter-spacing:.12em}
.creds{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:center;margin-top:16px}
.medal{width:72px;height:72px;perspective:400px}
.medal div{width:100%;height:100%;border-radius:50%;display:grid;place-items:center;animation:turn 10s linear infinite;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.55),rgba(169,232,255,.35) 35%,rgba(61,220,151,.22) 70%,rgba(169,232,255,.1));box-shadow:0 0 26px rgba(169,232,255,.35),inset 0 0 0 1px rgba(255,255,255,.35)}
.medal svg{width:34px;height:34px}
@keyframes turn{to{transform:rotateY(360deg)}}
.cert{font:400 10px var(--f-mono);letter-spacing:.14em;color:var(--muted);line-height:1.8;text-transform:uppercase}
.cert b{color:var(--signal);font-weight:400}

/* holo */
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:22px}
.tab{font:400 10.5px var(--f-display);letter-spacing:.2em;text-transform:uppercase;padding:9px 16px;border-radius:18px;color:var(--muted)}
.tab:hover{color:var(--signal)}
.tab[aria-selected="true"]{color:var(--ice);background:rgba(169,232,255,.08);box-shadow:inset 0 0 0 1px var(--ice-faint),0 0 18px rgba(169,232,255,.12)}
.shelf{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.bk{display:grid;justify-items:center;gap:12px;text-align:center}
.bk .stagebk{perspective:600px;width:100%;display:grid;justify-items:center;position:relative;padding-bottom:20px}
.bk .stagebk::after{content:"";position:absolute;bottom:0;left:12%;right:12%;height:24px;border-radius:50%;background:radial-gradient(ellipse at 50% 60%,rgba(169,232,255,.55),transparent 70%);filter:blur(3px)}
.cover{width:min(92px,100%);aspect-ratio:2/3;transform-style:preserve-3d;animation:float 10s ease-in-out infinite;position:relative}
.cover .f{position:absolute;inset:0;padding:10px 8px;border-radius:4px;display:grid;align-content:space-between;text-align:left;background:linear-gradient(170deg,rgba(169,232,255,.26),rgba(20,60,100,.38) 45%,rgba(169,232,255,.14));box-shadow:inset 0 0 0 1px rgba(169,232,255,.45),0 0 24px rgba(169,232,255,.25);overflow:hidden}
.cover .f b{font:700 7.5px var(--f-mark);letter-spacing:.14em;line-height:1.5;color:var(--signal)}
.cover .f i{font:400 6.5px var(--f-mono);letter-spacing:.14em;color:var(--ice);font-style:normal}
@keyframes float{0%,100%{transform:rotateY(-16deg) translateY(0)}50%{transform:rotateY(16deg) translateY(-5px)}}
.bk small{font-size:12px;line-height:1.45;color:rgba(234,243,255,.72)}
.bk:nth-child(2) .cover{animation-delay:-2.5s}.bk:nth-child(3) .cover{animation-delay:-5s}.bk:nth-child(4) .cover{animation-delay:-7.5s}
.row{display:grid;gap:6px;padding:14px 16px;margin-bottom:10px}
.row b{font-weight:300;font-size:16.5px}
.row span.m{font:400 12px var(--f-mono);letter-spacing:.18em;color:var(--muted);text-transform:uppercase}
.note{font-size:12.5px;color:var(--muted);line-height:1.55;margin:0}
#sigwave{width:100%;height:56px}

/* jobs */
.mission{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 16px;margin-bottom:10px}
.light{width:9px;height:9px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green);animation:pip 2.6s ease-in-out infinite}
.light.info{background:var(--ice);box-shadow:0 0 10px var(--ice)}
.mission strong{font-weight:300;font-size:15.5px;display:block}
.mission em{font-style:normal;font:400 12px var(--f-mono);letter-spacing:.16em;color:var(--muted);text-transform:uppercase}

/* contact */
.form{display:grid;gap:14px}
.f2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.fld{display:grid;gap:7px;min-width:0}
.fld label{font:400 12px var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);padding-left:4px}
.fld input,.fld select,.fld textarea{background:rgba(169,232,255,.045);border:0;border-radius:16px;box-shadow:inset 0 0 0 1px rgba(169,232,255,.13),inset 0 2px 6px rgba(0,0,0,.35);color:var(--signal);font:300 15px var(--f-display);padding:11px 14px;min-width:0;transition:box-shadow .4s}
.fld select option{background:#07101f}
.fld textarea{resize:vertical;min-height:74px}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;box-shadow:inset 0 0 0 1px var(--ice-soft),0 0 20px rgba(169,232,255,.15),inset 0 2px 6px rgba(0,0,0,.35)}
.addr{display:inline-flex;gap:12px;align-items:center;font:400 13px var(--f-mono);letter-spacing:.05em;color:var(--ice);user-select:text;padding:10px 16px;border-radius:18px}

/* ---------- Touch-panel buttons ---------- */
.btn{position:relative;display:inline-flex;align-items:center;gap:12px;padding:15px 26px 15px 22px;border-radius:999px;font:400 11.5px var(--f-display);letter-spacing:.22em;text-transform:uppercase;color:var(--signal);white-space:nowrap;overflow:hidden;
  background:radial-gradient(ellipse at 50% -40%,rgba(169,232,255,.4),transparent 60%),linear-gradient(180deg,rgba(40,80,120,.7),rgba(8,18,34,.85));
  box-shadow:inset 0 0 0 1px rgba(169,232,255,.5),inset 0 1px 0 rgba(255,255,255,.35),0 0 24px rgba(169,232,255,.18),0 12px 24px -12px rgba(0,0,0,.8);transition:box-shadow .4s,transform .15s,filter .3s}
.btn::after{content:"";position:absolute;top:0;bottom:0;width:36%;left:-50%;border-radius:50%;background:radial-gradient(ellipse at 50% 50%,rgba(255,255,255,.28),transparent 70%);transition:left 1s var(--ease)}
.btn:hover::after{left:115%}
.btn:hover{box-shadow:inset 0 0 0 1px rgba(190,240,255,.8),inset 0 1px 0 rgba(255,255,255,.4),0 0 36px rgba(169,232,255,.35),0 12px 24px -12px rgba(0,0,0,.8)}
.btn:active{transform:scale(.975);filter:brightness(1.35)}
.btn .pip{width:7px;height:7px;border-radius:50%;background:var(--orange);box-shadow:0 0 10px var(--orange);animation:pip 2s ease-in-out infinite}
@keyframes pip{50%{opacity:.4}}
.btn .chev{font-style:normal;color:var(--ice);font-size:15px;letter-spacing:0;line-height:1}
.btn.ghost{background:rgba(8,18,34,.45);box-shadow:inset 0 0 0 1px rgba(169,232,255,.22),inset 0 1px 0 rgba(255,255,255,.08)}
.btn.ghost:hover{box-shadow:inset 0 0 0 1px rgba(169,232,255,.5),0 0 22px rgba(169,232,255,.18)}
.btn.small{padding:11px 18px;font-size:12px}
.chip{font:400 10.5px var(--f-display);letter-spacing:.12em;text-transform:uppercase;padding:9px 14px;border-radius:18px;color:var(--ice);background:rgba(169,232,255,.05);box-shadow:inset 0 0 0 1px var(--ice-faint);transition:box-shadow .3s,background .3s}
.chip:hover{box-shadow:inset 0 0 0 1px var(--ice-soft);background:rgba(169,232,255,.1)}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- Helm console (bottom navigation) ---------- */
.helm{position:absolute;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 6px);transform:translateX(-50%);width:min(1060px,calc(100% - 300px));height:104px;z-index:3}
.helm-shape{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 -10px 30px rgba(0,0,0,.6))}
.helm-row{position:absolute;left:0;right:0;bottom:12px;height:52px;display:flex;align-items:center;gap:14px;padding:0 34px}
.readout{display:grid;gap:3px;font:400 9px var(--f-mono);letter-spacing:.16em;color:var(--muted);text-transform:uppercase;min-width:92px}
.readout em{font-style:normal;color:var(--signal);font-size:12px;letter-spacing:.08em;font-variant-numeric:tabular-nums}
.keys{flex:1;display:flex;justify-content:center;gap:2px;min-width:0}
.key{position:relative;display:grid;justify-items:center;gap:7px;padding:8px 11px 6px;border-radius:16px;font:400 12px var(--f-display);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);transition:color .4s,background .4s;white-space:nowrap}
.key{--k:169,232,255;color:rgba(var(--k),.62)}
.key::before{content:"";width:6px;height:6px;border-radius:50%;background:rgba(var(--k),.35);box-shadow:inset 0 0 0 1px rgba(var(--k),.7);transition:all .5s}
.key:hover{color:rgb(var(--k))}
.key:hover::before{background:rgba(var(--k),.7);box-shadow:0 0 8px rgba(var(--k),.8)}
.key[aria-current="true"]{color:rgb(var(--k));text-shadow:0 0 12px rgba(var(--k),.45);background:radial-gradient(ellipse at 50% 120%,rgba(var(--k),.26),transparent 70%)}
.key[aria-current="true"]::before{background:rgb(var(--k));box-shadow:0 0 10px rgb(var(--k)),0 0 2px #fff}
.acts{display:flex;gap:8px;align-items:center}
.act{display:flex;align-items:center;gap:8px;padding:9px 13px;border-radius:16px;font:400 12px var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--signal);background:rgba(169,232,255,.05);box-shadow:inset 0 0 0 1px var(--ice-faint);white-space:nowrap}
.act:hover{box-shadow:inset 0 0 0 1px var(--ice-soft)}
.act.legal{box-shadow:inset 0 0 0 1px rgba(255,77,94,.55),0 0 14px rgba(255,77,94,.15)}
.act.legal:hover{box-shadow:inset 0 0 0 1px var(--red),0 0 20px rgba(255,77,94,.3)}
.act i{width:6px;height:6px;border-radius:50%;background:var(--red);box-shadow:0 0 8px var(--red)}
.act.sys i{background:var(--green);box-shadow:0 0 8px var(--green)}

/* ---------- Scene tags ---------- */
.tag{position:absolute;left:0;top:0;display:flex;align-items:center;gap:8px;font:400 9px var(--f-mono);letter-spacing:.26em;color:rgba(234,243,255,.72);white-space:nowrap;transition:opacity .6s;will-change:transform;opacity:0}
.tag::before{content:"";width:5px;height:5px;border-radius:50%;box-shadow:0 0 0 1px rgba(169,232,255,.6),0 0 6px rgba(169,232,255,.5)}

/* ---------- AMi ---------- */
.ami{position:absolute;right:22px;bottom:calc(env(safe-area-inset-bottom,0px) + 14px);display:grid;justify-items:end;gap:10px;z-index:4}
.ami-core{display:grid;justify-items:center;gap:1px}
#amiCanvas{width:100px;height:100px;cursor:pointer}
.ami-stage{display:block;width:112px;height:112px;perspective:600px;cursor:pointer;margin-bottom:-8px}
.ami-bot{position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d;will-change:transform;filter:drop-shadow(0 14px 22px rgba(0,0,0,.55))}
.ami-bot img{display:block;width:100%;height:100%;user-select:none;-webkit-user-drag:none}
#amiEyes{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.ami-tip{position:absolute;left:56.9%;top:12.4%;width:30%;height:30%;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;mix-blend-mode:screen}
.ami-core:hover .ami-bot{filter:drop-shadow(0 0 14px rgba(233,211,160,.25)) drop-shadow(0 14px 22px rgba(0,0,0,.55))}
#amiGL{width:128px;height:150px;cursor:pointer;margin-bottom:-6px;-webkit-mask-image:linear-gradient(to bottom,#000 82%,transparent 100%);mask-image:linear-gradient(to bottom,#000 82%,transparent 100%)}
.ami-id{display:flex;align-items:baseline;gap:12px}
.ami-id b{font:700 12px var(--f-mark);letter-spacing:.38em;color:var(--signal)}
.ami-id span{font:400 9px var(--f-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.ami-name{font:700 11px var(--f-mark);letter-spacing:.38em;color:var(--signal);margin-left:.38em}
.ami-state{font:400 8.5px var(--f-mono);letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.ami-panel{width:min(340px,calc(calc(100 * var(--vw1)) - 48px));padding:22px 22px 16px;border-radius:28px;background:linear-gradient(160deg,rgba(28,56,90,.88),rgba(5,12,24,.94));backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid var(--ice-faint);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 30px 60px -20px rgba(0,0,0,.9);display:grid;gap:14px;transform-origin:bottom right;animation:unfold .6s var(--ease)}
@keyframes unfold{from{opacity:0;transform:scale(.92) translateY(12px);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
.ami-panel .say{font-size:15px;font-weight:300;line-height:1.55;letter-spacing:.02em;min-height:3em;margin:0}
.cursor{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ice);vertical-align:1px;margin-left:5px;box-shadow:0 0 8px var(--ice);animation:pip 1s infinite}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.ask{display:flex;gap:8px;align-items:center;padding:6px 6px 6px 14px;border-radius:20px;background:rgba(169,232,255,.05);box-shadow:inset 0 0 0 1px var(--ice-faint)}
.ask input{flex:1;min-width:0;background:transparent;border:0;color:var(--signal);font:300 13px var(--f-display)}
.ask input::placeholder{color:var(--muted)}
.ask input:focus{outline:none}
.ask button{font:500 9.5px var(--f-mono);letter-spacing:.18em;color:var(--void);background:var(--ice);border-radius:14px;padding:8px 12px}

.toast{position:absolute;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 128px);transform:translateX(-50%);padding:12px 22px;border-radius:22px;background:rgba(10,22,40,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:inset 0 0 0 1px var(--ice-faint);font:400 11px var(--f-mono);letter-spacing:.12em;color:var(--signal);animation:unfold .4s ease both;max-width:calc(100% - 32px);text-align:center;z-index:6}

/* ---------- Modals ---------- */
.modal{position:fixed;inset:0;display:grid;place-items:center;background:rgba(1,3,8,.6);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);z-index:9;padding:16px}
.mbox{position:relative;width:min(640px,100%);max-height:min(740px,calc(calc(100 * var(--vh1)) - 32px));overflow:auto;padding:34px 32px 28px;border-radius:34px;background:linear-gradient(115deg,rgba(255,255,255,.06),transparent 30%),linear-gradient(165deg,rgba(24,50,82,.95),rgba(3,8,18,.97));border:1px solid var(--ice-faint);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 60px 120px -40px rgba(0,0,0,1);animation:unfold .55s var(--ease)}
.mbox.red{border-color:rgba(255,77,94,.35);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 0 60px rgba(255,77,94,.12),0 60px 120px -40px #000}
.mbox.red .eyebrow{color:#ff8a95}
.mbox.red .eyebrow::before{background:var(--red);box-shadow:0 0 12px var(--red)}
.mbox h2{font-weight:200;font-size:30px;margin:14px 0 8px}
.mbox .close{position:absolute;right:22px;top:20px;width:34px;height:34px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--ice-faint);color:var(--muted);font-size:14px}
.mbox .close:hover{color:var(--signal);box-shadow:inset 0 0 0 1px var(--ice-soft)}
.doc{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 16px;margin-bottom:8px}
.doc strong{font-weight:300;font-size:15px;display:block}
.doc em{font-style:normal;font-size:12px;color:var(--muted)}
.doc i{font:400 9px var(--f-mono);letter-spacing:.12em;color:var(--orange);font-style:normal;text-transform:uppercase;white-space:nowrap}
#scanCanvas{width:180px;height:180px;display:block;margin:10px auto}
.reading{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 16px;margin-bottom:6px;font-size:14px}
.reading b{font:400 12px var(--f-mono);letter-spacing:.05em;color:var(--signal);text-align:right}
.st{width:8px;height:8px;border-radius:50%}
.st.good{background:var(--green);box-shadow:0 0 8px var(--green)}
.st.warn{background:var(--orange);box-shadow:0 0 8px var(--orange)}
.st.na{box-shadow:inset 0 0 0 1px var(--muted)}
.score{font:200 48px var(--f-display);text-align:center;margin:4px 0 0}
.steps{margin:10px 0 20px;padding-left:20px;color:rgba(234,243,255,.82);line-height:1.8;font-size:14px}

/* ---------- AMi film ---------- */
.mbox.film{width:min(860px,100%);padding:26px 26px 20px}
.mbox.film video{display:block;width:min(100%,calc((calc(100 * var(--vh1)) - 190px) * 1.7778));aspect-ratio:16/9;height:auto;margin:6px auto 0;border-radius:18px;background:#010308;box-shadow:inset 0 0 0 1px var(--ice-faint),0 30px 70px -30px #000}
.film-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;flex-wrap:wrap}
.film-foot span{font:400 9px var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
#filmTr{font:400 10px var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--gold);background:none;padding:6px 4px;transition:color .3s}
#filmTr:hover{color:var(--signal)}
#filmTranscript{margin-top:10px;max-height:calc(30 * var(--vh1));overflow:auto;font-size:13px;line-height:1.7;color:rgba(234,243,255,.82);white-space:pre-wrap;padding-right:8px}
.filmlink{display:inline-flex;align-items:center;gap:9px;margin-top:10px;font:400 10px var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);background:none;padding:4px 0;transition:color .3s}
.filmlink svg{width:9px;height:9px;fill:var(--gold);transition:fill .3s}
.filmlink:hover{color:var(--signal)}
.filmlink:hover svg{fill:var(--signal)}

/* ---------- Opening ---------- */
.gate{position:fixed;inset:0;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 45%,rgba(2,5,11,.78),rgba(2,5,11,.9) 50%,rgba(2,5,11,.97) 80%);z-index:10;transition:opacity 1.6s ease,visibility 1.6s}
.gate.off{opacity:0;visibility:hidden}
.gate-in{display:grid;justify-items:center;gap:18px;text-align:center;padding-inline:16px;transition:transform 1.6s var(--ease),opacity 1.1s ease,filter 1.2s ease}
.gate.leaving .gate-in{transform:scale(1.12);opacity:0;filter:blur(8px)}
.gate .emblem{width:min(300px,calc(70 * var(--vw1)));height:auto;filter:drop-shadow(0 0 24px rgba(216,168,99,.35));animation:sheen 6s ease-in-out infinite;transition:transform 1.6s cubic-bezier(.7,0,.3,1)}
@keyframes sheen{50%{filter:drop-shadow(0 0 36px rgba(216,168,99,.6)) brightness(1.08)}}
.gate.leaving .emblem{transform:scale(3.2)}
.word{font:500 clamp(20px,calc(2.6 * var(--vw1)),28px) var(--f-serif);letter-spacing:.5em;margin:4px 0 0 .5em;color:#f3e6cf}
.tagline{font:italic 300 clamp(17px,calc(1.8 * var(--vw1)),21px) var(--f-serif);letter-spacing:.14em;color:rgba(234,243,255,.7);margin:0}
.enter{position:relative;width:128px;height:128px;border-radius:50%;display:grid;place-items:center;font:400 12px var(--f-mark);letter-spacing:.44em;color:var(--signal);margin-top:26px;background:radial-gradient(circle at 50% 40%,rgba(169,232,255,.1),transparent 70%)}
.enter::before,.enter::after{content:"";position:absolute;border-radius:50%}
.enter::before{inset:-9px;border:1.5px solid transparent;border-top-color:var(--ice);border-right-color:rgba(169,232,255,.35);animation:spin 4.5s linear infinite}
.enter::after{inset:0;box-shadow:inset 0 0 0 1px rgba(169,232,255,.4),0 0 40px rgba(169,232,255,.12),inset 0 0 30px rgba(169,232,255,.12);transition:box-shadow .6s}
.enter:hover::after{box-shadow:inset 0 0 0 1px rgba(200,244,255,.8),0 0 60px rgba(169,232,255,.3),inset 0 0 40px rgba(169,232,255,.25)}
.enter span{margin-left:.44em}
.gate .hint{font:300 12px var(--f-display);letter-spacing:.08em;color:var(--muted);margin:8px 0 0}
.silent{font:400 12px var(--f-mono);letter-spacing:.24em;color:var(--muted);text-transform:uppercase;padding:6px 10px;border-radius:12px}
.silent:hover{color:var(--signal)}


/* ---------- Monitors (ship screens with bezels) ---------- */
.monitor{position:relative;border-radius:30px;padding:9px;background:linear-gradient(160deg,#2b3d52 0%,#101a27 38%,#070b12 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -3px 8px rgba(0,0,0,.7),0 0 0 1px rgba(169,232,255,.07),0 40px 70px -35px #000}
.monitor::after{content:"";position:absolute;left:50%;bottom:3px;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green)}
.screen{position:relative;border-radius:22px;padding:22px 22px 20px;overflow:hidden;min-height:100%;box-sizing:border-box;
  background:radial-gradient(ellipse at 30% -10%,rgba(90,150,210,.22),transparent 60%),linear-gradient(180deg,rgba(7,18,34,.9),rgba(3,8,16,.94));
  box-shadow:inset 0 0 50px rgba(169,232,255,.06),inset 0 0 0 1px rgba(169,232,255,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.screen::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(118deg,rgba(255,255,255,.07) 0%,transparent 28%);pointer-events:none}
.lbl.left{justify-content:flex-start}

/* about: observation lounge */
.page.about{grid-template-rows:auto auto}
.monitor.tall .screen{padding:24px}
.log{display:grid;grid-template-columns:auto minmax(0,1fr);gap:22px;align-items:center}
.mono{width:96px;height:96px;border-radius:50%;display:grid;place-items:center;position:relative;background:radial-gradient(circle at 50% 40%,rgba(169,232,255,.22),rgba(169,232,255,.02) 70%);box-shadow:inset 0 0 0 1px rgba(169,232,255,.35),0 0 30px rgba(169,232,255,.15)}
.mono::before{content:"";position:absolute;inset:-8px;border-radius:50%;border:1.5px solid transparent;border-top-color:rgba(169,232,255,.55);border-left-color:rgba(169,232,255,.2);animation:spin 18s linear infinite}
.mono span{font:700 20px var(--f-mark);letter-spacing:.2em;margin-left:.2em;color:var(--signal);text-shadow:0 0 16px rgba(169,232,255,.7)}
.facts{display:grid;gap:10px}
.facts div{display:grid;gap:2px}
.facts span{font:400 9px var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.facts b{font-weight:300;font-size:15px}
.monitor .partner{margin-bottom:8px}
.journey{grid-column:1/-1;position:relative;height:170px;margin-top:0}
.journey svg{position:absolute;left:0;top:30px;width:100%;height:160px;overflow:visible}
.jlabel{position:absolute;left:2%;top:0}
.jnode{position:absolute;transform:translate(-50%,30px);display:grid;justify-items:center;gap:5px;text-align:center;width:160px}
.jnode i{width:10px;height:10px;border-radius:50%;margin-top:-5px;background:var(--void);box-shadow:inset 0 0 0 1.4px var(--ice),0 0 10px rgba(169,232,255,.7)}
.jnode.star i{background:var(--orange);box-shadow:0 0 14px var(--orange)}
.jnode b{font:500 12px var(--f-mono);letter-spacing:.12em;color:var(--ice)}
.jnode span{font-size:12.5px;line-height:1.4;color:rgba(234,243,255,.8)}

/* services: engineering monitor bank */
.page.eng{grid-template-columns:minmax(0,1fr);gap:26px;align-content:center}
.hero.wide{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:48px;align-items:end}
.hero.wide .eyebrow,.hero.wide h1{grid-column:1}
.hero.wide h1{margin-bottom:8px;font-size:clamp(2rem,calc(3.6 * var(--vw1)),3.5rem)}
.hero.wide .sub{grid-column:1;margin-bottom:0}
.hero.wide .actions{grid-column:2;grid-row:2/4}
.bank{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr) minmax(0,1fr);gap:18px;perspective:1500px;align-items:stretch}
.bank .side.l{transform:rotateY(14deg);transform-origin:right center}
.bank .side.r{transform:rotateY(-14deg);transform-origin:left center}
.sysrow{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;padding:9px 10px;border-radius:14px;text-align:left;font-size:13.5px;color:rgba(234,243,255,.8);transition:background .4s}
.sysrow i{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 7px var(--green)}
.sysrow em{font-style:normal;font:400 8.5px var(--f-mono);letter-spacing:.14em;color:var(--muted);text-transform:uppercase}
.sysrow:hover{background:rgba(169,232,255,.05)}
.sysrow.on{background:rgba(169,232,255,.09);color:var(--signal);box-shadow:inset 0 0 0 1px rgba(169,232,255,.2)}
.core-sys{display:grid;place-items:center;height:120px}
.orb{width:92px;height:92px;border-radius:50%;display:grid;place-items:center;position:relative;background:radial-gradient(circle at 40% 35%,rgba(255,255,255,.35),rgba(169,232,255,.18) 40%,rgba(169,232,255,.02) 70%);box-shadow:0 0 40px rgba(169,232,255,.35),inset 0 0 0 1px rgba(169,232,255,.5)}
.orb::before,.orb::after{content:"";position:absolute;border-radius:50%;border:1.5px solid transparent}
.orb::before{inset:-12px;border-top-color:rgba(169,232,255,.6);animation:spin 9s linear infinite}
.orb::after{inset:-22px;border-bottom-color:rgba(255,159,67,.45);animation:spin 14s linear infinite reverse}
.orb svg{width:34px;height:34px;stroke:var(--signal);fill:none;stroke-width:1.2}
.sys-name{margin:6px 0 6px;font-weight:300;font-size:21px;text-align:center}
.sys-desc{margin:0 0 16px;color:rgba(234,243,255,.78);line-height:1.6;font-size:14px;text-align:center}
.side .sys-desc{text-align:left}
.touchdeck{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.tkey{display:flex;align-items:center;gap:10px;padding:12px 18px;border-radius:999px;font:400 10.5px var(--f-display);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);background:linear-gradient(180deg,rgba(30,56,86,.5),rgba(6,14,26,.7));box-shadow:inset 0 0 0 1px rgba(169,232,255,.14),inset 0 1px 0 rgba(255,255,255,.1);transition:all .4s}
.tkey svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.3}
.tkey:hover{color:var(--signal)}
.tkey[aria-pressed="true"]{color:var(--signal);box-shadow:inset 0 0 0 1px var(--ice),0 0 24px rgba(169,232,255,.3),inset 0 0 16px rgba(169,232,255,.15)}

/* academy: cinematic reveal */
.page.academy .reveal{grid-column:1/-1;position:relative;min-height:calc(calc(100 * var(--vh1)) - 78px - 118px - 30px);display:flex;align-items:flex-end;padding-bottom:clamp(20px,calc(6 * var(--vh1)),70px);box-sizing:border-box}
.page.academy .aca-anchor{grid-column:1/-1;height:0}
.titlecard{max-width:30rem;padding-left:clamp(0px,calc(2 * var(--vw1)),30px);opacity:0;filter:blur(8px);animation:tcIn 2.6s var(--ease) 1.4s forwards}
.tc-mono{display:block;width:120px;height:auto;margin:0 0 18px -6px;filter:drop-shadow(0 0 18px rgba(233,211,160,.28))}
.tc-name{font-family:var(--f-serif);font-style:italic;font-weight:300;font-size:clamp(3rem,calc(6.4 * var(--vw1)),6.2rem);line-height:.95;letter-spacing:.005em;background:linear-gradient(100deg,#fbf1dc 0%,#e9d3a0 38%,#c99a55 70%,#f3e2bd 100%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 40px rgba(233,211,160,.12)}
.tc-word{font-family:var(--f-serif);font-weight:400;font-size:clamp(.9rem,calc(1.15 * var(--vw1)),1.08rem);letter-spacing:.56em;text-transform:uppercase;color:var(--gold);margin:0 0 20px}
.tc-line{font-family:var(--f-serif);font-style:italic;font-weight:300;font-size:clamp(1.6rem,calc(2.5 * var(--vw1)),2.3rem);line-height:1.3;color:rgba(247,236,214,.9);margin:0;max-width:17ch;text-wrap:balance}
@keyframes tcIn{to{opacity:1;filter:none}}
.scrollcue{display:flex;align-items:center;gap:16px;margin-top:46px;padding:0;font:400 12px var(--f-serif);letter-spacing:.34em;text-transform:uppercase;color:rgba(233,211,160,.8);opacity:0;animation:tcIn 2s ease 3.4s forwards}
.scrollcue i{width:22px;height:34px;border-radius:12px;box-shadow:inset 0 0 0 1px rgba(233,211,160,.45);position:relative}
.scrollcue i::after{content:"";position:absolute;left:50%;top:7px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--gold);animation:cueDot 2.2s ease-in-out infinite}
@keyframes cueDot{0%{transform:translateY(0);opacity:0}25%{opacity:1}80%{transform:translateY(14px);opacity:0}100%{opacity:0}}
.page.academy h1,.pad-h{font-family:var(--f-serif)}
.pad-h{font-weight:400;font-size:33px;letter-spacing:.005em;color:#f3e6cf}
@media (prefers-reduced-motion:reduce){.titlecard,.scrollcue{animation:none;opacity:1;filter:none}}
/* academy: PADD and tricorder */
.trainer{position:relative;display:grid;grid-template-columns:170px minmax(0,1fr);gap:18px;align-items:end}
.padd{grid-column:2;grid-row:1;position:relative;border-radius:40px;padding:16px 16px 16px 16px;background:linear-gradient(155deg,#34485f 0%,#121c29 35%,#080d15 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.22),inset 0 -3px 10px rgba(0,0,0,.7),0 50px 90px -40px #000;transform:rotateY(-8deg) rotateX(3deg);transform-origin:right center}
.padd .cam{position:absolute;right:6px;top:50%;width:5px;height:5px;margin-top:-2.5px;border-radius:50%;background:#0b1622;box-shadow:inset 0 0 0 1px rgba(169,232,255,.3)}
.padd-screen{border-radius:28px;padding:22px 26px;min-height:340px;background:radial-gradient(ellipse at 20% 0%,rgba(120,180,240,.2),transparent 60%),linear-gradient(180deg,#0a1a2e,#050c18);box-shadow:inset 0 0 0 1px rgba(169,232,255,.12);position:relative;overflow:hidden}
.padd-screen::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(255,255,255,.08),transparent 30%);pointer-events:none}
.padtabs{display:flex;gap:6px;margin-bottom:18px}
.padtabs button{font:400 10px var(--f-display);letter-spacing:.2em;text-transform:uppercase;padding:7px 14px;border-radius:14px;color:var(--muted)}
.padtabs button[aria-pressed="true"]{color:var(--ice);background:rgba(169,232,255,.08);box-shadow:inset 0 0 0 1px var(--ice-faint)}
.pad-course{font:400 12px var(--f-mono);letter-spacing:.16em;color:var(--muted);text-transform:uppercase}
.pad-h{font-weight:200;font-size:30px;margin:10px 0 12px}
.pad-p{font-size:15.5px;line-height:1.7;color:rgba(234,243,255,.86);margin:0 0 12px;max-width:52ch}
.pad-foot{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:16px;font-size:12px;color:var(--muted);line-height:1.5}
.padd .path{margin-top:14px}
.tricorder{position:relative;grid-column:1;grid-row:1;width:170px;margin-bottom:-20px;border-radius:30px 30px 46px 46px;padding:12px 12px 16px;background:linear-gradient(160deg,#3a4b5e,#141e2b 45%,#0a1019);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 30px 50px -20px #000,0 0 0 1px rgba(169,232,255,.08);transform:rotate(-7deg)}
.tri-screen{border-radius:20px;padding:14px;background:linear-gradient(180deg,#06231f,#031210);box-shadow:inset 0 0 0 1px rgba(61,220,151,.25),inset 0 0 24px rgba(61,220,151,.1)}
.tri-h{display:flex;align-items:center;font:400 8.5px var(--f-mono);letter-spacing:.18em;color:rgba(61,220,151,.9);text-transform:uppercase}
.tri-q{font-size:12.5px;line-height:1.45;margin:10px 0;color:rgba(234,243,255,.9)}
.tri-a{display:block;width:100%;text-align:left;font-size:12px;padding:8px 10px;margin-bottom:6px;border-radius:12px;background:rgba(61,220,151,.06);box-shadow:inset 0 0 0 1px rgba(61,220,151,.22);color:rgba(234,243,255,.9)}
.tri-a:hover{box-shadow:inset 0 0 0 1px rgba(61,220,151,.6)}
.tri-a.right{box-shadow:inset 0 0 0 1px var(--green),0 0 14px rgba(61,220,151,.35)}
.tri-a.wrong{box-shadow:inset 0 0 0 1px var(--orange)}
.tri-fb{font-size:12px;line-height:1.4;margin:6px 0 0;color:rgba(61,220,151,.95);min-height:1.4em}
.tri-keys{display:flex;justify-content:center;gap:10px;margin-top:12px}
.tri-keys i{width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#5a6e84,#1a2533);box-shadow:inset 0 0 0 1px rgba(169,232,255,.2)}
.tri-keys i:nth-child(2){background:radial-gradient(circle at 35% 30%,#ffb870,#a8561a)}

/* holo: projector */
.holotabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 30px}
.htab{font:400 12px var(--f-display);letter-spacing:.2em;text-transform:uppercase;padding:12px 20px;border-radius:999px;color:rgba(234,243,255,.75);background:rgba(8,18,34,.55);box-shadow:inset 0 0 0 1px rgba(169,232,255,.2);transition:all .4s}
.htab:hover{color:var(--signal);box-shadow:inset 0 0 0 1px rgba(169,232,255,.45)}
.htab[aria-selected="true"]{color:var(--void);background:linear-gradient(180deg,#d6f5ff,#8fdcff);box-shadow:0 0 26px rgba(169,232,255,.45)}
.projector{position:relative;padding:10px 0 70px}
.proj-content{position:relative;z-index:1;animation:materialize 1s var(--ease)}
@keyframes materialize{from{opacity:0;filter:blur(8px);transform:translateY(12px) scale(.98)}to{opacity:1;filter:none;transform:none}}
.pad-light{position:absolute;left:8%;right:8%;bottom:0;height:70px;border-radius:50%;background:radial-gradient(ellipse at 50% 50%,rgba(169,232,255,.35),rgba(169,232,255,.06) 55%,transparent 72%);box-shadow:inset 0 0 0 1px rgba(169,232,255,.18)}
.pad-light::before{content:"";position:absolute;left:10%;right:10%;bottom:50%;height:260px;background:linear-gradient(0deg,rgba(169,232,255,.12),transparent);clip-path:polygon(0 100%,100% 100%,88% 0,12% 0);pointer-events:none}
.player{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:center;margin-bottom:16px}
.playbtn{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 40% 35%,rgba(255,255,255,.35),rgba(169,232,255,.2) 60%);box-shadow:inset 0 0 0 1px rgba(200,244,255,.7),0 0 30px rgba(169,232,255,.35)}
.playbtn svg{width:24px;height:24px;fill:var(--signal);margin-left:3px}
.playbtn.big{width:78px;height:78px;position:relative;z-index:1}
.pmeta b{font-weight:300;font-size:18px;display:block;margin-bottom:6px}
.tv{display:grid;justify-items:center;margin-bottom:16px}
.tv-screen{position:relative;width:100%;aspect-ratio:16/9;border-radius:24px;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 40%,rgba(90,150,210,.3),rgba(5,12,24,.95) 70%);box-shadow:0 0 0 9px #0d1622,0 0 0 10px rgba(169,232,255,.15),0 40px 60px -30px #000,inset 0 0 60px rgba(169,232,255,.1);overflow:hidden}
.tv-glow{position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(169,232,255,.035) 0 2px,transparent 2px 4px);animation:scanroll 6s linear infinite}
@keyframes scanroll{to{background-position:0 40px}}
.tv-cap{position:absolute;left:20px;bottom:16px;font:400 10px var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ice)}
.tv-stand{width:90px;height:14px;margin-top:14px;border-radius:0 0 40px 40px;background:linear-gradient(180deg,#1c2a3a,#0a1018)}

/* jobs: arboretum pods */
.pods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.pod{position:relative;display:grid;gap:8px;text-align:left;padding:22px 22px 24px;border-radius:30px;overflow:hidden;
  background:radial-gradient(ellipse at 50% 120%,rgba(61,220,151,.22),transparent 60%),linear-gradient(170deg,rgba(24,52,48,.55),rgba(5,14,16,.7));
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:inset 0 0 0 1px rgba(61,220,151,.2),inset 0 1px 0 rgba(255,255,255,.1),0 30px 60px -30px #000;transition:transform .5s var(--ease),box-shadow .5s}
.pod:hover{transform:translateY(-3px);box-shadow:inset 0 0 0 1px rgba(61,220,151,.5),0 0 30px rgba(61,220,151,.15),0 30px 60px -30px #000}
.pod em{font-style:normal;font:400 9px var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:rgba(61,220,151,.9)}
.pod strong{font-weight:300;font-size:19px}
.pod small{font-size:13px;line-height:1.5;color:rgba(234,243,255,.72)}
.sprout{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,rgba(61,220,151,.35),transparent 70%)}
.sprout i{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 12px var(--green);animation:pip 3s ease-in-out infinite}

@media (max-width:980px){
  .bank{grid-template-columns:minmax(0,1fr)}
  .bank .side.l,.bank .side.r{transform:none}
  .hero.wide{grid-template-columns:minmax(0,1fr)}
  .hero.wide .actions{grid-column:1;grid-row:auto;margin-top:22px}
  .trainer{grid-template-columns:minmax(0,1fr)}
  .padd,.tricorder{grid-column:1;grid-row:auto}
  .padd{transform:none}
  .tricorder{position:relative;transform:none;margin:16px auto 0}
  .journey{height:auto;display:grid;gap:14px}
  .journey svg{display:none}
  .jlabel{position:static}
  .jnode{position:static;transform:none;width:auto;grid-template-columns:auto auto minmax(0,1fr);justify-items:start;align-items:center;text-align:left}
  .jnode i{margin-top:0}
}
@media (max-width:560px){ .pods{grid-template-columns:minmax(0,1fr)} .log{grid-template-columns:minmax(0,1fr)} }

.page.home{grid-template-rows:minmax(calc(calc(100 * var(--vh1)) - 270px),auto) auto}
.teasers{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:30px}
.tz{position:relative;display:grid;gap:10px;align-content:start;text-align:left;padding:24px 22px 22px;border-radius:30px;background:linear-gradient(115deg,rgba(255,255,255,.06),transparent 30%),linear-gradient(165deg,rgba(60,110,160,.16),rgba(5,12,24,.6));backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:inset 0 0 0 1px rgba(169,232,255,.12),inset 0 1px 0 rgba(255,255,255,.12),0 30px 60px -30px #000;transition:transform .5s var(--ease),box-shadow .5s}
.tz:hover{transform:translateY(-4px);box-shadow:inset 0 0 0 1px rgba(169,232,255,.4),0 0 30px rgba(169,232,255,.12),0 30px 60px -30px #000}
.tz em{font-style:normal;font:400 12px var(--f-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--ice)}
.tz strong{font:400 22px/1.2 var(--f-serif);color:var(--signal)}
.tz small{font-size:13px;line-height:1.55;color:rgba(234,243,255,.72)}
.tz span{font:400 10px var(--f-display);letter-spacing:.2em;text-transform:uppercase;color:#f3e6cf;margin-top:6px}
.sitefoot{max-width:1440px;margin:40px auto 30px;display:grid;justify-items:center;gap:14px;text-align:center}
.foot-mono{width:88px;height:auto;opacity:.9;filter:drop-shadow(0 0 12px rgba(216,168,99,.3))}
.socials{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.soc{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:rgba(8,18,34,.55);box-shadow:inset 0 0 0 1px rgba(216,168,99,.3);transition:box-shadow .4s,transform .3s}
.soc svg{width:19px;height:19px;fill:none;stroke:#f3e6cf;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.soc .socico{width:19px;height:19px;display:block}
.soc:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px rgba(216,168,99,.8),0 0 20px rgba(216,168,99,.3)}
.soc.soon{opacity:.45}
.flinks{display:flex;gap:18px}
.flinks button{font:400 10px var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.flinks button:hover{color:var(--signal)}
.fnote{margin:0;font-size:12px;color:rgba(139,157,181,.8)}
@media (max-width:980px){.teasers{grid-template-columns:repeat(2,minmax(0,1fr))}.page.home{grid-template-rows:auto auto}}
@media (max-width:560px){.teasers{grid-template-columns:minmax(0,1fr)}}
.deckscreen{position:fixed;inset:0;pointer-events:none;opacity:0;transition:opacity .7s ease;background:radial-gradient(ellipse at 60% 40%,#071526,#02060d 75%)}
.deckscreen.on{opacity:1}
#deckArt{position:absolute;inset:0;width:100%;height:100%}
.deckscreen .frame{position:absolute;inset:10px;border-radius:46px;box-shadow:0 0 0 80px #010308,inset 0 0 0 1px rgba(169,232,255,.16),inset 0 0 140px rgba(0,0,0,.7),inset 0 40px 80px -40px rgba(169,232,255,.12)}
@media (max-width:1280px){.readout{display:none}.key{padding:8px 8px 6px;letter-spacing:.14em}}
@media (max-width:1100px){.search{display:none}.helm{width:calc(100% - 150px);left:24px;transform:none}}
@media (max-width:980px){
  .tag{display:none}
  .bar{padding:14px 16px 0}
  .mark span{display:none}
  .mtbadge{top:calc(env(safe-area-inset-top,0px) + 56px);right:16px}
  .stage{top:calc(env(safe-area-inset-top,0px) + 70px);bottom:calc(env(safe-area-inset-bottom,0px) + 150px);padding-inline:16px}
  .page{grid-template-columns:minmax(0,1fr);gap:26px;padding-block:14px 30px}
  .page.home .right{justify-self:stretch;width:auto}
  .glass{transform:none;padding:24px 20px}
  .helm{left:10px;right:10px;width:auto;height:118px;bottom:calc(env(safe-area-inset-bottom,0px) + 4px)}
  .helm-row{flex-wrap:wrap;height:auto;bottom:8px;padding:0 14px;gap:6px;justify-content:center}
  .keys{order:1;flex-basis:100%;justify-content:flex-start;overflow-x:auto;scrollbar-width:none;padding-right:80px}
  .key{flex:none}
  .acts{order:2}
  .ami{right:8px;bottom:calc(env(safe-area-inset-bottom,0px) + 60px)}
  #amiCanvas{width:68px;height:68px}
  #amiGL{width:88px;height:104px}
  .ami-stage{width:78px;height:78px}
  .ami-name,.ami-state{display:none}
}
@media (max-width:560px){
  .shelf{grid-template-columns:repeat(2,minmax(0,1fr))}
  .f2{grid-template-columns:minmax(0,1fr)}
  .tele{grid-template-columns:repeat(2,minmax(0,1fr))}
  .waves{grid-template-columns:minmax(0,1fr)}
  .btn{padding:13px 18px;letter-spacing:.16em;font-size:12px}
  .xlate .pop{right:-44px}
  .stats{gap:22px}
  .ctrls{gap:8px}
}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* ---------- Command helm: graphite glass tabs with a switch-on light ---------- */
:root{--graphite:rgba(16,22,32,.8);--silver:#c9d2de;--gold-t:#d6a954;
  --spectrum:linear-gradient(90deg,#b8863b,#e2b865,#f6e7c4,#8fe3f0,#4fb8e0,#5b7fd6,#4fb8e0,#8fe3f0,#f6e7c4,#e2b865,#b8863b)}
@keyframes ignite{0%{transform:scaleX(0);filter:brightness(2.2)}35%{transform:scaleX(.55);opacity:.4}45%{opacity:1}55%{opacity:.5}70%{transform:scaleX(1);opacity:1}100%{transform:scaleX(1);filter:brightness(1)}}
@keyframes drift{0%{background-position:0% 0}100%{background-position:100% 0}}
.helm{width:min(1200px,calc(100% - 290px))}
.keys{gap:7px;align-items:center}
.key,.act,.ctrls .tabc{--c:var(--silver);position:relative;display:inline-grid;place-items:center;height:36px;padding:0 15px;border:0;border-radius:6px;
  transform:skewX(-18deg);background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,0) 60%),var(--graphite);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c) 36%,transparent),inset 0 -8px 14px rgba(0,0,0,.35);
  color:#efe5cf;font:500 11.5px var(--f-serif);letter-spacing:.18em;text-transform:uppercase;text-shadow:none;white-space:nowrap;transition:background .35s}
.key:hover,.act:hover,.ctrls .tabc:hover{background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.02) 60%),var(--graphite);color:#fff}
.key::before{content:none}
.key>span,.act>span,.ctrls .tabc>span,.ctrls .tabc>svg{transform:skewX(18deg)}
.key>i,.act>i,.ctrls .tabc>i{position:absolute;left:8px;right:8px;top:0;width:auto;height:3px;border-radius:0 0 3px 3px;overflow:hidden;
  background:color-mix(in srgb,var(--c) 55%,transparent);box-shadow:0 0 6px color-mix(in srgb,var(--c) 35%,transparent)}
.key>i::after,.act>i::after,.ctrls .tabc>i::after{content:"";position:absolute;inset:0;background:var(--spectrum);background-size:300% 100%;transform-origin:left center;transform:scaleX(0);opacity:0}
.key[aria-current="true"],.ctrls .tabc[aria-pressed="true"],.act.lit{color:#fff;background:linear-gradient(180deg,rgba(255,255,255,.1),rgba(255,255,255,0) 60%),var(--graphite)}
.key[aria-current="true"]>i,.ctrls .tabc[aria-pressed="true"]>i,.act.lit>i{left:5px;right:5px;height:5px;background:rgba(255,255,255,.12);box-shadow:0 0 12px rgba(230,190,110,.55),0 0 24px rgba(90,190,235,.4)}
.key[aria-current="true"]>i::after,.ctrls .tabc[aria-pressed="true"]>i::after,.act.lit>i::after{opacity:1;transform:scaleX(1);animation:ignite .55s cubic-bezier(.2,.8,.2,1) both,drift 5s ease-in-out .55s infinite alternate}
.key[aria-current="true"]::after,.ctrls .tabc[aria-pressed="true"]::after,.act.lit::after{content:"";position:absolute;left:6%;right:6%;top:2px;height:18px;background:var(--spectrum);background-size:300% 100%;filter:blur(10px);opacity:.5;pointer-events:none;animation:drift 5s ease-in-out .55s infinite alternate}
.key:focus-visible,.act:focus-visible,.ctrls .tabc:focus-visible{outline:1px solid var(--gold-t);outline-offset:3px;border-radius:6px}
.act{height:34px;padding:0 13px;font-size:12px}
.act.legal,.act.legal:hover{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c) 36%,transparent),inset 0 -8px 14px rgba(0,0,0,.35)}
/* top controls: the same glass, with gold strips */
.ctrls{gap:8px;padding:6px 10px;border-radius:14px;background:rgba(5,14,23,.72);box-shadow:inset 0 0 0 1px rgba(214,169,84,.28),0 12px 28px rgba(0,0,0,.45)}
.ctrls .tabc{--c:var(--gold-t);height:32px;padding:0 12px;font-size:12px;display:inline-flex;gap:7px;align-items:center}
.ctrls .tabc svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.5}
.ctrls .tabc.xl{font:500 10.5px var(--f-mono);letter-spacing:.16em}
.ctrls .search.tabc{padding:0 12px 0 10px}
.ctrls .search.tabc>svg{position:static;width:13px;height:13px;stroke:currentColor}
.ctrls .search.tabc input{transform:skewX(18deg);height:30px;width:120px;border:0;background:transparent;box-shadow:none;padding:0 4px;color:#efe5cf;font:400 12px var(--f-display);letter-spacing:.04em;outline:none;transition:width .5s var(--ease)}
.ctrls .search.tabc input:focus{width:190px}
.ctrls .search.tabc .pop{transform:skewX(18deg)}
.act.sys>i,.act.legal>i{background:color-mix(in srgb,var(--c) 55%,transparent);box-shadow:0 0 6px color-mix(in srgb,var(--c) 35%,transparent)}
.act.sys.lit>i,.act.legal.lit>i{background:rgba(255,255,255,.12)}
@media (max-width:1100px){.ctrls .search.tabc{display:none}}
@media (max-width:560px){.mark b{display:none}.ctrls{gap:6px}.ctrls .tabc{padding:0 10px}}
@media (prefers-reduced-motion:reduce){.key>i::after,.act>i::after,.ctrls .tabc>i::after,.key::after,.ctrls .tabc::after,.act::after{animation:none!important}}
@media (max-width:1280px){.key{padding:0 11px;letter-spacing:.14em}}
@media (max-width:980px){.helm{width:auto}.keys{padding:4px 80px 4px 6px}.ctrls{padding:4px 6px}.ctrls .tabc.lbl>span{display:none}}
.cm-yours{display:block;margin-top:4px;font:italic 400 12px var(--f-serif);letter-spacing:.02em;color:var(--gold);text-transform:none}

/* ================= Student Portal ================= */
.portal-veil{position:fixed;inset:0;z-index:0;backdrop-filter:blur(12px) brightness(.55);-webkit-backdrop-filter:blur(12px) brightness(.55);background:rgba(3,8,16,.3);pointer-events:none}
.acarail{grid-column:1/-1;position:relative;z-index:1;display:flex;align-items:center;gap:16px;margin-bottom:30px;min-width:0}
.acarail .rlabel{display:grid;line-height:1.3;flex:none}
.acarail .rlabel b{font:400 8.5px var(--f-mono);letter-spacing:.3em;color:var(--muted);text-transform:uppercase}
.acarail .rlabel i{font-family:var(--f-serif);font-style:italic;font-size:1.05rem;color:var(--gold)}
.acarail .keys{flex:1;display:flex;gap:7px;align-items:center;min-width:0}
.acarail .key .avc{display:inline-grid;place-items:center;width:18px;height:18px;margin-right:8px;border-radius:50%;background:linear-gradient(160deg,#f0d9a6,#c9a45c);color:#0a0f1a;font:600 9px var(--f-display);vertical-align:-4px}
.samplebadge{flex:none;font:400 8.5px var(--f-mono);letter-spacing:.26em;color:#f0c987;background:rgba(233,180,80,.1);border-radius:999px;padding:7px 15px;box-shadow:inset 0 0 0 1px rgba(233,180,80,.4),0 0 14px rgba(233,180,80,.1);white-space:nowrap}
.acap{font:400 11px var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:14px 0 0}
.pbtn{display:inline-grid;place-items:center;height:52px;padding:0 30px;transform:skewX(-18deg);border:0;border-radius:8px;font:500 12px var(--f-display);letter-spacing:.24em;text-transform:uppercase;color:#fff;background:linear-gradient(180deg,rgba(255,255,255,.1),rgba(255,255,255,0) 60%),linear-gradient(160deg,#3a2f14,#1c1507);box-shadow:inset 0 0 0 1px rgba(233,211,160,.65),0 0 30px rgba(233,211,160,.15),0 14px 34px -14px #000;cursor:pointer;position:relative;transition:filter .3s}
.pbtn>span{transform:skewX(18deg);display:inline-flex;align-items:center;gap:10px}
.pbtn>i{position:absolute;left:6px;right:6px;top:0;height:4px;border-radius:0 0 4px 4px;overflow:hidden;background:rgba(255,255,255,.12);box-shadow:0 0 12px rgba(230,190,110,.55),0 0 24px rgba(90,190,235,.4)}
.pbtn>i::after{content:"";position:absolute;inset:0;background:var(--spectrum);background-size:300% 100%;animation:drift 5s ease-in-out infinite alternate}
.pbtn:hover{filter:brightness(1.18)}
.pbtn:active{transform:skewX(-18deg) translateY(2px)}
.pbtn .lk{width:13px;height:13px;stroke:#f0d9a6;fill:none;stroke-width:1.6}
.portal-wrap{display:grid;gap:18px;grid-column:1/-1;position:relative;z-index:1}
.pgrid3,.pgrid2,.psign{grid-column:1/-1;position:relative;z-index:1}
.pgrid3{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) minmax(0,1fr);gap:18px}
.pgrid2{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:18px}
.pcard{position:relative;border-radius:26px;padding:24px 26px;background:linear-gradient(160deg,rgba(13,27,48,.92),rgba(7,14,26,.95));box-shadow:inset 0 0 0 1px rgba(169,232,255,.13),inset 0 1px 0 rgba(255,255,255,.05),0 30px 60px -36px #000;overflow:hidden}
.pcard .chead{margin-bottom:14px}
.pkick{font:400 9px var(--f-mono);letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
.pbig{font-family:var(--f-serif);font-weight:300;font-size:clamp(1.8rem,calc(2.6 * var(--vw1)),2.4rem);line-height:1.08;color:#f3e6cf;margin:6px 0 10px}
.pmeta{font-size:13px;color:rgba(234,243,255,.74);line-height:1.6}
.pstats{display:grid;grid-template-columns:repeat(2,1fr);gap:14px 10px;margin:16px 0}
.pstat b{display:block;font:300 24px var(--f-display);color:var(--signal);font-variant-numeric:tabular-nums}
.pstat b small{font-size:14px;color:var(--muted)}
.pstat span{font:400 8px var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.prow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:7px 0;font-size:13px;color:rgba(234,243,255,.82)}
.prow b{font:400 10px var(--f-mono);color:var(--ok);letter-spacing:.08em;background:rgba(143,227,195,.08);border-radius:999px;padding:4px 10px;box-shadow:inset 0 0 0 1px rgba(143,227,195,.25)}
.prow b.mut{color:var(--muted);background:rgba(169,232,255,.05);box-shadow:inset 0 0 0 1px rgba(169,232,255,.14)}
.amitip{display:flex;gap:12px;align-items:center;margin-top:14px;padding:12px 14px;border-radius:16px;background:rgba(169,232,255,.06);box-shadow:inset 0 0 0 1px rgba(169,232,255,.12)}
.amitip img{width:34px;height:34px;object-fit:contain;filter:drop-shadow(0 0 8px rgba(169,232,255,.4))}
.amitip p{margin:0;font:italic 400 12px var(--f-serif);color:rgba(234,243,255,.8);line-height:1.5}
.doors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.pdoor{display:grid;gap:8px;justify-items:center;text-align:center;padding:0 24px 22px;border-radius:26px;background:linear-gradient(160deg,rgba(13,27,48,.9),rgba(7,14,26,.94));box-shadow:inset 0 0 0 1px rgba(140,230,240,.15),inset 0 1px 0 rgba(255,255,255,.05),0 30px 60px -36px #000;cursor:pointer;position:relative;overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s}
.pdoor::before{content:"";position:absolute;top:0;left:14%;right:14%;height:4px;border-radius:0 0 5px 5px;background:var(--spectrum);background-size:300% 100%;opacity:.28;filter:saturate(.8);transition:opacity .4s;animation:drift 5s ease-in-out infinite alternate}
.pdoor:hover::before,.pdoor.lit::before{opacity:1}
.pdoor:hover{transform:translateY(-4px);box-shadow:inset 0 0 0 1px rgba(169,232,255,.35),0 30px 60px -30px rgba(0,0,0,.8)}
.pdoor .dem{width:112px;height:112px;margin:26px 0 6px;border-radius:50%;display:grid;place-items:center;position:relative;box-shadow:inset 0 0 0 1px rgba(169,232,255,.3),0 0 30px rgba(169,232,255,.08)}
.pdoor .dem svg{width:100%;height:100%;position:absolute;inset:0}
.pdoor .dem .demc{font:200 22px var(--f-display);color:var(--signal)}
.pdoor .dem svg.ln{position:static;width:46%;height:46%;stroke:var(--ice);fill:none;stroke-width:1.2}
.pdoor .dk{font:400 9px var(--f-mono);letter-spacing:.26em;text-transform:uppercase}
.pdoor .dk.c1{color:var(--ice)}.pdoor .dk.c2{color:var(--gold)}.pdoor .dk.c3{color:var(--signal)}
.pdoor h3{font-family:var(--f-serif);font-weight:400;font-size:1.55rem;color:#f3e6cf;margin:0}
.pdoor p{margin:0;font-size:13px;line-height:1.6;color:rgba(234,243,255,.72);max-width:30ch}
.pdoor .dchips{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:6px}
.pdoor .dchips span{font:400 8.5px var(--f-mono);letter-spacing:.14em;color:var(--ice);padding:5px 10px;border-radius:999px;box-shadow:inset 0 0 0 1px rgba(169,232,255,.22);background:rgba(169,232,255,.05)}
.pdoor .dchips span.gr{color:#8fe3c3;box-shadow:inset 0 0 0 1px rgba(143,227,195,.3)}
.pdoor .dchips span.gd{color:#f0d9a6;box-shadow:inset 0 0 0 1px rgba(233,211,160,.35)}
.pdoor .dchips span.mu{color:var(--muted)}
.psign{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:40px;align-items:center}
.pscan{display:grid;place-items:center;padding:30px 0;text-align:center}
.pscan .ringwrap{position:relative;width:min(300px,calc(64 * var(--vw1)));aspect-ratio:1;display:grid;place-items:center}
.pscan .ringwrap svg{position:absolute;inset:0;width:100%;height:100%}
.pscan img{width:46%;filter:drop-shadow(0 0 30px rgba(169,232,255,.4))}
.pscan .lbl{margin-top:18px;font:400 10px var(--f-mono);letter-spacing:.3em;color:var(--ok);text-transform:uppercase}
.pform{display:grid;gap:15px}
.pform label{font:400 9px var(--f-mono);letter-spacing:.24em;text-transform:uppercase;color:var(--muted);display:grid;gap:7px}
.pform input[type=text],.pform input[type=password]{font:300 15px var(--f-display);color:var(--signal);padding:13px 16px;border-radius:14px;border:0;outline:0;background:rgba(2,10,18,.65);box-shadow:inset 0 0 0 1px rgba(140,230,240,.18);transition:box-shadow .3s}
.pform input:focus{box-shadow:inset 0 0 0 1.5px rgba(169,232,255,.55)}
.pform .prow2{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted)}
.pform .prow2 label{display:flex;align-items:center;gap:8px;letter-spacing:.04em;text-transform:none;font-family:var(--f-display);font-size:12px;flex-direction:row}
.pform .prow2 a{color:var(--ice);text-decoration:none}
.pform input[type=checkbox]{accent-color:var(--gold);width:14px;height:14px}
.btn-gold{display:inline-flex;align-items:center;justify-content:center;gap:10px;font:500 11px var(--f-display);letter-spacing:.26em;text-transform:uppercase;color:#0a0f1a;background:linear-gradient(160deg,#f0d9a6,#d9b96e);padding:15px 28px;border-radius:999px;border:0;cursor:pointer;box-shadow:0 8px 30px -8px rgba(233,211,160,.5),inset 0 1px 0 rgba(255,255,255,.5);transition:transform .15s,box-shadow .3s,filter .3s}
.btn-gold:hover{filter:brightness(1.08);box-shadow:0 10px 36px -8px rgba(233,211,160,.65),inset 0 1px 0 rgba(255,255,255,.6)}
.btn-gold:active{transform:translateY(2px)}
.ptabs{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}
.pmodule-wrap{position:relative}
.pmodule-wrap svg{width:100%;height:auto;display:block}
.mn-lbl{font:400 14px var(--f-mono);letter-spacing:.12em;fill:rgba(234,243,255,.85);text-transform:uppercase}
.mn-gr{font:400 13px var(--f-mono);fill:#8fe3c3;letter-spacing:.1em}
.vf-lbl{font-size:12px}
.fplist{display:none}
.sumrow{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}
.sumpill{flex:1;min-width:130px;padding:12px 14px;border-radius:16px;background:rgba(169,232,255,.05);box-shadow:inset 0 0 0 1px rgba(169,232,255,.12)}
.sumpill b{display:block;font:400 9px var(--f-mono);letter-spacing:.2em;text-transform:uppercase;margin-bottom:5px}
.sumpill span{font-size:12px;color:rgba(234,243,255,.78)}
.sumpill.gr b{color:#8fe3c3}.sumpill.cy b{color:#a9e8ff}.sumpill.mu b{color:var(--muted)}
.pbar{height:5px;border-radius:99px;background:rgba(169,232,255,.12);overflow:hidden;margin:10px 0 14px}
.pbar i{display:block;height:100%;width:45%;border-radius:99px;background:linear-gradient(90deg,#e2b865,#8fe3f0)}
.pbadge9{display:flex;gap:10px;flex-wrap:wrap}
.pbadge9 i{width:26px;height:26px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(169,232,255,.3),0 0 12px rgba(169,232,255,.12)}
.pbadge9 i.emp{box-shadow:inset 0 0 0 1.5px rgba(169,232,255,.35)}
.cert{border-radius:24px;padding:28px 30px;text-align:center;background:radial-gradient(120% 140% at 50% 0%,rgba(233,211,160,.13),rgba(233,211,160,0) 60%),linear-gradient(rgba(7,13,24,.96),rgba(7,13,24,.96));box-shadow:inset 0 0 0 1px rgba(233,211,160,.35),0 0 50px rgba(233,211,160,.08),0 30px 60px -36px #000}
.cert img{width:64px;margin-bottom:8px;filter:drop-shadow(0 0 14px rgba(233,211,160,.4))}
.cert .ck{font:400 8px var(--f-mono);letter-spacing:.34em;color:var(--gold);text-transform:uppercase}
.cert .ct{font-family:var(--f-serif);font-weight:400;font-size:1.1rem;color:rgba(234,243,255,.85);margin:14px 0 4px}
.cert .cn{font-family:var(--f-serif);font-size:2rem;color:#f3e6cf;margin:4px 0}
.cert .cd{font-family:var(--f-serif);font-style:italic;font-size:1rem;color:rgba(234,243,255,.75)}
.cert .slot{margin:14px auto 0;display:inline-block;font:400 8.5px var(--f-mono);letter-spacing:.22em;color:#f0c987;text-transform:uppercase;padding:6px 14px;border-radius:999px;background:rgba(233,180,80,.08);box-shadow:inset 0 0 0 1px rgba(233,180,80,.35)}
.cert .cmeta{display:flex;justify-content:space-between;font:400 9px var(--f-mono);letter-spacing:.12em;color:var(--muted);margin-top:16px}
.pacts{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.calc-lab{display:flex;justify-content:space-between;align-items:baseline;font-size:12.5px;color:rgba(234,243,255,.8)}
.calc-lab b{font:300 18px var(--f-display);color:var(--signal);font-variant-numeric:tabular-nums}
.calc input[type=range]{width:100%;accent-color:var(--gold);margin:8px 0 14px}
.segp{display:flex;gap:8px;flex-wrap:wrap}
.segp button{flex:1;font:400 12px var(--f-mono);letter-spacing:.1em;color:var(--muted);padding:9px 4px;border-radius:999px;box-shadow:inset 0 0 0 1px rgba(169,232,255,.15);transition:.25s;background:rgba(169,232,255,.03)}
.segp button.on{color:#0a0f1a;background:linear-gradient(160deg,#f0d9a6,#d9b96e);box-shadow:0 4px 18px -6px rgba(233,211,160,.5)}
.calc-out{text-align:center;padding:16px 0 4px}
.calc-out .lbl{font:400 8.5px var(--f-mono);letter-spacing:.3em;color:var(--muted);text-transform:uppercase}
.calc-out b{font:200 44px var(--f-display);color:#f3e6cf}
.calc-out small{font-size:13px;color:var(--muted)}
.calc-note{font-size:12px;color:var(--muted);text-align:center;margin:2px 0 0}
.bay-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-content:start}
.bcard{display:grid;gap:8px;justify-items:start;text-align:left;padding:22px;border-radius:24px;background:linear-gradient(160deg,rgba(13,27,48,.9),rgba(7,14,26,.94));box-shadow:inset 0 0 0 1px rgba(140,230,240,.14);transition:transform .4s var(--ease),box-shadow .4s;position:relative;min-height:190px;align-content:start}
.bcard:hover{transform:translateY(-3px);box-shadow:inset 0 0 0 1px rgba(169,232,255,.4),0 20px 40px -26px #000}
.bcard .bi{font-size:16px;color:var(--ice);width:34px;height:34px;display:grid;place-items:center}
.bcard .bi svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.4}
.bcard h3{font-family:var(--f-serif);font-weight:400;font-size:1.25rem;color:#f3e6cf;margin:0}
.bcard p{margin:0;font-size:12.5px;line-height:1.55;color:rgba(234,243,255,.72)}
.bcard .bfoot{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:10px}
.bcard .go{font:400 9px var(--f-display);letter-spacing:.2em;text-transform:uppercase;color:var(--signal);padding:6px 12px;border-radius:999px;box-shadow:inset 0 0 0 1px rgba(169,232,255,.3);background:rgba(169,232,255,.07)}
.bcard .bmeta{font:400 8px var(--f-mono);letter-spacing:.16em;color:var(--muted);text-transform:uppercase;padding:5px 10px;border-radius:999px;background:rgba(169,232,255,.04);box-shadow:inset 0 0 0 1px rgba(169,232,255,.12)}
.bcard .bmeta.gr{color:#8fe3c3;box-shadow:inset 0 0 0 1px rgba(143,227,195,.3)}
.bcard .bmeta.gd{color:#f0d9a6;box-shadow:inset 0 0 0 1px rgba(233,211,160,.3)}
.bcard .bami{position:absolute;right:12px;bottom:12px;width:52px;opacity:.95;filter:drop-shadow(0 0 10px rgba(169,232,255,.4));pointer-events:none}
.vgrid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1.05fr) minmax(0,.95fr);gap:18px;grid-column:1/-1;position:relative;z-index:1}
.vstats{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.vstats span{font:400 8.5px var(--f-mono);letter-spacing:.12em;color:var(--muted);padding:7px 12px;border-radius:10px;background:rgba(169,232,255,.05);box-shadow:inset 0 0 0 1px rgba(169,232,255,.12);text-transform:uppercase}
.vstats b{color:var(--signal);font-weight:400}
.dlg{position:fixed;inset:0;z-index:60;display:none;place-items:center;padding:20px;background:rgba(2,6,12,.7);backdrop-filter:blur(10px)}
.dlg.on{display:grid}
.dlg .box{max-width:560px;width:100%;max-height:calc(80 * var(--vh1));overflow:auto;border-radius:26px;padding:26px 28px;background:linear-gradient(160deg,rgba(13,27,48,.98),rgba(7,14,26,.99));box-shadow:inset 0 0 0 1px rgba(169,232,255,.2),0 40px 90px -30px #000}
.dlg .box h3{font-family:var(--f-serif);font-weight:400;font-size:1.5rem;color:#f3e6cf;margin:0 0 6px}
.dlg .box .pmeta{font-size:12.5px}
.dlg textarea,.dlg input.code{width:100%;font:400 11px var(--f-mono);color:#a9e8ff;background:rgba(2,10,18,.7);border:0;border-radius:12px;padding:12px;box-shadow:inset 0 0 0 1px rgba(169,232,255,.18)}
.pdlg-grid{display:grid;gap:10px;margin-top:14px}
.qr{display:flex;align-items:center;justify-content:center;gap:14px;padding:12px;margin:10px 0}
.qr>canvas{background:#eaf3ff;border-radius:12px;padding:8px;box-sizing:content-box}
.lprev{display:flex;gap:10px;align-items:center;flex:1;text-align:left;padding:10px 12px;border-radius:12px;background:rgba(169,232,255,.05);box-shadow:inset 0 0 0 1px rgba(169,232,255,.12)}
.lprev img{width:40px;height:40px;object-fit:contain}
.lprev b{display:block;font:500 12px var(--f-display);color:var(--signal)}
.lprev span{display:block;font:400 9px var(--f-mono);letter-spacing:.1em;color:var(--muted);margin-top:3px}
.vrf-status{display:inline-block;font:400 9px var(--f-mono);letter-spacing:.22em;color:#8fe3c3;background:rgba(143,227,195,.1);border-radius:999px;padding:6px 14px;box-shadow:inset 0 0 0 1px rgba(143,227,195,.35);text-transform:uppercase}
.vrow{display:flex;justify-content:space-between;gap:10px;padding:6px 0;font-size:12.5px;color:rgba(234,243,255,.8)}
.vrow b{font-weight:400;color:var(--signal)}
.abanner{position:sticky;top:0;z-index:5;grid-column:1/-1;display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px;padding:10px 18px;border-radius:16px;background:linear-gradient(160deg,rgba(233,180,80,.2),rgba(180,120,40,.14));box-shadow:inset 0 0 0 1px rgba(233,180,80,.5),0 12px 30px -14px rgba(233,180,80,.25);font:400 10.5px var(--f-mono);letter-spacing:.14em;color:#f6e7c4;text-transform:uppercase}
.abanner .grow{flex:1}
.abanner .xbtn{font:400 9px var(--f-mono);letter-spacing:.2em;color:#0a0f1a;background:linear-gradient(160deg,#f0d9a6,#d9b96e);padding:8px 16px;border-radius:999px;border:0;cursor:pointer;text-transform:uppercase}
.strow{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,.8fr) auto;gap:14px;align-items:center;padding:14px 16px;border-radius:18px;background:rgba(169,232,255,.045);box-shadow:inset 0 0 0 1px rgba(169,232,255,.1);cursor:pointer;transition:box-shadow .3s}
.strow:hover{box-shadow:inset 0 0 0 1px rgba(169,232,255,.4)}
.strow .nm{font-family:var(--f-serif);font-size:1.05rem;color:#f3e6cf}
.strow .sub2{font:400 9px var(--f-mono);letter-spacing:.14em;color:var(--muted);text-transform:uppercase;margin-top:3px}
.strow .pbar{margin:6px 0 0;height:4px}
.alog .prow{font-size:12px}
@media (max-width:1100px){.pgrid3,.pgrid2,.psign,.doors,.vgrid{grid-template-columns:minmax(0,1fr)}.bay-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pscan{order:2}}
@media (max-width:560px){.acarail{gap:10px}.acarail .keys{overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;mask-image:linear-gradient(90deg,#000 78%,transparent);-webkit-mask-image:linear-gradient(90deg,#000 78%,transparent)}.acarail .keys::-webkit-scrollbar{display:none}.acarail .key{flex:none}.acarail .rlabel{display:none}.bay-grid{grid-template-columns:minmax(0,1fr)}.pstats{gap:12px}.pmodule-wrap{display:none}.fplist{display:grid;gap:10px}.fplist .prow{padding:10px 12px;border-radius:12px;background:rgba(169,232,255,.05)}.psign{gap:18px}}
/* document picker + share row + more panel */
.docpills{display:flex;flex-wrap:wrap;gap:8px;grid-column:1/-1}
.docpills button{font:400 12px var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:rgba(234,243,255,.8);padding:10px 16px;border-radius:999px;border:0;background:rgba(169,232,255,.06);box-shadow:inset 0 0 0 1px rgba(169,232,255,.14);cursor:pointer}
.docpills button b{color:var(--gold);font-weight:400;margin-left:5px}
.docpills button.on{background:rgba(226,184,101,.12);box-shadow:inset 0 0 0 1px rgba(226,184,101,.5);color:#f6e7c4}
.docpills button.req{box-shadow:inset 0 0 0 1px rgba(226,184,101,.55);color:#f0d9a6;background:rgba(226,184,101,.07)}
.docnav{display:flex;align-items:center;justify-content:center;gap:12px;grid-column:1/-1;font:400 10px var(--f-mono);letter-spacing:.14em;color:rgba(234,243,255,.7);text-transform:uppercase}
.docnav button{font:inherit;color:var(--ice);background:rgba(169,232,255,.06);border:0;border-radius:999px;padding:7px 16px;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(169,232,255,.14)}
.shrow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:10px 0 14px}
.shcell{display:grid;justify-items:center;gap:7px;background:none;border:0;cursor:pointer;padding:0;min-width:0}
.shcell .disc{width:50px;height:50px;max-width:100%;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14),0 8px 18px -8px rgba(0,0,0,.6);transition:transform .25s}
.shcell:hover .disc{transform:translateY(-2px)}
.shcell .disc img{width:24px;height:24px}
.shcell .nm{font:400 7.5px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:rgba(234,243,255,.65);text-align:center;line-height:1.25;max-width:64px}
.shcell.more .disc{background:rgba(226,184,101,.08);box-shadow:inset 0 0 0 1.5px rgba(226,184,101,.6)}
.shcell.more .disc span{letter-spacing:3px;color:#e9d3a0;font-size:14px;padding-left:3px}
.shsub{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.morepanel{position:fixed;inset:0;z-index:80;display:grid;place-items:center;background:rgba(3,8,14,.72);backdrop-filter:blur(8px)}
.morepanel .mbox{width:min(640px,calc(92 * var(--vw1)));max-height:calc(82 * var(--vh1));overflow-y:auto;overflow-x:hidden;border-radius:24px;padding:22px 24px;background:linear-gradient(160deg,rgba(16,28,44,.98),rgba(7,13,22,.99));box-shadow:inset 0 0 0 1px rgba(150,210,255,.16),0 40px 80px -30px #000}
.morepanel .mp-head{display:flex;align-items:baseline;gap:12px}
.morepanel .mp-head h3{flex:1;margin:0;font-size:1.3rem}
.morepanel .mp-doc{font:400 9px var(--f-mono);letter-spacing:.16em;color:var(--muted);text-transform:uppercase}
.morepanel input.msearch{width:100%;margin:14px 0 16px;font:300 14px var(--f-display);color:var(--signal);padding:12px 15px;border-radius:13px;border:0;background:rgba(2,10,18,.65);box-shadow:inset 0 0 0 1px rgba(140,230,240,.18)}
.mpgroup{margin-top:14px}
.mpgroup .gk{font:400 8.5px var(--f-mono);letter-spacing:.26em;color:var(--gold);text-transform:uppercase;margin-bottom:10px}
.mpgroup .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:10px 6px}
.mpgroup .shcell .disc{width:44px;height:44px}
.mpgroup .shcell .disc img{width:20px;height:20px}
.mpfoot{margin-top:18px;font:400 10px var(--f-mono);letter-spacing:.1em;color:var(--muted)}
.treq{display:grid;gap:10px;margin-top:12px}
.treq input,.treq textarea{font:300 14px var(--f-display);color:var(--signal);padding:12px 14px;border-radius:13px;border:0;background:rgba(2,10,18,.65);box-shadow:inset 0 0 0 1px rgba(140,230,240,.18)}
.treq textarea{resize:vertical;min-height:64px}
.freecard{text-align:center;padding:34px 26px}
.freecard .fr-k{font:400 9px var(--f-mono);letter-spacing:.3em;color:var(--gold);text-transform:uppercase}
.fchip .freetag{font:400 8.5px var(--f-mono);letter-spacing:.14em;font-style:normal;color:var(--gold);background:rgba(255,196,66,.1);box-shadow:inset 0 0 0 1px rgba(255,196,66,.35);border-radius:999px;padding:2px 7px;margin-left:6px;vertical-align:1px}
.freecard h3{font-size:1.5rem;margin:10px 0 8px}
.freecard p{color:rgba(234,243,255,.72);font-size:13px;line-height:1.55;margin:0}
.freecard .fr-badge{display:inline-block;margin-top:16px;font:400 10px var(--f-mono);letter-spacing:.2em;color:#8fe3c3;background:rgba(143,227,195,.08);border-radius:999px;padding:8px 18px;box-shadow:inset 0 0 0 1px rgba(143,227,195,.3);text-transform:uppercase}
@media (max-width:560px){.docpills button{padding:8px 12px;font-size:8.5px}.shrow{grid-template-columns:repeat(4,1fr)}}
@media (max-width:560px){.acarail{flex-wrap:wrap}.acarail .keys{order:1;flex-basis:100%}.acarail .samplebadge{order:2;margin:8px auto 0}}
#printdoc{display:none}
@media print{
  body>*{display:none!important}
  body::before,body::after{display:none!important}
  #printdoc{display:block!important;font-family:Georgia,serif;color:#1a1a1a}
  #printdoc.pc-cert{page:cert}
  #printdoc.pc-transcript{page:transcript}
  #printdoc .pc-page{break-after:page}
  #printdoc .pc-page:last-child{break-after:auto}
  @page cert{size:letter landscape;margin:14mm}
  @page transcript{size:letter portrait;margin:14mm}
}
/* Screen sizes (v29): one layout from 320 px phones to 5K ultrawide monitors.
   Large screens: the interface layers scale up together with --uiz (set by fitScreen), so text and controls keep their
   proportions instead of shrinking into the middle of a big monitor. The 3D scene, frame and labels are not scaled; they already fill the screen.
   Phones and tablets: the room tabs get the full width and scroll, the active room is kept in view, AMi moves to the corner of the helm. */
:root{--vh1:1vh;--vw1:1vw;--vmin1:1vmin;--vmax1:1vmax}
.bar,.mtbadge,.stage,.helm,.ami,#toastHost,.modal .mbox,.dlg .box,.morepanel .mbox,.gate-in{zoom:var(--uiz,1);--vh1:calc(1vh / var(--uiz,1));--vw1:calc(1vw / var(--uiz,1));--vmin1:calc(1vmin / var(--uiz,1));--vmax1:calc(1vmax / var(--uiz,1))}
/* viewport units are written as var(--vh1) etc. so they stay true to the screen inside the scaled layers */
@media (max-width:980px){
  .keys{padding:4px 6px!important;-webkit-mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 26px),transparent);mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 26px),transparent)}
  .helm-row{justify-content:flex-start}
  .acts{padding-right:78px}
  .ami{bottom:calc(env(safe-area-inset-bottom,0px) + 6px)}
  .ami-stage{width:62px;height:62px}
}
@media (max-width:560px){ #deckArt{opacity:.42} }
@media (max-width:400px){ .acts{padding-right:62px;gap:6px} .act{padding:0 9px;font-size:12px;letter-spacing:.1em} .ami-stage{width:54px;height:54px} }
/* short screens (a phone held sideways, a small laptop window): the gate compacts and can scroll, so Engage and Silent are always reachable */
.gate{overflow-y:auto}
@media (max-height:620px){ .gate{place-items:start center;padding-block:18px} .gate-in{gap:10px} .gate .emblem{width:min(180px,calc(40 * var(--vw1)))} .enter{width:96px;height:96px;margin-top:8px} }
@media (max-height:520px) and (orientation:landscape){
  .stage{top:calc(env(safe-area-inset-top,0px) + 58px);bottom:calc(env(safe-area-inset-bottom,0px) + 96px)}
  .helm{height:92px}
}

.sb-seo{max-width:46rem;margin:2rem auto;color:var(--mist,#eef4f6)}
.sb-seo h1{font-size:1.6rem;margin-bottom:1rem}
.sb-seo p{line-height:1.7}
