.race-app{max-width:720px}.race-intro{background:linear-gradient(125deg,#163a38,#27574d);border-color:transparent;color:#fff;padding:1.6rem}.panel.race-intro{background:linear-gradient(125deg,#163a38,#27574d);border-color:transparent;color:#fff}.race-intro h2{font-size:clamp(1.3rem,4vw,1.9rem);margin:.5rem 0}.race-intro p{line-height:1.6}.race-eyebrow{letter-spacing:.14em;font-size:.72rem;color:#bce5cf;margin:0}.race-title{margin:0 0 .3rem;font-size:1.25rem}.race-error{padding:.8rem 1rem;background:var(--bg);border-left:4px solid var(--danger);color:var(--danger);border-radius:6px;cursor:pointer}.race-banner{margin:0;padding:.4rem .8rem;border-radius:8px;background:var(--bg-elevated);border:1px solid var(--border);font-size:.82rem;color:var(--muted)}.race-players{list-style:none;margin:.75rem 0;padding:0;display:grid;gap:.4rem}.race-players li{display:flex;align-items:center;gap:.6rem;padding:.55rem .7rem;border:1px solid var(--border);border-radius:10px;background:var(--bg)}.race-players strong{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.race-player--me{border-color:var(--accent-dim)!important}.race-tag{font-size:.7rem;color:var(--gold);border:1px solid var(--gold);border-radius:999px;padding:.05rem .45rem}.race-state{font-size:.78rem;color:var(--muted)}.race-state--ready{color:var(--ok);font-weight:600}.race-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.race-link-row{display:flex;gap:.5rem;margin-top:.5rem}.race-link-row input{flex:1;min-width:0;font:inherit;font-size:.78rem;padding:.5rem .6rem;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text)}.race-countdown{text-align:center;font-size:4.5rem;font-weight:700;font-variant-numeric:tabular-nums;margin:0}.race-timebar{position:relative;height:8px;margin-top:.7rem;border-radius:999px;background:var(--border);overflow:visible}.race-timebar-fill{position:absolute;inset:0 auto 0 0;border-radius:inherit;background:linear-gradient(90deg,var(--accent-dim),var(--gold));transition:width .25s linear}.race-timebar-par{position:absolute;top:-4px;bottom:-4px;width:3px;margin-left:-1px;border-radius:2px;background:var(--text);opacity:.7}.race-opponents{display:grid;gap:.4rem}.race-opp{display:grid;grid-template-columns:7rem 1fr 2.6rem;align-items:center;gap:.6rem;font-size:.85rem}.race-opp--me .race-opp-name{font-weight:700}.race-opp-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.race-opp-bar{height:8px}.race-opp-count{text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}.race-done{text-align:center;border-color:var(--ok-border);background:var(--ok-bg)}.race-done p{margin:.2rem 0}.race-results{list-style:none;margin:.75rem 0;padding:0;display:grid;gap:.4rem}.race-results li{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;padding:.55rem .7rem;border:1px solid var(--border);border-radius:10px;background:var(--bg);font-variant-numeric:tabular-nums}.race-res-name{flex:1;min-width:6rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.race-res-total{font-weight:700}.race-strip{display:flex;gap:.4rem;flex-basis:100%;padding-left:1.6rem}.race-strip .stars{font-size:.7rem}.race-next{margin:.5rem 0 0;text-align:center;color:var(--muted)}@media(max-width:520px){.race-opp{grid-template-columns:5rem 1fr 2.4rem}}:root{color-scheme:dark;--bg: #0f1219;--bg-elevated: #161b26;--border: #2a3142;--text: #e8eaef;--muted: #8b93a5;--accent: #6ee7b7;--accent-dim: #34d399;--danger: #f87171;--ok: #4ade80;--gold: #fbbf24;--hover: rgba(255, 255, 255, .06);--focus-ring: rgba(52, 211, 153, .4);--ok-border: rgba(74, 222, 128, .45);--bad-border: rgba(248, 113, 113, .5);--ok-bg: rgba(74, 222, 128, .07);--btn-from: #059669;--btn-to: #047857;--overlay: rgba(5, 8, 14, .72);--shadow: 0 20px 50px rgba(0, 0, 0, .55);--shadow-up: 0 -10px 28px rgba(0, 0, 0, .45);--font: "DM Sans", system-ui, sans-serif}:root[data-theme=light]{color-scheme:light;--bg: #eef1f7;--bg-elevated: #ffffff;--border: #d5dbe8;--text: #19202e;--muted: #5b6579;--accent: #047857;--accent-dim: #059669;--danger: #dc2626;--ok: #15803d;--gold: #d99a06;--hover: rgba(15, 23, 42, .06);--focus-ring: rgba(5, 150, 105, .35);--ok-border: rgba(22, 163, 74, .55);--bad-border: rgba(220, 38, 38, .5);--ok-bg: rgba(22, 163, 74, .07);--overlay: rgba(25, 32, 46, .5);--shadow: 0 20px 50px rgba(25, 32, 46, .25);--shadow-up: 0 -8px 24px rgba(25, 32, 46, .14)}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.5;transition:background .2s ease,color .2s ease;-webkit-font-smoothing:antialiased}.app{max-width:720px;margin:0 auto;padding:1.25rem 1rem 3rem;min-height:100vh;display:flex;flex-direction:column}.app.empty{justify-content:center;align-items:center;text-align:center}.empty-msg{color:var(--muted);max-width:28rem}.empty-msg code{display:block;margin-top:1rem;padding:.75rem;background:var(--bg-elevated);border-radius:8px;font-size:.8rem;word-break:break-all}.header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:.75rem}.brand-mark{font-size:1.5rem;color:var(--accent);line-height:1}.brand h1{margin:0;font-size:1.35rem;font-weight:700;letter-spacing:-.02em}.brand-sub{margin:0;font-size:.8rem;color:var(--muted)}.level-nav{display:flex;align-items:center;gap:.5rem}.main{flex:1;display:flex;flex-direction:column;gap:1rem}.panel{background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;padding:1rem 1.1rem}.title-panel{padding-bottom:.9rem}.level-id{margin:0 0 .25rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.level-title{margin:0;font-size:1.35rem;font-weight:600}.title-panel-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1rem;margin-top:.65rem}.hint-controls{display:flex;align-items:center;gap:.5rem}.quote-panel{margin:0}.quote-label{margin:0 0 .35rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.quote-hint{margin:0 0 .85rem;font-size:.82rem;color:var(--muted);line-height:1.45}.quote-grid{display:flex;flex-wrap:wrap;gap:.65rem 1.15rem;align-items:flex-end}.quote-word{display:inline-flex;gap:4px;flex-wrap:wrap;align-items:flex-end}.quote-hyphen-wrap{align-self:center;padding:0 .1rem;color:var(--muted);font-weight:500}.crypt-row{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:.35rem}.crypt-letter{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-width:1.75rem;padding:.2rem .25rem .15rem;border-radius:8px;background:var(--bg);border:1px solid var(--border)}.quote-slot.crypt-letter{min-height:3.1rem}.crypt-dig{font-size:.72rem;font-weight:700;color:var(--accent);line-height:1;letter-spacing:.02em}.crypt-ch{font-size:1.1rem;font-weight:600;line-height:1.2;min-height:1.35rem;text-transform:lowercase}.clue-crypt-block{margin-top:.35rem}.clue-merged-strip{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-end;margin-top:.35rem}.merged-cell{position:relative}.merged-cell--hint .crypt-ch{color:var(--muted);font-style:italic}.merged-cell--solved .crypt-ch{color:var(--ok)}.merged-letter-layer{position:relative;display:flex;align-items:center;justify-content:center;min-height:1.4rem;min-width:1.25rem}.merged-letter-layer .crypt-ch{pointer-events:none;-webkit-user-select:none;user-select:none}.merged-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;min-height:2rem;margin:0;padding:0;border:none;border-radius:6px;background:transparent;color:transparent;caret-color:transparent;font:inherit;font-size:1rem;cursor:text;z-index:2}.merged-input:focus{outline:none}.merged-cell:focus-within{box-shadow:0 0 0 3px var(--focus-ring);border-radius:8px}.clue-actions-row{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem}.tk-keyboard-sticky{position:fixed;bottom:0;left:50%;transform:translate(-50%);z-index:40;width:min(720px,100%);padding:.65rem .75rem calc(.75rem + env(safe-area-inset-bottom,0px));background:var(--bg-elevated);border-top:1px solid var(--border);border-left:1px solid var(--border);border-right:1px solid var(--border);border-radius:12px 12px 0 0;box-shadow:var(--shadow-up)}.tk-keyboard-hint{margin:0 0 .45rem;font-size:.72rem;color:var(--muted);text-align:center}.tk-keyboard{max-width:100%}.tk-keyboard-row{display:flex;flex-wrap:nowrap;justify-content:center;gap:5px;margin-bottom:5px}.tk-key{flex:1 1 0;min-width:0;max-width:2.6rem;height:2.5rem;padding:0;font:inherit;font-size:.95rem;font-weight:600;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;text-transform:lowercase}.tk-key:hover{background:var(--hover)}.tk-key:active{transform:scale(.97)}.tk-key-backspace{flex:0 1 12rem;max-width:12rem;font-size:.85rem;font-weight:500}.clues-section{padding-bottom:max(2rem,env(safe-area-inset-bottom))}.app--keyboard{padding-bottom:11.5rem}.legacy-msg{margin:0;font-size:.9rem;color:var(--muted);line-height:1.5}.legacy-msg code{font-size:.78rem;display:block;margin-top:.5rem;padding:.6rem;background:var(--bg);border-radius:8px;word-break:break-all}.section-title{margin:0 0 .75rem;font-size:.85rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.clue-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.clue-progress{font-size:.9rem;color:var(--muted)}.clues{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.85rem}.clue-row{display:flex;gap:.65rem;padding:.75rem;border-radius:10px;background:var(--bg);border:1px solid var(--border);transition:border-color .15s ease}.clue-row.status-ok{border-color:var(--ok-border);background:var(--ok-bg)}.clue-row.status-bad{border-color:var(--bad-border);animation:shake .35s ease}.clue-num{flex-shrink:0;width:1.75rem;height:1.75rem;display:flex;align-items:center;justify-content:center;border-radius:8px;background:var(--bg-elevated);font-size:.85rem;font-weight:600;color:var(--accent)}.clue-body{flex:1;min-width:0}.clue-text{margin:0 0 .5rem;font-size:.92rem;color:var(--text);word-break:break-word}.btn{font:inherit;font-size:.85rem;font-weight:500;padding:.45rem .85rem;border-radius:8px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);cursor:pointer;transition:background .12s ease,border-color .12s ease}.btn:focus-visible,.level-tile:focus-visible{outline:2px solid var(--accent-dim);outline-offset:2px}.btn:not(:disabled):active{transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{background:linear-gradient(145deg,var(--btn-from),var(--btn-to));border-color:var(--btn-to);color:#fff}.btn.primary:hover:not(:disabled){filter:brightness(1.08)}.btn.ghost{background:transparent}.btn.ghost:hover:not(:disabled){background:var(--hover)}.btn.ghost.subtle{font-size:.8rem;color:var(--muted)}.btn.icon{padding:.45rem .65rem;min-width:2.5rem}.footer{margin-top:auto;padding-top:2rem;font-size:.8rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:1rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:1rem;background:var(--overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-card{width:min(100%,22rem);padding:1.35rem 1.25rem;border-radius:14px;border:1px solid var(--border);background:var(--bg-elevated);box-shadow:var(--shadow)}.modal-card--winner{text-align:center}.modal-winner-icon{font-size:2rem;color:var(--accent);line-height:1;margin-bottom:.35rem}.modal-title{margin:0 0 .5rem;font-size:1.35rem;font-weight:700;letter-spacing:-.02em}.modal-text{margin:0 0 1.1rem;font-size:.9rem;color:var(--muted);line-height:1.45}.modal-actions{display:flex;flex-direction:column;gap:.5rem}.modal-btn{width:100%;justify-content:center;padding:.55rem 1rem}.modal-btn-full{width:100%;margin-top:.25rem}.details-list{margin:0 0 1rem}.details-row{display:grid;grid-template-columns:6.5rem 1fr;gap:.5rem;padding:.4rem 0;border-bottom:1px solid var(--border);font-size:.88rem}.details-row:last-of-type{border-bottom:none}.details-row dt{margin:0;color:var(--muted);font-weight:500}.details-row dd{margin:0;word-break:break-word}.details-row--block{grid-template-columns:1fr;gap:.25rem}.details-row--block dt{grid-column:1 / -1}.details-quote{font-size:.95rem;font-weight:500;color:var(--text);line-height:1.4}@media(max-width:520px){.header{flex-direction:column;align-items:stretch}.level-nav{justify-content:space-between}}@media(max-width:520px){.level-nav{display:flex;flex-wrap:wrap;width:100%}.level-nav>a{flex:1 1 100%;text-decoration:none}}.header-tools{display:flex;align-items:center;gap:.6rem;margin-left:auto}.theme-toggle{font-size:1.1rem;line-height:1}.stats-bar{display:flex;align-items:center;gap:.4rem}.stat-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .6rem;border-radius:999px;border:1px solid var(--border);background:var(--bg-elevated);font-size:.82rem;font-weight:600;font-variant-numeric:tabular-nums}.stat-chip--hot{border-color:#fb923c99}.stat-icon--star{color:var(--gold)}.stat-label{font-size:.72rem;font-weight:600;color:var(--muted)}.xp-track,.progress-track{display:inline-block;height:6px;border-radius:999px;background:var(--border);overflow:hidden}.xp-track{width:3rem}.xp-fill,.progress-fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent-dim),var(--gold));transition:width .5s ease}.level-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.stars{display:inline-flex;gap:2px;font-size:1.1rem;line-height:1}.star{color:var(--border)}.star--on{color:var(--gold);text-shadow:0 0 10px rgba(251,191,36,.45)}.star--pop{opacity:0;animation:star-pop .5s cubic-bezier(.2,1.6,.4,1) forwards}.winner-stars .stars{font-size:2.6rem;gap:6px;margin-bottom:.3rem}.hint-pips{display:inline-flex;gap:4px}.hint-pip{width:9px;height:9px;border-radius:50%;border:1.5px solid var(--muted);transition:background .2s ease,border-color .2s ease}.hint-pip--on{background:var(--gold);border-color:var(--gold)}.level-timer{margin:0;font-size:.9rem;color:var(--muted)}.level-timer strong{color:var(--text);font-variant-numeric:tabular-nums}.quote-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.quote-count{font-size:.75rem;color:var(--muted);font-variant-numeric:tabular-nums}.quote-slot--filled{border-color:var(--ok-border)}.quote-slot--filled .crypt-ch{animation:letter-pop .25s ease}.clue-progress-wrap{display:flex;flex-direction:column;gap:.35rem;flex:1;max-width:14rem}.progress-track{height:8px;width:100%}.clue-toolbar{gap:1rem}.clue-row:focus-within{border-color:var(--accent-dim)}.clue-row.status-ok .clue-num{background:var(--accent-dim);color:#fff}.winner-stats{display:flex;justify-content:center;gap:1.5rem;margin-bottom:.9rem}.winner-stat{display:flex;flex-direction:column;gap:.1rem}.winner-stat-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.winner-stat-value{font-size:1.05rem;font-weight:700;font-variant-numeric:tabular-nums}.winner-badge-new{color:var(--gold);font-size:.8rem}.reward-row{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem;margin-bottom:1.1rem}.reward-chip{padding:.25rem .65rem;border-radius:999px;font-size:.8rem;font-weight:700;border:1px solid var(--border);animation:reward-in .4s ease both}.reward-chip--xp{color:var(--accent);animation-delay:.9s}.reward-chip--streak{border-color:#fb923c99;animation-delay:1.05s}.reward-chip--level{color:var(--gold);border-color:var(--gold);animation-delay:1.2s}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:101}.confetti-piece{position:absolute;top:-5%;border-radius:2px;opacity:0;animation-name:confetti-fall;animation-timing-function:ease-in;animation-fill-mode:forwards}.modal-card{position:relative;z-index:102;animation:modal-in .25s ease}.modal-card--map{width:min(100%,30rem);max-height:90vh;overflow-y:auto}.level-grid{list-style:none;margin:0 0 1rem;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(5rem,1fr));gap:.5rem}.level-tile{width:100%;display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:.55rem .25rem;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:transform .12s ease,border-color .12s ease}.level-tile:hover:not(:disabled){transform:translateY(-2px);border-color:var(--accent-dim)}.level-tile:disabled{opacity:.45;cursor:not-allowed}.level-tile--done{border-color:var(--ok-border);background:var(--ok-bg)}.level-tile--current{box-shadow:0 0 0 2px var(--accent-dim)}.level-tile-num{font-size:1.05rem;font-weight:700}.level-tile .stars{font-size:.8rem}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@keyframes letter-pop{0%{transform:scale(.6);opacity:.2}70%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}@keyframes star-pop{0%{transform:scale(0) rotate(-40deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}@keyframes reward-in{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes modal-in{0%{transform:translateY(12px) scale(.97);opacity:0}to{transform:none;opacity:1}}@keyframes confetti-fall{0%{transform:translateZ(0) rotate(0);opacity:1}to{transform:translate3d(var(--drift),110vh,0) rotate(var(--rot));opacity:.9}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0s!important;transition-duration:.01ms!important}.confetti{display:none}}@media(max-width:520px){.header-tools{justify-content:space-between;width:100%}}.lb-tabs{display:flex;gap:.4rem;margin-bottom:.75rem}.lb-tab{flex:1;min-width:0;font:inherit;font-size:.85rem;padding:.4rem .6rem;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-tab--on{color:var(--text);border-color:var(--accent-dim);background:var(--ok-bg)}.lb-list{list-style:none;margin:0 0 1rem;padding:0;max-height:40vh;overflow-y:auto}.lb-row{display:flex;align-items:center;gap:.6rem;padding:.45rem .5rem;border-bottom:1px solid var(--border);font-size:.9rem;font-variant-numeric:tabular-nums}.lb-row--me{background:var(--ok-bg);border-radius:8px;font-weight:700}.lb-rank{width:1.6rem;color:var(--muted)}.lb-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-time{color:var(--muted)}.lb-form{display:grid;gap:.6rem;margin-bottom:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.lb-field{display:grid;gap:.3rem;font-size:.8rem;color:var(--muted)}.lb-note{margin:0;font-size:.75rem;color:var(--muted);line-height:1.45}.lb-form-actions{display:flex;flex-wrap:wrap;gap:.5rem}.profile-card{display:grid;gap:.6rem;margin-bottom:1rem;padding:.85rem;border:1px solid var(--border);border-radius:12px;background:var(--bg)}.profile-name{margin:0;font-size:1.1rem;font-weight:700}.key-row{display:flex;align-items:center;gap:.6rem}.key-code{flex:1;padding:.5rem .75rem;text-align:center;font-size:1.4rem;font-weight:700;letter-spacing:.18em;border-radius:10px;border:1px dashed var(--accent-dim);color:var(--accent);-webkit-user-select:all;user-select:all}.lb-input{flex:1;min-width:0;font:inherit;padding:.5rem .65rem;border-radius:8px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text)}.lb-input--key{font-size:1.2rem;letter-spacing:.15em;text-align:center;text-transform:uppercase}.profile-offer{margin:0 0 1rem;padding:.7rem;border-radius:10px;border:1px dashed var(--border);font-size:.82rem;color:var(--muted)}.profile-offer p{margin:0 0 .5rem}.clue-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;padding-top:.85rem;border-top:1px solid var(--border)}.reward-chip--achievement{border-color:var(--gold);animation-delay:1.3s}.ach-list{list-style:none;margin:0 0 1rem;padding:0;display:grid;gap:.4rem;max-height:55vh;overflow-y:auto}.ach-row{display:flex;align-items:center;gap:.7rem;padding:.5rem .65rem;border:1px solid var(--border);border-radius:10px;background:var(--bg);opacity:.6}.ach-row--on{opacity:1;border-color:var(--ok-border);background:var(--ok-bg)}.ach-icon{font-size:1.5rem;width:2rem;text-align:center}.ach-text{display:grid;font-size:.8rem;color:var(--muted)}.ach-text strong{font-size:.92rem;color:var(--text)}.daily-banner{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;margin:0;padding:.7rem 1rem;font:inherit;font-size:.9rem;font-weight:600;text-align:left;color:var(--text);border:1px solid var(--gold);border-radius:12px;background:var(--bg-elevated);cursor:pointer}button.daily-banner:hover{background:var(--hover)}.daily-banner--here{cursor:default;justify-content:flex-start}.daily-banner--done{border-color:var(--ok-border)}.daily-banner-sub{font-size:.8rem;font-weight:500;color:var(--muted)}.level-groups{display:grid;gap:.5rem;margin-bottom:1rem;max-height:60vh;overflow-y:auto}.level-group{border:1px solid var(--border);border-radius:12px;padding:0 .6rem}.level-group[open]{padding-bottom:.6rem}.level-group-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.6rem .1rem;font-weight:700;cursor:pointer;list-style-position:inside}.level-group-meta{font-size:.78rem;font-weight:500;color:var(--muted);font-variant-numeric:tabular-nums}.level-group .level-grid{margin:.25rem 0 0;grid-template-columns:repeat(5,minmax(0,1fr));gap:.35rem}.level-group .level-tile{padding:.4rem .1rem}.level-group .level-tile .stars{font-size:.62rem}.modal-card--tutorial{width:min(100%,24rem);text-align:center}.tut-step{margin:0 0 .25rem;font-size:.72rem;letter-spacing:.08em;color:var(--muted)}.tut-art{display:grid;justify-items:center;gap:.6rem;margin:.9rem 0 1rem;padding:.9rem .75rem;border:1px dashed var(--border);border-radius:12px;background:var(--bg)}.tut-row{display:flex;gap:4px}.tut-row--center{align-items:center;gap:.75rem}.tut-cell{min-width:2.1rem}.tut-cell--hot{border-color:var(--gold);box-shadow:0 0 0 2px #fbbf2459}.tut-caption,.tut-clue{margin:0;font-size:.8rem;color:var(--muted);line-height:1.4}.tut-clue{color:var(--text);font-size:.88rem}.tut-fake-btn{pointer-events:none}.tut-dots{display:flex;justify-content:center;gap:6px;margin-bottom:1rem}.tut-dot{width:7px;height:7px;border-radius:50%;background:var(--border)}.tut-dot--on{background:var(--accent-dim)}.tut-actions{display:flex;justify-content:space-between;gap:.5rem}.tut-actions .btn.primary{min-width:7rem}.stat-chip{white-space:nowrap}@media(max-width:520px){.header-tools{gap:.35rem;flex-wrap:wrap}.stats-bar{gap:.3rem;min-width:0}.stat-chip{padding:.3rem .5rem}.xp-track{width:1.6rem}.header-tools .btn.icon{padding:.45rem .5rem;min-width:2.2rem}}.daily-banner--challenge{cursor:default;border-color:var(--accent-dim);font-weight:500;line-height:1.4}.challenge-result{margin:0 0 .9rem;padding:.55rem .7rem;border-radius:10px;border:1px solid var(--border);font-size:.85rem;line-height:1.4}.challenge-result--won{border-color:var(--gold)}.hint-pips{align-items:center;gap:6px}.hint-wallet{margin-left:.2rem;font-size:.8rem;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}@media(max-width:420px){.header-tools{justify-content:flex-end}.stats-bar{flex:1 1 100%}.xp-track{flex:1;width:auto;min-width:1.6rem}.stat-chip--xp{flex:1}}.winner-quote{margin:0 0 1rem;padding:.8rem .9rem;border-left:3px solid var(--gold);border-radius:8px;background:var(--bg);text-align:left}.winner-quote p{margin:0;font-size:1.05rem;font-weight:600;line-height:1.4}.winner-quote footer{margin-top:.35rem;font-size:.8rem;color:var(--muted)}.modal-card--winner{max-height:calc(100dvh - 2rem);overflow-y:auto}.level-current{flex:1 1 auto;display:inline-flex;align-items:center;justify-content:space-between;gap:.5rem;min-width:8rem;font-weight:600}.level-current-total{font-weight:400;color:var(--muted);font-variant-numeric:tabular-nums}.wotd{margin:0 0 1rem;padding:.55rem .8rem;border:1px solid var(--border);border-radius:10px;text-align:left;font-size:.88rem}.wotd summary{cursor:pointer;font-weight:500}.wotd-def{margin:.5rem 0 .3rem;line-height:1.4}.wotd-example{margin:0 0 .3rem;font-style:italic;color:var(--muted);line-height:1.4}.wotd-source{margin:0;font-size:.72rem;color:var(--muted)}.modal-card--gate{width:min(100%,24rem);display:grid;gap:.6rem;max-height:calc(100dvh - 2rem);overflow-y:auto}.modal-card--gate .modal-text{margin-bottom:.2rem}.gate-hint{margin:-.3rem 0 0;font-size:.75rem;color:var(--muted)}.gate-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.25rem}.gate-links .btn{font-size:.8rem}.friends-add .lb-input{flex:1}.friend-list{list-style:none;margin:0 0 1rem;padding:0;display:grid;gap:.35rem}.friend-list li{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;border:1px solid var(--border);border-radius:10px;background:var(--bg)}.friend-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.friend-state{font-size:.72rem;color:var(--muted)}.presence{width:.55rem;height:.55rem;border-radius:50%;background:var(--border);flex:none}.presence--on{background:var(--ok);box-shadow:0 0 0 3px #4ade8040}.badge{position:absolute;top:-.35rem;right:-.35rem;min-width:1.1rem;height:1.1rem;padding:0 .25rem;border-radius:999px;background:var(--danger);color:#fff;font-size:.7rem;font-weight:700;line-height:1.1rem;text-align:center}.btn.has-badge{position:relative}.invite-banner{position:fixed;top:.6rem;left:50%;transform:translate(-50%);z-index:90;display:flex;align-items:center;gap:.6rem;width:min(94vw,26rem);padding:.6rem .8rem;border:1px solid var(--accent-dim);border-radius:12px;background:var(--bg-elevated);box-shadow:var(--shadow);font-size:.88rem;animation:modal-in .25s ease}.invite-banner span{flex:1;min-width:0}.tk-keyboard-spacer{height:calc(11.5rem + env(safe-area-inset-bottom,0px))}.ios-banner{cursor:default;font-weight:500;line-height:1.35}.ios-banner span{flex:1;min-width:0}.ios-steps{margin:0 0 1.1rem;padding-left:1.2rem;display:grid;gap:.55rem;line-height:1.45}.ios-share{vertical-align:-.2em;color:var(--accent)}.friend-add{padding:.25rem .6rem;font-size:.78rem}.friend-tag{font-size:.75rem;color:var(--muted);white-space:nowrap}.pw-change summary{cursor:pointer;font-size:.85rem;color:var(--muted)}.pw-change .lb-form{margin-top:.6rem;padding-top:.6rem}.friend-record{font-size:.78rem;font-weight:700;font-variant-numeric:tabular-nums;padding:.05rem .45rem;border:1px solid var(--border);border-radius:999px}.race-history .friend-name small{font-weight:400;color:var(--muted)}.player-menu-btn{padding:.2rem .5rem;line-height:1}.report-reasons{border:0;margin:0;padding:0;display:grid;gap:.35rem;font-size:.88rem}.report-reasons label{display:flex;align-items:center;gap:.4rem}
