:root{color-scheme:dark;--bg: #0f0f12;--fg: #f4f4f7;--muted: #8a8a96;--accent: #ffb84d;--card: #1a1a20;--border: #2a2a33;--danger: #ff5c5c;--success: #4ade80;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{background:var(--bg);color:var(--fg);-webkit-tap-highlight-color:transparent}#app{display:flex;flex-direction:column;min-height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.screen{flex:1;display:flex;flex-direction:column;padding:24px;gap:16px}.screen.center{align-items:center;justify-content:center;text-align:center}h1{font-size:32px;margin:0}h2{font-size:22px;margin:0}p{margin:0;color:var(--muted)}button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:var(--accent);color:#1a1a20;font-size:18px;font-weight:600;padding:16px 24px;border-radius:14px;cursor:pointer;width:100%;max-width:360px;font-family:inherit}button.secondary{background:var(--card);color:var(--fg);border:1px solid var(--border)}button.danger{background:transparent;color:var(--danger);border:1px solid var(--border)}button:disabled{opacity:.4;cursor:not-allowed}input[type=text]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--card);color:var(--fg);border:1px solid var(--border);padding:16px;font-size:18px;border-radius:14px;width:100%;max-width:360px;font-family:inherit;text-align:center}.code-display{font-size:56px;font-weight:800;letter-spacing:12px;font-family:ui-monospace,SF Mono,Menlo,monospace;text-align:center;padding:16px 0}.room-name{font-size:14px;color:var(--muted);text-transform:uppercase;letter-spacing:2px;text-align:center}.test-mode-badge{align-self:center;display:inline-block;padding:4px 10px;margin:4px 0 8px;font-size:11px;font-weight:700;letter-spacing:1.5px;color:#000;background:#ffcf3a;border-radius:999px;text-transform:uppercase}.player-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;width:100%;max-width:360px}.player-list li{background:var(--card);border:1px solid var(--border);padding:14px 16px;border-radius:12px;display:flex;justify-content:space-between;align-items:center}.player-list .badge{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}.player-list .badge.ready{color:var(--accent)}.qr-card{background:#fff;padding:12px;border-radius:14px;display:inline-flex}.qr-card canvas,.qr-card img{display:block}.role-card{background:var(--card);border:1px solid var(--border);border-radius:20px;padding:32px;width:100%;max-width:360px;text-align:center}.role-card .role-label{font-size:14px;color:var(--muted);text-transform:uppercase;letter-spacing:2px;margin-bottom:8px}.role-card .role-label--truth{color:var(--success);font-size:18px;font-weight:700}.role-card .role-label--liar{color:var(--danger);font-size:18px;font-weight:700}.role-card .role-value{font-size:64px;font-weight:800;margin:16px 0}.game-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;width:100%;max-width:360px}.game-list li{background:var(--card);border:1px solid var(--border);padding:14px 16px;border-radius:12px;display:flex;flex-direction:column;gap:10px;cursor:pointer}.game-list li.selected{border-color:var(--accent)}.game-list li.readonly{cursor:default}.game-list li .game-row-main{display:flex;justify-content:space-between;align-items:center;gap:12px}.game-list li .meta{font-size:12px;color:var(--muted)}.game-row-details{border-top:1px solid var(--border);padding-top:10px;display:flex;flex-direction:column;gap:8px}.game-description{margin:0;font-size:14px;line-height:1.4;color:var(--fg)}.game-tags{display:flex;flex-wrap:wrap;gap:6px}.game-tag{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:2px 8px}.row{display:flex;gap:12px;width:100%;max-width:360px}.row>*{flex:1}.error{color:var(--danger);text-align:center;font-size:14px}.muted{color:var(--muted)}.ascend-header{display:flex;width:100%;max-width:360px;justify-content:space-between;align-items:center}.ascend-round{font-size:14px;text-transform:uppercase;letter-spacing:2px;color:var(--muted)}.ascend-lives{font-size:22px;color:var(--danger);letter-spacing:4px}.ascend-hand{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:12px 0}.ascend-card{display:inline-flex;align-items:center;justify-content:center;min-width:44px;padding:8px 12px;background:var(--card);border:1px solid var(--border);border-radius:8px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:20px;font-weight:700}.ascend-card.lowest{border-color:var(--accent);color:var(--accent)}.ascend-feed{width:100%;max-width:360px;padding:10px 14px;background:var(--card);border:1px solid var(--border);border-radius:8px;font-size:14px;color:var(--muted);text-align:center}.ascend-pile{list-style:none;padding:0;margin:0;width:100%;max-width:360px;display:flex;flex-direction:column;gap:6px}.ascend-pile li{display:flex;align-items:center;gap:12px;padding:6px 10px;background:var(--card);border:1px solid var(--border);border-radius:6px}.honest-round-header{font-size:13px;text-transform:uppercase;letter-spacing:2px}.honest-question{font-size:20px;font-weight:600;color:var(--fg);margin:16px 0 0;line-height:1.4}.honest-answer-box{margin-top:20px;padding:14px 16px;background:var(--bg);border:1px solid var(--border);border-radius:12px;text-align:left}.honest-answer-label{font-size:11px;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);margin-bottom:6px}.honest-answer{font-size:16px;font-weight:600;color:var(--accent);line-height:1.4}.honest-answer--liar{color:var(--danger)}.honest-guess-row{background:var(--card);border:1px solid var(--border);padding:16px;border-radius:12px;cursor:pointer;font-size:16px;font-weight:500;text-align:left;transition:border-color .15s;list-style:none}.honest-guess-row:active{border-color:var(--accent)}.honest-reveal-card{background:var(--card);border:1px solid var(--border);border-radius:20px;padding:24px;width:100%;max-width:360px;text-align:center;display:flex;flex-direction:column;gap:6px}.honest-truth-name{font-size:28px;font-weight:800;color:var(--accent)}.honest-truth-label{font-size:13px;text-transform:uppercase;letter-spacing:2px;color:var(--muted)}.honest-real-answer{margin-top:12px;font-size:15px;font-weight:500;color:var(--fg);line-height:1.4}.honest-result{margin-top:10px;font-size:14px;font-weight:600;padding:6px 12px;border-radius:999px;align-self:center}.honest-result--correct{background:#ffb84d26;color:var(--accent)}.honest-result--wrong{background:#ff5c5c26;color:var(--danger)}.honest-recap-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;width:100%;max-width:360px;text-align:left}.honest-recap-row{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:4px}.honest-recap-q{font-size:14px;font-weight:600;color:var(--fg)}.honest-recap-a{font-size:13px;color:var(--accent)}.honest-recap-meta{font-size:12px;color:var(--muted)}.ht-timer{font-size:52px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--accent);letter-spacing:2px}.ht-timer--urgent{color:var(--danger)}.ht-timer--done{color:var(--muted)}.ht-phase-label{font-size:13px;text-transform:uppercase;letter-spacing:2px;color:var(--muted)}.ht-badge{font-size:22px;font-weight:800;color:var(--accent)}.ht-take-card{background:var(--card);border:1px solid var(--border);border-radius:20px;padding:28px 24px;font-size:20px;font-weight:600;color:var(--fg);line-height:1.4;width:100%;max-width:360px;text-align:center}.ht-defender-name{font-size:34px;font-weight:800;color:var(--accent)}.ht-seeds-row{display:flex;gap:8px;overflow-x:auto;padding:4px 0 8px;width:100%;max-width:360px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.ht-seeds-row::-webkit-scrollbar{display:none}.ht-seed-chip{flex-shrink:0;background:var(--card);border:1px solid var(--border);color:var(--fg);font-size:13px;font-weight:500;padding:8px 14px;border-radius:999px;cursor:pointer;white-space:nowrap;font-family:inherit;width:auto;max-width:none}.ht-seed-chip:active{border-color:var(--accent);color:var(--accent)}.ht-seed-more{color:var(--muted);border-style:dashed}.ht-vote-row{background:var(--card);border:1px solid var(--border);padding:16px;border-radius:12px;cursor:pointer;font-size:16px;font-weight:500;display:flex;justify-content:space-between;align-items:center;transition:border-color .15s;list-style:none}.ht-vote-row:active{border-color:var(--accent)}.ht-vote-row--selected{border-color:var(--accent);color:var(--accent)}.ht-vote-check{font-size:18px}.ht-winner-card{background:var(--card);border:1px solid var(--accent);border-radius:20px;padding:24px 32px;display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;max-width:360px}.ht-winner-name{font-size:32px;font-weight:800;color:var(--accent)}.ht-winner-label{font-size:13px;text-transform:uppercase;letter-spacing:2px;color:var(--muted)}.ht-winner-votes{margin-top:6px;font-size:14px;color:var(--muted)}.ht-reveals-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;width:100%;max-width:360px;text-align:left}.ht-reveal-card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:6px}.ht-reveal-card--winner{border-color:var(--accent)}.ht-reveal-take{font-size:15px;font-weight:600;color:var(--fg);line-height:1.4}.ht-reveal-meta{font-size:12px;color:var(--muted);line-height:1.5}.ht-reveal-own{color:var(--accent);font-weight:600}.ht-reveal-votes{font-size:12px;color:var(--accent);font-weight:600}.confetti-overlay{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:100}.confetti-piece{position:absolute;top:-24px;border-radius:2px;animation-name:confetti-fall;animation-timing-function:linear;animation-fill-mode:forwards;will-change:transform,opacity}@keyframes confetti-fall{0%{transform:translate3d(0,-24px,0) rotate(0);opacity:1}90%{opacity:1}to{transform:translate3d(var(--drift, 0px),110vh,0) rotate(720deg);opacity:0}}.confetti-banner{position:absolute;top:38%;left:50%;transform:translate(-50%,-50%);padding:14px 28px;font-size:44px;font-weight:800;letter-spacing:1px;color:var(--accent);background:#0f0f12d9;border:2px solid var(--accent);border-radius:14px;box-shadow:0 8px 32px #0009;white-space:nowrap;animation:confetti-banner-pop 2.5s ease-out forwards}@keyframes confetti-banner-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}15%{opacity:1;transform:translate(-50%,-50%) scale(1.15)}25%{transform:translate(-50%,-50%) scale(1)}80%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.9)}}.player-list li.joined{animation:player-join-pop .6s ease-out}.kick-btn{background:transparent;border:1px solid var(--border);color:var(--muted);width:28px;height:28px;min-width:0;padding:0;border-radius:50%;font-size:18px;line-height:1;cursor:pointer}.kick-btn:hover{background:var(--danger);border-color:var(--danger);color:#fff}.unban-btn{min-width:0;padding:6px 12px;font-size:14px}.banned-name{color:var(--muted);text-decoration:line-through}@keyframes player-join-pop{0%{transform:scale(.6);opacity:0;background:var(--accent)}40%{transform:scale(1.08);opacity:1}to{transform:scale(1);opacity:1;background:transparent}}.hp-timer{font-size:64px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--accent);letter-spacing:2px}.hp-timer--urgent{color:var(--danger);animation:hp-timer-pulse .7s ease-in-out infinite}.hp-timer--done{color:var(--muted)}@keyframes hp-timer-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.hp-holder-label{font-size:15px;color:var(--muted);margin-bottom:8px}.hp-holder-label strong{color:var(--fg)}.hp-prompt{background:var(--card);border:2px solid var(--border);border-radius:20px;padding:28px 24px;font-size:26px;font-weight:700;color:var(--fg);line-height:1.3;text-align:center;font-variant-numeric:tabular-nums;letter-spacing:1px;margin:10px 0}.hp-prompt--solved{border-color:var(--accent);opacity:.6}.hp-prompt--spectator{font-size:22px;opacity:.85}.hp-answer{font-size:18px;font-weight:700;color:var(--accent);text-align:center;margin-top:4px}.hp-answer-label{font-size:12px;font-weight:400;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}.hp-input{font-size:24px;text-align:center;font-weight:600;letter-spacing:1px}.hp-input--wrong{border-color:var(--danger);animation:hp-shake .35s ease-in-out}@keyframes hp-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.hp-solved-label{color:var(--accent);font-weight:700;margin:12px 0 4px}.hp-target-row{display:flex!important;justify-content:space-between;align-items:center;cursor:pointer;transition:background .1s ease}.hp-target-row:hover{background:var(--card)}.hp-target-arrow{color:var(--accent);font-size:20px;font-weight:800}.hp-choose-bar{width:100%;height:6px;background:var(--card);border-radius:3px;overflow:hidden;margin:4px 0 12px}.hp-choose-bar-fill{height:100%;background:var(--accent);transition:width .2s linear}.hp-loser-card{background:var(--card);border:2px solid var(--danger);border-radius:20px;padding:32px 24px;text-align:center;margin:16px 0}.hp-loser-label{font-size:13px;text-transform:uppercase;letter-spacing:2px;color:var(--muted);margin-bottom:8px}.hp-loser-name{font-size:28px;font-weight:800;color:var(--danger)}.hp-config{margin-top:12px}.hp-config-label{font-size:12px;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);margin-bottom:6px}.hp-config-options{display:flex;gap:8px}.hp-config-opt{flex:1;padding:10px 12px;background:var(--card);border:1px solid var(--border);border-radius:10px;color:var(--fg);font-size:14px;font-weight:600;cursor:pointer;transition:all .15s ease}.hp-config-opt--active{background:var(--accent);border-color:var(--accent);color:#000}.hp-config-opt:disabled{cursor:default;opacity:.7}.hp-round-badge{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--accent);margin-bottom:4px}.hp-scoreboard{width:100%;margin:16px 0 8px}.hp-scoreboard-title{font-size:12px;text-transform:uppercase;letter-spacing:2px;color:var(--muted);margin-bottom:8px;text-align:center}.hp-score-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.hp-score-row{display:flex;justify-content:space-between;align-items:center;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:10px 14px}.hp-score-row--loser{border-color:var(--danger)}.hp-score-name{font-weight:600;color:var(--fg)}.hp-score-count{font-size:14px;font-weight:700;color:var(--muted)}.hp-score-row--loser .hp-score-count{color:var(--danger)}
