@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;700;800&display=swap');
[hidden]{display:none!important}
:root{--bg:#11121a;--ink:#faf7f1;--muted:#bab6c7;--orange:#ff792d;--line:#3d3b48}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',system-ui,sans-serif}h1,h2,h3,.brand{font-family:Manrope,system-ui,sans-serif}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a.button{cursor:pointer}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #c3b0ff;outline-offset:5px}.nav{display:flex;align-items:center;justify-content:space-between;padding:18px 5%;background:#faf9f5;color:#15151c;gap:25px}.brand{font-size:27px;font-weight:800;line-height:1}.brand small{display:block;font-size:10px;text-align:center;font-weight:500;margin-top:5px}.nav nav,.account{display:flex;align-items:center;gap:28px;font-size:13px}.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:10px;padding:12px 18px;font-size:13px;font-weight:700}.dark{background:#13141a;color:white}.orange{background:var(--orange);color:#151016}.ghost{border-color:var(--line);color:inherit;background:transparent}.intro{max-width:1450px;margin:auto;padding:45px 5% 30px;display:grid;grid-template-columns:1fr 1fr;gap:55px;align-items:center}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.14em;color:#b5a6f9;margin:0 0 14px}h1{font-size:clamp(38px,4.2vw,65px);letter-spacing:-.045em;line-height:1.05;margin:0 0 20px}em{font-style:normal;color:var(--orange)}.lead{color:var(--muted);font-size:17px;line-height:1.6;margin-bottom:24px}.intro .button{margin-right:8px}.command-card{background:linear-gradient(145deg,#2b2935,#191b25);border:1px solid #4a4556;border-radius:19px;padding:25px;box-shadow:0 15px 60px #0003}form{display:flex;gap:10px;padding:7px;background:#faf9f5;border-radius:12px;margin:15px 0}form input{flex:1;min-width:0;background:transparent;border:0;color:#15151c;font-size:17px;padding:13px}form button{border:0;background:var(--orange);border-radius:9px;width:54px;font-size:29px}.presets{display:flex;flex-wrap:wrap;gap:8px}.presets button{background:#30303b;border:1px solid #4d4b5b;color:#eee9f5;border-radius:7px;padding:10px;font-size:11px}.small{font-size:11px;color:var(--muted);line-height:1.6}.world-section,.mission-section{max-width:1500px;margin:auto;padding:0 3%}.section-line{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:16px 0}h2{font-size:24px;letter-spacing:-.025em;margin:0}.section-line>span{font-size:11px;color:var(--muted)}.world-scroll{border:1px solid #5c4b51;border-radius:20px;overflow:hidden;background:#28222b}.world-map{position:relative;width:100%;aspect-ratio:1.5;isolation:isolate}.world-art{position:absolute;width:100%;height:100%;object-fit:cover;z-index:-2}.world-map:after{content:'';position:absolute;inset:0;pointer-events:none;z-index:-1;background:linear-gradient(#0002,transparent 30%,transparent 75%,#05050c70)}.station{position:absolute;transform:translate(-50%,-50%);background:#10141bdc;color:white;border:1px solid #ffffff60;border-radius:10px;min-width:115px;padding:9px 12px;text-align:left;backdrop-filter:blur(8px);transition:transform .25s,box-shadow .25s;z-index:2}.station:hover{transform:translate(-50%,-50%) translateY(-4px);border-color:var(--orange)}.station b{display:block;font-size:12px}.station small{font-size:9px;color:#d2cbd3}.symbol{font-size:17px;float:left;margin:3px 9px 0 0;color:#f7b06b}.station[data-active=true]{border-color:#ffab70;box-shadow:0 0 0 2px #ff792d80,0 0 30px #ff792d88}.station[data-working=true]{animation:working 1.8s ease-in-out infinite}.coordinator{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);border:1px solid #b99aff;background:#1f1428dd;backdrop-filter:blur(8px);color:#fff;border-radius:12px;padding:10px 17px;z-index:3;box-shadow:0 0 28px #9b64ff5c;animation:pulse 3s ease-in-out infinite}.coordinator b{display:block;font-size:16px;letter-spacing:.04em}.coordinator small{font-size:10px}.connections{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.connections path{stroke:#ffc086;stroke-width:.2;fill:none;opacity:0}.connections path.active{opacity:.75;stroke-dasharray:1 1.5;animation:flow 4s linear infinite}.map-caption{position:absolute;bottom:15px;left:22px;font-weight:700;font-size:12px;text-shadow:0 2px 5px #000}.roster{display:flex;gap:7px;overflow-x:auto;padding:15px 2px}.roster button{flex:none;color:#d9d4e6;background:#22222e;border:1px solid #484050;border-radius:20px;padding:9px 13px;font-size:11px}.roster button[aria-pressed=true]{background:#513629;border-color:var(--orange);color:#fff}.mission-section{padding:10px 3% 40px}.demo-tag{padding:7px 11px;border:1px solid #55515d;border-radius:20px}.mission-layout{display:grid;grid-template-columns:1fr 2.5fr 1.2fr;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#1a1c26}.activity,.result,.mission-main{padding:24px}.activity,.mission-main{border-right:1px solid var(--line)}.activity p,.result p{font-size:13px;color:var(--muted);line-height:1.7}.team-tags{display:flex;gap:6px;flex-wrap:wrap}.team-tags span{font-size:9px;border:1px solid #655449;color:#f6be96;padding:5px 8px;border-radius:20px}.progress-title{display:flex;justify-content:space-between;gap:16px;font-size:13px}.progress-title span{color:var(--orange)}.rail{height:5px;background:#3a3542;border-radius:8px;margin:18px 0;overflow:hidden}.rail i{display:block;height:100%;width:0;background:linear-gradient(90deg,#a18aff,var(--orange));transition:width .5s}.steps{display:grid;grid-template-columns:repeat(6,1fr);gap:5px}.steps button{background:#272832;border:1px solid #44424e;color:#a9a5b6;font-size:10px;padding:12px 4px;border-radius:8px}.steps button.active{border-color:var(--orange);color:#ffd1b2;background:#3b2c29}.steps button.done{color:#e2d0f5;border-color:#76628f}.steps button b{display:block;font-size:15px;margin-bottom:5px}.mission-controls{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.mission-controls .button{font-size:11px;padding:10px 13px}.reset{background:transparent;color:var(--muted);border:0;font-size:11px;margin-left:auto}.brief{font-size:12px;line-height:1.6;color:#d3cddd;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.result h3{font-size:25px;line-height:1.15;letter-spacing:-.03em;margin:0 0 12px}.result .button{font-size:11px;width:100%}.worlds{background:#f0ece5;color:#20202a;padding:38px 5%;display:flex;gap:20px;align-items:center}.worlds>div{flex:1}.worlds .eyebrow{color:#6e5888}.worlds p{font-size:13px;line-height:1.6;max-width:620px;color:#5e5864}.worlds .ghost{border-color:#bdb2bc}footer{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:28px 5%}footer p,footer>a:last-child{font-size:11px;color:var(--muted)}dialog{border:1px solid #6b526b;border-radius:20px;max-width:460px;width:calc(100% - 32px);background:#1d1d2a;color:var(--ink);padding:32px;box-shadow:0 25px 100px #0009}dialog::backdrop{background:#070711c7;backdrop-filter:blur(5px)}dialog h2{font-size:29px;margin:8px 0 15px}dialog h3{font-size:12px}dialog p,dialog li{font-size:13px;line-height:1.7;color:#cfcbda}dialog li{margin:6px 0}.character-icon{font-size:40px;color:var(--orange)}.close{position:absolute;right:14px;top:10px;border:0;background:transparent;color:#ddd;font-size:28px}.sr,.skip{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip:focus{width:auto;height:auto;clip-path:none;z-index:20;background:white;color:black;padding:15px}.section-line .eyebrow{margin-bottom:7px}@keyframes pulse{50%{box-shadow:0 0 40px #bc8cff88}}@keyframes flow{to{stroke-dashoffset:-12}}@keyframes working{50%{box-shadow:0 0 0 3px #ff9b6680,0 0 40px #ff792daa}}@media(max-width:1100px){.nav{padding:16px 4%;gap:15px}.nav nav{gap:15px}.intro{gap:25px;padding:35px 4% 25px}.mission-layout{grid-template-columns:1fr 2fr}.result{grid-column:1/-1;border-top:1px solid var(--line)}.worlds{flex-wrap:wrap}.worlds>div{flex-basis:100%}.station{min-width:95px;padding:7px 8px}.station b{font-size:10px}.station small{font-size:8px}}
@media(max-width:600px){.nav{flex-wrap:wrap;gap:15px}.nav nav{order:3;width:100%;justify-content:space-between;font-size:11px;border-top:1px solid #dedbd5;padding-top:12px}.brand{font-size:24px}.account{gap:12px;font-size:12px}.account .button{padding:10px 12px}.intro{display:block;padding:30px 5% 15px}h1{font-size:40px}.lead{font-size:15px}.command-card{margin-top:25px;padding:17px}form input{font-size:14px;padding:10px}.section-line{align-items:flex-start}.section-line h2{font-size:20px}.section-line>span{font-size:9px;max-width:135px}.world-section{padding:0 4%}.world-scroll{overflow:auto;scrollbar-width:thin}.world-map{width:760px;aspect-ratio:1.5}.station{min-width:110px}.station b{font-size:11px}.world-section .section-line>span:after{content:' · Swipe to explore'}.mission-section{padding:5px 4% 28px}.mission-layout{display:block}.activity,.mission-main{border-right:0;border-bottom:1px solid var(--line);padding:20px}.result{padding:20px;border:0}.steps{gap:3px}.steps button{font-size:9px;padding:10px 2px}.mission-controls .button{padding:10px}.worlds{padding:28px 5%;gap:10px}.worlds h2{font-size:22px}footer{flex-wrap:wrap;gap:15px}footer p{flex-basis:100%;order:3}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
.challenge{margin-top:18px;padding:20px;border:1px solid #625247;border-radius:16px;background:#171c27}.scoreline{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.85rem;color:#ffbc83}.choices{display:grid;gap:10px}.choices button{text-align:left;white-space:normal;line-height:1.45}.choices button[aria-pressed=true]{border-color:#ff8a32;background:#443024}.choices button:disabled{opacity:.8}.challenge h3{outline-offset:6px}#feedback{min-height:2.5em;color:#f6cfab}

/* Keep the interactive world in-scene while the surrounding layout reflows. */
.intro>*,.mission-layout>*,.worlds>*,.section-line>*{min-width:0}
.mission-layout{grid-template-columns:minmax(0,1fr) minmax(0,2.5fr) minmax(0,1.2fr)}
.roster{flex-wrap:wrap;overflow:visible}
.roster button{max-width:100%;white-space:normal;min-height:44px}
.section-line{flex-wrap:wrap}
.mission-section h2,.progress-title,.challenge,.team-tags{overflow-wrap:anywhere}
dialog{max-height:calc(100dvh - 32px);overflow-y:auto}
@media(max-width:1100px){
  .world-scroll{overflow:hidden}
  .world-map{width:100%;aspect-ratio:1.5}
  .station{min-width:0;width:18%;padding:7px;overflow-wrap:anywhere}
  .station b{font-size:11px;line-height:1.25}
  .station small{font-size:9px;line-height:1.3}
  .world-section .section-line>span:after{content:none}
  .mission-layout{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
  .result{grid-column:1/-1;border-top:1px solid var(--line)}
}
@media(max-width:1100px){
  .station,.coordinator{width:44px;height:44px;min-width:44px;padding:0;border-radius:50%;display:grid;place-items:center;background:#10141be8;border:1px solid #ffd29b;box-shadow:0 0 12px #ff792d66}
  .station:hover{transform:translate(-50%,-50%)}
  .station .symbol{float:none;margin:0;font-size:21px;line-height:1}
  .station b,.station small,.coordinator small{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .coordinator{left:50%;top:37%;border-color:#c5a7ff;background:#241337e8}
  .coordinator b{font-size:8px;letter-spacing:0}
  .map-caption{display:none}
  .world-section .section-line>span{max-width:none;font-size:11px}
  .mission-layout{display:block}
  .intro .button{margin-bottom:8px}
  .presets button{min-height:44px}
  .section-line .demo-tag{font-size:11px}
}
@media(max-width:380px){
  .nav{gap:12px;padding:16px 4%}
  .account{gap:8px}
  .account .button{padding:10px}
  .steps{grid-template-columns:repeat(3,minmax(0,1fr))}
  .steps button{min-height:44px}
  .activity,.mission-main,.result{padding:16px}
  .challenge{padding:14px}
}


/* The scene supplies seated poses and desk occlusion; controls follow the figures. */
.world-map .station,.world-map .coordinator{width:10%;height:16%;min-width:0;padding:0;border:2px solid transparent;border-radius:35%;background:transparent;backdrop-filter:none;box-shadow:none;animation:none;transform:translate(-50%,-50%)}
.world-map .coordinator{left:50%;top:36%;width:15%;height:20%}
.world-map .station:hover,.world-map .coordinator:hover{transform:translate(-50%,-50%);border-color:#ffd29baa;background:#ffb76b12}
.world-map .station:focus-visible,.world-map .coordinator:focus-visible{outline:3px solid #e5cbff;outline-offset:2px}
.world-map .station[data-active=true]{border-color:#ffd29b;box-shadow:0 0 16px #ff792d88}
.world-map .station[data-working=true]{border-color:#ffd29b;animation:working 1.8s ease-in-out infinite}
.world-map .station b,.world-map .station small,.world-map .station .symbol,.world-map .coordinator b,.world-map .coordinator small{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}

