:root{--bg:#f8fafc;--surface:#fff;--text:#0f172a;--text-muted:#64748b;--border:#e2e8f0;--accent:#3b82f6;--accent-hover:#2563eb;--opt-bg:#fff;--opt-hover:#eff6ff;--correct-bg:#dcfce7;--correct-border:#22c55e;--wrong-bg:#fee2e2;--wrong-border:#ef4444;--missed-bg:#f1f5f9}@media (prefers-color-scheme:dark){:root{--bg:#0f172a;--surface:#1e293b;--text:#f1f5f9;--text-muted:#94a3b8;--border:#334155;--accent:#60a5fa;--accent-hover:#3b82f6;--opt-bg:#1e293b;--opt-hover:#273549;--correct-bg:#14532d;--correct-border:#4ade80;--wrong-bg:#7f1d1d;--wrong-border:#f87171;--missed-bg:#1e293b}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);justify-content:center;min-height:100vh;padding:1rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex}.container{width:100%;max-width:460px}.header{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.title{color:var(--accent);letter-spacing:-.02em;cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:1.25rem;font-weight:700}.title:hover{opacity:.85}.header-right{align-items:center;gap:.5rem;display:flex}.score-live{color:var(--text-muted);font-size:.9rem;font-weight:600}.share-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border-radius:.5rem;padding:.2rem .55rem;font-size:.75rem;transition:border-color .12s,color .12s}.share-btn:hover{border-color:var(--accent);color:var(--accent)}.hof-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border-radius:.5rem;align-items:center;gap:.25rem;padding:.2rem .55rem;font-size:.75rem;transition:border-color .12s,color .12s;display:inline-flex}.hof-btn:hover{border-color:var(--accent);color:var(--accent)}.stats-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border-radius:.5rem;padding:.2rem .55rem;font-size:.75rem;transition:border-color .12s,color .12s}.stats-btn:hover{border-color:var(--accent);color:var(--accent)}.update-btn{border:1px solid var(--accent);color:var(--accent);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:.5rem;padding:.2rem .4rem;font-size:.95rem;line-height:1;transition:background .12s,transform .1s}.update-btn:hover{background:var(--opt-hover)}.update-btn:active{transform:scale(.95)}body.on-menu .score-live,body.on-settings .score-live,body.on-chooser .score-live,body.on-subset .score-live,body.on-end .score-live,body.on-hof .score-live,body.on-stats .score-live,body.on-menu .share-btn,body.on-settings .share-btn,body.on-chooser .share-btn,body.on-subset .share-btn,body.on-end .share-btn,body.on-hof .share-btn,body.on-stats .share-btn{display:none}.lang-picker{position:relative}.lang-btn{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:.5rem;padding:.15rem .35rem;font-size:1rem;line-height:1;list-style:none;transition:border-color .12s;display:block}.lang-btn::-webkit-details-marker{display:none}.lang-btn:hover{border-color:var(--accent)}.lang-dropdown{background:var(--surface);border:1px solid var(--border);z-index:100;border-radius:.625rem;flex-direction:column;gap:.15rem;margin:0;padding:.3rem;list-style:none;display:flex;position:absolute;top:calc(100% + .35rem);right:0;box-shadow:0 4px 14px #0000001f}.lang-dropdown li{list-style:none}.lang-option{cursor:pointer;background:0 0;border:none;border-radius:.4rem;width:100%;padding:.3rem .45rem;font-size:1.25rem;line-height:1;transition:background .1s}.lang-option:hover,.lang-option.active{background:var(--opt-hover)}.beat-target{text-align:center;color:var(--text-muted);font-variant-numeric:tabular-nums;margin-bottom:.5rem;font-size:.95rem}.country-name{text-align:center;letter-spacing:-.02em;margin-bottom:1.75rem;font-size:1.75rem;font-weight:700;line-height:1.2}.country-name.country-name-emoji{letter-spacing:normal;font-size:6rem;line-height:1}.options{grid-template-columns:1fr 1fr;gap:.875rem;display:grid}.option{background:var(--opt-bg);color:var(--text);border:2px solid var(--border);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border-radius:1rem;justify-content:center;align-items:center;padding:.75rem;line-height:1;transition:border-color .12s,background .12s,transform .1s;display:flex}.option-emoji{aspect-ratio:1;font-size:4rem}.option-text{text-align:center;word-break:break-word;-webkit-hyphens:auto;hyphens:auto;min-height:4.5rem;font-size:1.1rem;font-weight:600;line-height:1.25}@media (hover:hover){.option:hover:not(:disabled){background:var(--opt-hover);border-color:var(--accent);transform:scale(1.03)}}.option:active:not(:disabled){transform:scale(.97)}.option.correct{background:var(--correct-bg);border-color:var(--correct-border)}.option.wrong{background:var(--wrong-bg);border-color:var(--wrong-border)}.option:disabled{cursor:default}.input-form{flex-direction:column;align-items:stretch;gap:.75rem;display:flex}.input-hint{color:var(--text-muted);text-align:center;letter-spacing:.1em;min-height:1.6em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:1.5rem}.input-answer{border:2px solid var(--border);background:var(--opt-bg);color:var(--text);text-align:center;border-radius:.75rem;outline:none;padding:.75rem 1rem;font-size:1.25rem;transition:border-color .12s,background .12s}.input-answer:focus{border-color:var(--accent);background:var(--opt-hover)}.input-submit{border:2px solid var(--border);background:var(--opt-bg);color:var(--text);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border-radius:.75rem;padding:.75rem 1rem;font-size:1.1rem;font-weight:600;transition:border-color .12s,background .12s,transform .1s}@media (hover:hover){.input-submit:hover{background:var(--opt-hover);border-color:var(--accent)}}.input-submit:active{transform:scale(.97)}#end{display:none}.end-title{text-align:center;margin-bottom:1.5rem;font-size:1.75rem;font-weight:700}.result-card{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:1rem;margin-bottom:1rem;padding:1.5rem}.final-score{color:var(--accent);letter-spacing:-.03em;font-size:3rem;font-weight:800;line-height:1}.final-pct{color:var(--text-muted);margin-top:.25rem;font-size:1.25rem}.personal-best{color:var(--text-muted);margin-top:.75rem;font-size:.85rem}.personal-best.new-best{color:var(--correct-border);font-weight:600}.seed-info{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);border-radius:1rem;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.75rem;display:none}.seed-info.visible{display:flex}.seed-left{text-align:left;flex:1;min-width:0}.seed-value{word-break:break-all;color:var(--text);margin-top:.2rem;font-family:monospace;font-size:.7rem;display:block}.seed-share-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border-radius:.5rem;flex-shrink:0;padding:.25rem .5rem;font-size:.75rem;transition:border-color .12s,color .12s}.seed-share-btn:hover{border-color:var(--accent);color:var(--accent)}.wrong-answer-section{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:1rem;margin-bottom:1.25rem;padding:1.25rem}.wrong-answer-section h3{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.75rem;font-size:.8rem;font-weight:600}.wrong-answer-emoji{margin-bottom:.5rem;font-size:4rem;line-height:1;display:block}.wrong-answer-text{color:var(--accent);margin-bottom:.5rem;font-size:1.6rem;font-weight:700;line-height:1.2;display:block}.wrong-answer-name{font-size:1.1rem;font-weight:600}.perfect{text-align:center;padding:.5rem 0;font-size:2rem}.submit-section{background:var(--surface);border:1px solid var(--border);border-radius:1rem;margin-bottom:1.25rem;padding:1rem}.submit-form{gap:.5rem;display:flex}.submit-name{background:var(--bg);min-width:0;color:var(--text);border:1px solid var(--border);border-radius:.625rem;flex:1;padding:.65rem .75rem;font-family:inherit;font-size:1rem}.submit-name:focus{border-color:var(--accent);outline:none}.submit-name:disabled{color:var(--text-muted)}.submit-btn{border:2px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border-radius:.625rem;flex-shrink:0;padding:.65rem 1rem;font-size:.9rem;font-weight:600;transition:background .15s,border-color .15s,opacity .15s}.submit-btn:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.submit-btn:disabled{opacity:.55;cursor:default}.submit-help{color:var(--text-muted);text-align:center;margin-top:.5rem;font-size:.75rem}.submit-error{color:var(--wrong-border);text-align:center;margin-top:.5rem;font-size:.8rem}.end-actions{gap:.75rem;display:flex}.btn{cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:.875rem;flex:1;padding:1rem;font-size:1rem;font-weight:600;transition:background .15s,border-color .15s,transform .1s}.btn-primary{background:var(--accent);color:#fff;border:2px solid var(--accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-secondary{color:var(--accent);border:2px solid var(--accent);background:0 0}.btn-secondary:hover{background:var(--opt-hover)}.btn:active{transform:scale(.98)}#menu{display:none}.menu-tiles{flex-direction:column;gap:.75rem;display:flex}#settings{display:none}.settings-form{margin-top:.5rem}.settings-saved{color:var(--accent);text-align:center;margin-top:.5rem;font-size:.85rem;font-weight:600}#game-chooser{display:none}.game-chooser-tiles{flex-direction:column;gap:.75rem;display:flex}#subset-picker{display:none}.subset-picker-title{text-align:center;color:var(--accent);margin-bottom:1rem;font-size:1.25rem;font-weight:700}.landing-tile{background:var(--surface);border:2px solid var(--border);cursor:pointer;width:100%;color:var(--text);-webkit-tap-highlight-color:transparent;touch-action:manipulation;border-radius:1rem;justify-content:space-between;align-items:center;gap:.75rem;padding:1rem 1.25rem;font-family:inherit;transition:border-color .12s,background .12s,transform .1s;display:flex}.landing-tile:hover{border-color:var(--accent);background:var(--opt-hover)}.landing-tile:active{transform:scale(.98)}.landing-tile-primary{border-color:var(--accent);background:var(--surface);margin-bottom:1.25rem;padding:1.25rem 1.5rem}.landing-tile-primary .landing-tile-name{color:var(--accent);font-size:1.25rem;font-weight:700}.landing-tile-primary .landing-tile-count{color:var(--text-muted);font-size:.85rem}.landing-tile-primary .landing-tile-emoji{font-size:2rem;line-height:1}.landing-tile-text{text-align:left;flex-direction:column;flex:1;align-items:flex-start;display:flex}.landing-tile-name{font-size:1rem;font-weight:600}.landing-tile-count{color:var(--text-muted);font-size:.8rem}.landing-divider{text-align:center;color:var(--text-muted);margin-bottom:1rem;font-size:.8rem;font-style:italic}.landing-tiles{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.landing-tiles .landing-tile{flex-direction:column;align-items:flex-start;gap:.15rem;padding:.875rem 1rem}.end-change-mode{text-align:center;margin-top:1rem;font-size:.85rem}.end-change-mode button{color:var(--text-muted);cursor:pointer;font-family:inherit;font-size:inherit;background:0 0;border:none;border-radius:.4rem;padding:.4rem .75rem;transition:color .12s,background .12s}.end-change-mode button:hover{color:var(--accent);background:var(--opt-hover)}.hof-modes{flex-wrap:wrap;justify-content:center;gap:.35rem;margin-bottom:.5rem;display:flex}.hof-subsets{margin-bottom:1rem}.hof-mode-chip{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:999px;padding:.3rem .75rem;font-family:inherit;font-size:.8rem;transition:border-color .12s,color .12s,background .12s}.hof-mode-chip:hover{border-color:var(--accent);color:var(--accent)}.hof-mode-chip.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}#leaderboard{display:none}.hof-title{text-align:center;color:var(--accent);margin-bottom:1.25rem;font-size:1.5rem;font-weight:700}.hof-state{text-align:center;color:var(--text-muted);padding:1.5rem .5rem;font-size:.9rem}.hof-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.hof-row{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:.75rem .875rem;list-style:none}.hof-row-top{align-items:baseline;gap:.5rem;display:flex}.hof-rank{color:var(--accent);flex-shrink:0;min-width:1.6rem;font-weight:700}.hof-rank.hof-rank-medal{font-size:1.25rem;line-height:1}.hof-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.hof-score{font-variant-numeric:tabular-nums;color:var(--text);flex-shrink:0;font-weight:600}.hof-play-link{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:.4rem;flex-shrink:0;margin-left:.25rem;padding:.15rem .4rem;font-size:.8rem;text-decoration:none;transition:border-color .12s,color .12s}.hof-play-link:hover{border-color:var(--accent);color:var(--accent)}.hof-row-bottom{color:var(--text-muted);font-variant-numeric:tabular-nums;margin-top:.2rem;padding-left:1.6rem;font-size:.75rem}@media (width<=360px){.option-emoji{font-size:3rem}.option-text{min-height:4rem;font-size:.95rem}.country-name{font-size:1.4rem}.country-name.country-name-emoji{font-size:4.5rem}.hof-btn .hof-label{display:none}.hof-row-bottom{padding-left:1.4rem;font-size:.7rem}}.stats-title{text-align:center;color:var(--accent);margin-bottom:1rem;font-size:1.5rem;font-weight:700}.stats-total{text-align:center;color:var(--text);font-variant-numeric:tabular-nums;font-size:1.75rem;font-weight:700}.stats-headline{flex-direction:column;gap:1rem;margin-bottom:1.5rem;display:flex}.stats-online-section{flex-direction:column;gap:.3rem;display:flex}.stats-online-heading{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:.4rem;font-size:.85rem;font-weight:600;display:inline-flex}.stats-online-heading:before{content:"";background:#22c55e;border-radius:50%;width:.55rem;height:.55rem;animation:1.6s ease-in-out infinite stats-online-pulse;display:inline-block;box-shadow:0 0 4px #22c55e80}@keyframes stats-online-pulse{0%,to{opacity:1}50%{opacity:.25}}.stats-online-chips{flex-wrap:wrap;gap:.3rem;display:flex}.stats-online-chip{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:999px;padding:.15rem .55rem;font-size:.8rem}.stats-online-more{color:var(--text-muted);align-self:center;font-size:.8rem}.stats-online-empty{color:var(--text-muted);font-size:.85rem;font-style:italic}.stats-per-game{flex-direction:column;gap:.5rem;margin-bottom:1.75rem;display:flex}.stats-per-game-block{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:.6rem .875rem}.stats-per-game-row{justify-content:space-between;align-items:baseline;display:flex}.stats-per-game-name{color:var(--text);font-weight:600}.stats-per-game-count{font-variant-numeric:tabular-nums;color:var(--accent);font-weight:600}.stats-per-game-best{color:var(--text-muted);margin-top:.3rem;font-size:.85rem}.stats-per-game-best-name{color:var(--text);font-weight:600}.stats-per-game-best-points{font-variant-numeric:tabular-nums;color:var(--accent);font-weight:600}.stats-subsets{border-left:2px solid var(--border);flex-direction:column;gap:.15rem;margin-top:.4rem;padding-left:.5rem;display:flex}.stats-subset-row{align-items:baseline;gap:.5rem;padding-left:.4rem;font-size:.85rem;display:flex}.stats-subset-name{color:var(--text-muted);flex:none}.stats-subset-best{text-align:right;color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;flex:auto;font-size:.8rem;overflow:hidden}.stats-subset-best-name{color:var(--text);font-weight:600}.stats-subset-best-points{font-variant-numeric:tabular-nums;color:var(--accent);font-weight:600}.stats-subset-count{font-variant-numeric:tabular-nums;color:var(--text-muted);text-align:right;flex:none;min-width:1.5rem}.stats-players-heading{color:var(--text-muted);margin-bottom:.5rem;font-size:1rem;font-weight:600}.stats-players{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.stats-player-row{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;align-items:baseline;gap:.5rem;padding:.6rem .875rem;display:flex}.stats-player-rank{color:var(--accent);flex-shrink:0;min-width:1.6rem;font-weight:700}.stats-player-rank.stats-player-rank-medal{font-size:1.25rem;line-height:1}.stats-player-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.stats-player-count{font-variant-numeric:tabular-nums;color:var(--text);flex-shrink:0;font-weight:600}.stats-state{text-align:center;color:var(--text-muted);padding:1.5rem .5rem;font-size:.9rem}.url-banner:not([hidden]){border:1px solid var(--border);background:var(--opt-hover);color:var(--text-muted);border-radius:.4rem;align-items:center;gap:.5rem;margin-bottom:.5rem;padding:.5rem .75rem;font-size:.85rem;display:flex}.url-banner-text{flex:1}.url-banner-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:0 .25rem;font-size:1.1rem;line-height:1}.url-banner-close:hover{color:var(--accent)}.challenge-section{margin-top:1rem}.challenge-section-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.4rem;font-size:.85rem}.challenge-rows{flex-direction:column;gap:.35rem;display:flex}.challenge-row{border:1px solid var(--border);background:var(--bg);border-radius:.5rem;justify-content:space-between;align-items:center;gap:.75rem;padding:.45rem .7rem;display:flex}.challenge-row-left{cursor:pointer;flex:1;align-items:center;gap:.55rem;min-width:0;display:flex}.challenge-radio{cursor:pointer;flex-shrink:0;width:1rem;height:1rem}.challenge-row-emoji{font-size:1.1rem;line-height:1}.challenge-row-name{color:var(--text);font-size:.95rem}.challenge-row-tiers{flex-shrink:0;gap:.3rem;display:flex}.tier-pill{border:1.5px solid var(--border);cursor:pointer;color:var(--text-muted);background:0 0;border-radius:1rem;padding:.2rem .6rem;font-size:.82rem;font-weight:500;transition:background-color .12s,color .12s,border-color .12s}.tier-pill:not(:disabled).tier-easy{color:#16a34a;border-color:#22c55e}.tier-pill:not(:disabled).tier-medium{color:#b45309;border-color:#eab308}.tier-pill:not(:disabled).tier-hard{color:#dc2626;border-color:#ef4444}.tier-pill.active.tier-easy{color:#fff;background:#22c55e;border-color:#22c55e}.tier-pill.active.tier-medium{color:#fff;background:#eab308;border-color:#eab308}.tier-pill.active.tier-hard{color:#fff;background:#ef4444;border-color:#ef4444}.tier-pill:disabled{border-color:var(--border);color:var(--text-muted);opacity:.5;cursor:not-allowed}.timer-bar{background:#00000014;border-radius:3px;width:100%;max-width:100%;height:6px;margin:.5rem auto .6rem;overflow:hidden}.timer-bar-fill{background:linear-gradient(90deg,#ef4444 0%,#f59e0b 50%,#22c55e 100%) 100%/200% 100%;width:100%;height:100%;transition:width 16ms linear}.timer-bar-fill.low{background:#ef4444}.challenge-tag{color:var(--text-muted);letter-spacing:.02em;margin-top:.4rem;font-size:.85rem}
