@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ease-out:cubic-bezier(0.23,1,0.32,1);--ease-in-out:cubic-bezier(0.77,0,0.175,1);--dur-press:160ms;--dur-hover:150ms;--dur-enter:220ms}
:root{font-family:Manrope,Arial,sans-serif;background:#040c16;color:#eff8ff;color-scheme:dark;--orange:#ffac76;--cyan:#98e6f8;--line:#a9d9ed35}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input{font:inherit}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer;color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--cyan);outline-offset:5px}[hidden]{display:none!important}.skip-link{position:fixed;top:-100px;left:20px;background:#fff;color:#102238;padding:15px;z-index:100}.skip-link:focus{top:20px}
.film-stage{position:fixed;inset:0;background:#040b15;overflow:hidden;z-index:0}.earth-scene,.city-scene,.entry-scene{position:absolute;inset:0;overflow:hidden;transition:opacity .3s}.earth-scene{transform:scale(var(--earth-zoom,1));transition:opacity .3s,transform .85s cubic-bezier(.55,.02,.7,1)}.earth-scene canvas{display:block;width:100%;height:100%}.earth-pin{position:absolute;left:var(--pin-x,72%);top:var(--pin-y,36%);display:flex;align-items:center;gap:15px;font-size:12px;letter-spacing:.14em;text-shadow:0 2px 10px #000;transform:translateY(-50%)}.earth-pin i,.city-pin i{display:block;width:6px;height:6px;border-radius:50%;background:#ffb276;box-shadow:0 0 0 6px #ffb27630,0 0 22px #ffa565}.earth-pin small{display:block;font-size:12px;letter-spacing:0;color:#c6d9e9;margin-top:4px}.city-scene{opacity:0;background:#111f2c;pointer-events:none}#map-layers{position:absolute;inset:0;transform:perspective(1800px) rotateX(8deg)}.map-level{position:absolute;left:50%;top:50%;width:1024px;height:1024px;opacity:0;transform-origin:center;filter:saturate(.65) brightness(.7)}.map-level img{position:absolute;width:256px;height:256px;max-width:none}.city-pin{position:absolute;left:50%;top:50%;display:flex;align-items:center;gap:15px;font-size:14px;letter-spacing:.2em;text-shadow:0 2px 18px #000}.entry-scene{opacity:0;background:#0b121b}.entry-camera{position:absolute;width:max(100vw,177.778vh);height:max(56.25vw,100vh);left:50%;top:50%;transform:translate(-50%,-50%) scale(var(--entry-zoom,1));transform-origin:50% 52%;perspective:1600px}.entry-camera>#room-image{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}.door-assembly{position:absolute;left:var(--door-left,30.5%);top:var(--door-top,5.8%);width:var(--door-width,39%);height:var(--door-height,88.2%);transform-origin:left center;transition:transform .48s var(--ease-out),opacity .4s;filter:drop-shadow(8px 0 14px #0008)}.door-assembly>img{position:absolute;width:127%;height:102.6%;left:-13.5%;top:-1.2%}.door-sign{position:absolute;top:17%;left:23%;right:23%;padding:9px 5px;border:1px solid #98d6e9aa;background:#082239df;color:#eff6fc;font-size:clamp(12px,1vw,16px);font-weight:600;letter-spacing:.13em;text-align:center;line-height:1.7}.door-sign small{display:block;font-size:12px;letter-spacing:0;font-weight:400}.portal-open .door-assembly{transform:rotateY(87deg);opacity:0}.film-shade{position:absolute;inset:0;background:linear-gradient(90deg,#040d18e0,#040d1855 50%,transparent 78%),linear-gradient(0deg,#040d18ee,transparent 40%,#040d1844);transition:opacity .3s}.interface-lines{position:absolute;inset:110px 3vw 145px;border-left:1px solid #9ddcf01c;border-right:1px solid #9ddcf01c;pointer-events:none}.interface-lines:after{content:'';position:absolute;width:28px;height:28px;right:-1px;top:0;border-top:1px solid #a9e6fa;border-right:1px solid #a9e6fa}.arrival-header{position:fixed;top:0;inset-inline:0;height:100px;padding:0 5vw;display:flex;justify-content:space-between;align-items:center;gap:25px;z-index:15;border-bottom:1px solid var(--line);background:linear-gradient(#05101ae0,#05101a00)}.arrival-brand{font-size:26px;font-weight:800;letter-spacing:-1px}.arrival-brand>span{color:var(--orange)}.arrival-brand small{display:block;font-size:12px;letter-spacing:.04em;font-weight:400;margin-top:5px;color:#a9c5d8}.arrival-header nav{display:flex;gap:30px;align-items:center;font-size:14px}.arrival-header nav>a{color:#c6dce9}.destination-toggle{border:1px solid var(--line);border-radius:4px;padding:10px 17px;background:#0a25355c;display:flex;gap:20px;align-items:center;font-size:14px;backdrop-filter:blur(12px)}.destination-toggle span{font-size:23px;line-height:1}.earth-intro{position:fixed;left:7vw;top:26%;z-index:5;width:50%;max-width:760px;transition:opacity .2s,transform .3s}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:#afd3e5;line-height:1.7;margin:0 0 23px}.earth-intro h1{font-size:clamp(2.8rem,4.6vw,5.4rem);font-weight:400;line-height:1.09;letter-spacing:-.055em;margin:0 0 26px}h1 em,h2 em{font-style:normal;color:var(--orange)}.earth-intro>p:not(.eyebrow){font-size:17px;line-height:1.8;color:#b8d0e0;margin:0 0 29px}.primary-action{border:1px solid #ffc09a;background:#ffad77;color:#071421;border-radius:3px;padding:17px 23px;display:flex;align-items:center;justify-content:space-between;gap:45px;font-size:14px;font-weight:700;transition:background .16s,transform .16s}.primary-action>span{font-size:22px}.intro-destinations{display:flex;gap:25px;margin-top:23px}.intro-destinations button{border:0;border-bottom:1px solid var(--line);padding:0 0 6px;background:none;color:#bfdae9;font-size:14px}.travel-caption{position:fixed;left:7vw;bottom:25%;z-index:5;opacity:0;transform:translateY(10px);transition:opacity .16s,transform .2s;pointer-events:none}.travel-caption h2{font-size:clamp(2.6rem,4.7vw,5rem);font-weight:400;letter-spacing:-.05em;line-height:1.1;margin:0 0 12px}.travel-caption p:last-child{font-size:16px;color:#bbd7e8;margin:0}.travel-caption .eyebrow{margin-bottom:13px}
.resource-hub{position:fixed;inset:100px 0 146px;z-index:6;padding:40px 7vw;overflow:auto;display:grid;grid-template-columns:40% 1fr;gap:7%;align-items:center;perspective:1600px;background:linear-gradient(90deg,#051320b8,transparent 70%)}.hub-intro{animation:introIn .38s both}.hub-intro h1{font-size:clamp(2.7rem,3.7vw,4.7rem);font-weight:400;line-height:1.12;letter-spacing:-.052em;margin:0 0 24px}.hub-intro>p:not(.eyebrow){font-size:16px;line-height:1.8;color:#d0e2ec;max-width:460px;text-shadow:0 2px 10px #06111e}.hub-panel{border:1px solid #91cbdf66;background:linear-gradient(125deg,#0b2b3cd4,#0b2334c2);backdrop-filter:blur(18px);box-shadow:0 20px 70px #01091666,inset 0 0 50px #94e0ff04;position:relative;animation:panelIn .48s var(--ease-out) both;transform-style:preserve-3d}.hub-panel:before,.hub-panel:after{content:'';position:absolute;width:24px;height:24px;pointer-events:none}.hub-panel:before{top:-1px;left:-1px;border-left:2px solid var(--cyan);border-top:2px solid var(--cyan)}.hub-panel:after{bottom:-1px;right:-1px;border-right:2px solid var(--cyan);border-bottom:2px solid var(--cyan)}.panel-heading{display:flex;justify-content:space-between;gap:15px;padding:18px 25px;color:#a8d0e3;border-bottom:1px solid var(--line);font-size:12px;letter-spacing:.08em}.hub-resources>a{display:grid;grid-template-columns:24px 1fr 22px;gap:16px;padding:24px 25px;border-bottom:1px solid var(--line);align-items:start;transition:background .16s,transform .2s;animation:itemIn .35s calc(var(--item)*45ms) both}.hub-resources>a>small{font-size:12px;color:#97c3d6;padding-top:6px}.hub-resources strong{font-size:clamp(20px,1.65vw,25px);font-weight:500;letter-spacing:-.03em;line-height:1.3}.hub-resources p{font-size:15px;line-height:1.65;color:#b0cddb;margin:7px 0 0}.hub-resources>a>span{font-size:24px;color:var(--orange);align-self:center}.panel-footer{padding:12px 22px;display:flex;align-items:center;justify-content:space-between;color:#a9c7d8;font-size:12px}.panel-footer button{width:35px;height:35px;border:1px solid var(--line);background:transparent;font-size:18px}.panel-footer button:hover{background:#c4f0ff22}#hub-art{display:flex;gap:16px;margin-top:24px}#hub-art img{height:150px;width:auto;max-width:100%;object-fit:contain;box-shadow:0 8px 24px #0008}#hub-art .engagement-art{height:160px;max-width:300px;object-fit:cover}.travel-footer{position:fixed;bottom:0;left:0;right:0;z-index:15;padding:0 5vw 18px;background:linear-gradient(0deg,#05101af5,#05101acc 70%,transparent)}#universe-dock{display:flex;align-items:stretch;justify-content:space-between;gap:0;border:1px solid var(--line);background:#0a253589;backdrop-filter:blur(18px);overflow:auto;scrollbar-width:thin;scrollbar-color:#97d5ef33 transparent}#universe-dock button{border:0;border-right:1px solid #a9d9ed20;background:transparent;padding:16px 15px;color:#afcbd9;font-size:14px;white-space:nowrap;min-height:68px;flex:1;transition:background .15s,color .15s;position:relative}#universe-dock button:last-child{border-right:0}#universe-dock button>span{display:block;font-size:12px;color:#7facc2;margin-bottom:5px}#universe-dock button[aria-pressed=true]{background:#b7eaff13;color:#fff}#universe-dock button[aria-pressed=true]:after{content:'';position:absolute;bottom:0;left:20%;right:20%;height:2px;background:var(--orange)}#universe-dock button:hover{background:#b7eaff1c;color:#fff}.travel-actions{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-top:12px;font-size:12px;color:#86acc2}.travel-actions>div{display:flex;gap:22px}.travel-actions button{border:0;background:none;padding:5px 0;color:#b3cddc;font-size:12px}.map-attribution,.scene-disclosure{position:fixed;bottom:153px;right:5vw;z-index:7;font-size:12px;color:#b3c9df;text-shadow:0 1px 5px #000;line-height:1.5}.map-attribution{max-width:410px}.map-attribution a{text-decoration:underline}.scene-disclosure{opacity:.7}.destination-menu{width:min(1000px,94vw);max-height:90svh;border:1px solid #a7e3f377;border-radius:4px;background:#071d2bef;color:#ecf4ff;padding:30px 40px;box-shadow:0 25px 100px #0009;backdrop-filter:blur(24px)}.destination-menu::backdrop{background:#020a13bb;backdrop-filter:blur(12px)}.menu-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.menu-top .eyebrow{margin:0}.close-menu{border:1px solid var(--line);border-radius:3px;background:none;padding:10px 16px;font-size:14px}.destination-menu h2{font-size:40px;font-weight:400;line-height:1.1;letter-spacing:-.05em;margin:0 0 28px}.destination-list{display:grid;grid-template-columns:repeat(3,1fr);gap:0 25px}.destination-list button{border:0;border-top:1px solid var(--line);background:none;text-align:left;padding:22px 0;display:grid;grid-template-columns:22px 1fr 16px;gap:10px;align-items:start}.destination-list button>span{font-size:12px;color:var(--orange);margin-top:5px}.destination-list strong{font-size:20px;font-weight:500;line-height:1.3;letter-spacing:-.03em}.destination-list small{display:block;font-size:14px;line-height:1.5;color:#a1c0d2;margin-top:8px}.destination-list b{font-size:20px;font-weight:400}.destination-list button:hover strong{color:var(--cyan)}.menu-links{display:flex;gap:28px;border-top:1px solid var(--line);padding-top:22px;font-size:14px;color:#accbdc}.noscript-resources{position:fixed;inset:100px 0 140px;overflow:auto;padding:40px 7vw;background:#071524;z-index:30}.noscript-resources a{display:block;padding:20px;color:#ffc095}
body:not([data-step=earth]) .earth-intro{opacity:0;transform:translateX(-20px);pointer-events:none}body:not([data-step=earth]):not([data-step=flight]) .earth-scene{opacity:0}body[data-step=city] .city-scene{opacity:1}body[data-step=city] .travel-caption,body[data-step=door] .travel-caption{opacity:1;transform:none}body[data-step=door] .entry-scene,body[data-step=enter] .entry-scene,body[data-step=resources] .entry-scene{opacity:1}body[data-step=resources] .entry-scene{filter:brightness(.7) saturate(.65)}body[data-step=resources] .film-shade{opacity:.8}body[data-step=resources] .arrival-header{background:#041320aa;backdrop-filter:blur(10px)}body[data-step=switch] .entry-scene{opacity:.15}body[data-step=switch] .interface-lines{background:#a5e6ff0c}body[data-world=commerce]{--cyan:#a7efdf}body[data-world=terrain]{--cyan:#a7efdf}body[data-world=engagement]{--cyan:#d4c2ff}
@keyframes panelIn{from{opacity:0;transform:translateX(45px) rotateY(-9deg) scale(.98)}to{opacity:1;transform:none}}@keyframes itemIn{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}@keyframes introIn{from{opacity:0;transform:translateX(-15px)}to{opacity:1;transform:none}}
.motion-reduced *,.reduced-motion *{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:150ms!important;transition-property:opacity,color,background-color,border-color,box-shadow!important;transition-delay:0ms!important;scroll-behavior:auto!important}.motion-reduced :hover,.reduced-motion :hover,.motion-reduced :active,.reduced-motion :active{transform:none!important}
@media(max-width:1100px){#universe-dock{justify-content:flex-start}#universe-dock button{min-width:115px;padding:12px}.resource-hub{padding:30px 6vw;grid-template-columns:39% 1fr;gap:5%}.hub-intro h1{font-size:3.1rem}.earth-intro{width:62%}.earth-intro h1{font-size:5.2vw}.arrival-brand small{font-size:12px}.scene-disclosure{bottom:144px}.hub-resources>a{padding:19px}.panel-heading{padding:16px 19px}}
@media(max-width:760px){.arrival-header{height:88px;padding:0 5vw}.arrival-brand{font-size:23px}.arrival-brand small{font-size:12px;max-width:215px;letter-spacing:0}.arrival-header nav>a{display:none}.destination-toggle{font-size:14px;padding:9px 11px;gap:8px}.destination-toggle span{display:none}.earth-intro{left:7vw;right:7vw;width:auto;top:23%;max-width:none}.earth-intro h1{font-size:clamp(2.4rem,8.8vw,4rem);margin-bottom:22px}.eyebrow{font-size:12px;letter-spacing:.08em;margin-bottom:20px}.earth-intro>p:not(.eyebrow){font-size:16px;margin-bottom:23px}.primary-action{font-size:14px;padding:15px 18px;gap:22px}.intro-destinations{gap:22px;margin-top:22px}.intro-destinations button{font-size:14px}.earth-pin{display:none}.film-shade{background:linear-gradient(90deg,#040b15bb,#040b1533),linear-gradient(0deg,#040b15ee,transparent 35%,#040b1555)}.travel-footer{padding:0 4vw 13px}#universe-dock button{font-size:14px;min-width:110px;min-height:65px;padding:10px}#universe-dock button>span{font-size:12px}.travel-actions{font-size:12px;margin-top:8px;justify-content:flex-end}.travel-actions>span{display:none}.travel-actions>div{width:100%;justify-content:space-between;gap:12px}.travel-actions button{font-size:12px}.interface-lines{inset:96px 4vw 137px}.travel-caption{left:7vw;right:7vw;bottom:25%}.travel-caption h2{font-size:2.7rem}.entry-camera{width:177.778vh;height:100vh}.door-sign{font-size:16px}.resource-hub{inset:88px 0 129px;padding:28px 6vw;display:block;background:linear-gradient(90deg,#051320aa,#05132033)}.hub-intro h1{font-size:clamp(2.25rem,8vw,3.3rem);margin-bottom:17px;line-height:1.1}.hub-intro>p:not(.eyebrow){font-size:16px;line-height:1.65;margin-bottom:22px}.hub-intro .eyebrow{margin-bottom:13px}.hub-panel{margin-top:25px}.hub-resources>a{padding:20px 17px;gap:12px;grid-template-columns:20px 1fr 20px}.hub-resources strong{font-size:20px}.hub-resources p{font-size:14px}.panel-heading{font-size:12px;padding:14px 17px;letter-spacing:.02em}.panel-footer{font-size:12px;padding:10px 17px}.map-attribution,.scene-disclosure{bottom:136px;right:5vw;left:5vw;font-size:12px;max-width:none;text-align:right}.scene-disclosure{display:none}.destination-menu{padding:23px;width:94vw}.destination-menu h2{font-size:32px}.destination-list{grid-template-columns:1fr 1fr;gap:0 20px}.destination-list button{padding:18px 0;grid-template-columns:1fr}.destination-list button>span,.destination-list button>b{display:none}.destination-list strong{font-size:18px}.destination-list small{font-size:14px}.menu-links{gap:20px;flex-wrap:wrap;font-size:14px}#hub-art img{height:110px}#hub-art .engagement-art{height:125px}.menu-top .eyebrow{font-size:12px}}
@media(max-height:720px) and (min-width:761px){.arrival-header{height:85px}.earth-intro{top:23%}.earth-intro h1{font-size:4vw;margin-bottom:18px}.earth-intro>p:not(.eyebrow){font-size:16px;margin-bottom:20px}.earth-intro .eyebrow{margin-bottom:16px}.primary-action{padding:13px 20px}.intro-destinations{margin-top:18px}.resource-hub{inset-block:85px 139px;padding-block:25px}.hub-intro h1{font-size:3rem}.hub-intro .eyebrow{margin-bottom:15px}.hub-resources>a{padding-block:17px}.hub-resources p{font-size:14px}#hub-art img{height:90px}#hub-art .engagement-art{height:100px}.scene-disclosure{bottom:140px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:150ms!important;transition-property:opacity,color,background-color,border-color,box-shadow!important;transition-delay:0ms!important;scroll-behavior:auto!important}:hover,:active{transform:none!important}}
.route-veil{position:fixed;inset:0;z-index:1000;pointer-events:none;background:linear-gradient(115deg,#061927f7,#183c51e8);opacity:0;transform:translateX(-4%);transition:opacity .15s,transform .2s;backdrop-filter:blur(4px)}.route-leaving .route-veil{opacity:1;transform:none}.hub-panel{transition:transform .14s ease-out}
.hub-panel{animation-fill-mode:backwards}#hub-title:focus{outline:none}
body:not([data-room=classroom]) .door-assembly{display:none}.universe-explore{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;padding:14px 19px;border:1px solid #aee4f37a;background:#103449ad;backdrop-filter:blur(12px);color:#e5f7ff;font-size:14px;margin-top:12px}.universe-explore:hover{background:#22526a}.universe-explore>span{color:#ffb57f;font-size:22px}#universe-dock button{padding-inline:12px}#universe-dock button[data-destination=ia]{color:#b9edff}.destination-list button[data-destination=ia]{color:#b9edff}body[data-world=ia]{--cyan:#a4e8ff}body[data-world=ia] .hub-intro h1{font-size:clamp(2.4rem,3.25vw,4.2rem)}@media(max-width:760px){.universe-explore{margin-top:0;margin-bottom:10px}.earth-intro>.eyebrow{max-width:320px}body[data-world=ia] .hub-intro h1{font-size:2.6rem}.destination-list{grid-template-columns:1fr 1fr}}

/* Space → satellite view → aerial lycée approach → classroom. */
.drone-scene{position:absolute;inset:0;opacity:0;overflow:hidden;pointer-events:none;transition:opacity .35s;background:#122336}
.drone-scene>img{width:100%;height:100%;object-fit:cover;object-position:51% 48%;transform-origin:51% 48%;transform:scale(1.02)}
body[data-step=drone] .drone-scene{opacity:1}
body[data-step=drone] .drone-scene>img{animation:droneApproach 2.3s cubic-bezier(.2,.15,.4,1) both}
body[data-step=drone] .travel-caption{opacity:1;transform:none;bottom:calc(var(--chrome-bottom,145px) + 32px);max-width:540px;text-shadow:0 3px 20px #020910}
body[data-step=drone] .travel-caption h2{font-size:clamp(1.6rem,3.3vw,3.6rem)}
body[data-step=drone] .film-shade{opacity:.45}
.drone-reticle{position:absolute;left:50%;top:48%;width:62px;height:62px;transform:translate(-50%,-50%);border:1px solid #c5f4ee77;border-radius:50%;box-shadow:0 0 0 10px #b6eeff0b}
.flight-telemetry{position:absolute;top:calc(var(--chrome-top,90px) + 26px);right:5vw;border-right:2px solid #a5e9ef;padding-right:15px;text-align:right;color:white;text-shadow:0 2px 8px #0009;font-size:11px;letter-spacing:.13em}
.flight-telemetry b,.flight-telemetry small{display:block;margin-top:7px;font-weight:400;font-size:11px}
@keyframes droneApproach{0%{transform:scale(1.02) translateY(-1%);filter:brightness(.92)}35%{transform:scale(1.15) translateY(0);filter:brightness(1)}100%{transform:scale(3.8) translateY(1.5%);filter:brightness(1.08)}}
@media(max-width:760px){.flight-telemetry{left:6vw;right:auto;text-align:left;border-right:0;border-left:2px solid #a5e9ef;padding-left:12px}.drone-scene>img{width:max(100vw,150vh);max-width:none;position:absolute;left:50%;margin-left:min(-50vw,-75vh)}body[data-step=drone] .travel-caption{bottom:calc(var(--chrome-bottom,130px) + 22px)}}
@media (hover:hover) and (pointer:fine){.primary-action:hover{background:#ffc19b;transform:translateX(3px)}.hub-resources>a:hover{background:#b2eaff14;transform:translateX(4px)}}
.primary-action:active,.destination-toggle:active,.intro-destinations button:active,#universe-dock button:active,.hub-resources>a:active,.destination-list button:active,.panel-footer button:active,.close-menu:active,.travel-actions button:active,.universe-explore:active{transform:scale(.97);transition:transform var(--dur-press) var(--ease-out)}
