:root{--bg: #0b0f0a;--panel: #141c11;--panel-2: #192315;--cream: #f2e9d8;--dim: #a8a08f;--dimmer: #7b766a;--line: rgba(242, 233, 216, .14);--line-strong: rgba(242, 233, 216, .28);--red: #c0392b;--red-bright: #e05a45;--gold: #e8bd52;--green: #6f9b4a;--mono: ui-monospace, "Cascadia Mono", "SFMono-Regular", "Menlo", "Consolas", "Courier New", monospace}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{background:radial-gradient(1100px 680px at 72% -12%,rgba(111,155,74,.14),transparent 62%),radial-gradient(900px 520px at 4% 108%,rgba(192,57,43,.09),transparent 60%),linear-gradient(160deg,#0a0e08,#0d130a 52%,#070a05);color:var(--cream);font-family:var(--mono);font-size:14px;line-height:1.48;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.28;background-image:repeating-linear-gradient(0deg,rgba(242,233,216,.025) 0,rgba(242,233,216,.025) 1px,transparent 1px,transparent 3px)}.page{position:relative;z-index:1;width:min(1220px,100%);margin:0 auto;padding:20px clamp(14px,2.2vw,32px) 34px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:2px 0 16px;border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;gap:12px;color:inherit;text-decoration:none;min-width:0}.brand-mark{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border:1px solid var(--line-strong);box-shadow:inset 0 0 0 3px #00000059;color:var(--gold);font-size:13px;font-weight:800;letter-spacing:.04em;background:linear-gradient(135deg,rgba(232,189,82,.1),transparent 55%),var(--panel);position:relative}.brand-mark:after{content:"";position:absolute;inset:4px;border:1px solid rgba(232,189,82,.18)}.brand-text{display:flex;flex-direction:column;min-width:0}.brand-text strong{display:block;font-size:clamp(13px,1.4vw,16px);letter-spacing:.22em;white-space:nowrap}.brand-text small{color:var(--dim);font-size:10px;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}.top-actions{display:flex;gap:8px;flex:0 0 auto}button{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--cream);background:linear-gradient(180deg,rgba(242,233,216,.05),transparent),#131a10;border:1px solid var(--line);border-radius:2px;padding:8px 11px;cursor:pointer;transition:border-color .12s ease,color .12s ease,background-color .12s ease}button:hover,button:focus-visible{border-color:#e8bd52b3;color:var(--gold);outline:none}button:active{transform:translateY(1px)}.layout{display:grid;grid-template-columns:minmax(0,1fr) 302px;gap:22px;align-items:start;margin-top:22px}.stage-wrap{min-width:0}@media(min-width:921px){.stage-wrap{width:min(100%,calc((100vh - 150px) * 4 / 3));margin-inline:auto}}.game-frame{position:relative;width:100%;aspect-ratio:4 / 3;background:#050704;border:1px solid rgba(242,233,216,.22);border-radius:3px;overflow:hidden;box-shadow:0 28px 70px #00000094,0 0 0 1px #000000b3,inset 0 0 0 1px #ffffff08}.game-frame:before{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;border:1px solid rgba(242,233,216,.05)}canvas{display:block;width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges;outline:none;cursor:crosshair;touch-action:none}canvas:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}.scanlines{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.34;background-image:repeating-linear-gradient(0deg,rgba(0,0,0,.24) 0,rgba(0,0,0,.24) 1px,transparent 1px,transparent 3px);mix-blend-mode:multiply}.loading{position:absolute;inset:0;z-index:4;display:grid;place-items:center;background:#0a0e08;color:var(--gold);font-size:11px;letter-spacing:.22em;transition:opacity .36s ease}.loading.is-hidden{opacity:0;pointer-events:none}.under-stage{margin:9px 2px 0;color:var(--dimmer);font-size:10px;letter-spacing:.05em}.panel{position:sticky;top:18px;padding:18px 18px 16px;border:1px solid var(--line);border-radius:3px;background:linear-gradient(180deg,rgba(111,155,74,.07),transparent 30%),linear-gradient(180deg,var(--panel-2),var(--panel));box-shadow:0 20px 50px #00000059,inset 0 0 0 1px #00000073}.panel h2{margin:0 0 10px;color:var(--gold);font-size:10px;letter-spacing:.2em;text-transform:uppercase}.panel h3{margin:0 0 5px;color:var(--cream);font-size:11px;letter-spacing:.04em;font-weight:600}.panel h3 span{color:var(--dimmer);font-weight:400;font-size:9px;letter-spacing:.06em}.panel p{margin:0 0 10px;color:var(--dim);font-size:11px}.panel ul{margin:0;padding-left:1.05em}.panel li{margin:2px 0;color:var(--dim);font-size:11px}.controls-grid{display:grid;gap:14px}.note{margin-top:14px!important;padding:9px 10px;border-left:2px solid rgba(232,189,82,.55);background:#e8bd520b;color:var(--dim);font-size:10px!important}.tips li::marker{color:var(--red-bright)}hr{border:0;border-top:1px solid var(--line);margin:16px 0}kbd{display:inline-block;min-width:1.5em;padding:0 .3em;border:1px solid rgba(242,233,216,.22);border-bottom-color:#0009;border-radius:2px;background:#f2e9d80e;color:var(--cream);font-family:var(--mono);font-size:.86em;line-height:1.5;text-align:center}.tiny{color:var(--dimmer)!important;font-size:9px!important;letter-spacing:.04em}footer{display:flex;justify-content:space-between;gap:16px;margin-top:26px;padding-top:14px;border-top:1px solid var(--line);color:var(--dimmer);font-size:9px;letter-spacing:.08em;text-transform:uppercase}.game-frame:fullscreen{width:100vw;height:100vh;aspect-ratio:auto;display:flex;align-items:center;justify-content:center;border:0;border-radius:0;background:#050704}.game-frame:fullscreen canvas{width:min(100vw,calc(100vh * 4 / 3));height:auto;max-height:100vh;aspect-ratio:4 / 3}.game-frame:fullscreen .scanlines{display:none}@media(max-width:920px){.layout{grid-template-columns:minmax(0,1fr);gap:18px}.panel{position:static}.controls-grid{grid-template-columns:1fr 1fr}}@media(max-width:580px){.page{padding-top:14px}.topbar{align-items:flex-start}.brand-text small{display:none}.top-actions{flex-direction:column}.controls-grid{grid-template-columns:1fr}.under-stage{font-size:9px;line-height:1.7}footer{flex-direction:column;gap:4px}}@media(prefers-reduced-motion:reduce){*{transition-duration:.001ms!important}}
