:root{--casing:#2b2e33;--casing-raised:#363a40;--casing-line:#4a4f57;--bezel:#1f2226;--lcd:#b9c7a6;--lcd-ink:#1e2a1c;--text:#d5d8dc;--text-strong:#f0f2f4;--text-soft:#959ba3;--amber:#f0a630;--amber-hover:#f6b958;--led-green:#5cc971;--led-red:#e5534b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--casing);color:var(--text);margin:0;font:17px/1.55 Onest,system-ui,-apple-system,Segoe UI,sans-serif}.app{max-width:1000px;margin:0 auto;padding:20px 16px 48px}.top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;margin-bottom:18px;display:flex}.logo{color:var(--lcd);margin:0;font:22px/1 "Press Start 2P",Courier New,monospace}.status-block{text-align:right}.status{color:var(--text-strong);justify-content:flex-end;align-items:center;gap:10px;margin:0;font-weight:500;display:flex}.quality{min-height:1.4em;color:var(--text-soft);margin:2px 0 0;font-size:15px}.led{background:var(--text-soft);border-radius:50%;flex:none;width:12px;height:12px}.led[data-state=ok]{background:var(--led-green);box-shadow:0 0 10px var(--led-green)}.led[data-state=wait]{background:var(--amber);box-shadow:0 0 10px var(--amber);animation:1.4s ease-in-out infinite blink}.led[data-state=bad]{background:var(--led-red);box-shadow:0 0 10px var(--led-red)}@keyframes blink{50%{opacity:.35}}.invite{border:1px solid var(--amber);background:var(--casing-raised);border-radius:12px;margin-bottom:18px;padding:16px 18px}.invite p{color:var(--text-strong);margin:0 0 10px}.invite-row{flex-wrap:wrap;gap:10px;display:flex}.invite input{border:1px solid var(--casing-line);background:var(--bezel);min-width:0;color:var(--text);border-radius:10px;flex:260px;padding:12px 14px;font:15px/1.2 Onest,system-ui,sans-serif}.screen{background:var(--bezel);border-radius:16px;max-width:calc(67.5556vh + 28px);margin:0 auto;padding:14px;position:relative;box-shadow:inset 0 3px 8px #0000008c,0 1px #ffffff0d}body[data-step=play] .screen{max-width:calc(138.667vh + 28px)}.screen canvas{background:var(--lcd);border-radius:4px;width:100%;height:auto;display:block}.screen:after{content:"";pointer-events:none;background-image:linear-gradient(#1e2a1c12 1px,#0000 1px),linear-gradient(90deg,#1e2a1c12 1px,#0000 1px);background-size:4px 4px;border-radius:4px;position:absolute;inset:14px;box-shadow:inset 0 0 48px #1e2a1c47}.panel{max-width:640px;margin:22px auto 0}h2{color:var(--text-strong);margin:0 0 10px;font-size:27px;font-weight:700;line-height:1.25}p{margin:0 0 14px}.howto{margin:0 0 16px;padding-left:1.3em}.howto li{margin-bottom:6px}.finding{color:var(--text-soft);font-weight:500}.finding[data-found]{color:var(--led-green)}.sweep-hint{color:var(--text-strong);font-weight:500}.sweep-hint[data-done]{color:var(--led-green);font-weight:500}.actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:20px;display:flex}.actions-secondary{gap:4px 16px;margin-top:6px}.btn{border:1px solid var(--casing-line);background:var(--casing-raised);min-height:48px;color:var(--text-strong);cursor:pointer;border-radius:999px;padding:13px 22px;font:500 17px/1.2 Onest,system-ui,sans-serif}.btn:hover:not(:disabled){border-color:var(--text-soft)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:default}.btn-primary{border-color:var(--amber);background:var(--amber);color:#1d1606;font-weight:700}.btn-primary:hover:not(:disabled){border-color:var(--amber-hover);background:var(--amber-hover)}.btn-quiet{color:var(--text-soft);text-underline-offset:3px;background:0 0;border-color:#0000;padding-inline:8px;text-decoration:underline}.btn-quiet:hover:not(:disabled){color:var(--text-strong);border-color:#0000}:focus-visible{outline:3px solid var(--amber);outline-offset:3px}.foot{max-width:640px;color:var(--text-soft);margin:40px auto 0;font-size:14px}.foot summary{cursor:pointer}.foot pre{background:var(--bezel);white-space:pre-wrap;border-radius:8px;padding:10px 12px;font-size:12px;line-height:1.5;overflow-x:auto}@media (width<=560px){.logo{font-size:16px}h2{font-size:23px}.status-block{text-align:left}.status{justify-content:flex-start}.screen{border-radius:12px;padding:8px}.screen:after{inset:8px}}@media (prefers-reduced-motion:reduce){.led[data-state=wait]{animation:none}}
