:root{--bg:#070b14;--panel:#0e1523;--panel-2:#171f30;--line:#2a3548;--text:#d8e7f4;--text-dim:#8aa3b8;--accent:#ff8a2b;--warn:#ffc979;--danger:#ff5ec8;--sat:env(safe-area-inset-top,0px);--sar:env(safe-area-inset-right,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:var(--bg);color:var(--text);font-synthesis:none;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;font-family:ui-monospace,IBM Plex Mono,SFMono-Regular,Menlo,Consolas,Apple SD Gothic Neo,Malgun Gothic,Noto Sans CJK KR,Noto Sans KR,Nanum Gothic,sans-serif,monospace}*{box-sizing:border-box}html,body,#root{margin:0;padding:0}html,body{overscroll-behavior:none;touch-action:none;background:var(--bg);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:100vw;height:100dvh;position:fixed;inset:0;overflow:hidden}#root{position:fixed;inset:0}button{font:inherit;color:inherit;touch-action:manipulation}:focus-visible{outline-offset:3px;outline:2px solid #ffb067}.app-root{background:radial-gradient(at 50% 42%,#12243a 0,#080f1c 42%,#050911 78%);position:fixed;inset:0;overflow:hidden}.game-canvas{z-index:0;touch-action:none;inset:0;position:absolute!important}.game-canvas canvas{touch-action:none;width:100%;height:100%;display:block}.hud{z-index:10;pointer-events:none;text-shadow:0 1px 6px #000;position:absolute;inset:0}.hud-inner{left:max(calc(var(--sal) + 10px), calc(var(--field-x) + 10px));right:calc(var(--sar) + 112px);top:var(--hud-top);flex-wrap:wrap;gap:4px 18px;display:flex;position:absolute}.hud-group{gap:16px;display:flex}.hud-block{gap:1px;min-width:54px;display:grid}.hud-label{letter-spacing:.12em;color:var(--text-dim);font-size:11px}.hud-value{letter-spacing:.06em;color:#fff;font-variant-numeric:tabular-nums;font-size:18px;font-weight:700}.hud-value.hud-dim{color:var(--text-dim);font-size:14px}.hud-value.hud-small{font-size:14px}.hud-lives{color:var(--accent);letter-spacing:.1em}.hud-boss{left:calc(var(--field-x) + 10px);width:calc(var(--field-w) - 20px);top:calc(var(--hud-top) + 52px);background:#200b14aa;border:1px solid #ff8aa0;height:6px;position:absolute}.hud-boss-fill{background:linear-gradient(90deg,#ff4d7a,#ffb36b);height:100%}.app-root[data-hud=side] .hud-inner{display:contents}.app-root[data-hud=side] .hud-group{width:min(calc(var(--side-w) - 28px), 240px);flex-direction:column;gap:14px;position:absolute}.app-root[data-hud=side] .hud-left{left:max(var(--sal), 14px);top:calc(var(--sat) + 16px)}.app-root[data-hud=side] .hud-right{right:max(var(--sar), 14px);top:calc(var(--sat) + 84px);text-align:right;align-items:flex-end}.app-root[data-hud=side] .hud-value{font-size:22px}.app-root[data-hud=side] .hud-value.hud-small{font-size:18px}.app-root[data-hud=side] .hud-boss{top:calc(var(--field-y) + 8px)}.app-root[data-hud=band] .hud-boss{top:calc(var(--field-y) + 6px)}.banner{z-index:15;pointer-events:none;justify-items:center;gap:8px;display:grid;position:absolute;top:26%;left:0;right:0}.banner-text{letter-spacing:.24em;color:#fff;text-shadow:0 0 18px var(--accent);font-size:clamp(20px,6vw,34px);font-weight:800;animation:.4s ease-out bannerIn}.notice-text{letter-spacing:.14em;color:var(--warn);text-shadow:0 1px 6px #000;font-size:14px}@keyframes bannerIn{0%{opacity:0;transform:scale(1.3)}to{opacity:1;transform:none}}.touch-controls{display:none}@media (pointer:coarse){.touch-controls{z-index:20;pointer-events:none;display:block;position:absolute;inset:0}.touch-button{bottom:calc(var(--sab) + 18px);color:#e4f9ff;letter-spacing:.04em;pointer-events:auto;background:#081827b8;border:1px solid #ff9a4a77;border-radius:999px;place-items:center;min-width:64px;min-height:64px;padding:0 14px;font-size:12px;font-weight:600;display:grid;position:absolute;box-shadow:0 3px 14px #0006}.touch-button:active{background:#5c3a1cdd;border-color:#ffb067;transform:scale(.96)}.touch-button:disabled{opacity:.45}.touch-button b{color:var(--warn);font-size:13px}.bomb-button{left:calc(var(--sal) + 16px)}.focus-button{right:calc(var(--sar) + 16px)}}.screen{z-index:40;padding:calc(var(--sat) + 16px) calc(var(--sar) + 16px) calc(var(--sab) + 16px) calc(var(--sal) + 16px);touch-action:pan-y;background:#050b17cc;place-items:center;display:grid;position:absolute;inset:0;overflow:auto}.title-screen{background:linear-gradient(#050b17cc,#050b17aa 40%,#050b17ee)}.screen-inner{text-align:center;justify-items:center;gap:12px;width:min(420px,100%);display:grid}.eyebrow{letter-spacing:.4em;color:var(--accent);margin:0;font-size:12px}.logo{letter-spacing:.2em;color:#f1f7fc;text-shadow:0 0 24px #ff8a2b66;margin:0;font:800 clamp(30px,9vw,46px) Arial Narrow,ui-sans-serif,system-ui,sans-serif}.tagline{color:var(--text-dim);letter-spacing:.1em;margin:0 0 8px;font-size:13px}.screen-title{letter-spacing:.24em;margin:0;font-size:28px}.result-score{letter-spacing:.08em;font-variant-numeric:tabular-nums;margin:0;font-size:38px;font-weight:800}.hint{color:var(--text-dim);letter-spacing:.08em;margin:4px 0 0;font-size:12px}.aircraft-list{grid-template-columns:repeat(3,1fr);gap:8px;width:100%;display:grid}.aircraft-card{border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:6px;align-content:center;gap:4px;min-height:92px;padding:10px 6px;display:grid}.aircraft-card[aria-checked=true]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 0 18px #ff8a2b33;background:var(--panel-2)}.aircraft-name{letter-spacing:.12em;color:var(--accent);font-weight:800}.aircraft-role{color:var(--text);font-size:11px}.aircraft-stats{color:var(--text-dim);font-size:10px}.primary,.secondary{letter-spacing:.14em;cursor:pointer;border-radius:6px;width:min(280px,100%);min-height:48px;font-weight:700}.primary{color:#fff;background:linear-gradient(#8a4a1a,#5c3010);border:1px solid #ffb067}.secondary{border:1px solid var(--line);background:var(--panel);color:var(--text)}.primary:active,.secondary:active{transform:scale(.98)}.boot-error{z-index:100;text-align:center;background:var(--bg);place-items:center;padding:24px;display:grid;position:absolute;inset:0}.rotate-hint{z-index:30;left:50%;bottom:calc(var(--sab) + 8px);border:1px solid var(--line);color:var(--text);pointer-events:auto;background:#081827e6;border-radius:999px;align-items:center;gap:8px;padding:6px 6px 6px 12px;font-size:12px;display:flex;position:absolute;transform:translate(-50%)}.rotate-hint-close{cursor:pointer;background:0 0;border:0;min-width:44px;min-height:44px;font-size:20px}.corner-buttons{z-index:45;top:calc(var(--sat) + 4px);right:calc(var(--sar) + 4px);opacity:.8;gap:0;display:flex;position:absolute}.app-root[data-mode=playing] .corner-buttons{opacity:.7}.corner-button{width:52px;height:52px;color:var(--text);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid}.corner-visual{background:#081827b8;border:1px solid #ff9a4a55;border-radius:10px;place-items:center;width:40px;height:40px;display:grid}.corner-button:active .corner-visual,.corner-button[aria-expanded=true] .corner-visual{background:#5c3a1cdd;border-color:#ffb067}.fps-meter{z-index:12;left:calc(var(--sal) + 10px);bottom:calc(var(--sab) + 6px);color:var(--text-dim);pointer-events:none;font-size:11px;position:absolute}.app-root[data-hand=left] .bomb-button{left:auto;right:calc(var(--sar) + 16px)}.app-root[data-hand=left] .focus-button{right:auto;left:calc(var(--sal) + 16px)}.sheet{border:1px solid var(--line);width:min(520px,100%);max-height:88dvh;color:var(--text);touch-action:pan-y;-webkit-user-select:text;user-select:text;background:#0a1424;border-radius:14px 14px 0 0;margin:0 auto;padding:0;position:fixed;inset:auto 0 0;overflow:auto}.sheet::backdrop{background:#02060cb3}.sheet-body{padding:8px 18px calc(var(--sab) + 20px);gap:14px;display:grid}.sheet-head{z-index:1;background:#0a1424;justify-content:space-between;align-items:center;padding:10px 0 6px;display:flex;position:sticky;top:0}.sheet-title{letter-spacing:.2em;outline:none;margin:0;font-size:18px}.sheet-close{cursor:pointer;min-width:48px;min-height:48px;color:var(--text);background:0 0;border:0;font-size:28px}.sheet-sub{color:var(--text-dim);letter-spacing:.1em;align-items:center;gap:8px;margin:0;font-size:12px;display:flex}.brand-mark{border:1px solid var(--accent);width:24px;height:24px;color:var(--accent);place-items:center;font:800 14px Arial Narrow,sans-serif;display:inline-grid;transform:skew(-8deg)}.sheet-section{border-top:1px solid var(--line);gap:10px;padding-top:12px;display:grid}.sheet-h3{letter-spacing:.2em;color:var(--accent);margin:0;font-size:12px}.sheet .primary,.sheet .secondary{width:100%}.secondary.small{min-height:44px}.confirm{border:1px solid var(--warn);background:#1a1408;border-radius:8px;gap:8px;padding:12px;font-size:13px;display:grid}.best-line{letter-spacing:.08em;font-variant-numeric:tabular-nums;margin:0;font-size:22px;font-weight:800}.tabs{gap:6px;display:flex}.tabs button{border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:6px;flex:1;min-height:44px}.tabs button[aria-selected=true]{border-color:var(--accent);color:var(--accent)}.howto{gap:6px;margin:0;padding-left:18px;font-size:13px;line-height:1.5;display:grid}.howto.small{color:var(--text-dim);font-size:12px}kbd{color:#d0e6f4;background:#0d1928;border:1px solid #2a4055;border-radius:3px;padding:2px 5px;font:600 12px ui-monospace,monospace}.link{color:var(--accent);align-items:center;min-height:44px;font-size:13px;display:inline-flex}.row{gap:6px;display:grid}.row-label{justify-content:space-between;font-size:14px;display:flex}.row-out{color:var(--accent)}.switch{border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:999px;justify-self:start;width:64px;min-height:44px;position:relative}.switch-knob{background:var(--text-dim);border-radius:50%;width:26px;height:26px;transition:transform .12s;position:absolute;top:8px;left:8px}.switch[aria-checked=true]{border-color:var(--accent);background:#5c3010}.switch[aria-checked=true] .switch-knob{background:#fff;transform:translate(26px)}.row:has(>.switch){grid-template-columns:1fr auto;align-items:center}input[type=range]{width:100%;min-height:44px;accent-color:var(--accent)}.segment{gap:6px;display:flex}.segment button{border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:6px;flex:1;min-height:44px}.segment button[aria-checked=true]{border-color:var(--accent);color:var(--accent);background:var(--panel-2)}@media (width>=700px){.sheet{border-radius:14px;max-height:86dvh;margin:auto;inset:0}}.hud-ico,.hud-side-only{display:none}.app-root[data-hud=side] .hud-side-only{display:grid}.app-root[data-hud=side] .hud-ico{vertical-align:-3px;width:16px;height:16px;color:var(--accent);margin-right:6px;display:inline-grid}.app-root[data-hud=side] .hud-ico svg{width:16px;height:16px}.app-root[data-hud=side] .hud-block{border:1px solid #1d3a52;border-left:3px solid var(--accent);background:linear-gradient(135deg,#0b1a2ccc,#08121fcc);border-radius:2px 8px;min-width:0;padding:10px 12px 10px 14px;position:relative;box-shadow:inset 0 0 18px #ff8a2b14}.app-root[data-hud=side] .hud-block:before,.app-root[data-hud=side] .hud-block:after{content:"";border:1px solid #ffa05088;width:8px;height:8px;position:absolute}.app-root[data-hud=side] .hud-block:before{border-bottom:0;border-left:0;top:-1px;right:-1px}.app-root[data-hud=side] .hud-block:after{border-top:0;border-left:0;bottom:-1px;right:-1px}.app-root[data-hud=side] .hud-right .hud-block{border-left:1px solid #1d3a52;border-right:3px solid var(--accent);border-radius:8px 2px}.app-root[data-hud=side] .hud-right .hud-block:before,.app-root[data-hud=side] .hud-right .hud-block:after{border:1px solid #ffa05088;border-right:0;left:-1px;right:auto}.app-root[data-hud=side] .hud-right .hud-block:before{border-bottom:0}.app-root[data-hud=side] .hud-right .hud-block:after{border-top:0}.side-decor{z-index:5;pointer-events:none;color:#7fa6c0;opacity:.75;position:absolute;inset:0}.decor-side{width:var(--side-w);position:absolute;top:0;bottom:0}.decor-left{left:0}.decor-right{right:0}.decor-ticks{opacity:.45;background-color:#0000;background-image:repeating-linear-gradient(currentColor 0 1px,#0000 1px 12px),repeating-linear-gradient(currentColor 0 1px,#0000 1px 60px);background-position:0 0,0 0;background-repeat:no-repeat;background-size:6px 100%,14px 100%;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;width:14px;position:absolute;top:0;bottom:0}.decor-left .decor-ticks{background-position:100% 0,100% 0;right:6px}.decor-right .decor-ticks{background-position:0 0,0 0;left:6px}.decor-meta{bottom:calc(var(--sab) + 44px);letter-spacing:.14em;color:#6e8da3;gap:4px;font-size:11px;display:grid;position:absolute}.decor-left .decor-meta{left:max(var(--sal), 14px)}.decor-right .decor-meta{right:max(var(--sar), 14px);text-align:right}.decor-mark{bottom:calc(var(--sab) + 16px);letter-spacing:.5em;color:#ff8a2b;opacity:.28;font:800 14px Arial Narrow,ui-sans-serif,sans-serif;position:absolute}.decor-left .decor-mark{left:max(var(--sal), 14px)}.decor-right .decor-mark{right:max(var(--sar), 14px)}.decor-scan{opacity:.12;background:repeating-linear-gradient(#000 0 1px,#0000 1px 4px);position:absolute;inset:0}.decor-side:before{content:"";background:linear-gradient(#0000,#ff8a2b44,#0000);width:1px;position:absolute;top:0;bottom:0}.decor-left:before{right:0}.decor-right:before{left:0}.side-decor[data-theme=basin] .decor-mark{color:#ff8a4a}.side-decor[data-theme=highveil] .decor-mark{color:#b08cff}.hit-vignette{z-index:12;pointer-events:none;animation:.3s ease-out forwards hitFade;position:absolute;inset:0;box-shadow:inset 0 0 90px 24px #ff2a4acc}@keyframes hitFade{0%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.hit-vignette{animation-duration:10ms;box-shadow:inset 0 0 40px 8px #ff2a4a88}.banner-text{animation:none}}.hint-text{letter-spacing:.08em;color:#fff;text-shadow:none;background:#081827cc;border:1px solid #ff8a2b66;border-radius:6px;padding:6px 12px;font-size:14px}.segment.diff{width:min(280px,100%)}.hud-boss{position:absolute}.hud-boss-mark{opacity:.8;background:#ffe2e8;width:1px;position:absolute;top:-2px;bottom:-2px}.hud-boss-name{letter-spacing:.14em;color:#ffc0cc;text-shadow:0 1px 4px #000;white-space:nowrap;font-size:11px;position:absolute;top:8px;left:0}.hud-bar{vertical-align:middle;background:#16293b;border:1px solid #2a4560;width:60px;height:5px;margin-left:8px;display:inline-block}.hud-bar b{background:var(--warn);height:100%;display:block}.hud-bar.graze b{background:#ffa050}.hud-combo .hud-value{color:var(--warn)}.app-root[data-hud=side] .hud-bar{width:100px}.result-detail{color:var(--text);gap:4px;font-size:13px;display:grid}.result-detail p{margin:0}.result-grade{color:var(--warn);letter-spacing:.1em;font-weight:800;font-size:44px!important}.result-ach{color:#ffe066;gap:2px;margin-top:6px;display:grid}.toast-text{color:#ffe066;background:#1a1408ee;border:1px solid #ffe066;border-radius:6px;padding:6px 12px;font-size:14px}.ach-grid{grid-template-columns:1fr 1fr;gap:6px;margin:0;padding:0;font-size:12px;list-style:none;display:grid}.ach-grid li{border:1px solid var(--line);color:var(--text-dim);border-radius:4px;padding:6px 8px}.ach-grid li[data-unlocked=true]{color:#ffe066;border-color:#7a6a20}.legend{gap:6px;margin:0;padding:0;font-size:12px;list-style:none;display:grid}.legend li{align-items:center;gap:8px;display:flex}.aircraft-list{grid-template-columns:1fr!important}.aircraft-card{text-align:left;grid-template-columns:112px 1fr;align-items:center;gap:10px;min-height:96px;padding:8px 10px}.ac-view{width:112px;height:84px;display:block;position:relative}.ac-canvas,.ac-thumb{object-fit:contain;opacity:.85;display:block;width:112px!important;height:84px!important}.aircraft-card[aria-checked=true] .ac-canvas{opacity:1}.ac-empty{background:radial-gradient(circle,#1a2a3c,#0000 70%)}.ac-info{gap:3px;display:grid}.ac-bars{gap:2px;margin:2px 0;display:grid}.ac-bar{color:var(--text-dim);grid-template-columns:34px 1fr;align-items:center;gap:6px;font-size:10px;display:grid}.ac-bar i{font-style:normal}.ac-bar b{background:#16293b;border:1px solid #2a4560;height:5px;display:block}.ac-bar u{background:var(--accent);height:100%;text-decoration:none;display:block}.ac-wrap{gap:6px;display:grid}.skin-row{gap:10px;padding:0 4px 2px 126px;display:flex}.skin-swatch{cursor:pointer;border:3px solid;border-radius:50%;width:44px;height:44px}.skin-swatch[aria-checked=true]{outline-offset:2px;outline:2px solid #fff}.hud-boss-ghost{opacity:.85;background:#ffe2e8;height:100%;transition:width 1.1s ease-out .35s;position:absolute;top:0;left:0}.hud-boss-fill{position:relative}.hud-boss-fill.phase-flash{animation:.9s ease-out phaseFlash}@keyframes phaseFlash{0%{filter:brightness(3);box-shadow:0 0 14px 4px #fff}to{filter:none;box-shadow:none}}.intro-screen{z-index:40;padding:calc(var(--sat) + 70px) 16px calc(var(--sab) + 28px);pointer-events:auto;background:linear-gradient(#050b17cc,#0000 40% 55%,#050b17dd);grid-template-rows:1fr auto;display:grid;position:absolute;inset:0}.intro-top{text-align:center;align-content:start;justify-items:center;gap:10px;display:grid}.intro-logo{letter-spacing:.12em;color:#f1f7fc;text-shadow:0 0 26px #ff8a2baa,0 2px #0a1a2a;gap:.04em;margin:0;font:800 clamp(34px,11vw,64px) Arial Narrow,ui-sans-serif,system-ui,sans-serif;display:flex}.intro-logo span{opacity:0;animation:.7s cubic-bezier(.2,.8,.2,1) forwards logoIn;display:inline-block;transform:translateY(24px)scale(1.4)}.intro-logo:after{content:"";position:absolute}@keyframes logoIn{to{opacity:1;transform:none}}.intro-eyebrow{opacity:0;animation:.8s .1s forwards logoIn}.intro-tag{opacity:0;animation:.8s 1.4s forwards logoIn}.intro-bottom{justify-items:center;gap:10px;display:grid}.intro-start{letter-spacing:.3em;width:min(320px,100%);min-height:60px;font-size:20px;animation:2s ease-in-out 1.6s infinite startPulse}@keyframes startPulse{50%{box-shadow:0 0 22px #ff8a2b99}}.intro-aux{gap:8px;display:flex}.intro-aux .secondary{width:auto;min-width:88px;padding:0 14px}.select-title{margin-bottom:4px;font-size:20px}@media (prefers-reduced-motion:reduce){.intro-logo span,.intro-eyebrow,.intro-tag{animation-duration:10ms;animation-delay:0s!important}.intro-start{animation:none}}.intro-logo-svg{filter:drop-shadow(0 4px 18px #000a);opacity:0;width:min(92vw,560px);height:auto;animation:1s cubic-bezier(.2,.8,.2,1) .2s forwards logoIn;transform:translateY(18px)scale(1.06)}@media (prefers-reduced-motion:reduce){.intro-logo-svg{animation-duration:10ms;animation-delay:0s}}:root{--blue:#5aa8ff}.eyebrow,.hud-label{color:var(--blue)}.tagline{color:#c6d2e4;letter-spacing:.12em;text-align:center;font-size:12px}.sys-toast{z-index:60;left:50%;bottom:calc(var(--sab) + 90px);border:1px solid var(--accent);color:#fff;pointer-events:none;background:#1a1408ee;border-radius:8px;padding:8px 14px;font-size:13px;position:absolute;transform:translate(-50%)}
