:root{--bg:#fffaf0;--panel:#fffdf7;--paper:#fffaf0;--grid:#b9dfe0;--ink:#3d3832;--muted:#8a7c6e;--line:#d9cfc1;--mint:#9eddbd;--blue:#8fc9eb;--yellow:#f7d66c;--coral:#f28c78;--purple:#b8a7e8;--accent:#4b9c95;--green:#4b9c95;--red:#f28c78;--moon:#ded7c7;--crater:#c5bbaa;--space:#fffaf0;--shadow:#d6c8b7;--theme-color:#fffaf0}
[data-theme="light"]{--bg:#fffaf0;--panel:#fffdf7;--paper:#fffaf0;--grid:#c7e4dd;--ink:#3d3832;--muted:#8a7c6e;--line:#d9cfc1;--mint:#9eddbd;--blue:#8fc9eb;--yellow:#f7d66c;--coral:#f28c78;--purple:#b8a7e8;--accent:#4b9c95;--green:#4b9c95;--red:#f28c78;--moon:#ded7c7;--crater:#c5bbaa;--space:#fffaf0;--shadow:#d6c8b7;--theme-color:#fffaf0}
[data-theme="dark"]{--bg:#17232b;--panel:#20323a;--paper:#1b2b33;--grid:#38535b;--ink:#fff4dc;--muted:#a8b8b2;--line:#4d6668;--mint:#86cda9;--blue:#76b8de;--yellow:#f1ce63;--coral:#eb806f;--purple:#a99add;--accent:#9eddbd;--green:#9eddbd;--red:#eb806f;--moon:#647478;--crater:#43565c;--space:#17232b;--shadow:#0d171d;--theme-color:#17232b}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font:12px ui-rounded,"SF Pro Rounded","Arial Rounded MT Bold",system-ui,sans-serif}body{display:flex;justify-content:center}button,a{-webkit-tap-highlight-color:transparent}.page{width:min(880px,100%);padding:14px 14px calc(22px + env(safe-area-inset-bottom))}.topbar{min-height:58px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;border-bottom:2px dashed var(--line);margin-bottom:11px}.topbar>a,.topbar>button{min-height:44px;display:flex;align-items:center;padding:8px 0;border:0;background:none;color:var(--muted);font:900 10px inherit;letter-spacing:.07em;text-decoration:none;cursor:pointer}.topbar>button{justify-content:flex-end}.topbar>a:hover,.topbar>a:focus-visible,.topbar>button:hover,.topbar>button:focus-visible{color:var(--coral);outline:none}.brand{text-align:center;min-width:0}.brand h1{margin:0;font-size:clamp(17px,4vw,24px);font-weight:950;letter-spacing:.07em;line-height:1;white-space:nowrap;transform:rotate(-1deg)}.brand span{display:block;margin-top:5px;color:var(--muted);font-size:8px;font-weight:900;letter-spacing:.08em;white-space:nowrap}.hud{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:0 auto 9px;width:min(100%,800px)}.hud>div{min-width:0;padding:8px 10px;border:2px solid var(--ink);border-radius:12px 10px 14px 11px;background:var(--panel);box-shadow:2px 3px var(--shadow);display:flex;flex-direction:column;gap:3px}.hud span{color:var(--muted);font-size:8px;font-weight:900;letter-spacing:.08em}.hud b{font-size:14px;line-height:1}.hud>div:nth-child(1) b{color:var(--coral)}.hud>div:nth-child(2) b{color:var(--purple)}.hud>div:nth-child(3) b{color:var(--accent)}.hud>div:nth-child(4) b{color:var(--yellow)}.screen{position:relative;width:min(100%,800px);margin:auto;padding:5px;border:3px solid var(--ink);border-radius:23px 19px 26px 20px;background:var(--paper);box-shadow:7px 8px var(--shadow);transform:rotate(.15deg)}.screen canvas{display:block;width:100%;height:auto;aspect-ratio:4/3;border-radius:15px 12px 18px 14px;background:var(--space);touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.overlay{position:absolute;inset:5px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;padding:22px;border-radius:15px 12px 18px 14px;background:color-mix(in srgb,var(--paper) 92%,transparent);text-align:center}.overlay.hidden{display:none}.overlay-spark{color:var(--coral);font-size:40px;line-height:1;transform:rotate(12deg)}.overlay b{font-size:clamp(25px,6vw,40px);font-weight:950;letter-spacing:.05em;line-height:1}.overlay span{max-width:300px;color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.08em;line-height:1.5}.overlay button{min-height:48px;padding:12px 21px;border:2px solid var(--ink);border-radius:15px 11px 17px 12px;background:var(--yellow);color:var(--ink);box-shadow:3px 4px var(--ink);cursor:pointer;font:950 11px inherit;letter-spacing:.08em}.overlay button:hover,.overlay button:focus-visible{background:var(--mint);outline:none}.telemetry{display:grid;grid-template-columns:repeat(3,1fr);width:min(100%,800px);margin:0 auto;border:2px solid var(--ink);border-top:0;border-radius:0 0 12px 12px;background:var(--panel)}.telemetry span{display:flex;justify-content:space-between;gap:8px;padding:8px 10px;color:var(--muted);font-size:8px;font-weight:900;letter-spacing:.07em}.telemetry span+span{border-left:1px dashed var(--line)}.telemetry b{color:var(--ink)}.controls{display:grid;grid-template-columns:1fr 2fr 1fr;gap:8px;width:min(100%,800px);margin:13px auto 0}.controls button{min-height:54px;border:2px solid var(--ink);border-radius:14px 10px 16px 11px;background:var(--panel);color:var(--ink);box-shadow:2px 3px var(--shadow);cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font:950 20px inherit}.controls button span{color:var(--muted);font-size:8px;letter-spacing:.08em}.controls button:hover,.controls button:focus-visible,.controls button.active{background:var(--mint);outline:none}.controls button:active{transform:translate(2px,2px);box-shadow:1px 2px var(--shadow)}.tips{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 16px;margin:12px auto 0;color:var(--muted);font-size:8px;font-weight:900;letter-spacing:.07em;text-align:center}.tips span:before{content:"✦";color:var(--coral);margin-right:4px}footer{margin-top:11px;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.07em;line-height:1.5;text-align:center}@media(max-width:520px){.page{padding:10px 10px max(18px,env(safe-area-inset-bottom))}.topbar{min-height:54px;gap:4px}.brand h1{font-size:17px}.brand span{font-size:6px;letter-spacing:.04em}.topbar>a,.topbar>button{font-size:8px}.hud{gap:5px}.hud>div{padding:7px 5px;border-width:1.5px;box-shadow:1px 2px var(--shadow)}.hud span{font-size:6px}.hud b{font-size:11px}.screen{border-width:2px;border-radius:18px 15px 21px 16px;box-shadow:5px 6px var(--shadow)}.screen canvas,.overlay{border-radius:11px 9px 14px 10px}.overlay{inset:4px}.overlay b{font-size:25px}.overlay span{font-size:8px}.telemetry span{padding:7px 5px;font-size:7px}.controls{gap:6px}.controls button{min-height:50px;font-size:18px}.tips{font-size:7px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
