@font-face{font-family:Jost;font-style:normal;font-display:swap;font-weight:500;src:url(./jost-cyrillic-500-normal-DtB2bvF0.woff2)format("woff2"),url(./jost-cyrillic-500-normal-DlHwnXyv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Jost;font-style:normal;font-display:swap;font-weight:500;src:url(./jost-latin-ext-500-normal-BkvHgcKf.woff2)format("woff2"),url(./jost-latin-ext-500-normal-Cpxiadwk.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Jost;font-style:normal;font-display:swap;font-weight:500;src:url(./jost-latin-500-normal-41lBe9I9.woff2)format("woff2"),url(./jost-latin-500-normal-B-AtzreL.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Jost;font-style:normal;font-display:swap;font-weight:700;src:url(./jost-cyrillic-700-normal-_ob5o-r5.woff2)format("woff2"),url(./jost-cyrillic-700-normal-BHDNzvjF.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Jost;font-style:normal;font-display:swap;font-weight:700;src:url(./jost-latin-ext-700-normal-AnR_ULdm.woff2)format("woff2"),url(./jost-latin-ext-700-normal-DTcCupJy.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Jost;font-style:normal;font-display:swap;font-weight:700;src:url(./jost-latin-700-normal-u2Hrqd6k.woff2)format("woff2"),url(./jost-latin-700-normal-k-iBXzmq.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Jost;font-style:normal;font-display:swap;font-weight:800;src:url(./jost-cyrillic-800-normal-Cee6xADZ.woff2)format("woff2"),url(./jost-cyrillic-800-normal-BkwKzx7A.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Jost;font-style:normal;font-display:swap;font-weight:800;src:url(./jost-latin-ext-800-normal-Cg_vpt4p.woff2)format("woff2"),url(./jost-latin-ext-800-normal-BJ9_B5nd.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Jost;font-style:normal;font-display:swap;font-weight:800;src:url(./jost-latin-800-normal-Dqt5tSc_.woff2)format("woff2"),url(./jost-latin-800-normal-CYDe-RDT.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--wall:#d6d1c4;--wall-deep:#c9c3b4;--paper:#f6f3ea;--paper-bright:#fbfaf5;--ink:#141414;--ink-soft:#4e4a40;--line:#8f8a7d;--yellow:#f2c21b;--red:#c9261c;--blue:#22409a;--gray:#bab6aa;--gold:#e0a400;--on-red:#fbf8f0;--on-blue:#fbf8f0;--on-yellow:#141414;--good:var(--blue);--bad:var(--red);--street:10px;--street-thin:6px;--f-ui:"Jost", system-ui, -apple-system, sans-serif;--f-num:"Jost", system-ui, -apple-system, sans-serif;--fs-xs:12px;--fs-sm:14px;--fs-md:16px;--fs-lg:20px;--fs-xl:28px;--fs-hero:64px;--gap-1:4px;--gap-2:8px;--gap-3:12px;--gap-4:16px;--gap-5:24px;--gap-6:32px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--ease-out:cubic-bezier(.2, .8, .2, 1);--ease-pop:cubic-bezier(.3, 1.6, .5, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}html{background:var(--wall);-webkit-text-size-adjust:100%}body{color:var(--ink);font-family:var(--f-ui);overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-font-smoothing:antialiased;font-weight:500;overflow:hidden}button{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--blue);outline-offset:2px}h1,h2,h3,p{margin:0}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.btn{justify-content:center;align-items:center;gap:var(--gap-2);min-height:48px;padding:0 var(--gap-5);font-weight:700;font-size:var(--fs-md);letter-spacing:.02em;cursor:pointer;background:var(--ink);color:var(--paper);border:0;border-radius:0;transition:transform 80ms,filter .12s;display:inline-flex}.btn:active{transform:translateY(1px)scale(.99)}.btn[disabled]{opacity:.45;cursor:default}.btn.wide{width:100%}.btn.lg{min-height:60px;font-size:var(--fs-lg)}.btn.red{background:var(--red);color:var(--on-red)}.btn.blue{background:var(--blue);color:var(--on-blue)}.btn.yellow{background:var(--yellow);color:var(--on-yellow)}.btn.ghost{color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink);background:0 0}.btn.quiet{color:var(--ink-soft);min-height:40px;padding:0 var(--gap-3);background:0 0;font-weight:500}.btn.street{box-shadow:inset 0 0 0 var(--street-thin) var(--yellow);position:relative}.btn.street:after{content:"";right:var(--street-thin);bottom:var(--street-thin);background:var(--yellow);width:12px;height:12px;position:absolute}.icon-btn{cursor:pointer;background:0 0;border:0;place-items:center;width:44px;height:44px;padding:0;display:grid}.sheet-scrim{z-index:40;background:color-mix(in srgb, var(--ink) 35%, transparent);animation:fade .2s var(--ease-out);justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--paper);border-top:var(--street) solid var(--yellow);width:100%;max-width:520px;max-height:92vh;padding:var(--gap-5) var(--gap-4) calc(var(--gap-5) + var(--safe-bottom));gap:var(--gap-4);animation:rise .28s var(--ease-out);flex-direction:column;display:flex;overflow-y:auto}.sheet h2{font-weight:800;font-size:var(--fs-xl);line-height:1.05}@media (min-width:640px){.sheet-scrim{align-items:center}.sheet{border:var(--street) solid var(--yellow)}}.screen{padding:var(--safe-top) var(--safe-right) 0 var(--safe-left);flex-direction:column;display:flex;position:absolute;inset:0}.topbar{align-items:center;gap:var(--gap-2);min-height:56px;padding:0 var(--gap-2);background:var(--yellow);z-index:2;display:flex;position:relative}.topbar .title{font-weight:800;font-size:var(--fs-lg);letter-spacing:.01em;text-align:center;flex:1}.topbar .spacer{width:44px}.screen-body{-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow-y:auto}.eyebrow{font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);font-weight:700}.fine{font-size:var(--fs-xs);color:var(--ink-soft);line-height:1.5}.fine a{color:var(--blue)}.card{background:var(--paper);padding:var(--gap-4);box-shadow:0 0 0 var(--street-thin) var(--yellow)}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(24px)}}[dir=rtl] .flip-rtl{transform:scaleX(-1)}:lang(ko){word-break:keep-all}:lang(hi) *,:lang(ar) *{letter-spacing:normal!important}.board{aspect-ratio:1;--st:max(6px, 2.4cqw);touch-action:manipulation;width:100%;box-shadow:0 0 0 2px var(--ink);display:grid;container-type:inline-size}.board .street{background:var(--yellow);min-width:0;min-height:0;position:relative}.board .sq{width:var(--st);height:var(--st);position:absolute}.board .street.h .sq{top:0;left:calc((100% - var(--st)) * var(--p))}.board .street.v .sq{left:0;top:calc((100% - var(--st)) * var(--p))}.board .sq.r{background:var(--red)}.board .sq.b{background:var(--blue)}.block{background:color-mix(in srgb, var(--fill) 26%, var(--paper));min-width:0;min-height:0;transition:background-color .22s var(--ease-out);position:relative;overflow:hidden;container-type:size}.block.t0{--fill:var(--red);--on:var(--on-red);--inner:var(--yellow)}.block.t1{--fill:var(--blue);--on:var(--on-blue);--inner:var(--red)}.block.t2{--fill:var(--paper);--on:var(--ink);--inner:var(--blue)}.block .slots{display:grid;position:absolute;inset:3cqw}.block .num{min-width:0;min-height:0;color:var(--ink);font-family:var(--f-num);font-variant-numeric:tabular-nums;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background:0 0;border:0;justify-content:center;align-items:center;padding:0;font-size:17cqw;font-weight:700;line-height:1;transition:background-color .1s;display:flex}.block .slots.g2 .num,.block .slots.g1 .num{font-size:22cqw}.block .num>span{pointer-events:none;transition:transform 80ms}.block .num.pressing{background:color-mix(in srgb, var(--ink) 14%, transparent)}.block .num.pressing>span{transform:scale(.92)}@media (hover:hover){.block .num:hover{background:#ffffff8c}}.block .num.miss{animation:.4s missflash}.board.idle .num{color:#0000;cursor:default}.board.idle .num:after{content:"";background:color-mix(in srgb, var(--fill) 55%, var(--paper));width:20%;height:20%}.block .done{color:var(--on);flex-direction:column;justify-content:center;align-items:center;display:none;position:absolute;inset:0}.block.solved{background:var(--fill)}.block.solved .slots{visibility:hidden}.block.solved .done{animation:flood .3s var(--ease-pop);display:flex}.block.solved:after{content:"";background:var(--inner);width:22%;height:22%;position:absolute;bottom:10%;right:10%}.block .ans{font-variant-numeric:tabular-nums;z-index:1;font-size:40cqw;font-weight:800;line-height:1;position:relative}.board{transition:box-shadow .5s var(--ease-out) .3s}.board.final{box-shadow:0 0 0 5px var(--ink)}.board .sq{transition:opacity .5s var(--ease-out) .2s}.board.final .sq{opacity:0}.block.solved:after{transition:opacity .4s var(--ease-out) .2s}.board.final .block.solved:after{opacity:0}.board.final .block.solved{cursor:pointer}.board.final:not(.over) .block.solved .ans{animation:finalpop .5s var(--ease-pop) both;animation-delay:calc(.75s + var(--i,0) * 70ms)}.board.final .block .ans{font-size:52cqw}.board.final:not(.over) .block.solved:active{transform:scale(.96)}.block.win{box-shadow:inset 0 0 0 5cqw var(--ink)}.board.over .block:not(.win){opacity:.4;transition:opacity .5s}.block.shake{animation:.32s shake}.block .penalty{color:var(--red);pointer-events:none;z-index:3;text-shadow:0 0 6px var(--paper);font-size:18cqw;font-weight:800;animation:.8s forwards floatup;position:absolute;top:38%;left:50%;transform:translate(-50%)}@keyframes shake{20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(3px)}}@keyframes floatup{to{opacity:0;transform:translate(-50%,-40%)}}@keyframes pulse{50%{transform:scale(1.03)}}@keyframes flood{0%{opacity:0;transform:scale(.6)}}@keyframes missflash{0%,60%{background:var(--red);color:var(--on-red)}}@keyframes finalpop{0%{transform:scale(1)}45%{transform:scale(1.28)}to{transform:scale(1)}}.block .num.reveal{outline:3px dashed var(--red);outline-offset:-3px}.board.final .block.reveal{outline:4px dashed var(--ink);outline-offset:-6px}.block .num.addend{background:color-mix(in srgb, var(--blue) 22%, transparent)}.block .num.target{box-shadow:inset 0 0 0 4px var(--red);animation:1.1s ease-in-out infinite targetpulse}.board.final .block.pair-block{outline:4px dashed var(--on);outline-offset:-8px}.board.final .block.target-block{box-shadow:inset 0 0 0 4px var(--ink), inset 0 0 0 10px var(--paper);animation:1.1s ease-in-out infinite targetpulse}@keyframes targetpulse{50%{transform:scale(1.08)}}.city{background:var(--wall);position:absolute;inset:0;overflow:hidden}.city-canvas{touch-action:none;cursor:grab;width:100%;height:100%;display:block;position:absolute;inset:0}.city-canvas:active{cursor:grabbing}.city-top{top:calc(var(--safe-top) + var(--gap-3));left:var(--gap-3);right:var(--gap-3);align-items:center;gap:var(--gap-3);pointer-events:none;z-index:2;display:flex;position:absolute}.city-top>*{pointer-events:auto}.city-fab{background:var(--yellow);width:48px;height:48px;box-shadow:0 0 0 2px var(--ink);cursor:pointer;border:0;place-items:center;display:grid}.city-stats{gap:var(--gap-4);padding:10px var(--gap-3);background:var(--paper);box-shadow:0 0 0 2px var(--ink);font-size:var(--fs-sm);color:var(--ink-soft);align-items:baseline;display:flex}.city-stats b{font-weight:800;font-size:var(--fs-lg);color:var(--ink);font-variant-numeric:tabular-nums}.city-stats .gold b{color:var(--gold)}.city-controls{inset-inline-end:var(--gap-3);bottom:calc(var(--safe-bottom) + var(--gap-4));gap:var(--gap-2);z-index:2;display:flex;position:absolute}.city-chip{min-height:44px;padding:0 var(--gap-4);background:var(--paper);box-shadow:0 0 0 2px var(--ink);font-weight:800;font-size:var(--fs-sm);cursor:pointer;border:0}.city-tag{z-index:3;left:var(--gap-4);right:var(--gap-4);bottom:calc(var(--gap-4) + var(--safe-bottom));gap:var(--gap-3);background:var(--paper);max-width:420px;box-shadow:0 0 0 var(--street-thin) var(--yellow);padding:var(--gap-3) var(--gap-4);animation:rise .22s var(--ease-out);align-items:stretch;margin:0 auto;display:flex;position:absolute}.city-choice{bottom:calc(var(--safe-bottom) + var(--gap-4) + 44px + var(--gap-4))}.city-tag .swatch{flex:none;width:12px}.city-tag .body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.city-tag .name{font-weight:800;font-size:var(--fs-lg);line-height:1.1}.city-tag .meta{font-size:var(--fs-sm);color:var(--ink-soft);line-height:1.4}.city-tag .tag-time{align-items:baseline;gap:var(--gap-2);margin:2px 0;display:flex}.city-tag .tag-time b{font-weight:800;font-size:var(--fs-xl);font-variant-numeric:tabular-nums;line-height:1}.city-tag .tag-time span{font-size:var(--fs-xs);color:var(--ink-soft);font-weight:700}.city-tag .tag-time .perfect{color:var(--blue)}.city-tag .tag-time .miss{color:var(--red)}.city-tag .saying{font-size:var(--fs-sm);margin:2px 0;font-weight:600;line-height:1.35}.city-tag .saying .by{color:var(--ink-soft);white-space:nowrap;font-weight:500}.city-tag .star{color:var(--gold)}.city-tag .close{margin:calc(var(--gap-2) * -1) calc(var(--gap-3) * -1) 0 0;align-self:flex-start}.city-empty{padding:var(--gap-5) var(--gap-4);place-items:center;display:grid}.city-empty .card{gap:var(--gap-4);text-align:start;max-width:360px;display:grid}.city-empty h2{font-weight:800;font-size:var(--fs-xl);line-height:1.05}.city-empty .lot{background:var(--wall);border-bottom:var(--street) solid var(--yellow);height:72px;position:relative}.city-empty .lot:after{content:"";background:var(--ink);width:8%;height:60%;box-shadow:18px 0 0 var(--ink), 0 -42px 0 -2px var(--blue);position:absolute;bottom:0;left:46%}.town{background:var(--wall);position:absolute;inset:0;overflow:hidden}.town-canvas{touch-action:none;cursor:grab;width:100%;height:100%;display:block;position:absolute;inset:0}.town-canvas:active{cursor:grabbing}.town-top{z-index:2;gap:var(--gap-2);pointer-events:none;flex-direction:column;display:flex;position:absolute;top:0;left:0;right:0}.town-top.full{padding-top:var(--safe-top)}.town-top>*{pointer-events:auto}.town-top .city-top{padding:var(--gap-3) var(--gap-3) 0;position:static}.town-top .city-top:empty{display:none}.town-explain{background:var(--ink);color:var(--paper);font-weight:700;font-size:var(--fs-sm);padding:8px var(--gap-4);text-align:center;text-wrap:balance;animation:fade .4s var(--ease-out);margin:0;line-height:1.35}.town-dock{z-index:3;gap:var(--gap-3);pointer-events:none;flex-direction:column;display:flex;position:absolute;bottom:0;left:0;right:0}.town-dock.bare{padding-bottom:calc(var(--safe-bottom) + var(--gap-4))}.town-dock>*{pointer-events:auto}.town-dock .city-controls{animation:fade .3s var(--ease-out);align-self:flex-end;margin-inline-end:var(--gap-3);position:static}.city-controls{max-width:calc(100% - 2 * var(--gap-3));flex-wrap:wrap;justify-content:flex-end}.town-dock .city-tag{width:calc(100% - 2 * var(--gap-4));align-self:center;margin:0;position:relative;bottom:auto;left:auto;right:auto}.town-card{justify-content:center;display:flex}.intro-scene{z-index:60;background:var(--wall);cursor:pointer;touch-action:none;width:100vw;height:100dvh;transition:opacity .28s var(--ease-out);display:block;position:fixed;inset:0}.intro-scene.leaving{opacity:0}.badge-mini{align-items:center;gap:var(--gap-2);cursor:pointer;text-align:start;background:0 0;border:0;padding:0;display:inline-flex}.badge-mini .bm-text{flex-direction:column;line-height:1.1;display:flex}.badge-mini .bm-tier{font-weight:800;font-size:var(--fs-sm)}.badge-mini .bm-days{font-size:var(--fs-xs);color:var(--ink-soft)}.badge-screen{align-items:center;gap:var(--gap-5);padding:var(--gap-5) var(--gap-4) calc(var(--gap-6) + var(--safe-bottom));flex-direction:column;max-width:520px;margin:0 auto;display:flex}.badge-hero{align-items:center;gap:var(--gap-3);text-align:center;flex-direction:column;display:flex}.badge-hero .tier{font-weight:800;font-size:var(--fs-xl);line-height:1}.badge-hero .days{color:var(--ink-soft);font-size:var(--fs-sm)}.badge-next{gap:var(--gap-2);width:100%;display:grid}.badge-bar{background:var(--paper);height:12px;box-shadow:inset 0 0 0 2px var(--ink)}.badge-bar i{background:var(--blue);height:100%;display:block}.ladder{gap:var(--gap-4);grid-template-columns:repeat(auto-fill,minmax(92px,1fr));width:100%;display:grid}.ladder figure{justify-items:center;gap:var(--gap-1);text-align:center;margin:0;display:grid}.ladder figcaption{font-size:var(--fs-xs);line-height:1.25}.ladder figcaption b{font-size:var(--fs-sm);display:block}.ladder .locked canvas{opacity:.35;filter:grayscale()}.ladder .current figcaption b{color:var(--blue)}.rate-choices{gap:var(--street);padding:var(--street);background:var(--yellow);grid-template-columns:1fr 1fr;display:grid}.rate-choices .rate-btn{aspect-ratio:1;gap:var(--gap-3);padding:var(--gap-3);font-size:var(--fs-lg);flex-direction:column;font-weight:800}.rate-field{gap:var(--gap-2);display:grid}.rate-field textarea{width:100%;min-height:132px;padding:var(--gap-3);box-shadow:inset 0 0 0 2px var(--ink);background:var(--paper-bright);color:var(--ink);font:inherit;font-size:var(--fs-md);resize:none;border:0;border-radius:0;line-height:1.4}.rate-field textarea:focus{box-shadow:inset 0 0 0 3px var(--blue);outline:none}.rate-count{justify-self:end}.rate-actions{gap:var(--gap-2);display:grid}.rate-note{color:var(--red)}.account-lede{font-size:var(--fs-md);color:var(--ink-soft);line-height:1.45}.account-note{font-size:var(--fs-sm);font-weight:700;line-height:1.45}.account-providers{gap:var(--gap-2);display:grid}.btn.signin.apple{background:var(--ink);color:var(--paper-bright)}.btn.signin.google{background:var(--paper-bright);color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink)}.results{inset:calc(var(--safe-top) + 56px) 0 0 0;z-index:20;background:var(--wall);animation:fade .3s var(--ease-out);flex-direction:column;display:flex;position:absolute}.res-scene{flex:auto;min-height:160px;position:relative;overflow:hidden}.res-scene>*{position:absolute;inset:0}.res-stage{place-items:center;display:grid}.res-card{align-self:center;gap:var(--gap-3);background:var(--paper);width:100%;max-width:520px;box-shadow:0 calc(var(--street) * -1) 0 var(--yellow), 0 calc(var(--street) * -1 - 2px) 0 var(--ink);padding:var(--gap-4) var(--gap-4) calc(var(--gap-4) + var(--safe-bottom));animation:rise .4s var(--ease-out);flex-direction:column;flex:none;display:flex}.res-story{font-weight:700;font-size:var(--fs-sm);text-wrap:pretty;margin:0;line-height:1.35}.res-saying{margin:calc(var(--gap-2) * -1) 0 0;font-size:var(--fs-xs);color:var(--ink-soft);font-weight:600;line-height:1.35}.res-saying .by{white-space:nowrap;font-weight:500}.res-head{justify-content:space-between;align-items:flex-end;gap:var(--gap-3);display:flex}.res-head>div:first-child{min-width:0}.res-time{font-weight:800;font-size:clamp(var(--fs-xl), 15vw, var(--fs-hero));font-variant-numeric:tabular-nums;align-items:center;gap:var(--gap-2);line-height:.9;display:flex}.res-star{width:.55em;height:.55em;display:inline-block;position:relative}.res-star:before,.res-star:after{content:"";background:var(--yellow);position:absolute}.res-star:before{inset:0 32%}.res-star:after{inset:32% 0}.res-sub{font-weight:700;font-size:var(--fs-xs);margin-top:var(--gap-2)}.res-sub.perfect{color:var(--blue)}.res-sub.miss{color:var(--red)}.res-streak{font-variant-numeric:tabular-nums;flex-direction:column;align-items:flex-end;line-height:1.1;display:flex}.res-streak b{font-weight:800;font-size:var(--fs-xl)}.res-streak span{font-size:var(--fs-xs);color:var(--ink-soft);font-weight:700}.res-streak .best{font-weight:500}.res-standing{font-size:var(--fs-xs);color:var(--ink-soft);animation:fade .4s var(--ease-out);font-weight:700}.res-share{gap:var(--gap-2);display:grid}.res-share .note{font-size:var(--fs-xs);color:var(--ink-soft);text-align:center;margin:0;line-height:1.4}.res-foot{justify-content:space-between;align-items:center;gap:var(--gap-2) var(--gap-3);padding-top:var(--gap-2);border-top:2px solid var(--wall-deep);flex-wrap:wrap;display:flex}.res-next{font-size:var(--fs-xs);color:var(--ink);font-variant-numeric:tabular-nums;font-weight:700}.res-links{gap:var(--gap-3);flex-wrap:wrap;display:flex}.res-link{min-height:36px;font:inherit;font-size:var(--fs-xs);color:var(--ink);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;font-weight:800;text-decoration:underline;display:inline-flex}.res-link.plus{color:var(--blue)}.results.town-results{animation:none}.results.town-results>.town-card{inset-inline:0;position:absolute;bottom:0}.res-card.res-bar{align-items:center;gap:var(--gap-3);padding:var(--gap-3) var(--gap-4) calc(var(--gap-3) + var(--safe-bottom));flex-direction:row;animation:none}.res-expand{align-items:center;gap:var(--gap-2);min-width:0;min-height:44px;font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;flex:1;padding:0;display:flex}.res-bar .res-time{font-size:var(--fs-xl);line-height:1}.play{padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);background-color:var(--wall);flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden}.play>:not(canvas):not(.results){z-index:1;position:relative}.play-top{align-items:center;gap:var(--gap-2);min-height:56px;padding:0 var(--gap-2);background:var(--yellow);transition:opacity .25s;display:flex}.play-top .brand{flex-direction:column;flex:1;align-items:center;line-height:1.05;display:flex}.play-top .brand b{font-weight:800;font-size:var(--fs-lg);letter-spacing:.01em}.play-top .brand span{font-size:var(--fs-xs);color:var(--ink-soft);font-variant-numeric:tabular-nums}.play-top .side{align-items:center;min-width:88px;display:flex}.play-top .side.right{justify-content:flex-end}.play.active .play-top .hide-in-play{visibility:hidden}.play-hint{min-height:40px;padding:0 var(--gap-4);justify-content:center;align-items:center;display:flex}.play-hint span{background:var(--paper);font-weight:700;font-size:var(--fs-sm);box-shadow:0 0 0 2px var(--ink);padding:6px 12px}.play-stage{min-height:0;padding:var(--gap-3);flex:1;place-items:center;display:grid;position:relative;container-type:size}.play-board{width:min(100cqw,100cqh,640px);position:relative}.play-stage{--final-scale:.8}.play-board{transition:transform .9s var(--ease-out)}.play-board.zoomed{transform:scale(var(--final-scale))}.startcard{background:var(--paper);width:min(88%,380px);box-shadow:0 0 0 2px var(--ink), 8px 8px 0 var(--ink);padding:var(--gap-5) var(--gap-4) var(--gap-4);gap:var(--gap-3);z-index:5;animation:rise .3s var(--ease-out);display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.startcard h2{font-weight:800;font-size:var(--fs-xl);text-wrap:balance;line-height:1.05}.startcard p{font-size:var(--fs-sm);line-height:1.45}.startcard .challenge{background:var(--yellow);padding:var(--gap-2) var(--gap-3);font-weight:700}.play-board.paused>:not(.pausecard){visibility:hidden}.play-board.paused{transition:none}.pausecard{text-align:center}.play-loading{height:100%;color:var(--ink-soft);place-items:center;font-weight:700;display:grid}.final-hint{left:50%;bottom:calc(50% + min(100cqw, 100cqh, 640px) * var(--final-scale) / 2 + 14px);text-align:center;background:var(--ink);width:max-content;max-width:calc(100% - 32px);color:var(--paper);font-weight:700;font-size:var(--fs-sm);z-index:3;animation:rise .35s var(--ease-out);padding:8px 14px;line-height:1.35;position:absolute;transform:translate(-50%)}.play-hint{position:relative}.help-banner{z-index:4;text-align:center;background:var(--ink);width:max-content;max-width:min(100% - 32px,520px);color:var(--paper);font-weight:700;font-size:var(--fs-sm);animation:rise .22s var(--ease-out);padding:8px 14px;line-height:1.35;position:absolute;top:4px;left:50%;translate:-50%}.archive-list{padding:var(--gap-3) var(--gap-4) var(--gap-6);gap:var(--gap-2);max-width:560px;margin:0;margin-inline:auto;list-style:none;display:grid}.archive-month{font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);padding:var(--gap-4) 0 var(--gap-2);font-weight:700}.archive-row{align-items:center;gap:var(--gap-3);width:100%;min-height:60px;padding:0 var(--gap-4) 0 0;background:var(--paper);text-align:start;cursor:pointer;border:0;grid-template-columns:64px 1fr auto;display:grid}.archive-row:active{transform:scale(.99)}.archive-no{font-weight:800;font-size:var(--fs-md);background:var(--blue);color:var(--on-blue);font-variant-numeric:tabular-nums;align-self:stretch;place-items:center;display:grid}.archive-no.sunday{background:var(--red);color:var(--on-red)}.archive-row.played .archive-no{box-shadow:inset 0 calc(-1 * var(--street-thin)) 0 var(--yellow)}.archive-date{font-size:var(--fs-md)}.archive-date b{font-weight:800}.archive-date em{color:var(--red);font-style:normal;font-weight:700;font-size:var(--fs-sm)}.archive-result{align-items:center;gap:var(--gap-2);font-weight:800;font-size:var(--fs-lg);font-variant-numeric:tabular-nums;display:flex}.archive-star{background:var(--yellow);width:14px;height:14px;box-shadow:inset 0 0 0 3px var(--ink);display:block}.archive-play{font-size:var(--fs-sm);letter-spacing:.08em;text-transform:uppercase;background:var(--yellow);padding:6px 10px;font-weight:800}.archive-unlock{font-size:var(--fs-sm);letter-spacing:.08em;text-transform:uppercase;background:var(--red);color:var(--paper);align-items:center;gap:6px;padding:6px 10px;font-weight:800;display:inline-flex}.archive-row.sealed{background:color-mix(in srgb, var(--paper) 55%, var(--wall));color:var(--ink-soft)}.archive-row.sealed .archive-no{background:var(--gray);color:var(--ink)}.archive-more{height:1px}.archive-cta{padding:var(--gap-3) var(--gap-4) calc(var(--gap-3) + var(--safe-bottom));background:linear-gradient(transparent, var(--wall) 30%);max-width:560px;margin-inline:auto;position:sticky;bottom:0}.paywall-lede{font-size:var(--fs-md);color:var(--ink-soft);line-height:1.45}.paywall-perks{gap:var(--gap-2);margin:0;padding:0;list-style:none;display:grid}.paywall-perks li{align-items:center;gap:var(--gap-3);min-height:44px;padding:0 var(--gap-3);background:var(--paper-bright);font-weight:700;font-size:var(--fs-sm);border-inline-start:var(--street-thin) solid var(--yellow);display:flex}.perk-sq{flex:none;width:16px;height:16px;display:block}.perk-sq.red{background:var(--red)}.perk-sq.blue{background:var(--blue)}.perk-sq.yellow{background:var(--yellow);box-shadow:inset 0 0 0 2px var(--ink)}.paywall-offers{gap:var(--gap-3);display:grid}.paywall-save{font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;background:var(--yellow);color:var(--on-yellow);padding:2px 6px;font-weight:800}.paywall-closed,.paywall-alt,.paywall-note{font-size:var(--fs-sm);line-height:1.45}.paywall-closed{color:var(--ink-soft)}.paywall-note{font-weight:700}.paywall-foot{justify-content:space-between;gap:var(--gap-2);flex-wrap:wrap;display:flex}.paywall-plans{gap:var(--gap-2);display:grid}.paywall-plan{text-align:start;padding:var(--gap-3) var(--gap-4);background:var(--paper-bright);border:2px solid var(--gray);min-height:64px;color:var(--ink);font:inherit;cursor:pointer;gap:2px;display:grid}.paywall-plan.on{border:3px solid var(--ink);box-shadow:inset 6px 0 0 var(--red)}.plan-name{justify-content:space-between;align-items:center;gap:var(--gap-2);font-weight:800;font-size:var(--fs-sm);flex-wrap:wrap;display:flex}.plan-price{font-size:var(--fs-md)}.plan-price b{font-size:var(--fs-lg);font-weight:800}.plan-each{font-size:var(--fs-xs);color:var(--ink-soft)}.paywall-buy{gap:var(--gap-2);display:grid}.paywall-then{text-align:center;font-size:var(--fs-sm);color:var(--ink-soft);margin:0}[dir=rtl] .paywall-plan.on{box-shadow:inset -6px 0 0 var(--red)}.menu-list{background:var(--wall-deep);gap:2px;display:grid}.menu-item{align-items:center;gap:var(--gap-3);min-height:52px;padding:0 var(--gap-3);background:var(--paper-bright);text-align:start;font-weight:700;font-size:var(--fs-md);cursor:pointer;border:0;width:100%;display:flex}.menu-item .grow{flex:1}.menu-item small{color:var(--ink-soft);font-weight:500;font-size:var(--fs-xs)}.menu-toggles{gap:var(--gap-4);display:flex}.menu-toggles label{align-items:center;gap:var(--gap-2);font-weight:700;display:flex}.menu-toggles input{width:20px;height:20px;accent-color:var(--blue)}.menu-foot{gap:var(--gap-4);justify-content:center;display:flex}.menu-language{justify-content:space-between;align-items:center;gap:var(--gap-3);font-weight:700;display:flex}.menu-language select{min-width:0;max-width:60%;min-height:40px;padding:0 var(--gap-2);font:inherit;color:var(--ink);background:var(--paper-bright);border:2px solid var(--ink);border-radius:0;font-weight:600}.tutorial{z-index:50;background:var(--wall);padding:calc(var(--safe-top) + var(--gap-3)) var(--gap-4) calc(var(--safe-bottom) + var(--gap-4));animation:fade .25s var(--ease-out);flex-direction:column;display:flex;position:fixed;inset:0}.tut-top{justify-content:space-between;align-items:center;min-height:44px;display:flex}.tut-dots{gap:6px;display:flex}.tut-dots i{background:var(--paper);width:22px;height:6px;box-shadow:inset 0 0 0 1.5px var(--ink)}.tut-dots i.on{background:var(--ink)}.tut-copy{gap:var(--gap-2);max-width:440px;margin:var(--gap-3) auto 0;text-align:center;display:grid}.tut-copy h2{font-weight:800;font-size:var(--fs-xl);text-wrap:balance;line-height:1.05}.tut-copy p{font-size:var(--fs-md);color:var(--ink-soft);line-height:1.45}.tut-stage{min-height:0;padding:var(--gap-4) 0;flex:1;place-items:center;display:grid;container-type:size}.tut-board{width:min(78cqw,78cqh,360px)}.tut-feedback{text-align:center;justify-content:center;align-items:center;min-height:52px;font-weight:700;display:flex}.tut-feedback .bad{color:var(--red)}.tut-feedback .good{background:var(--blue);color:var(--on-blue);animation:rise .25s var(--ease-out);padding:8px 14px}.tut-actions{gap:var(--gap-2);width:100%;max-width:440px;margin:0 auto;display:grid}.tut-rules{gap:var(--gap-4);width:100%;max-width:400px;display:grid}.tut-rule{gap:var(--gap-3);background:var(--paper);padding:var(--gap-3);box-shadow:0 0 0 2px var(--ink);grid-template-columns:56px 1fr;align-items:center;display:grid}.tut-rule .glyph{width:56px;height:56px;font-weight:800;font-size:var(--fs-lg);place-items:center;display:grid}.tut-rule p{font-size:var(--fs-sm);line-height:1.4}.tut-rule b{font-size:var(--fs-md);display:block}.tut-eq{color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums;align-items:center;gap:.3em;font-weight:800;display:inline-flex}.tut-eq b{background:var(--red);color:var(--on-red);padding:0 .35em}.tut-feedback .good .tut-eq b{background:var(--yellow);color:var(--ink)}.tut-eqbar{margin-top:var(--gap-4);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;gap:10px;font-size:34px;font-weight:800;display:flex}.tut-eqbar .p{background:color-mix(in srgb, var(--blue) 22%, transparent);padding:0 10px}.tut-eqbar .t{background:var(--red);color:var(--on-red);padding:0 12px}
