:root{--cream: #F5F0E8;--cream-dark: #E8E0CC;--cream-deep: #D9CEB4;--orange: #6E3A28;--orange-light: #9C5B42;--pink-highlight: #D4B896;--hero-shadow: #B8926E;--highlight: #E2CEB8;--highlight-ink: #1A1208;--black: #1A1208;--ink: #1A1208;--surface-ink: var(--black);--surface-footer: #16100A;--muted: #6B5C42;--muted-light: #9A8C72;--white: #FFFFFF;--on-accent: #F8F3EA;--accent-on-dark: #DD9460;--green: #2E7D3E;--green-light: #3D9E4A;--red: #C8102E;--ink-shadow: #1A1208;--notice-bg: rgba(110, 58, 40, .08);--notice-border: rgba(110, 58, 40, .3);--serif: Georgia, "Times New Roman", serif;--sans: "Inter", system-ui, sans-serif;--display: "Anton", "Arial Narrow", Impact, sans-serif;--radius: 2px}[data-theme=dark]{--cream: #1A1612;--cream-dark: #231E18;--cream-deep: #342A20;--black: #EDE6D6;--ink: #EDE6D6;--muted: #B0A088;--muted-light: #847560;--white: #2A231A;--orange: #B8724A;--orange-light: #C9956E;--accent-on-dark: #C9956E;--pink-highlight: #C9A67A;--hero-shadow: #5C4638;--highlight: #C9A67A;--highlight-ink: #1A1208;--surface-ink: #100E0A;--surface-footer: #16100A;--ink-shadow: #5A4D3E;--notice-bg: rgba(201, 150, 106, .1);--notice-border: rgba(201, 150, 106, .28);--track-empty: rgba(248, 243, 234, .14);--track-edge: rgba(248, 243, 234, .42);--edge-on-surface: rgba(201, 149, 110, .55)}[data-theme=dark] .topbar{background:var(--surface-ink)}[data-theme=dark] .code-card{background:var(--surface-ink);border-color:var(--ink)}[data-theme=dark] .result-player-card,[data-theme=dark] .countdown,[data-theme=dark] .win-rank-card{background:var(--surface-ink)}[data-theme=dark] .logo{color:var(--ink)}[data-theme=dark] .logo-accent{color:var(--orange-light)}[data-theme=dark] .input:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--orange) 35%,transparent)}[data-theme=dark] .toast{background:var(--surface-ink);color:var(--on-accent);box-shadow:4px 4px 0 var(--orange-light)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--orange);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}html,body{margin:0;height:100%}body{font-family:var(--sans);color:var(--ink);background:var(--cream)}#root{min-height:100dvh;display:flex;justify-content:center}.app{width:100%;min-height:100dvh;display:flex;flex-direction:column;background:var(--cream)}.lobby,.game,.win{width:100%;max-width:460px;margin-inline:auto}.topbar{background:var(--cream);padding:0 clamp(16px,4vw,44px);height:60px;display:flex;align-items:center;justify-content:space-between;border-bottom:3px solid var(--ink);gap:12px;flex-shrink:0}.topbar-left{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.topbar-right{display:flex;align-items:center;gap:clamp(6px,2.4vw,34px);flex-shrink:0}.topbar-home{color:var(--muted);flex-shrink:0}.topbar-home:hover{color:var(--ink)}.navlink{background:none;border:none;cursor:pointer;padding:6px 0;display:flex;align-items:center;font-family:var(--sans);font-weight:800;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);transition:color .12s ease}.navlink:hover,.navlink[aria-pressed=true]{color:var(--orange)}.navlink[aria-pressed=true] .navlink-text{box-shadow:inset 0 -3px 0 var(--orange)}.navlink-icon{display:none}@media (max-width: 640px){.navlink{padding:0}.navlink-text{display:none}.navlink-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px}}.btn-icon{background:none;border:none;cursor:pointer;color:var(--muted-light);display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius);padding:0;transition:color .12s ease,background .12s ease;flex-shrink:0}.btn-icon:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 8%,transparent)}.btn-icon[aria-pressed=true]{color:var(--orange)}.pattern-stripe{height:8px;background-color:var(--orange);background-image:repeating-linear-gradient(45deg,transparent,transparent 10px,rgba(26,18,8,.06) 10px,rgba(26,18,8,.06) 12px);border-top:2px solid var(--black);border-bottom:2px solid var(--black);flex-shrink:0}.logo{display:flex;align-items:center;gap:9px;font-family:var(--display);font-size:24px;letter-spacing:.04em;color:var(--orange)}.logo-mark{flex-shrink:0}.logo-word{transform:skew(-6deg)}.logo-accent{color:var(--orange)}.beta-tag{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;align-self:center;margin-left:2px;padding:4px 7px;padding-right:calc(7px + .16em);font-family:var(--sans);font-size:9px;font-weight:800;letter-spacing:.16em;line-height:1;text-align:center;text-transform:uppercase;color:var(--highlight-ink);background:var(--highlight);border:2px solid var(--orange);border-radius:1px;box-shadow:3px 3px 0 var(--ink-shadow);transform:rotate(-6deg)}.boot{margin:auto;display:flex;flex-direction:column;align-items:center;gap:18px}.boot-mark{animation:boot-spin 1.1s cubic-bezier(.5,0,.5,1) infinite}@keyframes boot-spin{to{transform:rotate(360deg)}}.boot-text{font-family:var(--sans);font-weight:800;font-size:12px;letter-spacing:.25em;color:var(--muted);text-transform:uppercase}.btn{font-family:var(--sans);font-size:15px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:16px 24px;border:3px solid var(--black);border-radius:var(--radius);cursor:pointer;width:100%;display:block;transition:transform 80ms ease,box-shadow 80ms ease;background:var(--cream-dark);color:var(--ink);box-shadow:none}.btn:disabled{background:var(--cream-dark);color:var(--muted-light);border-color:var(--cream-deep);box-shadow:none;cursor:not-allowed}.btn:active:not(:disabled){transform:translate(2px,2px);box-shadow:none!important}.btn-primary{background:var(--orange);color:var(--on-accent);box-shadow:4px 4px 0 var(--ink-shadow)}.btn-primary:hover:not(:disabled){box-shadow:6px 6px 0 var(--ink-shadow)}.btn-secondary{background:var(--white);color:var(--ink);box-shadow:4px 4px 0 var(--ink-shadow)}.btn-secondary:hover:not(:disabled){box-shadow:6px 6px 0 var(--ink-shadow)}.btn-go{background:var(--green);color:var(--on-accent);box-shadow:4px 4px 0 var(--ink-shadow)}.btn-go:hover:not(:disabled){box-shadow:6px 6px 0 var(--ink-shadow)}.btn-ghost{background:var(--cream-dark);color:var(--muted);box-shadow:none;border-color:var(--cream-deep)}.btn-small{font-size:13px;padding:11px 16px}.input{font-family:var(--sans);font-weight:700;font-size:16px;color:var(--ink);background:var(--white);border:3px solid var(--black);border-radius:var(--radius);padding:14px 16px;width:100%;outline:none;transition:box-shadow .12s ease;letter-spacing:.03em}.input:focus{box-shadow:0 0 0 3px #6e3a2833}.input::placeholder{color:var(--muted-light);font-weight:500}.field{display:flex;flex-direction:column;gap:8px}.field-label{font-family:var(--sans);font-size:11px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}.join{--join-floor-tile-w: clamp(380px, 75vmin, 860px);--join-floor-tile-h: clamp(320px, 54vmin, 600px);position:relative;flex:1;display:flex;flex-direction:column;width:100%;background-color:var(--cream);background-image:url(/textures/join-floor.png);background-size:var(--join-floor-tile-w) var(--join-floor-tile-h);background-repeat:repeat}[data-theme=dark] .join{background-color:var(--cream);background-image:radial-gradient(var(--cream-deep) 1.1px,transparent 1.2px);background-size:22px 22px;background-repeat:repeat}.join-inner{position:relative;z-index:1;width:100%;max-width:900px;margin:0 auto;padding:clamp(16px,3vh,36px) clamp(20px,5vw,40px);flex:1;display:flex;flex-direction:column;align-items:center;justify-content:safe center;text-align:center;gap:clamp(16px,2.6vh,28px)}.join-hero{display:flex;flex-direction:column;align-items:center;gap:4px}.join-ball{width:clamp(60px,12vw,88px);height:auto;margin-bottom:4px}.join-title{font-family:var(--display);font-weight:400;font-size:clamp(46px,11vw,112px);line-height:.85;letter-spacing:.015em;margin:0;color:var(--ink);transform:skew(-7deg);text-shadow:4px 5px 0 var(--hero-shadow)}.join-title-hog{color:inherit}.join-tag{font-family:var(--sans);font-weight:800;font-size:clamp(14px,2.6vw,24px);letter-spacing:.01em;line-height:1.2;text-transform:uppercase;color:var(--ink);margin:12px 0 0}.join-tag-hi{background:var(--highlight);color:var(--highlight-ink);padding:1px 8px;box-decoration-break:clone;-webkit-box-decoration-break:clone}.join-inner .field{width:100%;max-width:460px;text-align:left}.card-grid{width:100%;max-width:880px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.card-btn{font-family:var(--sans);font-weight:800;font-size:15px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink);background:var(--white);border:3px solid var(--ink);border-radius:var(--radius);box-shadow:5px 5px 0 var(--ink-shadow);cursor:pointer;padding:20px 14px;min-height:104px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;transition:transform 80ms ease,box-shadow 80ms ease}.card-btn:hover:not(:disabled){box-shadow:8px 8px 0 var(--ink-shadow)}.card-btn:active:not(:disabled){transform:translate(3px,3px);box-shadow:0 0 0 var(--ink-shadow)!important}.card-btn:disabled{color:var(--muted-light);border-color:var(--cream-deep);box-shadow:4px 4px 0 var(--cream-deep);cursor:not-allowed}.card-btn-primary{background:var(--orange);color:var(--on-accent)}.card-btn-primary:disabled{background:var(--cream-dark)}.card-btn-icon{display:flex}.card-btn-label{line-height:1.1}.join-row{display:flex;gap:10px;width:100%;max-width:460px}.join-row .input{flex:1;min-width:0;width:auto}.join-row .btn{width:auto;flex:0 0 auto}.input-code{font-family:var(--sans);font-weight:800;font-size:20px;letter-spacing:.15em;text-transform:uppercase;text-align:center;flex:1}.home-footer{margin-top:auto;width:100%;background:var(--surface-footer);color:var(--cream);padding:20px clamp(20px,5vw,44px) calc(20px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:10px 18px;flex-wrap:wrap}.home-footer-brand{font-family:var(--display);font-size:22px;letter-spacing:.04em;color:var(--on-accent);transform:skew(-6deg)}.home-footer-brand .logo-accent{color:var(--orange-light)}.home-footer-links{display:flex;align-items:center;gap:12px}.home-footer-link{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb,var(--on-accent) 65%,transparent);background:none;border:none;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.home-footer-link:hover{color:var(--cream)}@media (max-width: 640px){.card-grid{grid-template-columns:1fr;gap:12px}.card-btn{flex-direction:row;justify-content:space-between;min-height:0;padding:14px 18px;font-size:14px}.card-btn-icon{order:2}.card-btn-label{order:1}.home-footer{justify-content:center;text-align:center}}.join-invite{width:100%;max-width:460px;display:flex;flex-direction:column;gap:12px}.join-invite-card{pointer-events:none;cursor:default;min-height:0;padding:16px 18px;flex-direction:row;justify-content:space-between}.join-invite-card .card-btn-icon{order:2}.join-invite-card .card-btn-label{order:1}.invite-banner{background:var(--notice-bg);border:2px solid var(--notice-border);border-radius:var(--radius);padding:14px 16px;font-size:13px;font-weight:700;color:var(--ink);letter-spacing:.03em}.invite-banner strong{font-family:var(--serif);font-weight:900;color:var(--orange);letter-spacing:.1em}.howto{margin-top:4px}.howto-toggle{font-family:var(--sans);font-weight:700;font-size:13px;letter-spacing:.08em;color:var(--muted);background:none;border:none;padding:0;cursor:pointer;text-transform:uppercase;text-decoration:underline}.howto-toggle:hover{color:var(--ink)}.howto-steps{margin:10px 0 0;padding:0 0 0 20px;display:flex;flex-direction:column;gap:12px;font-size:14px;line-height:1.6;color:var(--muted)}.howto-steps strong{color:var(--ink)}.join-footer{margin-top:auto;padding-top:24px;display:flex;gap:8px;flex-wrap:wrap;font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--muted-light);text-transform:uppercase}.join-footer-dot{color:var(--cream-deep)}.lobby{flex:1;min-height:0;display:flex;flex-direction:column;padding:20px 20px calc(12px + env(safe-area-inset-bottom))}.lobby-body{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:16px;padding-bottom:6px}.code-card{display:flex;flex-direction:column;align-items:center;gap:4px;background:var(--black);border:3px solid var(--black);border-radius:var(--radius);padding:24px 20px 20px;box-shadow:6px 6px 0 var(--orange);text-align:center}.code-card-label{font-family:var(--sans);font-size:11px;font-weight:800;letter-spacing:.25em;text-transform:uppercase;color:var(--accent-on-dark);margin-bottom:4px}.code-card-code{font-family:var(--serif);font-weight:900;font-size:72px;line-height:1;letter-spacing:.1em;color:var(--on-accent)}.code-card-hint{font-family:var(--sans);font-size:12px;color:var(--muted-light);margin-top:6px}.btn-invite{margin-top:12px;background:var(--orange);border-color:var(--on-accent);color:var(--on-accent);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-invite:disabled{background:var(--orange);color:var(--on-accent);opacity:.7}.roster{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.roster-label{font-family:var(--sans);font-size:11px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}.roster-card{display:flex;align-items:center;gap:12px;background:var(--white);border:3px solid var(--black);border-radius:var(--radius);padding:14px 16px;transition:background .2s ease,box-shadow .2s ease}.roster-card.is-ready{background:var(--green);box-shadow:4px 4px 0 var(--ink-shadow)}.roster-card.is-gone{opacity:.4}.roster-num{font-family:var(--serif);font-size:16px;font-weight:900;color:var(--muted-light);min-width:28px}.roster-card.is-ready .roster-num{color:#ffffffb3}.roster-name{font-family:var(--sans);font-weight:800;font-size:16px;flex:1;display:flex;align-items:center;gap:8px;color:var(--ink)}.roster-card.is-ready .roster-name{color:var(--on-accent)}.tag{font-family:var(--sans);font-size:9px;font-weight:800;letter-spacing:.12em;padding:3px 8px;border-radius:2px;text-transform:uppercase}.tag-host{background:var(--orange);color:var(--on-accent)}.tag-you{background:var(--ink);color:var(--white)}.roster-status{font-family:var(--sans);font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-light)}.roster-status.ok{color:var(--on-accent)}.lobby-target{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 12px 5px;background:var(--white);border:3px solid var(--ink);border-radius:var(--radius);box-shadow:4px 4px 0 var(--ink-shadow);text-align:center}.lobby-target-label{font-family:var(--sans);font-size:10px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);line-height:1}.lobby-target-sublabel{font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.04em;color:var(--muted);line-height:1.2}.lobby-target-stepper{display:flex;align-items:center;gap:8px}.lobby-target-btn{width:38px;height:38px;font-family:var(--sans);font-size:20px;font-weight:800;line-height:1;color:var(--ink);background:var(--cream);border:3px solid var(--black);border-radius:var(--radius);cursor:pointer;transition:background .12s ease}.lobby-target-btn:hover:not(:disabled){background:var(--cream-dark)}.lobby-target-btn:disabled{opacity:.35;cursor:not-allowed}.lobby-target-value{font-family:var(--serif);font-weight:900;font-size:28px;line-height:1;color:var(--ink);min-width:36px;text-align:center}.lobby-target-value-readonly{font-size:32px}.lobby-actions{flex-shrink:0;display:flex;flex-direction:column;gap:10px;padding-top:8px;border-top:3px solid var(--cream-deep);background:var(--cream)}.lobby-wait{text-align:center;color:var(--muted);font-weight:600;font-size:14px;margin:4px 0}.lobby-wait-dots{font-family:var(--sans);font-size:28px;font-weight:800;letter-spacing:.15em;line-height:1;margin:0;animation:lobby-wait-pulse 1.6s ease-in-out infinite}@keyframes lobby-wait-pulse{0%,to{opacity:.35}50%{opacity:1}}.scoreboard-wrap{background:var(--white);border:3px solid var(--ink);border-radius:var(--radius);box-shadow:6px 6px 0 var(--ink-shadow);overflow:hidden}.scoreboard-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 16px;background:var(--cream-dark);border-bottom:3px solid var(--ink)}.scoreboard-head-title{font-family:var(--sans);font-weight:800;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink)}.scoreboard-head-room{font-family:var(--sans);font-weight:800;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--on-accent);background:var(--ink);padding:4px 8px;border-radius:var(--radius)}.scoreboard{list-style:none;margin:0;display:flex;flex-direction:column;gap:8px;padding:14px;background:transparent}.score-chip{display:flex;flex-direction:column;align-items:stretch;background:var(--cream);border:2px solid var(--black);border-radius:var(--radius);padding:10px 14px;font-size:12px;font-weight:700;letter-spacing:.03px;text-transform:uppercase;transition:border-color .2s ease}.score-chip.is-me{border-color:var(--orange)}.score-chip.is-gone{opacity:.35}.score-chip.has-answered{border-color:var(--green)}.score-chip.has-skipped{opacity:.5}.score-chip-row{display:flex;align-items:center;gap:8px;width:100%}.score-chip-name{flex:1;font-family:var(--sans);font-size:12px;font-weight:800;color:var(--ink)}.score-chip-pts{font-family:var(--serif);font-weight:900;font-size:22px;color:var(--ink);min-width:16px;text-align:right}.thermo{width:100%;height:6px;background:var(--cream-deep);border:1.5px solid var(--black);border-radius:1px;overflow:hidden;margin-top:7px;position:relative}.thermo-fill{height:100%;border-radius:0;transition:width .6s cubic-bezier(.34,1.56,.64,1)}.thermo-label{font-family:var(--sans);font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin-top:4px;color:var(--muted)}.game{display:flex;flex-direction:column;flex:1}.game-court{padding:16px 20px calc(28px + env(safe-area-inset-bottom));display:flex;flex-direction:column;flex:1;gap:14px}.game-rail{display:flex;flex-direction:column;gap:14px;order:-1}.game-meta{display:flex;align-items:center;justify-content:flex-start}.round-label{font-family:var(--sans);font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--on-accent);background:var(--orange);padding:6px 12px;border-radius:var(--radius)}.shotclock-card{display:flex;flex-direction:column;align-items:center;gap:10px;padding:18px 16px 20px;background:var(--white);border:3px solid var(--ink);border-radius:var(--radius);box-shadow:6px 6px 0 var(--ink-shadow)}.shotclock-label{font-family:var(--sans);font-weight:800;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}.shot-clock{font-family:var(--serif);font-weight:900;font-size:56px;line-height:1;color:var(--orange);font-variant-numeric:tabular-nums}.shotclock-card.is-low .shot-clock,.shot-clock.is-low{color:var(--red)}.shotclock-bar{width:100%;height:8px;background:var(--cream-deep);border:2px solid var(--ink);border-radius:2px;overflow:hidden}.shotclock-bar-fill{height:100%;background:var(--orange);transition:width .12s linear}.shotclock-card.is-low .shotclock-bar-fill{background:var(--red)}[data-theme=dark] .score-chip-pts,[data-theme=dark] .score-chip-name{color:var(--on-accent)}[data-theme=dark] .scoreboard-head-room{background:var(--surface-ink);color:var(--on-accent)}[data-theme=dark] .scoreboard-wrap,[data-theme=dark] .shotclock-card{border-color:var(--edge-on-surface)}[data-theme=dark] .scoreboard-head{border-bottom-color:var(--track-edge)}[data-theme=dark] .score-chip{border-color:var(--track-edge);background:var(--cream-dark)}[data-theme=dark] .input,[data-theme=dark] .search-results{border-color:var(--track-edge);background:#221c16;color:var(--on-accent)}[data-theme=dark] .input::placeholder{color:var(--muted);opacity:1}[data-theme=dark] .thermo,[data-theme=dark] .shotclock-bar{background:var(--track-empty);border-color:var(--track-edge)}[data-theme=dark] .shotclock-label{color:var(--muted)}[data-theme=dark] .shot-clock{color:var(--accent-on-dark)}[data-theme=dark] .shotclock-card.is-low .shot-clock,[data-theme=dark] .shot-clock.is-low{color:var(--red)}.next-round-card{display:flex;flex-direction:column;gap:10px;padding:16px;background:var(--white);border:3px solid var(--ink);border-radius:var(--radius);box-shadow:6px 6px 0 var(--ink-shadow)}.next-round-label{font-family:var(--sans);font-weight:800;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}.recycle-note{text-align:center;color:var(--muted);font-size:12px;font-weight:600}.game-countdown{display:flex;flex-direction:column;flex:1;width:100%}.countdown{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(16px,3vh,24px);background:var(--black);padding:40px 20px}.countdown-round{font-family:var(--sans);font-weight:800;font-size:clamp(20px,4.5vw,30px);letter-spacing:.28em;text-transform:uppercase;color:var(--muted-light)}.countdown-num{font-family:var(--serif);font-weight:900;font-size:160px;line-height:1;color:var(--accent-on-dark);animation:pop .9s ease-out}@keyframes pop{0%{transform:scale(1.45);opacity:0}25%{transform:scale(1);opacity:1}}.countdown-hint{font-family:var(--sans);font-weight:700;font-size:clamp(18px,3.8vw,26px);letter-spacing:.18em;text-transform:uppercase;color:var(--muted-light)}.play,.play-controls{display:flex;flex-direction:column;gap:12px}.clue-card{position:relative;border:3px solid var(--black);border-radius:4px;height:260px;overflow:hidden;box-shadow:6px 6px 0 var(--orange);animation:slam .2s ease-out}@keyframes slam{0%{transform:scale(1.04)}to{transform:scale(1)}}.clue-card-photo{background:#0e0e20;display:flex;align-items:center;justify-content:center}.clue-photo{height:100%;width:100%;object-fit:contain;user-select:none;-webkit-user-select:none}.silhouette{position:absolute;inset:auto 0 0 0;margin:0 auto;height:88%;fill:#060614e6}.clue-jersey{position:absolute;top:10px;right:14px;font-family:var(--serif);font-weight:900;font-size:56px;line-height:1;color:#ffffffe6}.clue-colorname{position:absolute;top:14px;left:14px;font-family:var(--sans);font-weight:800;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#ffffffd9;background:#00000080;padding:4px 9px;border-radius:2px}.difficulty-badge{position:absolute;top:12px;left:12px;background:var(--black);border:2px solid var(--orange);padding:4px 10px;border-radius:2px;font-family:var(--sans);font-size:10px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--orange)}.search{position:relative}.search-input{font-size:15px;font-weight:600}.search-results{list-style:none;margin:4px 0 0;padding:0;position:absolute;inset-inline:0;z-index:5;background:var(--white);border:3px solid var(--black);border-radius:var(--radius);max-height:min(280px,40vh);overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;box-shadow:4px 4px 0 var(--ink-shadow)}.search-item{display:block;width:100%;text-align:left;font-family:var(--sans);font-weight:700;font-size:15px;color:var(--ink);background:none;border:none;border-bottom:1px solid var(--cream-dark);padding:13px 16px;cursor:pointer;transition:background 80ms ease}.search-item.is-active,.search-item:hover{background:var(--cream)}.locked{text-align:center;border:3px solid var(--black);border-radius:var(--radius);padding:20px 16px;background:var(--cream-dark)}.locked-title{font-family:var(--sans);font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--green);margin:0;font-size:14px}.locked-pick{font-family:var(--serif);font-size:20px;font-weight:900;margin:8px 0 4px;color:var(--ink)}.locked-wait{color:var(--muted);font-size:13px;font-weight:600;margin:0}.btn-skip{font-size:14px;padding:12px 16px}.result{display:flex;flex-direction:column;gap:14px;padding:20px}.result-banner{display:flex;align-items:center;gap:12px;border:3px solid var(--black);border-radius:var(--radius);padding:14px 20px;box-shadow:4px 4px 0 var(--ink-shadow)}.result-banner-correct{background:var(--green)}.result-banner-missed{background:var(--cream-dark)}.result-callout{font-family:var(--sans);font-size:11px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;margin:0}.result-banner-correct .result-callout{color:#fffc}.result-banner-missed .result-callout{color:var(--muted)}.result-subhead{font-family:var(--serif);font-size:20px;font-weight:900;margin:2px 0 0}.result-banner-correct .result-subhead{color:var(--on-accent)}.result-banner-missed .result-subhead{color:var(--ink)}.result-ms{font-family:var(--sans);font-size:12px;font-weight:700;color:#ffffffb3}.result .clue-card{height:200px}.result-player-card{background:var(--ink);border:3px solid var(--black);border-radius:4px;overflow:hidden;box-shadow:6px 6px 0 var(--orange)}.result-player-info{padding:16px 20px;border-top:3px solid var(--orange)}.result-name{font-family:var(--serif);font-weight:900;font-size:28px;line-height:1;margin:0;color:var(--on-accent)}.result-meta{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-on-dark);margin-top:4px}.result-stats{display:flex;gap:8px}.result-stat{flex:1;background:var(--white);border:2px solid var(--black);border-radius:var(--radius);padding:12px 10px;text-align:center}.result-stat-label{font-family:var(--sans);font-size:10px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}.result-stat-val{font-family:var(--serif);font-size:22px;font-weight:900;color:var(--ink);margin-top:2px}.result-answers{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;text-align:left}.result-answers li{display:flex;align-items:center;gap:10px;background:var(--white);border:2px solid var(--black);border-radius:var(--radius);padding:10px 14px;font-size:13px;font-weight:600}.result-answers li.ok{border-color:var(--green)}.result-answer-mark{width:16px;font-weight:800}.result-answers .ok .result-answer-mark{color:var(--green)}.result-answers .miss .result-answer-mark{color:var(--red)}.result-answer-nick{text-transform:uppercase;min-width:72px;font-weight:800;color:var(--ink)}.result-answer-pick{flex:1;color:var(--muted)}.result-answer-ms{font-variant-numeric:tabular-nums;color:var(--muted-light);font-size:11px;font-weight:700}.solo-round-counter{font-family:var(--sans);font-weight:800;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:0;text-align:center}.next-bar{height:3px;background:var(--orange);border-radius:0;animation:drain var(--result-ms, 3s) linear forwards;transform-origin:left}@keyframes drain{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.win{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px 20px calc(28px + env(safe-area-inset-bottom));text-align:center}.win-rank-card{background:var(--black);border:3px solid var(--black);border-radius:var(--radius);padding:28px 24px;text-align:center;box-shadow:8px 8px 0 var(--orange);width:100%}.win-kicker{font-family:var(--sans);font-weight:800;letter-spacing:.25em;font-size:11px;text-transform:uppercase;color:var(--accent-on-dark);margin:0 0 6px}.win-name{font-family:var(--serif);font-weight:900;font-size:clamp(38px,13vw,72px);line-height:.9;margin:0;text-transform:uppercase;color:var(--accent-on-dark);overflow-wrap:anywhere}.win-sub{font-family:var(--serif);font-weight:900;font-size:22px;margin:8px 0 0;color:var(--on-accent)}.win-desc{font-family:var(--sans);font-size:13px;color:var(--muted-light);margin-top:6px;font-style:italic}.win .scoreboard{width:100%;margin-top:8px}.win .scoreboard-wrap{order:1;width:100%}.win-actions{display:flex;flex-direction:column;gap:10px;width:100%}.win-feedback-prompt{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin-top:2px}.win-feedback-text{font-family:var(--sans);font-size:12px;color:var(--muted);margin:0}.win-feedback-link{color:var(--muted);font-weight:700;text-decoration:underline;text-underline-offset:3px}.win-feedback-link:hover{color:var(--ink)}.win-feedback-dismiss{background:none;border:none;color:var(--muted);font-size:18px;line-height:1;cursor:pointer;padding:0 4px;opacity:.7}.win-feedback-dismiss:hover{opacity:1;color:var(--ink)}.reconnect-banner{position:fixed;top:0;left:0;right:0;background:var(--red);color:var(--on-accent);font-family:var(--sans);font-weight:800;font-size:12px;letter-spacing:.25em;text-align:center;padding:8px 0 calc(8px + env(safe-area-inset-top)*.3);z-index:60;animation:slide-down .25s ease-out;text-transform:uppercase}@keyframes slide-down{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.toast{position:fixed;bottom:calc(20px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);background:var(--black);color:var(--white);font-family:var(--sans);font-weight:800;font-size:13px;padding:12px 20px;border-radius:var(--radius);border:3px solid var(--orange);box-shadow:4px 4px 0 var(--orange);z-index:50;max-width:90vw;text-transform:uppercase;letter-spacing:.06em}.overlay-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:35;display:flex}.overlay{flex:1;width:100%;max-width:460px;min-height:0;margin:0 auto;background:var(--cream);display:flex;flex-direction:column;animation:slide-up .22s cubic-bezier(.22,1,.36,1)}.overlay-back-desktop{display:none}.overlay-back-mobile{display:flex}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.overlay-header{background:var(--surface-ink);border-bottom:3px solid var(--orange);padding:10px 14px;display:flex;align-items:center;gap:8px;flex-shrink:0}.overlay-back{color:var(--muted-light)}.overlay-back:hover{color:var(--on-accent)}.overlay-title{font-family:var(--sans);font-size:12px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--on-accent);flex:1}.overlay-spacer{width:36px;flex-shrink:0}.overlay-body{flex:1;overflow-y:auto;padding:24px 20px calc(32px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:24px}.howto-page-steps{display:flex;flex-direction:column;gap:20px}.howto-page-step{display:flex;gap:16px;align-items:flex-start}.howto-page-num{font-family:var(--serif);font-weight:900;font-size:28px;line-height:1;color:var(--orange);flex-shrink:0;min-width:40px}.howto-page-title{font-family:var(--sans);font-weight:800;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);margin-bottom:4px}.howto-page-desc{font-family:var(--sans);font-size:14px;line-height:1.6;color:var(--muted);margin:0}.howto-section{display:flex;flex-direction:column;gap:12px}.howto-section-label{font-family:var(--sans);font-size:10px;font-weight:800;letter-spacing:.25em;text-transform:uppercase;color:var(--muted);border-bottom:2px solid var(--cream-deep);padding-bottom:8px}.howto-tips-list{margin:0;padding:0 0 0 20px;display:flex;flex-direction:column;gap:8px;font-family:var(--sans);font-size:14px;line-height:1.5;color:var(--muted)}.rating-list{display:flex;flex-direction:column;gap:6px}.rating-row{display:flex;align-items:center;gap:12px;background:var(--white);border:2px solid var(--cream-deep);border-radius:var(--radius);padding:10px 14px}.rating-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.rating-label{font-family:var(--sans);font-weight:800;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);flex:1}.rating-range{font-family:var(--serif);font-weight:700;font-size:13px;color:var(--muted)}.about-hero{text-align:center;padding:8px 0}.about-logo{font-family:var(--serif);font-weight:900;font-size:52px;line-height:1;color:var(--ink);letter-spacing:.02em}.about-tagline{font-family:var(--sans);font-size:13px;font-weight:700;color:var(--orange);margin:8px 0 0;text-transform:uppercase;letter-spacing:.08em}.about-section{display:flex;flex-direction:column;gap:6px}.about-section-title{font-family:var(--sans);font-size:10px;font-weight:800;letter-spacing:.25em;text-transform:uppercase;color:var(--orange)}.about-section-text{font-family:var(--sans);font-size:14px;line-height:1.65;color:var(--ink);margin:0}.terms-disclaimer{font-family:var(--sans);font-size:12px;line-height:1.55;color:var(--muted);margin:0;padding:12px 14px;background:var(--notice-bg);border:2px solid var(--notice-border);border-radius:var(--radius)}.terms-updated{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-light);margin:0}.settings-section-label{font-family:var(--sans);font-size:10px;font-weight:800;letter-spacing:.25em;text-transform:uppercase;color:var(--muted);border-bottom:2px solid var(--cream-deep);padding-bottom:8px;margin-bottom:-8px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--white);border:2px solid var(--cream-deep);border-radius:var(--radius);padding:16px;cursor:pointer;width:100%;text-align:left;font-family:inherit;transition:border-color .12s ease}.settings-row:hover{border-color:var(--orange)}a.settings-row{text-decoration:none;color:inherit}.settings-row-external{font-family:var(--sans);font-size:16px;font-weight:800;color:var(--muted);flex-shrink:0}.settings-row-text{display:flex;flex-direction:column;gap:2px}.settings-row-label{font-family:var(--sans);font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}.settings-row-desc{font-family:var(--sans);font-size:12px;color:var(--muted);font-weight:500}.toggle{width:44px;height:26px;background:var(--cream-deep);border:2px solid var(--black);border-radius:13px;position:relative;flex-shrink:0;transition:background .2s ease,border-color .2s ease}.toggle-on{background:var(--orange);border-color:var(--orange)}.toggle-knob{position:absolute;top:2px;left:2px;width:18px;height:18px;background:var(--white);border-radius:50%;box-shadow:0 1px 3px #0003;transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.toggle-on .toggle-knob{transform:translate(18px)}@media (max-width: 759px){.game-court{gap:12px}.game-rail{gap:10px}.scoreboard-head{padding:9px 14px}.scoreboard{padding:10px;gap:6px}.score-chip{padding:8px 12px}.shotclock-card{flex-direction:row;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:6px 12px;padding:10px 16px 12px}.shot-clock{font-size:34px}.shotclock-bar{flex-basis:100%}.play .clue-card{height:min(260px,38dvh)}.game-guessing .game-rail{display:contents}.game-guessing .shotclock-card{order:-1}.game-guessing .scoreboard-wrap{order:1}.game-result .game-rail{display:contents}.game-result .next-round-card{order:-1}.game-result .scoreboard-wrap{order:1}}@media (min-width: 760px){.overlay-scrim{align-items:center;justify-content:center;padding:48px;background:#0c09058c;animation:scrim-in .16s ease-out}[data-theme=dark] .overlay-scrim{background:#000000a8}.overlay{flex:0 1 auto;width:100%;max-width:540px;max-height:min(86vh,780px);margin:0;border:3px solid var(--ink);border-radius:4px;box-shadow:12px 12px 0 var(--orange);overflow:hidden;animation:modal-in .2s cubic-bezier(.22,1,.36,1)}.overlay-back-mobile{display:none}.overlay-back-desktop{display:flex}.overlay-body{padding:28px 32px 32px}.game{max-width:1080px}.game-playing{display:grid;grid-template-columns:minmax(0,1fr) clamp(300px,30%,360px);align-items:start;column-gap:28px;padding:32px clamp(24px,4vw,40px) 56px}.game-court{grid-column:1;padding:0;gap:18px}.game-rail{grid-column:2;order:0;gap:20px;position:sticky;top:24px}.play .clue-card{height:440px}.game-playing .search-input,.game-playing .btn-skip{box-shadow:4px 4px 0 var(--ink-shadow)}.countdown{padding:80px 40px}.countdown-num{font-size:220px}.game-court .result{padding:0;gap:16px}.result .clue-card{height:360px}}.dev-review{width:100%;max-width:460px;margin-inline:auto;min-height:100dvh;display:flex;flex-direction:column;padding:16px;gap:20px}.dev-review-panel{display:flex;flex-direction:column;gap:16px;padding:24px 8px}.dev-review-title{font-family:var(--display);font-size:32px;letter-spacing:.04em;margin:0}.dev-review-muted{color:var(--muted);font-size:15px;line-height:1.5;margin:0}.dev-review-muted code{font-family:var(--sans);font-weight:700;font-size:13px;background:var(--cream-dark);padding:2px 6px;border:2px solid var(--black);border-radius:var(--radius)}.dev-review-header{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.dev-review-back{font-size:22px;font-weight:700;line-height:1}.dev-review-progress{font-family:var(--display);font-size:22px;letter-spacing:.06em;flex:1}.dev-review-skip{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--muted);cursor:pointer}.dev-review-skip input{width:18px;height:18px;accent-color:var(--orange)}.dev-review-card{display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 16px;background:var(--white);border:3px solid var(--black);border-radius:var(--radius);box-shadow:6px 6px 0 var(--ink-shadow)}.dev-review-headshot{width:min(280px,72vw);height:auto;aspect-ratio:1;object-fit:cover;border:3px solid var(--black);border-radius:var(--radius);background:var(--cream-dark)}.dev-review-name{font-family:var(--display);font-size:clamp(28px,8vw,36px);letter-spacing:.03em;text-align:center;margin:0;line-height:1.1}.dev-review-meta{font-size:13px;font-weight:700;letter-spacing:.08em;color:var(--muted);margin:0;text-align:center}.dev-review-badge{font-size:12px;font-weight:700;letter-spacing:.1em;padding:6px 12px;border:2px solid var(--black);border-radius:var(--radius)}.dev-review-badge-remove{background:var(--red);color:var(--on-accent)}.dev-review-difficulty{display:flex;flex-direction:column;gap:12px}.dev-review-difficulty-label{font-size:13px;font-weight:700;letter-spacing:.1em;display:flex;justify-content:space-between;align-items:baseline}.dev-review-difficulty-value{font-family:var(--display);font-size:28px;letter-spacing:.04em}.dev-review-slider{width:100%;height:12px;accent-color:var(--orange);cursor:pointer}.dev-review-stepper{display:flex;gap:10px}.dev-review-stepper .btn{flex:1}.dev-review-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dev-review-keep{min-height:64px;font-size:22px}.dev-review-remove{min-height:64px;font-size:22px;background:var(--red);color:var(--on-accent);box-shadow:4px 4px 0 var(--ink-shadow)}.dev-review-remove:hover:not(:disabled){box-shadow:6px 6px 0 var(--ink-shadow)}.dev-review-nav{display:flex;gap:10px}.dev-review-nav .btn{flex:1}.dev-review-notice{font-size:13px;font-weight:700;letter-spacing:.06em;color:var(--black);text-align:center;padding:10px;border:2px solid var(--black);border-radius:var(--radius);background:var(--cream);animation:dev-review-notice-in .2s ease-out}@keyframes dev-review-notice-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.dev-review-error{font-size:13px;font-weight:700;color:var(--red);text-align:center;padding:10px;border:2px solid var(--red);border-radius:var(--radius);background:color-mix(in srgb,var(--red) 8%,transparent)}@keyframes scrim-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{transform:translateY(16px) scale(.97);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}
