/* v0.34 · Modern scorebook. This layer changes presentation, never game rules. */
:root{--paper:#f7f5ef;--ink:#102f40;--muted:#52636d;--action:#155fc6;--line:#cbd2d1;--no:#52636d;--no-soft:#eef1f3;}
body{font-size:16px;}
.brand-home{min-height:44px;flex-shrink:0;}
.brand-logo{display:block;width:190px;height:auto;}
.brand-logo-dark{display:none;}
html[data-theme=dark] .brand-logo-light{display:none;}
html[data-theme=dark] .brand-logo-dark{display:block;}
@media(max-width:400px){.brand-logo{width:174px;}}
.shell{max-width:1120px;background:var(--paper);}
main{padding:28px 36px 32px;}
.topbar{padding:14px 36px;}
.header-tool,.info-close{width:44px;height:44px;}
.header-tool{border-radius:12px;}
.primary-btn,.secondary-btn,.danger-btn,.mini-btn,.mic-btn,.toggle-setting{min-height:48px;border-radius:10px;font-size:14px;font-weight:650;}
.primary-btn,.setup-start .primary-btn,.ask-btn{background:var(--action);border:1px solid var(--action);color:#fff;}
.primary-btn:hover:not(:disabled),.setup-start .primary-btn:hover{background:#104ca1;border-color:#104ca1;}
.primary-btn:active:not(:disabled){background:#0d3f86;}
.secondary-btn{background:transparent;border:1px solid #8c9da5;color:var(--ink);}
.secondary-btn:hover:not(:disabled){background:#e9eeef;}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--action);outline-offset:3px;}
.text-link,.voice-check-link,.back-btn{min-height:44px;display:inline-flex;align-items:center;font-size:14px;}
.eyebrow,.section-kicker{font-size:11px;letter-spacing:.12em;}
.home-intro{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:22px;}
.home-intro h1{font-size:clamp(28px,4vw,42px);line-height:1.12;letter-spacing:-.045em;margin:6px 0 8px;}
.home-intro h1 span{color:var(--action);}
.home-intro p{font-size:15px;color:var(--muted);margin:0;line-height:1.5;}
.home-intro .text-link{flex-shrink:0;}
.daily-feature{position:relative;display:grid;grid-template-columns:1fr 190px;gap:28px;padding:30px 34px;border:1px solid #b9c8d0;border-radius:18px;background:#edf2f8;overflow:hidden;}
.daily-topline{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:13px;color:#465e70;}
.daily-topline .section-kicker{color:#234d7a;font-weight:750;}
.daily-feature h2{font-size:clamp(30px,5vw,44px);letter-spacing:-.045em;line-height:1.1;margin:16px 0 12px;}
.daily-description{max-width:440px;line-height:1.6;color:#405a6b;margin:0 0 18px;font-size:15px;}
.daily-status{display:flex;gap:8px;align-items:center;font-size:13px;font-weight:650;margin:0 0 14px;color:#324e61;}
.daily-status::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--action);}
.daily-feature.completed .daily-status::before{background:#176b4c;}
.daily-play{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-height:52px;padding:13px 20px;font-size:16px;box-shadow:0 3px 0 #0c3b7d;}
.daily-play:active:not(:disabled){box-shadow:none;transform:translateY(2px);}
.daily-caption{font-size:12px;color:#52636d;line-height:1.5;margin:15px 0 0;max-width:440px;}
.daily-emblem{align-self:center;justify-self:center;position:relative;display:grid;place-items:center;width:158px;height:185px;border:1px solid #a5b9cc;border-radius:14px;background:#f7f9fc;transform:rotate(5deg);color:#254f7b;box-shadow:7px 7px 0 #d8e3ee;}
.daily-emblem::before{content:'';position:absolute;width:96px;height:96px;border:1px solid #a5b9cc;border-radius:50%;}
.daily-emblem span{font-size:64px;font-weight:750;line-height:1;}
.daily-emblem small{position:absolute;bottom:16px;letter-spacing:.15em;font-size:10px;font-weight:750;}
.more-play{margin-top:22px;display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.more-play .mode-card{display:grid;grid-template-columns:1fr auto;gap:14px;min-height:128px;padding:22px;text-align:left;border:1px solid #bfc9ca;border-radius:14px;background:#fffefa;}
.more-play .mode-card:hover{background:#eef2ef;border-color:#829a9f;}
.more-play .mode-copy strong{font-size:21px;letter-spacing:-.025em;}
.more-play .mode-copy span{font-size:14px;color:var(--muted);line-height:1.5;margin-top:6px;}
.more-play .mode-arrow{margin:0;}
.saved-play{margin:22px 0 0;}
.saved-play .resume-strip{margin-bottom:0;flex-wrap:wrap;padding:16px 0;}
.saved-play .saved-rooms{padding:8px 0;}
.saved-rooms summary{min-height:44px;align-content:center;}
.saved-rooms button{margin:8px 8px 8px 0;}
.home-fact{margin-top:26px;background:#f0f2e9;border:1px solid #c4cdbb;border-radius:14px;padding:24px;}
.home-fact p{font-size:18px;line-height:1.65;}
.home-fact-footer{gap:10px 16px;font-size:13px;}
.home-fact-footer>a{margin-right:auto;}
.home-footer{display:flex;flex-wrap:wrap;gap:8px 22px;align-items:center;border-top:1px solid var(--line);margin-top:24px;padding-top:14px;color:var(--muted);font-size:12px;}
.home-footer .text-link{font-size:13px;text-decoration:none;}
.game-wrap{max-width:880px;}
.game-nav{margin-bottom:12px;}
.game-summary{padding:0 0 18px;}
.game-summary h1{font-size:30px;}
.game-summary p{font-size:14px;max-width:620px;}
.turn-orb{display:none;}
.progress-copy{font-size:12px;letter-spacing:.02em;text-transform:none;margin-bottom:10px;}
.turn-track{height:4px;border-radius:4px;}
.progress-panel{margin-bottom:18px;}
.clue-board{min-height:0;border-radius:12px;background:#fffefa;}
.clue-head{min-height:50px;padding:12px 16px;}
.clue-head strong{font-size:12px;}
.clue-head small{font-size:11px;}
.no-bucket .clue-head{background:#eef1f3;border-top-color:#788a97;color:#40586b;}
.no-bucket .clue-head-icon,.no-bucket .clue-head strong,.no-bucket .clue-head b{color:#40586b;}
.clue-board .bucket-list{height:auto;min-height:104px;max-height:300px;padding:0 14px;overflow:auto;}
.bucket-empty{font-size:13px;padding:24px 8px;color:#52636d;}
.clue-row .clue-detail summary{font-size:15px;line-height:1.55;}
.clue-detail p{font-size:13px;}
.clue-turn{font-size:11px;color:#52636d;}
.clue-row{padding:13px 0;}
.composer{padding-top:18px;}
.question-input{min-height:52px;border-radius:10px;background:#fff;border-color:#8d9ea7;}
.ask-btn{min-width:80px;}
.composer-actions{grid-template-columns:minmax(0,1fr) auto;gap:20px;margin-top:14px;}
.guess-action{min-height:56px;border-radius:10px;background:var(--ink);border-color:var(--ink);padding:12px 16px;}
.guess-action-copy strong{font-size:15px;}
.guess-action-copy small{font-size:12px;}
.guess-action.final-guess-btn{background:var(--action);border-color:var(--action);}
.composer-actions .give-up-btn{background:transparent;color:#b42332;border:1px solid #b42332;min-height:48px;min-width:84px;border-radius:10px;font-size:14px;padding:10px 12px;}
.composer-actions .give-up-btn:hover{background:#fbeaec;color:#8f1c29;border-color:#8f1c29;}
.danger-btn{background:#b42332;color:#fff;border:1px solid #b42332;}
.round-notice{font-size:14px;line-height:1.55;border-radius:10px;background:#eef3f6;}
.helper,.position-rules,.voice-utility>span{font-size:12px;line-height:1.6;}
.question-guide{font-size:14px;}
.voice-utility{margin-top:12px;}
.voice-utility .voice-check-link{font-size:12px;}
.voice-readout span{font-size:14px;}
.result-card{border-radius:16px;border:1px solid #b8c8c9;overflow:hidden;}
.result-card .result-hero,.result-card.won .result-hero{background:#edf3ef;padding:24px 30px;border-bottom:1px solid #c0cfc7;color:var(--ink);}
.result-card.lost .result-hero{background:#edf2f8;}
.result-kicker{font-size:12px;letter-spacing:.12em;}
.result-hero .score{font-size:42px;color:var(--ink);}
.result-sub{font-size:15px;color:#405c65;}
.result-body{padding:28px 30px;background:#fffefa;}
.result-player-line{margin-bottom:24px;}
.result-player{font-size:32px;line-height:1.15;overflow-wrap:anywhere;}
.result-player-meta{font-size:14px;line-height:1.6;}
.result-photo{width:84px;height:88px;border-radius:12px;flex-shrink:0;}
.result-actions{gap:12px;margin:20px 0;display:flex;flex-wrap:wrap;}
.result-actions button{padding:12px 18px;}
.result-actions .replay-btn{width:auto;}
.result-return{background:#edf2f8;padding:14px 18px;border-radius:10px;font-size:14px;line-height:1.6;color:#405a6b;}
.stat-box span{font-size:12px;}.stat-box strong{font-size:16px;}
.reveal-notes{margin-top:24px;}.reveal-notes summary{font-size:14px;min-height:44px;align-content:center;}
.info-panel{border-radius:16px;}.info-panel p{font-size:14px;}.info-footnote{font-size:12px!important;}
.info-head{position:sticky;top:-26px;z-index:2;margin:-26px -26px 0;padding:18px 26px 12px;background:#f8f7ef;border-bottom:1px solid var(--line);}
html[data-theme=dark] .info-head{background:#182936;}
@media(max-width:600px){.info-head{top:-20px;margin:-20px -20px 0;padding:14px 20px 10px;}}
.solve-screen{background:var(--paper);color:var(--ink);}
.solve-ambient,.solve-sparks,.solve-pulse-ring{display:none;}
.solve-stage{animation:case-open .6s cubic-bezier(.2,.8,.2,1);}
.solve-logo,.solve-eyebrow,.solve-player-name,.solve-score-pill,.solve-copy{animation:none;opacity:1;transform:none;}
.solve-logo-ring{background:#e1eee6;border:2px solid #176b4c;box-shadow:none;color:#176b4c;}
.solve-eyebrow{color:#176b4c;letter-spacing:.16em;}.solve-player-name{color:var(--ink);}
.solve-score-pill{background:#e8eee9;border:1px solid #bacdc0;color:var(--ink);}
.solve-copy{color:#405c65;}.solve-skip{color:var(--action);font-size:14px;min-height:48px;border:1px solid #8ba6c4;border-radius:10px;padding:10px 18px;}
@keyframes case-open{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(max-width:600px){
 main{padding:20px 18px 26px;}.topbar{padding:10px 18px;}.wordmark{font-size:22px;}.topbar-meta{gap:8px;}.topbar .build-pill{display:none;}.header-tool{width:44px;height:44px;}
 .home-intro{margin-bottom:18px;gap:8px;align-items:flex-start;}.home-intro h1{font-size:29px;}.home-intro p{font-size:14px;}.home-intro>.text-link{font-size:12px;white-space:nowrap;}
 .daily-feature{grid-template-columns:1fr;padding:24px;gap:0;border-radius:16px;}.daily-emblem{display:none;}.daily-feature h2{font-size:36px;}.daily-description{font-size:15px;margin-bottom:16px;}.daily-play{width:100%;min-height:54px;font-size:16px;}.daily-caption{font-size:12px;}
 .more-play{grid-template-columns:1fr;gap:12px;margin-top:16px;}.more-play .mode-card{min-height:104px;padding:18px 20px;}.more-play .mode-copy strong{font-size:20px;}.more-play .mode-copy span{font-size:14px;}
 .home-fact{padding:20px;}.home-fact p{font-size:17px;}.home-fact-footer>a{flex-basis:100%;}.home-footer{gap:4px 16px;}
 .game-nav{margin-bottom:8px;}.game-summary{padding-bottom:12px;}.game-summary h1{font-size:27px;}.game-summary p{font-size:13px;}.progress-panel{margin-bottom:14px;}.progress-copy{font-size:12px;}
 .clue-head{padding:10px;min-height:48px;}.clue-head small{display:none;}.clue-board .bucket-list{padding:0 10px;min-height:90px;max-height:240px;}.clue-row .clue-detail summary{font-size:14px;}.clue-row{gap:6px;grid-template-columns:18px minmax(0,1fr);}.bucket-empty{font-size:12px;padding:20px 4px;}
 .ask-btn{min-width:62px;padding:10px;}.mic-btn{width:48px;min-width:48px;}.question-input{padding:12px 10px;font-size:16px;}.composer-actions{gap:14px;}.guess-action{padding:12px;}.guess-action-copy small{display:none;}.guess-action-copy strong{font-size:14px;}.guess-action-symbol{width:24px;}.guess-action-arrow{display:none;}.composer-actions .give-up-btn{min-width:76px;font-size:13px;}
 .voice-utility{gap:0;}.position-rules{font-size:12px;}.voice-utility .voice-check-link{font-size:12px;}
 .result-body,.result-card .result-hero,.result-card.won .result-hero{padding:22px 20px;}.result-player{font-size:27px;}.result-photo{width:64px;height:76px;}.result-actions>button{flex:1 1 auto;}.result-actions>.primary-btn{flex-basis:100%;}.result-actions .replay-btn{width:auto;}
}
@media(max-width:350px){main{padding:18px 12px;}.topbar{padding:10px 12px;}.wordmark{font-size:20px;}.home-intro{display:block;}.home-intro>.text-link{margin-top:4px;}.daily-feature{padding:20px;}.daily-play{gap:12px;font-size:15px;}}
.theme-choice{max-width:190px;min-height:48px;padding:10px;border:1px solid #8c9da5;border-radius:10px;background:#fff;color:var(--ink);font-size:16px;}
.theme-choice:focus-visible{outline:3px solid var(--action);outline-offset:3px;}
.empty-board{color:#52636d;}
.result-player-meta,.stat-box span,.rank,.info-footnote{color:var(--muted);}
.more-play .mode-card{border-radius:14px!important;}
.result-photo,.player-option-avatar{border-radius:10px!important;}
html[data-theme=dark] :is(.eyebrow,.section-kicker,.guess-kicker,.topbar-meta,.modal p,.room-sub,.room-meta){color:#b1c1cc;}
/* Dark is a separate ink/surface palette, not an inversion filter. */
html[data-theme=dark]{color-scheme:dark;--paper:#101c28;--paper-2:#172736;--ink:#e8eff5;--muted:#b1c1cc;--line:#415562;--action:#78adff;--yes:#8bd3af;--no:#becbd5;--yes-soft:#19372e;--no-soft:#253440;}
html[data-theme=dark] body,html[data-theme=dark] .shell,html[data-theme=dark] .topbar,html[data-theme=dark] .composer{background:var(--paper);color:var(--ink);border-color:var(--line);}
html[data-theme=dark] :is(h1,h2,h3,.wordmark .fan,.game-summary h1,.setup-heading h1,.difficulty-choice strong,.pool-match-status strong,.result-player,.player-name strong,.clue-row .clue-detail summary,.hint-editor-title h2,.board-head h2){color:var(--ink);}
html[data-theme=dark] :is(.wordmark .sleuth,.home-intro h1 span,.text-link,.voice-check-link,.back-btn,.clear-filters,.filter-problem button,.bio-row a,.profile-source a){color:var(--action);}
html[data-theme=dark] :is(.home-intro p,.daily-description,.daily-caption,.daily-status,.daily-topline,.mode-copy span,.game-summary p,.progress-copy,.progress-copy strong,.clue-turn,.bucket-empty,.clue-detail p,.helper,.position-rules,.voice-utility>span,.setup-heading p,.setup-note,.pool-match-status>span,.all-pool-note,.difficulty-count,.difficulty-option>span:nth-child(2),.extra-pool-filters summary>span,.filter-results-note,.saved-rooms a span,.resume-strip span,.result-player-meta,.result-sub,.stat-box span,.bio-row>span,.info-panel p,.info-footnote,.guess-modal-head p,.guess-result-count,.guess-search-label,.empty-search,.result-share-text+div,.role-details,.role-details span){color:var(--muted);}
html[data-theme=dark] :is(.daily-feature,.result-return){background:#1b3046;border-color:#405f7b;color:var(--ink);}
html[data-theme=dark] .daily-topline .section-kicker{color:#a2c8ff;}
html[data-theme=dark] .daily-emblem{background:#203c55;border-color:#67839d;color:#a2c8ff;box-shadow:7px 7px 0 #142637;}
html[data-theme=dark] .daily-emblem::before{border-color:#67839d;}
html[data-theme=dark] :is(.primary-btn,.setup-start .primary-btn,.ask-btn,.guess-action.final-guess-btn){background:#78adff;border-color:#78adff;color:#10263b;}
html[data-theme=dark] :is(.primary-btn,.setup-start .primary-btn,.ask-btn):hover:not(:disabled){background:#a1c5ff;border-color:#a1c5ff;color:#10263b;}
html[data-theme=dark] .daily-play{box-shadow:0 3px 0 #456b9a;}
html[data-theme=dark] :is(.secondary-btn,.mic-btn,.header-tool,.info-close,.mini-btn,.toggle-setting,.theme-choice){background:#1a2b3b;border-color:#738c9d;color:var(--ink);}
html[data-theme=dark] :is(.secondary-btn,.header-tool,.info-close):hover:not(:disabled){background:#294359;}
html[data-theme=dark] .header-tool svg{fill:#1a2b3b;}
html[data-theme=dark] :is(.more-play .mode-card,.clue-board,.result-body,.modal,.info-panel){background:#182936;color:var(--ink);border-color:var(--line);}
html[data-theme=dark] .more-play .mode-card:hover{background:#22394b;border-color:#738c9d;}
html[data-theme=dark] .more-play .mode-copy strong{color:var(--ink)!important;}
html[data-theme=dark] :is(.home-fact,.reveal-notes,.selected-athlete){background:#20372f;border-color:#4d7162;color:#dcefe4;}
html[data-theme=dark] .home-fact p{color:#dcefe4;}
html[data-theme=dark] :is(.home-fact a,.home-fact .section-kicker){color:#a4dcc0;}
html[data-theme=dark] .home-fact-footer{color:#bfd5c9;}
html[data-theme=dark] :is(.yes-bucket .clue-head,.result-card.won .result-hero,.topic-strip){background:#20372f;border-color:#4d7162;color:#dcefe4;}
html[data-theme=dark] :is(.yes-bucket .clue-head strong,.yes-bucket .clue-head-icon,.yes-bucket .clue-head b,.result-kicker){color:#8bd3af;}
html[data-theme=dark] :is(.no-bucket .clue-head,.result-card.lost .result-hero){background:#253440;border-color:#6d8595;color:#d9e4ec;}
html[data-theme=dark] :is(.no-bucket .clue-head strong,.no-bucket .clue-head-icon,.no-bucket .clue-head b,.clue-head small){color:#becbd5;}
html[data-theme=dark] :is(.clue-column+.clue-column,.clue-head,.clue-row,.clue-detail p,.game-summary,.saved-rooms,.saved-rooms a,.resume-strip,.result-actions,.stat-grid,.stat-box,.bio-row,.preference-row,.howto-step,.extra-pool-filters,.setup-start,.setup-heading,.difficulty-option,.compact-difficulty,.hint-editor){border-color:var(--line);}
html[data-theme=dark] :is(.question-input,.guess-search,.pool-filter-field select,.hint-field textarea,.hint-turn-label select,.result-share-text){background:#10202e;color:var(--ink);border-color:#78909f;}
html[data-theme=dark] input::placeholder,html[data-theme=dark] textarea::placeholder{color:#a7bac8;}
html[data-theme=dark] .guess-action{background:#29465c;border-color:#78909f;color:#edf4fa;}
html[data-theme=dark] .guess-action:hover{background:#365870;}
html[data-theme=dark] .guess-action-copy small{color:#c2d4e0;}
html[data-theme=dark] .composer-actions .give-up-btn{background:transparent;color:#ffa2ad;border-color:#e87786;}
html[data-theme=dark] .composer-actions .give-up-btn:hover{background:#422935;color:#ffd1d7;}
html[data-theme=dark] .danger-btn{background:#ef8794;border-color:#ef8794;color:#38121b;}
html[data-theme=dark] :is(.round-notice,.round-filter-strip,.filter-chip,.difficulty-option.selected,.compact-difficulty .difficulty-option.selected,.difficulty-option:hover:not(:disabled),.mic-btn.active,.toggle-setting[aria-pressed=true]){background:#233f49;border-color:#5c8692;color:#ddf0f2;}
html[data-theme=dark] :is(.round-filter-strip strong,.filter-chip span,.difficulty-option,.extra-pool-filters summary,.pool-filter-field>label,.hint-field,.hint-turn-label,.hint-editor>p){color:var(--ink);}
html[data-theme=dark] .difficulty-option .selection-dot{border-color:#9bbacb;}
html[data-theme=dark] .difficulty-option.selected .selection-dot{background:#8bd3af;border-color:#233f49;outline-color:#8bd3af;}
html[data-theme=dark] :is(.host-hints,.assisted-label,.filter-empty,.filter-problem,.data-notice,.pool-data-note,.final-guess-callout,.final-modal-note){background:#3a3425;border-color:#a39465;color:#f0dfb8;}
html[data-theme=dark] :is(.host-hints p,.host-hints small,.host-hints span,.host-hints .section-kicker,.unlocked-hint p,.unlocked-hint>span,.hint-waiting,.assisted-label){color:#f0dfb8;}
html[data-theme=dark] :is(.voice-readout,.voice-readout strong){color:#bed3e2;border-color:var(--line);}
html[data-theme=dark] .voice-error{color:#ffa2ad;}
html[data-theme=dark] .player-option{background:transparent;border-color:var(--line);color:var(--ink);}
html[data-theme=dark] .player-option:hover{background:#294359;}
html[data-theme=dark] :is(.player-option-avatar,.result-photo){background:#29465c;color:#d4e7f5;}
html[data-theme=dark] :is(.game-mode-pill,.build-pill,.board-row,.room-link-box,.room-link,.room-card,.leaderboard,.room-rules,.challenge-room){background:transparent;color:var(--ink);border-color:var(--line);}
html[data-theme=dark] .result-hero .score{color:var(--ink);}
html[data-theme=dark] .result-card .result-lockup .solve-check{background:#234434;color:#9de0bc;border-color:#5d9676;}
html[data-theme=dark] .solve-screen{background:var(--paper);color:var(--ink);}
html[data-theme=dark] :is(.solve-logo-ring,.solve-score-pill){background:#234434;border-color:#5d9676;color:#dcefe4;}
html[data-theme=dark] .solve-eyebrow{color:#9de0bc;}html[data-theme=dark] .solve-copy{color:var(--muted);}
html[data-theme=dark] .solve-skip{color:var(--action);border-color:#78909f;}
html[data-theme=dark] .replay-btn:hover{background:#294359!important;}
html[data-theme=dark] .info-panel .data-details dt{color:var(--muted);}
html[data-theme=dark] .coverage-grid{border-color:var(--line);}
html[data-theme=dark] .coverage-grid span{color:var(--muted);}
html[data-theme=dark] :is(.join-card,.room-card,.leader-row,.leader-row.top-1){background:#182936;color:var(--ink);border-color:var(--line);}
html[data-theme=dark] :is(.join-card h1,.room-card h1,.leader-row strong,.room-meta strong){color:var(--ink);}
html[data-theme=dark] :is(.join-card>p,.room-lede,.challenge-hero p,.challenge-search-meta,.challenge-result p,.challenge-empty,.board-head>span){color:var(--muted);}
html[data-theme=dark] .room-meta span{background:#253e50;color:var(--muted);}
html[data-theme=dark] .join-name{background:#10202e;color:var(--ink);border-color:#78909f;}
html[data-theme=dark] .leader-score{color:#9de0bc;}
html[data-theme=dark] .challenge-result{border-color:var(--line);}
html[data-theme=dark] :is(.stat-box strong,.coverage-grid strong){color:var(--ink);}
html[data-theme=dark] :is(.compact-difficulty legend>span,.hint-editor-title>span,.setup-start>span,.selected-athlete small){color:var(--muted);}
html[data-theme=dark] .hint-add{color:var(--action);border-color:#78909f;}
html[data-theme=dark] .host-secret{background:#203c55;color:var(--ink);border:1px solid #52728b;}
html[data-theme=dark] .host-secret span{color:#a2c8ff;}
html[data-theme=dark] .host-secret small{color:#c3d4e1;}
html[data-theme=dark] .empty-board{background:#203440;color:#b1c1cc;border-color:var(--line);}
html[data-theme=dark] :is(.modal-backdrop,.info-backdrop){background:#050c16bb;}
html[data-theme=dark] button:focus-visible,html[data-theme=dark] a:focus-visible,html[data-theme=dark] summary:focus-visible,html[data-theme=dark] select:focus-visible{outline-color:#a1c5ff;}
@media(max-width:480px){.preference-row:has(.theme-choice){flex-wrap:wrap;gap:12px;}.theme-choice{width:100%;max-width:none;}}

/* Celebrate inside the usable result, without an intermediate screen or delay. */
.result-arrival .solve-check{animation:solved-stamp .56s cubic-bezier(.16,.8,.28,1);}
.result-arrival .score{animation:solved-score .42s ease-out;}
.result-kicker:focus{outline:none;}
@keyframes solved-stamp{0%{transform:scale(.72) rotate(-10deg);opacity:.5;}65%{transform:scale(1.12) rotate(3deg);}100%{transform:scale(1) rotate(0);opacity:1;}}
@keyframes solved-score{from{transform:translateY(6px);opacity:.55;}to{transform:translateY(0);opacity:1;}}
html[data-motion=reduced] .result-arrival :is(.solve-check,.score){animation:none!important;}
@media(prefers-reduced-motion:reduce){.result-arrival :is(.solve-check,.score){animation:none!important;}}

/* Short setup steps keep the next action visible without removing advanced choices. */
.challenge-steps{display:flex;list-style:none;padding:0;margin:20px 0 28px;gap:24px;color:var(--muted);font-size:14px;}
.challenge-steps li{display:flex;align-items:center;gap:8px;}
.challenge-steps li>span{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--line);border-radius:50%;}
.challenge-steps [aria-current=step]{font-weight:750;color:var(--action);}
.challenge-steps [aria-current=step]>span{border-color:var(--action);}
.challenge-review{padding:18px 0;}.challenge-review h2{font-size:20px;}.challenge-review p{color:var(--muted);}
.challenge-delivery{border:0;padding:0;margin:26px 0 0;display:grid;gap:12px;}
.challenge-delivery legend{font-weight:700;margin-bottom:12px;}.challenge-delivery label{display:flex;gap:14px;align-items:center;padding:16px;border:1px solid var(--line);border-radius:12px;cursor:pointer;}
.challenge-delivery label:has(input:checked){border-color:var(--action);box-shadow:inset 0 0 0 1px var(--action);}
.challenge-delivery input{width:20px;height:20px;accent-color:var(--action);}.challenge-delivery strong,.challenge-delivery small{display:block;}.challenge-delivery small{margin-top:5px;color:var(--muted);}
.setup-error{border-left:3px solid #b43131;padding:12px 16px;color:var(--ink);background:var(--paper-2);}
.unlimited-customize{border:1px solid var(--line);border-radius:12px;margin:24px 0 16px;padding:0 18px;}
.unlimited-customize>summary{padding:18px 0;cursor:pointer;font-weight:700;}.unlimited-customize>summary>span{display:block;font-size:13px;font-weight:400;color:var(--muted);margin:5px 0 0 18px;}
.pool-presets{border:0;padding:0;margin:24px 0 0;min-width:0;}
.pool-presets legend{font-size:14px;font-weight:650;margin-bottom:12px;}
.pool-presets>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.pool-presets .secondary-btn{display:block;text-align:left;padding:14px;white-space:normal;}
.pool-presets .secondary-btn small{display:block;margin-top:5px;font-size:12px;font-weight:400;color:var(--muted);}
.pool-presets [aria-pressed=true]{border-color:var(--action);box-shadow:inset 0 0 0 1px var(--action);}
.setup-start .primary-btn{border-radius:10px;}
.game-summary .round-counter{display:flex;align-items:baseline;gap:5px;flex:none;font-variant-numeric:tabular-nums;color:var(--muted);}
.round-counter strong{font-size:28px;font-weight:700;line-height:1.2;color:var(--ink);}
.round-counter span{font-size:14px;}
.round-context{margin:0 0 16px;color:var(--muted);font-size:13px;}
.round-context>summary{min-height:44px;align-content:center;cursor:pointer;}
.round-context p{line-height:1.6;margin:8px 0 12px;}
.final-turn-label{font-size:13px;font-weight:650;color:var(--ink);margin:0 0 8px;}
.clue-detail .clue-explanation{color:var(--muted);line-height:1.6;}
.clue-detail>.text-link{display:inline-flex;align-items:center;min-height:44px;font-size:12px;}
/* Match the existing player-notes and record disclosures in both themes. */
:is(.round-recap,.round-details,.round-context,.unlimited-customize)>summary{position:relative;list-style:none;min-height:44px;align-content:center;padding-right:30px;}
:is(.round-recap,.round-details,.round-context,.unlimited-customize)>summary::-webkit-details-marker{display:none;}
:is(.round-recap,.round-details,.round-context,.unlimited-customize)>summary::after{content:'+';position:absolute;right:0;top:50%;transform:translateY(-50%);font-size:20px;font-weight:400;color:var(--muted);}
:is(.round-recap,.round-details,.round-context,.unlimited-customize)[open]>summary::after{content:'−';}
.unlimited-customize>summary>span{margin-left:0;}
.filter-explanation{font-size:13px;color:var(--muted);margin:14px 0;}.filter-explanation summary{cursor:pointer;min-height:36px;display:flex;align-items:center;}
.question-starters{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:12px 0;}.question-starters>span{font-size:12px;color:var(--muted);margin-right:4px;}
.question-starters button{min-height:40px;padding:8px 12px;border:1px solid var(--line);border-radius:20px;background:transparent;color:var(--ink);font-size:13px;}
@media(max-width:480px){.challenge-steps{justify-content:space-between;gap:8px;font-size:13px;}.challenge-steps li{gap:6px;}.challenge-delivery label{padding:14px;}.question-starters>span{flex-basis:100%;}.unlimited-customize{padding:0 14px;}}

.voice-help{margin-top:14px;color:var(--muted);font-size:12px;}.voice-help summary{cursor:pointer;min-height:32px;display:list-item;align-content:center;}

.join-card>.join-btn+.secondary-btn{margin-top:12px;}

/* Each challenge step is a compact page; earlier forms are not carried below it. */
.challenge-wizard{max-width:680px;}
.challenge-wizard .challenge-steps{margin:12px 0 24px;}
.challenge-wizard .challenge-hero{padding-bottom:12px;margin-bottom:16px;}
.challenge-wizard .challenge-hero h1{font-size:clamp(28px,4vw,36px);line-height:1.15;}
.challenge-wizard .challenge-hero p{margin:10px 0 0;}
.challenge-wizard .selected-athlete{margin:16px 0;padding:10px 14px;gap:12px;}
.challenge-wizard .selected-athlete strong{font-size:18px;}
.challenge-wizard .hint-editor{margin:16px 0 0;padding-top:0;border-top:0;}
.challenge-wizard .challenge-review{padding:0;}
.challenge-wizard .challenge-delivery{margin:16px 0 0;}
.challenge-hint-summary{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:16px;font-size:14px;color:var(--muted);}
.challenge-hint-summary button{min-height:44px;}
.challenge-hint-preview summary{cursor:pointer;min-height:44px;align-content:center;}
.challenge-wizard .setup-start{position:sticky;bottom:0;background:var(--paper);margin-top:20px;padding:16px 0;z-index:4;}
.challenge-wizard .setup-start>span{max-width:220px;}
@media(max-width:480px){.challenge-wizard .challenge-steps{margin-bottom:18px;}.challenge-wizard .setup-start{gap:10px;}.challenge-wizard .setup-start>span{display:none;}.challenge-wizard .challenge-delivery label{padding:12px;}}

.guess-confirm h2{overflow-wrap:anywhere;color:var(--ink);}.guess-confirm .modal-actions{display:flex;flex-wrap:wrap;gap:12px;}.guess-confirm .modal-actions button{flex:1 1 180px;white-space:normal;}.guess-confirm .text-link{margin-top:12px;}.toast{font-size:14px;font-weight:550;text-align:left;line-height:1.6;}

/* A quiet, post-game comparison; no player names or spoilers. */
.daily-community{margin:24px 0;padding:20px;border:1px solid var(--line);border-radius:12px;background:var(--paper);}
.daily-community-head{display:flex;justify-content:space-between;align-items:center;gap:12px;}
.daily-community-head h2{margin:0;font-size:17px;letter-spacing:-.02em;}
.daily-community-head p{margin:6px 0 0;font-size:12px;color:var(--muted);}
.daily-community-head p span{font-weight:700;}
.daily-community-score{font-size:clamp(22px,4vw,28px);font-weight:750;letter-spacing:-.035em;line-height:1.2;margin:20px 0 10px;color:var(--ink);}
.daily-community-note{font-size:13px;line-height:1.6;color:var(--muted);margin:10px 0;}
.daily-community-stats{display:flex;flex-wrap:wrap;gap:20px 32px;margin:20px 0 12px;}
.daily-community-stats dt{font-size:12px;color:var(--muted);margin-bottom:5px;}
.daily-community-stats dd{font-size:23px;font-weight:700;margin:0;}
.daily-community-rules{margin-top:12px;border-top:1px solid var(--line);font-size:12px;color:var(--muted);line-height:1.6;}
.daily-community-rules summary{cursor:pointer;min-height:44px;align-content:center;}
.daily-community-rules p{margin:8px 0;}
.share-dialog{width:min(480px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:24px;}
.share-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;}.share-heading h2{margin:0;font-size:24px;letter-spacing:-.035em;outline:none;}
.share-dialog>p{font-size:14px;line-height:1.6;color:var(--muted);}.share-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0;}
.share-options>*{display:flex;align-items:center;justify-content:center;text-align:center;text-decoration:none;padding:12px;font-size:14px;min-width:0;}
.share-options>.primary-btn{grid-column:1/-1;}.share-dialog summary{cursor:pointer;font-size:13px;min-height:44px;align-content:center;}.share-dialog .share-beta-note{font-size:12px;margin:16px 0 0;}
@media(max-width:480px){.daily-community{padding:16px;}.daily-community-head h2{font-size:16px;}.daily-community-head .mini-btn{padding:8px 10px;}.daily-community-stats{gap:16px;}}

.share-primary-actions{display:flex;gap:12px;margin:12px 0;}
.share-primary-actions>button{flex:1;min-height:44px;}
.share-link-choice{display:flex;align-items:center;gap:10px;min-height:44px;font-size:14px;cursor:pointer;}
.share-link-choice input{width:20px;height:20px;accent-color:var(--action);}
.share-dialog .share-link-note{font-size:12px;margin:0 0 12px;}
.share-dialog .result-share-text{margin:0;min-height:110px;}
.result-card.lost .solve-check{background:var(--paper);color:var(--muted);border:1px solid var(--line);}

/* One navigation landmark: header on desktop, thumb reach on mobile. */
.primary-nav{display:flex;align-items:center;gap:4px;}
.primary-nav a{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:10px 12px;border-radius:12px;text-decoration:none;color:var(--ink);font-size:13px;font-weight:700;}
.primary-nav svg{width:20px;height:20px;flex:none;}
.primary-nav a:hover{background:var(--paper-2);}
.primary-nav a[aria-current=page]{background:var(--paper-2);color:#12605e;box-shadow:inset 0 -3px #16817c;}
.primary-nav a:focus-visible{outline:3px solid #16817c;outline-offset:2px;}
html[data-theme=dark] .primary-nav a[aria-current=page]{color:#72e4da;box-shadow:inset 0 -3px #72e4da;}
@media(min-width:801px){.topbar-meta>.sport-dot,.topbar-meta>.sport-dot+span,.topbar-meta>.build-pill{display:none;}.topbar{padding-inline:24px;gap:12px;}}
@media(max-width:800px){
 html:has(#app-viewport),body:has(#app-viewport){height:100%;min-height:0;overflow:hidden;}
 #app-viewport{position:fixed;inset:0;top:var(--app-visible-top,0px);height:100vh;height:var(--app-visible-height,100dvh);display:flex;flex-direction:column;}
 #app-viewport>#app{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;scroll-padding-block:76px 24px;}
 #app-viewport .shell{min-height:100%;}
 .primary-nav{position:relative;flex:none;z-index:40;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:6px max(10px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));background:var(--paper);border-top:1px solid var(--line);box-shadow:0 -4px 20px rgba(0,0,0,.05);}
 .primary-nav a{flex-direction:column;gap:4px;min-height:54px;padding:6px 2px;font-size:11px;border-radius:10px;touch-action:manipulation;-webkit-user-select:none;user-select:none;}
 .primary-nav a.is-touching{background:var(--paper-2);box-shadow:inset 0 0 0 1px var(--line);}
 .primary-nav svg{width:22px;height:22px;}
 .shell main{padding-bottom:26px;}
 /* Focus is intentional: hide immediately without resizing/detaching the composer. */
 body:has(input:not([readonly]):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=button]):not([type=submit]):focus,textarea:not([readonly]):focus,[contenteditable=true]:focus) .primary-nav{display:none;}
 .toast{bottom:calc(86px + env(safe-area-inset-bottom));}
}

@media(max-width:800px){.topbar{backdrop-filter:none;-webkit-backdrop-filter:none;}}

.round-style-choice {margin:16px 0 24px;}

.policy-footer{display:flex;justify-content:center;flex-wrap:wrap;gap:12px 22px;padding:24px 20px 36px;font-size:13px}.policy-footer a{color:inherit;text-underline-offset:3px}.policy-footer a:focus-visible{outline:2px solid currentColor;outline-offset:4px}

/* The homepage and navigation share the same quiet, theme-aware mode symbols. */
.daily-feature .home-mode-title,.more-play .mode-copy .home-mode-title{display:flex;align-items:center;gap:10px;}
.home-mode-title>svg{width:24px;height:24px;flex:0 0 24px;color:currentColor;}
.daily-feature .home-mode-title>svg{width:30px;height:30px;flex-basis:30px;}

/* Returning-player cleanup */
html[data-theme=dark] .round-notice strong{color:#f5d88b;}
.round-notice .text-link{display:inline-block;margin:8px 12px 0 0;}
.saved-game-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);}
.saved-game-row span{display:block;font-size:13px;margin-top:6px;}
.saved-game-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.saved-play>h2{font-size:20px;margin-top:28px;}
.room-management{margin:24px 0;padding:16px;border:1px solid var(--line);border-radius:12px;}
.room-management summary{cursor:pointer;font-weight:700;}
.room-management button{margin:8px 12px 0 0;}
.daily-feature.completed{min-height:0;padding-top:24px;padding-bottom:24px;}
.daily-feature.completed .daily-emblem{display:none;}
.daily-feature.completed .daily-status{margin-top:8px;}
@media(max-width:600px){.saved-game-row{align-items:flex-start;flex-direction:column;}.saved-game-actions{width:100%;justify-content:space-between;}}

@media(max-width:800px){.policy-footer{padding-bottom:28px;}}

/* Small controls remain comfortable to use without adding visual weight. */
.skip-link{position:fixed;top:8px;left:12px;z-index:500;padding:12px 18px;border-radius:8px;background:var(--ink);color:var(--paper);transform:translateY(-180%);}
.skip-link:focus{transform:none;outline:3px solid #16817c;}
.saved-game-actions .text-link,.round-notice .text-link,.home-footer button{min-height:44px;padding:10px 6px;}
.home-footer details[open]{width:100%;}
.home-footer details[open] button{margin-right:14px;}
.room-management .danger-btn,.room-management .secondary-btn{min-height:44px;}

/* Personal progress stays quiet until it has something useful to show. */
.play-record{margin:24px 0;border:1px solid var(--line);border-radius:16px;padding:24px;background:var(--paper);}
.record-top{display:flex;justify-content:space-between;align-items:center;gap:16px;}
.record-top>div{flex:1;min-width:0;}
.record-top h2{margin:7px 0 0;font-size:23px;line-height:1.25;letter-spacing:-.03em;color:var(--ink);}
.record-seal{display:grid;place-items:center;width:44px;height:44px;flex:none;border:1px solid var(--line);border-radius:50%;font-size:23px;color:var(--action);}
.record-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0;}
.record-stats dt{font-size:12px;line-height:1.5;color:var(--muted);}
.record-stats dd{font-size:clamp(19px,4vw,27px);font-weight:750;letter-spacing:-.03em;margin:6px 0 0;color:var(--ink);}
.record-goal>div{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted);line-height:1.5;}
.record-goal strong{color:var(--ink);white-space:nowrap;}
.record-goal progress{display:block;width:100%;height:6px;border:0;border-radius:6px;margin-top:9px;background:var(--line);color:var(--action);overflow:hidden;}
.record-goal progress::-webkit-progress-bar{background:var(--line);border-radius:6px;}
.record-goal progress::-webkit-progress-value{background:var(--action);border-radius:6px;}
.record-goal progress::-moz-progress-bar{background:var(--action);border-radius:6px;}
.record-note,.record-about p{font-size:12px;line-height:1.65;color:var(--muted);margin:12px 0 0;}
.record-highlight{font-size:14px;font-weight:650;color:var(--action);line-height:1.5;}
.record-about{margin-top:8px;}.record-about summary,.record-details summary,.round-details>summary{min-height:44px;align-content:center;cursor:pointer;font-size:13px;color:var(--muted);}
.home-record{padding:0;margin-bottom:0;}
.home-record>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;cursor:pointer;list-style:none;}
.home-record>summary::-webkit-details-marker{display:none;}
.home-record>summary strong{font-size:16px;color:var(--ink);}
.home-record>summary small{display:block;margin-top:5px;color:var(--muted);font-size:12px;line-height:1.5;}
.home-record>summary>span:last-child{font-size:24px;color:var(--action);}
.record-toggle::before{content:"+";}
.home-record[open]>summary .record-toggle::before{content:"−";}
.record-content{padding:0 22px 22px;border-top:1px solid var(--line);}
.record-content .record-top{margin-top:20px;}
.daily-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));list-style:none;gap:8px;padding:0;margin:22px 0 8px;}
.daily-week li{text-align:center;font-size:11px;color:var(--muted);}
.daily-week b{display:grid;place-items:center;aspect-ratio:1;max-width:46px;margin:8px auto 0;border:1px solid var(--line);border-radius:50%;font-size:20px;font-weight:600;width:100%;}
.daily-week .solved b{background:var(--action);border-color:var(--action);color:var(--paper);}
html[data-theme=light] .daily-week .solved b{color:#fff;}
.daily-week .today b{border:2px solid var(--action);color:var(--action);}
.daily-week .before-launch b{border-style:dashed;opacity:.5;}
.daily-return-card{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:24px 0;padding:22px;border-left:3px solid var(--action);border-radius:0 12px 12px 0;background:var(--paper-2);}
.daily-return-card h2{font-size:22px;font-variant-numeric:tabular-nums;letter-spacing:-.025em;margin:8px 0;color:var(--ink);}
.daily-return-card p{font-size:13px;line-height:1.6;color:var(--muted);margin:0;max-width:430px;}
.daily-return-card .secondary-btn{flex:none;}
.round-details{border-top:1px solid var(--line);margin-top:16px;}
.round-details>summary{font-weight:650;font-size:14px;}
.daily-feature.completed{grid-template-columns:1fr;}
.boot-screen{max-width:440px;min-height:70vh;margin:0 auto;padding:64px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:20px;color:var(--ink);}
.boot-screen h1{font-size:26px;letter-spacing:-.035em;line-height:1.25;}
.boot-screen p{font-size:14px;line-height:1.7;color:var(--muted);}
.boot-symbol{display:grid;place-items:center;width:56px;height:56px;border:1px solid var(--line);border-radius:50%;font-size:30px;color:var(--action);margin:20px auto;}
.result-card.lost .result-hero .solve-check,html[data-theme=dark] .result-card.lost .result-lockup .solve-check{background:var(--paper);color:var(--muted);border:1px solid var(--line);}
.result-card.lost .result-kicker{color:var(--muted);}
@media(max-width:600px){.play-record{padding:18px;}.home-record{padding:0;}.record-content{padding:0 18px 18px;}.home-record>summary{padding:18px;}.record-top{align-items:flex-start;flex-wrap:wrap;}.record-top h2{font-size:21px;}.record-top .text-link{font-size:12px;}.record-stats{gap:10px;}.record-stats dd{font-size:20px;}.daily-week{gap:6px;}.daily-return-card{flex-direction:column;align-items:flex-start;padding:18px;}.daily-return-card h2{font-size:21px;}.boot-screen{padding-top:32px;}}

/* Distinct public identities for players who share a name. */
.player-name .player-identity{display:block;margin-top:4px;font-size:12px;line-height:1.45;font-weight:400;color:var(--muted);white-space:normal;overflow-wrap:anywhere;}
.player-option .player-name{min-width:0;text-align:left;}
.name-choices .secondary-btn{text-align:left;white-space:normal;}
.guess-confirm .guess-identity{color:var(--ink);font-weight:650;font-size:15px;line-height:1.5;margin:8px 0 18px;}

/* One badge family: permanent solve milestones and distinct round achievements. */
.badge-art{width:66px;height:73px;flex:none;overflow:visible;color:#815322;--badge-fill:#efe4d2;filter:drop-shadow(0 2px 1px #102f4012)}
.badge-art.silver{color:#42647a;--badge-fill:#e0e9ef}
.badge-art.gold,.badge-art.clutch{color:#856014;--badge-fill:#f1e7c8}
.badge-art.legend,.badge-art.first{color:#155fc6;--badge-fill:#dfeafa}
.badge-art.perfect{color:#176b4c;--badge-fill:#dcefe4}
.badge-shell{fill:var(--badge-fill);stroke:currentColor;stroke-width:1.5;stroke-linejoin:round}
.badge-rim{fill:var(--paper);stroke:currentColor;stroke-width:.75}
.badge-star{fill:currentColor}
.badge-number{fill:currentColor;font-family:inherit;font-size:26px;font-weight:800;letter-spacing:-.04em}
.badge-number.small{font-size:18px}
.badge-mark,.badge-detail,.badge-orbit{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}
.badge-mark{stroke-width:3}.badge-check{stroke-width:2}
.badge-orbit{stroke-width:1.5}.badge-detail{stroke-width:1.5;opacity:.65}
html[data-theme=dark] .badge-art{color:#e5bb86;--badge-fill:#3e3328}
html[data-theme=dark] .badge-art.silver{color:#bed4e6;--badge-fill:#2b4050}
html[data-theme=dark] .badge-art.gold,html[data-theme=dark] .badge-art.clutch{color:#efd084;--badge-fill:#3b3525}
html[data-theme=dark] .badge-art.legend,html[data-theme=dark] .badge-art.first{color:#99c2ff;--badge-fill:#243a59}
html[data-theme=dark] .badge-art.perfect{color:#92d9b7;--badge-fill:#223c32}
.milestone-award{display:flex;align-items:center;gap:16px;padding:18px;margin:20px 0;border:1px solid var(--line);border-radius:14px;background:var(--paper-2)}
.milestone-award>div{min-width:0}.milestone-award .section-kicker{color:var(--muted);font-size:9px;letter-spacing:.1em}
.milestone-award h2{font-size:19px;line-height:1.2;letter-spacing:-.025em;margin:5px 0;color:var(--ink)}
.milestone-award p{font-size:12px;line-height:1.5;margin:0;color:var(--muted)}
.milestone-award small{font-size:11px;line-height:1.5;color:var(--muted)}
.result-awards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:10px}
.result-awards:empty{display:none}.result-awards .milestone-award{margin:0;padding:14px;gap:12px}
.result-awards .badge-art{width:56px;height:62px}
.result-awards:has(.milestone-award ~ .milestone-award){grid-template-columns:1fr;gap:0;border:1px solid var(--line);border-radius:14px;background:var(--paper-2);overflow:hidden}
.result-awards:has(.milestone-award ~ .milestone-award) .milestone-award{border:0;border-radius:0;background:transparent;padding:12px 14px}
.result-awards:has(.milestone-award ~ .milestone-award) .milestone-award+.milestone-award{border-top:1px solid var(--line)}
.result-awards:has(.milestone-award ~ .milestone-award) .badge-art{width:44px;height:49px}
.result-awards:has(.milestone-award ~ .milestone-award) h2{font-size:17px;margin:3px 0}

.milestone-collection{border-top:1px solid var(--line);margin-top:18px;padding-top:4px}
.milestone-collection>summary{cursor:pointer;min-height:44px;align-content:center;font-size:13px;font-weight:650;color:var(--ink)}
.milestone-collection>summary>span{font-size:12px;color:var(--muted);font-weight:400;margin-left:8px}
.milestone-collection .record-note{margin-top:4px}
.milestone-grid{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(116px,1fr));gap:10px;padding:0;margin:16px 0 4px}
.milestone-grid li{display:flex;flex-direction:column;align-items:center;text-align:center;padding:16px 10px 12px;border:1px solid var(--line);border-radius:12px;gap:7px;background:var(--paper-2)}
.milestone-grid .badge-art{width:72px;height:79px;margin-bottom:3px}
.milestone-grid strong{font-size:12px;line-height:1.4;color:var(--ink)}.milestone-grid span{font-size:11px;line-height:1.5;color:var(--muted)}
.badge-guide{border-top:1px solid var(--line);margin-top:16px;padding-top:4px}
.badge-guide>summary{min-height:44px;align-content:center;font-weight:650;cursor:pointer}
.badge-guide h3{font-size:15px;color:var(--ink);margin:20px 0 12px}
.badge-guide-list{list-style:none;padding:0;margin:0;display:grid;gap:16px}
.badge-guide-list li{display:flex;align-items:center;gap:14px}.badge-guide-list li>div{min-width:0}
.badge-guide-list .badge-art{width:48px;height:53px}.badge-guide-list strong{font-size:14px;color:var(--ink)}
.badge-guide-list p{margin:4px 0 0;font-size:12px;line-height:1.5}
.badge-milestone-guide{list-style:none;padding:0;margin:14px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
.badge-milestone-guide li{border-bottom:1px solid var(--line);padding:10px 0}
.badge-milestone-guide strong,.badge-milestone-guide span{display:block;font-size:12px;line-height:1.5}
.badge-milestone-guide span{color:var(--muted)}
.play-help{border-top:1px solid var(--line);margin-top:12px;color:var(--muted)}
.play-help>summary{min-height:44px;align-content:center;cursor:pointer;font-size:13px;font-weight:650}
.play-help-content{padding-bottom:4px}.play-help .voice-help{margin-top:0}
.play-help :is(.voice-help>summary,.position-rules>summary){min-height:44px}
.result-record{margin:18px 0}.result-record>summary{padding:16px 18px}
.result-actions .result-customize{padding:10px 4px;font-size:13px;min-height:44px}
.result-record .record-stats{margin-top:18px}
.result-card .daily-record.compact{margin:18px 0;padding:18px}
.result-card .daily-record.compact .record-top h2{font-size:20px}
.result-card .daily-record.compact .daily-week{margin:16px 0 4px}
.result-card .daily-return-card{margin:18px 0;padding:16px 18px}
.result-card .daily-return-card h2{font-size:19px;margin:6px 0}
.result-card .daily-return-card .section-kicker{font-size:10px}
.result-card .daily-return-card p{font-size:12px}
@keyframes badge-arrival{from{opacity:.3;transform:translateY(6px) scale(.96)}to{opacity:1;transform:none}}
.milestone-arrival .badge-art{animation:badge-arrival .5s cubic-bezier(.2,.7,.3,1) both}
html[data-motion=reduced] .milestone-arrival .badge-art{animation:none}
@media(prefers-reduced-motion:reduce){.milestone-arrival .badge-art{animation:none}}
@media(max-width:400px){.milestone-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.daily-record .record-top>div{flex-basis:100%}.result-actions .result-customize{flex-basis:100%;justify-content:center;padding:4px}.result-awards .milestone-award{padding:12px}.milestone-award h2{font-size:18px}}


/* Names lead the layout while licensed portraits are unavailable. */
.player-option{grid-template-columns:minmax(0,1fr) auto;}
.player-option:has(.player-option-avatar){grid-template-columns:34px minmax(0,1fr) auto;}
.result-player-line>div:last-child{min-width:0;}

/* Keep reset within easy reach without competing with the player results. */
.guess-search-wrap:has(.clear-player-search) .guess-search{padding-right:48px;}
.clear-player-search{position:absolute;right:2px;top:50%;transform:translateY(-50%);width:44px;height:44px;display:grid;place-items:center;border:0;background:transparent;color:var(--muted);font-size:24px;cursor:pointer;border-radius:8px;}
.clear-player-search:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 6%,transparent);}
.clear-player-search:focus-visible{outline:2px solid var(--accent,#2464b9);outline-offset:-4px;}

/* Long secondary-position labels must fit beside the Choose button on phones. */
.challenge-main>div{min-width:0;}
.challenge-result p{white-space:normal;overflow-wrap:anywhere;}


.voice-readout .voice-transcript{display:block;margin-top:5px;font-weight:600;overflow-wrap:anywhere;}

/* Error text and background must switch themes together. */
html[data-theme=dark] .voice-readout.voice-error{background:#342329;border-color:#87515b;color:#ffd6dc;}
html[data-theme=dark] .voice-readout.voice-error strong{color:#ffd6dc;}

/* Keep confirmations and errors visible above information dialogs. */
.toast{z-index:350;}

/* Keep feedback in the existing Ask button, without shifting the composer. */
.ask-spinner{display:inline-block;vertical-align:middle;width:18px;height:18px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:question-checking .8s linear infinite;}
@keyframes question-checking{to{transform:rotate(360deg)}}
html[data-motion=reduced] .ask-spinner{animation:none;}
@media(prefers-reduced-motion:reduce){.ask-spinner{animation:none;}}
.saved-game-row>div:first-child{min-width:0;overflow-wrap:anywhere;}
.daily-reset{margin-top:8px;}

/* Crawlable guide links stay available after the game renders. */
.home-guides nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0 20px;padding:8px 0;border-bottom:1px solid var(--line);margin:0 0 4px;}
.home-guides nav .text-link{display:flex;align-items:center;min-height:44px;padding:8px 6px;}
.home-guides nav .text-link:hover{text-decoration:underline;text-underline-offset:3px;}

.room-invitation{margin:20px 0 12px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.room-invitation summary{cursor:pointer;color:var(--muted);font-size:14px;}
.room-invitation .invitation-message{white-space:pre-line;overflow-wrap:anywhere;font-size:15px;line-height:1.55;color:var(--ink);margin:16px 0;}
.room-invitation .share-link-row{margin-bottom:4px;}

.library-heading,.library-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.library-heading{justify-content:space-between}.library-select{min-height:44px}.library-select{display:flex;align-items:center;padding:10px}.library-select input{width:20px;height:20px}.library-actions{margin:12px 0}

.library-select{flex:0 0 44px}.saved-game-row:has(.library-select){gap:8px}
.library-section-tools{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 20px;padding:4px 0 8px;border-bottom:1px solid var(--line);}
.library-selection-tools,.library-notice{display:flex;align-items:center;flex-wrap:wrap;gap:12px;}
.library-selection-tools>span{font-size:13px;color:var(--muted);}
.saved-rooms .library-section-tools button,.saved-rooms .library-confirm button{min-height:44px;margin:0;padding:8px 2px;}
.library-section-tools .library-actions,.library-confirm .library-actions{margin:0;gap:16px;}
.library-section-tools button:disabled{opacity:.45;cursor:default;}
.library-heading>.helper{margin:0;font-size:12px;}
.library-notice{justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px;}
.library-notice button{min-height:44px;}
.library-confirm{padding:12px 0;border-bottom:1px solid var(--line);}
.library-confirm p{margin:0 0 10px;}
.saved-rooms .library-confirm .secondary-btn{padding:10px 14px;}
.library-remove{color:var(--muted);}
.library-remove:hover{color:var(--ink);}
.saved-rooms .saved-count{color:var(--muted);font-weight:400;font-size:13px;}
.library-loading,.library-error{padding:8px 0;font-size:14px;}
.library-notice:focus-visible,.library-heading h2:focus-visible{outline:2px solid var(--action);outline-offset:3px;}
@media(max-width:480px){.library-section-tools{align-items:flex-start;gap:0 16px;}.library-section-tools .library-actions{flex-wrap:wrap;gap:0 16px;}.library-section-tools .text-link{font-size:13px;}.library-confirm .library-actions{gap:8px;}}

.standings-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.standings-tools>span{font-size:13px;color:var(--muted)}.standings-tools button{min-height:44px}
@media(max-width:600px){.saved-game-row:has(.library-select){display:grid;grid-template-columns:44px minmax(0,1fr);align-items:start}.saved-game-row:has(.library-select)>.saved-game-actions{grid-column:2}.saved-game-row:has(.library-select)>div{min-width:0;overflow-wrap:anywhere}.standings-tools{gap:4px;flex-direction:column;align-items:flex-end}}

.library-more{min-height:44px;margin-top:8px;}
.saved-game-row:has(.library-select){justify-content:flex-start;}
