@font-face{font-family:KenneyFuture;src:url('../assets/fonts/Kenney Future.ttf')}@font-face{font-family:KenneyNarrow;src:url('../assets/fonts/Kenney Future Narrow.ttf')}
:root{--ink:#d5dfc2;--dim:#84937a;--green:#a9c486;--amber:#e6bf68;--red:#ed765f;--panel:#151b17;--edge:#3e493d;--black:#080b09;--sand:#8b7a57}
*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%;background:#080b09;color:var(--ink);font-family:KenneyNarrow,ui-monospace,monospace}body{min-height:100vh;overflow-x:hidden}.screen{display:none;min-height:100vh}.screen.active{display:flex}.hidden{display:none!important}button,a{font:inherit}.label,.eyebrow{color:var(--amber);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase}
#title-screen{position:relative;align-items:center;justify-content:center;padding:32px;background:radial-gradient(circle at 70% 30%,rgba(172,147,91,.16),transparent 32%),linear-gradient(135deg,#101712,#060907 65%);overflow:hidden}.scanlines{position:absolute;inset:0;opacity:.12;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 3px,#b4c69a 4px)}.title-shell{position:relative;width:min(840px,100%);padding:clamp(26px,6vw,64px);border:1px solid #465342;background:rgba(13,18,14,.93);box-shadow:0 24px 90px #000}.title-shell:before,.title-shell:after{content:'';position:absolute;width:38px;height:38px;border-color:var(--amber)}.title-shell:before{left:12px;top:12px;border-left:2px solid;border-top:2px solid}.title-shell:after{right:12px;bottom:12px;border-right:2px solid;border-bottom:2px solid}.title-shell h1{font-family:KenneyFuture,sans-serif;font-size:clamp(3rem,10vw,7rem);line-height:.76;letter-spacing:-.05em;margin:22px 0 16px;color:#eef3e3;text-shadow:0 0 28px rgba(169,196,134,.15)}.title-shell h1 span{display:block;font-size:.24em;line-height:1.4;letter-spacing:.36em;color:var(--red);margin-left:.2em}.theater{color:var(--green);letter-spacing:.12em;margin-bottom:38px}.brief-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px;border-top:1px solid var(--edge);border-bottom:1px solid var(--edge);padding:22px 0}.brief-grid p{line-height:1.5;margin:7px 0;font-family:system-ui,sans-serif;font-size:.93rem;color:#bfc8b6}.orders{list-style:none;padding:18px 0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.orders li{border-left:2px solid var(--green);padding-left:10px}.orders b,.orders span{display:block}.orders b{font-size:.78rem;color:#e4ead8;letter-spacing:.08em}.orders span{font-family:system-ui,sans-serif;font-size:.72rem;color:var(--dim);margin-top:4px}.primary{cursor:pointer;border:0;color:#0b0e0b;background:var(--amber);padding:15px 24px;font-family:KenneyFuture,sans-serif;letter-spacing:.08em;box-shadow:inset 0 -4px rgba(0,0,0,.25)}.primary:hover{filter:brightness(1.12)}.fiction-note{font-family:system-ui,sans-serif;color:#657061;font-size:.68rem;max-width:620px;margin:18px 0 8px}.return-link{display:inline-block;color:var(--dim);font-size:.7rem;letter-spacing:.1em;text-decoration:none;margin-top:10px}.return-link:hover{color:var(--ink)}
#game-screen{flex-direction:column;background:#090d0a;height:100vh;overflow:hidden}.topbar{height:58px;flex:0 0 58px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 18px;border-bottom:1px solid var(--edge);background:#111612}.brand span,.brand b,.mission-clock span,.mission-clock strong,.score span,.score strong{display:block}.brand span,.score span,.mission-clock span{font-size:.58rem;letter-spacing:.18em;color:var(--dim)}.brand b{color:var(--red);letter-spacing:.15em}.mission-clock{text-align:center;min-width:150px}.mission-clock strong{font-family:KenneyFuture;font-size:1.2rem;color:var(--amber)}.score{text-align:right}.score strong{font-family:KenneyFuture;color:var(--green);font-size:1.1rem}.battle-layout{flex:1;min-height:0;display:grid;grid-template-columns:190px minmax(0,1fr) 220px;gap:8px;padding:8px}.panel{border:1px solid var(--edge);background:var(--panel);min-height:0;padding:12px}.panel-head{display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--edge);padding-bottom:10px;margin-bottom:12px;letter-spacing:.08em}.panel-head span{display:grid;place-items:center;background:var(--green);color:#111;width:34px;height:24px}.panel-head b{font-size:.76rem}.readout{display:flex;justify-content:space-between;align-items:end;padding:9px 0;border-bottom:1px dotted #394238}.readout span{font-size:.6rem;color:var(--dim);letter-spacing:.08em}.readout strong{font-family:KenneyFuture;color:var(--green);font-size:1.2rem}.lane-list{margin:20px 0;color:#87947e;font-size:.58rem;line-height:2.2;letter-spacing:.06em}.lane-list i{display:inline-block;width:8px;height:8px;border:1px solid var(--amber);margin-right:6px}.message-log{font-size:.62rem;color:#8ea082;line-height:1.45;height:calc(100% - 250px);overflow:hidden}.message-log p{margin:0 0 8px;border-left:1px solid #4c5c48;padding-left:7px}.message-log p:first-child{color:var(--amber)}
.scope-wrap{display:flex;flex-direction:column;min-width:0;min-height:0}.scope-meta{height:24px;display:flex;justify-content:space-between;align-items:center;padding:0 8px;background:#171d18;border:1px solid var(--edge);font-size:.55rem;color:#7d8c74;letter-spacing:.08em}.canvas-frame{position:relative;flex:1;min-height:0;border:1px solid #4b5849;border-top:0;background:#6f674e;overflow:hidden;cursor:crosshair}.canvas-frame:after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 80px rgba(0,0,0,.6);background:repeating-linear-gradient(0deg,rgba(14,25,16,.05) 0 2px,transparent 3px 5px)}#battlefield{display:block;width:100%;height:100%;touch-action:none}.strike-status,.danger-warning,.wave-banner{position:absolute;z-index:2;left:50%;transform:translateX(-50%);font-family:KenneyFuture;letter-spacing:.12em}.strike-status{top:18px;background:rgba(12,17,13,.86);border:1px solid var(--green);color:var(--green);padding:7px 12px;font-size:.7rem}.danger-warning{bottom:22px;color:#17100c;background:var(--red);padding:8px 14px;animation:blink .55s steps(2) infinite}.wave-banner{top:45%;padding:14px 28px;color:#111;background:var(--amber);font-size:1.1rem;box-shadow:0 8px 30px #000}.position-strip{height:46px;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding-top:6px}.position{border:1px solid var(--edge);padding:6px 8px;background:#151b17}.position div{display:flex;justify-content:space-between;font-size:.55rem;letter-spacing:.08em}.position .hp{height:4px;margin-top:5px;background:#30382f}.position .hp i{display:block;height:100%;background:var(--green)}.position.critical .hp i{background:var(--red)}.position.lost{opacity:.35}
.aircraft-card{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:18px}.aircraft-silhouette{grid-column:1/-1;display:grid;place-items:center;height:74px;border:1px solid #394338;background:radial-gradient(circle,#354232 0 2px,transparent 3px),linear-gradient(90deg,transparent 49.5%,#33402f 50%,transparent 50.5%);background-size:13px 13px,100%;font-family:KenneyFuture;color:var(--green);font-size:1.5rem;clip-path:polygon(6% 40%,38% 40%,44% 5%,56% 5%,62% 40%,94% 40%,98% 58%,61% 60%,56% 95%,44% 95%,39% 60%,2% 58%)}.aircraft-card span{font-size:.52rem;color:var(--dim)}.aircraft-card strong{display:block;font-size:.66rem;color:var(--green);margin-top:3px}.weapons{display:grid;gap:7px}.weapons button{cursor:pointer;display:grid;grid-template-columns:28px 1fr auto;grid-template-rows:auto auto;text-align:left;border:1px solid #3c463a;background:#111612;color:var(--ink);padding:8px}.weapons button.selected{border-color:var(--amber);background:#282719}.weapons button:disabled{opacity:.35;cursor:not-allowed}.weapons kbd{grid-row:1/3;align-self:center;color:var(--amber)}.weapons b{font-size:.7rem}.weapons span{font-size:.52rem;color:var(--dim)}.weapons em{grid-column:3;grid-row:1/3;align-self:center;color:var(--amber);font-style:normal}.cooldown{margin-top:18px}.cooldown>div:first-child{display:flex;justify-content:space-between;font-size:.6rem}.cooldown-track{height:7px;margin-top:7px;background:#30382f}.cooldown-track i{display:block;height:100%;width:100%;background:var(--green)}.abort{position:absolute;bottom:18px;right:20px;cursor:pointer;color:#9a6c61;border:1px solid #593c35;background:transparent;font-size:.56rem;padding:6px 8px}.air{position:relative;padding-bottom:52px}
#end-screen{align-items:center;justify-content:center;padding:28px;background:radial-gradient(circle at center,#202a20,#090c09 65%)}.debrief{width:min(720px,100%);border:1px solid var(--edge);padding:clamp(28px,6vw,58px);background:#111713;text-align:center;box-shadow:0 24px 90px #000}.end-kicker{color:var(--green);letter-spacing:.25em}.debrief h2{font-family:KenneyFuture;font-size:clamp(2rem,7vw,4.5rem);margin:8px 0;color:#ecf1e5}.debrief>p:not(.eyebrow):not(.end-kicker){font-family:system-ui,sans-serif;color:#aab5a2}.debrief-stats{display:grid;grid-template-columns:repeat(4,1fr);margin:30px 0;border-block:1px solid var(--edge)}.debrief-stats div{padding:18px 4px;border-right:1px solid var(--edge)}.debrief-stats div:last-child{border:0}.debrief-stats span,.debrief-stats label{display:block}.debrief-stats span{font-family:KenneyFuture;color:var(--amber);font-size:1.4rem}.debrief-stats label{color:var(--dim);font-size:.55rem;margin-top:6px}
@keyframes blink{50%{opacity:.4}}@media(max-width:900px){#game-screen{height:auto;min-height:100vh;overflow:auto}.battle-layout{grid-template-columns:1fr;grid-template-rows:auto minmax(520px,70vh) auto}.intel{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.intel .panel-head,.intel .lane-list,.intel .message-log{display:none}.readout{padding:5px}.scope-wrap{grid-row:2}.air{grid-row:3}.aircraft-card{display:none}.weapons{grid-template-columns:repeat(3,1fr)}.abort{display:none}.position-strip{height:54px}.title-shell{padding:32px 26px}}@media(max-width:560px){.topbar{padding:0 8px}.brand b{font-size:.72rem}.mission-clock{min-width:100px}.battle-layout{padding:4px;gap:4px;grid-template-rows:auto minmax(430px,68vh) auto}.panel{padding:8px}.scope-meta span:nth-child(2){display:none}.brief-grid{grid-template-columns:1fr;gap:10px}.orders{grid-template-columns:1fr}.title-shell h1{font-size:3.2rem}.weapons button{grid-template-columns:18px 1fr;padding:6px}.weapons em{display:none}.weapons span{display:none}.debrief-stats{grid-template-columns:1fr 1fr}.debrief-stats div:nth-child(2){border-right:0}}
