@import"https://fonts.googleapis.com/css2?family=Gabarito:wght@400;500;600;700;800;900&family=Onest:wght@300;400;500;600;700&display=swap";.lb{width:100%;max-width:20rem;margin:0 auto;display:grid;gap:.35rem;text-align:left}.lb-title{margin:0;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);text-align:center}.lb-list{list-style:none;margin:0;padding:0;display:grid;gap:.15rem;font-variant-numeric:tabular-nums}.lb-list li{display:grid;grid-template-columns:1.75rem 1fr auto;align-items:center;gap:.5rem;padding:.3rem .6rem;border-radius:8px;font-size:.92rem;color:var(--ink-1)}.lb-list li:nth-child(odd){background:var(--surface-sunken)}.lb-list li.is-me{background:var(--primary);color:var(--ink-on-primary)}.lb-rank{text-align:center;font-weight:600;opacity:.8}.lb-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-score{font-weight:700;white-space:nowrap}.lb-note{margin:0;font-size:.85rem;color:var(--ink-3);text-align:center}.lb-page{max-width:32rem;margin:0 auto;display:grid;gap:.9rem}.lb-page-sub{margin:0;color:var(--ink-3)}.lb-page-games,.lb-page-boards{display:flex;flex-wrap:wrap;gap:.4rem}.lb-page-chip{border:1px solid var(--border);background:var(--surface-card);color:var(--ink-1);border-radius:999px;padding:.4rem .85rem;font-size:.9rem;cursor:pointer}.lb-page-chip.small{padding:.3rem .75rem;font-size:.85rem}.lb-page-chip.active{background:var(--primary);color:var(--ink-on-primary);border-color:var(--primary)}.lb-page-table{padding:1rem .75rem;border:1px solid var(--border);border-radius:12px;background:var(--surface-card)}.lb-page-table .lb{max-width:none}.lb-page-play{justify-self:center;color:var(--primary);font-weight:600}.connect-four-page{--c4-green: var(--primary);--c4-green-deep: var(--primary-press);--c4-cream: var(--surface-card);--c4-cream-ink: var(--ink-on-primary);--c4-cream-soft: var(--surface-sunken);--c4-gold: var(--secondary);--c4-red: var(--danger);--c4-ink: var(--ink-1);--c4-line: var(--border);max-width:640px;margin:0 auto;padding:1rem 1rem 3rem;color:var(--c4-ink);font-family:var(--font-text)}.c4-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.c4-title{font-family:var(--font-display);font-size:1.6rem;font-weight:600;margin:0;flex:1}.c4-back{color:var(--c4-green);text-decoration:none;font-weight:600;font-size:.95rem;background:none;border:none;cursor:pointer;padding:0}.c4-back.as-button{color:var(--c4-ink);opacity:.65}.c4-back:hover{text-decoration:underline}.c4-panel{background:var(--c4-cream);border:1px solid var(--c4-line);border-radius:14px;padding:1rem;box-shadow:0 8px 22px #274c301f}.c4-modepick{display:grid;gap:.85rem}.c4-modecard{display:flex;flex-direction:column;gap:.2rem;padding:1.1rem;border-radius:12px;border:1px solid var(--c4-line);background:var(--c4-cream-soft);cursor:pointer;text-align:left;transition:transform .08s ease,box-shadow .12s ease}.c4-modecard:hover{transform:translateY(-2px);box-shadow:0 6px 16px #274c3026}.c4-modecard-emoji{font-size:1.7rem}.c4-modecard-title{font-family:var(--font-display);font-size:1.15rem;font-weight:600}.c4-modecard-sub{font-size:.85rem;opacity:.7}.c4-toolbar{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between;margin-bottom:.75rem}.c4-difficulty,.c4-starter{display:flex;align-items:center;gap:.35rem}.c4-starter-label{font-size:.8rem;opacity:.65;margin-right:.1rem}.c4-chip{font:inherit;font-size:.82rem;padding:.32rem .7rem;border-radius:999px;border:1px solid var(--c4-line);background:transparent;color:var(--c4-ink);cursor:pointer}.c4-chip.active{background:var(--c4-green);border-color:var(--c4-green);color:var(--c4-cream-ink)}.c4-status{text-align:center;font-family:var(--font-display);font-size:1.25rem;font-weight:600;padding:.5rem 0 .75rem;min-height:1.6em}.c4-status.is-over{color:var(--c4-green)}.c4-seat-line{display:flex;align-items:center;gap:.35rem;font-size:.9rem;opacity:.85;margin-bottom:.25rem}.c4-board{display:grid;grid-template-columns:repeat(7,1fr);align-items:start;gap:2.2%;background:var(--c4-green);border-radius:12px;padding:2.5%;box-shadow:inset 0 2px 8px #00000040;-webkit-user-select:none;user-select:none}.c4-board.is-disabled{cursor:default}.c4-column{display:flex;flex-direction:column;gap:12%;cursor:pointer}.c4-board.is-disabled .c4-column{cursor:default}.c4-column:hover{background:#ffffff0d;border-radius:8px}.c4-board.is-disabled .c4-column:hover{background:none}.c4-cell{aspect-ratio:1 / 1;display:flex;align-items:center;justify-content:center}.c4-disc{width:100%;height:100%;border-radius:50%;display:block;transition:transform .12s ease}.c4-cell.empty .c4-disc{background:var(--c4-cream);box-shadow:inset 0 2px 4px #0003}.c4-cell.p1 .c4-disc{background:var(--c4-red);box-shadow:inset 0 -3px 6px #00000040}.c4-cell.p2 .c4-disc{background:var(--c4-gold);box-shadow:inset 0 -3px 6px #00000040}.c4-cell.win .c4-disc{transform:scale(1.06);box-shadow:0 0 0 3px var(--c4-cream),0 0 12px 3px #fff9}.c4-scoreboard{display:flex;justify-content:space-around;align-items:center;margin-top:.85rem;font-size:.9rem}.c4-score{display:flex;align-items:center;gap:.35rem}.c4-score strong{font-family:var(--font-display);font-size:1.1rem}.c4-dot{width:.85rem;height:.85rem;border-radius:50%;display:inline-block}.c4-dot.p1{background:var(--c4-red)}.c4-dot.p2{background:var(--c4-gold)}.c4-actions{display:flex;gap:.6rem;justify-content:center;margin-top:1rem}.c4-btn{font:inherit;font-weight:600;padding:.6rem 1.2rem;border-radius:10px;border:1px solid var(--c4-line);background:var(--c4-cream-soft);color:var(--c4-ink);cursor:pointer}.c4-btn:hover{filter:brightness(.98)}.c4-btn.primary{background:var(--c4-green);border-color:var(--c4-green);color:var(--c4-cream-ink)}.c4-btn.ghost{background:transparent}.c4-btn:disabled{opacity:.5;cursor:default}.c4-lobby{display:grid;gap:.85rem;text-align:center}.c4-lobby-divider{font-size:.8rem;opacity:.6}.c4-join-row{display:flex;gap:.5rem;justify-content:center}.c4-code-input{font:inherit;font-family:var(--font-display);font-size:1.4rem;letter-spacing:.3em;text-align:center;text-transform:uppercase;width:6.5rem;padding:.4rem .5rem;border-radius:10px;border:1px solid var(--c4-line);background:var(--surface-card);color:var(--c4-ink)}.c4-error{color:var(--c4-red);font-size:.85rem}.c4-hint{opacity:.7;font-size:.9rem}.c4-waiting{display:grid;gap:1rem;text-align:center;padding:1rem 0}.c4-waiting-title{font-family:var(--font-display);font-size:1.15rem;margin:0}.c4-code-display{display:grid;gap:.25rem}.c4-code-label{font-size:.8rem;opacity:.6}.c4-code-value{font-family:var(--font-display);font-size:2.4rem;font-weight:600;letter-spacing:.25em;color:var(--c4-green)}.hangman{--hm-forest: var(--primary);--hm-forest-dark: var(--primary-press);--hm-cream: var(--ink-on-primary);--hm-card: var(--surface-card);--hm-gold: var(--secondary);--hm-terracotta: var(--danger);--hm-ink: var(--ink-1);--hm-line: var(--border);max-width:560px;margin:0 auto}.hm-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem}.hm-back{text-decoration:none;color:var(--hm-forest);font-weight:600;font-size:.9rem}.hm-title{font-family:var(--font-display);margin:0}.hm-panel{background:var(--hm-card);border:1px solid var(--hm-line);border-radius:14px;padding:1.5rem;box-shadow:var(--shadow-1);display:grid;gap:1rem;justify-items:center}.hm-themes{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.hm-chip{border:1px solid var(--hm-line);background:var(--surface-card);color:var(--hm-ink);border-radius:999px;padding:.4rem .9rem;font-size:.85rem;cursor:pointer}.hm-chip.active{background:var(--hm-forest);color:var(--hm-cream);border-color:var(--hm-forest)}.hm-gallows{width:140px;height:160px}.hm-line{stroke:var(--hm-ink);stroke-width:3;stroke-linecap:round;fill:none;opacity:.35}.hm-part{stroke:var(--hm-terracotta);stroke-width:4;stroke-linecap:round;fill:none}circle.hm-part{fill:none}.hm-word{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}.hm-slot{width:1.6rem;height:2.1rem;border-bottom:3px solid var(--hm-forest);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:1.3rem;font-weight:600;text-transform:uppercase;color:var(--hm-ink)}.hm-status{font-weight:600;color:var(--hm-ink);text-align:center}.hm-status.is-over{color:var(--hm-forest-dark);font-size:1.05rem}.hm-keyboard{display:grid;grid-template-columns:repeat(7,1fr);gap:.35rem;width:100%}.hm-key{border:1px solid var(--hm-line);background:var(--surface-card);border-radius:8px;padding:.5rem 0;font-weight:600;cursor:pointer;color:var(--hm-ink)}.hm-key:disabled{cursor:default;opacity:.45}.hm-key.right{background:var(--hm-forest);color:var(--hm-cream);border-color:var(--hm-forest);opacity:1}.hm-key.wrong{background:var(--hm-terracotta);color:var(--white);border-color:var(--hm-terracotta);opacity:1}.hm-wrong-list{margin:0;font-size:.85rem;opacity:.7}.hm-scoreboard{display:flex;gap:1.5rem;font-size:.9rem;color:var(--hm-ink)}.hm-actions{display:flex;gap:.75rem}.hm-btn{border-radius:999px;padding:.6rem 1.4rem;font-weight:600;border:1px solid var(--hm-forest);background:var(--surface-card);color:var(--hm-forest);cursor:pointer}.hm-btn.primary{background:var(--hm-forest);color:var(--hm-cream)}.hm-btn.primary:hover{background:var(--hm-forest-dark)}@media (max-width: 420px){.hm-keyboard{grid-template-columns:repeat(6,1fr)}}.hm-record{margin:.5rem 0 0;text-align:center;font-weight:600;color:var(--ink-2)}.hm-leaderboard{margin-top:1.25rem}.sudoku{--su-forest: var(--primary);--su-forest-dark: var(--primary-press);--su-cream: var(--ink-on-primary);--su-card: var(--surface-card);--su-gold: var(--secondary);--su-terracotta: var(--primary-hover);--su-ink: var(--ink-1);--su-line-soft: var(--border);--su-line-strong: var(--border-strong);max-width:480px;margin:0 auto;outline:none}.su-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem}.su-back{text-decoration:none;color:var(--su-forest);font-weight:600;font-size:.9rem}.su-title{font-family:var(--font-display);margin:0}.su-panel{background:var(--su-card);border:1px solid var(--su-line-soft);border-radius:14px;padding:1.5rem;box-shadow:0 3px 10px #26231d1f;display:grid;gap:1rem;justify-items:center}.su-toolbar{display:flex;align-items:center;justify-content:space-between;width:100%}.su-difficulty{display:flex;gap:.4rem}.su-chip{border:1px solid var(--su-line-soft);background:var(--surface-card);color:var(--su-ink);border-radius:999px;padding:.35rem .8rem;font-size:.82rem;cursor:pointer}.su-chip.active{background:var(--su-forest);color:var(--su-cream);border-color:var(--su-forest)}.su-timer{font-family:Menlo,Consolas,monospace;font-size:1rem;font-weight:600;color:var(--su-forest-dark)}.su-grid{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));width:100%;aspect-ratio:1;border:2px solid var(--su-line-strong);border-radius:6px;overflow:hidden;background:var(--surface-card)}.su-cell{border:1px solid var(--su-line-soft);background:var(--surface-card);display:flex;align-items:center;justify-content:center;font-size:clamp(.9rem,3.2vw,1.2rem);font-weight:600;color:var(--su-forest-dark);cursor:pointer;padding:0}.su-cell.box-left{border-left:2px solid var(--su-line-strong)}.su-cell.box-top{border-top:2px solid var(--su-line-strong)}.su-cell.given{color:var(--su-ink);cursor:default;font-weight:700}.su-cell.entry{color:var(--su-terracotta)}.su-cell.in-line{background:#22402f0f}.su-cell.same-value{background:#d6a4192e}.su-cell.selected{background:#22402f2e}.su-cell.conflict{color:var(--danger);background:var(--danger-soft)}.su-grid.is-solved .su-cell{color:var(--su-forest)}.su-numpad{display:grid;grid-template-columns:repeat(5,1fr);gap:.4rem;width:100%}.su-num{border:1px solid var(--su-line-soft);background:var(--surface-card);border-radius:8px;padding:.55rem 0;font-weight:600;font-size:1rem;color:var(--su-forest-dark);cursor:pointer}.su-num:hover{background:#22402f14}.su-erase{color:var(--su-terracotta)}.su-solved-banner{font-weight:700;font-family:var(--font-display);color:var(--su-forest-dark);font-size:1.1rem}.su-actions{display:flex}.su-btn{border-radius:999px;padding:.6rem 1.4rem;font-weight:600;border:1px solid var(--su-forest);background:var(--surface-card);color:var(--su-forest);cursor:pointer}.su-btn.primary{background:var(--su-forest);color:var(--su-cream)}.su-btn.primary:hover{background:var(--su-forest-dark)}.su-record{margin-top:.25rem;font-size:.9rem;font-weight:600}.su-leaderboard{margin-top:1.25rem}.freecell{--fc-forest: var(--primary);--fc-forest-dark: var(--primary-press);--fc-cream: var(--ink-on-primary);--fc-card-bg: var(--surface-card);--fc-gold: var(--secondary);--fc-terracotta: var(--danger);--fc-ink: var(--ink-1);--fc-line: var(--border);--fc-red: var(--danger);max-width:720px;margin:0 auto}.fc-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem}.fc-back{text-decoration:none;color:var(--fc-forest);font-weight:600;font-size:.9rem}.fc-title{font-family:var(--font-display);margin:0}.fc-panel{background:var(--fc-card-bg);border:1px solid var(--fc-line);border-radius:14px;padding:1.25rem;box-shadow:var(--shadow-1);display:grid;gap:1rem}.fc-top-row{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.fc-frees,.fc-foundations{display:flex;gap:.5rem}.fc-slot{width:3.4rem;height:4.7rem;border:2px dashed var(--fc-line);border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;background:#26231d05}.fc-slot.target-selected{border-color:var(--fc-gold)}.fc-foundation{font-weight:700;font-size:1.1rem;cursor:default}.fc-foundation.red{color:var(--fc-red)}.fc-foundation.black{color:var(--fc-ink)}.fc-tableau{display:grid;grid-template-columns:repeat(8,1fr);gap:.4rem}.fc-column{position:relative;min-height:7rem;height:16rem;border-radius:8px;background:#26231d08}.fc-card-wrap{position:absolute;left:0;right:0}.fc-card{border:1px solid var(--fc-line);background:var(--surface-card);border-radius:6px;height:3.4rem;display:flex;align-items:flex-start;justify-content:flex-start;padding:.25rem .35rem;font-weight:700;font-size:.95rem;box-shadow:0 1px 3px #26231d2e;cursor:pointer;-webkit-user-select:none;user-select:none}.fc-card.red{color:var(--fc-red)}.fc-card.black{color:var(--fc-ink)}.fc-card.selected{outline:3px solid var(--fc-gold);outline-offset:-1px}.fc-card.dimmed{opacity:.72}.fc-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}.fc-stats{font-size:.9rem;color:var(--fc-ink)}.fc-actions{display:flex;gap:.6rem}.fc-btn{border-radius:999px;padding:.5rem 1.1rem;font-weight:600;border:1px solid var(--fc-forest);background:var(--surface-card);color:var(--fc-forest);cursor:pointer;font-size:.85rem}.fc-btn.primary{background:var(--fc-forest);color:var(--fc-cream)}.fc-btn.primary:hover{background:var(--fc-forest-dark)}.fc-error{color:var(--fc-red);font-size:.85rem}.fc-hint{margin:0;font-size:.8rem;opacity:.65}.fc-won-banner{font-family:var(--font-display);font-weight:700;font-size:1.1rem;color:var(--fc-forest-dark)}@media (max-width: 640px){.fc-tableau{grid-template-columns:repeat(8,1fr);gap:.2rem}.fc-card{font-size:.75rem;padding:.2rem}.fc-slot{width:2.5rem;height:3.6rem}}.fc-record{margin-top:.25rem;font-size:.9rem;font-weight:600}.fc-leaderboard{margin-top:1.25rem}.go-fish{--gf2-forest: var(--primary);--gf2-forest-dark: var(--primary-press);--gf2-cream: var(--ink-on-primary);--gf2-card: var(--surface-card);--gf2-gold: var(--secondary);--gf2-terracotta: var(--danger);--gf2-ink: var(--ink-1);--gf2-line: var(--border);--gf2-red: var(--danger);max-width:560px;margin:0 auto}.gf2-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem}.gf2-back{text-decoration:none;color:var(--gf2-forest);font-weight:600;font-size:.9rem}.gf2-title{font-family:var(--font-display);margin:0}.gf2-panel{background:var(--gf2-card);border:1px solid var(--gf2-line);border-radius:14px;padding:1.5rem;box-shadow:var(--shadow-1);display:grid;gap:1rem}.gf2-field{display:grid;gap:.35rem;font-size:.85rem;font-weight:600;color:var(--gf2-ink)}.gf2-input,.gf2-code-input{padding:.6rem .8rem;border-radius:8px;border:1px solid var(--gf2-line);font-size:.95rem}.gf2-code-input{font-family:Menlo,Consolas,monospace;text-transform:uppercase;letter-spacing:.15em;flex:1}.gf2-divider{text-align:center;font-size:.8rem;opacity:.6}.gf2-join-row{display:flex;gap:.5rem}.gf2-btn{border-radius:999px;padding:.6rem 1.2rem;font-weight:600;border:1px solid var(--gf2-forest);background:var(--surface-card);color:var(--gf2-forest);cursor:pointer}.gf2-btn.primary{background:var(--gf2-forest);color:var(--gf2-cream)}.gf2-btn.primary:hover{background:var(--gf2-forest-dark)}.gf2-btn.ghost{border-color:var(--gf2-line);color:var(--gf2-ink)}.gf2-btn:disabled{opacity:.5;cursor:default}.gf2-error{color:var(--gf2-red);font-size:.85rem}.gf2-hint{margin:0;font-size:.85rem;opacity:.7}.gf2-waiting-title{font-family:var(--font-display);font-size:1.1rem;margin:0;text-align:center}.gf2-code-display{display:grid;gap:.25rem;text-align:center}.gf2-code-label{font-size:.8rem;opacity:.6}.gf2-code-value{font-family:Menlo,Consolas,monospace;font-size:2rem;font-weight:700;letter-spacing:.25em;color:var(--gf2-forest)}.gf2-players{display:grid;gap:.4rem}.gf2-player-chip{display:flex;align-items:center;gap:.5rem;padding:.4rem .7rem;border-radius:999px;background:#7a2e4e14;font-size:.9rem}.gf2-dot{width:8px;height:8px;border-radius:50%;background:var(--gf2-gold)}.gf2-turn-banner{text-align:center;font-weight:600;padding:.5rem;border-radius:8px;background:#26231d0d}.gf2-turn-banner.is-mine{background:#f0a32b38;color:var(--gf2-forest-dark)}.gf2-opponents{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.5rem}.gf2-opponent{border:1px solid var(--gf2-line);background:var(--surface-card);border-radius:10px;padding:.6rem;display:grid;gap:.15rem;text-align:left;cursor:pointer}.gf2-opponent:disabled{opacity:.55;cursor:default}.gf2-opponent.active-turn{border-color:var(--gf2-gold)}.gf2-opponent-name{font-weight:700;color:var(--gf2-ink)}.gf2-opponent-count,.gf2-opponent-books{font-size:.75rem;opacity:.7}.gf2-pond{font-size:.85rem;opacity:.75;text-align:center}.gf2-log{font-size:.85rem;background:#26231d0a;border-radius:8px;padding:.5rem .7rem}.gf2-my-books{font-size:.85rem;font-weight:600;color:var(--gf2-forest-dark)}.gf2-hand{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}.gf2-card{border:1px solid var(--gf2-line);background:var(--surface-card);border-radius:6px;min-width:2.6rem;height:3.6rem;font-weight:700;font-size:.95rem;cursor:pointer;box-shadow:0 1px 3px #26231d26}.gf2-card.red{color:var(--gf2-red)}.gf2-card.black{color:var(--gf2-ink)}.gf2-card.selected{outline:3px solid var(--gf2-gold);outline-offset:-1px}.gf2-card:disabled{opacity:.6;cursor:default}.gf2-finished{display:grid;gap:.8rem;text-align:center}.gf2-finished-title{font-family:var(--font-display);margin:0}.gf2-finished-sub{margin:0;font-weight:600}.gf2-scoreboard{display:grid;gap:.35rem}.gf2-score-row{display:flex;justify-content:space-between;padding:.4rem .7rem;background:#7a2e4e0f;border-radius:8px;font-size:.9rem}.gf2-score-pts{font-weight:700;color:var(--gf2-forest-dark)}.gf2-actions{display:flex;gap:.6rem;justify-content:center}.gf2-back.as-button{margin-left:auto;background:none;border:0;padding:0;font:inherit;font-weight:600;font-size:.9rem;color:var(--gf2-forest);cursor:pointer}.gf2-modepick{display:grid;gap:.85rem}.gf2-modecard{display:flex;flex-direction:column;gap:.2rem;padding:1.1rem;border-radius:12px;border:1px solid var(--gf2-line);background:var(--gf2-card);color:var(--gf2-ink);font:inherit;text-align:left;cursor:pointer;transition:transform .08s ease,box-shadow .12s ease}.gf2-modecard:hover{transform:translateY(-2px);box-shadow:var(--shadow-1)}.gf2-modecard-emoji{font-size:1.7rem}.gf2-modecard-title{font-family:var(--font-display);font-size:1.15rem;font-weight:600}.gf2-modecard-sub{font-size:.85rem;opacity:.7}.gf2-options{display:grid;gap:.5rem;justify-items:center}.gf2-chips{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}.gf2-chip{font:inherit;font-size:.82rem;padding:.32rem .75rem;border-radius:999px;border:1px solid var(--gf2-line);background:transparent;color:var(--gf2-ink);cursor:pointer}.gf2-chip.active{background:var(--gf2-forest);border-color:var(--gf2-forest);color:var(--gf2-cream)}.gf2-log{display:grid;gap:.2rem}.gf2-log-older{opacity:.55;font-size:.8rem}.ttt{--ttt-forest: var(--primary);--ttt-forest-dark: var(--primary-press);--ttt-cream: var(--ink-on-primary);--ttt-card: var(--surface-card);--ttt-gold: var(--secondary);--ttt-terracotta: var(--danger);--ttt-ink: var(--ink-1);--ttt-line: var(--border);max-width:420px;margin:0 auto}.ttt-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem}.ttt-back{text-decoration:none;color:var(--ttt-forest);font-weight:600;font-size:.9rem}.ttt-title{font-family:var(--font-display);margin:0}.ttt-panel{background:var(--ttt-card);border:1px solid var(--ttt-line);border-radius:14px;padding:1.5rem;box-shadow:var(--shadow-1);display:grid;gap:1rem;justify-items:center}.ttt-themes{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.ttt-chip{border:1px solid var(--ttt-line);background:var(--surface-card);color:var(--ttt-ink);border-radius:999px;padding:.4rem .9rem;font-size:.85rem;cursor:pointer}.ttt-chip.active{background:var(--ttt-forest);color:var(--ttt-cream);border-color:var(--ttt-forest)}.ttt-status{font-weight:600;color:var(--ttt-ink);text-align:center}.ttt-status.is-over{color:var(--ttt-forest-dark);font-size:1.05rem}.ttt-board{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;width:100%;max-width:280px}.ttt-cell{aspect-ratio:1;border:2px solid var(--ttt-line);background:var(--surface-card);border-radius:10px;font-family:var(--font-display);font-size:2.2rem;font-weight:700;color:var(--ttt-ink);cursor:pointer;display:flex;align-items:center;justify-content:center}.ttt-cell:hover:not(:disabled){border-color:var(--ttt-forest)}.ttt-cell:disabled{cursor:default}.ttt-cell.x{color:var(--ttt-forest)}.ttt-cell.o{color:var(--ttt-gold)}.ttt-cell.win{background:var(--ttt-forest);border-color:var(--ttt-forest);color:var(--ttt-cream)}.ttt-scoreboard{display:flex;gap:1.5rem;font-size:.9rem;color:var(--ttt-ink)}.ttt-actions{display:flex;gap:.75rem}.ttt-btn{border-radius:999px;padding:.6rem 1.4rem;font-weight:600;border:1px solid var(--ttt-forest);background:var(--surface-card);color:var(--ttt-forest);cursor:pointer}.ttt-btn.primary{background:var(--ttt-forest);color:var(--ttt-cream)}.ttt-btn.primary:hover{background:var(--ttt-forest-dark)}.pic{--pic-forest: var(--primary);--pic-forest-dark: var(--primary-press);--pic-cream: var(--ink-on-primary);--pic-card: var(--surface-card);--pic-gold: var(--secondary);--pic-ink: var(--ink-1);--pic-line: var(--border);max-width:560px;margin:0 auto}.pic-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem}.pic-back{text-decoration:none;color:var(--pic-forest);font-weight:600;font-size:.9rem}.pic-title{font-family:var(--font-display);margin:0}.pic-panel{background:var(--pic-card);border:1px solid var(--pic-line);border-radius:14px;padding:1.5rem;box-shadow:var(--shadow-1);display:grid;gap:1.25rem;justify-items:center}.pic-themes{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.pic-chip{border:1px solid var(--pic-line);background:var(--surface-card);color:var(--pic-ink);border-radius:999px;padding:.4rem .9rem;font-size:.85rem;cursor:pointer}.pic-chip.active{background:var(--pic-forest);color:var(--pic-cream);border-color:var(--pic-forest)}.pic-turn{margin:0;font-weight:600;color:var(--pic-ink);opacity:.7}.pic-clock{font-variant-numeric:tabular-nums;color:var(--pic-forest-dark);opacity:1}.pic-card{width:100%;min-height:7rem;border:2px dashed var(--pic-line);background:var(--surface-card);color:var(--pic-ink);border-radius:12px;padding:1.25rem;font-family:var(--font-display);font-size:1rem;font-weight:600;text-align:center;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .12s ease,border-color .12s ease}.pic-card:hover{border-color:var(--pic-forest)}.pic-card.revealed{border-style:solid;border-color:var(--pic-forest);background:var(--pic-forest);color:var(--pic-cream);font-size:1.6rem;cursor:default;transform:scale(1.02)}.pic-scoreboard{display:flex;gap:1.5rem;font-size:.9rem;color:var(--pic-ink)}.pic-actions{display:flex;gap:.75rem}.pic-btn{border-radius:999px;padding:.6rem 1.4rem;font-weight:600;border:1px solid var(--pic-forest);background:var(--surface-card);color:var(--pic-forest);cursor:pointer}.pic-btn:disabled{opacity:.45;cursor:default}.pic-btn.primary{background:var(--pic-forest);color:var(--pic-cream)}.pic-btn.primary:hover:not(:disabled){background:var(--pic-forest-dark)}.snl{--snl-primary: var(--primary);--snl-primary-dark: var(--primary-press);--snl-on-primary: var(--ink-on-primary);--snl-card: var(--surface-card);--snl-ink: var(--ink-1);--snl-line: var(--border);--snl-sq-a: #fff6dc;--snl-sq-b: #ffe2a8;--snl-sq-ink: rgba(60, 40, 10, .55);--snl-red: #e3242b;--snl-blue: #2b62d9;--snl-green: #14a14f;--snl-yellow: #f2c80f;max-width:560px;margin:0 auto}.snl-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem}.snl-back{text-decoration:none;color:var(--snl-primary);font-weight:600;font-size:.9rem}.snl-back.as-button{margin-left:auto;background:none;border:0;padding:0;font:inherit;font-weight:600;font-size:.9rem;cursor:pointer}.snl-title{font-family:var(--font-display);margin:0}.snl-panel{background:var(--snl-card);border:1px solid var(--snl-line);border-radius:14px;padding:1rem;box-shadow:var(--shadow-1);display:grid;gap:.85rem;justify-items:center}.snl-modepick{display:grid;gap:.85rem}.snl-modecard{display:flex;flex-direction:column;gap:.2rem;padding:1.1rem;border-radius:12px;border:1px solid var(--snl-line);background:var(--snl-card);color:var(--snl-ink);font:inherit;text-align:left;cursor:pointer;transition:transform .08s ease,box-shadow .12s ease}.snl-modecard:hover{transform:translateY(-2px);box-shadow:var(--shadow-1)}.snl-modecard-emoji{font-size:1.7rem}.snl-modecard-title{font-family:var(--font-display);font-size:1.15rem;font-weight:600}.snl-modecard-sub{font-size:.85rem;opacity:.7}.snl-themes{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}.snl-chip{font:inherit;font-size:.82rem;padding:.32rem .75rem;border-radius:999px;border:1px solid var(--snl-line);background:transparent;color:var(--snl-ink);cursor:pointer}.snl-chip.active{background:var(--snl-primary);border-color:var(--snl-primary);color:var(--snl-on-primary)}.snl-actions{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center}.snl-btn{font:inherit;border-radius:999px;padding:.55rem 1.3rem;font-weight:600;border:1px solid var(--snl-primary);background:var(--surface-card);color:var(--snl-primary);cursor:pointer}.snl-btn.primary{background:var(--snl-primary);color:var(--snl-on-primary)}.snl-btn.primary:hover:not(:disabled){background:var(--snl-primary-dark)}.snl-btn.ghost{border-color:var(--snl-line);color:var(--ink-2)}.snl-btn:disabled{opacity:.55;cursor:default}.snl-hint{margin:0;opacity:.75;font-size:.9rem;text-align:center}.snl-error{color:var(--danger);font-size:.85rem;text-align:center}.snl-lobby{display:grid;gap:.75rem;justify-items:center;width:100%}.snl-lobby-divider{font-size:.8rem;opacity:.6}.snl-join-row{display:flex;gap:.5rem}.snl-code-input{font:inherit;font-family:var(--font-display);font-size:1.4rem;letter-spacing:.3em;text-align:center;text-transform:uppercase;width:6.5rem;padding:.4rem .5rem;border-radius:10px;border:1px solid var(--snl-line);background:var(--surface-card);color:var(--snl-ink)}.snl-code-label{font-size:.8rem;opacity:.65}.snl-code-value{font-family:var(--font-display);font-size:2.4rem;font-weight:600;letter-spacing:.25em;color:var(--snl-primary)}.snl-lobby-players{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}.snl-table{display:grid;gap:.75rem;width:100%;justify-items:center}.snl-players{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}.snl-player-chip{display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;font-weight:600;padding:.25rem .65rem;border-radius:999px;border:1px solid var(--snl-line);color:var(--snl-ink)}.snl-player-chip.active{border:2px solid var(--snl-primary);padding:calc(.25rem - 1px) calc(.65rem - 1px)}.snl-player-square{font-weight:500;font-size:.72rem;color:var(--ink-3)}.snl-dot{display:inline-block;width:.75rem;height:.75rem;border-radius:50%;flex:none}.snl-bg-red{background:var(--snl-red)}.snl-bg-blue{background:var(--snl-blue)}.snl-bg-green{background:var(--snl-green)}.snl-bg-yellow{background:var(--snl-yellow)}.snl-board-wrap{width:100%;max-width:480px}.snl-svg{display:block;width:100%;height:auto}.snl-board-bg{fill:#8a5a2b}.snl-sq--a{fill:var(--snl-sq-a)}.snl-sq--b{fill:var(--snl-sq-b)}.snl-sq--finish{fill:#c8f0c4}.snl-sq{stroke:#78501e40;stroke-width:.02}.snl-sq-num{font-size:.24px;font-weight:700;fill:var(--snl-sq-ink);dominant-baseline:hanging;font-family:system-ui,sans-serif}.snl-finish-flag{font-size:.4px;text-anchor:middle}.snl-rail{stroke:#b97a3c;stroke-width:.075;stroke-linecap:round}.snl-rail-shadow{stroke:#46280a59;stroke-width:.13;stroke-linecap:round;transform:translate(.03px,.04px)}.snl-rung{stroke:#d39a5a;stroke-width:.06;stroke-linecap:round}.snl-snake-body{stroke:#0000008c;stroke-width:.03;stroke-linejoin:round;filter:drop-shadow(.03px .05px .03px rgba(0,0,0,.35))}.snl-snake-spots{fill:none;stroke-width:.07;stroke-dasharray:.08 .16;stroke-linecap:round;opacity:.8}.snl-snake-head{stroke:#0000008c;stroke-width:.03}.snl-snake-eye{fill:#fff}.snl-snake-pupil{fill:#111}.snl-snake-tongue{fill:none;stroke:#d0102a;stroke-width:.03;stroke-linecap:round}.snl-snake--green .snl-snake-body,.snl-snake--green .snl-snake-head{fill:#3c9a2e}.snl-snake--green .snl-snake-spots{stroke:#b6e36b}.snl-snake--purple .snl-snake-body,.snl-snake--purple .snl-snake-head{fill:#7a3fb5}.snl-snake--purple .snl-snake-spots{stroke:#e0b8ff}.snl-snake--orange .snl-snake-body,.snl-snake--orange .snl-snake-head{fill:#e26a12}.snl-snake--orange .snl-snake-spots{stroke:#ffd36b}.snl-snake--teal .snl-snake-body,.snl-snake--teal .snl-snake-head{fill:#138a87}.snl-snake--teal .snl-snake-spots{stroke:#9ff0e6}.snl-snake--red .snl-snake-body,.snl-snake--red .snl-snake-head{fill:#c7262e}.snl-snake--red .snl-snake-spots{stroke:#ffb0a8}.snl-snake--olive .snl-snake-body,.snl-snake--olive .snl-snake-head{fill:#7c8a1e}.snl-snake--olive .snl-snake-spots{stroke:#f1f59a}.snl-snake--pink .snl-snake-body,.snl-snake--pink .snl-snake-head{fill:#d23f8a}.snl-snake--pink .snl-snake-spots{stroke:#ffc4e2}.snl-snake--blue .snl-snake-body,.snl-snake--blue .snl-snake-head{fill:#2f5fbf}.snl-snake--blue .snl-snake-spots{stroke:#b4d0ff}.snl-token-g{transition:transform .15s ease-out}.snl-board-wrap.is-sliding .snl-token-g{transition:transform .65s ease-in-out}.snl-token-body{stroke:#0009;stroke-width:.05;filter:drop-shadow(0 .04px .05px rgba(0,0,0,.5))}.snl-token-g.is-last .snl-token-body{stroke:#000;stroke-width:.08}.snl-token-shine{fill:#ffffff80}.snl-fill-red{fill:var(--snl-red)}.snl-fill-blue{fill:var(--snl-blue)}.snl-fill-green{fill:var(--snl-green)}.snl-fill-yellow{fill:var(--snl-yellow)}.snl-controls{display:flex;align-items:center;gap:.85rem;width:100%;max-width:480px}.snl-dice{flex:none;width:3.6rem;height:3.6rem;padding:0;border:0;background:none;cursor:pointer;border-radius:14px}.snl-dice:disabled{cursor:default;opacity:.8}.snl-dice svg{width:100%;height:100%}.snl-dice-face{stroke:#00000059;stroke-width:3}.snl-dice--red .snl-dice-face{fill:var(--snl-red)}.snl-dice--blue .snl-dice-face{fill:var(--snl-blue)}.snl-dice--green .snl-dice-face{fill:var(--snl-green)}.snl-dice--yellow .snl-dice-face{fill:var(--snl-yellow)}.snl-dice-pip{fill:#fff}.snl-dice--yellow .snl-dice-pip{fill:#3a3000}.snl-dice.is-ready{animation:snl-nudge 1.4s ease-in-out infinite;box-shadow:0 0 0 3px color-mix(in srgb,var(--snl-primary) 35%,transparent)}.snl-dice.is-rolling svg{animation:snl-spin .42s linear}@keyframes snl-nudge{0%,to{transform:rotate(0)}10%{transform:rotate(-8deg)}20%{transform:rotate(8deg)}30%{transform:rotate(0)}}@keyframes snl-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.snl-dice.is-ready,.snl-dice.is-rolling svg{animation:none}.snl-token-g,.snl-board-wrap.is-sliding .snl-token-g{transition:none}}.snl-status{margin:0;flex:1;font-weight:600;font-size:.92rem;color:var(--snl-ink)}.snl-status.is-over{font-family:var(--font-display);font-size:1.2rem;color:var(--success);text-align:center}.snl-dice-wrap{flex:none;display:grid;justify-items:center;gap:.2rem}.snl-dice-tip{font-size:.7rem;font-weight:600;color:var(--ink-3);white-space:nowrap}.snl-dice-tip.is-hidden{visibility:hidden}.snl-link{justify-self:center;margin-top:.25rem;padding:.25rem .5rem;border:0;background:none;font:inherit;font-size:.8rem;color:var(--ink-3);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.bsh{--bsh-forest: var(--primary);--bsh-forest-dark: var(--primary-press);--bsh-cream: var(--ink-on-primary);--bsh-card: var(--surface-card);--bsh-terracotta: var(--danger);--bsh-ink: var(--ink-1);--bsh-line: var(--border);--bsh-sea-top: #2f6f9f;--bsh-sea-bottom: #1d4f78;--bsh-sea-line: rgba(255, 255, 255, .14);--bsh-hull: #7b8794;--bsh-hull-edge: #4b5560;--bsh-deck: #a3adb8;--bsh-detail: #56616c;--bsh-turret: #3b434c;--bsh-sub: #3f4a55;--bsh-blast: #f26b1d;--bsh-blast-core: #ffd23f;--bsh-splash: #ffffff;max-width:480px;margin:0 auto}.bsh-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem}.bsh-back{text-decoration:none;color:var(--bsh-forest);font-weight:600;font-size:.9rem}.bsh-back.as-button{margin-left:auto;background:none;border:0;padding:0;font:inherit;font-weight:600;font-size:.9rem;cursor:pointer}.bsh-title{font-family:var(--font-display);margin:0}.bsh-panel{background:var(--bsh-card);border:1px solid var(--bsh-line);border-radius:14px;padding:1.25rem;box-shadow:var(--shadow-1);display:grid;gap:1rem;justify-items:center}.bsh-modepick{display:grid;gap:.85rem}.bsh-modecard{display:flex;flex-direction:column;gap:.2rem;padding:1.1rem;border-radius:12px;border:1px solid var(--bsh-line);background:var(--bsh-card);color:var(--bsh-ink);cursor:pointer;text-align:left;font:inherit;transition:transform .08s ease,box-shadow .12s ease}.bsh-modecard:hover{transform:translateY(-2px);box-shadow:var(--shadow-1)}.bsh-modecard-emoji{font-size:1.7rem}.bsh-modecard-title{font-family:var(--font-display);font-size:1.15rem;font-weight:600}.bsh-modecard-sub{font-size:.85rem;opacity:.7}.bsh-handoff{display:grid;gap:.5rem;justify-items:center;text-align:center;padding:1rem 0}.bsh-handoff-emoji{font-size:2rem}.bsh-handoff-title{font-family:var(--font-display);font-size:1.2rem;font-weight:700;margin:0;color:var(--bsh-ink)}.bsh-hint{margin:0;opacity:.7;font-size:.9rem;text-align:center}.bsh-error{color:var(--bsh-terracotta);font-size:.85rem;text-align:center}.bsh-versus{margin:0;font-size:.85rem;color:var(--ink-2)}.bsh-status{margin:0;font-weight:600;color:var(--bsh-ink);text-align:center;min-height:1.5em}.bsh-status.hit,.bsh-status.win{color:var(--success)}.bsh-status.incoming,.bsh-status.lose{color:var(--bsh-terracotta)}.bsh-status.win,.bsh-status.lose{font-family:var(--font-display);font-size:1.25rem}.bsh-chips{display:flex;gap:.4rem;justify-content:center}.bsh-chip{font:inherit;font-size:.85rem;padding:.35rem .85rem;border-radius:999px;border:1px solid var(--bsh-line);background:transparent;color:var(--bsh-ink);cursor:pointer}.bsh-chip.active{background:var(--bsh-forest);border-color:var(--bsh-forest);color:var(--bsh-cream)}.bsh-actions{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center}.bsh-btn{font:inherit;border-radius:999px;padding:.6rem 1.4rem;font-weight:600;border:1px solid var(--bsh-forest);background:var(--surface-card);color:var(--bsh-forest);cursor:pointer}.bsh-btn.primary{background:var(--bsh-forest);color:var(--bsh-cream)}.bsh-btn.primary:hover:not(:disabled){background:var(--bsh-forest-dark)}.bsh-btn.ghost{border-color:var(--bsh-line);color:var(--ink-2)}.bsh-btn:disabled{opacity:.55;cursor:default}.bsh-lobby{display:grid;gap:.85rem;justify-items:center;width:100%}.bsh-lobby-divider{font-size:.8rem;opacity:.6}.bsh-join-row{display:flex;gap:.5rem;justify-content:center}.bsh-code-input{font:inherit;font-family:var(--font-display);font-size:1.4rem;letter-spacing:.3em;text-align:center;text-transform:uppercase;width:6.5rem;padding:.4rem .5rem;border-radius:10px;border:1px solid var(--bsh-line);background:var(--surface-card);color:var(--bsh-ink)}.bsh-invite{display:grid;gap:.35rem;justify-items:center;text-align:center;padding-bottom:1rem;border-bottom:1px solid var(--bsh-line);width:100%}.bsh-code-label{font-size:.8rem;opacity:.65}.bsh-code-value{font-family:var(--font-display);font-size:2.4rem;font-weight:600;letter-spacing:.25em;color:var(--bsh-forest)}.bsh-deploy,.bsh-battle{display:grid;gap:1rem;width:100%;justify-items:center}.bsh-side{display:grid;gap:.6rem;width:100%;justify-items:center}.bsh-battle .bsh-side+.bsh-side{padding-top:1rem;border-top:1px solid var(--bsh-line)}.bsh-board{width:100%;display:grid;gap:.35rem;justify-items:center}.bsh-board--lg .bsh-grid{max-width:360px}.bsh-board--sm .bsh-grid{max-width:250px}.bsh-board-label{font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}.bsh-grid{display:grid;grid-template-columns:1.1rem repeat(var(--bsh-size),1fr);grid-template-rows:1.1rem repeat(var(--bsh-size),auto);width:100%}.bsh-axis{display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700;color:var(--ink-3)}.bsh-sea{z-index:0;border-radius:8px;background:radial-gradient(ellipse at 20% 15%,rgba(255,255,255,.16),transparent 55%),repeating-linear-gradient(170deg,transparent 0 14px,rgba(255,255,255,.05) 14px 16px),linear-gradient(180deg,var(--bsh-sea-top),var(--bsh-sea-bottom));box-shadow:inset 0 0 0 1px #00000026}.bsh-ship{z-index:1;position:relative;pointer-events:none}.bsh-ship .bsh-ship-svg{position:absolute;top:1px;right:1px;bottom:1px;left:1px;width:calc(100% - 2px);height:calc(100% - 2px);filter:drop-shadow(0 2px 2px rgba(0,0,0,.35))}.bsh-ship.is-sunk .bsh-ship-svg{filter:grayscale(1) brightness(.55);opacity:.85}.bsh-cell{z-index:2;position:relative;aspect-ratio:1;min-width:0;border:0;margin:0;padding:0;background:transparent;box-shadow:inset 0 0 0 .5px var(--bsh-sea-line);display:flex;align-items:center;justify-content:center;font:inherit}.bsh-board.is-live button.bsh-cell{cursor:crosshair}.bsh-board.is-live button.bsh-cell:hover,.bsh-board.is-live button.bsh-cell:focus-visible{outline:none;background:radial-gradient(circle,transparent 0 22%,rgba(255,255,255,.9) 23% 28%,transparent 29%),#fff3}.bsh-cell.is-last{box-shadow:inset 0 0 0 2px var(--bsh-blast-core);border-radius:3px}.bsh-hull{fill:var(--bsh-hull);stroke:var(--bsh-hull-edge);stroke-width:3}.bsh-hull--sub{fill:var(--bsh-sub)}.bsh-deck{fill:var(--bsh-deck)}.bsh-detail{fill:var(--bsh-detail)}.bsh-funnel,.bsh-turret{fill:var(--bsh-turret)}.bsh-runway{stroke:#ffffffbf;stroke-width:3;stroke-dasharray:12 8}.bsh-marker{position:absolute;top:11%;right:11%;bottom:11%;left:11%;width:78%;height:78%}.bsh-blast-outer{fill:var(--bsh-blast)}.bsh-blast-inner{fill:var(--bsh-blast-core)}.bsh-marker--hit{filter:drop-shadow(0 0 3px rgba(242,107,29,.8))}.bsh-splash-ring{fill:none;stroke:var(--bsh-splash);stroke-width:6;opacity:.45}.bsh-splash-dot{fill:var(--bsh-splash);opacity:.85}.bsh-cell.is-last .bsh-marker{animation:bsh-pop .45s ease-out}@keyframes bsh-pop{0%{transform:scale(.2);opacity:0}60%{transform:scale(1.25);opacity:1}to{transform:scale(1)}}@media (prefers-reduced-motion: reduce){.bsh-cell.is-last .bsh-marker{animation:none}}.bsh-roster{width:100%;max-width:360px}.bsh-roster-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.3rem}.bsh-roster-title{font-weight:700;font-size:.85rem;color:var(--bsh-ink)}.bsh-roster-count{font-size:.75rem;color:var(--ink-3)}.bsh-roster-list{list-style:none;margin:0;padding:0;display:grid;gap:.2rem}.bsh-roster-item{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--bsh-ink);padding:.15rem .35rem;border-radius:6px}.bsh-roster-item.is-sunk{background:var(--surface-sunken)}.bsh-roster-ship{flex:none;width:4.75rem;display:flex;justify-content:flex-start}.bsh-roster-ship .bsh-ship-svg{height:.95rem;width:calc(var(--bsh-len) * .95rem)}.bsh-roster-item.is-sunk .bsh-ship-svg{filter:grayscale(1) brightness(.85);opacity:.7}.bsh-roster-name{flex:1;min-width:0}.bsh-roster-item.is-sunk .bsh-roster-name{text-decoration:line-through;color:var(--ink-3)}.bsh-roster-pips{display:flex;gap:2px}.bsh-pip{width:7px;height:7px;border-radius:2px;background:var(--bsh-line)}.bsh-pip.is-hit{background:var(--bsh-blast)}.bsh-roster-status{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--success);width:3.4rem;text-align:right}.bsh-roster-status.is-sunk{color:var(--bsh-terracotta)}.bsh-record{margin:0;text-align:center;font-weight:600;color:var(--ink-2)}.ludo{--ludo-primary: var(--primary);--ludo-primary-dark: var(--primary-press);--ludo-on-primary: var(--ink-on-primary);--ludo-card: var(--surface-card);--ludo-ink: var(--ink-1);--ludo-line: var(--border);--ludo-blue: #2b3a98;--ludo-red: #e3242b;--ludo-green: #0f9d4f;--ludo-yellow: #f6d10f;--ludo-board: #ffffff;--ludo-grid: #2a2a2a;max-width:560px;margin:0 auto}.ludo-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem}.ludo-back{text-decoration:none;color:var(--ludo-primary);font-weight:600;font-size:.9rem}.ludo-back.as-button{margin-left:auto;background:none;border:0;padding:0;font:inherit;font-weight:600;font-size:.9rem;cursor:pointer}.ludo-title{font-family:var(--font-display);margin:0}.ludo-panel{background:var(--ludo-card);border:1px solid var(--ludo-line);border-radius:14px;padding:1rem;box-shadow:var(--shadow-1);display:grid;gap:.85rem;justify-items:center}.ludo-modepick{display:grid;gap:.85rem}.ludo-modecard{display:flex;flex-direction:column;gap:.2rem;padding:1.1rem;border-radius:12px;border:1px solid var(--ludo-line);background:var(--ludo-card);color:var(--ludo-ink);font:inherit;text-align:left;cursor:pointer;transition:transform .08s ease,box-shadow .12s ease}.ludo-modecard:hover{transform:translateY(-2px);box-shadow:var(--shadow-1)}.ludo-modecard-emoji{font-size:1.7rem}.ludo-modecard-title{font-family:var(--font-display);font-size:1.15rem;font-weight:600}.ludo-modecard-sub{font-size:.85rem;opacity:.7}.ludo-chips{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}.ludo-chip{font:inherit;font-size:.82rem;padding:.32rem .75rem;border-radius:999px;border:1px solid var(--ludo-line);background:transparent;color:var(--ludo-ink);cursor:pointer}.ludo-chip.active{background:var(--ludo-primary);border-color:var(--ludo-primary);color:var(--ludo-on-primary)}.ludo-actions{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center}.ludo-btn{font:inherit;border-radius:999px;padding:.55rem 1.3rem;font-weight:600;border:1px solid var(--ludo-primary);background:var(--surface-card);color:var(--ludo-primary);cursor:pointer}.ludo-btn.primary{background:var(--ludo-primary);color:var(--ludo-on-primary)}.ludo-btn.primary:hover:not(:disabled){background:var(--ludo-primary-dark)}.ludo-btn.ghost{border-color:var(--ludo-line);color:var(--ink-2)}.ludo-btn:disabled{opacity:.55;cursor:default}.ludo-hint{margin:0;opacity:.75;font-size:.9rem;text-align:center}.ludo-error{color:var(--danger);font-size:.85rem;text-align:center}.ludo-lobby{display:grid;gap:.75rem;justify-items:center;width:100%}.ludo-lobby-divider{font-size:.8rem;opacity:.6}.ludo-join-row{display:flex;gap:.5rem}.ludo-code-input{font:inherit;font-family:var(--font-display);font-size:1.4rem;letter-spacing:.3em;text-align:center;text-transform:uppercase;width:6.5rem;padding:.4rem .5rem;border-radius:10px;border:1px solid var(--ludo-line);background:var(--surface-card);color:var(--ludo-ink)}.ludo-code-label{font-size:.8rem;opacity:.65}.ludo-code-value{font-family:var(--font-display);font-size:2.4rem;font-weight:600;letter-spacing:.25em;color:var(--ludo-primary)}.ludo-lobby-players{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}.ludo-table{display:grid;gap:.75rem;width:100%;justify-items:center}.ludo-players{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}.ludo-player-chip{display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;font-weight:600;padding:.25rem .65rem;border-radius:999px;border:1px solid var(--ludo-line);color:var(--ludo-ink)}.ludo-player-chip.active{border-width:2px;padding:calc(.25rem - 1px) calc(.65rem - 1px)}.ludo-chip--blue.active{border-color:var(--ludo-blue)}.ludo-chip--red.active{border-color:var(--ludo-red)}.ludo-chip--green.active{border-color:var(--ludo-green)}.ludo-chip--yellow.active{border-color:#c9a800}.ludo-home-count{font-weight:500;font-size:.72rem;color:var(--ink-3)}.ludo-dot{display:inline-block;width:.75rem;height:.75rem;border-radius:50%;flex:none;vertical-align:-.08em}.ludo-bg-blue{background:var(--ludo-blue)}.ludo-bg-red{background:var(--ludo-red)}.ludo-bg-green{background:var(--ludo-green)}.ludo-bg-yellow{background:var(--ludo-yellow)}.ludo-board-wrap{width:100%;max-width:460px}.ludo-svg{display:block;width:100%;height:auto;border-radius:6px}.ludo-board-bg{fill:var(--ludo-board);stroke:var(--ludo-grid);stroke-width:.06}.ludo-fill-blue{fill:var(--ludo-blue)}.ludo-fill-red{fill:var(--ludo-red)}.ludo-fill-green{fill:var(--ludo-green)}.ludo-fill-yellow{fill:var(--ludo-yellow)}.ludo-yard-inner{fill:var(--ludo-board);stroke:var(--ludo-grid);stroke-width:.04}.ludo-cell{fill:var(--ludo-board);stroke:var(--ludo-grid);stroke-width:.035}.ludo-cell[class*=ludo-fill-]{stroke:var(--ludo-grid)}.ludo-cell.ludo-fill-blue{fill:var(--ludo-blue)}.ludo-cell.ludo-fill-red{fill:var(--ludo-red)}.ludo-cell.ludo-fill-green{fill:var(--ludo-green)}.ludo-cell.ludo-fill-yellow{fill:var(--ludo-yellow)}.ludo-centre{stroke:var(--ludo-grid);stroke-width:.04;stroke-linejoin:round}.ludo-token{transition:transform .12s ease-out}.ludo-token-body{stroke:#0000008c;stroke-width:.07;filter:drop-shadow(0 .05px .06px rgba(0,0,0,.5))}.ludo-token-top{fill:#ffffff8c;stroke:#0003;stroke-width:.03}.ludo-token.is-last .ludo-token-body{stroke:#000;stroke-width:.1}.ludo-token.is-pickable{cursor:pointer}.ludo-token-halo{fill:none;stroke:#fff;stroke-width:.1;filter:drop-shadow(0 0 .12px #000);animation:ludo-pulse .9s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.ludo-token-hit{fill:transparent}@keyframes ludo-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(1.18)}}.ludo-controls{display:flex;align-items:center;gap:.85rem;width:100%;max-width:460px}.ludo-dice{flex:none;width:3.6rem;height:3.6rem;padding:0;border:0;background:none;cursor:pointer;border-radius:14px}.ludo-dice:disabled{cursor:default;opacity:.8}.ludo-dice svg{width:100%;height:100%}.ludo-dice-face{stroke:#00000059;stroke-width:3}.ludo-dice--blue .ludo-dice-face{fill:var(--ludo-blue)}.ludo-dice--red .ludo-dice-face{fill:var(--ludo-red)}.ludo-dice--green .ludo-dice-face{fill:var(--ludo-green)}.ludo-dice--yellow .ludo-dice-face{fill:var(--ludo-yellow)}.ludo-dice-pip{fill:#fff}.ludo-dice--yellow .ludo-dice-pip{fill:#3a3000}.ludo-dice.is-ready{animation:ludo-nudge 1.4s ease-in-out infinite;box-shadow:0 0 0 3px color-mix(in srgb,var(--ludo-primary) 35%,transparent)}.ludo-dice.is-rolling svg{animation:ludo-spin .42s linear}@keyframes ludo-nudge{0%,to{transform:rotate(0)}10%{transform:rotate(-8deg)}20%{transform:rotate(8deg)}30%{transform:rotate(0)}}@keyframes ludo-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.ludo-dice.is-ready,.ludo-dice.is-rolling svg,.ludo-token-halo{animation:none}.ludo-token{transition:none}}.ludo-status{margin:0;flex:1;font-weight:600;font-size:.92rem;color:var(--ludo-ink)}.ludo-status.is-over{font-family:var(--font-display);font-size:1.2rem;color:var(--success);text-align:center}.ludo-dice-wrap{flex:none;display:grid;justify-items:center;gap:.2rem}.ludo-dice-tip{font-size:.7rem;font-weight:600;color:var(--ink-3);white-space:nowrap}.ludo-dice-tip.is-hidden{visibility:hidden}.ludo-link{justify-self:center;margin-top:.25rem;padding:.25rem .5rem;border:0;background:none;font:inherit;font-size:.8rem;color:var(--ink-3);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.bgo{--bgo-forest: var(--primary);--bgo-forest-dark: var(--primary-press);--bgo-cream: var(--ink-on-primary);--bgo-card: var(--surface-card);--bgo-gold: var(--secondary);--bgo-ink: var(--ink-1);--bgo-line: var(--border);max-width:560px;margin:0 auto}.bgo-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem}.bgo-back{text-decoration:none;color:var(--bgo-forest);font-weight:600;font-size:.9rem}.bgo-title{font-family:var(--font-display);margin:0}.bgo-panel{background:var(--bgo-card);border:1px solid var(--bgo-line);border-radius:14px;padding:1.5rem;box-shadow:var(--shadow-1);display:grid;gap:1rem;justify-items:center}.bgo-themes{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.bgo-chip{border:1px solid var(--bgo-line);background:var(--surface-card);color:var(--bgo-ink);border-radius:999px;padding:.4rem .9rem;font-size:.85rem;cursor:pointer}.bgo-chip.active{background:var(--bgo-forest);color:var(--bgo-cream);border-color:var(--bgo-forest)}.bgo-caller{display:flex;align-items:center;gap:1rem;width:100%}.bgo-ball{flex-shrink:0;width:4.5rem;height:4.5rem;border-radius:50%;border:3px solid var(--bgo-forest);display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--surface-card)}.bgo-ball.has-number{background:var(--bgo-forest)}.bgo-ball-letter{font-size:.65rem;font-weight:700;color:var(--bgo-cream);opacity:.85}.bgo-ball-number{font-family:var(--font-display);font-size:1.4rem;font-weight:700;color:var(--bgo-cream);line-height:1}.bgo-ball-hint{font-size:1.5rem;opacity:.35}.bgo-caller-info{flex:1;min-width:0}.bgo-status{margin:0;font-weight:600;color:var(--bgo-ink)}.bgo-drawn-count{margin:.15rem 0 0;font-size:.8rem;opacity:.6}.bgo-cards{display:grid;gap:1rem;width:100%}.bgo-card{border:1px solid var(--bgo-line);border-radius:10px;padding:.75rem}.bgo-card.won{border-color:var(--bgo-forest);background:color-mix(in srgb,var(--bgo-forest) 10%,var(--surface-card))}.bgo-card-header{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:.85rem;margin-bottom:.4rem;color:var(--bgo-ink)}.bgo-badge{font-size:.65rem;font-weight:700;border-radius:999px;padding:.1rem .5rem}.bgo-badge.line{background:var(--secondary-soft);color:var(--secondary-soft-ink)}.bgo-badge.full{background:var(--bgo-forest);color:var(--bgo-cream)}.bgo-card-letters{display:grid;grid-template-columns:repeat(5,1fr);text-align:center;font-family:var(--font-display);font-weight:700;font-size:.85rem;color:var(--bgo-forest);margin-bottom:.25rem}.bgo-card-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:3px}.bgo-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border:1px solid var(--bgo-line);border-radius:4px;font-size:.75rem;font-weight:600;color:var(--bgo-ink)}.bgo-cell.marked{background:var(--bgo-forest);color:var(--bgo-cream);border-color:var(--bgo-forest)}.bgo-cell.free{font-size:.85rem}.bgo-actions{display:flex;gap:.75rem}.bgo-btn{border-radius:999px;padding:.6rem 1.4rem;font-weight:600;border:1px solid var(--bgo-forest);background:var(--surface-card);color:var(--bgo-forest);cursor:pointer}.bgo-btn.primary{background:var(--bgo-forest);color:var(--bgo-cream)}.bgo-btn.primary:hover:not(:disabled){background:var(--bgo-forest-dark)}.bgo-btn:disabled{opacity:.5;cursor:default}.bgo-roles{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;width:100%}.bgo-role{font:inherit;display:grid;justify-items:center;gap:.1rem;padding:.7rem .5rem;border-radius:12px;border:1px solid var(--bgo-line);background:var(--surface-card);color:var(--bgo-ink);cursor:pointer}.bgo-role.active{border-color:var(--bgo-forest);box-shadow:inset 0 0 0 1px var(--bgo-forest);background:color-mix(in srgb,var(--bgo-forest) 8%,var(--surface-card))}.bgo-role-emoji{font-size:1.4rem}.bgo-role-title{font-weight:700}.bgo-role-sub{font-size:.75rem;opacity:.7}.bgo-player-status{text-align:center;font-weight:500;opacity:.8}.bgo-player-status.is-win{font-family:var(--font-display);font-size:1.3rem;font-weight:700;color:var(--bgo-forest);opacity:1}button.bgo-cell{font:inherit;font-size:.75rem;font-weight:600;background:var(--surface-card);cursor:pointer;padding:0;transition:transform .08s ease}button.bgo-cell:active{transform:scale(.92)}.bgo-card-grid.is-tappable .bgo-cell{font-size:.95rem}button.bgo-cell.marked{background:var(--bgo-forest);color:var(--bgo-cream)}.bgo-board{display:grid;gap:2px;width:100%}.bgo-board-row{display:grid;grid-template-columns:1.1rem repeat(15,1fr);gap:2px}.bgo-board-letter{font-family:var(--font-display);font-weight:700;font-size:.7rem;color:var(--bgo-forest);display:flex;align-items:center}.bgo-board-num{font-size:.6rem;text-align:center;padding:.15rem 0;border-radius:3px;color:var(--ink-3);font-variant-numeric:tabular-nums}.bgo-board-num.called{background:var(--bgo-forest);color:var(--bgo-cream);font-weight:700}.bgo-board-num.latest{background:var(--bgo-gold);color:var(--ink-on-secondary)}.wt{--wt-accent: var(--primary);--wt-on-accent: var(--ink-on-primary);--wt-ink: var(--ink-1);--wt-line: var(--border);flex:1;min-height:0;width:100%;max-width:480px;margin:0 auto;display:flex;flex-direction:column;gap:.5rem}.wt-hud{display:flex;align-items:center;gap:.75rem}.wt-stat{display:grid;gap:.05rem;min-width:0}.wt-stat-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3)}.wt-stat-value{font-weight:700;font-size:1.15rem;line-height:1.1;color:var(--wt-ink);font-variant-numeric:tabular-nums}.wt-lives{font-size:1.05rem;line-height:1.1;color:var(--ink-faint);letter-spacing:.05em}.wt-lives .on{color:var(--red-600)}.wt-preview{width:44px;height:44px;margin-left:auto;border-radius:8px;background:var(--surface-sunken)}.wt-icon-btn{width:44px;height:44px;border-radius:10px;border:1px solid var(--wt-line);background:var(--surface-card);color:var(--wt-ink);font-size:.85rem;cursor:pointer}.wt-icon-btn:disabled{opacity:.4;cursor:default}.wt-stage{position:relative;flex:1;min-height:0;border-radius:12px;overflow:hidden;border:1px solid var(--wt-line);touch-action:none;-webkit-user-select:none;user-select:none}.wt-canvas{display:block;position:absolute;top:0;right:0;bottom:0;left:0}.wt-toast{position:absolute;top:2.75rem;left:50%;transform:translate(-50%);padding:.4rem .9rem;border-radius:999px;background:var(--secondary);color:var(--ink-on-secondary);font-weight:700;width:max-content;max-width:calc(100% - 1.5rem);text-align:center;box-shadow:var(--shadow-1);animation:wt-pop .35s ease-out;pointer-events:none}@keyframes wt-pop{0%{transform:translate(-50%) scale(.6);opacity:0}to{transform:translate(-50%) scale(1);opacity:1}}.wt-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;background:var(--surface-veil);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);text-align:center;padding:1rem;overflow-y:auto}.wt-overlay-title{font-family:var(--font-display);font-size:1.7rem;font-weight:700;margin:0;color:var(--wt-ink)}.wt-overlay-score{margin:0;font-size:1.4rem;font-weight:700;color:var(--wt-ink)}.wt-overlay-sub{margin:0;max-width:22rem;color:var(--ink-2)}.wt-medals{display:flex;gap:.75rem;margin:0;font-size:1.6rem}.wt-medals span{display:grid;justify-items:center;filter:grayscale(1);opacity:.35}.wt-medals span.won{filter:none;opacity:1}.wt-medals small{font-size:.7rem;color:var(--ink-3)}.wt-board{list-style:none;margin:.25rem 0 0;padding:0;width:100%;max-width:18rem;display:grid;gap:.15rem;font-variant-numeric:tabular-nums}.wt-board li{display:grid;grid-template-columns:1.5rem 1fr 1.5rem 2.5rem;align-items:center;gap:.4rem;padding:.25rem .5rem;border-radius:8px;font-size:.9rem;color:var(--wt-ink);text-align:left}.wt-board li.is-new{background:var(--wt-accent);color:var(--wt-on-accent)}.wt-board-rank{opacity:.6}.wt-board-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wt-board-score{text-align:right;font-weight:700}.wt-board-empty{margin:0;font-size:.85rem;color:var(--ink-3)}.wt-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.wt-pad{height:3.75rem;border-radius:14px;border:1px solid var(--wt-line);background:var(--surface-sunken);color:var(--wt-ink);font-size:1.5rem;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.wt-pad:active{background:var(--wt-accent);color:var(--wt-on-accent);border-color:var(--wt-accent)}.wt-btn{border:1px solid var(--wt-line);background:var(--surface-card);color:var(--wt-ink);border-radius:10px;padding:.6rem 1.4rem;font-weight:600;font-size:1rem;cursor:pointer}.wt-btn.primary{background:var(--wt-accent);color:var(--wt-on-accent);border-color:var(--wt-accent)}.wt-modes{display:flex;gap:.5rem;justify-content:center}.wt-chip{border:1px solid var(--wt-line);background:var(--surface-card);color:var(--wt-ink);border-radius:999px;padding:.4rem .9rem;font-size:.9rem;cursor:pointer}.wt-chip.active{background:var(--wt-accent);color:var(--wt-on-accent);border-color:var(--wt-accent)}.wt-overlay-note{margin:0;max-width:22rem;font-size:.85rem;color:var(--ink-3)}.wt-board-title{margin:.25rem 0 0;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3)}.wt-power{position:relative;width:44px;height:44px;border-radius:10px;border:1px solid var(--wt-line);background:linear-gradient(to top,var(--secondary-soft, rgba(240, 163, 43, .3)) var(--wt-charge),var(--surface-card) var(--wt-charge));color:var(--wt-ink);font-size:1.3rem;cursor:pointer;overflow:hidden}.wt-power:disabled{cursor:default}.wt-power.is-ready{background:var(--secondary);border-color:var(--secondary);animation:wt-glow 1.2s ease-in-out infinite}.wt-power-count{font-size:.85rem;font-weight:700;color:var(--ink-3)}@keyframes wt-glow{50%{box-shadow:0 0 0 4px #f0a32b59}}.wt-effects{position:absolute;top:.75rem;left:.75rem;display:flex;gap:.35rem;pointer-events:none}.wt-effects span{padding:.15rem .5rem;border-radius:999px;background:var(--surface-card);border:1px solid var(--wt-line);font-size:.85rem;font-weight:700;color:var(--wt-ink);font-variant-numeric:tabular-nums}.wt-overlay-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.wt-btn.ghost{background:transparent;color:var(--ink-2)}.wt-btn:disabled,.wt-chip:disabled{opacity:.6;cursor:default}.wt-stat-goal{font-size:.75rem;font-weight:600;color:var(--ink-3)}.wt-preview.is-fogged{background:repeating-linear-gradient(45deg,var(--surface-sunken) 0 6px,var(--border) 6px 12px)}.wt-power.is-attack.is-ready{background:var(--danger);border-color:var(--danger);animation-name:wt-glow-attack}@keyframes wt-glow-attack{50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--danger) 35%,transparent)}}.wt-toast.is-hit{background:var(--danger);color:var(--white)}.wt-online-menu{justify-content:flex-start;overflow-y:auto}.wt-panel{display:flex;flex-direction:column;align-items:center;gap:.7rem;text-align:center;padding:1.25rem 1rem;border:1px solid var(--wt-line);border-radius:12px;background:var(--surface-card)}.wt-panel .wt-overlay-title{margin:0}.wt-hint{margin:0;font-size:.9rem;color:var(--ink-2)}.wt-error{margin:0;font-size:.85rem;color:var(--danger)}.wt-divider{font-size:.8rem;color:var(--ink-3)}.wt-join-row{display:flex;gap:.5rem}.wt-code-input{font:inherit;font-family:var(--font-display);font-size:1.4rem;letter-spacing:.3em;text-align:center;text-transform:uppercase;width:6.5rem;padding:.4rem .5rem;border-radius:10px;border:1px solid var(--wt-line);background:var(--surface-card);color:var(--wt-ink)}.wt-code-label{font-size:.8rem;color:var(--ink-3)}.wt-code-value{font-family:var(--font-display);font-size:2.4rem;font-weight:600;letter-spacing:.25em;color:var(--wt-accent)}.wt-lobby-players{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}.wt-setting{display:grid;gap:.3rem;justify-items:center}.wt-setting-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3)}.wt-rivals{position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:.35rem;padding-right:1.6rem}.wt-rivals-leave{position:absolute;right:0;top:50%;transform:translateY(-50%);width:1.4rem;height:1.4rem;border:0;border-radius:50%;background:var(--surface-sunken);color:var(--ink-3);font-size:.75rem;cursor:pointer}.wt-rival{display:grid;gap:.15rem;min-width:0;padding:.25rem .4rem;border-radius:8px;border:1px solid var(--wt-line);font-size:.72rem}.wt-rival.is-me{border-color:var(--wt-accent)}.wt-rival.is-out{opacity:.5}.wt-rival-name{font-weight:700;color:var(--wt-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wt-rival-bar{height:5px;border-radius:3px;background:var(--surface-sunken);overflow:hidden}.wt-rival-bar span{display:block;height:100%;background:var(--secondary);transition:width .3s ease}.wt-rival.is-me .wt-rival-bar span{background:var(--wt-accent)}.wt-rival-meta{color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wt-countdown-num{margin:0;font-family:var(--font-display);font-size:5rem;line-height:1;color:var(--wt-accent);animation:wt-count .9s ease-out}@keyframes wt-count{0%{transform:scale(1.6);opacity:0}to{transform:scale(1);opacity:1}}.snk{--snk-accent: var(--primary);--snk-on-accent: var(--ink-on-primary);--snk-ink: var(--ink-1);--snk-line: var(--border);flex:1;min-height:0;width:100%;max-width:480px;margin:0 auto;display:flex;flex-direction:column;gap:.5rem}.snk-hud{display:flex;align-items:center;gap:1rem}.snk-stat{display:grid;gap:.05rem;min-width:0}.snk-stat-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3)}.snk-stat-value{font-weight:700;font-size:1.15rem;line-height:1.1;color:var(--snk-ink);font-variant-numeric:tabular-nums}.snk-stat-value.is-low{color:var(--danger)}.snk-hearts{font-size:1.1rem;line-height:1.1;color:var(--ink-faint, var(--border));letter-spacing:.05em}.snk-hearts .on{color:var(--red-600, #e53935)}.snk-icon-btn{margin-left:auto;width:44px;height:44px;border-radius:10px;border:1px solid var(--snk-line);background:var(--surface-card);color:var(--snk-ink);font-size:.85rem;cursor:pointer}.snk-icon-btn:disabled{opacity:.4;cursor:default}.snk-stage{position:relative;flex:1;min-height:0;touch-action:none;user-select:none;-webkit-user-select:none}.snk-canvas{display:block;position:absolute;top:0;right:0;bottom:0;left:0}.snk-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.65rem;padding:1rem;border-radius:12px;background:var(--surface-veil);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);text-align:center;overflow-y:auto}.snk-overlay>:first-child{margin-top:auto}.snk-overlay>:last-child{margin-bottom:auto}.snk-overlay-title{font-family:var(--font-display);font-size:1.7rem;font-weight:700;margin:0;color:var(--snk-ink)}.snk-overlay-score{margin:0;font-size:1.5rem;font-weight:700;color:var(--snk-ink)}.snk-overlay-sub{margin:0;max-width:22rem;color:var(--ink-2)}.snk-overlay-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.snk-btn{border:1px solid var(--snk-line);background:var(--surface-card);color:var(--snk-ink);border-radius:10px;padding:.65rem 1.6rem;font-weight:600;font-size:1rem;cursor:pointer}.snk-btn.primary{background:var(--snk-accent);color:var(--snk-on-accent);border-color:var(--snk-accent)}.snk-link{border:none;background:none;color:var(--ink-3);text-decoration:underline;font-size:.9rem;cursor:pointer}.snk-modes{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}.snk-chip{border:1px solid var(--snk-line);background:var(--surface-card);color:var(--snk-ink);border-radius:999px;padding:.4rem .85rem;font-size:.9rem;cursor:pointer}.snk-chip.active{background:var(--snk-accent);color:var(--snk-on-accent);border-color:var(--snk-accent)}.snk-skins{display:flex;gap:.6rem}.snk-skin{width:34px;height:34px;border-radius:50%;border:3px solid;cursor:pointer;padding:0}.snk-skin.active{outline:3px solid var(--snk-ink);outline-offset:2px}.snk-controls{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:.5rem;height:7.25rem;flex-shrink:0}.snk-controls-mid{display:grid;grid-template-rows:1fr 1fr;gap:.5rem}.snk-pad{border-radius:14px;border:1px solid var(--snk-line);background:var(--surface-sunken);color:var(--snk-ink);font-size:1.5rem;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.snk-pad:active{background:var(--snk-accent);color:var(--snk-on-accent);border-color:var(--snk-accent)}.snk--kids .snk-pad{font-size:1.9rem}.cd{flex:1;min-height:0;width:100%;max-width:480px;margin:0 auto;display:flex;flex-direction:column;gap:.5rem}.cd-hud{display:flex;align-items:center;gap:1rem}.cd-stat{display:grid;gap:.05rem;min-width:0}.cd-stat-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3)}.cd-stat-value{font-weight:700;font-size:1.15rem;line-height:1.1;color:var(--ink-1);font-variant-numeric:tabular-nums}.cd-lives{font-size:1.1rem;line-height:1.1;letter-spacing:.05em;color:var(--border)}.cd-lives .on{color:var(--danger)}.cd-icon-btn{width:44px;height:44px;margin-left:auto;border-radius:10px;border:1px solid var(--border);background:var(--surface-card);color:var(--ink-1);font-size:.85rem;cursor:pointer}.cd-icon-btn:disabled{opacity:.4;cursor:default}.cd-stage{position:relative;flex:1;min-height:0;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:#6cbf5a;touch-action:none;user-select:none;-webkit-user-select:none}.cd-canvas{display:block;position:absolute;top:0;right:0;bottom:0;left:0;touch-action:none;-webkit-touch-callout:none}.cd-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;gap:.6rem;background:var(--surface-veil);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);text-align:center;padding:1rem;overflow-y:auto}.cd-overlay>:first-child{margin-top:auto}.cd-overlay>:last-child{margin-bottom:auto}.cd-overlay-title{font-family:var(--font-display);font-size:1.8rem;font-weight:700;margin:0;color:var(--ink-1)}.cd-overlay-score{margin:0;font-size:1.5rem;font-weight:700;color:var(--ink-1);font-variant-numeric:tabular-nums}.cd-overlay-sub{margin:0;max-width:22rem;color:var(--ink-2)}.cd-overlay-note{margin:0;max-width:22rem;font-size:.85rem;color:var(--ink-3)}.cd-board{margin-top:.4rem}.cd-btn{border:1px solid var(--border);background:var(--surface-card);color:var(--ink-1);border-radius:12px;padding:.7rem 2rem;font-weight:700;font-size:1.05rem;cursor:pointer}.cd-btn.primary{background:var(--primary);color:var(--ink-on-primary);border-color:var(--primary)}.cd-modes{display:flex;gap:.5rem;justify-content:center}.cd-chip{border:1px solid var(--border);background:var(--surface-card);color:var(--ink-1);border-radius:999px;padding:.45rem 1.1rem;font-size:.95rem;cursor:pointer}.cd-chip.active{background:var(--primary);color:var(--ink-on-primary);border-color:var(--primary)}.cd-controls{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.cd-pad{height:4rem;border-radius:14px;border:1px solid var(--border);background:var(--surface-sunken);color:var(--ink-1);font-size:1.7rem;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.cd-pad:active{background:var(--primary);color:var(--ink-on-primary);border-color:var(--primary)}.pg{--pg-bottom: #0fb5d6;--pg-top: #e0458f;flex:1;min-height:0;width:100%;max-width:480px;margin:0 auto;display:flex;flex-direction:column;gap:.5rem}.pg-hud{display:flex;align-items:center;gap:1rem}.pg-stat{display:grid;gap:.05rem;min-width:0}.pg-stat-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3)}.pg-stat-value{font-weight:700;font-size:1.15rem;line-height:1.1;color:var(--ink-1);font-variant-numeric:tabular-nums}.pg-stat--bottom .pg-stat-label{color:var(--pg-bottom)}.pg-stat--top .pg-stat-label{color:var(--pg-top)}.pg-lives{font-size:1.05rem;line-height:1.1;color:var(--ink-3);letter-spacing:.05em}.pg-lives span{opacity:.35}.pg-lives .on{color:var(--danger);opacity:1}.pg-icon-btn{width:44px;height:44px;margin-left:auto;border-radius:10px;border:1px solid var(--border);background:var(--surface-card);color:var(--ink-1);font-size:.85rem;cursor:pointer}.pg-icon-btn:disabled{opacity:.4;cursor:default}.pg-stage{position:relative;flex:1;min-height:0;border-radius:12px;overflow:hidden;border:1px solid var(--border);touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.pg-canvas{display:block;position:absolute;top:0;right:0;bottom:0;left:0;touch-action:none}.pg-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:safe center;gap:.65rem;background:var(--surface-veil);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);text-align:center;padding:1rem;overflow-y:auto}.pg-title{font-family:var(--font-display);font-size:1.8rem;font-weight:700;margin:0;color:var(--ink-1)}.pg-flipped{margin:0 0 .5rem;font-family:var(--font-display);font-size:1.2rem;font-weight:700;color:var(--ink-2);transform:rotate(180deg)}.pg-score{margin:0;font-size:1.5rem;font-weight:700;color:var(--ink-1);font-variant-numeric:tabular-nums}.pg-sub{margin:0;max-width:22rem;color:var(--ink-2)}.pg-note{margin:0;font-size:.85rem;color:var(--ink-3)}.pg-btn{border:1px solid var(--border);background:var(--surface-card);color:var(--ink-1);border-radius:12px;padding:.7rem 2rem;font-weight:700;font-size:1.05rem;cursor:pointer}.pg-btn.primary{background:var(--primary);color:var(--ink-on-primary);border-color:var(--primary)}.pg-chips{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.pg-chip{min-height:44px;border:1px solid var(--border);background:var(--surface-card);color:var(--ink-1);border-radius:999px;padding:.4rem .95rem;font-size:.95rem;cursor:pointer}.pg-chip.small{min-height:38px;font-size:.85rem;padding:.3rem .85rem}.pg-chip.active{background:var(--primary);color:var(--ink-on-primary);border-color:var(--primary)}.pg-board{width:100%;max-width:20rem}.fg{--fg-accent: var(--primary);--fg-on-accent: var(--ink-on-primary);--fg-ink: var(--ink-1);--fg-line: var(--border);flex:1;min-height:0;width:100%;max-width:480px;margin:0 auto;display:flex;flex-direction:column;gap:.5rem}.fg-hud{display:flex;align-items:center;gap:.9rem}.fg-stat{display:grid;gap:.05rem;min-width:0}.fg-stat-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3)}.fg-stat-value{font-weight:700;font-size:1.15rem;line-height:1.1;color:var(--fg-ink);font-variant-numeric:tabular-nums}.fg-lives{font-size:.95rem;line-height:1.2;letter-spacing:.08em;color:var(--surface-sunken);white-space:nowrap}.fg-lives .on{color:#4fb83c}.fg-icon-btn{width:44px;height:44px;margin-left:auto;flex:none;border-radius:10px;border:1px solid var(--fg-line);background:var(--surface-card);color:var(--fg-ink);font-size:.85rem;cursor:pointer}.fg-icon-btn:disabled{opacity:.4;cursor:default}.fg-timer{height:6px;border-radius:3px;background:var(--surface-sunken);overflow:hidden;margin-top:-.15rem}.fg-timer-fill{display:block;height:100%;background:#4fb83c;transform-origin:left center;transition:background-color .3s}.fg-timer-fill.is-low{background:var(--danger)}.fg-stage{position:relative;flex:1;min-height:0;border-radius:12px;overflow:hidden;border:1px solid var(--fg-line);background:#24452a;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.fg-canvas{display:block;position:absolute;top:0;right:0;bottom:0;left:0}.fg-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;gap:.6rem;background:var(--surface-veil);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);text-align:center;padding:1rem;overflow-y:auto;touch-action:pan-y}.fg-overlay>:first-child{margin-top:auto}.fg-overlay>:last-child{margin-bottom:auto}.fg-overlay-title{font-family:var(--font-display);font-size:1.8rem;font-weight:700;margin:0;color:var(--fg-ink)}.fg-overlay-score{margin:0;font-size:1.4rem;font-weight:700;color:var(--fg-ink);font-variant-numeric:tabular-nums}.fg-overlay-sub{margin:0;max-width:22rem;color:var(--ink-2)}.fg-overlay-note{margin:0;max-width:22rem;font-size:.85rem;color:var(--ink-3)}.fg-btn{border:1px solid var(--fg-line);background:var(--surface-card);color:var(--fg-ink);border-radius:12px;padding:.7rem 2rem;font-weight:700;font-size:1.05rem;cursor:pointer}.fg-btn.primary{background:var(--fg-accent);color:var(--fg-on-accent);border-color:var(--fg-accent)}.fg-modes{display:flex;gap:.5rem;justify-content:center}.fg-chip{border:1px solid var(--fg-line);background:var(--surface-card);color:var(--fg-ink);border-radius:999px;padding:.45rem 1.1rem;font-size:.95rem;cursor:pointer}.fg-chip.active{background:var(--fg-accent);color:var(--fg-on-accent);border-color:var(--fg-accent)}.fg-pad-grid{display:grid;grid-template-columns:1fr 1.5fr 1fr;grid-template-rows:4.25rem 3rem;grid-template-areas:"left up right" "left down right";gap:.4rem;flex:none}.fg-pad{border-radius:14px;border:1px solid var(--fg-line);background:var(--surface-sunken);color:var(--fg-ink);font-size:1.4rem;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.fg-pad--up{grid-area:up;font-size:1.8rem}.fg-pad--down{grid-area:down;font-size:1.1rem}.fg-pad--left{grid-area:left}.fg-pad--right{grid-area:right}.fg-pad:active{background:var(--fg-accent);color:var(--fg-on-accent);border-color:var(--fg-accent)}.ck{--ck-primary: var(--primary);--ck-primary-dark: var(--primary-press);--ck-on-primary: var(--ink-on-primary);--ck-card: var(--surface-card);--ck-ink: var(--ink-1);--ck-line: var(--border);--ck-light: #f0dcb4;--ck-dark: #9a6a3d;--ck-frame: #5b3a1e;--ck-red: #d1322b;--ck-red-rim: #8e1d18;--ck-white: #f7f3ea;--ck-white-rim: #a9a194;max-width:560px;margin:0 auto}.ck-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem}.ck-back{text-decoration:none;color:var(--ck-primary);font-weight:600;font-size:.9rem}.ck-back.as-button{margin-left:auto;background:none;border:0;padding:0;font:inherit;font-weight:600;font-size:.9rem;cursor:pointer}.ck-title{font-family:var(--font-display);margin:0}.ck-panel{background:var(--ck-card);border:1px solid var(--ck-line);border-radius:14px;padding:1rem;box-shadow:var(--shadow-1);display:grid;gap:.85rem;justify-items:center}.ck-modepick{display:grid;gap:.85rem}.ck-modecard{display:flex;flex-direction:column;gap:.2rem;padding:1.1rem;border-radius:12px;border:1px solid var(--ck-line);background:var(--ck-card);color:var(--ck-ink);font:inherit;text-align:left;cursor:pointer;transition:transform .08s ease,box-shadow .12s ease}.ck-modecard:hover{transform:translateY(-2px);box-shadow:var(--shadow-1)}.ck-modecard-emoji{font-size:1.7rem}.ck-modecard-title{font-family:var(--font-display);font-size:1.15rem;font-weight:600}.ck-modecard-sub{font-size:.85rem;opacity:.7}.ck-chips{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}.ck-chip{font:inherit;font-size:.82rem;padding:.32rem .75rem;border-radius:999px;border:1px solid var(--ck-line);background:transparent;color:var(--ck-ink);cursor:pointer}.ck-chip.active{background:var(--ck-primary);border-color:var(--ck-primary);color:var(--ck-on-primary)}.ck-actions{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center}.ck-btn{font:inherit;border-radius:999px;padding:.55rem 1.3rem;font-weight:600;border:1px solid var(--ck-primary);background:var(--surface-card);color:var(--ck-primary);cursor:pointer}.ck-btn.primary{background:var(--ck-primary);color:var(--ck-on-primary)}.ck-btn.primary:hover:not(:disabled){background:var(--ck-primary-dark)}.ck-btn.ghost{border-color:var(--ck-line);color:var(--ink-2)}.ck-btn:disabled{opacity:.55;cursor:default}.ck-hint{margin:0;opacity:.75;font-size:.9rem;text-align:center}.ck-error{color:var(--danger);font-size:.85rem;text-align:center}.ck-lobby{display:grid;gap:.75rem;justify-items:center;width:100%}.ck-lobby-divider{font-size:.8rem;opacity:.6}.ck-join-row{display:flex;gap:.5rem}.ck-code-input{font:inherit;font-family:var(--font-display);font-size:1.4rem;letter-spacing:.3em;text-align:center;text-transform:uppercase;width:6.5rem;padding:.4rem .5rem;border-radius:10px;border:1px solid var(--ck-line);background:var(--surface-card);color:var(--ck-ink)}.ck-code-label{font-size:.8rem;opacity:.65}.ck-code-value{font-family:var(--font-display);font-size:2.4rem;font-weight:600;letter-spacing:.25em;color:var(--ck-primary)}.ck-lobby-players{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}.ck-rules{margin-top:1rem;padding:.75rem 1rem;border:1px solid var(--ck-line);border-radius:12px;background:var(--ck-card);color:var(--ck-ink);font-size:.9rem}.ck-rules summary{font-weight:600;cursor:pointer}.ck-rules ul{margin:.5rem 0 0;padding-left:1.2rem;display:grid;gap:.3rem}.ck-table{display:grid;gap:.75rem;width:100%;justify-items:center}.ck-players{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}.ck-player-chip{display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;font-weight:600;padding:.25rem .65rem;border-radius:999px;border:1px solid var(--ck-line);color:var(--ck-ink)}.ck-player-chip.active{border:2px solid var(--ck-primary);padding:calc(.25rem - 1px) calc(.65rem - 1px)}.ck-count{font-weight:500;font-size:.72rem;color:var(--ink-3)}.ck-dot{display:inline-block;width:.8rem;height:.8rem;border-radius:50%;flex:none}.ck-dot--red{background:var(--ck-red);box-shadow:inset 0 0 0 2px var(--ck-red-rim)}.ck-dot--white{background:var(--ck-white);box-shadow:inset 0 0 0 2px var(--ck-white-rim)}.ck-chip--red.active{background:var(--ck-red);border-color:var(--ck-red);color:#fff}.ck-chip--white.active{background:var(--ck-white);border-color:var(--ck-white-rim);color:#222}.ck-board-wrap{width:100%;max-width:30rem}.ck-svg{display:block;width:100%;height:auto;touch-action:manipulation;user-select:none;-webkit-user-select:none}.ck-frame{fill:var(--ck-frame)}.ck-sq--light{fill:var(--ck-light)}.ck-sq--dark{fill:var(--ck-dark);cursor:pointer}.ck-sq.is-last{fill:#b98d3e}.ck-sq.is-selected,.ck-sq.is-trail{fill:#c9a227}.ck-target{fill:#ffffffbf;stroke:#2e7d32;stroke-width:.06;cursor:pointer;animation:ck-pulse 1s ease-in-out infinite;transform-box:fill-box;transform-origin:center}@keyframes ck-pulse{50%{transform:scale(1.25)}}.ck-piece{transition:transform .24s ease-in-out;cursor:pointer}.ck-piece-shadow{fill:#00000059}.ck-piece--red .ck-piece-rim{fill:var(--ck-red-rim)}.ck-piece--red .ck-piece-top{fill:var(--ck-red)}.ck-piece--red .ck-piece-ring{fill:none;stroke:#00000038;stroke-width:.03}.ck-piece--white .ck-piece-rim{fill:var(--ck-white-rim)}.ck-piece--white .ck-piece-top{fill:var(--ck-white)}.ck-piece--white .ck-piece-ring{fill:none;stroke:#00000026;stroke-width:.03}.ck-crown{fill:#f2c230;stroke:#8a6100;stroke-width:.025}.ck-piece.can-move .ck-piece-rim{stroke:#ffe066;stroke-width:.07}.ck-piece.is-selected .ck-piece-rim{stroke:#4caf50;stroke-width:.1}.ck-status{margin:0;font-weight:600;font-size:.95rem;color:var(--ck-ink);text-align:center}.ck-status.is-over{font-family:var(--font-display);font-size:1.2rem;color:var(--success)}.ck-link{justify-self:center;padding:.25rem .5rem;border:0;background:none;font:inherit;font-size:.8rem;color:var(--ink-3);text-decoration:underline;text-underline-offset:2px;cursor:pointer}@media (prefers-reduced-motion: reduce){.ck-piece,.ck-target{transition:none;animation:none}}.gc{--gc-accent: var(--primary);--gc-on-accent: var(--ink-on-primary);--gc-ink: var(--ink-1);--gc-line: var(--border);flex:1;min-height:0;width:100%;max-width:480px;margin:0 auto;display:flex;flex-direction:column;gap:.5rem}.gc-hud{display:flex;align-items:center;gap:1rem}.gc-stat{display:grid;gap:.05rem;min-width:0}.gc-stat-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3)}.gc-stat-value{font-weight:700;font-size:1.15rem;line-height:1.1;color:var(--gc-ink);font-variant-numeric:tabular-nums}.gc-stat-value.is-low{color:var(--danger)}.gc-icon-btn{margin-left:auto;width:44px;height:44px;border-radius:10px;border:1px solid var(--gc-line);background:var(--surface-card);color:var(--gc-ink);font-size:.85rem;cursor:pointer}.gc-icon-btn:disabled{opacity:.4;cursor:default}.gc-stage{position:relative;border-radius:14px;overflow:hidden;background:#f1eeff;flex:1;min-height:0;touch-action:none;user-select:none;-webkit-user-select:none}.gc-canvas{display:block;position:absolute;top:0;right:0;bottom:0;left:0}.gc-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;padding:1rem;background:#f0ecff73;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);overflow-y:auto}.gc-card{margin:auto 0;width:100%;max-width:22rem;display:flex;flex-direction:column;align-items:center;gap:.65rem;padding:1.25rem 1rem;border-radius:18px;background:var(--surface-card);border:1px solid var(--gc-line);box-shadow:0 10px 34px #5a46c840;text-align:center;animation:gc-rise .25s ease-out}@keyframes gc-rise{0%{transform:translateY(12px) scale(.97);opacity:0}}.gc-overlay-title{font-family:var(--font-display);font-size:1.8rem;background:linear-gradient(90deg,#e01e3c,#f2b200,#119c4f,#1764e0);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-weight:700;margin:0;color:var(--gc-ink)}.gc-overlay-score{margin:0;font-size:1.5rem;font-weight:700;color:var(--gc-ink)}.gc-overlay-sub{margin:0;max-width:22rem;color:var(--ink-2)}.gc-overlay-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.gc-btn{border:1px solid var(--gc-line);background:var(--surface-card);color:var(--gc-ink);border-radius:10px;padding:.65rem 1.6rem;font-weight:600;font-size:1rem;cursor:pointer}.gc-btn.primary{background:var(--gc-accent);color:var(--gc-on-accent);border-color:var(--gc-accent)}.gc-link{border:none;background:none;color:var(--ink-3);text-decoration:underline;font-size:.9rem;cursor:pointer}.gc-chips{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}.gc-chip{border:1px solid var(--gc-line);background:var(--surface-card);color:var(--gc-ink);border-radius:999px;padding:.4rem .85rem;font-size:.9rem;cursor:pointer}.gc-chip.small{padding:.3rem .75rem;font-size:.82rem}.gc-chip.active{background:var(--gc-accent);color:var(--gc-on-accent);border-color:var(--gc-accent)}.gc-overlay-note{margin:0;max-width:22rem;font-size:.85rem;color:var(--ink-3)}.gc-controls{display:grid;grid-template-columns:1fr 1fr 1fr 1.35fr;gap:.4rem;height:4.25rem;flex-shrink:0}.gc-pad{border-radius:14px;border:1px solid #d9d2ff;background:linear-gradient(180deg,#fff,#efebff);color:#4a3fa8;font-size:1.45rem;box-shadow:0 3px #d3cbf7,0 4px 10px #5a46c81f;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.gc-pad--turn{font-size:1.8rem;color:#fff;border-color:#7b6cf0;background:linear-gradient(180deg,#8f80ff,#6a58e8);box-shadow:0 3px #4f40c4,0 4px 12px #5a46c84d}.gc-pad:active{transform:translateY(2px);box-shadow:0 1px #d3cbf7,0 0 14px #8c78ff73}.gc-pad--turn:active{box-shadow:0 1px #4f40c4,0 0 14px #8c78ff99}.gc-online-menu{justify-content:center;align-items:center;overflow-y:auto;padding:.5rem 0}.gc-divider{font-size:.8rem;color:var(--ink-3)}.gc-join-row{display:flex;gap:.5rem}.gc-code-input{font:inherit;font-family:var(--font-display);font-size:1.4rem;letter-spacing:.3em;text-align:center;text-transform:uppercase;width:6.5rem;padding:.4rem .5rem;border-radius:10px;border:1px solid var(--gc-line);background:var(--surface-card);color:var(--gc-ink)}.gc-code-label{font-size:.8rem;color:var(--ink-3)}.gc-code-value{font-family:var(--font-display);font-size:2.4rem;font-weight:700;letter-spacing:.25em;color:#6a58e8}.gc-error{margin:0;color:var(--danger);font-size:.85rem}.gc-countdown{margin:auto;font-family:var(--font-display);font-size:5rem;font-weight:800;color:#6a58e8;text-shadow:0 4px 20px rgba(106,88,232,.4);animation:gc-rise .4s ease-out}.gc-standings{list-style:none;margin:0;padding:0;width:100%;display:grid;gap:.2rem;font-variant-numeric:tabular-nums}.gc-standings li{display:grid;grid-template-columns:1.5rem 1fr auto;gap:.5rem;padding:.35rem .6rem;border-radius:8px;text-align:left;color:var(--gc-ink)}.gc-standings li:nth-child(odd){background:var(--surface-sunken)}.gc-standings li.is-me{background:#6a58e8;color:#fff}.gw{flex:1;min-height:0;width:100%;max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:.5rem;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.gw *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.gw-hud{display:flex;align-items:center;gap:1.1rem}.gw-stat{display:grid;gap:.05rem;min-width:0}.gw-stat-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3)}.gw-stat-value{font-weight:700;font-size:1.15rem;line-height:1.1;color:var(--ink-1);font-variant-numeric:tabular-nums}.gw-tally{display:flex;gap:.7rem;text-shadow:0 0 1px rgba(0,0,0,.6)}.gw-tally .is-out{opacity:.45}.gw-icon-btn{width:44px;height:44px;margin-left:auto;border-radius:10px;border:1px solid var(--border);background:var(--surface-card);color:var(--ink-1);font-size:.85rem;cursor:pointer}.gw-icon-btn:disabled{opacity:.4;cursor:default}.gw-stage{position:relative;flex:1;min-height:0;border-radius:12px;overflow:hidden;border:1px solid #1c2440;background:#04060d;touch-action:none;user-select:none;-webkit-user-select:none}.gw-canvas{display:block;position:absolute;top:0;right:0;bottom:0;left:0;touch-action:none;-webkit-touch-callout:none}.gw-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;padding:1rem;overflow-y:auto;background:#04060d8c}.gw-card{margin:auto 0;width:100%;max-width:24rem;display:flex;flex-direction:column;align-items:center;gap:.7rem;padding:1.1rem 1.1rem 1.2rem;border-radius:16px;background:#0c1228eb;border:1px solid rgba(120,160,255,.35);box-shadow:0 0 30px #508cff2e;color:#e6ecff;text-align:center}.gw-title{margin:0;font-family:var(--font-display);font-size:1.6rem;font-weight:700;color:#fff}.gw-sub{margin:0;color:#c9d4f5}.gw-note{margin:0;font-size:.85rem;color:#9fb0dd}.gw-rules{margin:0;padding:0;list-style:none;display:grid;gap:.45rem;text-align:left;font-size:.88rem;line-height:1.35;color:#c9d4f5}.gw-rules strong{color:#9dffbb}.gw-btn{border:1px solid rgba(120,160,255,.5);background:transparent;color:#e6ecff;border-radius:12px;padding:.7rem 2.2rem;font-weight:700;font-size:1.05rem;cursor:pointer}.gw-btn.primary{background:#3d8bff;border-color:#3d8bff;color:#fff}.gw-link{border:none;background:none;color:#9fb0dd;text-decoration:underline;font-size:.9rem;cursor:pointer}.gw-chips{display:flex;gap:.5rem;justify-content:center}.gw-chip{border:1px solid rgba(120,160,255,.45);background:transparent;color:#e6ecff;border-radius:999px;padding:.45rem 1.2rem;font-size:.95rem;cursor:pointer}.gw-chip.small{padding:.35rem .9rem;font-size:.88rem}.gw-chip.active{background:#3d8bff;border-color:#3d8bff;color:#fff}.gw-controls{display:grid;grid-template-columns:repeat(var(--gw-pads, 4),minmax(0,1fr));gap:.4rem}.gw-pad{height:4.2rem;border-radius:14px;border:1px solid #2a3560;background:#111831;color:#dfe7ff;font-size:1.7rem;font-weight:700;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.gw-pad--fire,.gw-pad--thrust,.gw-pad--brake,.gw-pad--rocket{font-size:.9rem;padding:0 .15rem}.gw-pad--rocket{position:relative;border-color:#5c3a8a;background:#1d1230;color:#e3b8ff}.gw-ammo{position:absolute;top:.3rem;right:.4rem;font-size:.7rem;font-variant-numeric:tabular-nums;opacity:.85}.gw-pad--fire{border-color:#7a2f2a;background:#2a1214;color:#ffb3a8}.gw-pad--thrust{border-color:#8a5a1a;background:#2b1d0b;color:#ffd08a}.gw-pad--brake{border-color:#245a8a;background:#0d2236;color:#a8dcff}.gw-pad:active{filter:brightness(1.6)}.gw-board{width:100%;padding:.6rem .7rem;border-radius:12px;background:var(--surface-card);color:var(--ink-1);text-align:left}.iq{flex:1;min-height:0;width:100%;max-width:640px;margin:0 auto;display:flex;flex-direction:column;gap:.6rem;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.iq--menu{overflow-y:auto;padding-bottom:1rem}.iq-intro{text-align:center}.iq-title{margin:0;font-family:var(--font-display);font-size:1.6rem;font-weight:700;color:var(--ink-1)}.iq-sub{margin:.2rem auto 0;max-width:26rem;color:var(--ink-2)}.iq-note{margin:0;text-align:center;font-size:.88rem;color:var(--ink-3)}.iq-chips{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}.iq-chip{display:inline-flex;align-items:baseline;gap:.35rem;border:1px solid var(--border);background:var(--surface-card);color:var(--ink-1);border-radius:999px;padding:.4rem .85rem;font-size:.92rem;cursor:pointer}.iq-chip.active{background:var(--primary);border-color:var(--primary);color:var(--ink-on-primary)}.iq-chip-count{font-size:.72rem;opacity:.75;font-variant-numeric:tabular-nums}.iq-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.4rem}.iq-cell{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--border);background:var(--surface-card);color:var(--ink-1);border-radius:12px;cursor:pointer}.iq-cell.is-done{background:color-mix(in srgb,var(--success, #2fa84f) 16%,var(--surface-card));border-color:color-mix(in srgb,var(--success, #2fa84f) 55%,var(--border))}.iq-cell-n{font-weight:700;font-size:1.05rem}.iq-cell-time{font-size:.62rem;color:var(--ink-3);font-variant-numeric:tabular-nums}.iq-btn{align-self:center;border:1px solid var(--border);background:var(--surface-card);color:var(--ink-1);border-radius:12px;padding:.65rem 1.6rem;font-weight:700;font-size:1rem;cursor:pointer}.iq-btn.primary{background:var(--primary);border-color:var(--primary);color:var(--ink-on-primary)}.iq-top{display:flex;align-items:center;gap:.6rem}.iq-back{border:none;background:none;color:var(--primary);font-weight:600;font-size:.95rem;padding:.3rem 0;cursor:pointer}.iq-which{flex:1;text-align:center;font-weight:700;color:var(--ink-1)}.iq-clock{font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink-1);min-width:3.2rem;text-align:right}.iq-board-wrap{position:relative}.iq-board{display:block;width:100%;height:auto;touch-action:none}.iq-board-bg{fill:#1d3f8f;stroke:#10275f;stroke-width:.8}.iq-hole{fill:#0f2559;stroke:#2c56b3;stroke-width:.4}.iq-done{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;border-radius:10px;background:color-mix(in srgb,var(--surface-card) 88%,transparent);text-align:center;padding:.6rem}.iq-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.iq-actions .iq-btn{padding:.5rem 1.1rem;font-size:.95rem}.iq-tools{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem}.iq-tool{height:2.9rem;border:1px solid var(--border);background:var(--surface-card);color:var(--ink-1);border-radius:12px;font-weight:600;font-size:.9rem;cursor:pointer}.iq-tool:disabled{opacity:.4;cursor:default}.iq-status{margin:0;min-height:1.2em;text-align:center;font-size:.85rem;color:var(--ink-2)}.iq-tray{flex:1;min-height:0;display:flex;flex-wrap:wrap;align-content:flex-start;justify-content:center;gap:.5rem;padding:.6rem;border-radius:14px;background:var(--surface-sunken);overflow-y:auto}.iq-tray-piece{display:flex;align-items:center;justify-content:center;min-width:4.4rem;min-height:4.4rem;padding:.35rem;border:2px solid transparent;border-radius:12px;background:var(--surface-card);cursor:grab;touch-action:none}.iq-tray-piece.is-selected{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 25%,transparent)}.iq-ghost{position:fixed;z-index:50;pointer-events:none;filter:drop-shadow(0 6px 8px rgba(0,0,0,.35))}.cs{--cs-primary: var(--primary);--cs-primary-dark: var(--primary-press);--cs-on-primary: var(--ink-on-primary);--cs-card: var(--surface-card);--cs-ink: var(--ink-1);--cs-line: var(--border);--cs-light: #eed9b6;--cs-dark: #b08661;--cs-frame: #6b4a2e;max-width:560px;margin:0 auto}.cs-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem}.cs-back{text-decoration:none;color:var(--cs-primary);font-weight:600;font-size:.9rem}.cs-back.as-button{margin-left:auto;background:none;border:0;padding:0;font:inherit;font-weight:600;font-size:.9rem;cursor:pointer}.cs-title{font-family:var(--font-display);margin:0}.cs-panel{background:var(--cs-card);border:1px solid var(--cs-line);border-radius:14px;padding:1rem;box-shadow:var(--shadow-1);display:grid;gap:.85rem;justify-items:center}.cs-modepick{display:grid;gap:.85rem}.cs-modecard{display:flex;flex-direction:column;gap:.2rem;padding:1.1rem;border-radius:12px;border:1px solid var(--cs-line);background:var(--cs-card);color:var(--cs-ink);font:inherit;text-align:left;cursor:pointer;transition:transform .08s ease,box-shadow .12s ease}.cs-modecard:hover{transform:translateY(-2px);box-shadow:var(--shadow-1)}.cs-modecard-emoji{font-size:1.7rem}.cs-modecard-title{font-family:var(--font-display);font-size:1.15rem;font-weight:600}.cs-modecard-sub{font-size:.85rem;opacity:.7}.cs-chips{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}.cs-chip{font:inherit;font-size:.82rem;padding:.32rem .75rem;border-radius:999px;border:1px solid var(--cs-line);background:transparent;color:var(--cs-ink);cursor:pointer}.cs-chip.active{background:var(--cs-primary);border-color:var(--cs-primary);color:var(--cs-on-primary)}.cs-actions{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center}.cs-btn{font:inherit;border-radius:999px;padding:.55rem 1.3rem;font-weight:600;border:1px solid var(--cs-primary);background:var(--surface-card);color:var(--cs-primary);cursor:pointer}.cs-btn.primary{background:var(--cs-primary);color:var(--cs-on-primary)}.cs-btn.primary:hover:not(:disabled){background:var(--cs-primary-dark)}.cs-btn.ghost{border-color:var(--cs-line);color:var(--ink-2)}.cs-btn:disabled{opacity:.55;cursor:default}.cs-hint{margin:0;opacity:.75;font-size:.9rem;text-align:center}.cs-error{color:var(--danger);font-size:.85rem;text-align:center}.cs-lobby{display:grid;gap:.75rem;justify-items:center;width:100%}.cs-lobby-divider{font-size:.8rem;opacity:.6}.cs-join-row{display:flex;gap:.5rem}.cs-code-input{font:inherit;font-family:var(--font-display);font-size:1.4rem;letter-spacing:.3em;text-align:center;text-transform:uppercase;width:6.5rem;padding:.4rem .5rem;border-radius:10px;border:1px solid var(--cs-line);background:var(--surface-card);color:var(--cs-ink)}.cs-code-label{font-size:.8rem;opacity:.65}.cs-code-value{font-family:var(--font-display);font-size:2.4rem;font-weight:600;letter-spacing:.25em;color:var(--cs-primary)}.cs-lobby-players{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}.cs-rules{margin-top:1rem;padding:.75rem 1rem;border:1px solid var(--cs-line);border-radius:12px;background:var(--cs-card);color:var(--cs-ink);font-size:.9rem}.cs-rules summary{font-weight:600;cursor:pointer}.cs-rules ul{margin:.5rem 0 0;padding-left:1.2rem;display:grid;gap:.3rem}.cs-table{display:grid;gap:.75rem;width:100%;justify-items:center}.cs-board-wrap{position:relative;width:100%;max-width:30rem;border-radius:6px;overflow:hidden;box-shadow:0 0 0 4px var(--cs-frame),var(--shadow-1)}.cs-svg{display:block;width:100%;height:auto;touch-action:manipulation;user-select:none;-webkit-user-select:none}.cs-sq--light{fill:var(--cs-light)}.cs-sq--dark{fill:var(--cs-dark)}.cs-sq.is-last.cs-sq--light{fill:#f6eb72}.cs-sq.is-last.cs-sq--dark{fill:#dcc34b}.cs-sq.is-selected{fill:#8fd18a}.cs-coord{font-size:.2px;font-weight:700;pointer-events:none}.cs-coord.on-light{fill:var(--cs-dark)}.cs-coord.on-dark{fill:var(--cs-light)}.cs-check{fill:#e61e1e8c;pointer-events:none}.cs-piece{transition:transform .22s ease-in-out;cursor:pointer;filter:drop-shadow(0 .03px .02px rgba(0,0,0,.35))}.cs-target{fill:#14551e73;cursor:pointer}.cs-target-ring{fill:none;stroke:#14551e8c;stroke-width:.08;cursor:pointer;pointer-events:all}.cs-promo{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;background:#14100ab8;color:#fff;font-weight:600}.cs-promo p{margin:0}.cs-promo-row{display:flex;gap:.5rem}.cs-promo-btn{display:grid;justify-items:center;gap:.15rem;padding:.4rem;border-radius:10px;border:0;background:var(--cs-light);color:#3a2a18;font:inherit;font-size:.72rem;cursor:pointer}.cs-promo .cs-link{color:#eee}.cs-player{display:flex;align-items:center;gap:.45rem;width:100%;max-width:30rem;min-height:1.9rem;padding:.2rem .55rem;border-radius:10px;border:1px solid transparent;font-size:.9rem;font-weight:600;color:var(--cs-ink)}.cs-player.active{border-color:var(--cs-primary);background:color-mix(in srgb,var(--cs-primary) 8%,transparent)}.cs-player-name{white-space:nowrap}.cs-taken{display:flex;flex-wrap:wrap;align-items:center;margin-left:auto}.cs-taken svg{margin-left:-4px}.cs-lead{margin-left:.3rem;font-size:.78rem;color:var(--ink-3)}.cs-dot{width:.85rem;height:.85rem;border-radius:50%;flex:none;border:1.5px solid #333}.cs-dot--w{background:#fff}.cs-dot--b{background:#222}.cs-chip--w.active{background:#fff;color:#222;border-color:var(--cs-primary);box-shadow:0 0 0 1.5px var(--cs-primary)}.cs-chip--b.active{background:#222;color:#fff;border-color:#222}.cs-moves{list-style:none;margin:0;padding:.4rem .6rem;width:100%;max-width:30rem;max-height:4.6rem;overflow-y:auto;display:flex;flex-wrap:wrap;gap:.15rem .7rem;border-radius:10px;background:var(--surface-sunken);font-size:.8rem;font-variant-numeric:tabular-nums;color:var(--ink-2)}.cs-move-no{color:var(--ink-3)}.cs-status{margin:0;font-weight:600;font-size:.95rem;color:var(--cs-ink);text-align:center}.cs-status.is-check{color:var(--danger)}.cs-status.is-over{font-family:var(--font-display);font-size:1.2rem;color:var(--success)}.cs-link{justify-self:center;padding:.25rem .5rem;border:0;background:none;font:inherit;font-size:.8rem;color:var(--ink-3);text-decoration:underline;text-underline-offset:2px;cursor:pointer}@media (prefers-reduced-motion: reduce){.cs-piece{transition:none}}.animal-place-thing{--apt-forest: var(--primary);--apt-forest-deep: var(--primary-press);--apt-cream: var(--surface-card);--apt-cream-ink: var(--ink-on-primary);--apt-cream-soft: var(--surface-sunken);--apt-gold: var(--secondary);--apt-gold-soft: var(--marigold-300);--apt-ink: var(--ink-1);--apt-muted: var(--ink-3);--apt-line: var(--border);--apt-shared: var(--warning);--apt-unique: var(--success);--apt-invalid: var(--danger);color:var(--apt-ink);font-family:var(--font-text);min-height:100%}.animal-place-thing .apt-center{display:flex;align-items:center;justify-content:center;min-height:70vh;padding:16px}.animal-place-thing .apt-card{background:var(--apt-cream);border:1px solid var(--apt-line);border-radius:14px;padding:28px;width:100%;max-width:480px;box-shadow:var(--shadow-2)}.animal-place-thing .apt-card-wide{max-width:720px}.animal-place-thing .apt-hero{text-align:center;margin-bottom:24px}.animal-place-thing .apt-big-letter{font-family:var(--font-display);font-size:128px;font-weight:900;line-height:.9;color:transparent;-webkit-text-stroke:3px var(--apt-forest);transition:color .25s ease;cursor:default}.animal-place-thing .apt-big-letter:hover{color:var(--apt-gold)}.animal-place-thing .apt-title{font-family:var(--font-display);font-size:34px;font-weight:700;margin:4px 0 2px;color:var(--apt-forest-deep)}.animal-place-thing .apt-accent{color:var(--apt-gold)}.animal-place-thing .apt-subtitle{font-size:14px;color:var(--apt-muted);letter-spacing:.3px}.animal-place-thing .apt-block{display:flex;flex-direction:column;gap:12px}.animal-place-thing .apt-block-label{font-family:var(--font-display);font-size:18px;font-weight:600;color:var(--apt-forest-deep)}.animal-place-thing .apt-field{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px;color:var(--apt-ink)}.animal-place-thing .apt-field select,.animal-place-thing .apt-field input,.animal-place-thing .apt-code-input,.animal-place-thing .apt-name-input,.animal-place-thing .apt-answer-row input{font-family:var(--font-text);background:var(--surface-card);border:1px solid var(--apt-line);border-radius:8px;color:var(--apt-ink);font-size:15px;padding:12px 14px;outline:none}.animal-place-thing .apt-field select:focus,.animal-place-thing .apt-field input:focus,.animal-place-thing .apt-answer-row input:focus{border-color:var(--apt-forest);box-shadow:0 0 0 3px #7a2e4e24}.animal-place-thing .apt-field input[type=number]{width:92px;text-align:center}.animal-place-thing .apt-or{display:flex;align-items:center;text-align:center;color:var(--apt-muted);font-size:12px;margin:20px 0}.animal-place-thing .apt-or:before,.animal-place-thing .apt-or:after{content:"";flex:1;height:1px;background:var(--apt-line)}.animal-place-thing .apt-or span{padding:0 12px;text-transform:uppercase;letter-spacing:1px}.animal-place-thing .apt-btn{font-family:var(--font-text);font-size:15px;font-weight:600;padding:13px 20px;border-radius:9px;cursor:pointer;border:1px solid transparent;width:100%;transition:transform .05s,opacity .15s,background .15s}.animal-place-thing .apt-btn:active{transform:translateY(1px)}.animal-place-thing .apt-btn:disabled{opacity:.5;cursor:not-allowed}.animal-place-thing .apt-btn-primary{background:var(--apt-forest);color:var(--apt-cream-ink)}.animal-place-thing .apt-btn-primary:hover:not(:disabled){background:var(--apt-forest-deep)}.animal-place-thing .apt-btn-ghost{background:transparent;color:var(--apt-forest-deep);border-color:var(--apt-forest)}.animal-place-thing .apt-btn-ghost:hover{background:#7a2e4e0f}.animal-place-thing .apt-btn-text{background:transparent;color:var(--apt-muted);border:none;font-weight:500;margin-top:8px}.animal-place-thing .apt-btn-text:hover{color:var(--apt-forest-deep)}.animal-place-thing .apt-btn-danger{background:transparent;color:var(--apt-invalid);border-color:var(--apt-invalid)}.animal-place-thing .apt-btn-danger:hover{background:#b02a210f}.animal-place-thing .apt-btn-row{display:flex;gap:10px}.animal-place-thing .apt-btn-row .apt-btn{width:auto;flex:1}.animal-place-thing .apt-error{color:var(--apt-invalid);font-size:13px;margin:0}.animal-place-thing .apt-hint{color:var(--apt-muted);font-size:14px;text-align:center;margin:12px 0 0}.animal-place-thing .apt-code-display{font-family:SF Mono,Courier New,monospace;font-size:40px;font-weight:700;letter-spacing:8px;text-align:center;color:var(--apt-forest-deep);background:var(--surface-card);border:2px dashed var(--apt-line);border-radius:12px;padding:18px;margin:12px 0 20px;position:relative}.animal-place-thing .apt-copy{position:absolute;top:10px;right:10px;font-family:var(--font-text);font-size:12px;letter-spacing:0;background:var(--apt-gold);color:var(--apt-ink);border:none;border-radius:6px;padding:5px 10px;cursor:pointer}.animal-place-thing .apt-code-input{width:100%;text-align:center;letter-spacing:6px;text-transform:uppercase;font-weight:600;box-sizing:border-box}.animal-place-thing .apt-name-input{width:100%;box-sizing:border-box}.animal-place-thing .apt-players{margin:4px 0 20px;display:flex;flex-direction:column;gap:8px}.animal-place-thing .apt-players-count{font-size:12px;color:var(--apt-muted);text-transform:uppercase;letter-spacing:1px}.animal-place-thing .apt-player-chip{display:flex;align-items:center;gap:8px;background:var(--apt-cream-soft);border-radius:8px;padding:10px 12px;font-size:14px}.animal-place-thing .apt-dot{width:8px;height:8px;border-radius:50%;background:var(--apt-unique)}.animal-place-thing .apt-game{max-width:620px;margin:0 auto;padding:16px;min-height:70vh;display:flex;flex-direction:column;gap:20px;justify-content:center}.animal-place-thing .apt-game-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap;border-bottom:1px solid var(--apt-line);padding-bottom:16px}.animal-place-thing .apt-letter-badge{font-family:var(--font-display);font-size:80px;font-weight:900;line-height:1;color:transparent;-webkit-text-stroke:3px var(--apt-gold);min-width:70px}.animal-place-thing .apt-round-info{display:flex;flex-direction:column;gap:2px}.animal-place-thing .apt-round-label{font-size:12px;text-transform:uppercase;letter-spacing:1.5px;color:var(--apt-muted)}.animal-place-thing .apt-timer{font-family:SF Mono,Courier New,monospace;font-size:34px;font-weight:700;color:var(--apt-forest-deep)}.animal-place-thing .apt-timer-warn{color:var(--apt-gold)}.animal-place-thing .apt-timer-critical{color:var(--apt-invalid);animation:apt-pulse .8s ease-in-out infinite}@keyframes apt-pulse{0%,to{opacity:1}50%{opacity:.45}}.animal-place-thing .apt-mini-scores{margin-left:auto;display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--apt-muted)}.animal-place-thing .apt-mini-me{font-weight:700;color:var(--apt-forest-deep)}.animal-place-thing .apt-answers{display:flex;flex-direction:column;gap:10px}.animal-place-thing .apt-answer-row{display:flex;align-items:center;gap:12px}.animal-place-thing .apt-cat{width:76px;flex-shrink:0;text-align:right;font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--apt-forest);font-weight:600}.animal-place-thing .apt-answer-row input{flex:1;border-left:3px solid var(--apt-gold)}.animal-place-thing .apt-result-title{font-family:var(--font-display);font-size:24px;font-weight:700;text-align:center;margin:0 0 20px;color:var(--apt-forest-deep)}.animal-place-thing .apt-result-table{display:block}.animal-place-thing .apt-result-cards{display:none}.animal-place-thing .apt-result-head,.animal-place-thing .apt-result-row{display:grid;grid-template-columns:1.2fr repeat(5,1fr) .6fr;gap:8px;align-items:center}.animal-place-thing .apt-result-head{padding:0 6px 8px;border-bottom:1px solid var(--apt-line);margin-bottom:6px}.animal-place-thing .apt-result-head span{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--apt-muted)}.animal-place-thing .apt-result-row{padding:8px 6px;border-radius:8px;font-size:14px}.animal-place-thing .apt-result-row.apt-me{background:#f0a32b1a}.animal-place-thing .apt-rc-name{font-weight:600}.animal-place-thing .apt-rc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.animal-place-thing .apt-rc-unique{color:var(--apt-unique)}.animal-place-thing .apt-rc-shared{color:var(--apt-shared)}.animal-place-thing .apt-rc-invalid{color:var(--apt-invalid);text-decoration:line-through}.animal-place-thing .apt-rc-blank{color:var(--apt-muted)}.animal-place-thing .apt-rc-pts{font-weight:700;color:var(--apt-gold);text-align:right}.animal-place-thing .apt-rcard{background:var(--apt-cream-soft);border-radius:10px;padding:12px 14px;margin-bottom:10px}.animal-place-thing .apt-rcard.apt-me{outline:2px solid var(--apt-gold-soft)}.animal-place-thing .apt-rcard-head{display:flex;justify-content:space-between;align-items:center;font-weight:700;margin-bottom:8px;color:var(--apt-forest-deep)}.animal-place-thing .apt-rcard-row{display:flex;justify-content:space-between;gap:12px;padding:3px 0;font-size:14px}.animal-place-thing .apt-rcard-cat{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--apt-muted)}.animal-place-thing .apt-totals{background:var(--apt-cream-soft);border-radius:10px;padding:14px 16px;margin:18px 0}.animal-place-thing .apt-totals h3{font-family:var(--font-display);font-size:16px;margin:0 0 8px;color:var(--apt-forest-deep)}.animal-place-thing .apt-total-row{display:flex;justify-content:space-between;padding:5px 0;font-size:14px;border-bottom:1px solid var(--apt-line)}.animal-place-thing .apt-total-row:last-child{border-bottom:none}.animal-place-thing .apt-total-pts{font-weight:700;color:var(--apt-gold)}.animal-place-thing .apt-trophy{font-size:52px;text-align:center}.animal-place-thing .apt-podium{display:flex;flex-direction:column;gap:8px;margin:14px 0 20px}.animal-place-thing .apt-podium-row{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--apt-cream-soft);border-radius:9px;border-left:3px solid var(--apt-line)}.animal-place-thing .apt-podium-row.apt-first{border-left-color:var(--apt-gold)}.animal-place-thing .apt-rank{font-family:var(--font-display);font-size:18px;font-weight:900;color:var(--apt-muted);width:22px;text-align:center}.animal-place-thing .apt-first .apt-rank{color:var(--apt-gold)}.animal-place-thing .apt-podium-name{flex:1}.animal-place-thing .apt-podium-pts{font-weight:700;color:var(--apt-gold)}@media (max-width: 600px){.animal-place-thing .apt-result-table{display:none}.animal-place-thing .apt-result-cards{display:block}.animal-place-thing .apt-big-letter{font-size:96px}.animal-place-thing .apt-code-display{font-size:30px;letter-spacing:5px}.animal-place-thing .apt-mini-scores{width:100%;margin-left:0}}.fh-workout *{box-sizing:border-box}.fh-workout h1,.fh-workout h2,.fh-workout h3{font-family:var(--font-display);font-weight:var(--fw-bold);color:var(--ink-1);margin:0;letter-spacing:var(--ls-title)}.fh-workout h1{font-size:clamp(26px,5vw,var(--fs-title-lg));line-height:var(--lh-tight)}.fh-workout h2{font-size:clamp(19px,3.4vw,var(--fs-title))}.fh-workout h3{font-size:var(--fs-body)}.fh-workout p{margin:0;line-height:var(--lh-normal)}.fh-workout-shell{max-width:var(--content-max);margin:0 auto}.fh-workout-kicker{font:var(--fw-semibold) var(--fs-meta)/1.2 var(--font-text);color:var(--secondary-soft-ink)}.fh-workout-sub{color:var(--ink-3);font-size:var(--fs-meta);margin-top:var(--sp-2)}.fh-workout-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sp-5);margin-bottom:var(--sp-7)}.fh-workout-btn{font-family:var(--font-text);font-size:var(--fs-meta);font-weight:var(--fw-semibold);border-radius:var(--r-control);padding:var(--sp-5) var(--sp-7);cursor:pointer;border:var(--bw-hair) solid transparent;transition:background var(--dur-2) var(--ease-out),filter var(--dur-2) var(--ease-out)}.fh-workout-btn:disabled{opacity:.5;cursor:not-allowed}.fh-workout-btn--primary{background:var(--primary);color:var(--ink-on-primary)}.fh-workout-btn--primary:hover:not(:disabled){background:var(--primary-hover)}.fh-workout-btn--gold{background:var(--secondary);color:var(--ink-on-secondary)}.fh-workout-btn--gold:hover:not(:disabled){background:var(--secondary-hover)}.fh-workout-btn--ghost{background:transparent;color:var(--primary);border-color:var(--border)}.fh-workout-btn--ghost:hover:not(:disabled){background:var(--surface-sunken)}.fh-workout-btn--danger{background:transparent;color:var(--danger);border-color:var(--danger-soft)}.fh-workout-btn--danger:hover:not(:disabled){background:var(--danger-soft)}.fh-workout-btn--sm{padding:var(--sp-3) var(--sp-5);font-size:var(--fs-caption);border-radius:var(--r-sm)}.fh-workout-btn--block{width:100%}.fh-workout-btn:focus-visible,.fh-workout input:focus-visible,.fh-workout textarea:focus-visible{outline:var(--bw-focus) solid var(--focus-ring);outline-offset:var(--focus-offset)}.fh-workout input[type=text],.fh-workout input[type=number],.fh-workout input[type=date],.fh-workout textarea{font-family:var(--font-text);font-size:var(--fs-meta);width:100%;background:var(--surface-card);border:var(--bw-hair) solid var(--border-strong);border-radius:var(--r-field);padding:var(--sp-4) var(--sp-5);color:var(--ink-1);box-shadow:var(--inset-well)}.fh-workout textarea{resize:vertical;min-height:72px}.fh-workout input[type=number]::-webkit-outer-spin-button,.fh-workout input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.fh-workout label{display:block;font:var(--fw-semibold) var(--fs-caption)/1.2 var(--font-text);color:var(--ink-3);margin-bottom:var(--sp-3)}.fh-workout-tabs{display:flex;gap:var(--sp-2);border-bottom:var(--bw-hair) solid var(--border);margin-bottom:var(--sp-7);overflow-x:auto}.fh-workout-tab{background:none;border:none;border-bottom:2px solid transparent;font-family:var(--font-text);font-size:var(--fs-meta);font-weight:var(--fw-semibold);color:var(--ink-3);padding:var(--sp-4) var(--sp-5);cursor:pointer;white-space:nowrap}.fh-workout-tab[data-active=true]{color:var(--ink-1);border-bottom-color:var(--primary)}.fh-workout-card{background:var(--surface-card);border:var(--bw-hair) solid var(--border);border-radius:var(--r-panel);box-shadow:var(--shadow-1);padding:var(--sp-6);margin-bottom:var(--sp-5)}.fh-workout-card--accent{border-left:4px solid var(--w-accent, var(--primary))}.fh-workout-card__top{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sp-4);margin-bottom:var(--sp-5)}.fh-workout-card__label{font:var(--fw-bold) var(--fs-caption)/1.2 var(--font-text);letter-spacing:var(--ls-meta);text-transform:uppercase;color:var(--w-accent, var(--primary))}.fh-workout-card__sub{font-size:var(--fs-caption);color:var(--ink-3);margin-top:var(--sp-1)}.fh-workout-program-card{cursor:pointer;transition:border-color var(--dur-2) var(--ease-out)}.fh-workout-program-card:hover{border-color:var(--primary)}.fh-workout-program-meta{display:flex;gap:var(--sp-4);flex-wrap:wrap;font-size:var(--fs-caption);color:var(--ink-3);margin-top:var(--sp-4)}.fh-workout-pill{display:inline-block;background:var(--surface-sunken);border-radius:var(--r-pill);padding:2px var(--sp-5);font:var(--fw-semibold) var(--fs-caption)/1.4 var(--font-text);color:var(--ink-2)}.fh-workout-pill--active{background:var(--secondary-soft);color:var(--secondary-soft-ink)}.fh-workout-section-heading{font:var(--fw-bold) var(--fs-caption)/1.2 var(--font-text);letter-spacing:var(--ls-meta);text-transform:uppercase;color:var(--ink-3);margin:var(--sp-8) 0 var(--sp-4)}.fh-workout-exercise-name{font:var(--fw-black) var(--fs-title-sm)/1.2 var(--font-display);color:var(--ink-1)}.fh-workout-step{font-size:var(--fs-caption);color:var(--ink-3);margin:var(--sp-2) 0 var(--sp-5)}.fh-workout-track{height:5px;background:var(--surface-sunken);border-radius:var(--r-pill);overflow:hidden}.fh-workout-track__fill{height:100%;border-radius:var(--r-pill);background:var(--w-accent, var(--secondary));transition:width var(--dur-3) var(--ease-out)}.fh-workout-streak{display:flex;align-items:center;gap:var(--sp-3);margin:var(--sp-5) 0}.fh-workout-dot{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--w-accent, var(--secondary))}.fh-workout-dot[data-on=true]{background:var(--w-accent, var(--secondary))}.fh-workout-streak__label{font-size:var(--fs-caption);color:var(--ink-3);margin-left:var(--sp-2)}.fh-workout-chain-list{margin:var(--sp-5) 0 0;padding-left:18px;max-height:220px;overflow-y:auto;font-size:var(--fs-caption);line-height:1.7;border-top:var(--bw-hair) solid var(--border);padding-top:var(--sp-4)}.fh-workout-chain-list li[data-state=done]{color:var(--ink-faint)}.fh-workout-chain-list li[data-state=current]{color:var(--ink-1);font-weight:var(--fw-bold)}.fh-workout-ladder{display:flex;flex-direction:column;gap:var(--sp-3)}.fh-workout-ladder button{display:flex;align-items:center;gap:var(--sp-4);text-align:left;font-family:var(--font-text);font-size:var(--fs-meta);background:var(--surface-card);border:var(--bw-hair) solid var(--border);border-radius:var(--r-control);padding:var(--sp-4) var(--sp-5);cursor:pointer;color:var(--ink-1)}.fh-workout-ladder button[data-state=current]{background:var(--primary);border-color:var(--primary);color:var(--ink-on-primary);font-weight:var(--fw-bold)}.fh-workout-ladder button[data-state=done]{color:var(--ink-faint);background:var(--surface-sunken)}.fh-workout-ladder .idx{font-size:var(--fs-caption);opacity:.6;min-width:20px}.fh-workout-chips{display:flex;flex-wrap:wrap;gap:var(--sp-3)}.fh-workout-chip{font-family:var(--font-text);font-size:var(--fs-caption);border:var(--bw-hair) solid var(--border);background:var(--surface-card);color:var(--ink-3);border-radius:var(--r-pill);padding:var(--sp-3) var(--sp-5);cursor:pointer}.fh-workout-chip[data-on=true]{background:var(--primary);border-color:var(--primary);color:var(--ink-on-primary);font-weight:var(--fw-semibold)}.fh-workout-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--surface-scrim);display:flex;align-items:flex-end;justify-content:center;z-index:60}.fh-workout-modal{background:var(--surface-page);border-radius:var(--r-sheet) var(--r-sheet) 0 0;width:100%;max-width:480px;padding:var(--sp-7) var(--sp-6) var(--sp-8);max-height:86vh;overflow-y:auto;box-shadow:var(--shadow-sheet);animation:fh-workout-rise var(--dur-3) var(--ease-out)}@keyframes fh-workout-rise{0%{transform:translateY(14px);opacity:0}to{transform:none;opacity:1}}.fh-workout-sets-row{display:flex;gap:var(--sp-5);margin:var(--sp-6) 0 var(--sp-7)}.fh-workout-sets-row>div{flex:1}.fh-workout-sets-row input{text-align:center;font-size:var(--fs-title-sm);font-weight:var(--fw-bold);padding:var(--sp-5) 0}.fh-workout-logger__head{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-5)}.fh-workout-logger__close{background:transparent;border:0;font-size:26px;line-height:1;color:var(--ink-3);cursor:pointer;padding:0 var(--sp-2)}.fh-workout-logger__last{font-size:var(--fs-caption);color:var(--ink-3);margin-top:var(--sp-3)}.fh-workout-setlist{margin:var(--sp-6) 0}.fh-workout-setrow{display:grid;grid-template-columns:34px 1fr 48px;gap:var(--sp-4);align-items:center;padding:var(--sp-3) var(--sp-3);border-radius:var(--r-control);margin-bottom:var(--sp-3);transition:background var(--dur-2) var(--ease-out)}.fh-workout-setrow[data-weight=true],.fh-workout-setrow[data-sides=true]{grid-template-columns:34px 1fr 1fr 48px}.fh-workout-setrow[data-weight=true][data-sides=true]{grid-template-columns:34px 1fr 1fr 1fr 48px}.fh-workout-setrow--head{font:var(--fw-semibold) var(--fs-caption)/1.2 var(--font-text);color:var(--ink-3);text-transform:uppercase;letter-spacing:var(--ls-meta);padding-bottom:0;margin-bottom:0}.fh-workout-setrow--head span:not(:first-child){text-align:center}.fh-workout-setrow__n{font-family:var(--font-display);font-weight:var(--fw-bold);color:var(--ink-2);display:flex;align-items:center;gap:2px}.fh-workout-setrow__remove{background:transparent;border:0;color:var(--ink-3);cursor:pointer;font-size:16px;padding:0 2px}.fh-workout .fh-workout-setrow input[type=number]{text-align:center;font-size:var(--fs-title-sm);font-weight:var(--fw-bold);padding:var(--sp-4) 0}.fh-workout .fh-workout-setrow input::placeholder{color:var(--ink-faint);font-weight:var(--fw-semibold);opacity:1}.fh-workout-setrow__tick{width:48px;height:48px;border-radius:50%;border:var(--bw-hair) solid var(--border-strong);background:var(--surface-card);color:var(--ink-3);font-size:20px;font-weight:var(--fw-bold);cursor:pointer}.fh-workout-setrow__tick:disabled{opacity:.4;cursor:not-allowed}.fh-workout-setrow[data-done=true]{background:var(--success-soft)}.fh-workout .fh-workout-setrow[data-done=true] input[type=number]{background:transparent;border-color:transparent;box-shadow:none;color:var(--success-soft-ink);opacity:1;-webkit-text-fill-color:var(--success-soft-ink)}.fh-workout-setrow__tick[data-done=true]{background:var(--success);border-color:var(--success);color:var(--white)}.fh-workout-notes{list-style:none;margin:var(--sp-4) 0 0;padding:0}.fh-workout-notes li{font-size:var(--fs-meta);color:var(--ink-2);border-left:2px solid var(--border-strong);padding:var(--sp-2) 0 var(--sp-2) var(--sp-5);margin-bottom:var(--sp-3)}.fh-workout-notes .when{display:block;font-size:var(--fs-caption);color:var(--ink-3)}.fh-workout-guide{margin:var(--sp-3) 0 var(--sp-5)}.fh-workout-guide__panel{margin-top:var(--sp-4);background:var(--surface-sunken);border-radius:var(--r-control);padding:var(--sp-5) var(--sp-6);font-size:var(--fs-meta);color:var(--ink-2);line-height:var(--lh-normal)}.fh-workout-guide__focus{color:var(--ink-1);font-weight:var(--fw-semibold)}.fh-workout-guide__note{font-size:var(--fs-meta);color:var(--ink-3);margin-bottom:var(--sp-4)!important}.fh-workout-guide__panel h4{font:var(--fw-semibold) var(--fs-caption)/1.2 var(--font-text);text-transform:uppercase;letter-spacing:var(--ls-meta);color:var(--ink-3);margin:var(--sp-5) 0 var(--sp-3)}.fh-workout-guide__panel ol,.fh-workout-guide__panel ul{margin:0 0 var(--sp-3);padding-left:20px}.fh-workout-guide__panel ol{list-style:decimal}.fh-workout-guide__panel ul{list-style:disc}.fh-workout-guide__panel li{display:list-item}.fh-workout-guide__panel li{margin-bottom:var(--sp-2)}.fh-workout-guide__mistakes li::marker{color:var(--danger)}.fh-workout-logger--page{padding-bottom:var(--sp-8)}.fh-workout-logger--page .fh-workout-timer--inline{top:calc(var(--header-h) + var(--sp-3));z-index:5}.fh-workout-run__bar{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sp-5)}.fh-workout-run__clock{font-family:var(--font-display);font-size:var(--fs-title);font-weight:var(--fw-black);font-variant-numeric:tabular-nums;color:var(--ink-1)}.fh-workout-run__steps{list-style:none;display:flex;flex-wrap:wrap;gap:var(--sp-3);margin:var(--sp-6) 0 var(--sp-3);padding:0}.fh-workout-run__steps button{width:34px;height:34px;border-radius:50%;border:var(--bw-hair) solid var(--border-strong);background:var(--surface-card);color:var(--ink-2);font:var(--fw-bold) var(--fs-caption)/1 var(--font-text);cursor:pointer}.fh-workout-run__steps button[data-state=current]{background:var(--primary);border-color:var(--primary);color:var(--ink-on-primary)}.fh-workout-run__steps button[data-state=done]{background:var(--success);border-color:var(--success);color:var(--white)}.fh-workout-run__count{font-size:var(--fs-caption);color:var(--ink-3);margin-bottom:var(--sp-6)}.fh-workout-run__start{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-5)}.fh-workout-timer{position:fixed;left:50%;bottom:calc(var(--bar-h) + var(--sp-5));transform:translate(-50%);background:var(--surface-inverse);color:var(--ink-inverse);border-radius:var(--r-panel);padding:var(--sp-5) var(--sp-6);display:flex;align-items:center;gap:var(--sp-6);box-shadow:var(--shadow-3);z-index:70;min-width:260px;max-width:calc(100vw - 2 * var(--sp-6))}.fh-workout-timer__count{font-family:var(--font-display);font-size:var(--fs-title);font-weight:var(--fw-black);font-variant-numeric:tabular-nums;min-width:68px}.fh-workout-timer__count{flex-shrink:0}.fh-workout-timer__label{font-size:var(--fs-caption);opacity:.75;letter-spacing:var(--ls-meta);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fh-workout-timer__bar{height:3px;background:#fcf8f340;border-radius:var(--r-pill);margin-top:var(--sp-3);overflow:hidden}.fh-workout-timer__bar span{display:block;height:100%;background:var(--secondary)}.fh-workout-timer button{background:transparent;border:var(--bw-hair) solid rgba(252,248,243,.35);color:var(--ink-inverse);border-radius:var(--r-sm);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-caption);font-family:var(--font-text);cursor:pointer}.fh-workout-timer--inline{position:sticky;top:calc(-1 * var(--sp-7));left:auto;bottom:auto;transform:none;min-width:0;max-width:none;margin:var(--sp-5) 0 0}.fh-workout-timer:not(.fh-workout-timer--inline)~.fh-workout-toast{bottom:calc(var(--bar-h) + var(--sp-5) + 84px)}.fh-workout-timer[data-done=true]{background:var(--secondary);color:var(--ink-on-secondary)}.fh-workout-timer[data-done=true] button{border-color:#241e224d;color:var(--ink-on-secondary)}.fh-workout-log-row{display:flex;align-items:center;gap:var(--sp-4);background:var(--surface-card);border:var(--bw-hair) solid var(--border);border-radius:var(--r-control);padding:var(--sp-4) var(--sp-5);margin-bottom:var(--sp-3)}.fh-workout-log-row .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.fh-workout-log-row .body{flex:1;min-width:0}.fh-workout-log-row .name{font-size:var(--fs-meta);font-weight:var(--fw-semibold)}.fh-workout-log-row .meta{font-size:var(--fs-caption);color:var(--ink-3);margin-top:1px}.fh-workout-log-row .when{font-size:var(--fs-caption);color:var(--ink-3);flex-shrink:0}.fh-workout-weight-grid{display:flex;gap:var(--sp-5);align-items:flex-end;margin-bottom:var(--sp-6)}.fh-workout-weight-grid>div:first-child{flex:1}.fh-workout-stat-row{display:flex;gap:var(--sp-5);margin-bottom:var(--sp-6);flex-wrap:wrap}.fh-workout-stat{flex:1;min-width:92px;background:var(--surface-card);border:var(--bw-hair) solid var(--border);border-radius:var(--r-panel);padding:var(--sp-5)}.fh-workout-stat .val{font-family:var(--font-display);font-size:var(--fs-title-sm);font-weight:var(--fw-black);color:var(--ink-1)}.fh-workout-stat .cap{font-size:var(--fs-caption);color:var(--ink-3);text-transform:uppercase;letter-spacing:var(--ls-meta)}.fh-workout-dash{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--sp-5)}.fh-workout-dash__tile{display:flex;flex-direction:column;gap:var(--sp-2);text-align:left;background:var(--surface-card);border:var(--bw-hair) solid var(--border);border-top:3px solid var(--w-accent, var(--primary));border-radius:var(--r-panel);padding:var(--sp-5);font-family:var(--font-text);color:var(--ink-1);cursor:pointer;min-width:0}.fh-workout-dash__tile[data-active=true]{box-shadow:0 0 0 2px var(--primary)}.fh-workout-dash__label{font:var(--fw-semibold) var(--fs-caption)/1.2 var(--font-text);text-transform:uppercase;letter-spacing:var(--ls-meta);color:var(--ink-3)}.fh-workout-dash__nums{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-body);color:var(--ink-1)}.fh-workout-dash__from{color:var(--ink-3);font-weight:var(--fw-semibold)}.fh-workout-dash__now{font-size:var(--fs-title-sm);font-weight:var(--fw-black)}.fh-workout-dash__rung{font-size:var(--fs-body);line-height:1.25}.fh-workout-dash__delta{font-size:var(--fs-caption);font-weight:var(--fw-semibold);color:var(--ink-2)}.fh-workout-dash__delta[data-up=true]{color:var(--success-soft-ink)}.fh-workout-dash__spark{display:block;width:100%;height:auto;margin:var(--sp-2) 0}.fh-workout-dash__spark--empty{font-size:var(--fs-caption);color:var(--ink-3);padding:var(--sp-4) 0}.fh-workout-dash__meta{font-size:var(--fs-caption);color:var(--ink-3)}.fh-workout-builder__row{display:flex;gap:var(--sp-4);flex-wrap:wrap;align-items:flex-end;margin-bottom:var(--sp-3)}.fh-workout-builder__chain{background:var(--surface-sunken);border-left:3px solid var(--w-accent, var(--primary));border-radius:var(--r-control);margin-bottom:var(--sp-4)}.fh-workout-builder__chain-head{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-4);width:100%;background:transparent;border:0;padding:var(--sp-5);text-align:left;font:var(--fs-meta)/1.3 var(--font-text);color:var(--ink-1);cursor:pointer}.fh-workout-builder__chain-body{padding:var(--sp-5)}.fh-workout-builder__chain-head+.fh-workout-builder__chain-body{padding-top:0}.fh-workout-builder__swatches{display:flex;gap:var(--sp-3);flex-wrap:wrap}.fh-workout-builder__swatches button{width:30px;height:30px;border-radius:50%;border:2px solid var(--surface-card);box-shadow:0 0 0 1px var(--border);cursor:pointer}.fh-workout-builder__swatches button[data-on=true]{box-shadow:0 0 0 2px var(--ink-1)}.fh-workout-builder__check{display:flex!important;align-items:center;gap:var(--sp-3);margin:var(--sp-5) 0!important;font-size:var(--fs-meta)!important;color:var(--ink-2)!important}.fh-workout .fh-workout-builder select{width:100%;font:var(--fs-meta) var(--font-text);background:var(--surface-card);border:var(--bw-hair) solid var(--border-strong);border-radius:var(--r-field);padding:var(--sp-4) var(--sp-5);color:var(--ink-1)}.fh-workout-builder__cues{margin-top:var(--sp-6)}.fh-workout-builder__cue{background:var(--surface-card);border:var(--bw-hair) solid var(--border);border-radius:var(--r-control);padding:var(--sp-4) var(--sp-5);margin-bottom:var(--sp-3)}.fh-workout-builder__cue-head{display:flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap;font-size:var(--fs-meta)}.fh-workout-builder__cue-head>span:first-child{flex:1;min-width:120px;font-weight:var(--fw-semibold)}.fh-workout-cuelib__item{background:var(--surface-card);border:var(--bw-hair) solid var(--border);border-radius:var(--r-control);margin-bottom:var(--sp-3)}.fh-workout-cuelib__head{display:flex;align-items:center;gap:var(--sp-4);width:100%;background:transparent;border:0;padding:var(--sp-5);text-align:left;font:var(--fw-semibold) var(--fs-meta)/1.3 var(--font-text);color:var(--ink-1);cursor:pointer}.fh-workout-cuelib__head>span:first-child{flex:1}.fh-workout-cuelib__body{padding:0 var(--sp-5) var(--sp-5)}.fh-workout-cuelib__item .fh-workout-cuelib__editor{margin:0 var(--sp-4) var(--sp-4)}.fh-workout-empty{text-align:center;padding:var(--sp-10) var(--sp-6);color:var(--ink-3);font-size:var(--fs-meta)}.fh-workout-alert{border-radius:var(--r-control);padding:var(--sp-4) var(--sp-5);font-size:var(--fs-meta);margin-bottom:var(--sp-6);line-height:var(--lh-normal)}.fh-workout-alert--error{background:var(--danger-soft);color:var(--danger-soft-ink)}.fh-workout-alert--warn{background:var(--warning-soft);color:var(--warning-soft-ink)}.fh-workout-alert--ok{background:var(--success-soft);color:var(--success-soft-ink)}.fh-workout-alert ul{margin:var(--sp-3) 0 0;padding-left:18px}.fh-workout-toast{position:fixed;bottom:calc(var(--bar-h) + var(--sp-5));left:50%;transform:translate(-50%);background:var(--surface-inverse);color:var(--ink-inverse);padding:var(--sp-5) var(--sp-6);border-radius:var(--r-control);font:var(--fw-semibold) var(--fs-meta)/1.3 var(--font-text);max-width:88vw;text-align:center;z-index:80;box-shadow:var(--shadow-3);animation:fh-workout-rise var(--dur-3) var(--ease-out)}.fh-workout-spinner{width:13px;height:13px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;display:inline-block;animation:fh-workout-spin .7s linear infinite}@keyframes fh-workout-spin{to{transform:rotate(360deg)}}@media (min-width: 620px){.fh-workout-overlay{align-items:center}.fh-workout-modal{border-radius:var(--r-panel-lg)}}:root{--font-display: "Gabarito", ui-sans-serif, system-ui, sans-serif;--font-text: "Onest", ui-sans-serif, system-ui, sans-serif;--font-numeric: "Onest", ui-sans-serif, system-ui, sans-serif}:root{--plum-900: #3b1526;--plum-800: #58203a;--plum-700: #7a2e4e;--plum-600: #95436a;--plum-300: #d89bb6;--plum-200: #ebc7d6;--plum-100: #f5e3eb;--plum-050: #fbf2f6;--marigold-900: #3a2410;--marigold-800: #6b4310;--marigold-700: #8a5a12;--marigold-600: #b07b1e;--marigold-500: #f0a32b;--marigold-300: #f7ce86;--marigold-100: #fbebd1;--marigold-050: #fdf6e9;--clay-950: #1a1518;--clay-900: #241e22;--clay-800: #2c2529;--clay-700: #3b3237;--clay-500: #6e6570;--clay-400: #8a7f87;--clay-300: #c9bdb4;--clay-200: #e7ddd3;--clay-100: #ede7df;--clay-050: #f6f1eb;--clay-000: #fcf8f3;--white: #ffffff;--green-700: #2a5540;--green-600: #33604a;--green-100: #dfebe2;--blue-700: #274f77;--blue-600: #2f5d8c;--blue-100: #dde7f2;--red-700: #8f231c;--red-600: #b02a21;--red-100: #f7ded9}:root{--surface-canvas: var(--clay-100);--surface-page: var(--clay-000);--surface-card: var(--white);--surface-sunken: var(--clay-050);--surface-inverse: var(--clay-900);--surface-feature: var(--plum-700);--surface-scrim: rgba(36, 30, 34, .46);--surface-veil: rgba(252, 248, 243, .86);--ink-1: var(--clay-900);--ink-2: #574f57;--ink-3: var(--clay-500);--ink-faint: var(--clay-400);--ink-on-feature: #fdf3e7;--ink-on-primary: var(--white);--ink-on-secondary: var(--marigold-900);--ink-inverse: var(--clay-000);--primary: var(--plum-700);--primary-hover: var(--plum-600);--primary-press: var(--plum-800);--primary-soft: var(--plum-100);--primary-soft-ink: var(--plum-800);--secondary: var(--marigold-500);--secondary-hover: #f7b348;--secondary-press: var(--marigold-600);--secondary-soft: var(--marigold-100);--secondary-soft-ink: var(--marigold-700);--success: var(--green-600);--success-soft: var(--green-100);--success-soft-ink: var(--green-700);--warning: var(--marigold-700);--warning-soft: var(--marigold-100);--warning-soft-ink: var(--marigold-800);--danger: var(--red-600);--danger-hover: #c2372d;--danger-soft: var(--red-100);--danger-soft-ink: var(--red-700);--info: var(--blue-600);--info-soft: var(--blue-100);--info-soft-ink: var(--blue-700);--border: var(--clay-200);--border-strong: var(--clay-300);--border-on-feature: rgba(253, 243, 231, .22);--danger-on-feature: #f4a9a2;--focus-ring: var(--plum-700);--focus-ring-offset: var(--surface-page);--member-1: var(--plum-700);--member-2: var(--blue-600);--member-3: var(--green-600);--member-4: var(--marigold-700);--member-5: #6a4a8f;--member-6: #0f6c6c}@media (prefers-color-scheme: dark){:root{--surface-canvas: #120e10;--surface-page: var(--clay-950);--surface-card: var(--clay-800);--surface-sunken: #211b1f;--surface-inverse: var(--clay-000);--surface-feature: var(--plum-800);--surface-scrim: rgba(9, 6, 8, .62);--surface-veil: rgba(26, 21, 24, .84);--ink-1: #f7f0ea;--ink-2: #cdc2c7;--ink-3: #a2969d;--ink-faint: #7c717a;--ink-on-feature: #fdf3e7;--ink-on-primary: #2a0f1c;--ink-inverse: var(--clay-900);--primary: #eb9dbb;--primary-hover: #f3b4cb;--primary-press: #d8809f;--primary-soft: #3e1728;--primary-soft-ink: #f3b4cb;--secondary: var(--marigold-500);--secondary-hover: #f7c066;--secondary-press: var(--marigold-600);--secondary-soft: #3a2610;--secondary-soft-ink: var(--marigold-300);--success: #7fc49f;--success-soft: #1b3a2b;--success-soft-ink: #9fd7b6;--warning: var(--marigold-300);--warning-soft: #3a2610;--warning-soft-ink: var(--marigold-300);--danger: #f2938a;--danger-hover: #f7a9a1;--danger-soft: #431814;--danger-soft-ink: #f2938a;--info: #8fbae4;--info-soft: #16293c;--info-soft-ink: #a9cbec;--border: #3b3237;--border-strong: #4e434a;--focus-ring: #f3b4cb;--focus-ring-offset: var(--surface-page);--member-1: #eb9dbb;--member-2: #8fbae4;--member-3: #7fc49f;--member-4: var(--marigold-300);--member-5: #bfa3de;--member-6: #78c6c6}[data-theme=light]{--surface-canvas: var(--clay-100);--surface-page: var(--clay-000);--surface-card: var(--white);--surface-sunken: var(--clay-050);--surface-inverse: var(--clay-900);--surface-feature: var(--plum-700);--surface-scrim: rgba(36, 30, 34, .46);--surface-veil: rgba(252, 248, 243, .86);--ink-1: var(--clay-900);--ink-2: #574f57;--ink-3: var(--clay-500);--ink-faint: var(--clay-400);--ink-on-feature: #fdf3e7;--ink-on-primary: var(--white);--ink-on-secondary: var(--marigold-900);--ink-inverse: var(--clay-000);--primary: var(--plum-700);--primary-hover: var(--plum-600);--primary-press: var(--plum-800);--primary-soft: var(--plum-100);--primary-soft-ink: var(--plum-800);--secondary: var(--marigold-500);--secondary-hover: #f7b348;--secondary-press: var(--marigold-600);--secondary-soft: var(--marigold-100);--secondary-soft-ink: var(--marigold-700);--success: var(--green-600);--success-soft: var(--green-100);--success-soft-ink: var(--green-700);--warning: var(--marigold-700);--warning-soft: var(--marigold-100);--warning-soft-ink: var(--marigold-800);--danger: var(--red-600);--danger-hover: #c2372d;--danger-soft: var(--red-100);--danger-soft-ink: var(--red-700);--info: var(--blue-600);--info-soft: var(--blue-100);--info-soft-ink: var(--blue-700);--border: var(--clay-200);--border-strong: var(--clay-300);--border-on-feature: rgba(253, 243, 231, .22);--danger-on-feature: #f4a9a2;--focus-ring: var(--plum-700);--focus-ring-offset: var(--surface-page);--member-1: var(--plum-700);--member-2: var(--blue-600);--member-3: var(--green-600);--member-4: var(--marigold-700);--member-5: #6a4a8f;--member-6: #0f6c6c}}[data-theme=dark]{--surface-canvas: #120e10;--surface-page: #1a1518;--surface-card: #2c2529;--surface-sunken: #211b1f;--surface-inverse: #fcf8f3;--surface-feature: #58203a;--surface-scrim: rgba(9, 6, 8, .62);--surface-veil: rgba(26, 21, 24, .84);--ink-1: #f7f0ea;--ink-2: #cdc2c7;--ink-3: #a2969d;--ink-faint: #7c717a;--ink-on-primary: #2a0f1c;--ink-inverse: #241e22;--primary: #eb9dbb;--primary-hover: #f3b4cb;--primary-press: #d8809f;--primary-soft: #3e1728;--primary-soft-ink: #f3b4cb;--secondary: #f0a32b;--secondary-hover: #f7c066;--secondary-press: #b07b1e;--secondary-soft: #3a2610;--secondary-soft-ink: #f7ce86;--success: #7fc49f;--success-soft: #1b3a2b;--success-soft-ink: #9fd7b6;--warning: #f7ce86;--warning-soft: #3a2610;--warning-soft-ink: #f7ce86;--danger: #f2938a;--danger-hover: #f7a9a1;--danger-soft: #431814;--danger-soft-ink: #f2938a;--info: #8fbae4;--info-soft: #16293c;--info-soft-ink: #a9cbec;--border: #3b3237;--border-strong: #4e434a;--focus-ring: #f3b4cb;--member-1: #eb9dbb;--member-2: #8fbae4;--member-3: #7fc49f;--member-4: #f7ce86;--member-5: #bfa3de;--member-6: #78c6c6}:root{--fs-caption: 12px;--fs-meta: 13px;--fs-body: 15px;--fs-body-lg: 17px;--fs-title-sm: 20px;--fs-title: 24px;--fs-title-lg: 30px;--fs-display-sm: 36px;--fs-display: 44px;--fs-display-lg: 56px;--fs-focus: 34px;--fs-focus-lg: 64px;--fs-focus-xl: 96px;--lh-tight: 1.05;--lh-snug: 1.15;--lh-normal: 1.45;--lh-relaxed: 1.6;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--fw-black: 800;--ls-display: -.022em;--ls-title: -.012em;--ls-body: 0em;--ls-meta: .005em;--type-display: var(--fw-black) var(--fs-display)/var(--lh-tight) var(--font-display);--type-display-sm: var(--fw-black) var(--fs-display-sm)/var(--lh-tight) var(--font-display);--type-title-lg: var(--fw-bold) var(--fs-title-lg)/var(--lh-snug) var(--font-display);--type-title: var(--fw-bold) var(--fs-title)/var(--lh-snug) var(--font-display);--type-title-sm: var(--fw-bold) var(--fs-title-sm)/var(--lh-snug) var(--font-display);--type-body-lg: var(--fw-regular) var(--fs-body-lg)/var(--lh-normal) var(--font-text);--type-body: var(--fw-regular) var(--fs-body)/var(--lh-normal) var(--font-text);--type-label: var(--fw-semibold) var(--fs-body)/1.2 var(--font-text);--type-meta: var(--fw-regular) var(--fs-meta)/var(--lh-normal) var(--font-text);--type-caption: var(--fw-medium) var(--fs-caption)/1.3 var(--font-text)}@media (min-width: 900px){:root{--fs-display: 52px;--fs-display-lg: 68px;--fs-title-lg: 34px}}:root{--sp-0: 0px;--sp-1: 2px;--sp-2: 4px;--sp-3: 6px;--sp-4: 8px;--sp-5: 12px;--sp-6: 16px;--sp-7: 20px;--sp-8: 24px;--sp-9: 32px;--sp-10: 40px;--sp-11: 56px;--sp-12: 72px;--gutter: 20px;--gutter-lg: 32px;--tap-min: 44px;--tap-thumb: 56px;--thumb-zone: 180px;--content-max: 720px;--bar-h: 82px;--header-h: 60px}@media (min-width: 900px){:root{--gutter: var(--gutter-lg)}}:root{--r-xs: 6px;--r-sm: 8px;--r-control: 14px;--r-field: 12px;--r-panel: 22px;--r-panel-lg: 26px;--r-sheet: 28px;--r-pill: 999px;--bw-hair: 1px;--bw-strong: 1.5px;--bw-focus: 2px;--focus-offset: 2px}:root{--shadow-1: 0 1px 2px rgba(60, 40, 50, .05), 0 2px 6px -2px rgba(60, 40, 50, .1);--shadow-2: 0 2px 4px rgba(60, 40, 50, .05), 0 10px 22px -12px rgba(60, 40, 50, .18);--shadow-3: 0 6px 12px rgba(60, 40, 50, .08), 0 26px 50px -18px rgba(60, 40, 50, .28);--shadow-sheet: 0 -8px 30px -12px rgba(36, 30, 34, .3);--inset-well: inset 0 1px 2px rgba(60, 40, 50, .08);--blur-veil: blur(14px)}[data-theme=dark]{--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 2px 4px rgba(0, 0, 0, .35), 0 12px 24px -12px rgba(0, 0, 0, .55);--shadow-3: 0 8px 16px rgba(0, 0, 0, .4), 0 30px 56px -20px rgba(0, 0, 0, .65);--shadow-sheet: 0 -8px 30px -12px rgba(0, 0, 0, .6);--inset-well: inset 0 1px 2px rgba(0, 0, 0, .4)}@media (prefers-color-scheme: dark){:root{--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 2px 4px rgba(0, 0, 0, .35), 0 12px 24px -12px rgba(0, 0, 0, .55);--shadow-3: 0 8px 16px rgba(0, 0, 0, .4), 0 30px 56px -20px rgba(0, 0, 0, .65);--shadow-sheet: 0 -8px 30px -12px rgba(0, 0, 0, .6);--inset-well: inset 0 1px 2px rgba(0, 0, 0, .4)}[data-theme=light]{--shadow-1: 0 1px 2px rgba(60, 40, 50, .05), 0 2px 6px -2px rgba(60, 40, 50, .1);--shadow-2: 0 2px 4px rgba(60, 40, 50, .05), 0 10px 22px -12px rgba(60, 40, 50, .18);--shadow-3: 0 6px 12px rgba(60, 40, 50, .08), 0 26px 50px -18px rgba(60, 40, 50, .28);--shadow-sheet: 0 -8px 30px -12px rgba(36, 30, 34, .3);--inset-well: inset 0 1px 2px rgba(60, 40, 50, .08)}}:root{--dur-1: .12s;--dur-2: .2s;--dur-3: .32s;--dur-4: .52s;--ease-out: cubic-bezier(.2, .8, .2, 1);--ease-in-out: cubic-bezier(.5, 0, .2, 1);--ease-snap: cubic-bezier(.34, 1.4, .5, 1);--press-scale: .985}@media (prefers-reduced-motion: reduce){:root{--dur-1: 1ms;--dur-2: 1ms;--dur-3: 1ms;--dur-4: 1ms;--press-scale: 1}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--surface-page);color:var(--ink-1);font:var(--type-body);letter-spacing:var(--ls-body);-webkit-font-smoothing:antialiased;text-wrap:pretty}h1,h2,h3,h4,p,figure,blockquote{margin:0}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:var(--ls-title);line-height:var(--lh-snug)}ul,ol{margin:0;padding:0;list-style:none}img,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--primary);text-decoration-thickness:1px;text-underline-offset:2px}a:hover{color:var(--primary-hover)}:focus-visible{outline:var(--bw-focus) solid var(--focus-ring);outline-offset:var(--focus-offset)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}.fh-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-4);min-height:var(--tap-min);padding:0 var(--sp-7);border:var(--bw-hair) solid transparent;border-radius:var(--r-control);font:var(--type-label);cursor:pointer;text-decoration:none;transition:background var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),transform var(--dur-1) var(--ease-out),border-color var(--dur-2) var(--ease-out);-webkit-tap-highlight-color:transparent}.fh-btn:active:not(:disabled){transform:scale(var(--press-scale))}.fh-btn:disabled{opacity:.45;cursor:not-allowed}.fh-btn--primary{background:var(--primary);color:var(--ink-on-primary)}.fh-btn--primary:hover:not(:disabled){background:var(--primary-hover)}.fh-btn--primary:active:not(:disabled){background:var(--primary-press)}.fh-btn--secondary{background:var(--secondary);color:var(--ink-on-secondary)}.fh-btn--secondary:hover:not(:disabled){background:var(--secondary-hover)}.fh-btn--secondary:active:not(:disabled){background:var(--secondary-press)}.fh-btn--quiet{background:var(--surface-card);color:var(--ink-1);border-color:var(--border)}.fh-btn--quiet:hover:not(:disabled){background:var(--surface-sunken);border-color:var(--border-strong)}.fh-btn--ghost{background:transparent;color:var(--ink-1)}.fh-btn--ghost:hover:not(:disabled){background:var(--surface-sunken)}.fh-btn--danger{background:var(--danger);color:var(--white)}.fh-btn--danger:hover:not(:disabled){background:var(--danger-hover)}.fh-btn--onFeature{background:#fdf3e729;color:var(--ink-on-feature);border-color:var(--border-on-feature)}.fh-btn--onFeature:hover:not(:disabled){background:#fdf3e742}.fh-btn--sm{min-height:36px;padding:0 var(--sp-5);font:var(--fw-semibold) var(--fs-meta)/1.2 var(--font-text);border-radius:var(--r-sm)}.fh-btn--lg{min-height:52px;padding:0 var(--sp-8);font:var(--fw-semibold) var(--fs-body-lg)/1.2 var(--font-text)}.fh-btn--thumb{min-height:var(--tap-thumb);padding:0 var(--sp-8);font:var(--fw-bold) var(--fs-body-lg)/1.2 var(--font-display);letter-spacing:var(--ls-title);border-radius:var(--r-panel);box-shadow:var(--shadow-2)}.fh-btn--block{width:100%}.fh-btn__spin{width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;animation:fh-spin .7s linear infinite}@keyframes fh-spin{to{transform:rotate(360deg)}}.fh-iconbtn{display:inline-grid;place-items:center;width:var(--tap-min);height:var(--tap-min);border:var(--bw-hair) solid transparent;border-radius:var(--r-control);background:transparent;color:var(--ink-2);cursor:pointer;transition:background var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}.fh-iconbtn:hover:not(:disabled){background:var(--surface-sunken);color:var(--ink-1)}.fh-iconbtn:active:not(:disabled){transform:scale(var(--press-scale))}.fh-iconbtn--filled{background:var(--surface-card);border-color:var(--border)}.fh-iconbtn--onFeature{color:var(--ink-on-feature)}.fh-iconbtn--onFeature:hover:not(:disabled){background:#fdf3e72e;color:var(--ink-on-feature)}.fh-iconbtn--lg{width:52px;height:52px}.fh-iconbtn:disabled{opacity:.4;cursor:not-allowed}.fh-card{display:block;width:100%;text-align:left;background:var(--surface-card);border:var(--bw-hair) solid var(--border);border-radius:var(--r-panel);padding:var(--sp-6);box-shadow:var(--shadow-1);color:inherit;text-decoration:none}.fh-card--raised{box-shadow:var(--shadow-2);border-color:transparent}.fh-card--flat{box-shadow:none;background:var(--surface-sunken)}.fh-card--feature{background:var(--surface-feature);border-color:transparent;color:var(--ink-on-feature);border-radius:var(--r-panel-lg);box-shadow:none}.fh-card--tile{min-height:118px;display:flex;flex-direction:column;justify-content:flex-start;gap:var(--sp-5)}.fh-card--interactive{cursor:pointer;transition:transform var(--dur-1) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)}.fh-card--interactive:hover{box-shadow:var(--shadow-2);border-color:var(--border-strong)}.fh-card--interactive:active{transform:translateY(1px) scale(.997)}.fh-card__title{font:var(--type-title-sm);color:inherit}.fh-card__meta{font:var(--type-meta);color:var(--ink-3);margin-top:var(--sp-1)}.fh-card--feature .fh-card__meta{color:#fdf3e7c2}.fh-rows{background:var(--surface-card);border:var(--bw-hair) solid var(--border);border-radius:var(--r-panel);overflow:hidden}.fh-row{display:flex;align-items:center;gap:var(--sp-5);width:100%;min-height:var(--tap-min);padding:var(--sp-5) var(--sp-6);background:transparent;border:0;border-bottom:var(--bw-hair) solid var(--border);text-align:left;color:inherit;text-decoration:none;cursor:pointer;font:var(--type-body);transition:background var(--dur-2) var(--ease-out)}.fh-row:last-child{border-bottom:0}.fh-row:hover{background:var(--surface-sunken)}.fh-row--static{cursor:default}.fh-row--static:hover{background:transparent}.fh-row__body{flex:1;min-width:0;display:flex;flex-direction:column}.fh-row__label{display:block;font:var(--type-label);color:var(--ink-1);overflow-wrap:anywhere}.fh-row__meta{display:block;font:var(--type-meta);color:var(--ink-3);margin-top:2px}.fh-row__trail{display:flex;align-items:center;gap:var(--sp-4);color:var(--ink-3);flex-shrink:0}.fh-row__lead{flex-shrink:0;display:grid;place-items:center;color:var(--ink-2)}.fh-tick{display:flex;align-items:center;gap:var(--sp-6);width:100%;min-height:var(--tap-thumb);padding:var(--sp-5) var(--sp-6);background:transparent;border:0;text-align:left;cursor:pointer;color:inherit;transition:background var(--dur-2) var(--ease-out)}.fh-tick-row{display:flex;align-items:stretch;border-bottom:var(--bw-hair) solid var(--border)}.fh-tick-row:last-child{border-bottom:0}.fh-tick-row--trail{padding-right:var(--sp-5);gap:var(--sp-3);align-items:center}.fh-tick-row--trail .fh-tick{flex:1;min-width:0}.fh-tick-row--trail .fh-tick__label{overflow-wrap:anywhere}.fh-tick__trail{flex:none;display:flex;align-items:center}.fh-tick-row--trail:has(.fh-tick[aria-checked=true]) .fh-tick__trail{visibility:hidden}.fh-tick:hover{background:var(--surface-sunken)}.fh-tick:disabled{cursor:default}.fh-tick:disabled:hover{background:transparent}.fh-tick__box{width:30px;height:30px;flex-shrink:0;border:var(--bw-strong) solid var(--border-strong);border-radius:10px;display:grid;place-items:center;color:transparent;background:var(--surface-card);transition:background var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),transform var(--dur-1) var(--ease-snap)}.fh-tick[aria-checked=true] .fh-tick__box{background:var(--success);border-color:var(--success);color:var(--white);animation:fh-pop var(--dur-4) var(--ease-snap)}@keyframes fh-pop{0%{transform:scale(1)}35%{transform:scale(1.18)}to{transform:scale(1)}}.fh-tick__label{flex:1;font:var(--fw-medium) var(--fs-body-lg)/1.3 var(--font-text);color:var(--ink-1)}.fh-tick__qty{font:var(--type-meta);color:var(--ink-3);flex-shrink:0}.fh-tick[aria-checked=true] .fh-tick__label{color:var(--ink-3);text-decoration:line-through;text-decoration-color:var(--ink-faint)}.fh-badge{display:inline-flex;align-items:center;gap:var(--sp-2);height:24px;padding:0 var(--sp-4);border-radius:var(--r-xs);font:var(--type-caption);letter-spacing:var(--ls-meta);background:var(--surface-sunken);color:var(--ink-2);border:var(--bw-hair) solid var(--border)}.fh-badge--admin{background:var(--primary-soft);color:var(--primary-soft-ink);border-color:transparent}.fh-badge--adult{background:var(--info-soft);color:var(--info-soft-ink);border-color:transparent}.fh-badge--kid{background:var(--secondary-soft);color:var(--secondary-soft-ink);border-color:transparent}.fh-badge--success{background:var(--success-soft);color:var(--success-soft-ink);border-color:transparent}.fh-badge--warning{background:var(--warning-soft);color:var(--warning-soft-ink);border-color:transparent}.fh-badge--danger{background:var(--danger-soft);color:var(--danger-soft-ink);border-color:transparent}.fh-chip{display:inline-flex;align-items:center;gap:var(--sp-3);min-height:var(--tap-min);padding:0 var(--sp-6);border-radius:var(--r-pill);border:var(--bw-hair) solid var(--border);background:var(--surface-card);color:var(--ink-2);font:var(--fw-medium) var(--fs-meta)/1.2 var(--font-text);cursor:pointer;white-space:nowrap;transition:background var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)}.fh-chip:hover{border-color:var(--border-strong);color:var(--ink-1)}.fh-chip[aria-pressed=true]{background:var(--ink-1);border-color:var(--ink-1);color:var(--ink-inverse)}.fh-chip__count{color:var(--ink-3);font-variant-numeric:tabular-nums}.fh-chip[aria-pressed=true] .fh-chip__count{color:#ffffffa6}.fh-chiprow{display:flex;gap:var(--sp-4);overflow-x:auto;padding-bottom:var(--sp-2);scrollbar-width:none}.fh-chiprow::-webkit-scrollbar{display:none}.fh-avatar{display:grid;place-items:center;border-radius:50%;font-family:var(--font-display);font-weight:var(--fw-bold);color:var(--white);flex-shrink:0;overflow:hidden;position:relative}.fh-avatar img{width:100%;height:100%;object-fit:cover}.fh-avatar--sm{width:28px;height:28px;font-size:var(--fs-caption)}.fh-avatar--md{width:38px;height:38px;font-size:var(--fs-meta)}.fh-avatar--lg{width:56px;height:56px;font-size:var(--fs-body-lg)}.fh-avatar__here{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border-radius:50%;background:var(--success);border:2px solid var(--surface-card)}.fh-stack{display:flex;align-items:center}.fh-stack .fh-avatar{border:2px solid var(--surface-page);margin-left:-8px}.fh-stack .fh-avatar:first-child{margin-left:0}.fh-stack__more{font:var(--type-meta);color:var(--ink-3);margin-left:var(--sp-5)}.fh-field{display:flex;flex-direction:column;gap:var(--sp-3)}.fh-field__label{font:var(--fw-semibold) var(--fs-meta)/1.2 var(--font-text);color:var(--ink-2)}.fh-field__hint{font:var(--type-meta);color:var(--ink-3)}.fh-field__error{font:var(--type-meta);color:var(--danger);display:flex;gap:var(--sp-3);align-items:flex-start}.fh-input{width:100%;min-height:var(--tap-min);padding:var(--sp-4) var(--sp-5);background:var(--surface-card);border:var(--bw-hair) solid var(--border-strong);border-radius:var(--r-field);font:var(--type-body);color:var(--ink-1);box-shadow:var(--inset-well);transition:border-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.fh-input::placeholder{color:var(--ink-3)}.fh-input:hover{border-color:var(--ink-faint)}.fh-input:focus{outline:0;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.fh-input[aria-invalid=true]{border-color:var(--danger)}.fh-input:disabled{background:var(--surface-sunken);color:var(--ink-3);cursor:not-allowed}.fh-select{position:relative;display:block}.fh-select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;min-height:var(--tap-min);padding:var(--sp-4) var(--sp-10) var(--sp-4) var(--sp-5);background:var(--surface-card);border:var(--bw-hair) solid var(--border-strong);border-radius:var(--r-field);font:var(--type-body);color:var(--ink-1);cursor:pointer}.fh-select select:focus{outline:0;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.fh-select__caret{position:absolute;right:var(--sp-5);top:50%;transform:translateY(-50%);color:var(--ink-3);pointer-events:none}textarea.fh-input{min-height:96px;resize:vertical;line-height:var(--lh-normal)}.fh-search{position:relative;display:block}.fh-search .fh-input{padding-left:42px;padding-right:var(--sp-10);border-radius:var(--r-pill)}.fh-search__icon{position:absolute;left:var(--sp-5);top:50%;transform:translateY(-50%);color:var(--ink-3);pointer-events:none}.fh-search__clear{position:absolute;right:var(--sp-2);top:50%;transform:translateY(-50%)}.fh-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--surface-scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-end;justify-content:center;z-index:60;animation:fh-fade var(--dur-3) var(--ease-out)}@keyframes fh-fade{0%{opacity:0}to{opacity:1}}.fh-sheet{width:100%;max-width:520px;max-height:88vh;display:flex;flex-direction:column;background:var(--surface-page);border-radius:var(--r-sheet) var(--r-sheet) 0 0;box-shadow:var(--shadow-sheet);animation:fh-rise var(--dur-3) var(--ease-out)}.fh-sheet--wide{max-width:720px}@keyframes fh-rise{0%{transform:translateY(14px)}to{transform:none}}.fh-sheet__grip{width:40px;height:4px;border-radius:var(--r-pill);background:var(--border-strong);margin:var(--sp-4) auto 0}.fh-sheet__head{display:flex;align-items:center;gap:var(--sp-5);padding:var(--sp-6) var(--sp-6) var(--sp-4)}.fh-sheet__title{flex:1;font:var(--type-title-sm)}.fh-sheet__body{padding:0 var(--sp-6) var(--sp-6);overflow:auto}.fh-sheet__foot{display:flex;gap:var(--sp-5);padding:var(--sp-6);padding-bottom:max(var(--sp-6),env(safe-area-inset-bottom));border-top:var(--bw-hair) solid var(--border)}.fh-sheet__foot .fh-btn{flex:1}@media (min-width:720px){.fh-scrim{align-items:center}.fh-sheet{border-radius:var(--r-panel-lg);max-height:82vh;box-shadow:var(--shadow-3)}.fh-sheet__grip{display:none}.fh-sheet__head{padding-top:var(--sp-7)}.fh-sheet__foot{justify-content:flex-end}.fh-sheet__foot .fh-btn{flex:0 0 auto}}.fh-header{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:var(--sp-5);min-height:var(--header-h);padding:0 var(--gutter);background:var(--surface-veil);-webkit-backdrop-filter:var(--blur-veil);backdrop-filter:var(--blur-veil);border-bottom:var(--bw-hair) solid var(--border)}.fh-header__title{flex:1;min-width:0;font:var(--type-title-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fh-header__back{margin-left:calc(var(--sp-5) * -1)}.fh-header__actions{display:flex;align-items:center;gap:var(--sp-3);flex-shrink:0}.fh-tabbar{position:sticky;bottom:0;z-index:40;display:flex;justify-content:space-around;height:var(--bar-h);padding-top:var(--sp-5);padding-bottom:env(safe-area-inset-bottom);background:var(--surface-veil);-webkit-backdrop-filter:var(--blur-veil);backdrop-filter:var(--blur-veil);border-top:var(--bw-hair) solid var(--border)}.fh-tabbar__item{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);min-height:var(--tap-min);border:0;background:transparent;color:var(--ink-3);font:var(--type-caption);cursor:pointer;text-decoration:none}.fh-tabbar__item[aria-current=page]{color:var(--primary)}.fh-tabbar__item:active{transform:scale(var(--press-scale))}.fh-wordmark{display:inline-flex;align-items:center;gap:.2em;font:var(--fw-black) var(--fs-body-lg)/1 var(--font-display);letter-spacing:-.03em;color:var(--ink-1);text-decoration:none}.fh-wordmark span{color:var(--primary)}.fh-wordmark__mark{width:1.25em;height:1.25em;color:var(--primary)}.fh-wordmark--onFeature{color:var(--ink-on-feature)}.fh-wordmark--onFeature span,.fh-wordmark--onFeature .fh-wordmark__mark{color:var(--secondary)}.fh-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--sp-5);padding:var(--sp-10) var(--sp-6);background:var(--surface-sunken);border:var(--bw-hair) dashed var(--border-strong);border-radius:var(--r-panel)}.fh-empty__mark{width:52px;height:52px;border-radius:var(--r-control);display:grid;place-items:center;background:var(--surface-card);color:var(--primary);box-shadow:var(--shadow-1)}.fh-empty__title{font:var(--type-title-sm)}.fh-empty__body{font:var(--type-body);color:var(--ink-2);max-width:38ch}.fh-error{display:flex;gap:var(--sp-5);padding:var(--sp-6);background:var(--danger-soft);border-radius:var(--r-panel);color:var(--danger-soft-ink)}.fh-error__title{font:var(--fw-bold) var(--fs-body)/1.3 var(--font-display);letter-spacing:var(--ls-title)}.fh-error__body{font:var(--type-meta);margin-top:var(--sp-2)}.fh-spinner{width:22px;height:22px;border-radius:50%;border:2.5px solid var(--border);border-top-color:var(--primary);animation:fh-spin .7s linear infinite}.fh-loading{display:flex;align-items:center;gap:var(--sp-5);color:var(--ink-3);font:var(--type-meta)}.fh-app{min-height:100dvh;display:flex;flex-direction:column;background:var(--surface-page)}.fh-app__body{flex:1;width:100%;max-width:var(--content-max);margin:0 auto;padding:var(--sp-6) var(--gutter) var(--sp-11)}.fh-app--wide .fh-app__body{max-width:1100px}.fh-app--fill{height:100dvh;min-height:0}.fh-app--fill .fh-app__body{display:flex;flex-direction:column;min-height:0;overflow:hidden;padding-top:var(--sp-5);padding-bottom:var(--sp-5)}.fh-app--game .fh-app__body{padding-bottom:max(var(--sp-5),env(safe-area-inset-bottom))}.fh-home__greet{font:var(--type-display-sm);color:var(--ink-1);margin-bottom:var(--sp-2)}.fh-home__sub{font:var(--type-body-lg);color:var(--ink-3);margin-bottom:var(--sp-7)}.fh-home__feature{margin-bottom:var(--sp-7)}.fh-home__eyebrow{font:var(--fw-semibold) var(--fs-meta)/1.2 var(--font-text);color:var(--secondary);margin-bottom:var(--sp-3)}.fh-home__dish{font:var(--type-title);color:var(--ink-on-feature);margin-bottom:var(--sp-6)}.fh-home__actions{display:flex;gap:var(--sp-5);flex-wrap:wrap}.fh-home__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-5)}.fh-home__mark{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;flex-shrink:0;background:var(--primary-soft);color:var(--primary-soft-ink)}.fh-home__section{font:var(--fw-semibold) var(--fs-meta)/1.2 var(--font-text);color:var(--ink-3);margin:var(--sp-9) 0 var(--sp-5)}@media (min-width:720px){.fh-home__grid{grid-template-columns:repeat(3,1fr)}}.fh-authscreen{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--gutter);background:var(--surface-page)}.fh-authscreen__inner{width:100%;max-width:400px;display:flex;flex-direction:column;align-items:center;gap:var(--sp-8)}.fh-authscreen__card{width:100%}.fh-authscreen__sub{font:var(--type-body);color:var(--ink-3);margin:var(--sp-2) 0 var(--sp-7)}.fh-authscreen__toggle{font:var(--type-meta);color:var(--ink-2);text-align:center;margin-top:var(--sp-6)}.fh-authscreen__toggle button{background:none;border:0;color:var(--primary);font:inherit;font-weight:var(--fw-semibold);cursor:pointer;padding:0}.fh-authscreen form{display:flex;flex-direction:column;gap:var(--sp-6)}.fh-notice{display:flex;gap:var(--sp-4);padding:var(--sp-5) var(--sp-6);border-radius:var(--r-panel);font:var(--type-meta);margin-bottom:var(--sp-6)}.fh-notice--danger{background:var(--danger-soft);color:var(--danger-soft-ink)}.fh-notice--success{background:var(--success-soft);color:var(--success-soft-ink)}.fh-recipes__toolbar{display:flex;gap:var(--sp-5);align-items:center;margin-bottom:var(--sp-6);flex-wrap:wrap}.fh-recipes__toolbar .fh-search{flex:1;min-width:180px}.fh-recipes__section{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--sp-5)}.fh-recipes__count{font:var(--type-meta);color:var(--ink-3)}.fh-recipes__grid{display:grid;grid-template-columns:1fr;gap:var(--sp-5)}@media (min-width:600px){.fh-recipes__grid{grid-template-columns:1fr 1fr}}@media (min-width:900px){.fh-recipes__grid{grid-template-columns:repeat(3,1fr)}}.fh-recipes__mark{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;flex-shrink:0;background:var(--primary-soft);color:var(--primary-soft-ink)}.fh-recipedetail__mark{width:64px;height:64px;border-radius:var(--r-panel);display:grid;place-items:center;background:var(--primary-soft);color:var(--primary-soft-ink);margin-bottom:var(--sp-6)}.fh-recipedetail__cat{font:var(--fw-semibold) var(--fs-meta)/1.2 var(--font-text);color:var(--secondary-soft-ink);margin-bottom:var(--sp-3)}.fh-recipedetail__title{font:var(--type-title-lg);margin-bottom:var(--sp-4)}.fh-recipedetail__facts{display:flex;gap:var(--sp-6);flex-wrap:wrap;font:var(--type-meta);color:var(--ink-3);margin-bottom:var(--sp-6)}.fh-recipedetail__fact{display:flex;align-items:center;gap:var(--sp-3)}.fh-recipedetail__tags{display:flex;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-7)}.fh-recipedetail__cols{display:flex;flex-direction:column;gap:var(--sp-8)}@media (min-width:600px){.fh-recipedetail__cols{flex-direction:row}.fh-recipedetail__cols>*{flex:1}}.fh-recipedetail__h{font:var(--type-title-sm);margin-bottom:var(--sp-5)}.fh-recipedetail__ing{display:flex;justify-content:space-between;gap:var(--sp-6);padding:var(--sp-4) 0;border-bottom:var(--bw-hair) solid var(--border);font:var(--type-body)}.fh-recipedetail__ing:last-child{border-bottom:0}.fh-recipedetail__ing span:last-child{color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap}.fh-recipedetail__group{font:var(--fw-semibold) var(--fs-meta)/1.2 var(--font-text);color:var(--ink-3);margin:var(--sp-5) 0 var(--sp-2)}.fh-recipedetail__group:first-child{margin-top:0}.fh-recipedetail__step{display:flex;gap:var(--sp-5);padding:var(--sp-4) 0}.fh-recipedetail__num{width:26px;height:26px;flex-shrink:0;border-radius:var(--r-xs);background:var(--primary-soft);color:var(--primary-soft-ink);display:grid;place-items:center;font:var(--fw-bold) var(--fs-meta)/1 var(--font-display)}.fh-recipedetail__notes{margin-top:var(--sp-7);padding:var(--sp-6);background:var(--surface-sunken);border-radius:var(--r-panel);font:var(--type-body);color:var(--ink-2)}.fh-recipedetail__notes strong{display:block;font:var(--type-label);color:var(--ink-1);margin-bottom:var(--sp-3)}.fh-cook{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:var(--surface-inverse);color:var(--ink-inverse);display:flex;flex-direction:column;padding:var(--sp-7) var(--gutter) max(var(--sp-7),env(safe-area-inset-bottom))}.fh-cook__top{display:flex;align-items:center;gap:var(--sp-5);margin-bottom:var(--sp-6)}.fh-cook__title{flex:1;font:var(--fw-semibold) var(--fs-body)/1.2 var(--font-text);color:#fcf8f3cc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fh-cook__dots{display:flex;gap:var(--sp-3);margin-bottom:var(--sp-7)}.fh-cook__dot{flex:1;height:5px;border-radius:var(--r-pill);background:#fcf8f32e}.fh-cook__dot--done{background:#fcf8f380}.fh-cook__dot--current{background:var(--secondary)}.fh-cook__body{flex:1;display:flex;flex-direction:column;justify-content:center;gap:var(--sp-8)}.fh-cook__label{font:var(--type-meta);color:#fcf8f399}.fh-cook__step{font:var(--fw-black) var(--fs-focus)/1.15 var(--font-display);letter-spacing:var(--ls-display);max-width:26ch}.fh-cook__timer{display:flex;align-items:center;gap:var(--sp-7);flex-wrap:wrap;padding:var(--sp-6);border-radius:var(--r-panel);background:#fcf8f312}.fh-cook__timer--finished{background:#f0a32b29}.fh-cook__timer-time{font:var(--fw-black) var(--fs-focus-lg)/1 var(--font-display);letter-spacing:var(--ls-display);font-variant-numeric:tabular-nums}.fh-cook__ingredients{margin-top:var(--sp-6);padding:var(--sp-6);border-radius:var(--r-panel);background:#fcf8f312}.fh-cook__ingredients h4{font:var(--type-title-sm);margin-bottom:var(--sp-4)}.fh-cook__ingredients li{padding:var(--sp-2) 0;font:var(--type-body);color:#fcf8f3d9}.fh-cook__foot{display:flex;gap:var(--sp-5);align-items:center;margin-top:var(--sp-7)}.fh-cook__count{font:var(--type-meta);color:#fcf8f399;white-space:nowrap}.fh-cook .fh-btn--quiet{background:#fcf8f31f;color:var(--ink-inverse);border-color:#fcf8f338}.fh-cook .fh-btn--quiet:hover:not(:disabled){background:#fcf8f333}.fh-cook .fh-btn--secondary,.fh-cook .fh-btn--primary{flex:1}@media (max-width: 800px){.fh-games{padding-left:28px}}.fh-games__search,.fh-games__scores{margin-bottom:var(--sp-7)}.fh-games__empty{font:var(--type-body);color:var(--ink-3);padding:var(--sp-8) 0;text-align:center}.fh-games__list{display:flex;flex-direction:column;gap:var(--sp-7)}.fh-games__group{scroll-margin-top:calc(var(--header-h) + var(--sp-5))}.fh-games__group-title{position:sticky;top:var(--header-h);z-index:20;margin:0 0 var(--sp-4);padding:var(--sp-2) 0;font:var(--fw-semibold) var(--fs-meta)/1.2 var(--font-text);color:var(--ink-3);background:var(--surface-page)}.fh-games__index{position:fixed;left:max(4px,calc(50vw - (var(--content-max) / 2) - 32px));top:calc(var(--header-h) + var(--sp-6));bottom:calc(var(--bar-h) + env(safe-area-inset-bottom) + var(--sp-6));z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-2);touch-action:none;user-select:none;-webkit-user-select:none}.fh-games__index-letter{border:0;background:transparent;padding:0;width:16px;font:var(--fw-semibold) 9px/1.3 var(--font-text);color:var(--ink-faint);cursor:pointer}.fh-games__index-letter.has-games{color:var(--ink-3)}.fh-games__index-letter.active{color:var(--primary);transform:scale(1.3)}.fh-games__index-bubble{position:fixed;top:50%;left:max(4px,calc(50vw - (var(--content-max) / 2) - 32px));transform:translate(28px,-50%);z-index:31;width:56px;height:56px;border-radius:50%;background:var(--primary);color:var(--ink-on-primary);display:flex;align-items:center;justify-content:center;font:var(--fw-semibold) 24px/1 var(--font-display);box-shadow:var(--shadow-2);pointer-events:none}.fh-planner__toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5);flex-wrap:wrap;margin-bottom:var(--sp-6)}.fh-planner__week{display:flex;align-items:center;gap:var(--sp-3)}.fh-planner__label{font:var(--type-title-sm);min-width:120px;text-align:center}.fh-planner__days{display:flex;flex-direction:column;gap:var(--sp-5)}.fh-planner__day{background:var(--surface-card);border:var(--bw-hair) solid var(--border);border-radius:var(--r-panel);overflow:hidden}.fh-planner__dayhead{display:flex;align-items:baseline;gap:var(--sp-4);padding:var(--sp-5) var(--sp-6);border-bottom:var(--bw-hair) solid var(--border);background:var(--surface-sunken)}.fh-planner__dayname{font:var(--fw-bold) var(--fs-body)/1 var(--font-display);letter-spacing:var(--ls-title)}.fh-planner__daydate{font:var(--type-meta);color:var(--ink-3)}.fh-planner__day--today .fh-planner__dayhead{background:var(--primary-soft)}.fh-planner__day--today .fh-planner__dayname{color:var(--primary-soft-ink)}.fh-planner__slot{display:flex;align-items:center;gap:var(--sp-5);width:100%;min-height:var(--tap-min);padding:var(--sp-5) var(--sp-6);border:0;border-bottom:var(--bw-hair) solid var(--border);background:transparent;text-align:left;cursor:pointer;color:inherit;transition:background var(--dur-2) var(--ease-out)}.fh-planner__slot:last-child{border-bottom:0}.fh-planner__slot:hover{background:var(--surface-sunken)}.fh-planner__meal{width:76px;flex-shrink:0;font:var(--type-caption);color:var(--ink-3)}.fh-planner__dish{flex:1;font:var(--fw-medium) var(--fs-body)/1.3 var(--font-text);color:var(--ink-1)}.fh-planner__dish--empty{color:var(--ink-3)}@media (min-width:900px){.fh-planner__days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--sp-4)}.fh-planner__day{display:flex;flex-direction:column}.fh-planner__dayhead{flex-direction:column;gap:0;align-items:flex-start;padding:var(--sp-5)}.fh-planner__slot{flex-direction:column;align-items:flex-start;gap:var(--sp-3);flex:1;padding:var(--sp-5);min-height:104px}.fh-planner__meal{width:auto}.fh-planner__dish{font-size:var(--fs-meta)}}.fh-lists__toolbar{display:flex;gap:var(--sp-4);margin-bottom:var(--sp-6)}.fh-lists__toolbar .fh-input{flex:1}.fh-lists__actions{display:flex;justify-content:flex-end;gap:var(--sp-4);margin-bottom:var(--sp-5)}.fh-lists__grid{display:grid;grid-template-columns:1fr;gap:var(--sp-5)}@media (min-width:600px){.fh-lists__grid{grid-template-columns:1fr 1fr}}.fh-lists__combinebox{position:absolute;top:var(--sp-5);right:var(--sp-5)}.fh-lists__group{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);margin:var(--sp-7) var(--sp-6) var(--sp-4)}.fh-lists__grouplabel{font:var(--fw-semibold) var(--fs-meta)/1.2 var(--font-text);color:var(--ink-3)}.fh-lists__add{display:flex;gap:var(--sp-4);margin-bottom:var(--sp-6)}.fh-lists__add .fh-input{flex:1}.fh-lists__head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-6)}.fh-lists__head .fh-home__greet{margin:0;min-width:0;overflow-wrap:anywhere}.fh-lists__sharelabel{margin:var(--sp-6) 0 var(--sp-4)}.fh-lists__hint{font:var(--type-caption);color:var(--ink-3);margin-top:var(--sp-5)}.fh-lists__add{flex-wrap:wrap}.fh-lists__extras{flex-basis:100%;display:flex;gap:var(--sp-4)}.fh-lists__extras>*{flex:1;min-width:0}.fh-lists__itemmeta{display:block;font:var(--type-meta);color:var(--ink-3);margin-top:2px;text-decoration:none}.fh-lists__overdue{color:var(--danger)}.fh-lists__form{display:flex;flex-direction:column;gap:var(--sp-5)}.fh-lists__note{display:block;width:100%;min-height:min(60vh,480px);line-height:var(--lh-normal)}.fh-lists__note--read{white-space:pre-wrap;overflow-wrap:anywhere;font:var(--type-body);color:var(--ink-1)}.fh-lists__title{display:flex;align-items:center;gap:var(--sp-3);min-width:0}.fh-chores__toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5);margin-bottom:var(--sp-6);flex-wrap:wrap}.fh-chores__form{display:flex;gap:var(--sp-4);margin-bottom:var(--sp-6);flex-wrap:wrap}.fh-chores__form .fh-input{flex:1;min-width:160px}.fh-cal__toolbar{display:flex;justify-content:space-between;gap:var(--sp-5);margin-bottom:var(--sp-7);flex-wrap:wrap}.fh-cal__group{margin-bottom:var(--sp-7)}.fh-cal__date{font:var(--fw-semibold) var(--fs-meta)/1.2 var(--font-text);color:var(--ink-3);margin-bottom:var(--sp-4)}.fh-settings__avatarcard{display:flex;align-items:center;gap:var(--sp-6);margin-bottom:var(--sp-7)}.fh-settings__namerow{display:flex;gap:var(--sp-4);align-items:flex-end;margin-bottom:var(--sp-8);flex-wrap:wrap}.fh-settings__namerow .fh-field{flex:1;min-width:200px}
