.sdk{-webkit-user-select:none;user-select:none;flex-direction:column;gap:12px;width:100%;max-width:560px;margin:0 auto;display:flex}.sdk-grid{width:100%;max-width:calc(var(--sdk-n) * 64px);border:var(--outline-w-bold) solid var(--c-outline);border-radius:var(--radius-sm);background:var(--c-surface);box-shadow:var(--shadow-pop);margin:0 auto;display:grid;overflow:hidden}.sdk-cell{aspect-ratio:1;border:0;border-right:1px solid var(--c-ink-muted);border-bottom:1px solid var(--c-ink-muted);background:var(--c-surface);min-width:0;min-height:0;color:var(--c-ink);font:inherit;cursor:pointer;touch-action:manipulation;border-radius:0;place-items:center;margin:0;padding:0;font-size:1.7rem;display:grid;position:relative}.sdk-cell--box-r{border-right:var(--outline-w) solid var(--c-outline)}.sdk-cell--box-b{border-bottom:var(--outline-w) solid var(--c-outline)}.sdk-cell--given{background:var(--c-surface-2);font-weight:900}.sdk-cell--entered{color:var(--c-entered,var(--c-focus));font-style:italic;font-weight:600}.sdk-cell--peer{background-image:linear-gradient(var(--c-dot), var(--c-dot));background-color:var(--c-surface)}.sdk-cell--given.sdk-cell--peer{background-color:var(--c-surface-2)}.sdk-cell--same{text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:3px}.sdk-cell--selected{outline:var(--outline-w-bold) solid var(--c-focus);outline-offset:calc(-1 * var(--outline-w-bold));z-index:1}.sdk-cell--hint-area{background-image:repeating-linear-gradient(45deg, var(--c-yellow) 0 3px, transparent 3px 9px)}.sdk-cell--hint-cell{outline:var(--outline-w-bold) dashed var(--c-green);outline-offset:calc(-1 * var(--outline-w-bold));z-index:1}.sdk-cell--mistake{outline:var(--outline-w) dashed var(--c-ink);outline-offset:calc(-1 * var(--outline-w));animation:.36s ease-in-out sdk-wobble}.sdk-cell__mark{color:var(--c-ink);font-size:.6em;font-style:normal;font-weight:900;position:absolute;top:1px;right:3px}.sdk-cell__mark--hint{color:var(--c-green);left:3px;right:auto}.sdk-notes{color:var(--c-ink-muted);place-items:center;font-size:.8rem;font-weight:700;line-height:1;display:grid;position:absolute;top:2px;bottom:2px;left:2px;right:2px}.sdk-status{text-align:center;min-height:1.4em;margin:0;font-weight:700}.sdk-btn{min-height:var(--tap);min-width:var(--tap);border:var(--outline-w) solid var(--c-outline);border-radius:var(--radius-sm);background:var(--c-surface);color:var(--c-ink);font:inherit;box-shadow:var(--shadow-pop);cursor:pointer;touch-action:manipulation;transition:transform var(--speed) ease;font-weight:800}.sdk-btn:active:not(:disabled){box-shadow:2px 2px 0 var(--c-shadow);transform:translate(2px,2px)}.sdk-btn:disabled{opacity:.55;cursor:not-allowed}.sdk-btn[aria-pressed=true]{background:var(--c-green);color:var(--c-on-accent)}.sdk-btn[aria-pressed=true]:before{content:"✓ "}.sdk-digits{grid-template-columns:repeat(var(--sdk-cols,4), 1fr);gap:4px;display:grid}@media (max-width:359px){.sdk[data-size="6"] .sdk-digits{grid-template-columns:repeat(3,1fr)}}.sdk-digit{min-height:56px;padding:0;font-size:1.5rem;position:relative}.sdk-digit:after{content:attr(data-left);color:var(--c-ink-muted);font-size:.7rem;font-weight:700;position:absolute;bottom:2px;right:4px}.sdk-digit--hint{background:var(--c-yellow);color:var(--c-on-yellow);outline:var(--outline-w) dashed var(--c-shadow);outline-offset:2px}.sdk-digit--hint:after{color:var(--c-on-yellow)}.sdk-tools{grid-template-columns:repeat(auto-fit,minmax(min(100%,7rem),1fr));gap:8px;display:grid}.sdk-tool{overflow-wrap:anywhere;min-width:0;padding:8px 10px;font-size:.95rem}.sdk-tool--check{background:var(--c-blue);color:var(--c-on-accent)}@keyframes sdk-wobble{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}@media (prefers-reduced-motion:reduce){.sdk-cell--mistake{animation:none}.sdk-btn{transition:none}}.sdk[data-size="9"] .sdk-cell{font-size:1.25rem}.sdk[data-size="9"] .sdk-notes{font-size:.6rem}.mem{-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:12px;width:100%;max-width:640px;margin:0 auto;display:flex}.mem-grid{width:min(100%, calc(var(--mem-cols) * 104px), max(calc((100dvh - 240px) * var(--mem-cols) / var(--mem-rows)), calc(var(--mem-cols) * 56px)));min-width:calc(var(--mem-cols) * var(--tap) + (var(--mem-cols) - 1) * 8px);gap:8px;margin:0 auto;display:grid}.mem-card{aspect-ratio:1;min-width:var(--tap);min-height:var(--tap);cursor:pointer;touch-action:manipulation;perspective:600px;font:inherit;color:var(--c-ink);background:0 0;border:0;margin:0;padding:0;position:relative}.mem-card:focus-visible{outline:var(--outline-w-bold) solid var(--c-focus);outline-offset:2px;border-radius:var(--radius-sm)}.mem-card__inner{transform-style:preserve-3d;transition:transform calc(var(--speed) * 1.8) ease-out;display:block;position:absolute;top:0;bottom:0;left:0;right:0}.mem-card[data-state=up] .mem-card__inner,.mem-card[data-state=matched] .mem-card__inner{transform:rotateY(180deg)}.mem-card__back,.mem-card__front{border:var(--outline-w) solid var(--c-outline);border-radius:var(--radius-sm);-webkit-backface-visibility:hidden;backface-visibility:hidden;box-shadow:var(--shadow-pop);place-items:center;display:grid;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.mem-card__back{background:var(--halftone), var(--c-blue);color:var(--c-on-accent);font-family:var(--font-display);font-size:clamp(1.2rem,5vw,2.2rem)}.mem-card__front{background:var(--c-surface);transform:rotateY(180deg)}.mem-card[data-state=matched] .mem-card__front{box-shadow:none;border-style:dashed}.mem-card[data-state=matched] .mf{opacity:.6}.mem-card__done{border:2px solid var(--c-outline);background:var(--c-green);min-width:1.3em;color:var(--c-on-accent);text-align:center;border-radius:999px;font-size:.85rem;font-weight:900;line-height:1.2;position:absolute;bottom:2px;left:3px}.mem-card__done--hint{background:var(--c-yellow);color:var(--c-on-yellow)}.mem-card--miss .mem-card__front{animation:.3s ease-in-out mem-wobble}.mem-card--hint-row:after{content:"";border:var(--outline-w) dashed var(--c-focus);border-radius:var(--radius);pointer-events:none;position:absolute;top:-4px;bottom:-4px;left:-4px;right:-4px}.mf{width:100%;height:100%;display:block}.mf-main{fill:var(--mem-color,var(--c-red));stroke:var(--c-outline);stroke-width:3.5px;stroke-linejoin:round}.mf-light{fill:var(--c-surface);stroke:var(--c-outline);stroke-width:3px;stroke-linejoin:round}.mf-ink{fill:var(--c-outline);stroke:none}.mf-line{fill:none;stroke:var(--c-outline);stroke-width:3.5px;stroke-linecap:round;stroke-linejoin:round}.mf-ring{fill:none;stroke:var(--c-outline);stroke-width:3.5px}.mf-snake-o{fill:none;stroke:var(--c-outline);stroke-width:17px;stroke-linecap:round}.mf-snake{fill:none;stroke:var(--mem-color,var(--c-red));stroke-width:10px;stroke-linecap:round}.mf-pat{fill:none;stroke:var(--c-ink-muted);stroke-width:2px;opacity:.45}.mf-pat-dots{fill:var(--c-ink-muted);opacity:.45}.mem-hint{border:var(--outline-w) dashed var(--c-focus);border-radius:var(--radius-sm);background:var(--c-surface);color:var(--c-ink);align-items:center;gap:10px;padding:6px 10px;display:flex}.mem-hint__face{border:2px solid var(--c-outline);border-radius:8px;flex:none;width:56px;height:56px}.mem-hint__mark{color:var(--c-focus)}.mem-status{text-align:center;min-height:1.5em;margin:0;font-weight:700}@keyframes mem-wobble{0%,to{translate:0}25%{translate:-3px}75%{translate:3px}}@media (prefers-reduced-motion:reduce){.mem-card__inner{transition:none}.mem-card--miss .mem-card__front{animation:none}}.mem-demo{grid-template-columns:repeat(2,1fr);gap:10px;width:100%;max-width:200px;margin:0 auto;display:grid;position:relative}.mem-demo__card{aspect-ratio:1;border:var(--outline-w) solid var(--c-outline);border-radius:var(--radius-sm);background:var(--c-surface);position:relative;overflow:hidden}.mem-demo__back{background:var(--halftone), var(--c-blue);color:var(--c-on-accent);font-family:var(--font-display);place-items:center;font-size:1.6rem;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.mem-demo__face{opacity:0;position:absolute;top:0;bottom:0;left:0;right:0}.mem-demo__card--p0 .mem-demo__face{animation:4s linear infinite mem-demo-open0}.mem-demo__card--p3 .mem-demo__face{animation:4s linear infinite mem-demo-open3}.mem-demo__hand{border:2px solid var(--c-focus);background:var(--c-focus);opacity:.55;pointer-events:none;border-radius:50%;width:28px;height:28px;animation:4s ease-in-out infinite mem-demo-hand;position:absolute;top:0;left:0;translate:180px 180px}@keyframes mem-demo-hand{0%{translate:170px 170px}20%,30%{translate:36px 36px}55%,to{translate:140px 140px}}@keyframes mem-demo-open0{0%,25%{opacity:0}30%,to{opacity:1}}@keyframes mem-demo-open3{0%,50%{opacity:0}55%,to{opacity:1}}.seq{-webkit-user-select:none;user-select:none;flex-direction:column;gap:12px;width:100%;max-width:560px;margin:0 auto;display:flex}.seq-patterns{width:0;height:0;position:absolute;overflow:hidden}.seq-progress{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;font-weight:700;display:flex}.seq-progress__dots{gap:6px;display:flex}.seq-dot{border:var(--outline-w) solid var(--c-outline);background:var(--c-surface);border-radius:50%;place-items:center;width:22px;height:22px;font-size:.75rem;line-height:1;display:grid}.seq-dot--current{box-shadow:0 0 0 3px var(--c-focus)}.seq-dot--done{background:var(--c-green);color:var(--c-on-accent)}.seq-prompt{text-align:center;margin:0}.seq-row{grid-template-columns:repeat(var(--seq-n), minmax(0, 72px));justify-content:center;gap:6px;margin:0;padding:18px 0 0;list-style:none;display:grid}.seq-cell{aspect-ratio:1;border:var(--outline-w) solid var(--c-outline);border-radius:var(--radius-sm);background:var(--c-surface);min-width:0;box-shadow:3px 3px 0 var(--c-shadow);place-items:center;display:grid;position:relative}.seq-cell--slot{background:var(--c-surface-2);border-style:dashed}.seq-cell--filled{border-style:solid;animation:.32s ease-out seq-pop}.seq-num{font-family:var(--font-display);color:var(--c-ink);font-size:clamp(.85rem,4.2vw,1.5rem);font-weight:900;line-height:1}.seq-num--q{color:var(--c-ink-muted)}.seq-shape{width:86%;height:86%;overflow:visible}.seq-shape__body{stroke:var(--c-outline);stroke-width:2.5px;stroke-linejoin:round}.seq-fill--red{fill:var(--c-red)}.seq-fill--blue{fill:var(--c-blue)}.seq-fill--green{fill:var(--c-green)}.seq-fill--yellow{fill:var(--c-yellow)}.seq-mark{fill:var(--c-surface)}.seq-mark-line{stroke:var(--c-ink)}.seq-cell--pulse{animation:seq-pulse .7s ease-in-out calc(var(--seq-i) * .35s) 2 both;outline:3px solid var(--c-focus);outline-offset:2px}.seq-step{border:2px solid var(--c-outline);background:var(--c-yellow);color:var(--c-on-yellow);white-space:nowrap;z-index:1;animation:seq-fade .3s ease-out calc(var(--seq-i) * .35s) both;border-radius:8px;padding:0 4px;font-size:.75rem;font-weight:900;position:absolute;top:-20px;left:-3px;transform:translate(-50%)}.seq-feedback-wrap{min-height:1.4em}.seq-feedback{border:var(--outline-w) solid var(--c-outline);border-radius:var(--radius-sm);background:var(--c-surface-2);color:var(--c-ink);margin:0;padding:10px 12px;animation:.24s ease-out seq-fade}.seq-feedback--ok{border-color:var(--c-green)}.seq .seq-options{grid-template-columns:repeat(2,minmax(64px,1fr));gap:12px;width:100%;max-width:360px;margin:0 auto;display:grid}.seq .seq-opt{background:var(--c-surface);min-width:64px;min-height:88px;color:var(--c-ink);touch-action:manipulation;place-items:center;padding:8px;display:grid;position:relative}.seq .seq-opt .seq-shape{width:64px;height:64px}.seq .seq-opt .seq-num{font-size:1.75rem}.seq .seq-opt:disabled{cursor:default;opacity:1}.seq .seq-opt.seq-opt--tried{opacity:.55;box-shadow:none;border-style:dashed}.seq .seq-opt--correct{border-width:var(--outline-w-bold);border-color:var(--c-green);box-shadow:0 0 0 4px var(--c-green)}.seq .seq-opt--common{outline:3px solid var(--c-focus);outline-offset:2px;animation:seq-pulse .7s ease-in-out calc(var(--seq-i) * .35s) 2 both}.seq .seq-opt__mark{font-size:1.1rem;font-weight:900;position:absolute;top:4px;right:8px}.seq .seq-opt__mark--tried{color:var(--c-ink-muted)}.seq .seq-opt--shake{animation:.3s ease-in-out seq-shake}.seq .seq-next{align-self:center;min-width:200px}@keyframes seq-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}@keyframes seq-fade{0%{opacity:0}to{opacity:1}}@keyframes seq-pop{0%{transform:scale(.6)}70%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes seq-shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}@media (prefers-reduced-motion:reduce){.seq-cell--pulse,.seq-cell--filled,.seq .seq-opt--common,.seq .seq-opt--shake,.seq-step,.seq-feedback{animation:none}}:root{--font-ui:system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", "Helvetica Neue", Arial, sans-serif;--font-display:"Arial Black", "Segoe UI Black", system-ui, -apple-system, Roboto, sans-serif;--c-red:#d62839;--c-blue:#1f5bd8;--c-green:#15803d;--c-yellow:#ffd23f;--c-on-accent:#fff;--c-on-yellow:#14141c;--c-bg:#fff8e7;--c-surface:#fff;--c-surface-2:#fff1c7;--c-ink:#14141c;--c-ink-muted:#4a4a5a;--c-outline:#14141c;--c-dot:#d6283933;--c-focus:#1f5bd8;--c-shadow:#14141c;--outline-w:3px;--outline-w-bold:4px;--radius:14px;--radius-sm:10px;--shadow-pop:4px 4px 0 var(--c-shadow);--tap:48px;--gutter:max(16px, env(safe-area-inset-left));--game-edge:24px;--nav-h:64px;--halftone:radial-gradient(var(--c-dot) 26%, transparent 28%) 0 0 / 12px 12px;--speed:.16s;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--c-bg:#121218;--c-surface:#1e1e2a;--c-surface-2:#2a2a3a;--c-ink:#f2f2f7;--c-ink-muted:#b8b8c8;--c-outline:#e8e8f0;--c-dot:#ffd23f12;--c-focus:#ffd23f;--c-shadow:#000;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--c-bg:#121218;--c-surface:#1e1e2a;--c-surface-2:#2a2a3a;--c-ink:#f2f2f7;--c-ink-muted:#b8b8c8;--c-outline:#e8e8f0;--c-dot:#ffd23f12;--c-focus:#ffd23f;--c-shadow:#000;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-contrast=high]{--c-ink-muted:var(--c-ink);--c-dot:transparent;--outline-w:4px}@media (prefers-reduced-motion:reduce){:root{--speed:0s}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}*,:before,:after{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--c-bg);background-image:var(--halftone);color:var(--c-ink);font-family:var(--font-ui);overflow-wrap:break-word;-webkit-hyphens:manual;hyphens:manual;-webkit-tap-highlight-color:transparent;font-size:1rem;line-height:1.4;overflow-x:hidden}#app{min-height:100dvh}:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px}h1,h2,h3{font-family:var(--font-display);letter-spacing:.02em;margin:0 0 12px;font-weight:900;line-height:1.15}h1{text-transform:uppercase;font-size:1.75rem}h2{font-size:1.25rem}.shell{flex-direction:column;min-height:100dvh;display:flex}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.shell__main{width:100%;max-width:720px;padding:max(16px, env(safe-area-inset-top)) var(--gutter) calc(var(--nav-h) + 24px + env(safe-area-inset-bottom));flex:1;margin:0 auto}.shell__main--game{padding:max(var(--game-edge), env(safe-area-inset-top)) max(var(--game-edge), env(safe-area-inset-right)) max(var(--game-edge), env(safe-area-inset-bottom)) max(var(--game-edge), env(safe-area-inset-left))}.bottom-nav{min-height:var(--nav-h);padding-bottom:env(safe-area-inset-bottom);background:var(--c-surface);border-top:var(--outline-w-bold) solid var(--c-outline);z-index:10;grid-template-columns:repeat(3,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav__item{min-width:0;min-height:var(--tap);color:var(--c-ink);overflow-wrap:anywhere;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:min(.875rem,6vw);font-weight:800;text-decoration:none;display:flex}.bottom-nav__item[aria-current=page]{background:var(--c-yellow);color:var(--c-on-yellow)}.bottom-nav__icon{width:26px;height:26px}.btn{min-height:var(--tap);min-width:var(--tap);border:var(--outline-w) solid var(--c-outline);border-radius:var(--radius-sm);background:var(--c-surface);color:var(--c-ink);font:inherit;overflow-wrap:anywhere;max-width:100%;box-shadow:var(--shadow-pop);cursor:pointer;transition:transform var(--speed) ease;touch-action:manipulation;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:1rem;font-weight:800;text-decoration:none;display:inline-flex}.btn:active{box-shadow:2px 2px 0 var(--c-shadow);transform:translate(2px,2px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--c-red);color:var(--c-on-accent);border-color:var(--c-shadow)}.btn--blue{background:var(--c-blue);color:var(--c-on-accent);border-color:var(--c-shadow)}.btn--green{background:var(--c-green);color:var(--c-on-accent);border-color:var(--c-shadow)}.btn--yellow{background:var(--c-yellow);color:var(--c-on-yellow);border-color:var(--c-shadow)}.btn--big{width:100%;min-height:64px;font-size:min(1.25rem,5.5vw);font-family:var(--font-display);text-transform:uppercase}.btn--icon{width:var(--tap);padding:0}.btn-row{flex-wrap:wrap;gap:12px;display:flex}.stack{flex-direction:column;gap:16px;display:flex}.panel{background:var(--c-surface);border:var(--outline-w) solid var(--c-outline);border-radius:var(--radius);box-shadow:var(--shadow-pop);padding:16px}.panel--muted{background:var(--c-surface-2);box-shadow:none}.muted{color:var(--c-ink-muted)}.plate{background:var(--c-yellow);color:var(--c-on-yellow);border:var(--outline-w-bold) solid var(--c-shadow);border-radius:var(--radius);box-shadow:var(--shadow-pop);align-items:center;gap:12px;padding:12px 16px;display:flex}.plate__name{font-family:var(--font-display);text-transform:uppercase;font-size:1.25rem}.avatar{border:var(--outline-w) solid var(--c-shadow);background:var(--c-blue);border-radius:50%;flex:none}.burst{background:var(--c-yellow);color:var(--c-on-yellow);border:var(--outline-w-bold) solid var(--c-shadow);font-family:var(--font-display);text-transform:uppercase;clip-path:polygon(0% 15%,10% 0%,25% 10%,40% 0%,55% 12%,70% 0%,85% 10%,100% 0%,95% 30%,100% 50%,94% 70%,100% 100%,80% 90%,65% 100%,50% 90%,35% 100%,20% 88%,5% 100%,6% 70%,0% 50%,5% 30%);padding:8px 16px;font-size:2rem;display:inline-block;transform:rotate(-4deg)}.type-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.type-card{flex-direction:column;min-height:112px;font-size:1.1rem}.type-card[aria-pressed=true]{background:var(--c-blue);color:var(--c-on-accent)}.segmented{flex-wrap:wrap;gap:8px;display:flex}.segmented .btn[aria-pressed=true]{background:var(--c-green);color:var(--c-on-accent)}.game{min-height:calc(100dvh - 2 * var(--game-edge));flex-direction:column;gap:16px;display:flex}.game__bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.game__title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin:0;font-size:1.125rem;font-weight:800;overflow:hidden}.game__field{flex:1;place-items:center;width:100%;max-width:640px;margin:0 auto;display:grid}.hint-bubble{background:var(--c-surface);border:var(--outline-w) solid var(--c-outline);border-radius:var(--radius);padding:12px 16px;font-weight:700}.puzzle-stub{text-align:center;border:var(--outline-w-bold) dashed var(--c-outline);border-radius:var(--radius);background:var(--c-surface);flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:240px;padding:16px;display:flex}.puzzle-stub__title{font-family:var(--font-display);margin:0 0 8px;font-size:1.5rem}.puzzle-stub__hint{color:var(--c-ink-muted);margin:0}.overlay{z-index:20;padding:var(--gutter);background:var(--c-bg);background-image:var(--halftone);place-items:safe center;display:grid;position:fixed;top:0;bottom:0;left:0;right:0;overflow-y:auto}.overlay__card{width:100%;min-width:0;max-width:420px}.banner{border:var(--outline-w) solid var(--c-outline);border-radius:var(--radius-sm);background:var(--c-surface-2);margin-bottom:16px;padding:12px 16px;font-weight:700}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.stats dt{color:var(--c-ink-muted)}.stats dd{margin:0;font-weight:800}.setting{min-height:var(--tap);border-bottom:2px dashed var(--c-surface-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:4px 0;display:flex}.setting select{min-width:0;max-width:100%}.setting input[type=checkbox]{width:var(--tap);height:var(--tap);accent-color:var(--c-green);flex:none}.setting select,.text-input{min-height:var(--tap);border:var(--outline-w) solid var(--c-outline);border-radius:var(--radius-sm);background:var(--c-surface);color:var(--c-ink);font:inherit;padding:0 12px}.debug{border:2px dashed var(--c-ink-muted);border-radius:var(--radius-sm);padding:8px;font-size:.8rem}.debug pre{white-space:pre-wrap;word-break:break-all;max-height:200px;overflow:auto}body:before{content:"";height:env(safe-area-inset-top,0px);background:var(--c-bg);z-index:1000;pointer-events:none;position:fixed;top:0;bottom:auto;left:0;right:0}.install-steps{gap:8px;margin:0;padding-left:1.4em;line-height:1.4;display:grid}.start-screen__card{text-align:center;align-items:center}.start-screen__card .install-steps{text-align:left}.start-screen__logo{border:var(--outline-w-bold) solid var(--c-outline);border-radius:22px}.start-screen__title{font-family:var(--font-display);letter-spacing:.02em;margin:0;font-size:clamp(2rem,9vw,2.8rem);line-height:1.1}.start-screen__subtitle{margin:0;font-weight:700}.start-screen__arrow{left:50%;bottom:calc(8px + env(safe-area-inset-bottom));pointer-events:none;font-size:2.2rem;line-height:1;animation:1.2s ease-in-out infinite start-arrow;position:fixed;transform:translate(-50%)}@keyframes start-arrow{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,10px)}}@media (prefers-reduced-motion:reduce){.start-screen__arrow{animation:none}*,:before,:after{animation-delay:0s!important}}.avatar{border:var(--outline-w) solid var(--c-shadow);border-radius:50%;flex:none;display:block}.plate__body{flex:1;min-width:0}.avatar-picker{flex-wrap:wrap;gap:8px;display:flex}.avatar-picker__item{min-width:var(--tap);min-height:var(--tap);border:var(--outline-w) solid transparent;cursor:pointer;background:0 0;border-radius:50%;place-items:center;padding:2px;display:grid}.avatar-picker__item[aria-checked=true]{border-color:var(--c-focus);background:var(--c-surface-2);box-shadow:var(--shadow-pop)}.rankbar__track{border:var(--outline-w) solid var(--c-shadow);background:var(--c-surface);border-radius:999px;height:16px;overflow:hidden}.rankbar__fill{background:var(--c-green);height:100%;transition:width .9s}.rankbar__label{margin-top:4px;font-size:.875rem;font-weight:700}.rankbar--compact .rankbar__track{height:12px}.starrow{justify-content:center;align-items:center;gap:8px;font-size:3rem;line-height:1;display:flex}.starrow__star--on,.starrow__gold{color:var(--c-yellow);-webkit-text-stroke:2px var(--c-shadow);paint-order:stroke fill;text-shadow:3px 3px 0 var(--c-shadow)}.starrow__star--off{color:var(--c-ink-muted)}.starrow__gold{margin-left:8px}.starrow__star--anim{animation:.52s cubic-bezier(.2,1.4,.4,1) both star-pop}.starrow__gold--anim{animation:.7s cubic-bezier(.2,1.6,.4,1) both star-pop}@keyframes star-pop{0%{opacity:0;transform:scale(0)rotate(-40deg)}70%{opacity:1;transform:scale(1.35)rotate(8deg)}to{opacity:1;transform:scale(1)rotate(0)}}.result__head{text-align:center}.result .burst{animation:.6s cubic-bezier(.2,1.5,.4,1) both bam-pop}.result .burst--gold{font-size:3rem;animation:.8s cubic-bezier(.2,1.5,.4,1) 1.1s both bam-pop}@keyframes bam-pop{0%{opacity:0;transform:scale(.1)rotate(-25deg)}60%{opacity:1;transform:scale(1.35)rotate(-2deg)}to{opacity:1;transform:scale(1)rotate(-4deg)}}.result__points{text-align:center;margin:0;font-size:1.25rem}.rankup{z-index:30;padding:var(--gutter);background:var(--c-bg);background-image:var(--halftone);color:var(--c-ink);font:inherit;cursor:pointer;border:0;flex-direction:column;justify-content:center;align-items:center;gap:16px;animation:.3s both rankup-in;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.rankup__title{font-family:var(--font-display);text-transform:uppercase;text-align:center;font-size:2.25rem}.rankup__hint{color:var(--c-ink-muted)}@keyframes rankup-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.spinner{flex-direction:column;align-items:center;gap:12px;font-weight:800;display:flex}.spinner__ring{border:6px solid var(--c-surface-2);border-top-color:var(--c-red);border-radius:50%;width:48px;height:48px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.history,.ranks{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.history__row,.ranks__row{border-bottom:2px dashed var(--c-surface-2);grid-template-columns:1fr auto auto;align-items:center;gap:12px;min-height:32px;display:grid}.ranks__row{grid-template-columns:1fr auto}.ranks__row[aria-current=true]{font-weight:900}.tutorial__steps{flex-direction:column;gap:6px;margin:0;padding-left:1.25rem;display:flex}.demo{width:100%;max-width:280px;margin:0 auto;display:block}.demo__floor{fill:var(--c-surface-2)}.demo__wall{stroke:var(--c-outline);stroke-width:4px;stroke-linecap:round}.demo__thin{stroke:var(--c-ink-muted);stroke-width:1px}.demo__trail{stroke:var(--c-blue);stroke-width:5px;stroke-linecap:round;stroke-dasharray:210;stroke-dashoffset:0;animation:5s linear infinite demo-trail}.demo__hero{fill:var(--c-red);stroke:var(--c-shadow);stroke-width:2px}.demo__goal{fill:var(--c-yellow);stroke:var(--c-shadow);stroke-width:1px;font-size:22px}.demo__empty{fill:var(--c-surface)}.demo__digit{fill:var(--c-ink);font-size:18px;font-weight:800;font-family:var(--font-display)}.demo__digit--new{fill:var(--c-blue);animation:4s linear infinite demo-digit}.demo__finger{fill:var(--c-blue);fill-opacity:.45;stroke:var(--c-blue);stroke-width:2px}.demo__finger-tip{fill:none;stroke:var(--c-blue);stroke-width:2px}.demo__hand--maze{animation:5s linear infinite demo-hand-maze;transform:translate(110px,20px)}.demo__hand--sudoku{animation:4s ease-in-out infinite demo-hand-sudoku;transform:translate(42px,18px)}@keyframes demo-hand-maze{0%{transform:translate(20px,20px)}11%{transform:translate(50px,20px)}34%{transform:translate(50px,80px)}46%{transform:translate(80px,80px)}69%{transform:translate(80px,20px)}80%,to{transform:translate(110px,20px)}}@keyframes demo-trail{0%{stroke-dashoffset:210px}80%,to{stroke-dashoffset:0}}@keyframes demo-hand-sudoku{0%{transform:translate(95px,95px)scale(1)}40%{transform:translate(42px,18px)scale(1)}50%{transform:translate(42px,18px)scale(.8)}60%,to{transform:translate(42px,18px)scale(1)}}@keyframes demo-digit{0%,50%{opacity:0}60%,to{opacity:1}}.demo__cell{stroke:var(--c-outline);stroke-width:2px}.demo__hand--sequence{animation:4s ease-in-out infinite demo-hand-sequence;transform:translate(105px,72px)}@keyframes demo-hand-sequence{0%{transform:translate(75px,98px)scale(1)}40%{transform:translate(105px,72px)scale(1)}50%{transform:translate(105px,72px)scale(.8)}60%,to{transform:translate(105px,72px)scale(1)}}.hint-bubble p{margin:0 0 8px}.hint-bubble p:last-child{margin-bottom:0}@media (orientation:landscape) and (min-width:700px){.game{grid-template-columns:minmax(0,1fr) 240px;grid-auto-rows:min-content;align-content:start;column-gap:24px;display:grid}.game>.game__field{grid-area:1/1/span 12}.game>.game__bar,.game>.hint-bubble,.game>.debug{grid-column:2}.game__bar{flex-direction:column;align-items:stretch}.game__bar .btn-row{justify-content:space-between}}.plate__avatar-btn{min-width:var(--tap);min-height:var(--tap);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.profile-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.profile-list__item{width:100%;min-height:var(--tap);border:var(--outline-w) solid var(--c-outline);border-radius:var(--radius-sm);background:var(--c-surface);color:var(--c-ink);font:inherit;text-align:left;cursor:pointer;flex-wrap:wrap;align-items:center;gap:12px;padding:8px 12px;display:flex}.profile-list__item[aria-current=true]{background:var(--c-surface-2);border-width:var(--outline-w-bold)}.profile-list__name{flex:1;min-width:0;font-weight:700}.tabs{flex-wrap:wrap;gap:8px;display:flex}.tabs .btn[aria-selected=true]{background:var(--c-surface-2);border-width:var(--outline-w-bold);font-weight:700;text-decoration:underline}.podium{flex-wrap:wrap;align-items:flex-end;gap:8px;margin:0;padding:0;list-style:none;display:flex}.podium__step{border:var(--outline-w) solid var(--c-outline);border-radius:var(--radius-sm);background:var(--c-surface-2);text-align:center;flex-direction:column;flex:7rem;align-items:center;gap:4px;min-width:0;padding:8px;display:flex}.podium__step--1{border-width:var(--outline-w-bold);padding-top:20px}.podium__place{font-family:var(--font-display);text-transform:uppercase}.podium__name{overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;max-width:100%;font-weight:700}.team__who{align-items:center;gap:8px;min-width:0;display:inline-flex}.badges{gap:8px;margin:0;padding:0;list-style:none;display:grid}.badge{border:2px dashed var(--c-ink-muted);border-radius:var(--radius-sm);align-items:flex-start;gap:12px;padding:8px;display:flex}.badge--got{border:var(--outline-w) solid var(--c-outline);background:var(--c-surface-2)}.badge__icon{flex:none;font-size:1.5rem;line-height:1}.badge__body{flex-direction:column;min-width:0;display:flex}.badge-toast{top:8px;left:var(--gutter);right:var(--gutter);z-index:25;border:var(--outline-w-bold) solid var(--c-shadow);border-radius:var(--radius);background:var(--c-surface);max-width:420px;color:var(--c-ink);box-shadow:var(--shadow-pop);text-align:center;cursor:pointer;flex-direction:column;align-items:center;gap:4px;margin:0 auto;padding:12px;animation:.3s both rankup-in;display:flex;position:fixed}.badge-toast__list{font-weight:700}.adult-tag{border:var(--outline-w) solid var(--c-outline);border-radius:var(--radius-sm);background:var(--c-surface-2);white-space:nowrap;padding:0 8px;font-size:.85em;display:inline-block}.online-row{flex-wrap:wrap;gap:8px}.online-row__place{text-align:right;min-width:2ch}.online-row__end{align-items:center;gap:8px;display:inline-flex}.online-row__menu{min-width:48px;min-height:48px}.online-menu{flex-wrap:wrap;gap:8px;width:100%;margin:0;padding:0;list-style:none;display:flex}.btn--link{min-height:48px;box-shadow:none;background:0 0;text-decoration:underline}.league-code{font-family:var(--font-display);letter-spacing:.15em;font-size:1.4em}.tabs .btn[aria-pressed=true]{background:var(--c-surface-2);border-width:var(--outline-w-bold);font-weight:700;text-decoration:underline}.history__row--record{grid-template-columns:minmax(0,1fr) auto;row-gap:2px;padding:6px 0}.history__row--record>:first-child{overflow-wrap:normal;word-break:normal}.history__row--record>:last-child{grid-column:1/-1}.profile-list__text{text-align:left;flex-direction:column;flex:1;min-width:0;display:flex}.online-row>.team__who{min-width:0;display:flex}.online-row>.team__who>span:last-child{flex-direction:column;align-items:flex-start;gap:2px;min-width:0;display:flex}.online-row__end{white-space:nowrap}.online-row{grid-template-columns:minmax(min-content,1fr) auto}.online-row .adult-tag{white-space:nowrap;padding:0 4px;font-size:.75em}.online-row>.team__who>span:last-child{min-width:min-content}.avatar-picker{grid-template-columns:repeat(3,1fr);justify-items:center;gap:12px;display:grid}@media (min-width:560px){.avatar-picker{grid-template-columns:repeat(6,1fr)}}.badge__body{overflow-wrap:anywhere;min-width:0}.my-hero__current{text-align:center;justify-items:center;gap:8px;display:grid}.collection-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 8px;margin:0;padding:0;list-style:none;display:grid}.collection-item{text-align:center;align-content:start;justify-items:center;gap:2px;min-width:0;display:grid}.collection-item__icon{display:inline-grid;position:relative}.collection-item--locked .collection-item__icon .avatar{filter:grayscale()contrast(.9);opacity:.55}.collection-item__lock{font-size:1.1rem;line-height:1;position:absolute;bottom:-2px;right:-4px}.collection-item__name{overflow-wrap:anywhere;font-size:.85rem;font-weight:700;line-height:1.2}.collection-item__hint{overflow-wrap:anywhere;font-size:.78rem;line-height:1.2}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.week-bars{gap:6px;margin:0;padding:0;list-style:none;display:grid}.week-bars li{grid-template-columns:5.5em 1fr 4.5em;align-items:center;gap:8px;display:grid}.week-bars__track{border:var(--outline-w) solid var(--c-outline);border-radius:var(--radius-sm);background:var(--c-surface);height:14px;display:block;overflow:hidden}.week-bars__fill{background:var(--c-green);height:100%;display:block}.week-bars__val{text-align:right}.fallback-q{text-align:center;font-size:1.6rem;font-weight:800}.limit-warning{left:var(--gutter);right:var(--gutter);top:var(--gutter);z-index:15;border:var(--outline-w) solid var(--c-outline);border-radius:var(--radius-sm);background:var(--c-surface-2);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;font-weight:700;display:flex;position:fixed}
