/* Copyright 2026 Valpatel Software LLC. Proprietary. */
:root{color-scheme:dark;--bg:#0c171d;--panel:#14232a;--line:#2a3d44;--ink:#e7efeb;--muted:#9cb1b6;--cyan:#6bdfce;--pink:#f58294;--gold:#eccb82;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;min-height:44px;border:1px solid var(--line);background:#1b3038;color:var(--ink);border-radius:8px;padding:10px 14px;touch-action:manipulation}button:hover{border-color:var(--cyan);background:#243e45}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:3px}button:disabled{opacity:.38;cursor:default}button[aria-pressed=true]{border-color:var(--cyan);background:#24433f}a{color:var(--cyan)}header{height:76px;padding:0 32px;display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-weight:800;letter-spacing:.16em;font-size:18px}.brand-mark{display:grid;place-items:center;width:32px;height:32px;color:var(--bg);background:var(--cyan);border-radius:8px;letter-spacing:0}.edition{font-size:10px;letter-spacing:.2em;color:var(--muted);font-weight:500}.local-badge{font:10px ui-monospace,monospace;letter-spacing:.12em;margin-left:auto;color:var(--muted)}.local-badge i{display:inline-block;width:6px;height:6px;background:var(--cyan);border-radius:50%;margin-right:8px}main{display:grid;grid-template-columns:minmax(0,1fr) 340px;min-height:calc(100dvh - 76px)}.world{position:relative;min-width:0;min-height:640px;background:radial-gradient(ellipse at 45% 45%,#273f44,#102128 72%);overflow:hidden}#scene{position:absolute;inset:0}#scene canvas{display:block;width:100%;height:100%;touch-action:pan-y}.map-title{position:absolute;left:32px;top:28px;z-index:1;pointer-events:none}.eyebrow{font:10px ui-monospace,monospace;letter-spacing:.19em;color:var(--cyan)}h1{font-size:clamp(25px,3vw,44px);line-height:1.08;letter-spacing:-.04em;margin:12px 0;color:#e7efeb}.map-title p{color:var(--muted);font-size:12px;margin-top:12px;max-width:220px}.map-controls{position:absolute;right:22px;bottom:52px;display:flex;gap:6px}.map-controls button{background:#152a32df;min-width:44px}.map-footer{position:absolute;bottom:20px;left:28px;right:28px;display:flex;justify-content:space-between;gap:12px;font:9px ui-monospace,monospace;letter-spacing:.12em;color:var(--muted)}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin:0 5px 0 12px}.cyan{background:var(--cyan)}.pink{background:var(--pink)}aside{padding:24px;display:flex;flex-direction:column;gap:14px;border-left:1px solid var(--line);background:var(--panel)}.mission-heading,.progress-row,.fleet-heading,.bottom-row{display:flex;justify-content:space-between;align-items:center;gap:8px}.pill{font:9px ui-monospace,monospace;color:var(--gold);border:1px solid #605640;border-radius:20px;padding:5px 7px}h2{font-size:27px;letter-spacing:-.035em;margin:0}h3{font-size:13px;margin:0;font-weight:600}.muted{font-size:12px;line-height:1.6;color:var(--muted);margin:0}.stats{display:grid;grid-template-columns:1.2fr 1fr;gap:22px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}small,.stat-note,.progress-row,.fleet-heading>span,.bottom-row>span{font:9px ui-monospace,monospace;letter-spacing:.06em;color:var(--muted)}.stats strong{font-size:32px;font-weight:500;display:block;margin:5px 0;color:var(--cyan)}.stats strong span{font-size:15px;color:var(--muted)}meter{width:100%;height:6px;display:block}progress{accent-color:var(--cyan);width:100%;height:4px;border:0;margin-top:-7px}progress::-webkit-progress-bar{background:#30434a}progress::-webkit-progress-value{background:var(--cyan)}.kit{display:flex;align-items:center;gap:12px;text-align:left;min-height:72px;width:100%;padding:12px}.kit-icon{font-size:28px;color:var(--cyan)}.kit b{font-size:13px;display:block;margin-bottom:6px}.kit small{font:10px system-ui;letter-spacing:0}.kit em{font:12px ui-monospace,monospace;color:var(--gold);margin-left:auto}.tool-row{display:flex;gap:8px}.tool-row button{font-size:11px;flex:1}.hint{font-size:11px;line-height:1.5;color:var(--muted);margin:0;min-height:33px}.pads{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.pads button{font:10px ui-monospace,monospace;padding:7px 2px;min-height:44px}.pads button.occupied{color:var(--cyan);background:#24433f}.pads button.selected{outline:2px solid var(--gold);outline-offset:0}#notice{border-left:2px solid var(--cyan);padding:9px 11px;font-size:11px;line-height:1.5;background:#102027;min-height:50px}.primary{background:var(--cyan);color:#102c2a;border:0;font-weight:750;display:flex;justify-content:space-between;align-items:center;min-height:48px;width:100%}.primary:hover{background:#a1f7df;color:#102c2a}.bottom-row button{font-size:11px;min-width:85px}.edition-details{border-top:1px solid var(--line);padding-top:14px;font-size:10px;color:var(--muted);margin-top:auto;line-height:1.6}.edition-details summary{cursor:pointer;min-height:30px;display:flex;align-items:center}.edition-details a{font-size:10px}.locked{color:#91a0a5}dialog{color:var(--ink);background:#15262e;border:1px solid #39535a;border-radius:20px;width:min(800px,calc(100% - 32px));padding:28px;box-shadow:0 32px 120px #0008;max-height:calc(100dvh - 32px);overflow:auto}dialog::backdrop{background:#071319cd;backdrop-filter:blur(7px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.dialog-top button{font-size:22px;width:44px;padding:0}dialog h2{font-size:clamp(27px,4vw,38px);margin-bottom:12px}.mission-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px}.mission-cards button{text-align:left;padding:0;overflow:hidden;background:#1b3038}.mission-cards small,.mission-cards b,.mission-cards p,.card-footer{display:block;margin-left:20px;margin-right:20px}.mission-cards b{font-size:22px;margin-top:9px;letter-spacing:-.04em}.mission-cards p{font-size:12px;line-height:1.6;color:var(--muted);min-height:58px}.mission-art{display:flex;height:110px;align-items:center;justify-content:center;font-size:74px;background:radial-gradient(ellipse at center,#3c6271,#1a303b);color:#93dbde;border-bottom:1px solid var(--line);margin-bottom:18px}.riot-art{background:radial-gradient(ellipse at center,#526143,#283b32);color:#c6dfa5}.card-footer{border-top:1px solid var(--line);padding:14px 0;color:var(--cyan);font:9px ui-monospace,monospace}.card-footer i{float:right;font-size:16px}.dialog-note{font-size:10px;line-height:1.5;color:var(--muted);margin:20px 0 0}#result-dialog{max-width:460px}#result-dialog h2{margin-top:22px}#result-description{font-size:13px;line-height:1.6;color:var(--muted)}.result-stats{font-size:20px;padding:22px 0;color:var(--cyan)}#choose-again{width:100%;margin-top:10px}#boot-error{position:absolute;inset:40% 10% auto;z-index:2;padding:24px;background:#472c36;border:1px solid var(--pink)}
@media(min-width:1300px){main{grid-template-columns:minmax(0,1fr) 360px}aside{padding:28px}}
@media(max-width:760px){header{height:60px;padding:0 16px;gap:10px}.brand{font-size:15px;gap:8px}.edition{font-size:8px}.local-badge{display:none}header>button{margin-left:auto;font-size:11px}main{display:flex;flex-direction:column;min-height:0}.world{height:52dvh;min-height:340px;max-height:520px}.map-title{left:18px;top:17px}.map-title h1{font-size:24px}.map-title p{display:none}.map-title .eyebrow{font-size:8px}.map-controls{right:14px;bottom:40px}.map-footer{left:10px;right:12px;bottom:15px;font-size:8px}aside{border-left:0;border-top:1px solid var(--line);padding:20px;gap:12px}.stats{padding:12px 0}.stats strong{font-size:27px}.kit{min-height:62px}.edition-details{margin-top:4px}.mission-cards{gap:12px;margin-top:18px}.mission-cards small,.mission-cards b,.mission-cards p,.card-footer{margin-left:12px;margin-right:12px}.mission-cards b{font-size:19px}.mission-art{height:80px;font-size:54px}.mission-cards p{font-size:11px}.card-footer{font-size:8px}dialog{padding:20px}.hint{min-height:0}}
@media(max-width:420px){.mission-cards{grid-template-columns:1fr}.mission-art{display:none}.mission-cards small{margin-top:18px}.mission-cards p{min-height:0;margin-bottom:12px}.card-footer{padding:10px 0}dialog .muted{font-size:11px}.dialog-top{margin-bottom:12px}dialog h2{font-size:27px}.brand .edition{display:none}}
@media(max-height:550px) and (min-width:650px){header{height:52px}main{display:grid;grid-template-columns:minmax(0,1fr) 285px;min-height:calc(100dvh - 52px)}.world{position:sticky;top:0;height:calc(100dvh - 52px);min-height:300px;max-height:none}aside{padding:16px}.map-title h1{font-size:22px}.map-title{left:18px;top:12px}.map-title p{display:none}.mission-art{height:60px;font-size:45px}dialog{padding:18px}.mission-cards p{min-height:0}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
/* Shared Tritium navigation, with the free edition's reduced action set. */
#command-menu{position:relative;z-index:20;background:#13242b;border-bottom:1px solid var(--line);padding:0 20px;min-height:44px}.command-bar-left{display:flex;align-items:center}.menu-trigger{font:10px ui-monospace,monospace;letter-spacing:.09em;border:0;border-radius:0;background:transparent;padding:8px 13px;min-height:44px;color:var(--muted)}.menu-trigger.active{color:var(--cyan);background:#26403f}.menu-dropdown{position:absolute;top:100%;left:0;min-width:225px;max-width:calc(100vw - 24px);max-height:65dvh;overflow:auto;background:#172c34;border:1px solid #40555e;border-radius:4px;box-shadow:0 12px 30px #0008;padding:4px;z-index:50}.menu-dropdown[hidden]{display:none}.menu-item{display:block;width:100%;text-align:left;font:11px ui-monospace,monospace;border:0;border-radius:2px;background:transparent;padding:10px 12px;min-height:44px}.menu-item:disabled{color:var(--muted);opacity:.45}.map-title h1{font:14px ui-monospace,monospace;letter-spacing:.15em}.map-title p{max-width:280px}main{min-height:calc(100dvh - 120px)}aside[hidden]{display:none}main:has(aside[hidden]){grid-template-columns:1fr}
@media(max-width:760px){#command-menu{padding:0 6px}.menu-trigger{font-size:9px;padding:8px 9px}main{min-height:0}.map-title h1{font-size:12px}.world{height:48dvh}}
@media(max-height:550px) and (min-width:650px){main{min-height:calc(100dvh - 96px)}.world{height:calc(100dvh - 96px)}}
/* The gallery is deliberately still: visitors choose when to inspect it. */
#about-dialog{width:min(1100px,calc(100% - 32px))}.about-lead{font-size:17px;line-height:1.6;max-width:800px}.app-gallery{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:24px 0}.app-gallery figure{margin:0;min-width:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#0c171d}.app-gallery a{display:block}.app-gallery img{display:block;width:100%;height:auto}.app-gallery figcaption{padding:14px;font-size:12px;line-height:1.6;color:var(--muted)}.app-gallery b{display:block;color:var(--ink);margin-bottom:5px}#about-return{margin-top:20px}.full-app-teaser{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.full-app-teaser img{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:8px}.full-app-teaser p{font-size:14px;color:var(--cyan)}#result-about{width:100%;font-size:12px}#about-open{font-size:11px;margin:8px 0}
@media(max-width:760px){.app-gallery{grid-template-columns:1fr}.about-lead{font-size:14px}}
.audio-controls{position:absolute;top:22px;right:22px;z-index:3;display:flex;gap:8px}.audio-controls button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:48px;min-height:54px;padding:6px;background:#10272fef;border-color:#526b70;box-shadow:0 4px 16px #0004}.audio-controls svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.audio-state{font:8px ui-monospace,monospace;letter-spacing:.1em;color:var(--muted)}.audio-controls button[aria-pressed=true]{color:var(--cyan);border-color:var(--cyan);box-shadow:0 0 15px #6bdfce40}.audio-controls button[aria-pressed=true] .audio-state{color:var(--cyan)}.audio-controls button::after{content:attr(data-tooltip);position:absolute;right:0;top:calc(100% + 8px);width:max-content;max-width:170px;padding:9px 11px;border:1px solid var(--cyan);background:#10272f;border-radius:7px;color:var(--ink);font:11px system-ui;opacity:0;pointer-events:none}.audio-controls button:hover::after,.audio-controls button:focus-visible::after{opacity:1}.map-title{max-width:calc(100% - 166px)}.coach-hint{position:relative;padding:12px;border:1px solid #6bdfce80;background:#1c3b3d;color:#d3fff4;border-radius:9px;font-size:12px;line-height:1.5;box-shadow:0 0 16px #6bdfce20}.coach-hint[hidden]{display:none}body[data-guide=place] #pads button:not(.occupied),body[data-guide=start] #start{animation:guide-glow 2.2s ease-in-out infinite}#pads button.preview,#pads button:not(:disabled):hover{border-color:var(--gold);background:#425042;box-shadow:0 0 0 2px #eccb8240,0 0 18px #eccb8240;transform:translateY(-2px)}#start:not(:disabled):hover,.mission-cards button:hover{box-shadow:0 0 0 2px #6bdfce50,0 0 24px #6bdfce40}button:active:not(:disabled){transform:translateY(1px)}@keyframes guide-glow{0%,100%{box-shadow:0 0 0 1px #6bdfce55,0 0 7px #6bdfce20}50%{box-shadow:0 0 0 2px #6bdfce90,0 0 19px #6bdfce50}}
@media(max-width:760px){.audio-controls{top:12px;right:12px}.map-title{max-width:calc(100% - 144px)}}
@media(prefers-reduced-motion:reduce){body[data-guide] #pads button,body[data-guide] #start{animation:none;box-shadow:0 0 0 2px #6bdfce80}#pads button.preview,#pads button:hover,button:active:not(:disabled){transform:none}}
.hardware-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:20px}.hardware-facts p{font-size:12px;line-height:1.6;color:var(--muted);border-left:2px solid var(--cyan);padding-left:12px}.hardware-facts b{display:block;color:var(--cyan);font-size:13px;margin-bottom:5px}@media(max-width:760px){.hardware-facts{grid-template-columns:1fr;gap:4px}}
.app-gallery .menu-proof{grid-column:1/-1}
.map-coach{position:absolute;z-index:2;left:28px;top:116px;max-width:calc(100% - 56px);padding:12px 15px;color:#fff1c4;background:#243b35f0;border:1px solid var(--gold);border-radius:9px;box-shadow:0 0 22px #eccb8240;font:12px/1.5 system-ui;pointer-events:none}.map-coach[hidden]{display:none}body[data-guide=start] #start{position:sticky;bottom:14px;z-index:4;outline:2px solid #cbfff2;outline-offset:3px}body[data-guide=place] #pads button{border-color:var(--gold);color:#fff1c4}@media(max-width:760px){.map-coach{left:18px;top:76px;max-width:calc(100% - 36px);font-size:11px;padding:9px 11px}}
/* Compact command deck: every essential control stays above the fold. */
@media(max-width:760px){
html,body{height:100%;overflow:hidden}header{height:52px}#command-menu{min-height:40px}.menu-trigger{min-height:40px}main{height:calc(100dvh - 92px);min-height:0;display:grid;grid-template-columns:1fr;grid-template-rows:minmax(135px,1fr) auto;overflow:hidden}.world{height:auto;min-height:0;max-height:none;position:relative}.map-title{top:10px;left:12px}.map-title .eyebrow{display:none}.map-title h1{font-size:11px;margin:0}.audio-controls{top:8px;right:8px;gap:5px}.audio-controls button{width:44px;min-height:48px}.map-coach{top:33px;left:10px;max-width:calc(100% - 120px);font-size:10px;padding:6px 8px}.map-controls{bottom:7px;right:8px;gap:4px}.map-controls button{padding:4px;min-width:36px;min-height:36px}.map-footer{bottom:9px;left:10px;font-size:8px;right:auto}.map-footer>span:first-child{display:none}aside{padding:8px;gap:5px;display:grid;grid-template-columns:1fr 1fr;align-content:start;overflow:hidden}aside>.mission-heading,aside>.stats,aside>#coach-hint,aside>#pads{grid-column:1/-1}.mission-heading{min-height:17px}.mission-heading .eyebrow{font-size:8px}.pill{font-size:8px;padding:3px 6px}aside>h2,aside>#objective,.progress-row,#progress,.fleet-heading,#placement-help,.edition-details{display:none}.stats{display:flex;justify-content:space-between;gap:10px;padding:0;border:0}.stats>div{display:flex;align-items:center;gap:8px}.stats small{font-size:8px;letter-spacing:0}.stats strong{font-size:19px;line-height:1.2}.stats meter,.stat-note{display:none}.kit{min-height:44px;padding:5px 8px;gap:6px}.kit-icon{font-size:20px}.kit b{font-size:10px;margin:0}.kit small{display:none}.kit em{font-size:10px}.tool-row{grid-column:2}.tool-row button{min-height:44px;font-size:11px}.coach-hint{padding:5px 8px;font-size:10px;line-height:1.35;box-shadow:none}.pads{gap:4px;grid-template-columns:repeat(4,1fr)}.pads button{min-height:44px;font-size:10px;padding:3px}.primary{min-height:44px;font-size:13px}.bottom-row{grid-column:2;gap:0}.bottom-row button{width:100%;min-height:44px}.bottom-row #resolved{display:none}#notice{position:absolute;width:1px;height:1px;min-height:0;padding:0;overflow:hidden;clip-path:inset(50%)}body[data-guide=start] #start{position:static;outline-offset:0}.audio-controls button::after{max-width:140px}
}
@media(max-height:550px) and (min-width:650px){
html,body{height:100%;overflow:hidden}main{height:calc(100dvh - 96px);display:grid;grid-template-columns:minmax(0,1fr) 285px;grid-template-rows:1fr;overflow:hidden}.world{height:100%;min-height:0;max-height:none}.map-title{top:12px}.map-title p{display:none}.map-coach{top:66px;font-size:10px;padding:7px 9px}aside{padding:7px;gap:4px;display:grid;grid-template-columns:1fr 1fr;align-content:start;overflow:hidden}aside>.mission-heading,aside>.stats,aside>#coach-hint,aside>#pads{grid-column:1/-1}aside>h2,aside>#objective,.progress-row,#progress,.fleet-heading,#placement-help,.edition-details{display:none}.stats{display:flex;justify-content:space-between;padding:0;border:0}.stats>div{display:flex;align-items:center;gap:5px}.stats small{font-size:7px}.stats strong{font-size:18px}.stats meter,.stat-note{display:none}.kit{min-height:44px;padding:4px;gap:4px}.kit-icon{font-size:16px}.kit b{font-size:9px;margin:0}.kit small{display:none}.kit em{font-size:9px}.tool-row{grid-column:2}.tool-row button{min-height:44px;font-size:10px}.coach-hint{font-size:9px;padding:5px;line-height:1.3}.pads{gap:4px}.pads button{min-height:44px;padding:3px;font-size:9px}.primary{min-height:44px;font-size:12px}.bottom-row{grid-column:2}.bottom-row button{width:100%;min-height:44px}.bottom-row #resolved{display:none}#notice{position:absolute;width:1px;height:1px;min-height:0;padding:0;overflow:hidden;clip-path:inset(50%)}body[data-guide=start] #start{position:static;outline-offset:0}}
@media(max-height:550px) and (min-width:650px){aside{padding:5px;gap:3px}}
body[data-can-buy=true] #deploy-tool,body[data-can-buy=true][data-tool=deploy] #pads button:not(.occupied):not(:disabled){animation:guide-glow 2.2s ease-in-out infinite;border-color:var(--cyan)}@media(prefers-reduced-motion:reduce){body[data-can-buy=true] #deploy-tool,body[data-can-buy=true][data-tool=deploy] #pads button:not(.occupied):not(:disabled){animation:none;box-shadow:0 0 0 2px #6bdfce80}}
.unit-chatter{position:absolute;z-index:2;transform:translate(-50%,-100%);max-width:150px;padding:7px 9px;border:1px solid #96f5d9;border-radius:9px 9px 9px 2px;color:#dffff5;background:#163b36ed;box-shadow:0 3px 14px #0005;font:11px/1.35 system-ui;pointer-events:none}.unit-chatter::after{content:'';position:absolute;bottom:-6px;left:50%;border:6px solid transparent;border-bottom:0;border-top-color:#96f5d9}@media(max-width:500px){.unit-chatter{max-width:125px;font-size:9px;padding:5px 7px}}
