:root{--paper:#fbf6ec;--paper-2:#f3e9d6;--ink:#1f2433;--ink-soft:#5b6072;--line:#2a3042;--word:#cfe3ff;--sel:#ffd45c;--green:#3a9d5d;--red:#d64545;--blue:#3c6fd8;--gold:#f2b53a;--cell:64px;--key:50px;--radius:14px;--shadow:0 2px 0 #1f24332e, 0 10px 24px #50320a29;--font:ui-rounded, "SF Pro Rounded", "Segoe UI", system-ui, -apple-system, Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background-color:var(--paper-2);height:100%;color:var(--ink);font-family:var(--font);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation;margin:0;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}button:focus-visible{outline:3px solid var(--blue);outline-offset:2px}#game{justify-content:center;display:flex;position:fixed;inset:0}#game:before{content:"";background:var(--backdrop,none) center / cover no-repeat;position:absolute;inset:0}.screen{padding:0 12px calc(10px + env(safe-area-inset-bottom));flex-direction:column;align-items:center;animation:.22s ease-out screen-in;display:flex;position:absolute;inset:0}.screen[hidden]{display:none}@keyframes screen-in{0%{opacity:0;transform:translateY(8px)}}.loading[hidden]{display:none}.loading{color:var(--ink-soft);place-items:center;margin:0;font-weight:700;display:grid;position:absolute;inset:0}.ico{vertical-align:middle;background:50%/contain no-repeat;flex:none;width:1.5em;height:1.5em;display:inline-block}.ico-coin{background-image:var(--i-coin)}.ico-ghost{background-image:var(--i-ghost)}.ico-flame{background-image:var(--i-flame)}.ico-calendar{background-image:var(--i-calendar)}.card{background:var(--paper);border:2px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.primary,.secondary,.toggle{border:2px solid var(--line);min-height:52px;box-shadow:0 3px 0 var(--line);border-radius:999px;padding:0 22px;font-size:17px;font-weight:800;transition:transform 80ms}.primary{background:linear-gradient(#ffe07a,#ffc93a)}.secondary{background:var(--paper)}.primary:active,.secondary:active,.toggle:active{box-shadow:0 1px 0 var(--line);transform:translateY(2px)}.big{width:100%;min-height:58px;font-size:19px}.wide{width:min(100%,420px)}#home{gap:14px;padding-top:18px;overflow-y:auto}.brand{text-align:center;margin-top:8px}.key-art{background:var(--i-key-art) center / contain no-repeat;width:150px;height:120px;margin:0 auto -4px;animation:4s ease-in-out infinite alternate float;display:block}@keyframes float{to{transform:translateY(-4px)rotate(-1.5deg)}}@media (prefers-reduced-motion:reduce){.key-art{animation:none}}.brand h1{letter-spacing:-.5px;margin:4px 0 0;font-size:34px;line-height:1}.brand h1 span{color:var(--blue)}.brand p{color:var(--ink-soft);margin:6px 0 0;font-weight:600}.today{text-align:center;flex-direction:column;gap:4px;width:min(100%,420px);padding:16px 16px 18px;display:flex}.today small{color:var(--ink-soft);text-transform:uppercase;letter-spacing:1px;font-size:12px;font-weight:700}.today h2{margin:2px 0;font-size:26px}.today p{color:var(--ink-soft);margin:0 0 10px;font-weight:600}.chips{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.chip{background:var(--paper);border:2px solid var(--line);border-radius:999px;align-items:center;gap:4px;padding:6px 12px 6px 8px;font-size:14px;font-weight:700;display:inline-flex}#go-archive{align-items:center;gap:10px;display:flex}#go-archive span{text-align:left;flex:1}#go-archive small{color:var(--ink-soft)}.toggle{text-align:left;background:var(--paper);border-radius:18px;grid-template-rows:auto auto;grid-template-columns:1fr auto;align-items:center;padding:8px 16px 8px 20px;display:grid}.toggle small{color:var(--ink-soft);grid-row:2;font-size:12px;font-weight:600}.toggle i{border:2px solid var(--line);background:#e3dccb;border-radius:99px;grid-area:1/2/3;width:46px;height:28px;transition:background .15s;position:relative}.toggle i:after{content:"";border:2px solid var(--line);background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .15s;position:absolute;top:2px;left:2px}.toggle[aria-pressed=true] i{background:var(--green)}.toggle[aria-pressed=true] i:after{transform:translate(18px)}.stats{gap:8px;margin:0 0 12px;display:flex}.stats div{text-align:center;background:#fbf6ecd9;border-radius:12px;min-width:86px;padding:8px 10px}.stats dt{color:var(--ink-soft);font-size:12px;font-weight:700}.stats dd{margin:2px 0 0;font-size:20px;font-weight:800}.topbar{flex:none;align-items:center;gap:8px;width:min(100%,520px);height:56px;padding-right:104px;display:flex}.topbar h2{margin:0;font-size:22px}.icon-btn{background:var(--paper);border:2px solid var(--line);border-radius:50%;flex:none;place-items:center;width:44px;height:44px;display:grid}.icon-btn svg{width:24px;height:24px;fill:var(--ink)}.meta{flex-direction:column;flex:1;min-width:0;line-height:1.15;display:flex}.meta b{white-space:nowrap;text-overflow:ellipsis;font-size:17px;overflow:hidden}.meta small{color:var(--ink-soft);font-size:12px;font-weight:600}.clock{flex-direction:column;flex:none;align-items:flex-end;gap:3px;display:flex}.clock b{font-variant-numeric:tabular-nums;font-size:20px}.race{background:#1f243326;border-radius:99px;width:84px;height:8px;position:relative}#race-you{background:var(--blue);border-radius:99px;transition:width .25s;position:absolute;top:0;bottom:0;left:0}#race-ghost{background:var(--i-ghost) center / contain no-repeat;width:20px;height:22px;margin-left:-10px;transition:left 1s linear;position:absolute;top:-7px}.play-main{flex-direction:column;flex:1;justify-content:space-evenly;align-items:center;gap:8px;width:min(100%,520px);min-height:0;display:flex}.board{flex:none;margin-top:2px;position:relative}.grid{grid-template-columns:repeat(5, var(--cell));grid-template-rows:repeat(5, var(--cell));background:var(--line);box-shadow:var(--shadow);touch-action:none;border-radius:10px;gap:2px;padding:2px;transition:filter .2s;display:grid}html[data-playora-paused] .grid,html[data-playora-paused] .cluebar,html[data-playora-paused] .cluelists{filter:blur(10px)}.cell{background:var(--paper);place-items:center;transition:background .12s;display:grid;position:relative}.cell:first-child{border-top-left-radius:8px}.cell:nth-child(5){border-top-right-radius:8px}.cell:nth-child(21){border-bottom-left-radius:8px}.cell:nth-child(25){border-bottom-right-radius:8px}.cell.black{background:var(--line)}.cell.word{background:var(--word)}.cell.sel{background:var(--sel)}.cell .num{font-size:max(10px, calc(var(--cell) * .2));color:var(--ink-soft);font-weight:700;line-height:1;position:absolute;top:2px;left:4px}.cell .ltr{font-size:calc(var(--cell) * .6);margin-top:calc(var(--cell) * .08);font-weight:800;line-height:1}.cell.typed .ltr{animation:.14s cubic-bezier(.3,1.6,.5,1) pop}@keyframes pop{0%{transform:scale(.55)}}.cell.wrong .ltr{color:var(--red)}.cell.wrong:after{content:"";background:var(--red);border-radius:2px;height:3px;animation:.2s ease-out slash;position:absolute;top:50%;left:12%;right:12%;transform:rotate(-35deg)}@keyframes slash{0%{transform:rotate(-35deg)scaleX(0)}}.cell.right .ltr{color:var(--green)}.cell.revealed .ltr{color:var(--blue)}.cell.revealed:before{content:"";border:calc(var(--cell) * .12) solid transparent;border-top-color:var(--blue);border-right-color:var(--blue);border-top-right-radius:3px;position:absolute;top:0;right:0}.cell.sweep{animation:.4s ease-out sweep}@keyframes sweep{40%{background:#fff3c4}}.cell.flash-right{animation:.45s ease-out flash-right}@keyframes flash-right{30%{background:#c9f0d4}}.cell.flash-reveal{animation:.45s ease-out flash-reveal}@keyframes flash-reveal{30%{background:#d6e2ff}}.shake{animation:.25s ease-in-out shake}@keyframes shake{25%{transform:translate(-5px)}50%{transform:translate(5px)}75%{transform:translate(-3px)}}.celebrate .cell:not(.black){animation:.5s ease-out both wave;animation-delay:calc(var(--d) * 45ms)}@keyframes wave{50%{transform:rotateX(90deg)scale(.9)}}.cell.theme{box-shadow:inset 0 0 0 3px var(--gold);background:#ffe3a1}.solved .cell.theme .ltr{color:#8a5a00}.solved .cell:not(.black):not(.theme) .ltr{color:var(--ink)}.finger{border:3px solid var(--ink);pointer-events:none;background:#ffffffd9;border-radius:50%;width:38px;height:38px;animation:1.6s ease-in-out infinite double-tap;position:absolute;box-shadow:0 4px 10px #00000040}.finger[hidden]{display:none}@keyframes double-tap{0%,to{opacity:0;transform:translate(10px,14px)scale(1)}15%{opacity:1;transform:translate(0)scale(1)}25%{transform:scale(.8)}35%{transform:scale(1)}45%{transform:scale(.8)}60%{opacity:1;transform:scale(1)}}.side{flex-direction:column;align-items:stretch;gap:8px;width:100%;display:flex;position:relative}.coach{z-index:6;white-space:nowrap;background:var(--ink);color:#fff;border-radius:999px;margin:0;padding:6px 14px;font-size:14px;font-weight:700;position:absolute;top:-26px;left:50%;transform:translate(-50%);box-shadow:0 4px 10px #0003}.cluebar{min-height:var(--clue-h,60px);background:var(--word);border:2px solid var(--line);border-radius:var(--radius);box-shadow:0 2px 0 var(--line);align-items:stretch;display:flex}.cluebar .step{flex:none;width:44px;font-size:30px;font-weight:800;line-height:1}.cluebar .clue{text-align:left;flex:1;align-items:center;gap:8px;min-width:0;padding:6px 2px;font-size:17px;font-weight:600;line-height:1.2;display:flex}.cluebar .clue b{color:var(--blue);flex:none;font-weight:800}.cluelists{display:none}.tools{gap:8px;display:flex}.tool{background:var(--paper);border:2px solid var(--line);min-height:46px;box-shadow:0 2px 0 var(--line);border-radius:12px;flex:1;font-weight:800}.tool:active{transform:translateY(1px)}.tool.coins{flex:none;justify-content:center;align-items:center;gap:4px;min-width:84px;padding:0 10px;font-size:18px;display:inline-flex}.tool.pulse{animation:.9s ease-in-out 4 pulse}@keyframes pulse{50%{background:var(--sel);transform:scale(1.04)}}.kbd{touch-action:none;flex-direction:column;gap:6px;padding-bottom:2px;display:flex}.krow{justify-content:center;gap:5px;display:flex}.key{max-width:46px;height:var(--key);background:#fffdf8;border:1.5px solid #b9ae98;border-radius:8px;flex:1 1 0;place-items:center;font-size:19px;font-weight:800;transition:transform 60ms;display:grid;box-shadow:0 2px #b9ae98}.key.back{flex-grow:1.6;max-width:72px}.key svg{width:24px;height:24px;fill:var(--ink)}.key.down{background:var(--sel);box-shadow:none;transform:translateY(2px)scale(.94)}.kbd.hint .key:not(.back){animation:1.2s ease-in-out 2 key-glow}@keyframes key-glow{50%{background:#fff1bf}}.pop{z-index:20;left:50%;bottom:calc(var(--key) * 3 + 90px + env(safe-area-inset-bottom));background:var(--paper);border:2px solid var(--line);border-radius:var(--radius);width:min(92vw,320px);box-shadow:var(--shadow);flex-direction:column;gap:6px;padding:8px;animation:.15s ease-out screen-in;display:flex;position:absolute;transform:translate(-50%)}.pop[hidden]{display:none}.pop-item{background:#fff;border:1.5px solid #cfc5b0;border-radius:10px;justify-content:space-between;align-items:center;min-height:48px;padding:0 14px;font-weight:800;display:flex}.pop-item small{color:var(--ink-soft);font-weight:700}.pop-item:disabled{opacity:.45;cursor:default}.pop-note{color:var(--ink-soft);margin:4px 6px;font-weight:600}.toast{z-index:25;background:var(--ink);color:#fff;opacity:0;pointer-events:none;white-space:nowrap;border-radius:999px;margin:0;padding:8px 16px;font-weight:700;transition:opacity .2s,transform .2s;position:absolute;top:64px;left:50%;transform:translate(-50%,-10px)}.toast.on{opacity:1;transform:translate(-50%)}.float{z-index:30;color:#8a5a00;pointer-events:none;font-size:20px;font-weight:900;animation:.9s ease-out forwards float-up;position:fixed;transform:translate(-50%)}@keyframes float-up{to{opacity:0;transform:translate(-50%,-46px)}}.fx{pointer-events:none;z-index:40;width:100%;height:100%;position:fixed;inset:0}.fx[hidden]{display:none}.archive-list{flex-direction:column;flex:1;gap:8px;width:min(100%,520px);margin:0;padding:4px 0 16px;list-style:none;display:flex;overflow-y:auto}.arc{text-align:left;background:var(--paper);border:2px solid var(--line);border-radius:12px;grid-template-rows:auto auto;grid-template-columns:1fr auto;align-items:center;width:100%;min-height:60px;padding:8px 16px;display:grid}.arc small{color:var(--ink-soft);font-size:12px;font-weight:700}.arc b{grid-row:2;font-size:17px}.arc em{color:var(--ink-soft);grid-area:1/2/3;font-size:14px;font-style:normal;font-weight:800}.arc.done{background:#eef7ef}.arc.done em{color:var(--green)}.arc.started em{color:var(--blue)}.overlay{z-index:30;background:#1f243359;justify-content:center}.res-card{text-align:center;width:min(100%,380px);padding:20px 18px;animation:.35s cubic-bezier(.2,1.3,.4,1) card-up}@keyframes card-up{0%{opacity:0;transform:translateY(40px)scale(.95)}}.res-kicker{color:var(--blue);text-transform:uppercase;letter-spacing:1px;margin:0;font-size:20px;font-weight:900}.res-time{font-variant-numeric:tabular-nums;margin:4px 0;font-size:56px;line-height:1}.res-delta{color:var(--ink-soft);margin:0;font-weight:700}.res-delta.good{color:var(--green)}.res-theme{margin:12px 0;font-weight:600}.res-theme b{border:2px solid var(--gold);letter-spacing:2px;background:#ffe3a1;border-radius:6px;padding:0 6px}.res-list{text-align:left;background:#fff;border-radius:10px;grid-template-columns:1fr auto;gap:6px 12px;margin:0 0 16px;padding:10px 14px;display:grid}.res-list dt{color:var(--ink-soft);font-weight:700}.res-list dd{margin:0;font-weight:800}.res-actions{gap:10px;display:flex}.res-actions button{flex:1}html.wide .screen#play{padding-left:16px;padding-right:16px}html.wide .topbar{width:min(100%,980px)}html.wide .play-main{flex-direction:row;justify-content:center;align-items:flex-start;gap:24px;width:min(100%,980px)}html.wide .side{flex:none;width:380px;max-height:100%}html.wide .cluelists{border:2px solid var(--line);border-radius:var(--radius);background:#fbf6eceb;flex:auto;grid-template-columns:1fr 1fr;gap:8px;min-height:0;padding:6px 8px;display:grid;overflow:auto}html.wide .cluelists h3{text-transform:uppercase;letter-spacing:1px;color:var(--ink-soft);margin:2px 4px 4px;font-size:13px}html.wide .cluelists ol{margin:0;padding:0;list-style:none}html.wide .cluelists li{cursor:pointer;border-radius:8px;gap:6px;padding:5px 6px;font-size:14px;font-weight:600;line-height:1.2;display:flex}html.wide .cluelists li b{min-width:1.2em}html.wide .cluelists li.on{background:var(--word)}html.wide .cluelists li.cross{box-shadow:inset 3px 0 0 var(--sel)}html.wide .cluelists li.done span{color:var(--ink-soft)}html.wide .pop{left:auto;right:max(16px,50% - 490px);bottom:calc(var(--key) * 3 + 40px);transform:none}@media (height<=560px){html.wide .cluelists{display:none}html.wide .topbar{height:48px}}@media (width<=400px){.kbd{margin:0 -8px}.krow{gap:4px}.chip{padding:5px 10px 5px 6px;font-size:13px}}.keytip{z-index:35;border:2px solid var(--line);pointer-events:none;opacity:0;background:#fffdf8;border-radius:10px;place-items:center;width:48px;height:56px;margin:-62px 0 0 -24px;font-size:28px;font-weight:900;transition:opacity 60ms,transform 60ms;display:grid;position:fixed;transform:translateY(6px)scale(.8);box-shadow:0 6px 14px #00000038}.keytip.on{opacity:1;transform:none}html.wide .keytip{display:none}html.wide .cluebar{order:0}html.wide .coach{order:1;align-self:center;position:static;transform:none}html.wide .cluelists{order:2}html.wide .tools{order:3}html.wide .kbd{order:4}
