@font-face{font-family:Lora;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/lora-latin-600-normal-B-3RcLOQ.woff2)format("woff2")}@font-face{font-family:Lora;font-style:italic;font-weight:600;font-display:swap;src:url(/assets/lora-latin-600-italic-DAEba4jb.woff2)format("woff2")}@font-face{font-family:Lora;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/lora-latin-700-normal-BHK4Pzk4.woff2)format("woff2")}@font-face{font-family:Inter Variable;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations")}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#e1ddd0;--panel:#fdfcfa;--panel-edge:#e4ded2;--ink:#2a2723;--ink-2:#4d4842;--ink-3:#7a746b;--sage:#5b8a6a;--sage-deep:#4a7558;--red:#c9413b;--red-ink:#b3342e;--cord:#70563c;--focus:#5b8a6a8c;--shadow:0 6px 20px #3c2e1a29, 0 1px 3px #3c2e1a1a;--shadow-sm:#3c2e1a24;--fabric:url(/linen.webp);--on-sage:#fbfaf5;--banner-halo:#fffcf4e6;--veil:#2a221847;--track:#ddd6c9;--knob:#fffdf8;--hint-bg:#f4f0e7;--radius:16px;--display:"Lora", Georgia, "Times New Roman", serif;--body:"Inter Variable", Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px)}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#47362a;--fabric:url(/linen-dark.webp);--panel:#2f241c;--panel-edge:#4a3a2d;--ink:#f2e9dc;--ink-2:#d6c7b3;--ink-3:#a8957f;--sage:#6f9e7c;--sage-deep:#557e62;--red:#dc4c40;--red-ink:#f08070;--cord:#d6c2a0;--focus:#96c8a58c;--shadow:0 6px 22px #0a060273, 0 1px 3px #0a060259;--shadow-sm:#0a060266;--on-sage:#fbf6ec;--banner-halo:#140c06d9;--veil:#0c080480;--track:#5a4838;--knob:#f2e9dc;--hint-bg:#3a2d23}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{overscroll-behavior:none;background:var(--page) var(--fabric) repeat;height:100%;color:var(--ink);font:15px/1.4 var(--body);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background-size:160px 160px;margin:0;transition:background-color .3s;overflow:hidden}html.fading body{opacity:0;transition:opacity .35s}#app{padding:calc(var(--safe-t) + 8px) max(14px, var(--safe-r)) calc(var(--safe-b) + 10px) max(14px, var(--safe-l));touch-action:none;grid-template-rows:auto minmax(0,1fr) auto auto;max-width:560px;margin:0 auto;display:grid;position:fixed;inset:0}.hud{grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;min-height:48px;display:grid}.stat{flex-direction:column;gap:3px;display:flex}.stat.best{align-items:center}.label{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);font-size:10.5px;font-weight:600}.stat canvas{display:block}.hud-end{justify-self:end}.icon-btn{border:1px solid var(--panel-edge);background:var(--panel);width:44px;height:44px;color:var(--ink-2);box-shadow:var(--shadow);cursor:pointer;border-radius:14px;place-items:center;display:grid;position:relative}.icon-btn:after,.btn:after,.card:after,.sheet-panel:after{content:"";border-radius:inherit;opacity:.22;pointer-events:none;border:1.5px dashed;position:absolute;inset:4px}.icon-btn:active{box-shadow:0 2px 6px var(--shadow-sm);transform:translateY(1px)}.icon-btn svg{width:20px;height:20px}.stage{place-items:center;min-height:0;display:grid;position:relative}.board{position:relative}.board>canvas{position:absolute;inset:0}.banner{text-align:center;pointer-events:none;font-family:var(--display);color:var(--red-ink);text-shadow:0 1px 0 var(--banner-halo);font-style:italic;font-weight:600;line-height:1.1;position:absolute;left:0;right:0;transform:translateY(-50%)}.banner small{font-family:var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin-bottom:2px;font-size:.55em;font-style:normal;display:block}.shelf{grid-template-columns:1fr auto 1fr;align-items:center;min-height:34px;padding:2px 6px 0;display:grid}.shelf canvas{display:block}.shelf .items{justify-self:end}.level{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:11px;font-weight:600}.pad-wrap{place-items:center;padding-top:4px;display:grid}.pad-wrap[hidden]{display:none}.dpad{touch-action:none;display:block}.card{background:var(--panel);border-radius:var(--radius);width:min(300px,82%);box-shadow:var(--shadow);color:var(--ink);text-align:center;flex-direction:column;gap:12px;padding:22px 20px 18px;animation:.42s cubic-bezier(.2,.9,.3,1.15) both settle;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.card:after{color:var(--cord);opacity:.35}.card h1,.card h2{font-family:var(--display);text-wrap:balance;letter-spacing:-.01em;margin:0;font-weight:700}.card h1{font-size:34px;line-height:1.05}.card h2{font-size:26px}.card p{color:var(--ink-2);text-wrap:balance;margin:0}.card .fine{color:var(--ink-3);font-size:12.5px}.card .score{justify-content:center;padding:2px 0;display:flex}.card .new{font-family:var(--display);color:var(--red-ink);font-style:italic}.row{gap:10px;display:flex}.row>*{flex:1}@keyframes settle{0%{opacity:0;transform:translate(-50%,-46%)scale(.96)}}.btn{appearance:none;border:1px solid var(--panel-edge);background:var(--panel);color:var(--ink);font:600 15px/1 var(--body);cursor:pointer;min-height:48px;box-shadow:0 1px 2px var(--shadow-sm);border-radius:14px;padding:0 18px;transition:transform 80ms;position:relative}.btn:active{transform:translateY(1px)scale(.99)}.btn.primary{background:var(--sage);border-color:var(--sage-deep);color:var(--on-sage);box-shadow:0 3px 0 var(--sage-deep), 0 6px 14px #4a75584d}.btn.primary:after{opacity:.5}.btn.primary:active{box-shadow:0 1px 0 var(--sage-deep), 0 3px 8px #4a755840;transform:translateY(2px)}.btn.quiet{box-shadow:none;color:var(--ink-2);background:0 0;border-color:#0000}.btn.quiet:after{display:none}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.sheet{z-index:10;background:var(--veil);touch-action:none;justify-content:center;align-items:flex-end;animation:.2s both fade;display:flex;position:fixed;inset:0}.sheet-panel{background:var(--panel);width:min(560px,100%);box-shadow:0 -8px 30px var(--shadow-sm);padding:22px max(20px, var(--safe-r)) calc(var(--safe-b) + 18px) max(20px, var(--safe-l));border-radius:22px 22px 0 0;flex-direction:column;gap:14px;animation:.32s cubic-bezier(.2,.9,.3,1) both rise;display:flex;position:relative}.sheet-panel:after{color:var(--cord);border-bottom:0;border-radius:18px 18px 0 0;inset:6px 6px 0}.sheet h2{font:700 24px/1.1 var(--display);margin:0}.toggles{border-top:1px solid var(--panel-edge);flex-direction:column;display:flex}.toggle{border-bottom:1px solid var(--panel-edge);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;min-height:52px;display:flex}.toggle input{appearance:none;background:var(--track);cursor:pointer;border-radius:14px;flex:none;width:46px;height:28px;margin:0;transition:background .18s;position:relative}.toggle input:before{content:"";background:var(--knob);width:22px;height:22px;box-shadow:0 1px 3px var(--shadow-sm);border-radius:50%;transition:transform .18s cubic-bezier(.3,.9,.4,1.2);position:absolute;top:3px;left:3px}.toggle input:checked{background:var(--sage)}.toggle input:checked:before{transform:translate(18px)}.choice{border-bottom:1px solid var(--panel-edge);justify-content:space-between;align-items:center;gap:12px;min-height:56px;display:flex}.choice .sub{color:var(--ink-3);font-size:12px;display:block}.seg{background:var(--track);border-radius:12px;flex:none;gap:2px;padding:3px;display:flex}.seg button{appearance:none;color:var(--ink-2);font:600 13px/1 var(--body);cursor:pointer;background:0 0;border:0;border-radius:9px;padding:9px 11px}.seg button[aria-pressed=true]{background:var(--panel);color:var(--ink);box-shadow:0 1px 3px var(--shadow-sm)}.hint{color:var(--ink-2);background:var(--hint-bg);border-radius:12px;padding:10px 12px;font-size:13px}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(100%)}}@media (prefers-reduced-motion:reduce){.card,.sheet,.sheet-panel{animation:none}}@media (pointer:fine){#app{padding-top:calc(var(--safe-t) + 18px);padding-bottom:24px}}
