:root{font-family:IBM Plex Mono,Cascadia Mono,monospace;color:#e8f0de;background:#030504;font-synthesis:none;text-rendering:optimizeLegibility;--black: #030504;--yellow: #FFD447;--amber: #FFD447;--cyan: #62E6E8;--green: #9AF58A;--red: #FF655F;--muted: #597078;--white: #E8F0DE;--line: #597078}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}body{min-width:320px;background:var(--black)}button,summary{-webkit-tap-highlight-color:transparent}button{font:inherit}button:focus-visible,summary:focus-visible{outline:2px solid var(--yellow);outline-offset:5px}button{color:inherit}.is-hidden{display:none!important}#game-root{position:relative;width:100%;height:100%;background:var(--black);isolation:isolate}#game-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}#screen-fx{position:absolute;inset:0;pointer-events:none;z-index:2}#hud{position:absolute;inset:0;z-index:3;pointer-events:none;font-size:12px}.hud-header{position:absolute;top:24px;left:28px;right:28px;display:flex;justify-content:space-between;align-items:flex-start}.brand-lockup{display:flex;align-items:center;gap:12px}.brand-mark{width:27px;height:27px;display:grid;place-items:center;border:1px solid var(--yellow);color:var(--yellow);font:21px/1 IBM Plex Mono,monospace}.brand-lockup b{display:block;color:var(--white);font:15px/1.2 Michroma,sans-serif;letter-spacing:.13em}.brand-lockup small{display:block;margin-top:7px;color:var(--muted);font-size:9px;letter-spacing:.14em}.score-strip{display:flex;gap:34px;text-align:right}.score-strip small{display:block;margin-bottom:5px;color:var(--muted);font-size:9px;letter-spacing:.15em}.score-strip b{color:var(--yellow);font-size:18px;font-weight:500;letter-spacing:.08em;font-variant-numeric:tabular-nums}.score-strip div:nth-child(2) b{color:var(--white);font-size:15px}.score-strip div:last-child b{color:var(--cyan)}.instrument{position:absolute;padding:13px 15px;color:var(--white);background:var(--black);border-top:1px solid var(--muted)}.panel-label{display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--muted);font-size:10px;font-weight:600;letter-spacing:.12em}.panel-label i{color:var(--cyan);font-style:normal;font-weight:500}.target-panel{top:104px;left:28px;width:246px;border-left:1px solid var(--muted)}.target-panel>strong{display:block;margin-top:19px;color:var(--yellow);font:15px/1.35 Michroma,sans-serif;letter-spacing:.04em}.target-range{display:flex;align-items:baseline;gap:9px;margin-top:9px}.target-range b{color:var(--white);font-size:29px;font-weight:400;font-variant-numeric:tabular-nums}.target-range small{color:var(--muted);font-size:9px;letter-spacing:.12em}.target-coords{margin:7px 0 14px;color:var(--muted);font-size:9px;white-space:nowrap}.target-help{margin-top:10px;color:var(--muted);font-size:9px;letter-spacing:.1em}.target-panel.no-target>strong{color:var(--muted)}.micro-bar{height:3px;width:100%;overflow:hidden;background:#17211f}.micro-bar i{display:block;width:100%;height:100%;background:var(--white);transform-origin:left}.micro-bar.cyan i{background:var(--cyan)}.micro-bar.green i{background:var(--green)}.micro-bar.amber i{background:var(--yellow)}.micro-bar.hull i{background:var(--white)}.systems-panel{left:28px;bottom:28px;width:224px;border-left:1px solid var(--muted)}.speed-readout{display:flex;align-items:baseline;gap:8px;margin:13px 0 17px}.speed-readout b{color:var(--cyan);font-size:34px;font-weight:400;line-height:1;font-variant-numeric:tabular-nums}.speed-readout span{color:var(--muted);font-size:10px}.bar-label{display:flex;justify-content:space-between;margin:12px 0 6px;color:var(--muted);font-size:9px;letter-spacing:.08em}.bar-label em{color:var(--white);font-style:normal;font-variant-numeric:tabular-nums}.hull-label{margin-top:18px}.radar-panel{right:28px;bottom:28px;width:218px;border-right:1px solid var(--muted)}.radar-wrap{position:relative;width:174px;height:174px;margin:10px auto 5px}#radar-canvas{width:100%;height:100%;display:block}.radar-front,.radar-self{position:absolute;left:50%;transform:translate(-50%);color:var(--muted);font-size:8px}.radar-front{top:3px}.radar-self{top:50%;transform:translate(-50%,-50%);color:var(--yellow);font-size:11px}.radar-sweep{position:absolute;left:50%;top:50%;width:1px;height:42%;background:var(--green);opacity:.35;transform-origin:top;animation:radar-sweep 5s linear infinite}.radar-legend{display:flex;justify-content:space-between;color:var(--muted);font-size:8px}.dot{display:inline-block;width:5px;height:5px;margin-right:4px;border:1px solid var(--red);border-radius:50%}.dot.filled{background:var(--red)}.vector-shields{position:absolute;inset:0}.shield-sector{position:absolute;width:104px;padding:7px 9px;background:var(--black)}.shield-sector>div:first-child{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px}.shield-sector span{color:var(--green);font:12px/1 Michroma,sans-serif}.shield-sector em{color:var(--green);font-size:11px;font-style:normal;font-variant-numeric:tabular-nums}.shield-sector.front{top:calc(50% - 176px);left:calc(50% - 52px)}.shield-sector.rear{top:calc(50% + 142px);left:calc(50% - 52px)}.shield-sector.left{top:calc(50% - 21px);left:calc(50% - 225px)}.shield-sector.right{top:calc(50% - 21px);left:calc(50% + 121px)}.shield-sector.depleted span,.shield-sector.depleted em{color:var(--red)}.weapon-console{position:absolute;left:50%;bottom:28px;width:520px;transform:translate(-50%);display:grid;grid-template-columns:1fr 70px;background:var(--black);border-top:1px solid var(--muted);pointer-events:auto}.weapon-tabs{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,1fr)}.weapon-tab{position:relative;min-height:54px;padding:11px 12px;display:flex;align-items:center;gap:11px;color:var(--muted);background:var(--black);border:0;border-right:1px solid #26312E;cursor:pointer;text-align:left}.weapon-tab:last-child{border-right:0}.weapon-tab:hover{color:var(--white);background:#0a0e0c}.weapon-tab kbd{color:inherit;font-size:10px}.weapon-tab span{font:11px/1.2 Michroma,sans-serif;letter-spacing:.05em}.weapon-tab small{display:block;margin-top:5px;font:8px/1 IBM Plex Mono,monospace;letter-spacing:.14em}.weapon-tab i{position:absolute;left:0;right:0;bottom:0;height:3px;background:transparent}.weapon-tab.selected{color:var(--yellow)}.weapon-tab.selected i{background:var(--yellow)}.weapon-status{padding:12px 12px 10px}.weapon-status>div:first-child{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px;font-size:9px}.weapon-status span{color:var(--white)}.weapon-status em{color:var(--cyan);font-style:normal}.missile-count{padding:11px 13px;display:flex;align-items:baseline;justify-content:space-between;border-left:1px solid #26312E}.missile-count small{color:var(--muted);font-size:9px}.missile-count b{color:var(--yellow);font-size:21px;font-weight:400}.reticle{position:absolute;left:50%;top:50%;width:78px;height:78px;transform:translate(-50%,-50%)}.reticle i{position:absolute;background:var(--cyan)}.reticle i:nth-child(1),.reticle i:nth-child(2){top:38px;width:23px;height:1px}.reticle i:nth-child(1){left:0}.reticle i:nth-child(2){right:0}.reticle i:nth-child(3),.reticle i:nth-child(4){left:38px;width:1px;height:23px}.reticle i:nth-child(3){top:0}.reticle i:nth-child(4){bottom:0}.reticle span{position:absolute;left:36px;top:36px;width:5px;height:5px;border:1px solid var(--yellow)}.lock-ring{position:absolute;left:50%;top:50%;width:104px;height:104px;transform:translate(-50%,-50%);opacity:0}.lock-ring.active{opacity:1}.lock-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.lock-ring circle{fill:none;stroke:#26312e;stroke-width:1}.lock-ring #lock-progress{stroke:var(--yellow);stroke-width:2;stroke-dasharray:283;stroke-dashoffset:283}.lock-ring span{position:absolute;top:108px;width:100%;color:var(--yellow);text-align:center;font-size:9px;letter-spacing:.2em}.hit-marker{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--white);font-size:38px;opacity:0}.hit-marker.show{animation:hit .18s linear}.target-bracket{position:absolute;width:70px;height:70px;display:none}.target-bracket.active{display:block}.target-bracket i{position:absolute;width:14px;height:14px;border-color:var(--red);border-style:solid}.target-bracket i:nth-child(1){left:0;top:0;border-width:1px 0 0 1px}.target-bracket i:nth-child(2){right:0;top:0;border-width:1px 1px 0 0}.target-bracket i:nth-child(3){left:0;bottom:0;border-width:0 0 1px 1px}.target-bracket i:nth-child(4){right:0;bottom:0;border-width:0 1px 1px 0}.target-bracket span{position:absolute;top:76px;left:50%;transform:translate(-50%);padding:3px 6px;color:var(--red);background:var(--black);font-size:9px;white-space:nowrap}.offscreen-indicator{position:absolute;display:none;align-items:center;gap:7px;color:var(--red);font-size:10px}.offscreen-indicator.active{display:flex}.wave-banner{position:absolute;top:22%;left:50%;width:360px;transform:translate(-50%);padding:16px 0;text-align:center;background:var(--black);border-top:1px solid var(--yellow);border-bottom:1px solid var(--yellow);opacity:0}.wave-banner small,.wave-banner span{display:block;color:var(--muted);font-size:9px;letter-spacing:.18em}.wave-banner strong{display:block;margin:8px 0;color:var(--yellow);font:24px/1.2 Michroma,sans-serif;letter-spacing:.08em}.wave-banner.show{animation:wave-in 3.2s linear both}.warning-banner{position:absolute;top:83px;left:50%;transform:translate(-50%);padding:8px 14px;color:var(--red);background:var(--black);border:1px solid var(--red);font-size:11px;letter-spacing:.08em;opacity:0}.warning-banner.show{opacity:1;animation:warning 1.2s steps(2,end) infinite}.direction-hit{position:absolute;opacity:0;background:var(--red)}.direction-hit.front,.direction-hit.rear{left:25%;right:25%;height:2px}.direction-hit.front{top:0}.direction-hit.rear{bottom:0}.direction-hit.left,.direction-hit.right{top:25%;bottom:25%;width:2px}.direction-hit.left{left:0}.direction-hit.right{right:0}.direction-hit.show{animation:direction-hit .5s linear}.impact-glow{position:absolute;inset:0;opacity:0;border:8px solid var(--red)}.impact-glow.shield{border-color:var(--cyan)}.impact-glow.show{animation:impact .45s linear}.boost-lines{display:none}.mute-button{position:absolute;right:28px;top:88px;z-index:12;padding:7px 0 7px 10px;color:var(--muted);background:var(--black);border:0;border-bottom:1px solid var(--muted);font-size:9px;letter-spacing:.1em;cursor:pointer}.mute-button:hover{color:var(--yellow);border-color:var(--yellow)}.mute-button kbd{margin-left:7px;color:var(--white);font-size:9px}.screen{position:absolute;inset:0;z-index:10}.title-screen{padding:7vh 7vw 32px;overflow-y:auto;background:var(--black)}.title-content{position:relative;z-index:2;width:min(590px,52vw)}.eyebrow{color:var(--yellow);font-size:11px;font-weight:500;letter-spacing:.2em}.title-rule{width:100%;height:1px;margin:21px 0 34px;background:var(--muted)}.title-screen h1{margin:0;font-family:Michroma,sans-serif;font-weight:400;line-height:.88;letter-spacing:-.055em}.title-star{display:block;color:var(--yellow);font-size:clamp(76px,10vw,148px)}.title-dog{display:block;margin-left:-.035em;color:transparent;-webkit-text-stroke:1.5px var(--white);font-size:clamp(94px,12vw,176px)}.title-sub{margin:30px 0 0;color:var(--white);font-size:12px;letter-spacing:.13em}.title-serial{margin:10px 0 34px;color:var(--muted);font-size:9px;letter-spacing:.12em}.primary-button,.secondary-button{min-height:51px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;gap:30px;border:1px solid var(--yellow);border-radius:0;cursor:pointer;font:12px/1 Michroma,sans-serif;letter-spacing:.06em}.primary-button{color:var(--black);background:var(--yellow)}.primary-button:hover{color:var(--yellow);background:var(--black)}.primary-button kbd{font:9px/1 IBM Plex Mono,monospace}#launch-btn{width:330px}.best-line{margin:15px 0 27px;color:var(--muted);font-size:10px;letter-spacing:.1em}.best-line b{margin-left:12px;color:var(--white);font-weight:500}.controls-card,.pause-manual{border-top:1px solid var(--muted);border-bottom:1px solid var(--muted)}.controls-card summary,.pause-manual summary{display:flex;justify-content:space-between;padding:15px 0;color:var(--white);cursor:pointer;list-style:none;font-size:11px;letter-spacing:.12em}.controls-card summary::-webkit-details-marker,.pause-manual summary::-webkit-details-marker{display:none}.controls-card summary span,.pause-manual summary span{color:var(--muted);font-size:8px}.controls-card[open] summary,.pause-manual[open] summary{color:var(--yellow)}.manual-body{padding:3px 0 17px}.control-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px 20px}.control-grid>div{display:flex;flex-direction:column;gap:5px}.control-grid kbd{color:var(--cyan);font-size:10px}.control-grid span{color:var(--muted);font-size:9px}.lock-note,.pointer-note{color:var(--muted);font-size:10px;line-height:1.65}.lock-note{margin:19px 0 0}.lock-note b{color:var(--yellow);font-weight:500}.pointer-note{margin:9px 0 0}.enemy-specs{border-top:0}.enemy-specs-body{padding:1px 0 8px}.enemy-entry{--enemy-color: var(--cyan);display:grid;grid-template-columns:132px 1fr;gap:21px;padding:22px 0;border-bottom:1px solid #1D2926}.enemy-entry:last-child{border-bottom:0}.enemy-entry.interceptor{--enemy-color: var(--red)}.enemy-entry.gunship{--enemy-color: var(--yellow)}.ship-portrait{display:block;width:100%;height:auto;margin-top:4px;color:var(--enemy-color)}.spec-grid{fill:none;stroke:var(--muted);stroke-width:.55;opacity:.5}.ship-lines{fill:none;stroke:currentColor;stroke-width:1.25;stroke-linejoin:round}.ship-lines .ship-accent{stroke:var(--white);stroke-width:.85}.enemy-copy h3{margin:0;color:var(--enemy-color);font:11px/1.25 Michroma,sans-serif;letter-spacing:.06em}.enemy-copy h3 span{display:block;margin-top:6px;color:var(--muted);font:8px/1.4 IBM Plex Mono,monospace;letter-spacing:.11em}.enemy-copy>p{margin:12px 0 0;color:var(--muted);font-size:10px;line-height:1.65}.enemy-stats{display:grid;grid-template-columns:1fr 1fr;gap:9px 18px;margin:16px 0 0}.enemy-stats>div{padding-top:6px;border-top:1px solid #1D2926}.enemy-stats dt{color:var(--muted);font-size:7px;letter-spacing:.09em}.enemy-stats dd{display:flex;align-items:center;justify-content:space-between;gap:7px;margin:5px 0 0;color:var(--white);font-size:8px}.rating-pips{display:flex;gap:3px}.rating-pips i{display:block;width:13px;height:3px;background:#1d2926}.rating-pips i.filled{background:var(--enemy-color)}.vector-emblem{position:absolute;right:6vw;top:50%;width:min(39vw,530px);transform:translateY(-50%);color:var(--cyan)}.vector-emblem svg{display:block;width:100%;height:auto;overflow:visible}.vector-emblem svg *{vector-effect:non-scaling-stroke}.emblem-grid{fill:none;stroke:var(--muted);stroke-width:.7;opacity:.65}.emblem-ship{fill:none;stroke:var(--cyan);stroke-width:1.4}.emblem-core{fill:var(--black);stroke:var(--yellow);stroke-width:1}.emblem-contact{fill:var(--red)}.contact-b{opacity:.55}.vector-emblem>span{display:block;margin-top:12px;color:var(--muted);text-align:center;font-size:9px;letter-spacing:.18em}.title-footer{position:absolute;left:7vw;right:7vw;bottom:27px;display:flex;justify-content:space-between;color:var(--muted);font-size:8px;letter-spacing:.13em}.title-screen:has(.controls-card[open]) .title-footer{display:none}.title-screen:has(.controls-card[open])>.vector-emblem{opacity:0}.modal-screen{background:var(--black)}.pause-screen{padding:34px 6vw 30px}.pause-topline,.pause-footer{display:flex;justify-content:space-between;color:var(--muted);font-size:9px;letter-spacing:.14em}.pause-topline{padding-bottom:17px;border-bottom:1px solid var(--muted)}.pause-hero{min-height:43vh;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--muted)}.pause-symbol{display:inline-block;width:29px;height:30px;margin-bottom:24px;border-left:8px solid var(--yellow);border-right:8px solid var(--yellow)}.pause-hero h2{margin:0;color:var(--yellow);font:clamp(45px,6vw,82px)/1 "Michroma",sans-serif;letter-spacing:.03em}.pause-hero p{margin:16px 0 0;color:var(--muted);font-size:10px;letter-spacing:.16em}.pause-emblem{position:relative;right:auto;top:auto;width:min(30vw,340px);transform:none}.pause-lower{display:grid;grid-template-columns:minmax(320px,480px) minmax(260px,370px);justify-content:space-between;gap:7vw;padding-top:26px}.pause-commands{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-content:start}.pause-commands .primary-button,.pause-commands .secondary-button{grid-column:1 / -1}.secondary-button{color:var(--white);background:var(--black);border-color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:10px}.secondary-button:hover{color:var(--yellow);border-color:var(--yellow)}.pause-manual{grid-column:1 / -1}.pause-manual .control-grid{grid-template-columns:repeat(3,1fr)}.pause-status{padding-top:4px}.pause-status dl{margin:19px 0 0}.pause-status dl>div{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #1D2926}.pause-status dt{color:var(--muted);font-size:10px}.pause-status dd{margin:0;color:var(--white);font-size:13px;font-variant-numeric:tabular-nums}.pause-footer{margin-top:25px;justify-content:flex-start}.modal-screen:not(.pause-screen){display:grid;place-items:center;padding:24px}.modal-card{width:min(620px,100%);padding:38px;background:var(--black);border-top:1px solid var(--red);border-bottom:1px solid var(--red)}.eyebrow.danger{color:var(--red)}.modal-card h2{margin:22px 0 12px;color:var(--red);font:clamp(30px,5vw,50px)/1.1 "Michroma",sans-serif}.modal-card>p{color:var(--muted);font-size:11px}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:30px 0;padding:20px 0;border-top:1px solid var(--muted);border-bottom:1px solid var(--muted)}.summary-grid small{display:block;margin-bottom:8px;color:var(--muted);font-size:8px}.summary-grid b{color:var(--white);font-size:20px;font-weight:400}.new-best{margin:-14px 0 24px;color:var(--yellow);font-size:11px;letter-spacing:.16em}.gameover-card .primary-button,.gameover-card .secondary-button{width:100%;margin-top:11px}@keyframes radar-sweep{to{transform:rotate(360deg)}}@keyframes wave-in{0%,to{opacity:0}10%,82%{opacity:1}}@keyframes warning{50%{opacity:.35}}@keyframes hit{0%,to{opacity:0}20%,70%{opacity:1}}@keyframes direction-hit{0%,to{opacity:0}20%{opacity:.85}}@keyframes impact{0%,to{opacity:0}20%{opacity:.35}}@media(max-width:1050px){.weapon-console{width:440px}.systems-panel{width:190px}.radar-panel{width:185px}.radar-wrap{width:145px;height:145px}.target-panel{width:220px}.vector-emblem{right:3vw;opacity:.65}}@media(max-width:760px){.hud-header{top:16px;left:16px;right:16px}.score-strip{gap:15px}.score-strip div:nth-child(2){display:none}.brand-lockup small{display:none}.target-panel{top:75px;left:16px;width:190px}.target-coords{display:none}.systems-panel{left:16px;bottom:16px;width:160px}.radar-panel{right:16px;bottom:16px;width:150px}.radar-wrap{width:116px;height:116px}.radar-legend{display:none}.weapon-console{bottom:16px;width:350px}.weapon-tab{padding:9px 7px;gap:6px}.weapon-tab span{font-size:9px}.weapon-status{display:none}.weapon-console{grid-template-columns:1fr 58px}.missile-count{grid-column:2}.shield-sector{width:76px;padding:5px}.shield-sector.front,.shield-sector.rear{left:calc(50% - 38px)}.shield-sector.left{left:calc(50% - 166px)}.shield-sector.right{left:calc(50% + 90px)}.title-screen{padding:8vh 7vw 25px}.title-content{width:100%}.title-screen>.vector-emblem{right:-20vw;width:80vw;opacity:.2}.title-star{font-size:clamp(64px,19vw,110px)}.title-dog{font-size:clamp(78px,23vw,132px)}.title-sub{max-width:370px;line-height:1.6}.pause-screen{padding:24px;overflow-y:auto}.pause-hero{min-height:32vh}.pause-emblem{width:30vw;opacity:.6}.pause-lower{grid-template-columns:1fr;gap:25px}.pause-footer{display:none}}@media(max-width:520px){.brand-lockup b{font-size:12px}.score-strip b{font-size:14px}.target-panel{width:166px;padding:10px}.target-panel>strong{font-size:11px}.target-range b{font-size:22px}.systems-panel{width:135px;padding:10px}.speed-readout b{font-size:25px}.radar-panel{width:122px;padding:10px}.radar-wrap{width:96px;height:96px}.weapon-console{width:calc(100% - 32px);bottom:194px}.weapon-tab small{display:none}.weapon-tab{min-height:42px}.shield-sector.left{left:16px}.shield-sector.right{left:auto;right:16px}.shield-sector.front{top:calc(50% - 135px)}.shield-sector.rear{top:calc(50% + 110px)}.mute-button{right:16px;top:65px}.control-grid{grid-template-columns:repeat(2,1fr)}.enemy-entry{grid-template-columns:1fr;gap:12px}.ship-portrait{width:118px;margin:0 auto}.enemy-copy h3{font-size:10px}#launch-btn{width:100%}.title-footer span:last-child{display:none}.pause-commands{grid-template-columns:1fr}.pause-commands .primary-button,.pause-manual{grid-column:1}.pause-hero h2{font-size:37px}.pause-emblem{display:none}.summary-grid{gap:8px}.summary-grid b{font-size:15px}.modal-card{padding:25px 20px}}@media(max-height:720px)and (min-width:761px){.title-screen{padding-top:5vh}.title-rule{margin:15px 0 22px}.title-star{font-size:clamp(64px,9vw,112px)}.title-dog{font-size:clamp(78px,11vw,138px)}.title-sub{margin-top:21px}.title-serial{margin-bottom:22px}.best-line{margin-bottom:17px}.pause-hero{min-height:37vh}.pause-symbol{margin-bottom:14px}.pause-hero h2{font-size:48px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important}.radar-sweep,.warning-banner.show{animation:none}.wave-banner.show{animation:wave-in 3.2s linear both}.hit-marker.show,.direction-hit.show,.impact-glow.show{animation-duration:.01ms}}
