:root{--bg:#090f20;--ink:#eaf2ff;--muted:#8b9ab8;--lime:#92f3e3;--line:#2a3654;--orange:#ffb17e}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif}.page{max-width:1320px;padding:0 54px;margin:auto}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid var(--orange);outline-offset:4px}header{height:106px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-size:19px;font-weight:900;letter-spacing:-.6px}.brand-icon{width:40px;height:44px;border:1px solid var(--lime);color:var(--lime);display:grid;place-items:center;font-size:30px}.brand-light{font-weight:400}.brand small{display:block;font:9px monospace;letter-spacing:1.6px;margin-top:7px;color:var(--muted)}.header-right{display:flex;align-items:center;gap:28px}.edition{font:10px monospace;letter-spacing:1.5px;color:var(--muted)}.icon-button{border:1px solid var(--line);background:transparent;color:var(--ink);padding:10px 12px;font:11px monospace;min-width:38px}.eyebrow{font:11px monospace;letter-spacing:2px;padding-top:36px;display:flex;align-items:center;gap:9px;color:var(--lime)}.live-dot{width:6px;height:6px;background:var(--lime);border-radius:50%}.eyebrow-end{margin-left:auto;color:var(--muted);font-size:10px}.title-row{display:flex;align-items:center;justify-content:space-between;margin:14px 0 28px;gap:20px}h1{font-size:clamp(32px,4.7vw,63px);letter-spacing:-3px;line-height:1;margin:0;font-weight:950}h1 em{font-style:normal;color:var(--lime)}.title-row p{font-size:12px;line-height:1.7;color:var(--muted);margin:0}.arcade{border:1px solid #3c5071;padding:7px;background:#111b31;box-shadow:0 16px 50px #0003}.hud{height:72px;background:#0d162b;display:flex;align-items:center;justify-content:space-between;padding:0 27px;gap:12px}.hud>div>small,.hero-label small{display:block;font:9px monospace;letter-spacing:2px;color:var(--muted);margin-bottom:5px}.hud strong{font:bold 17px monospace;letter-spacing:1px}.hero-label{display:flex;align-items:center;gap:10px;font:bold 12px monospace;letter-spacing:1px}.hero-label img{width:43px;height:43px;object-fit:contain}.hero-label small{color:var(--orange);margin:5px 0 0;letter-spacing:3px;font-size:13px}.stage{position:relative;aspect-ratio:1100/570;overflow:hidden;background:#a9ccaf}canvas{width:100%;height:100%;display:block;image-rendering:pixelated}.overlay{position:absolute;inset:0;background:linear-gradient(90deg,#142a22f5 0%,#183227e6 43%,#16352b44 100%);display:flex;align-items:center;padding:5% 6%;gap:6%;overflow:hidden}.overlay[hidden]{display:none}.overlay-copy{width:54%;z-index:2}.tag{font:10px monospace;letter-spacing:2px;color:var(--lime)}h2{font-size:clamp(30px,5.5vw,72px);letter-spacing:-3px;line-height:.98;margin:20px 0;font-weight:950}h2 em{color:var(--lime);font-style:normal}.overlay p{font-size:13px;line-height:1.8;max-width:340px;color:#bdcfe0;margin:0 0 24px}.primary{background:var(--lime);border:0;color:#18231a;font:bold 12px monospace;letter-spacing:1px;padding:17px 20px;box-shadow:4px 4px 0 #091025;display:flex;justify-content:space-between;gap:30px;align-items:center}.primary:hover{background:#c8fff5;transform:translateY(-1px)}.primary span{font-size:20px}.intro-hint{margin-top:26px;font:9px monospace;letter-spacing:1px;color:#9aafc8;display:flex;gap:17px}.hero-art{position:relative;width:40%;height:90%;display:flex;align-items:center;justify-content:center}.hero-art img{height:102%;max-width:110%;object-fit:contain;position:relative;filter:drop-shadow(12px 18px 0 #061a1a55);image-rendering:auto;transform:rotate(-7deg)}.hero-disc{position:absolute;width:95%;aspect-ratio:1;background:#c5df7d;border-radius:50%;opacity:.85;box-shadow:0 0 0 14px #d8ee8e15,0 0 0 15px #d8ee8e30}.orbit-text{position:absolute;right:-6%;top:0;z-index:2;writing-mode:vertical-rl;font:9px monospace;letter-spacing:3px;color:#92f3e3}.art-star{position:absolute;top:5%;left:0;color:#edf4b4;font-size:66px}.game-footer{min-height:40px;display:flex;align-items:center;justify-content:space-between;padding:8px 16px;gap:12px;font:9px monospace;letter-spacing:1px;color:#a0bbd8}.game-footer>span:nth-child(2){color:#768cae}.text-button{padding:0;border:0;background:transparent;color:inherit;font:10px monospace;letter-spacing:1px}.text-button:hover{color:var(--lime)}#secondary{display:block;margin-top:18px;text-decoration:underline;color:var(--ink)}#secondary[hidden]{display:none}#toast{position:absolute;top:25%;left:50%;transform:translateX(-50%);background:#152a21ed;color:var(--lime);font:bold 15px monospace;padding:16px 24px;border:1px solid #c5df7d;pointer-events:none;text-align:center;opacity:0;transition:opacity .15s;max-width:90%}#boss-hud{position:absolute;top:15px;left:25%;width:50%;background:#10231eea;padding:10px 16px;font:bold 12px monospace;color:#fff0c6;display:flex;justify-content:space-between;gap:10px;border:1px solid #b2bee655}#boss-hud[hidden]{display:none}#boss-health{color:#e390ff}.below{display:flex;justify-content:space-between;align-items:center;padding:23px 0;border-bottom:1px solid var(--line);gap:16px}.controls{display:flex;align-items:center;gap:20px;font-size:10px;color:#b8c7df}.section-label{font:9px monospace;letter-spacing:1.5px;color:var(--muted)}.controls>span{display:flex;align-items:center;gap:5px}kbd{font:9px monospace;border:1px solid #415573;border-radius:2px;padding:4px 5px;color:var(--ink)}i{font-style:normal;color:var(--muted);font-size:9px}.rescue-section{margin:32px 0 36px}.rescue-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:20px}.rescue-heading h3{font-size:25px;letter-spacing:-1px;margin:9px 0 0}.rescue-heading p{color:var(--muted);font-size:11px;line-height:1.7;text-align:right;margin:0}.rescue-heading p span{font:9px monospace;color:var(--lime);letter-spacing:1px}.route{display:grid;grid-template-columns:repeat(8,1fr);gap:8px}.route-card{text-align:left;background:#101b30;border:1px solid var(--line);color:var(--ink);padding:12px 10px 10px;position:relative}.route-card:disabled{cursor:default}.route-card.current{border-color:var(--lime);background:#1a2e43}.route-card.freed{border-color:#518b97}.route-card img{width:100%;height:63px;object-fit:contain;filter:saturate(.45);opacity:.8}.route-card.current img,.route-card.freed img{filter:none;opacity:1}.route-card .number{font:9px monospace;color:var(--muted)}.route-card strong{display:block;font-size:12px;margin:9px 0 4px}.route-card small{display:block;font:8px monospace;letter-spacing:.5px;color:var(--muted)}.route-card.current small{color:var(--lime)}footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;padding:24px 0 32px;font:9px monospace;letter-spacing:1px;color:var(--muted)}footer span:last-child{color:var(--lime)}.touch-controls{display:none;justify-content:space-between;margin-top:14px}.touch-controls>div{display:flex;gap:10px}.touch-controls button{touch-action:none;user-select:none;min-width:54px;height:48px;background:#192941;border:1px solid #476d86;color:var(--lime);font:bold 12px monospace}.stage{touch-action:none}dialog{max-width:590px;width:90%;background:#101a31;color:var(--ink);border:1px solid var(--lime);padding:35px}dialog::backdrop{background:#050e0bdc}dialog h2{font-size:36px;letter-spacing:-1px}dialog p,dialog li{font-size:13px;line-height:1.8;color:#bacbe0}dialog li{margin-bottom:8px}#close-guide{float:right}@media(pointer:coarse){.touch-controls{display:flex}}@media(min-width:1500px){h2{font-size:72px}}@media(max-width:1000px){.page{padding:0 24px}.edition{display:none}.title-row p{font-size:11px}h1{letter-spacing:-2px}.controls{gap:10px}.controls i,.controls .section-label{display:none}.route{gap:5px}.route-card{padding:8px 6px}.route-card img{height:50px}.game-footer>span:nth-child(2){display:none}.overlay p{font-size:11px;margin-bottom:18px}.intro-hint{margin-top:18px;font-size:8px;gap:9px}.primary{padding:12px 16px;font-size:10px}h2{margin:13px 0}.tag{font-size:9px}.hud{height:62px}}@media(max-width:640px){.page{padding:0 12px}header{height:77px}.brand{font-size:16px}.brand-icon{width:30px;height:34px;font-size:25px}.header-right{gap:8px}.eyebrow{padding-top:25px;font-size:9px;letter-spacing:1px}.eyebrow-end{font-size:8px}h1{font-size:33px;letter-spacing:-1.8px}.title-row{margin:14px 0 22px;display:block}.title-row p{margin-top:12px;line-height:1.5}.title-row p br{display:none}.arcade{padding:4px}.hud{height:56px;padding:0 10px;gap:8px}.hud strong{font-size:12px}.hud>div>small{font-size:7px;letter-spacing:1px}.hero-label{font-size:10px;gap:4px}.hero-label img{width:30px;height:34px}.hero-label small{font-size:10px;letter-spacing:1px}.hud .icon-button{padding:7px;min-width:26px}.stage{aspect-ratio:1.45}.stage canvas{object-fit:cover}.overlay{padding:7%}.overlay-copy{width:69%}h2{font-size:38px;letter-spacing:-2px}.overlay p{font-size:11px;line-height:1.5}.hero-art{position:absolute;right:-13%;width:48%;height:67%;top:12%;opacity:.6}.hero-art img{max-width:130%}.tag{font-size:8px;letter-spacing:1px}.intro-hint{display:none}.overlay .primary{font-size:9px;padding:12px;gap:13px}.overlay-copy{width:79%}.overlay-copy p{max-width:230px}.game-footer{font-size:7px;padding:10px 5px}.game-footer .text-button{font-size:8px}.below{padding:18px 0}.controls{flex-wrap:wrap;gap:10px;font-size:9px}.controls>span:nth-last-child(2){display:none}.below>button{font-size:8px;white-space:nowrap}.rescue-heading h3{font-size:21px}.rescue-heading p{font-size:9px;max-width:145px}.route{grid-template-columns:repeat(4,1fr);gap:7px}.route-card img{height:58px}.route-card{padding:10px}.rescue-section{margin:27px 0}.rescue-heading p br{display:none}footer{font-size:7px;line-height:1.5}footer span:nth-child(2){display:none}#boss-hud{left:10%;width:80%;font-size:9px}#toast{font-size:11px;padding:12px}.touch-controls{display:flex}dialog{padding:24px}}

.rescue-heading p span{display:block;margin-top:4px}.arcade:fullscreen{display:flex;flex-direction:column;justify-content:center;background:#090f20;padding:12px}.arcade:fullscreen .stage{max-height:calc(100vh - 120px);width:100%;aspect-ratio:auto;flex:1}.arcade:fullscreen .hud,.arcade:fullscreen .game-footer{flex-shrink:0}

/* Orbital rescue interface: cold hull panels, spectral crystal light, and navigation grids. */
body{background:radial-gradient(ellipse at 78% 4%,#422c6928,transparent 40%),radial-gradient(ellipse at 0% 40%,#13546a22,transparent 45%),var(--bg)}
header{position:relative}.brand-icon{border-color:#92f3e380;background:#92f3e30b;box-shadow:inset 0 0 18px #92f3e30c}.brand-light{color:#adbecf}.edition{color:#8fa8c4}
.eyebrow{color:var(--lime)}h1{font-size:clamp(34px,4.6vw,60px);letter-spacing:-2.5px;line-height:.95}h1>span{display:block;font-size:.43em;letter-spacing:1.6px;line-height:1.4;margin-top:7px;color:#c4cfe2}h1 em{color:var(--lime)}.title-row{margin-bottom:25px}.title-row p{line-height:1.8;color:#9db0cb}
.arcade{background:linear-gradient(135deg,#1a2941,#10172a);border-color:#40587b;box-shadow:0 22px 65px #02061466,0 0 30px #6ee5ee08}.hud{border-bottom:1px solid #3e638b66;background:linear-gradient(90deg,#101c32,#101629);font-variant-numeric:tabular-nums}.hud #crystals{color:#9decff;text-shadow:0 0 16px #5deeff44}.hero-label small{color:#ffba89}.hud>div>small{color:#899ebb}.stage{background:#080f23}
.overlay{background:linear-gradient(90deg,#0b142bf5 0%,#111a35ed 43%,#141e3c55 100%)}.overlay p{color:#bacce0}.hero-disc{background:radial-gradient(circle at 35% 30%,#2c5265,#1c284c 65%,#101a32);border:1px solid #8ceee866;box-shadow:0 0 0 15px #799ce008,0 0 0 16px #85e3f72b,0 0 80px #5fd7ed20}.hero-disc:before,.hero-disc:after{content:"";position:absolute;inset:20%;border:1px solid #8cf2e72a;border-radius:50%;transform:rotate(-28deg) scaleX(1.8)}.hero-disc:after{inset:0;transform:rotate(28deg) scaleX(1.28);border-style:dashed;border-color:#a5b8ec25}.hero-art img{filter:drop-shadow(10px 12px 0 #050c2355) drop-shadow(0 0 24px #9cebdd20)}.art-star{color:#a3eaf6}.primary{background:var(--lime);color:#081c29;box-shadow:4px 4px 0 #030a20}.intro-hint{color:#9bb2ce}.game-footer{background:#0e182b;color:#9ebbd9}.game-footer>span:nth-child(2){color:#829bbb}
#toast{background:#101b32f5;color:#b4f3fb;border-color:#80d8ec99;box-shadow:0 0 30px #57d1e316}#boss-hud{background:#111831f0;border-color:#ad85ef88;color:#d5e4f9}.route-card{background:linear-gradient(145deg,#15243b,#0f172b);border-color:#2a3b58}.route-card.current{background:linear-gradient(145deg,#1b3447,#142139);border-color:#92f3e3;box-shadow:inset 0 2px 0 #92f3e326}.route-card.freed{border-color:#4f889a}.route-card.current small{color:#92f3e3}.route-card .number{color:#829bbb}.route-card img{filter:saturate(.55);opacity:.8}.rescue-heading h3{letter-spacing:-.6px}dialog{background:linear-gradient(140deg,#15243d,#0c1429);border-color:#72cadd}dialog::backdrop{background:#03091cdd}.arcade:fullscreen{background:#090f20}
@media(max-width:640px){h1{font-size:37px;letter-spacing:-1.7px}h1>span{font-size:16px;letter-spacing:.7px}.title-row p{font-size:10px}.overlay h2{font-size:34px}.rescue-heading h3{font-size:20px}.hero-disc{box-shadow:0 0 0 8px #799ce008,0 0 0 9px #85e3f72b}.hud #crystals{font-size:11px}.hud>div>small{font-size:7px;letter-spacing:.3px}}
/* Fortress campaign and interactive world maps. */
#boss-hud{display:block;top:10px;left:25%;width:50%;padding:10px 14px;pointer-events:none;border-color:#b5a0ef99;box-shadow:0 6px 20px #02071566}.boss-heading{display:flex;justify-content:space-between;gap:10px;font-size:10px;letter-spacing:.4px}#boss-health{color:#f1dcff;font-size:10px}#boss-meter{height:9px;margin:7px 0;background:#080e20;border:1px solid #66527d;overflow:hidden}#boss-fill{height:100%;background:linear-gradient(90deg,#9c7eec,#ed9cc6);width:100%;transition:width .13s linear;box-shadow:0 0 14px #bd9fff}.boss-tactics{display:flex;justify-content:space-between;gap:8px;font:8px monospace;letter-spacing:.7px;color:#b0c3db}#boss-state{color:#d0b2ff}#boss-state[data-state="windup"]{color:#ffce8c}#boss-state[data-state="attack"]{color:#ffa391}#boss-state[data-state="recover"]{color:#99f6cf}#air-fill{display:block;height:100%;background:#96ebff;transition:width .1s linear}
#world-map{position:absolute;inset:0;pointer-events:none}#world-map[hidden]{display:none}.map-heading{position:absolute;left:26px;right:26px;top:24px}.map-heading>span{font:9px monospace;letter-spacing:1.5px;color:#8ee7e1}.map-heading h2{font-size:29px;line-height:1.15;letter-spacing:-.8px;margin:10px 0;color:#edf6ff;max-width:75%}.map-navigation{position:absolute;right:0;top:4px;display:flex;gap:8px}.map-navigation button{pointer-events:auto;width:35px;height:32px;background:#12243b;border:1px solid #6a9bb566;color:#b7f7ec}.map-navigation button:disabled{opacity:.25;cursor:default}.map-node{pointer-events:auto;position:absolute;transform:translate(-50%,-50%);width:190px;padding:11px 12px;background:#0d192eec;border:1px solid #77dce7aa;box-shadow:0 8px 24px #0005;color:#eef6ff;text-align:left}.map-node:hover:not(:disabled){border-color:#c6fff3;background:#1c3749}.map-node small{font:8px monospace;letter-spacing:1px;color:#91f2df}.map-node strong{display:block;font-size:13px;line-height:1.3;margin:7px 0}.map-node span{display:block;font:8px monospace;color:#8fa7c8}.map-node:disabled{border-color:#58647e;background:#11182ce6;color:#8391ac;cursor:default}.map-node:disabled small{color:#8490ad}.map-node.cleared{border-color:#8ff4b2}.fortress-node{border-color:#c6a8ff}.fortress-node small{color:#cfb1ff}#map-note{position:absolute;bottom:15px;left:15px;right:15px;text-align:center;font:10px monospace;line-height:1.5;color:#adc9e1;background:#0b142bbb;padding:9px;margin:0}.hud #map-button{font-size:9px;padding:8px}.controls{gap:15px}.route-card small{font-size:8px}.overlay-copy h2{font-size:clamp(30px,4.8vw,63px);line-height:1.02}.overlay-copy .tag{line-height:1.5;display:block}.overlay-copy p{font-size:12px}#toast{top:auto;bottom:28px;max-width:80%;padding:10px 14px;font-size:11px;z-index:3}
@media(max-width:750px){.map-heading{top:15px;left:15px;right:15px}.map-heading h2{font-size:23px}.map-node{width:150px;padding:8px}.map-node strong{font-size:11px}.map-node span{font-size:7px}.map-heading>span{font-size:8px}#boss-hud{left:12%;width:76%}.hud{gap:9px}.controls>span:last-child{display:none}}
@media(max-width:480px){.map-heading h2{font-size:18px;margin-top:8px;max-width:76%}.map-heading>span{font-size:6px;letter-spacing:.7px}.map-navigation{gap:5px}.map-navigation button{width:25px;height:26px}.map-node{width:96px;padding:8px 6px}.map-node strong{font-size:9px;margin:6px 0;min-height:22px}.map-node small{font-size:6px;letter-spacing:.3px}.map-node span{font-size:6px;line-height:1.5}#map-note{font-size:7px;bottom:7px;padding:5px}.hud{padding:0 6px;gap:5px}.hud .hero-label img{width:24px}.hud .hero-label{font-size:8px}.hud>div>small{font-size:6px}.hud strong{font-size:10px}.hud #map-button{font-size:7px;padding:6px;min-width:26px}.hud .time-hud{display:none}.hud #world{font-size:10px}.boss-heading{font-size:7px}#boss-health{font-size:7px}.boss-tactics{font-size:6px}#boss-hud{padding:7px 9px;left:8%;width:84%;top:7px}#boss-meter{height:7px;margin:5px 0}#toast{font-size:8px;bottom:10px;max-width:90%}.touch-controls{gap:5px}.touch-controls>div{gap:6px}.touch-controls button{min-width:45px;padding:0 9px}.overlay-copy h2{font-size:30px}.overlay-copy p{font-size:10px}.overlay-copy{width:92%}.hero-art{opacity:.35}.stage{aspect-ratio:1.3}}
@media(max-width:480px){.touch-controls>div{gap:4px}.touch-controls button{min-width:44px;padding:0 6px;font-size:9px}.controls{gap:10px}.controls>span:nth-last-child(2){display:none}}
.map-repair-tools{position:absolute;right:26px;top:80px;display:flex;align-items:flex-end;flex-direction:column;gap:12px;pointer-events:auto}.map-repair-tools button{font-size:8px;color:#b6c8de;padding:5px 0;text-decoration:underline;text-underline-offset:3px}.map-repair-tools button:hover{color:#94f3e3}.map-repair-tools button[hidden]{display:none}#progress-repair{max-width:520px}#progress-repair h2{font-size:30px;letter-spacing:-1px;line-height:1.15}#repair-stages{display:grid;gap:10px;margin:20px 0}#repair-stages label{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #3b5470;background:#0b182a;font-size:12px;line-height:1.5}#repair-stages input{width:18px;height:18px;accent-color:#92f3e3;flex-shrink:0}.repair-actions{display:flex;justify-content:flex-end;align-items:center;gap:16px;margin-top:20px}.repair-actions .primary{font-size:10px;padding:13px}.repair-actions .primary:disabled{opacity:.35;cursor:default}@media(max-width:480px){.map-repair-tools{right:15px;top:73px;gap:4px}.map-repair-tools button{font-size:6px;padding:4px 0}#progress-repair{padding:22px}#progress-repair h2{font-size:24px}}
/* Refined character presentation; artwork retains the original authored gecks. */
.hero-art img{image-rendering:auto;filter:drop-shadow(0 16px 15px #030a2860) drop-shadow(0 0 22px #9cebdd14);transform:rotate(-4deg)}.route-card img{height:74px;image-rendering:auto;filter:saturate(.75);transition:filter .2s,transform .2s}.route-card.current img,.route-card.freed img{filter:none}.route-card:hover:not(:disabled) img{transform:translateY(-2px)}.hero-label img{width:46px;height:46px;filter:drop-shadow(0 0 7px #a4f4e51a)}.map-heading #map-portrait{position:absolute;left:0;top:-4px;width:68px;height:68px;object-fit:contain;border:1px solid #91dce744;border-radius:50%;background:radial-gradient(circle,#25465d70,#0c172c66);filter:drop-shadow(0 0 12px #9eeaff14)}.map-heading>span,.map-heading h2{margin-left:82px}.map-heading h2{max-width:70%}.arcade{box-shadow:0 22px 65px #02061466,0 0 30px #6ee5ee09,inset 0 1px 0 #a7d6ee0d}.hud{box-shadow:inset 0 -1px 0 #7ab1d008}.stage canvas{image-rendering:auto}.hero-disc{background:radial-gradient(circle at 35% 30%,#28556b,#1a2b4c 65%,#101a32)}
@media(max-width:640px){.map-heading #map-portrait{width:40px;height:40px;top:2px}.map-heading>span,.map-heading h2{margin-left:50px}.map-heading h2{font-size:17px;max-width:68%;line-height:1.2}.hero-label img{width:28px;height:30px}.route-card img{height:62px}.hero-art img{height:100%}}

/* Ember's walkable world routes. Island labels sit below the path and avatar. */
.map-node{transform:translate(-50%,0);box-shadow:0 7px 18px #0004}.map-node.current{border-color:#bbffdc;box-shadow:0 0 0 1px #a7ffdb55,0 0 24px #8bf8cc22}.map-node.destination{border-color:#f6dca2}.map-command{position:absolute;bottom:12px;left:20px;right:20px;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:9px 12px;background:#091326ed;border:1px solid #43647b70;pointer-events:auto}.map-command>div{min-width:0}.map-command #map-location{display:block;color:#c6f6e7;font:bold 11px monospace;line-height:1.4}.map-command #map-note{position:static;text-align:left;background:none;font:9px monospace;color:#9eb9cf;padding:0;margin:5px 0 0}.map-command .primary{padding:12px 16px;font-size:10px;flex-shrink:0;box-shadow:none}.map-command .primary:disabled{opacity:.6;cursor:default;transform:none}
@media(max-width:750px){.map-command{left:12px;right:12px;bottom:9px;padding:8px;gap:8px}.map-command #map-location{font-size:9px}.map-command #map-note{font-size:7px}.map-command .primary{font-size:9px;padding:11px}.map-node{padding:8px}}
@media(max-width:480px){.map-command{left:7px;right:7px;bottom:6px;padding:5px 6px;gap:5px}.map-command #map-location{font-size:7px;max-width:200px}.map-command #map-note{font-size:6px;margin-top:3px}.map-command .primary{font-size:7px;padding:9px 7px;letter-spacing:.2px}.map-node{padding:5px 6px}.map-node strong{font-size:9px;margin:3px 0;min-height:22px}.map-node span{font-size:6px}.map-node small{font-size:6px}}

@media(max-width:480px){.stage.map-active{aspect-ratio:1.15}}

@media(pointer:coarse){
 .touch-controls{display:grid;grid-template-columns:minmax(92px,.8fr) minmax(166px,1.2fr);gap:12px;padding:8px max(0px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(0px,env(safe-area-inset-left));touch-action:none}
 .touch-controls>div{display:grid;grid-template-columns:repeat(2,minmax(44px,1fr));gap:7px;min-width:0}
 .touch-controls button{width:100%;min-width:44px;height:56px;padding:4px;font-size:11px;border-radius:12px;-webkit-touch-callout:none}
 .touch-controls>div:first-child button{height:119px;font-size:23px}
 .touch-controls [data-key="jump"]{background:#345443;border-color:#c5df7d;font-size:13px}
 .touch-controls button.is-held{background:#c5df7d;color:#13271d;box-shadow:inset 0 0 0 2px #f2ffd6}
 .arcade:fullscreen .touch-controls{position:absolute;bottom:env(safe-area-inset-bottom,0px);left:12px;right:12px;background:#10231ee8;z-index:10}
 .arcade:fullscreen .stage{height:calc(100dvh - 210px);aspect-ratio:auto}
}

/* Keep the arena and both thumbs on screen throughout mobile play. */
@media(pointer:coarse){
 body.phone-game{overflow:hidden}
 .phone-game .arcade{position:fixed;inset:env(safe-area-inset-top,0px) 0 calc(145px + env(safe-area-inset-bottom));z-index:40;display:flex;flex-direction:column;border:0;background:#10231e}
 .phone-game .arcade .hud{flex-shrink:0;min-height:48px;height:48px}.phone-game .arcade .hud button{min-width:44px;min-height:44px}
 .phone-game .stage{flex:1;min-height:0;aspect-ratio:auto}.phone-game .stage canvas{height:100%;width:100%}
 .phone-game .game-footer{min-height:28px;padding:4px 10px}.phone-game .game-footer #fullscreen{min-height:28px}
 .phone-game .touch-controls{position:fixed;z-index:41;bottom:0;left:0;right:0;height:calc(145px + env(safe-area-inset-bottom));padding:10px max(10px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));background:#10231e}
 .phone-game dialog{z-index:60}
}
@media(pointer:coarse) and (orientation:landscape){
 .phone-game .arcade{inset:env(safe-area-inset-top,0px) 180px env(safe-area-inset-bottom,0px) 144px}
 .phone-game .touch-controls{inset:0;height:auto;display:flex;align-items:flex-end;justify-content:space-between;pointer-events:none;background:transparent;padding:8px}
 .phone-game .touch-controls>div{pointer-events:auto;width:128px}.phone-game .touch-controls>div:last-child{width:164px}
 .phone-game .game-footer{display:none}.phone-game .hud .hero-label{display:none}.phone-game .hud{padding:2px 5px;height:46px;min-height:46px;gap:4px}.phone-game .hud>div>small{font-size:6px}.phone-game .hud strong{font-size:10px}
}

@media(pointer:coarse){body.phone-game #geck-arcade-board{visibility:hidden!important;pointer-events:none!important}}

@media(pointer:coarse) and (orientation:landscape){body.phone-game::before{content:"";position:fixed;inset:0;z-index:39;background:#10231e;pointer-events:none}}
@media(pointer:coarse){.map-navigation button,.map-heading button{min-width:44px;min-height:44px}.map-navigation{gap:6px}.map-heading{flex-wrap:wrap}}

/* The final hit, rescue and character unlock share the same arena and cast. */
#rescue-scene{position:absolute;inset:0;z-index:8;display:flex;flex-direction:column;justify-content:space-between;padding:28px 34px;pointer-events:none;background:linear-gradient(#050b1b66,transparent 23%,transparent 60%,#050b1bd9)}#rescue-scene[hidden]{display:none}.scene-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.scene-top>div{min-width:0}.scene-top span{display:block;color:#a2b3ce;font:9px monospace;letter-spacing:2px}.scene-top strong{display:block;font:900 clamp(16px,2.5vw,30px) Arial,sans-serif;letter-spacing:-.6px;margin-top:9px;color:#c3ffdf}.scene-top button{pointer-events:auto;background:#0a1429cc;font-size:9px;white-space:nowrap;min-height:44px}.scene-dialogue{width:min(620px,100%);align-self:center;padding:15px 20px 11px;border:1px solid #86b9b76e;border-radius:3px;background:#0a1429ed;box-shadow:0 12px 35px #02081780;pointer-events:auto}.scene-beats{display:flex;gap:6px;margin:0 0 13px}.scene-beats i{height:2px;background:#364459;flex:1}.scene-beats i.complete{background:#a3f3cc}.scene-line{display:flex;gap:16px;align-items:center;min-height:70px}.scene-line img{width:64px;height:74px;object-fit:contain;flex-shrink:0;filter:drop-shadow(0 0 12px #81dfd51a)}.scene-line span{font:bold 10px monospace;letter-spacing:1.8px;color:#a3f3cc}.scene-line p{font-size:15px;line-height:1.55;color:#e6f1f7;margin:7px 0 4px}.scene-dialogue>button{display:block;margin:8px 0 0 auto;min-height:30px;font-size:9px;color:#a7bccd}#replay-scene{display:block;margin-top:18px;color:#a3f3cc;text-decoration:underline;min-height:30px}#replay-scene[hidden]{display:none}#crew-open{color:#b9f5dd;font-size:8px;min-height:28px;margin-top:3px}#crew-picker{max-width:850px}#crew-close{float:right}.crew-section{margin:38px 0}.crew-roster{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:8px}.crew-card{background:#101b30;border:1px solid #2a3b54;min-width:0}.crew-card.selected{background:#17313b;border-color:#a3f3cc}.crew-card>button:first-child{display:block;width:100%;border:0;background:none;color:#e6f1f7;text-align:center;padding:12px 5px;min-height:132px}.crew-card img{display:block;width:100%;height:68px;object-fit:contain;margin-bottom:8px}.crew-card strong{display:block;font-size:12px}.crew-card small{display:block;font:7px monospace;color:#a9c2ce;line-height:1.5;margin:6px 0 0}.crew-card.locked img{filter:grayscale(1);opacity:.32}.crew-card.locked strong{color:#8793aa}.crew-card button:disabled{cursor:default}.crew-replay{width:100%;border-top:1px solid #2a3b54;font-size:7px;padding:9px 3px;min-height:36px;color:#a3f3cc}#crew-options{grid-template-columns:repeat(3,minmax(0,1fr));margin:20px 0 0}#crew-options .crew-card img{height:74px}.hero-label b{font:inherit}
@media(max-width:750px){#rescue-scene{padding:18px 20px}.scene-line p{font-size:12px}.scene-line img{width:48px;height:57px}.scene-dialogue{padding:11px 14px}.scene-line{min-height:62px}.scene-top span{font-size:7px;letter-spacing:1px}.scene-top strong{margin-top:6px}.crew-roster{grid-template-columns:repeat(3,minmax(0,1fr))}.crew-section .rescue-heading{align-items:flex-start;gap:16px}.crew-section .rescue-heading p{max-width:42%;font-size:9px}.crew-section .rescue-heading h3{font-size:20px}.scene-top button{font-size:7px;padding:8px}}
@media(pointer:coarse){body.phone-cinematic{overflow:hidden}.phone-cinematic .arcade{position:fixed;inset:env(safe-area-inset-top,0px) 0 env(safe-area-inset-bottom,0px);z-index:45;display:flex;flex-direction:column;border:0;background:#0a1429}.phone-cinematic .arcade .hud{flex-shrink:0;height:48px;min-height:48px;padding:0 10px}.phone-cinematic .stage{flex:1;min-height:0;aspect-ratio:auto}.phone-cinematic .game-footer,.phone-cinematic .touch-controls{display:none}.phone-cinematic #geck-arcade-board{visibility:hidden!important;pointer-events:none!important}.phone-cinematic .overlay{padding:7%;overflow-y:auto;align-items:center;background:linear-gradient(90deg,#0b1b2ff5,#102d33e6)}.phone-cinematic .overlay-copy{width:100%}.phone-cinematic .overlay-copy h2{font-size:clamp(28px,8vw,58px);line-height:1.05;letter-spacing:-1px}.phone-cinematic .overlay-copy p{font-size:12px;max-width:460px}.phone-cinematic .overlay .primary{min-height:48px}.phone-cinematic #rescue-scene{padding:23px 18px 25px}.phone-cinematic .scene-dialogue{padding:15px}.phone-cinematic .scene-line p{font-size:14px}.phone-cinematic .scene-top strong{font-size:22px}.phone-cinematic .scene-top button{min-height:44px}.phone-cinematic .scene-dialogue>button{min-height:38px}.phone-cinematic .scene-line{min-height:100px}.phone-cinematic #secondary{min-height:36px}.phone-cinematic #replay-scene{min-height:36px}}
@media(pointer:coarse) and (orientation:landscape){.phone-cinematic .hud{display:none!important}.phone-cinematic #rescue-scene{padding:12px 22px}.phone-cinematic .scene-dialogue{align-self:flex-end;width:55%;padding:8px 14px}.phone-cinematic .scene-line{min-height:48px;gap:10px}.phone-cinematic .scene-line p{font-size:11px}.phone-cinematic .scene-line img{width:38px;height:42px}.phone-cinematic .scene-beats{margin-bottom:5px}.phone-cinematic .scene-dialogue>button{margin-top:0;min-height:25px}.phone-cinematic .overlay{padding:20px 7%}.phone-cinematic .overlay-copy h2{font-size:32px;margin:10px 0}.phone-cinematic .overlay-copy p{margin-bottom:12px}.phone-cinematic #secondary,.phone-cinematic #replay-scene{display:inline-block;margin:12px 22px 0 0;min-height:28px}.phone-cinematic #secondary[hidden],.phone-cinematic #replay-scene[hidden]{display:none}}
@media(prefers-reduced-motion:reduce){.crew-card img{transition:none}}

.map-heading #crew-open{pointer-events:auto;margin:0 0 0 82px;padding:7px 10px;min-height:30px;border:1px solid #608e9066;background:#102339e8}
@media(max-width:640px){.map-heading #crew-open{margin-left:50px;font-size:7px;padding:6px 8px;min-height:30px}}
@media(max-width:480px){.stage.map-active{aspect-ratio:1.05}}

/* The opening splash uses the same complete key art as the social preview. */
#splash-art{display:none}.stage.splash-active{aspect-ratio:auto;background:#080f22}.stage.splash-active>canvas{position:absolute;inset:0;pointer-events:none}.overlay.splash{position:relative;inset:auto;display:flex;flex-direction:column;align-items:stretch;gap:0;padding:0;background:#080f22;overflow:visible}.splash #splash-art{display:block;position:relative;width:100%;height:auto;aspect-ratio:1730/909;object-fit:contain;flex-shrink:0}.splash .hero-art{display:none!important}.splash .overlay-copy{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:30px;row-gap:8px;padding:20px 30px 22px;background:linear-gradient(110deg,#09182b,#11132c 65%,#24133c);border-top:1px solid #69d9f166;box-shadow:inset 0 1px 0 #baf6ff12}.splash #overlay-title,.splash #overlay-tag{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.splash #primary{grid-column:1;grid-row:1/3;min-width:240px;min-height:52px;padding:16px 23px;font:bold 13px monospace;letter-spacing:1.3px;color:#061529;background:linear-gradient(#a5faff,#60d9fb);border:1px solid #d2fdff;box-shadow:0 0 0 3px #2896c41c,0 0 24px #4ecbff1c,inset 0 -3px 0 #2c9cc977;border-radius:3px}.splash #primary:hover{background:linear-gradient(#d3ffff,#82e9ff)}.splash #overlay-text{grid-column:2;grid-row:1;max-width:none;margin:0;font-size:12px;line-height:1.5;color:#d2e6f4}.splash #intro-hint{grid-column:2;grid-row:2;display:flex!important;flex-wrap:wrap;gap:16px;margin:0;color:#89a9c5;font:9px monospace;letter-spacing:.8px}.splash-screen .eyebrow{display:none}.splash-screen .title-row{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.splash-screen .arcade{margin-top:26px;padding:0;border-color:#4e7599;box-shadow:0 20px 65px #02061499,0 0 45px #426aff13}.splash-screen .arcade>.hud,.splash-screen .game-footer,.splash-screen .touch-controls,.splash-screen .below .controls{display:none}.splash-screen .below{justify-content:flex-end;padding:17px 0}.splash-screen #how{color:#a3cde6;min-height:32px}
@media(max-width:640px){.splash-screen .arcade{margin-top:20px}.splash .overlay-copy{grid-template-columns:1fr;grid-template-rows:auto auto auto;gap:12px;padding:18px}.splash #primary{grid-column:1;grid-row:1;width:100%;min-width:0;min-height:50px;justify-content:center;gap:20px;font-size:12px}.splash #overlay-text{grid-column:1;grid-row:2;text-align:center;font-size:11px}.splash #intro-hint{grid-column:1;grid-row:3;justify-content:center;font-size:8px;gap:14px;letter-spacing:.3px}}
@media(max-width:360px){.splash .overlay-copy{padding:15px 13px}.splash #intro-hint{font-size:7px;gap:10px}}
.overlay.splash[hidden]{display:none}
.splash-screen .page{max-width:min(1320px,calc((100svh - 280px)*1.9032 + 108px))}.splash-screen #geck-arcade-board{visibility:hidden!important;pointer-events:none!important}
@media(max-width:640px){.splash-screen .page{max-width:1320px}}
@media(pointer:coarse) and (orientation:landscape) and (max-height:600px){.splash-screen .page{max-width:min(100%,calc((100svh - 145px)*1.9032 + 24px));padding:0 12px}.splash-screen header{height:54px}.splash-screen .arcade{margin-top:12px}.splash .overlay-copy{display:flex;flex-direction:row;align-items:center;gap:16px;padding:10px 14px}.splash #primary{order:-1;width:auto;min-width:0;min-height:44px;padding:10px 14px;font-size:10px;gap:16px;flex-shrink:0}.splash #overlay-text{font-size:10px;text-align:left;max-width:240px}.splash #intro-hint{display:none!important}}

/* Illustrated region labels leave the terrain, bridges and landmarks visible. */
.map-node{border-radius:5px;background:linear-gradient(#0b1b2ce8,#0a172ae0);box-shadow:0 4px 0 #06101c55,0 8px 16px #0002;padding:9px 11px}.map-node:hover:not(:disabled){background:#163547ed;transform:translate(-50%,-2px)}.map-node.current{background:#16333eea;border-color:#bce9d7;box-shadow:0 0 0 1px #afdfc633,0 4px 0 #07152177}.map-node small{font-size:8px;letter-spacing:.8px}.map-node strong{font-size:12px;margin:5px 0;line-height:1.2}.map-node span{font-size:7px}.map-node:disabled{background:#101d30c9;border-color:#69768c77}.map-command{border-radius:4px;background:#0a1829f0;border-color:#809d9c66}.map-heading #crew-open{border-radius:3px;background:#102b38dc}.map-heading #map-portrait{background:#1c3946;border-color:#9bc8cb66}.map-navigation button{border-radius:3px;background:#162c3e}.map-command .primary{border-radius:3px;background:#bddfc6;color:#102b36}.map-node.cleared{border-color:#b0dba6}
@media(max-width:750px){.map-node{padding:8px}.map-node strong{font-size:11px}}
@media(max-width:480px){.map-node{padding:5px 6px;border-radius:4px}.map-node strong{font-size:9px;margin:3px 0;min-height:22px}.map-node span,.map-node small{font-size:6px}}

.overworld-screen #geck-arcade-board{visibility:hidden!important;pointer-events:none!important}

/* Seven stops: four on the upper route, three on the return route. */
.map-node{width:21%;max-width:230px;padding:8px;min-width:0}
.map-node.midpoint-node{border-color:#e8b983;background:linear-gradient(#34283be8,#211a2be8)}
.map-node small{font-size:7px;letter-spacing:.25px}.map-node strong{font-size:11px;overflow-wrap:anywhere}.map-node span{font-size:7px}
@media(max-width:750px){.map-node{padding:6px 4px}.map-node strong{font-size:9px}.map-node small,.map-node span{font-size:6px;letter-spacing:0}}
@media(max-width:480px){.map-node{width:22%;padding:5px 3px}.map-node strong{font-size:9px;margin:3px 0;min-height:22px}.map-node span{font-size:6px}.map-node small{font-size:6px}.map-heading h2{font-size:15px}.map-heading>span{font-size:6px;letter-spacing:.2px}}
@media(max-width:480px){.stage.map-active{aspect-ratio:.85}}

.stage.map-active{width:100%;height:clamp(380px,50vw,650px);min-height:0;aspect-ratio:auto}

/* Campaign facts remain visible on the splash for both new and returning players. */
.overlay:not(.splash) #campaign-summary{display:none}
.splash #campaign-summary{grid-column:2;grid-row:2;margin:0;color:#abd7eb;font:10px/1.5 monospace}
.splash #campaign-summary strong{display:block;color:#a5faff;font-size:12px;letter-spacing:1px}
.splash #campaign-summary span{display:block;margin-top:2px}
.splash #primary{grid-row:1/4}.splash #intro-hint{grid-row:3}
@media(max-width:640px){.splash .overlay-copy{grid-template-rows:auto auto auto auto}.splash #primary{grid-row:1}.splash #campaign-summary{grid-column:1;grid-row:3;text-align:center;font-size:9px}.splash #campaign-summary strong{font-size:12px}.splash #intro-hint{grid-row:4}}
@media(pointer:coarse) and (orientation:landscape) and (max-height:600px){.splash .overlay-copy{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:16px;row-gap:4px}.splash #primary{grid-column:1;grid-row:1/3;width:auto;align-self:center}.splash #overlay-text{grid-column:2;grid-row:1;text-align:left}.splash #campaign-summary{grid-column:2;grid-row:2;text-align:left;font-size:8px}.splash #campaign-summary strong{font-size:10px}}

/* Adventure equipment and discovery journal. */
.life-counter{font:11px monospace;color:#c6ff9f;margin-left:7px;white-space:nowrap}#mount-control[hidden]{display:none!important}.adventure-summary{color:#ffe2a8!important}#secret-journal{max-width:650px}#secret-journal h2{font-size:36px}#secret-journal ol{display:grid;grid-template-columns:1fr 1fr;gap:9px 24px;padding-left:23px;font:12px/1.5 monospace;color:#c6e9dd}#secret-journal>button{float:right}#secret-journal p{font:13px/1.7 Arial;color:#bdcfe0}#secret-journal-open{white-space:nowrap;color:#b8f3d6}#campaign-summary .adventure-summary{font-size:10px;letter-spacing:.2px}
@media(max-width:600px){#secret-journal ol{grid-template-columns:1fr}#secret-journal h2{font-size:29px}.below{flex-wrap:wrap}.life-counter{font-size:9px;margin-left:4px}.touch-controls>div:last-child:has(#mount-control:not([hidden])){gap:4px}.touch-controls #mount-control{min-width:40px;padding:6px;font-size:9px}}
@media(pointer:coarse),(max-width:760px){.touch-controls>div:last-child:has(#mount-control:not([hidden])){grid-template-columns:repeat(3,minmax(44px,1fr))}.touch-controls>div:last-child:has(#mount-control:not([hidden])) [data-key="jump"]{grid-column:span 2}}
/* Keep the guide and journal row from widening a landscape phone viewport. */
.below{flex-wrap:wrap}.controls{flex:1 1 620px;min-width:0;flex-wrap:wrap}
@media(pointer:coarse) and (orientation:landscape){.phone-game .touch-controls{width:100vw;margin:0;max-width:100vw}.phone-game .touch-controls>div{flex:0 0 128px}.phone-game .touch-controls>div:last-child{flex-basis:164px}}

#special-control[hidden]{display:none!important}#special-control[aria-disabled="true"]{color:#a2aaa4;border-color:#475a62}#special-control.is-held{box-shadow:inset 0 0 0 2px #e5fff2}
@media(pointer:coarse),(max-width:760px){.touch-controls>div:last-child:has(#special-control:not([hidden])) [data-key="jump"]{grid-column:auto}.touch-controls>div:last-child:has(#special-control:not([hidden])){grid-template-columns:repeat(3,minmax(44px,1fr));gap:4px}.touch-controls #special-control{font-size:9px;padding:3px}}
