:root{--bg:#faf8f4;--card:#fff;--ink:#1f2430;--muted:#8a8f9c;--accent:#2f6fed;--accent-ink:#fff;--good:#1fa860;--bad:#d94f4f;--warn:#e8a020;--tile:#fff;--tile-border:#d8d4cc;--slot:#efece6;--shadow:0 1px 3px #1e1e2814;--radius:12px}@media (prefers-color-scheme:dark){:root{--bg:#171a21;--card:#1f242e;--ink:#e8eaf0;--muted:#8a8f9c;--tile:#2a303c;--tile-border:#3a4150;--slot:#242a35;--shadow:0 1px 3px #00000059}}:root[data-theme=light]{--bg:#faf8f4;--card:#fff;--ink:#1f2430;--tile:#fff;--tile-border:#d8d4cc;--slot:#efece6;--shadow:0 1px 3px #1e1e2814}:root[data-theme=dark]{--bg:#171a21;--card:#1f242e;--ink:#e8eaf0;--tile:#2a303c;--tile-border:#3a4150;--slot:#242a35;--shadow:0 1px 3px #00000059}:root[data-contrast=high]{--bg:#fff;--card:#fff;--ink:#000;--muted:#3d4250;--accent:#1a4fd6;--accent-ink:#fff;--good:#0d7a42;--bad:#b91c1c;--warn:#a16207;--tile:#fff;--tile-border:#000;--slot:#fff;--shadow:0 0 0 1px #000}@media (prefers-color-scheme:dark){:root[data-contrast=high]{--bg:#000;--card:#000;--ink:#fff;--muted:#c2c7d4;--accent:#7aa5ff;--accent-ink:#000;--good:#2ee585;--bad:#ff7070;--warn:#ffc24d;--tile:#000;--tile-border:#fff;--slot:#000;--shadow:0 0 0 1px #fff}}:root[data-contrast=high][data-theme=light]{--bg:#fff;--card:#fff;--ink:#000;--muted:#3d4250;--accent:#1a4fd6;--accent-ink:#fff;--good:#0d7a42;--bad:#b91c1c;--warn:#a16207;--tile:#fff;--tile-border:#000;--slot:#fff;--shadow:0 0 0 1px #000}:root[data-contrast=high][data-theme=dark]{--bg:#000;--card:#000;--ink:#fff;--muted:#c2c7d4;--accent:#7aa5ff;--accent-ink:#000;--good:#2ee585;--bad:#ff7070;--warn:#ffc24d;--tile:#000;--tile-border:#fff;--slot:#000;--shadow:0 0 0 1px #fff}:root[data-contrast=high] .tile.used{opacity:.45}:root[data-contrast=high] .slot.win{color:var(--bg)!important}:root[data-contrast=high] .distbar.hl{color:var(--bg)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{overflow-x:hidden}body{background:var(--bg);color:var(--ink);flex-direction:column;align-items:center;min-height:100dvh;margin:0;font-family:"Baloo 2",-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;display:flex;overflow-x:hidden}@media (width<=640px){body{justify-content:center}}button{font-family:inherit}main{flex-direction:column;align-items:center;width:100%;max-width:560px;padding:16px;display:flex}header{text-align:center;width:100%;max-width:560px;padding:14px 16px 0}h1{letter-spacing:1px;-webkit-user-select:none;user-select:none;margin:0;font-size:30px;font-weight:700}h1 .n{color:var(--accent);display:inline-block;transform:rotate(-2deg)}.sub{color:var(--muted);margin-top:4px;font-size:13px}.screen{width:100%}.hidden{display:none!important}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.input-lock{pointer-events:none}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);margin-top:16px;padding:20px}.btn{cursor:pointer;background:var(--accent);color:var(--accent-ink);border:none;border-radius:10px;padding:12px 20px;font-size:16px;font-weight:600;transition:transform 50ms;display:inline-block}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:default}.btn.sec{color:var(--accent);border:2px solid var(--accent);background:0 0}.btn.wa{background:#25d366}.btn.full{width:100%;margin-top:10px}.modebox{text-align:center;margin-top:18px}.modebox p{color:var(--muted);font-size:15px;line-height:1.5}.modebox .endgrid{justify-content:center}.dots{grid-template-columns:repeat(5,30px);justify-content:center;gap:9px;margin:14px 0 4px;display:grid}.dot{background:var(--slot);border:1px solid var(--tile-border);border-radius:9px;width:30px;height:30px}.dot.ok{background:var(--good);border-color:var(--good)}.dot.late{background:var(--warn);border-color:var(--warn)}.dot.miss{background:var(--bad);border-color:var(--bad)}.dot.cur{border:2px solid var(--accent)}.topbar{color:var(--muted);justify-content:center;align-items:center;margin-top:10px;font-size:14px;display:flex}.timerring{width:58px;height:58px;margin:12px auto 0;position:relative}.timerring svg{width:100%;height:100%;transform:rotate(-90deg)}.ringbg{fill:none;stroke:var(--slot);stroke-width:5px}.ringfg{fill:none;stroke:var(--accent);stroke-width:5px;stroke-linecap:round;stroke-dasharray:125.66;transition:stroke-dashoffset .1s linear,stroke .3s}.ringfg.low{stroke:var(--bad)}.timenum{font-variant-numeric:tabular-nums;justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex;position:absolute;inset:0}.slots,.tiles{flex-wrap:nowrap;justify-content:center;gap:6px;margin-top:20px;display:flex}.slot,.tile{text-transform:uppercase;border-radius:8px;justify-content:center;align-items:center;font-weight:700;display:flex}.slots>.slot,.tiles>.tile{--tile-min:32px;--tile-max:44px;min-width:var(--tile-min);max-width:var(--tile-max);aspect-ratio:44/52;flex:1 1 0;height:auto;font-size:clamp(18px,5.5vw,24px)}@media (width<=359px){.slots,.tiles{gap:4px}.slots>.slot,.tiles>.tile{--tile-min:28px}}.slot{background:var(--slot);border:2px solid var(--tile-border)}.slot.filled{border-color:var(--accent);background:var(--card);cursor:pointer}.tile{background:var(--tile);border:2px solid var(--tile-border);color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom-width:4px}.tile.used{opacity:.25}.tile.pressed{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 16%, var(--tile));transition:transform 60ms;transform:scale(.9)translateY(1px)}.slot.filled.pressed{background:color-mix(in srgb, var(--accent) 18%, var(--card));transition:transform 60ms;transform:scale(.93)}.actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:18px;display:flex}.abtn{background:var(--slot);color:var(--ink);cursor:pointer;border:none;border:1px solid var(--tile-border);border-radius:10px;padding:10px 14px;font-size:14px;font-weight:600}.abtn:disabled{opacity:.45;cursor:default}.abtn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}#btn-shuffle,#btn-back{min-width:118px}.msg{text-align:center;min-height:22px;margin-top:12px;font-size:15px;font-weight:600}.msg.good{color:var(--good)}.msg.bad{color:var(--bad)}.shake{animation:.35s shake}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-5px)}80%{transform:translate(5px)}}.screen{animation:.25s fadein}@keyframes fadein{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.tile.anim{animation:.3s backwards tilein}@keyframes tilein{0%{opacity:0;transform:translateY(12px)scale(.85)}to{opacity:1;transform:none}}.slot.pop{animation:.18s slotpop}@keyframes slotpop{50%{transform:scale(1.18)}}.slot.win{transition:background-color .4s,border-color .4s,color .4s;animation:.55s backwards winbounce;background:var(--good)!important;border-color:var(--good)!important;color:#fff!important}@keyframes winbounce{0%{transform:none}35%{transform:translateY(-12px)scale(1.1)}70%{transform:translateY(2px)}to{transform:none}}.slot.border-win{transition:border-color .35s;border-color:var(--good)!important}.slot.border-win-alt{transition:border-color .35s;border-color:var(--accent)!important}.slot.win-alt{transition:background-color .4s,border-color .4s,color .4s;animation:.55s backwards winbounce;background:var(--card)!important;border-color:var(--accent)!important;color:var(--accent)!important}.slot.err{border-color:var(--bad);background:color-mix(in srgb, var(--bad) 12%, var(--slot))}.msg.good{animation:.35s msgpop}@keyframes msgpop{0%{opacity:0;transform:scale(.6)}60%{transform:scale(1.15)}to{transform:scale(1)}}.dot.ok,.dot.late,.dot.miss{animation:.35s dotpop}@keyframes dotpop{50%{transform:scale(1.45)}}.bigscore{animation:.55s cubic-bezier(.2,1.6,.4,1) backwards scorein}@keyframes scorein{0%{opacity:0;transform:scale(.3)}}.endgrid .dot{animation:.35s backwards dotpop}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.endcard{text-align:center}.endcard h2{margin:4px 0 2px;font-size:24px}.bigscore{margin:6px 0;font-size:44px;font-weight:800}.reveal{color:var(--muted);margin:8px 0;font-size:15px}.reveal b{color:var(--ink);text-transform:uppercase;letter-spacing:1px}.endgrid{margin:14px 0}.btn.play{letter-spacing:1px;background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 88%, #fff), var(--accent));box-shadow:0 4px 12px color-mix(in srgb, var(--accent) 40%, transparent), inset 0 -3px 0 #0000002e;border-radius:14px;padding:16px 24px;font-size:22px;transition:transform 80ms,box-shadow 80ms}.btn.play:hover{transform:translateY(-1px)}.btn.play:active{box-shadow:0 2px 6px color-mix(in srgb, var(--accent) 30%, transparent), inset 0 -1px 0 #0000002e;transform:translateY(1px)}.arch,.howto,.privacy{margin-top:14px}details.arch summary,details.howto summary,details.privacy summary{cursor:pointer;color:var(--muted);align-items:center;gap:8px;font-size:15px;font-weight:600;list-style:none;display:flex}details.arch summary::-webkit-details-marker{display:none}details.howto summary::-webkit-details-marker{display:none}details.privacy summary::-webkit-details-marker{display:none}.summary-icon{flex-shrink:0;font-size:17px}.summary-title{flex:1}details.arch summary:after,details.howto summary:after,details.privacy summary:after{content:"▸";flex-shrink:0;font-size:20px;line-height:1;transition:transform .15s}details.arch[open] summary:after,details.howto[open] summary:after,details.privacy[open] summary:after{transform:rotate(90deg)}details.arch[open] summary,details.howto[open] summary,details.privacy[open] summary{margin-bottom:10px}.howto-list{text-align:left;color:var(--muted);margin:0;padding-left:20px;font-size:14px;line-height:1.6}.howto-list li{margin-bottom:8px}.howto-list li:last-child{margin-bottom:0}.howto-list b{color:var(--ink)}.tt{text-underline-offset:3px;cursor:help;-webkit-text-decoration:underline dashed;text-decoration:underline dashed}#tt-bubble{background:var(--ink);width:max-content;max-width:min(240px,100vw - 16px);color:var(--bg);text-align:center;opacity:0;pointer-events:none;z-index:1000;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:600;line-height:1.4;transition:opacity .15s;position:fixed}#tt-bubble.show{opacity:1}#debug-popover{z-index:2000;background:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.debug-card{text-align:center;width:100%;max-width:320px}.debug-card h3{margin:0 0 12px;font-size:15px}.debug-row{justify-content:center;align-items:center;gap:8px;margin:12px 0;font-size:13px;display:flex}.debug-row input{border:1px solid var(--tile-border);background:var(--slot);width:50px;color:var(--ink);border-radius:6px;padding:4px 6px;font-family:inherit;font-size:13px}.debug-row input:disabled{opacity:.45}.debug-row label:has(input:disabled){opacity:.45}#dbg-reveal{margin-top:4px}#dbg-close{margin-top:14px}.kbhint{text-align:center;color:var(--muted);margin-top:10px;font-size:12px;display:none}@media (hover:hover) and (pointer:fine){.kbhint{display:block}}.card h3{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;text-align:center;margin:16px 0 8px;font-size:14px;font-weight:700}.statrow{justify-content:center;gap:8px;display:flex}.statc{text-align:center;flex:1}.statnum{font-size:26px;font-weight:800}.statnum.timer{font-variant-numeric:tabular-nums;font-size:20px}.statlabel{color:var(--muted);font-size:11px;line-height:1.3}.distrow{align-items:center;gap:8px;margin:3px 0;display:flex}.distlabel{text-align:right;width:22px;color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}.distgraph{flex:1}.distbar{background:var(--tile-border);text-align:right;min-width:18px;color:var(--ink);border-radius:4px;padding:2px 6px;font-size:12px;font-weight:700}.distbar.hl{background:var(--good);color:#fff}.archlist{flex-direction:column;gap:6px;max-height:320px;display:flex;overflow-y:auto}.archrow{background:var(--slot);border:1px solid var(--tile-border);color:var(--ink);border-radius:8px;align-items:center;gap:10px;padding:9px 12px;font-size:14px;text-decoration:none;display:flex}.archrow.cur{border-color:var(--accent)}.archrow .n{color:var(--muted);text-align:left;min-width:36px;font-weight:700}.archrow .dt{text-align:left;flex:1}.archrow .res{font-weight:700}.archrow .res.win{color:var(--good)}.archrow .res.play{color:var(--accent)}.pwa-invite{text-align:center}.pwa-lead,.pwa-ios{color:var(--muted);margin:8px 0 0;font-size:14px;line-height:1.5}.pwa-ios b{color:var(--ink)}#ad-slot{width:100%;min-height:0;margin-top:16px}footer{width:100%;max-width:560px;color:var(--muted);text-align:center;margin:22px 0 30px;padding:0 16px;font-size:13px;line-height:1.8}body.in-game footer{display:none}.contact{margin-top:8px}.theme-picker{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:10px;display:flex}.theme-btn{border:1px solid var(--tile-border);background:var(--slot);color:var(--muted);cursor:pointer;border-radius:8px;padding:5px 9px;font-family:inherit;font-size:12px;font-weight:600;text-decoration:none;display:inline-block}.buildinfo{opacity:.5;margin-top:8px;font-size:11px}footer a{color:var(--accent);text-decoration:none}.e404{text-align:center}.e404emoji{font-size:56px;line-height:1}.e404 h2{margin:6px 0 2px;font-size:22px}.e404 p{color:var(--muted);margin:4px 0 0;font-size:15px}.egg{text-align:center}.egg-hint{color:var(--muted);margin:0 0 4px;font-size:13px}#intro-overlay{z-index:1000;background:var(--bg);cursor:pointer;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#intro-overlay.intro-rise{opacity:0;transition:opacity .5s}.intro-hero{--cell:clamp(26px, 9.2vw - 6px, 40px);box-sizing:border-box;flex-direction:column;align-items:center;gap:10px;max-width:100%;padding:0 16px;transition:transform .5s cubic-bezier(.2,1.6,.4,1),opacity .4s;display:flex}#intro-overlay.intro-rise .intro-hero{opacity:0;transform:translateY(-42vh)scale(.5)}.intro-slots,.intro-tiles{flex-wrap:wrap;justify-content:center;gap:4px;display:flex}.slot.intro-slot,.tile.intro-tile{width:var(--cell);height:calc(var(--cell) * 1.22);font-size:calc(var(--cell) * .56);text-transform:none;cursor:default}.slot.intro-slot.filled{border-color:var(--accent);background:var(--card);color:var(--accent)}.intro-slots>.slot:nth-child(n+3).filled{border-color:var(--accent);background:var(--accent);color:#fff}.intro-hint{text-align:center;color:var(--muted);font-size:12px;position:absolute;bottom:24px;left:0;right:0}.intro-skip{background:var(--slot);color:var(--muted);border:1px solid var(--tile-border);cursor:pointer;border-radius:20px;padding:7px 14px;font-family:inherit;font-size:13px;font-weight:600;position:absolute;top:16px;right:16px}.intro-cursor{z-index:1001;pointer-events:none;opacity:0;transition:left .13s,top .13s,opacity .2s;position:fixed;top:0;left:0}.intro-cursor.show{opacity:1}.intro-cursor-glyph{filter:drop-shadow(0 2px 3px #00000059);font-size:26px;line-height:1;display:block}.intro-cursor.mouse .intro-cursor-glyph{translate:-4px -3px}.intro-cursor.touch .intro-cursor-glyph{font-size:30px;translate:-50% -8%}.intro-cursor-glyph.click{animation:.18s introclick}@keyframes introclick{50%{scale:.72}}
