:root{--bg:#faf6ef;--ink:#2b2119;--accent:#f03c28;--line:#e8e0d2;--dim:#8a7a66;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);height:100%;color:var(--ink);overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;margin:0;font-family:Space Grotesk,system-ui,-apple-system,sans-serif}#stage{place-items:center;display:grid;position:fixed;inset:0}#game{place-items:center;width:100%;height:100%;display:grid}#game canvas{border-radius:14px;display:block;box-shadow:0 18px 50px #2b211924}#hud{top:calc(10px + var(--safe-t));pointer-events:none;font-variant-numeric:tabular-nums;justify-content:space-between;padding:0 16px;display:flex;position:absolute;left:0;right:0}#hud button{pointer-events:auto}.score{font-size:28px;font-weight:700}.len{color:var(--dim);margin-left:8px}.hud-right{align-items:center;gap:8px;display:flex}#hud-time{color:var(--dim);font-size:20px;font-weight:600}#hud-time.low{color:var(--accent)}.screen{background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);place-items:center;padding:16px;display:grid;position:absolute;inset:0}.screen[hidden]{display:none}.panel{touch-action:pan-y;border:1px solid var(--line);width:min(420px,92vw);max-height:92dvh;padding:26px 24px calc(26px + var(--safe-b));text-align:center;background:#fff;border-radius:22px;overflow:auto;box-shadow:0 24px 60px #2b211929}h1{letter-spacing:-1px;margin:0 0 4px;font-size:44px}h1 span{color:var(--accent)}h2{margin:0 0 10px;font-size:30px}.tagline{color:var(--dim);margin:0 0 6px}.best{min-height:1em;margin:0 0 18px;font-weight:600}.final{margin:4px 0 2px;font-size:22px;font-weight:700}.rank{color:var(--dim);margin:0 0 16px}button{font:inherit;border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:14px;padding:12px 22px;font-weight:600;transition:transform .12s ease-out,background .12s}button:active{transform:scale(.96)}button.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}button.primary:hover{background:#3d3126}button.ghost{background:0 0}button.small{padding:9px 16px;font-size:14px}.row{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin:14px 0;display:flex}.toggle{color:var(--dim);align-items:center;gap:8px;font-size:14px;display:flex}.hint{color:var(--dim);margin:10px 0 0;font-size:13px}form#board-form{text-align:left;border-top:1px solid var(--line);margin-top:18px;padding-top:16px}.form-title{text-align:center;margin:0 0 10px;font-weight:700}input[type=text],input[type=email]{font:inherit;border:1px solid var(--line);background:var(--bg);border-radius:12px;width:100%;margin-bottom:8px;padding:11px 13px}.consent{color:var(--dim);text-align:left;gap:8px;margin:4px 0 12px;font-size:12.5px;display:flex}.consent input{margin-top:2px}.msg{text-align:center;font-size:13px}.msg.ok{color:#1d7a3e}.msg.err{color:var(--accent)}#board-list{color:var(--ink);margin:0;padding:0 0 0 22px}#board-list li{padding:3px 0;font-size:14px}#board-list li b{color:var(--accent)}.pitch{color:var(--dim);margin:18px 0 0;font-size:13px}.pitch a{color:var(--ink)}#toast{bottom:calc(18px + var(--safe-b));background:var(--ink);color:var(--bg);z-index:10;border-radius:12px;padding:10px 18px;font-size:14px;position:absolute;left:50%;transform:translate(-50%)}@media (height<=560px){h1{font-size:32px}.panel{padding:16px}}
