@font-face{font-family:Arcade;src:url('./assets/arcade.woff2') format('woff2');font-display:swap}/* Fast taps throughout both modes; preserve pinch zoom in menus and forms. */
html,body,button,a,label,input,select,textarea,dialog{touch-action:manipulation}#world,#retro,#stick,#aimStick,.touch-actions button{touch-action:none;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}:root{color-scheme:dark;--cream:#f5e8ce;--muted:#9fbbc6;--gold:#f5cd91;--cyan:#81e6eb;--line:#b2dce52b;--ink:#091622;font-family:Arial,Helvetica,sans-serif;color:var(--cream);background:#020408}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}button,input,select{font:inherit}button{cursor:pointer;color:inherit;background:#112431d9;border:1px solid var(--line);border-radius:8px;padding:14px 19px;transition:background .18s,border-color .18s,transform .18s}button:hover{background:#214352;border-color:var(--cyan)}button:active{transform:scale(.98)}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:4px}button.primary{background:var(--cream);border-color:var(--cream);color:#152733;font-weight:700}button.primary:hover{background:#ffe3ac}button:disabled{opacity:.4;cursor:default}[hidden]{display:none!important}#world{position:fixed;inset:0;width:100%;height:100%;touch-action:none;outline:none}#shade{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 60% 45%,transparent 30%,#01091275 100%)}header{position:fixed;top:max(22px,env(safe-area-inset-top));left:4vw;right:3vw;display:flex;justify-content:space-between;align-items:center;z-index:12;pointer-events:none}.brand{display:flex;gap:12px;align-items:center;text-shadow:0 2px 10px #000}.brand svg{width:32px;height:32px;fill:none;stroke:var(--gold);stroke-width:1.3;stroke-linecap:round}.brand b{display:block;letter-spacing:3px;font-size:10px;font-weight:600}.brand small{display:block;font-size:12px;letter-spacing:0;margin-top:6px}#menuBtn{pointer-events:auto;border-radius:24px;font-size:10px;font-weight:700;letter-spacing:2px;padding:14px 20px;backdrop-filter:blur(16px)}#menuBtn span{margin-right:10px;font-size:15px}footer{position:fixed;bottom:max(8px,env(safe-area-inset-bottom));left:0;right:0;text-align:center;font-size:9px;color:#c3d2ddaa;pointer-events:none;z-index:13}.title-screen{position:fixed;inset:0;background:linear-gradient(90deg,#05101de8,#07132295 35%,transparent 70%);z-index:6}.title-copy{position:absolute;left:8vw;top:24%;width:520px;max-width:48vw}.eyebrow{font-size:10px;font-weight:700;letter-spacing:3px;color:var(--cyan);margin:0 0 25px}h1{font-size:clamp(64px,8.6vw,150px);line-height:.82;letter-spacing:-.065em;margin:0 0 32px;font-weight:850;color:var(--cream);text-shadow:0 4px 30px #03101f33}h1 span{display:block;font-size:.235em;font-weight:400;letter-spacing:.3em;line-height:1.8;margin-top:14px;padding-left:4px;color:var(--gold);white-space:nowrap}.premise{color:#c0d4df;font-size:16px;line-height:1.8;margin:0 0 32px}.launch-actions{display:grid;gap:10px;width:310px;max-width:100%}.launch-actions button{display:flex;justify-content:space-between;align-items:center;padding:17px 20px;text-align:left;backdrop-filter:blur(8px)}.launch-actions strong{display:block;font-size:14px}.launch-actions small{display:block;font-size:10px;font-weight:400;margin-top:5px;opacity:.7}.launch-actions b{font-size:24px;font-weight:400}.text-btn{background:transparent;border:0;padding:20px 0;font-size:12px;color:var(--muted)}.text-btn span{margin-left:24px}.input-status{display:flex;align-items:center;gap:8px;font-size:8px;color:#91aab6;letter-spacing:1.5px;margin-top:8px}.input-status i{width:4px;height:4px;background:var(--cyan);border-radius:50%;box-shadow:0 0 9px var(--cyan)}.ship-caption{position:absolute;right:9vw;bottom:18%;border-left:1px solid #e8d5b36e;padding-left:18px;display:grid;gap:7px}.ship-caption>span{font-size:8px;letter-spacing:3px;color:var(--muted)}.ship-caption strong{font-family:Georgia,serif;font-size:25px;letter-spacing:4px}.ship-caption small{font-size:11px;color:var(--muted)}.title-bottom{position:absolute;left:4vw;right:4vw;bottom:44px;border-top:1px solid var(--line);padding-top:16px;display:flex;justify-content:space-between;font-size:8px;letter-spacing:2px;color:var(--muted)}#hud{position:fixed;inset:0;pointer-events:none;z-index:5}.hud-top{position:absolute;top:100px;left:4vw;right:4vw;display:flex;justify-content:space-between}.hud-top>div{min-width:110px}.hud-top>div:last-child{text-align:right}.hud-top small,.hud-bottom small{font-size:9px;letter-spacing:2px;color:var(--muted);display:block;margin-bottom:7px}.hud-top strong{font-weight:500;font-size:23px;font-variant-numeric:tabular-nums;letter-spacing:2px}.wave-block{text-align:center}.wave-block strong{font-size:13px;color:var(--gold)}.hud-bottom{position:absolute;bottom:44px;left:4vw;right:4vw;display:flex;justify-content:space-between;align-items:flex-end}.hud-bottom strong{display:block;letter-spacing:7px;color:var(--cyan);font-size:23px}#weapon{display:block;font-size:8px;letter-spacing:2px;margin-top:8px;color:var(--muted)}#abilities{display:flex;gap:12px;pointer-events:auto}#abilities button{min-width:145px;background:#091624bf;text-align:left;border-top:2px solid #6ccddc;padding:12px 14px}#abilities b{display:block;color:var(--cream);font-size:15px;font-weight:500}#abilities span{display:block;color:var(--muted);font-size:8px;letter-spacing:1px;margin-top:6px}#bossHud{position:absolute;top:167px;left:50%;transform:translateX(-50%);width:min(360px,60vw);font-size:9px;letter-spacing:3px;text-align:center;color:#ffad95}#bossHud>div{height:3px;background:#6e3033;margin-top:10px}#bossFill{height:100%;display:block;width:100%;background:#ffbe9a;transition:width .15s}#combo{position:absolute;right:4vw;top:180px;font-size:24px;color:var(--gold)}#announcement{position:fixed;top:34%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;z-index:7;opacity:0;transition:opacity .4s;min-width:300px;text-shadow:0 2px 18px #000}#announcement.on{opacity:1}#announcement span{display:block;font-size:9px;letter-spacing:5px;color:var(--cyan);margin-bottom:14px}#announcement strong{font-size:clamp(23px,3.3vw,46px);font-weight:400;letter-spacing:5px;display:block}#announcement small{display:block;font-size:12px;color:#d7e2e6;margin-top:15px;line-height:1.6}#damageFlash{position:fixed;inset:0;pointer-events:none;box-shadow:inset 0 0 130px #ff534aaa;opacity:0;z-index:8}dialog{width:min(680px,94vw);max-height:86dvh;background:linear-gradient(145deg,#142936fa,#07121efa);color:var(--cream);border:1px solid #89b6c64a;border-radius:18px;padding:32px;box-shadow:0 30px 100px #000b;overflow:auto;scrollbar-width:thin}dialog::backdrop{background:#020710a8;backdrop-filter:blur(12px)}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}.dialog-head .eyebrow{margin-bottom:12px}h2{font-family:Georgia,serif;font-size:32px;font-weight:400;margin:0 0 25px}.icon-btn{font-size:27px;border-radius:50%;width:40px;height:40px;padding:0;flex:none;background:transparent}.mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 27px}.mode-switch button{font-size:11px;letter-spacing:1px;text-align:left}.mode-switch button[aria-pressed=true]{border-color:var(--gold);background:#725e3326}.mode-switch small{display:block;color:var(--muted);font-size:10px;letter-spacing:0;margin-top:7px}.settings{display:grid;grid-template-columns:1fr 1fr;gap:20px 24px}.settings label{font-size:12px;display:block;color:#c7d8dc}.settings select{display:block;margin-top:9px;width:100%;padding:10px 9px;background:#061522;color:var(--cream);border:1px solid var(--line);border-radius:5px;min-height:42px;font-size:12px}.settings input[type=range]{width:100%;accent-color:var(--gold);display:block;margin:13px 0 0}.range-label output{float:right;color:var(--muted)}.settings label.check{font-size:12px;line-height:1.6}.check input{accent-color:var(--gold);width:16px;height:16px;vertical-align:middle;margin-right:8px}.check small{display:block;font-size:10px;color:var(--muted);margin:5px 0 0 26px}.setting-note{font-size:11px;color:var(--muted);line-height:1.7;margin:20px 0}.menu-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px}.menu-actions button{font-size:12px;padding:13px 16px}.brief-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 25px}.brief-grid b{font-size:12px;color:var(--gold)}.brief-grid p{font-size:12px;line-height:1.75;color:#b9cdd5}.control-table{font-size:11px;width:100%;border-collapse:collapse;margin-top:10px}.control-table th,.control-table td{padding:11px 5px;border-bottom:1px solid var(--line);text-align:left}.control-table th{color:var(--muted);font-weight:400}#resultSummary{font-size:14px;line-height:1.7;color:var(--muted)}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;border-block:1px solid var(--line);padding:22px 0}.result-stats strong{display:block;color:var(--gold);font-size:25px}.result-stats span{font-size:9px;letter-spacing:1px;color:var(--muted)}.callsign{display:block;margin-top:25px;font-size:9px;letter-spacing:2px}.callsign input{background:#081723;color:var(--cream);border:1px solid var(--line);padding:10px;width:160px;margin-left:18px;letter-spacing:2px}#records{font-size:11px;color:var(--muted);margin-top:24px;line-height:2}#records b{color:var(--gold)}#retroFrame{position:fixed;inset:0;background:#000;display:flex;justify-content:center;align-items:center}#retro{height:min(calc(100dvh - 130px),calc(100vw * 4 / 3));width:auto;max-width:100vw;aspect-ratio:3/4;background:#000;image-rendering:auto;touch-action:none}body.retro header{top:14px}body.retro #world,body.retro #shade{display:none}body.retro .hud-top{top:70px;left:calc(50% - min(34vh,46vw));right:calc(50% - min(34vh,46vw))}body.retro .hud-top strong{font-family:Arcade,monospace;font-size:12px}body.retro .hud-top small{font-size:8px}body.retro .hud-bottom{bottom:26px}body.retro #vitals{font-size:16px}body.retro #abilities,body.retro #combo{display:none!important}body.retro #announcement strong{font-family:Arcade,monospace;font-size:17px;line-height:1.8;letter-spacing:1px}body.retro #announcement small{font-size:11px}body.retro #announcement{top:48%;max-width:90vw}#orientation,#loadError{position:fixed;inset:0;background:#050c14;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px}#orientation p{color:var(--muted);line-height:1.8}.rotate-icon{font-size:70px;color:var(--gold);margin-bottom:15px}#loadError p{max-width:500px;color:var(--muted)}#touchControls{position:fixed;inset:0;pointer-events:none;z-index:9}#stick{position:absolute;bottom:40px;left:25px;width:112px;height:112px;background:#82b5c512;border:1px solid #8bd8e34d;border-radius:50%;pointer-events:auto;touch-action:none}#stick span{position:absolute;left:36px;top:36px;width:38px;height:38px;border:1px solid #a6e9ed88;border-radius:50%;background:#91d1dd28;pointer-events:none}.touch-actions{position:absolute;bottom:42px;right:22px;display:flex;align-items:flex-end;gap:8px;pointer-events:auto}.touch-actions button{border-radius:50%;width:60px;height:60px;padding:0;font-size:9px;letter-spacing:1px;background:#1a344ca8;touch-action:none}#touchFire{width:78px;height:78px;background:#d4e6e228;color:var(--cream);border-color:#b9e5e975}body.touch #abilities{display:none}body.touch .hud-bottom{bottom:172px}body.retro.touch #retro{height:min(calc(100dvh - 200px),calc(100vw * 4 / 3));transform:translateY(-28px)}body.retro.touch #stick{height:76px;width:112px;border-radius:40px;bottom:30px}body.retro.touch #stick span{top:18px}body.retro.touch .touch-actions{bottom:30px}body.retro.touch #touchDash,body.retro.touch #touchNova{display:none}body.retro.touch .hud-bottom{bottom:115px}
@media(max-width:700px){header{left:20px;right:18px;top:18px}.brand{gap:8px}.brand svg{width:27px;height:27px}.brand b{font-size:8px;letter-spacing:2px}.brand small{font-size:10px}#menuBtn{font-size:9px;padding:11px 14px}.title-copy{left:7vw;top:26%;width:420px;max-width:86vw}.title-screen{background:linear-gradient(90deg,#05101dcb,#07132270 58%,transparent)}h1{font-size:clamp(66px,16vw,110px);margin-bottom:20px}.eyebrow{font-size:8px;margin-bottom:20px}.premise{font-size:13px;margin-bottom:22px}.launch-actions{width:280px}.ship-caption{display:none}.title-bottom span:last-child{display:none}.title-bottom{font-size:7px}.hud-top{top:83px;left:20px;right:20px}.hud-top>div{min-width:70px}.hud-top strong{font-size:17px}.hud-top small{font-size:7px}.wave-block strong{font-size:10px}.hud-bottom{left:20px;right:20px}#abilities{gap:5px}#abilities button{min-width:100px;padding:8px}#abilities span{font-size:6px}#bossHud{top:138px}#combo{top:152px;font-size:16px}dialog{padding:23px 20px;border-radius:12px}h2{font-size:27px}.settings{gap:16px 15px}.brief-grid{grid-template-columns:1fr;gap:0}.brief-grid p{margin-top:7px}.brand small{white-space:nowrap}#announcement{top:38%}.control-table{font-size:10px}body.retro .hud-top{left:16px;right:16px}body.retro .hud-top strong{font-size:10px}body.retro .hud-top>div{min-width:70px}}
@media(max-height:620px) and (min-aspect-ratio:1/1){.title-copy{top:22%;left:6vw}h1{font-size:72px;margin-bottom:12px}.eyebrow{margin-bottom:14px}.premise{font-size:12px;margin-bottom:14px}.launch-actions{width:270px;gap:6px}.launch-actions button{padding:11px 15px}.text-btn{padding:12px 0}.input-status{display:none}.title-bottom{bottom:30px}.ship-caption{bottom:16%}.hud-top{top:75px}.hud-bottom{bottom:28px}.touch-actions,#stick{bottom:25px}body.touch .hud-bottom{bottom:125px}header{top:12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}body.low-motion #damageFlash{display:none}body.retro{--retro-width:min(calc(75dvh - 97.5px),100vw)}body.retro.touch{--retro-width:min(calc(75dvh - 150px),100vw)}body.retro .hud-bottom{left:calc((100vw - var(--retro-width))/2 + 8px);right:calc((100vw - var(--retro-width))/2 + 8px)}body.touch:not(.retro) .hud-bottom{bottom:175px}#demoBadge{position:fixed;top:68px;left:50%;transform:translateX(-50%);z-index:10;display:flex;gap:16px;align-items:center;border:1px solid var(--line);border-radius:30px;background:#0b202dcc;padding:5px 6px 5px 18px;backdrop-filter:blur(8px)}#demoBadge>span{font-size:8px;letter-spacing:2px;color:var(--cyan)}#demoBadge button{font-size:11px;padding:8px 14px;border-radius:25px;background:var(--cream);color:var(--ink)}body.retro #demoBadge{top:auto;bottom:30px}body.retro.touch #demoBadge{bottom:160px}

@media(max-height:500px) and (min-aspect-ratio:1/1){.title-copy{top:85px;left:5vw;max-width:90vw;width:90vw}.title-copy .eyebrow{display:none}h1{font-size:60px;width:43vw;margin-bottom:12px}h1 span{font-size:14px;margin-top:9px}.premise{font-size:11px;line-height:1.7;width:40vw;margin-bottom:8px}.launch-actions{position:absolute;left:48vw;top:8px;width:230px;max-width:37vw}.launch-actions button{padding:13px 14px}.launch-actions strong{font-size:12px}.launch-actions small{font-size:9px}.title-copy>.text-btn{position:absolute;left:48vw;top:146px;font-size:11px}.input-status,.ship-caption{display:none}.title-bottom{bottom:27px}.title-bottom span:last-child{display:none}#demoBadge{top:auto;bottom:125px}}#demoBadge{top:auto;bottom:35px}body.retro.touch #demoBadge{bottom:160px}.touch-actions button{white-space:pre-line;line-height:1.6}.touch-actions button:disabled{opacity:.48}#retro{outline:none}/* Cockpit instrumentation belongs exclusively to Event Horizon. */
body.retro .modern-only{display:none!important}body:not(.retro) .hud-top{top:92px;opacity:.9}body:not(.retro) .hud-bottom{bottom:42px;left:5vw;right:5vw}body:not(.retro) #vitals{font-size:23px;letter-spacing:2px;color:#d9eee3}#shieldReadout{width:155px;margin-top:11px}#shieldReadout small{font-size:8px;letter-spacing:1.7px;margin-bottom:5px}#shieldValue{float:right;color:#88e4a7;font-weight:400}.meter{height:4px;background:#74c19223;margin:5px 0;overflow:hidden}.meter i{display:block;height:100%;width:100%;background:#67d593;transition:width .1s linear}.meter.hull{height:2px;margin-top:7px}.meter.hull i{background:#cbd7c9}body:not(.retro) #abilities button{min-width:130px;padding:11px 13px;background:#091820ad}#flightOverlay{position:absolute;inset:0;pointer-events:none;font-family:monospace;color:#a9dacf;text-shadow:0 1px 5px #000}#boresight{position:absolute;left:50%;top:50%;width:34px;height:34px;transform:translate(-50%,-50%);border:1px solid #9ec6b559;border-radius:50%}#boresight:before,#boresight:after{content:'';position:absolute;background:#cce5bd9c}#boresight:before{width:10px;height:1px;left:11px;top:16px}#boresight:after{width:1px;height:10px;top:11px;left:16px}#boresight span{position:absolute;top:40px;font-size:7px;letter-spacing:2px;left:-5px;opacity:.65}#aimCursor{position:absolute;left:50%;top:50%;width:14px;height:14px;border:1px solid #ebd4aa8f;transform:translate(-50%,-50%) rotate(45deg)}#aimCursor i{display:block;width:2px;height:2px;background:#e4c088;margin:5px}#targetBracket{position:absolute;min-width:40px;min-height:40px;border:1px dashed #b8ccaa;transform:translate(-50%,-50%);color:#c8dac1}#targetBracket.locked{border:1px solid #f4c889;color:#f4c889;box-shadow:inset 0 0 7px #f1b65411}#targetBracket span{position:absolute;top:-17px;font-size:8px;letter-spacing:1px;white-space:nowrap}#targetBracket small{position:absolute;bottom:-16px;left:0;font-size:8px;white-space:nowrap}#targetStatus{position:absolute;left:50%;bottom:25%;transform:translateX(-50%);font-size:8px;letter-spacing:1.3px;white-space:nowrap;color:#ddcbaa;background:#07171766;padding:5px 8px}#collisionAlert{position:absolute;left:50%;top:72.5%;transform:translateX(-50%);display:flex;align-items:center;gap:7px;font-size:9px;letter-spacing:2px;color:#ff9c82;padding:5px 10px;background:#280807b0;border:1px solid #ae342b88}#collisionAlert i{width:7px;height:7px;border-radius:50%;background:#ff4433;box-shadow:0 0 12px #ff231c;animation:collision-flash .5s steps(2,start) infinite}#collisionAlert b{font-weight:400;font-size:9px;letter-spacing:0}@keyframes collision-flash{to{opacity:.12}}body.low-motion #collisionAlert i{animation:none}#lowerCameraLabel{position:absolute;bottom:5.2%;left:50%;transform:translateX(-50%);font-size:7px;letter-spacing:2px;color:#9cbbaf;background:#0b171bbb;padding:3px 8px}#flightPosition{position:absolute;left:4%;top:46%;height:90px;width:3px;background:#60806a30}#flightY{position:absolute;left:-3px;width:9px;height:2px;background:#a7d4c4}#flightX{position:absolute;top:calc(50vh - 120px);left:calc(46vw - 60px);width:120px;height:2px;background:linear-gradient(90deg,transparent,#9abfa48a,transparent)}#aimStick{position:absolute;right:25px;bottom:40px;width:112px;height:112px;border:1px solid #d8bb834d;border-radius:50%;background:#b8985712;pointer-events:auto;touch-action:none}#aimStick span{position:absolute;left:36px;top:36px;width:38px;height:38px;border:1px solid #e8d5a188;border-radius:50%;background:#ccb36d28;pointer-events:none}#aimStick small,#stick small{position:absolute;bottom:10px;width:100%;text-align:center;font-size:7px;letter-spacing:2px;pointer-events:none;opacity:.7}body.touch:not(.retro) .touch-actions{bottom:165px;right:20px;gap:7px}body.touch:not(.retro) .touch-actions button{width:56px;height:56px;font-size:8px}body.touch:not(.retro) #touchFire{width:65px;height:65px}body.touch:not(.retro) .hud-bottom{bottom:180px;left:22px;right:auto}body.touch:not(.retro) #shieldReadout{width:110px}body.touch:not(.retro) #vitals{font-size:17px}body.touch:not(.retro) #weapon{display:none}body.touch:not(.retro) #targetStatus{bottom:31%}body.touch:not(.retro) #touchDash{display:none}
@media(max-width:700px){body:not(.retro) .hud-top{top:78px}body:not(.retro) #abilities button{min-width:100px;padding:8px;font-size:8px}body:not(.retro) #shieldReadout{width:110px}#lowerCameraLabel{bottom:13%;font-size:6px}#collisionAlert{top:67%;font-size:8px}#targetStatus{bottom:27%;font-size:6px}#targetBracket span,#targetBracket small{font-size:7px}#flightPosition{left:12px}body:not(.retro) #announcement{top:30%}body:not(.retro) #announcement strong{font-size:23px;letter-spacing:2px}body:not(.retro) #announcement small{font-size:10px}#touchTorpedo{letter-spacing:0}}
@media(max-height:620px) and (min-aspect-ratio:1/1){body:not(.retro) .hud-top{top:66px}.hud-top small{margin-bottom:2px}body:not(.retro) .hud-bottom{bottom:28px}body.touch:not(.retro) .hud-bottom{bottom:40px;left:160px}body.touch:not(.retro) .touch-actions{bottom:30px;right:155px}body.touch:not(.retro) #stick,body.touch:not(.retro) #aimStick{bottom:27px;width:90px;height:90px}body.touch:not(.retro) #stick span,body.touch:not(.retro) #aimStick span{left:25px;top:25px}#targetStatus,body.touch:not(.retro) #targetStatus{bottom:28%}#shieldReadout{margin-top:6px}#collisionAlert{top:71%}#lowerCameraLabel{bottom:4%}body:not(.retro) #announcement{top:30%}}#demoBadge{max-width:calc(100vw - 30px)}#demoBadge>span{line-height:1.5}#demoBadge button{flex-shrink:0}.preparation-status{font-size:8px;letter-spacing:1.5px;color:#819da8;margin:10px 0;min-height:12px}#flightLoading{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#071019f5;padding:30px;text-align:center}#flightLoading h2{margin-bottom:16px}#flightLoadingText{font-size:13px;color:var(--muted);max-width:360px;line-height:1.8}#flightLoadingProgress{width:min(300px,75vw);height:4px;accent-color:var(--cyan);margin:16px 0 30px}#flightLoading button{font-size:11px}#arrivalOverlay{position:fixed;inset:0;z-index:10;pointer-events:none;background:linear-gradient(0deg,#020609b8,transparent 27%,transparent 84%,#02060977)}.arrival-copy{position:absolute;left:5vw;bottom:12vh;width:min(540px,75vw);text-shadow:0 2px 15px #000}.arrival-copy .eyebrow{margin-bottom:13px;font-size:8px}.arrival-copy h2{font:400 clamp(21px,3vw,40px) Georgia,serif;letter-spacing:2px;margin:0 0 12px}.arrival-copy>p:last-child{font-size:12px;line-height:1.8;color:#bdced4;margin:0;max-width:420px}#skipArrival{position:absolute;bottom:38px;right:4vw;pointer-events:auto;backdrop-filter:blur(10px);font-size:12px}#skipArrival small{display:block;font-size:8px;margin-top:5px;opacity:.65}.arrival-timeline{position:absolute;bottom:0;left:0;right:0;height:2px;background:#a5d1d519}.arrival-timeline i{display:block;height:100%;background:#91ced2;width:0}body.cinematic #damageFlash{display:none}#bossRange{display:block;font-size:8px;color:#e4b098;margin-top:6px;letter-spacing:1px}@media(max-width:700px){.arrival-copy{left:7vw;bottom:18vh;width:85vw}#skipArrival{bottom:40px;right:7vw}.arrival-copy>p:last-child{font-size:11px}#bossRange{font-size:7px}}#orbitStatus{display:block;margin-top:5px;font:9px monospace;letter-spacing:1.4px;color:#9cbbaf}#flightPosition{pointer-events:none}/* The portrait game's black margins are part of its touch surface. */
#retroFrame{touch-action:none;-webkit-user-select:none;user-select:none}#retroFireHint{display:none;position:absolute;right:22px;bottom:118px;width:160px;max-width:45vw;text-align:center;font:7px/1.6 monospace;letter-spacing:1px;color:#a9c5c8;pointer-events:none}body.retro.touch #retroFireHint{display:block}body.retro.retro-firing #touchFire{background:#bce5dc4d;border-color:#d2fff1;box-shadow:0 0 24px #89dcca28}

/* Brief event notices belong to the status cluster, never over the flight path. */
#tip{display:block;margin-top:7px;max-width:23ch;font-size:8px;line-height:1.3;letter-spacing:.6px;color:var(--cyan);text-transform:uppercase;pointer-events:none}body.retro #tip{font-family:Arial,sans-serif}
@media(max-width:700px){#tip{margin-top:5px;max-width:19ch;font-size:7px;letter-spacing:.25px}}

/* Modern free-aim feedback stays compact and never covers either playfield with instructions. */
#aimCursor{width:30px;height:30px;border:1px solid #98e6e7ba;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 8px #071018;z-index:2}
#aimCursor:before,#aimCursor:after{content:'';position:absolute;background:#d5f5ec;opacity:.85}
#aimCursor:before{width:12px;height:1px;left:8px;top:14px}#aimCursor:after{width:1px;height:12px;left:14px;top:8px}
#aimCursor i{display:none}#aimCursor span{position:absolute;top:35px;left:50%;transform:translateX(-50%);font-size:7px;letter-spacing:1.5px;color:#b8dcd7;white-space:nowrap}
#aimCursor.assisted{border-color:#f4cd83}#photonLead{position:absolute;width:10px;height:10px;border:2px solid #ffdb93;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 5px #03070b;z-index:1}
.aim-setting-hint{display:block;color:var(--muted);font-size:10px;line-height:1.5;margin-top:7px}
@media(max-width:600px){#aimCursor{width:26px;height:26px}#aimCursor:before{left:6px;top:12px}#aimCursor:after{left:12px;top:6px}#aimCursor span{top:30px;font-size:6px}}

/* Boss warnings occupy a stable band; they never cover the gun reticle. */
#bossHud #hiveAction{display:block;font-size:clamp(10px,1.15vw,14px);letter-spacing:.09em;margin:6px 0;color:#ffd39b}
#bossHud #hiveSystems{display:block;font-size:10px;margin-bottom:6px}
#hiveAction[data-phase$="Tell"]{color:#ff9979}#hiveAction[data-phase="reactor"]{color:#7aeaff}
#hiveLocator{position:absolute;transform:translate(-50%,-50%);font-size:17px;color:#ffd097;opacity:.85;pointer-events:none;text-shadow:0 1px 3px #000}

#bossHud{background:linear-gradient(180deg,rgba(3,9,16,.76),rgba(3,9,16,.3));border-radius:10px;padding:8px 12px;box-sizing:border-box}

/* Modern status is drawn into the cockpit's physical instrument screen.
   Keep equivalent DOM text for accessibility, and project mouse hit areas onto it. */
body:not(.retro) .hud-bottom>div:first-child,
body:not(.retro) #targetStatus,
body:not(.retro) #collisionAlert,
body:not(.retro) #lowerCameraLabel,
body:not(.retro) #flightPosition{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap}
body:not(.retro) #abilities{position:fixed;inset:0;pointer-events:none}
body:not(.retro) #abilities button{position:fixed;min-width:0;padding:0;margin:0;border:0;background:transparent;color:transparent;box-shadow:none;pointer-events:auto}
body:not(.retro) #abilities button:hover{background:#b9e5df12;outline:1px solid #b9e5df55}
body:not(.retro) #abilities button:focus-visible{outline:2px solid #c3eade;outline-offset:-2px}
body:not(.retro) #abilities button:disabled{pointer-events:none}

/* Touch controls sit around the physical display, not across its readouts. */
@media(max-aspect-ratio:1/1){
 body.touch:not(.retro) #stick,body.touch:not(.retro) #aimStick{bottom:10px;width:94px;height:94px}
 body.touch:not(.retro) #stick{left:8px}body.touch:not(.retro) #aimStick{right:8px}
 body.touch:not(.retro) #stick span,body.touch:not(.retro) #aimStick span{left:28px;top:28px}
 body.touch:not(.retro) .touch-actions{bottom:118px;left:auto;right:8px;transform:none;flex-direction:row;gap:6px}
 body.touch:not(.retro) .touch-actions button{width:50px;height:56px;font-size:8px}
 body.touch:not(.retro) #touchFire{width:56px;height:56px}
}
@media(max-height:620px) and (min-aspect-ratio:1/1){
 body.touch:not(.retro) .touch-actions{right:10px;bottom:118px;gap:6px}
 body.touch:not(.retro) .touch-actions button,body.touch:not(.retro) #touchFire{width:48px;height:48px;font-size:8px}
 body.touch:not(.retro) #stick,body.touch:not(.retro) #aimStick{bottom:10px}
}
body:not(.retro) #abilities button>*{opacity:0}
