:root{--navy: #1b0e52;--navy-deep: #0f0733;--royal: #2a3bb0;--cyan: #34c6f4;--cyan-bright: #29c5f6;--cyan-deep: #1aa9da;--answer-bg: #eef8fd;--answer-ink: #160a40;--white: #ffffff;--good: #3bbf6b;--warn: #e69a00;--danger: #e0534f;--radius: 18px;--radius-lg: 26px;--shadow: 0 10px 30px rgba(10, 4, 40, .18);--shadow-card: 0 8px 20px rgba(10, 4, 40, .16);--font: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--page-bg: #f3f9fe;--page-bg-grad: radial-gradient(1100px 560px at 50% -12%, #dcf1fb, transparent 60%), radial-gradient(800px 460px at 100% 112%, #e8e3ff, transparent 55%);--text: #1a0e3f;--subtle: #6b6690;--surface: #ffffff;--surface-2: #eef5fb;--surface-border: rgba(26, 14, 63, .1);--input-bg: #ffffff;--input-border: rgba(26, 14, 63, .18);--track: rgba(26, 14, 63, .12);--shadow: 0 10px 30px rgba(10, 4, 40, .12);--shadow-card: 0 8px 18px rgba(10, 4, 40, .12)}[data-theme=dark]{--page-bg: #160a40;--page-bg-grad: radial-gradient(1200px 600px at 50% -10%, #1f0f5e, transparent 60%), radial-gradient(900px 500px at 100% 110%, #2a1670, transparent 55%);--text: #ffffff;--subtle: #9a93c9;--surface: rgba(255, 255, 255, .05);--surface-2: rgba(255, 255, 255, .08);--surface-border: rgba(255, 255, 255, .1);--input-bg: rgba(255, 255, 255, .06);--input-border: rgba(255, 255, 255, .16);--track: rgba(255, 255, 255, .14);--shadow: 0 10px 30px rgba(0, 0, 0, .35);--shadow-card: 0 8px 20px rgba(0, 0, 0, .28)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);color:var(--text);background:var(--page-bg-grad),var(--page-bg);background-attachment:fixed;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior:none;transition:background-color .25s ease,color .25s ease}button{font-family:inherit}:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}.app{height:100dvh;max-height:100dvh;overflow-y:auto;display:flex;flex-direction:column;align-items:center;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom))}.screen.home{height:100%;overflow:hidden}.screen.home .center{gap:10px;justify-content:flex-start;padding-top:4px}.screen.home .field{gap:6px}.screen.home input.text{padding:13px 16px}.screen.home input.code{font-size:22px}.screen.home .btn{min-height:50px;padding:13px 20px}.screen.home .segmented{padding:5px}.screen.home .segmented button{padding:9px 8px}.screen.home .adult{margin:0}.screen.home .topbar{flex:0 0 auto}.home-logo-wrap{display:flex;justify-content:center;margin-bottom:22px}.home-logo{width:min(380px,86%);height:auto;display:block}.screen{width:100%;max-width:540px;margin:0 auto;flex:1;display:flex;flex-direction:column;gap:18px}.center{flex:1;display:flex;flex-direction:column;justify-content:center;gap:18px}.spacer{flex:1}h1,h2,h3{margin:0;line-height:1.05}.display{font-weight:900;letter-spacing:-.02em;font-size:clamp(28px,8vw,44px);text-transform:uppercase}.subtle{color:var(--subtle)}.muted{opacity:.7}.tag{display:inline-block;color:var(--cyan-deep);font-weight:800;letter-spacing:.22em;text-transform:uppercase;font-size:13px}[data-theme=dark] .tag{color:var(--cyan)}.hint{font-size:14px;color:var(--subtle)}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;cursor:pointer;font-weight:800;font-size:18px;padding:16px 22px;border-radius:var(--radius);background:var(--cyan);color:var(--navy-deep);box-shadow:0 6px 0 var(--cyan-deep);transition:transform .08s ease,box-shadow .08s ease,opacity .15s;width:100%;min-height:56px}.btn:active{transform:translateY(4px);box-shadow:0 2px 0 var(--cyan-deep)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:0 6px 0 var(--cyan-deep)}.btn.secondary{background:transparent;color:var(--text);border:2px solid var(--surface-border);box-shadow:none}.btn.secondary:active{transform:translateY(2px)}.btn.ghost{background:var(--surface-2);color:var(--text);box-shadow:none}.btn.small{font-size:15px;padding:10px 16px;min-height:0;width:auto}.btn.danger{background:var(--danger);color:#fff;box-shadow:0 6px #b5413d}.row{display:flex;gap:12px}.row>*{flex:1}.field{display:flex;flex-direction:column;gap:8px}.field label{font-weight:700;font-size:14px;color:var(--subtle)}input.text{width:100%;padding:16px 18px;font-size:18px;font-weight:600;border-radius:var(--radius);border:2px solid var(--input-border);background:var(--input-bg);color:var(--text)}input.text::placeholder{color:var(--subtle);opacity:.7}input.code{letter-spacing:.4em;text-transform:uppercase;text-align:center;font-weight:800;font-size:26px}input[type=range]{accent-color:var(--cyan);width:100%;height:28px}.segmented{display:flex;gap:6px;padding:6px;background:var(--surface-2);border-radius:var(--radius);border:1px solid var(--surface-border)}.segmented button{flex:1;border:none;cursor:pointer;padding:12px 10px;border-radius:12px;font-weight:800;font-size:15px;background:transparent;color:var(--text)}.segmented button.on{background:var(--cyan);color:var(--navy-deep);box-shadow:var(--shadow-card)}.segmented .sub{display:block;font-size:11px;font-weight:600;opacity:.75}.segmented.compact button{padding:8px 10px;font-size:13px}.settings-list{display:flex;flex-direction:column;gap:14px}.settings-field{display:flex;flex-direction:column;gap:6px}.settings-field label{font-weight:700;font-size:14px;color:var(--subtle)}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-weight:700;font-size:14px}.panel{background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-lg);padding:18px;box-shadow:var(--shadow-card)}[data-theme=dark] .panel{box-shadow:none}.banner{border-radius:var(--radius);padding:10px 14px;font-size:13px;line-height:1.4;font-weight:600;text-align:center}.banner.error{background:#e0534f24;color:#b23b37;border:1px solid rgba(224,83,79,.4)}.banner.info{background:#34c6f424;color:#1483a8;border:1px solid rgba(52,198,244,.35)}[data-theme=dark] .banner.error{color:#ffd4d4}[data-theme=dark] .banner.info{color:#cdeffb}.card{position:relative;border-radius:20px;padding:22px 20px;overflow:hidden;box-shadow:var(--shadow-card);font-weight:800;line-height:1.2;isolation:isolate}.card.headline{background:linear-gradient(160deg,#25149a 0%,var(--navy) 70%);color:#fff;font-size:clamp(17px,5vw,28px);line-height:1.5}.card.headline .blank{color:var(--cyan);border-bottom:4px solid var(--cyan);padding:0 2px;font-weight:900}.card.headline .blank.empty{display:inline-block;min-width:3.4em;vertical-align:bottom}.card.answer{background:var(--answer-bg);color:var(--answer-ink);font-size:clamp(15px,4.3vw,22px);border:1px solid rgba(0,0,0,.05);display:flex;flex-direction:column;justify-content:center;min-height:56px;height:auto;padding:14px 18px}.card.answer .def{display:block;margin-top:8px;font-size:12px;font-weight:600;opacity:.6}.card.mini{padding:14px 16px;font-size:16px;border-radius:16px}.card.pick{cursor:pointer;transition:transform .1s ease,box-shadow .1s ease;outline:3px solid transparent}.card.pick:active{transform:scale(.98)}.card.pick.selected{outline:4px solid var(--cyan);box-shadow:0 0 0 4px #34c6f440,var(--shadow-card)}.card .order-badge{position:absolute;top:10px;right:12px;width:30px;height:30px;border-radius:50%;background:var(--cyan);color:var(--navy-deep);display:grid;place-items:center;font-weight:900}.card.winner-card{outline:4px solid var(--good);box-shadow:0 0 0 5px #3bbf6b40,var(--shadow-card)}.hand{display:grid;grid-template-columns:1fr;gap:12px;align-content:start;grid-auto-rows:max-content}@media (min-width: 460px){.hand{grid-template-columns:1fr 1fr}}.card.answer .ans{display:block}.card.answer .ans+.ans{margin-top:10px;padding-top:10px;border-top:1px dashed rgba(26,14,63,.18)}.card.answer .ans-num{display:inline-grid;place-items:center;width:20px;height:20px;margin-right:8px;border-radius:50%;background:var(--cyan);color:var(--navy-deep);font-size:12px;font-weight:900;vertical-align:middle}@media (max-width: 389.98px){.card.mini{font-size:14px}.card.answer .def{font-size:10px}}.actionbar{position:sticky;bottom:0;padding-top:12px;background:linear-gradient(transparent,var(--page-bg) 40%)}.answerscreen{height:100%;overflow:hidden}.answerscreen>*{flex:0 0 auto}.answerscreen .hand{flex:1 1 auto;min-height:0;overflow-y:auto;padding:2px 2px 4px}.answerscreen .center{flex:1 1 auto;min-height:0;overflow-y:auto}.players{display:flex;flex-wrap:wrap;gap:10px}.pchip{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--surface-border);border-radius:999px;padding:8px 14px 8px 10px;font-weight:700}.pchip .dot{width:10px;height:10px;border-radius:50%;background:var(--good)}.pchip .dot.off{background:#b3aecb}.avatar{position:relative;display:inline-block;flex:0 0 auto;border-radius:4px;overflow:visible}.avatar svg,.avatar img,.avatar>span{display:block;border-radius:4px;border:1px solid var(--surface-border)}.avatar.away{opacity:.5}.avatar .presence{position:absolute;bottom:-2px;right:-2px;width:9px;height:9px;border-radius:50%;background:var(--good);border:2px solid var(--surface)}.avatar .presence.off{background:#b3aecb}.scorerow .avatar .presence{border-color:var(--surface-2)}.pchip .score{background:var(--cyan);color:var(--navy-deep);border-radius:999px;min-width:24px;height:24px;display:grid;place-items:center;font-weight:900;font-size:13px;padding:0 6px}.pchip .badge{font-size:11px;color:var(--navy-deep);background:var(--warn);padding:2px 7px;border-radius:999px;font-weight:800}.pchip.you{border-color:var(--cyan)}.pchip.reporter{background:#e69a0026;border-color:var(--warn)}.pchip .check{color:var(--good);font-weight:900}.myrow{display:flex;align-items:center;gap:10px}.myrow .pchip{flex:0 1 90%;min-width:0}.myrow .pname{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.myrow .pchip .badge,.myrow .pchip .score{flex:0 0 auto}.othercount{margin-left:auto;flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;font-weight:800;color:var(--cyan-deep);background:none;border:none;cursor:pointer;padding:6px 4px}[data-theme=dark] .othercount{color:var(--cyan)}.othercount:hover{text-decoration:underline}.othercount:active{transform:scale(.95)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0a04288c;display:flex;align-items:center;justify-content:center;padding:20px}.modal{width:100%;max-width:420px;max-height:80dvh;display:flex;flex-direction:column;background:var(--page-bg);color:var(--text);border:1px solid var(--surface-border);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--surface-border)}.modal-body{padding:16px 18px;overflow-y:auto}.modal-close{background:var(--surface-2);border:none;cursor:pointer;color:var(--text);width:36px;height:36px;border-radius:10px;display:grid;place-items:center}.modal-close:active{transform:scale(.94)}.scoreboard{display:flex;flex-direction:column;gap:8px}.scorerow{display:flex;align-items:center;gap:12px;background:var(--surface-2);border-radius:14px;padding:10px 14px}.scorerow .name{flex:1;font-weight:700}.scorerow .pts{font-weight:900;color:var(--cyan-deep);font-size:20px}[data-theme=dark] .scorerow .pts{color:var(--cyan)}.scorerow.lead{background:#e69a0029;border:1px solid rgba(230,154,0,.4)}.gamerow{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--surface-border);border-radius:16px;padding:14px 16px;box-shadow:var(--shadow-card)}[data-theme=dark] .gamerow{box-shadow:none}.gamerow .meta{flex:1;min-width:0}.gamerow .meta .title{font-weight:800}.gamerow .meta .sub{font-size:13px;color:var(--subtle)}.listhead{display:flex;align-items:center;gap:10px}.listhead .hint{flex:0 1 75%}.refreshlink{margin-left:auto;flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;background:none;border:none;cursor:pointer;padding:4px 2px;font-weight:800;font-size:14px;white-space:nowrap;color:var(--cyan-deep)}.refreshlink:hover{text-decoration:underline}[data-theme=dark] .refreshlink{color:var(--cyan)}.refreshlink:disabled{color:var(--subtle);cursor:default;text-decoration:none}.timer{display:flex;align-items:center;gap:10px;font-weight:800}.timer .bar{flex:1;height:10px;border-radius:999px;background:var(--track);overflow:hidden}.timer .bar>span{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),#7be0ff);border-radius:999px;transition:width 1s linear}.timer.low .bar>span{background:linear-gradient(90deg,#ff7a7a,#ffb24d)}.timer .num{width:34px;text-align:right;font-variant-numeric:tabular-nums}.logo{display:flex;align-items:center;gap:12px}.logo svg{display:block}.wordmark{display:flex;flex-direction:column;line-height:.92}.wordmark .the{color:var(--subtle);font-weight:800;font-size:13px;letter-spacing:.12em}.wordmark .sq,.wordmark .wh{font-weight:900;font-size:22px;letter-spacing:-.01em}.brandhead{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px}.header-logo{height:76px;width:auto;max-width:84%;display:block}.logo-dark,[data-theme=dark] .logo-light{display:none}[data-theme=dark] .logo-dark{display:block}.topbar{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px}.themetoggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;border:1px solid var(--surface-border);background:var(--surface);color:var(--text);width:44px;height:44px;border-radius:50%;font-size:20px;display:grid;place-items:center;box-shadow:var(--shadow-card)}[data-theme=dark] .themetoggle{box-shadow:none}.themetoggle:active{transform:scale(.94)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.waiting{text-align:center;display:flex;flex-direction:column;gap:12px;align-items:center}.pulse{animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}.pop{animation:pop .4s cubic-bezier(.2,1.4,.5,1) both}@keyframes pop{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}.winner-logo{width:130px;height:130px;border-radius:26px;display:block;box-shadow:var(--shadow)}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:60}.confetti-piece{position:absolute;top:-24px;opacity:0;animation-name:confetti-fall;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes confetti-fall{0%{transform:translateY(-24px) translate(0) rotate(0);opacity:0}8%{opacity:1}to{transform:translateY(104vh) translate(var(--drift, 0)) rotate(720deg);opacity:1}}.codebig{font-weight:900;letter-spacing:.32em;font-size:clamp(40px,14vw,68px);color:var(--cyan-deep);text-align:center}[data-theme=dark] .codebig{color:var(--cyan)}.code-row{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}.copybtn{display:inline-flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--surface-border);color:var(--cyan-deep);cursor:pointer;width:42px;height:42px;padding:0;border-radius:12px;box-shadow:var(--shadow-card)}[data-theme=dark] .copybtn{box-shadow:none;color:var(--cyan)}.copybtn:active{transform:scale(.95)}.copybtn.copied{color:var(--good);border-color:var(--good)}.btnicon{display:inline-flex;align-items:center;justify-content:center;gap:6px}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}.adult{font-size:12px;color:var(--subtle);text-align:center}.footer{display:flex;align-items:center;justify-content:center;gap:8px;padding-top:4px}.footlink{background:none;border:none;cursor:pointer;color:var(--subtle);font-weight:700;font-size:13px;padding:4px 6px}.footlink:hover{color:var(--cyan-deep);text-decoration:underline}.footer .dotsep{color:var(--subtle)}.legalscreen{overflow:hidden}.legalscreen .topbar,.legalscreen .actionbar{flex:0 0 auto}.legalscreen .legal{flex:1 1 auto;min-height:0;overflow-y:auto}.legal h3{margin:18px 0 4px;font-size:16px}.legal h1{margin-bottom:4px}.legal p{margin:0 0 6px;line-height:1.5;color:var(--text);font-size:15px}.linkbtn{background:none;border:none;color:var(--cyan-deep);font-weight:800;cursor:pointer;text-decoration:underline;font-size:15px;padding:6px}[data-theme=dark] .linkbtn{color:var(--cyan)}
