:root{--font-mono:"Roboto Mono",monospace;--font-display:"Inter",system-ui,sans-serif;--color-bg:#0a0a0f;--color-bg-card:#13131a;--color-bg-elevated:#1a1a24;--color-border:#2a2a3a;--color-border-light:#3a3a4a;--color-primary:#6366f1;--color-primary-light:#818cf8;--color-primary-dark:#4f46e5;--color-secondary:#8b5cf6;--color-accent:#f472b6;--color-success:#10b981;--color-warning:#fbbf24;--color-error:#ef4444;--color-text:#f8fafc;--color-text-secondary:#e2e8f0;--color-text-muted:#94a3b8;--gradient-primary:linear-gradient(135deg,#6366f1,#8b5cf6 50%,#a855f7);--gradient-accent:linear-gradient(135deg,#f472b6,#ec4899);--gradient-gold:linear-gradient(135deg,#fbbf24,#f59e0b);--gradient-card:linear-gradient(180deg,rgba(99,102,241,0.05),transparent);--gradient-success:linear-gradient(135deg,#10b981,#059669);--shadow-sm:0 2px 8px rgba(0,0,0,0.3);--shadow-md:0 4px 20px rgba(0,0,0,0.4);--shadow-lg:0 8px 40px rgba(0,0,0,0.5);--shadow-glow:0 0 40px rgba(99,102,241,0.3);--glow-primary:0 0 20px rgba(99,102,241,0.4);--glow-success:0 0 20px rgba(16,185,129,0.4);--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-xl:28px;--radius-full:9999px}*{box-sizing:border-box}html{font-size:18px;line-height:32px;background:var(--color-bg);-webkit-font-smoothing:antialiased}#app,body,html{height:100%}body{font-family:var(--font-display);font-size:18px;line-height:1.6;margin:0;color:var(--color-text);background:var(--color-bg);background-image:radial-gradient(ellipse at top,rgba(99,102,241,.1) 0,transparent 50%),radial-gradient(ellipse at bottom right,rgba(139,92,246,.08) 0,transparent 50%);min-height:100vh;@media (max-width:1024px){font-size:16px;line-height:1.5}}img{max-width:100%;height:auto;display:block}h1{margin:40px 0;font-size:56px;line-height:1.1;font-weight:800;letter-spacing:-.02em;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;@media (max-width:1024px){margin-left:0;margin-bottom:24px;margin-right:0;margin-top:24px;font-size:40px}@media (max-width:768px){font-size:34px}@media (max-width:400px){font-size:28px}}h2{font-size:28px;font-weight:700;letter-spacing:-.01em;margin:0 0 20px}h3{font-size:20px;font-weight:600;color:var(--color-text)}p{margin:16px 0;color:var(--color-text-muted);@media (max-width:1024px){margin-left:0;margin-bottom:12px;margin-right:0;margin-top:12px}}a{color:currentColor;&:focus{opacity:.8;outline:none}&:active{opacity:.7;outline:none}}svg{vertical-align:middle}.home{display:flex;flex-direction:column;justify-content:space-between;align-items:center;height:100vh;padding:45px;max-width:1024px;margin:0 auto;overflow:hidden;@media (max-width:400px){padding-left:24px;padding-bottom:24px;padding-right:24px;padding-top:24px}.content{display:flex;flex-direction:column;align-items:center;justify-content:center;flex-grow:1;h1{text-align:center}}.links{display:flex;align-items:center;gap:12px;a{text-decoration:none;padding:.25rem .5rem;border-radius:4px}.admin{color:rgb(0,0,0);background:rgb(1000,1000,1000);border:1px solid rgb(0,0,0)}.docs{color:rgb(1000,1000,1000);background:rgb(0,0,0);border:1px solid rgb(1000,1000,1000)}}.footer{display:flex;align-items:center;gap:8px;@media (max-width:1024px){flex-direction:column;gap:6px}p{margin:0}.codeLink{text-decoration:none;padding:0 .5rem;background:rgb(60,60,60);border-radius:4px}}}.admin-container,.home-container,.join-container,.play-container{max-width:800px;margin:0 auto;padding:40px 20px;min-height:100vh}.hero{text-align:center;margin-bottom:50px;padding:20px 0}.hero h1{font-size:52px;margin-bottom:16px;@media (max-width:768px){font-size:36px}}.hero p{font-size:20px;color:var(--color-text-muted);max-width:500px;margin:0 auto}.btn{padding:14px 28px;border:none;border-radius:var(--radius-md);font-size:16px;font-weight:600;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn-primary{background:var(--gradient-primary);color:white;box-shadow:var(--shadow-sm),0 0 20px rgba(99,102,241,.3)}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md),0 0 30px rgba(99,102,241,.4)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background:var(--color-bg-elevated);color:white;border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-bg-card);border-color:var(--color-primary);transform:translateY(-2px)}.btn-success{background:linear-gradient(135deg,#10b981,#059669);color:white;box-shadow:0 0 20px rgba(16,185,129,.3)}.btn-outline{background:transparent;border:2px solid var(--color-border);color:white}.btn-outline:hover:not(:disabled){background:var(--color-bg-elevated);border-color:var(--color-primary);transform:translateY(-2px)}.btn-small{padding:8px 16px;font-size:14px}.btn-large{padding:18px 36px;font-size:18px;border-radius:var(--radius-lg)}.input{padding:14px 18px;border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:16px;background:var(--color-bg-card);color:white;width:100%;transition:all .25s ease}.input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px rgba(99,102,241,.15)}.input::placeholder{color:var(--color-text-muted)}.actions{display:flex;flex-direction:column;gap:24px;align-items:center}.action-card{background:var(--color-bg-card);background-image:var(--gradient-card);padding:36px;border-radius:var(--radius-xl);text-align:center;width:100%;max-width:420px;border:1px solid var(--color-border);box-shadow:var(--shadow-md);transition:all .3s ease}.action-card:hover{border-color:rgba(99,102,241,.3);transform:translateY(-4px);box-shadow:var(--shadow-lg),var(--shadow-glow)}.action-card h2{margin:0 0 12px;font-size:26px;color:var(--color-text)}.action-card p{margin:0 0 24px}.action-card p,.divider{color:var(--color-text-muted)}.divider{font-size:13px;text-transform:uppercase;letter-spacing:.1em;font-weight:600}.join-form{display:flex;flex-direction:column;gap:16px}.avatar-upload{display:flex;justify-content:center;margin-bottom:12px}.avatar-input{display:none}.avatar-label{cursor:pointer}.avatar-placeholder{width:130px;height:130px;border-radius:50%;background:var(--color-bg-card);border:3px dashed var(--color-border);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;transition:all .3s ease}.avatar-placeholder:hover{border-color:var(--color-primary);background:var(--color-bg-elevated);transform:scale(1.05)}.avatar-icon{font-size:32px}.avatar-text{font-size:13px;color:var(--color-text-muted);text-align:center;font-weight:500}.avatar-preview-container{position:relative;width:130px;height:130px}.avatar-preview{width:130px;height:130px;border-radius:50%;object-fit:cover;border:4px solid var(--color-primary);box-shadow:0 0 30px rgba(99,102,241,.4)}.avatar-remove{position:absolute;top:0;right:0;width:32px;height:32px;border-radius:50%;background:var(--color-error);color:white;border:3px solid var(--color-bg);cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center;line-height:1;padding:0;transition:all .2s ease}.avatar-remove:hover{background:#dc2626;transform:scale(1.1)}.player-avatar,.player-avatar-placeholder{border-radius:50%;object-fit:cover;flex-shrink:0;box-shadow:var(--shadow-sm)}.player-avatar-placeholder.avatar-small,.player-avatar.avatar-small{width:40px;height:40px;font-size:16px}.player-avatar-placeholder.avatar-medium,.player-avatar.avatar-medium{width:60px;height:60px;font-size:24px}.player-avatar-placeholder.avatar-large,.player-avatar.avatar-large{width:90px;height:90px;font-size:36px}.player-avatar-placeholder{background:var(--gradient-primary);color:white;display:flex;align-items:center;justify-content:center;font-weight:700}.player-info{gap:12px}.author-reveal,.player-info{display:flex;align-items:center}.author-reveal{gap:10px;flex-wrap:wrap}.author-name{display:inline-flex;align-items:center;gap:10px}.error{color:var(--color-error);background:rgba(239,68,68,.1);padding:14px 18px;border-radius:var(--radius-md);border:1px solid rgba(239,68,68,.2);text-align:center}.how-it-works{margin-top:60px;background:var(--color-bg-card);padding:36px;border-radius:var(--radius-xl);border:1px solid var(--color-border)}.how-it-works h3{margin:0 0 24px;text-align:center;font-size:22px}.how-it-works ol{margin:0;padding-left:24px;color:var(--color-text-muted)}.how-it-works li{margin-bottom:14px;line-height:1.6}.code-display{font-size:52px;font-weight:800;font-family:var(--font-mono);letter-spacing:12px;background:var(--color-bg-card);background-image:var(--gradient-card);padding:28px 48px;border-radius:var(--radius-xl);margin:24px 0;text-align:center;border:1px solid var(--color-border);color:var(--color-primary-light);box-shadow:var(--shadow-md),inset 0 1px 0 rgba(255,255,255,.05)}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:36px;flex-wrap:wrap;gap:16px}.status-badge{padding:8px 16px;border-radius:var(--radius-lg);font-size:13px;text-transform:uppercase;font-weight:700;letter-spacing:.05em;background:var(--color-bg-elevated)}.status-lobby{background:linear-gradient(135deg,#3b82f6,#2563eb)}.status-voting-author{background:var(--gradient-primary)}.status-results-author{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#1f2937}.status-voting-truth{background:var(--gradient-primary)}.status-results-truth{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#1f2937}.status-finished{background:linear-gradient(135deg,#10b981,#059669)}.lobby-section{display:flex;flex-direction:column;gap:36px}.qr-section{text-align:center}.qr-code{background:white;padding:24px;border-radius:var(--radius-lg);display:inline-block;margin:24px 0;box-shadow:var(--shadow-lg)}.join-url{font-size:14px;color:var(--color-text-muted);word-break:break-all}.players-section h3{margin-bottom:20px}.players-list{display:flex;flex-direction:column;gap:12px}.player-card{display:flex;justify-content:space-between;align-items:center;background:var(--color-bg-card);padding:16px 20px;border-radius:var(--radius-md);gap:16px;border:1px solid var(--color-border);transition:all .2s ease}.player-card:hover{border-color:rgba(99,102,241,.3)}.player-card .player-name{flex:1 1;font-weight:600}.current-player-info{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.player-status.ready{color:var(--color-success);font-weight:600}.player-status.waiting{color:var(--color-warning);font-weight:600}.no-players{text-align:center;color:var(--color-text-muted)}.start-section{text-align:center;padding:28px;background:var(--color-bg-card);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.hint{font-size:14px;color:var(--color-text-muted);margin-top:12px}.game-section{display:flex;flex-direction:column;gap:36px}.round-info{text-align:center}.statements-display{display:flex;flex-direction:column;gap:14px}.statement-card{display:flex;align-items:flex-start;gap:16px;background:var(--color-bg-card);padding:20px;border-radius:var(--radius-lg);border:1px solid var(--color-border);transition:all .25s ease}.statement-card:hover{border-color:rgba(99,102,241,.3)}.statement-card.true{border:2px solid var(--color-success);background:rgba(16,185,129,.05)}.statement-card.false{border:2px solid var(--color-error);background:rgba(239,68,68,.05)}.statement-number{background:var(--gradient-primary);width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0;font-size:14px}.statement-text{flex-grow:1;line-height:1.5}.statement-truth{font-weight:700;flex-shrink:0;padding:4px 10px;border-radius:var(--radius-full);font-size:12px;text-transform:uppercase;letter-spacing:.5px}.statement-card.true .statement-truth{background:rgba(16,185,129,.2);color:var(--color-success)}.statement-card.false .statement-truth{background:rgba(239,68,68,.2);color:var(--color-error)}.voting-progress{text-align:center}.progress-bar{height:10px;background:var(--color-bg-elevated);border-radius:var(--radius-full);overflow:hidden;margin-top:12px;border:1px solid var(--color-border)}.progress-fill{height:100%;background:var(--gradient-primary);transition:width .4s ease;border-radius:var(--radius-full)}.vote-results{display:flex;flex-direction:column;gap:10px}.vote-result{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-radius:var(--radius-md);background:var(--color-bg-card);border:1px solid var(--color-border);transition:all .2s ease}.vote-result.correct{background:rgba(16,185,129,.15);border-color:rgba(16,185,129,.4)}.vote-result.incorrect{background:rgba(239,68,68,.15);border-color:rgba(239,68,68,.4)}.admin-controls{display:flex;justify-content:center;gap:20px;flex-wrap:wrap}.mini-scoreboard,.scoreboard{background:var(--color-bg-card);padding:24px;border-radius:var(--radius-lg);border:1px solid var(--color-border)}.mini-scoreboard h4,.scoreboard h3{margin:0 0 20px;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.mini-score-row,.score-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--color-border);gap:12px}.mini-score-row .player-info,.score-row .player-name{display:flex;align-items:center;gap:10px;flex:1 1}.mini-score-row:last-child,.score-row:last-child{border-bottom:none}.rank{width:44px;font-weight:700;color:var(--color-text-muted)}.rank:first-child{color:#fbbf24}.score{font-weight:700;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-size:18px}.mini-scoreboard{position:fixed;bottom:24px;right:24px;width:220px;z-index:100;box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.finished-section{text-align:center}.finished-section h2{font-size:2.5rem;margin-bottom:12px}.final-scoreboard{display:flex;flex-direction:column;gap:14px;margin:36px 0}.final-score-row{display:flex;align-items:center;gap:20px;background:var(--color-bg-card);padding:20px 24px;border-radius:var(--radius-lg);border:1px solid var(--color-border);transition:all .25s ease}.final-score-row:hover{transform:translateX(4px)}.final-score-row .player-name{display:flex;align-items:center;gap:14px;flex:1 1;font-weight:600}.final-score-row.winner{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#1f2937;border:none;box-shadow:0 4px 20px rgba(251,191,36,.3)}.final-score-row.winner .score{background:none;-webkit-text-fill-color:#1f2937;color:#1f2937}.final-score-row.you{border:2px solid var(--color-primary);box-shadow:0 0 20px rgba(99,102,241,.2)}.join-container{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 20px}.join-container h2{margin-bottom:8px}.join-container .join-form{width:100%;max-width:340px;display:flex;flex-direction:column;gap:20px}.join-container label{display:block;text-align:left;margin-bottom:10px;font-weight:600;color:var(--color-text-secondary)}.play-header{justify-content:space-between;margin-bottom:36px;flex-wrap:wrap;gap:16px;padding-bottom:20px;border-bottom:1px solid var(--color-border)}.play-header,.player-badge{display:flex;align-items:center}.player-badge{background:var(--gradient-primary);padding:10px 18px;border-radius:var(--radius-full);font-size:14px;font-weight:600;gap:10px;box-shadow:var(--shadow-md)}.statements-section{max-width:640px;margin:0 auto}.statements-form{display:flex;flex-direction:column;gap:28px}.statement-input{background:var(--color-bg-card);padding:24px;border-radius:var(--radius-lg);border:1px solid var(--color-border);transition:all .25s ease}.statement-input:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(99,102,241,.1)}.statement-input label{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;font-weight:600}.truth-badge{font-size:11px;padding:5px 10px;border-radius:var(--radius-full);font-weight:700;text-transform:uppercase;letter-spacing:.5px}.truth-badge.true{background:rgba(16,185,129,.2);color:var(--color-success)}.truth-badge.false{background:rgba(239,68,68,.2);color:var(--color-error)}.statement-input textarea{width:100%;padding:14px;border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-elevated);color:white;font-size:16px;min-height:80px;resize:vertical;margin-bottom:12px}.statement-input textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--glow-primary)}.waiting-section{text-align:center}.players-waiting{background:var(--color-bg-card);padding:24px;border-radius:var(--radius-lg);margin-top:32px;text-align:left;border:1px solid var(--color-border)}.player-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--color-border)}.player-row:last-child{border-bottom:none}.voting-section{max-width:640px;margin:0 auto}.vote-options{display:flex;flex-direction:column;gap:14px;margin-top:24px}.vote-option{padding:20px;background:var(--color-bg-card);border:2px solid var(--color-border);border-radius:var(--radius-lg);color:white;font-size:16px;cursor:pointer;transition:all .25s ease;text-align:left;display:flex;align-items:center;gap:14px}.vote-option:hover{border-color:var(--color-primary);transform:translateY(-2px);box-shadow:var(--shadow-md)}.vote-option.selected{border-color:var(--color-primary);background:rgba(99,102,241,.15);box-shadow:0 0 20px rgba(99,102,241,.2)}.vote-option.statement-option{display:flex;align-items:flex-start;gap:14px}.voted,.your-turn{text-align:center;padding:36px;background:var(--color-bg-card);border-radius:var(--radius-lg);margin-top:24px;border:1px solid var(--color-border)}.your-turn h3{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.results-section{max-width:640px;margin:0 auto;text-align:center}.loading{color:var(--color-text-muted)}.error-page,.loading{display:flex;justify-content:center;align-items:center;min-height:100vh;font-size:18px}.error-page{flex-direction:column;color:var(--color-error);gap:16px}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.fade-in{animation:fadeIn .4s ease-out}.pulse{animation:pulse 2s ease-in-out infinite}@media (max-width:640px){html{font-size:16px}.hero h1{font-size:2.25rem}.actions{gap:20px}.action-card{padding:24px}.mini-scoreboard{position:static;width:100%;margin-top:24px}.final-score-row{padding:16px}.player-badge{padding:8px 14px;font-size:13px}}