*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;--bg-primary:#0f0e17;--bg-secondary:#1a1a2e;--bg-card:#16213e;--bg-hover:#1f2b47;--text-primary:#e5e7eb;--text-secondary:#9ca3af;--text-muted:#6b7280;--accent:#f6d365;--accent-secondary:#fda085;--accent-gradient:linear-gradient(135deg, #f6d365, #fda085);--danger:#ef4444;--danger-bg:#ef444426;--success:#22c55e;--success-bg:#22c55e26;--warning:#f59e0b;--warning-bg:#f59e0b26;--border:#374151;--border-light:#4b5563;--shadow:0 4px 24px #0006;--radius:12px;--radius-sm:8px;color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.5}body{background:var(--bg-primary);min-height:100vh}#root{min-height:100vh}h1,h2,h3,h4{color:var(--text-primary);font-weight:600}h1{letter-spacing:-.02em;font-size:2.5rem}h2{letter-spacing:-.01em;font-size:1.75rem}h3{font-size:1.125rem}button{touch-action:manipulation}input{background:var(--bg-secondary);border:2px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);outline:none;width:100%;padding:12px 16px;font-size:1rem;transition:border-color .2s}input:focus{border-color:var(--accent)}input::placeholder{color:var(--text-muted)}label{color:var(--text-secondary);margin-bottom:6px;font-size:.875rem;font-weight:500;display:block}.app{flex-direction:column;min-height:100vh;display:flex}.screen{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.btn{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:none;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-size:1rem;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent-gradient);color:#0f0e17}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px #f6d3654d}.btn-secondary{background:var(--bg-hover);color:var(--text-primary);border:2px solid var(--border)}.btn-secondary:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626;transform:translateY(-1px);box-shadow:0 4px 16px #ef44444d}.btn-warning{background:var(--warning);color:#0f0e17}.btn-warning:hover:not(:disabled){background:#d97706;transform:translateY(-1px)}.btn-ghost{color:var(--text-secondary);border:1px solid var(--border);background:0 0}.btn-ghost:hover:not(:disabled){color:var(--text-primary);border-color:var(--border-light)}.btn-large{padding:16px 32px;font-size:1.125rem}.home-screen{background:radial-gradient(at 50% 30%,#f6d3650d 0%,#0000 70%)}.home-container{flex-direction:column;gap:32px;width:100%;max-width:420px;display:flex}.logo h1{background:var(--accent-gradient);-webkit-text-fill-color:transparent;text-align:center;-webkit-background-clip:text;background-clip:text;font-size:3rem}.subtitle{text-align:center;color:var(--text-secondary);margin-top:4px;font-size:1.125rem}.form-group{margin-bottom:20px}.mode-toggle{gap:8px;margin-bottom:8px;display:flex}.mode-toggle .btn{flex:1}.mode-toggle .btn.active{border-color:var(--accent);color:var(--accent);background:#f6d3651a}.mode-explanation{color:var(--text-secondary);background:var(--bg-secondary);border-radius:var(--radius-sm);border-left:3px solid var(--accent);padding:8px 12px;font-size:.8125rem;line-height:1.4}.home-actions{flex-direction:column;gap:16px;display:flex}.divider{color:var(--text-muted);align-items:center;gap:12px;font-size:.875rem;display:flex}.divider:before,.divider:after{content:"";background:var(--border);flex:1;height:1px}.join-row{gap:12px;display:flex}.join-row .code-input{text-transform:uppercase;letter-spacing:.15em;text-align:center;flex:1;font-family:Courier New,monospace;font-size:1.125rem}.connection-warning{text-align:center;color:var(--warning);background:var(--warning-bg);border-radius:var(--radius-sm);padding:8px;font-size:.875rem}.error-message{text-align:center;color:var(--danger);background:var(--danger-bg);border-radius:var(--radius-sm);margin-top:12px;padding:8px 12px;font-size:.875rem;animation:.3s ease-in-out shake}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.language-switcher{z-index:10;gap:8px;display:flex;position:absolute;top:24px;right:24px}.lang-btn{background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;text-transform:uppercase;padding:6px 12px;font-size:.8125rem;font-weight:600;transition:all .2s}.lang-btn:hover{border-color:var(--border-light);color:var(--text-primary)}.lang-btn.active{border-color:var(--accent);color:var(--accent);background:#f6d3651a}.lobby-screen{background:radial-gradient(at 50% 30%,#f6d36508 0%,#0000 70%)}.lobby-container{text-align:center;flex-direction:column;gap:24px;width:100%;max-width:480px;display:flex}.lobby-banner{background:var(--accent-gradient);color:#0f0e17;letter-spacing:.05em;border-radius:var(--radius);text-align:center;padding:12px 16px;font-weight:700}.game-code-display{background:var(--bg-card);border:2px dashed var(--border);border-radius:var(--radius);cursor:pointer;flex-direction:column;align-items:center;gap:4px;padding:24px;transition:border-color .2s;display:flex}.game-code-display:hover{border-color:var(--accent)}.code-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-size:.75rem}.code-value{letter-spacing:.25em;background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-family:Courier New,monospace;font-size:2.5rem;font-weight:700}.copy-hint{color:var(--text-muted);font-size:.75rem}.lobby-settings{color:var(--text-muted);justify-content:center;gap:24px;font-size:.875rem;display:flex}.lobby-actions{flex-direction:column;gap:12px;display:flex}.waiting-text{color:var(--text-secondary);font-style:italic}.player-list{flex-direction:column;gap:8px;display:flex}.player-item{background:var(--bg-secondary);border-radius:var(--radius-sm);border:1px solid #0000;align-items:center;gap:12px;padding:10px 14px;transition:all .2s;display:flex}.player-item.active-turn{border-color:var(--accent);background:#f6d36514}.player-item.eliminated{opacity:.5}.player-item.disconnected{opacity:.6}.player-info{flex:1;align-items:center;gap:8px;display:flex}.player-name{align-items:center;gap:6px;font-weight:500;display:flex}.you-badge,.host-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:4px;padding:2px 6px;font-size:.625rem;font-weight:700}.you-badge{background:var(--accent-gradient);color:#0f0e17}.host-badge{color:#818cf8;background:#6366f133}.status-dot{border-radius:50%;width:8px;height:8px}.status-dot.online{background:var(--success);box-shadow:0 0 6px #22c55e66}.status-dot.offline{background:var(--danger)}.player-dice-count{align-items:center;gap:4px;display:flex}.dice-count-number{color:var(--text-primary);font-size:.875rem;font-weight:700}.mini-die{opacity:.7;font-size:1rem}.eliminated-text{color:var(--danger);text-transform:uppercase;font-size:.75rem;font-weight:600}.turn-indicator{color:var(--accent);font-size:.75rem;animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.game-screen{align-items:stretch;padding:0}.game-layout{width:100%;min-height:100vh;display:flex}.game-sidebar{background:var(--bg-secondary);border-right:1px solid var(--border);flex-direction:column;gap:16px;width:280px;min-width:280px;padding:20px;display:flex;overflow-y:auto}.game-sidebar h3{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:.875rem}.total-dice-info{color:var(--text-muted);text-align:center;background:var(--bg-primary);border-radius:var(--radius-sm);padding:8px;font-size:.8rem}.game-main{flex-direction:column;flex:1;align-items:center;gap:24px;padding:32px;display:flex;overflow-y:auto}.round-info{align-items:center;gap:12px;display:flex}.round-number{color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;font-size:.875rem;font-weight:600}.turn-banner{border-radius:var(--radius);text-align:center;padding:12px 32px;font-size:1.25rem}.your-turn{background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:700;animation:1.5s ease-in-out infinite pulse}.other-turn{color:var(--text-secondary)}.current-bid-display{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;align-items:center;gap:4px;padding:20px 40px;display:flex}.current-bid-display.no-bid{opacity:.5}.current-bid-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-size:.75rem}.current-bid-value{color:var(--text-primary);font-size:2.75rem;font-weight:700;line-height:1.1}.current-bid-by{color:var(--text-secondary);font-size:.875rem}.your-dice-section{flex-direction:column;align-items:center;gap:12px;display:flex}.your-dice-section h3{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:.875rem}.action-section{width:100%;max-width:500px}.bid-input{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:16px;padding:24px;display:flex}.bid-controls{align-items:flex-start;gap:24px;display:flex}.bid-quantity{flex:none}.quantity-stepper{align-items:center;gap:12px;display:flex}.stepper-btn{border:2px solid var(--border);background:var(--bg-secondary);width:40px;height:40px;color:var(--text-primary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:1.25rem;transition:all .2s;display:flex}.stepper-btn:hover{border-color:var(--accent);color:var(--accent)}.quantity-value{text-align:center;min-width:32px;font-size:1.75rem;font-weight:700}.bid-face{flex:1}.face-picker{flex-wrap:wrap;gap:8px;display:flex}.face-btn{border-radius:var(--radius-sm);border:2px solid var(--border);background:var(--bg-secondary);width:60px;height:60px;color:var(--text-primary);cursor:pointer;justify-content:center;align-items:center;font-size:2.25rem;transition:all .2s;display:flex}.face-btn:hover{border-color:var(--border-light)}.face-btn.selected{border-color:var(--accent);color:var(--accent);background:#f6d36526}.bid-actions{flex-wrap:wrap;gap:12px;display:flex}.bid-actions .btn{flex:1;min-width:120px}.bid-history h3{margin-bottom:8px}.bid-history-empty{color:var(--text-muted);text-align:center;padding:12px;font-size:.875rem;font-style:italic}.bid-history-scroll{flex-direction:column;gap:4px;max-height:200px;display:flex;overflow-y:auto}.bid-history-entry{background:var(--bg-primary);border-radius:6px;align-items:center;gap:8px;padding:6px 10px;font-size:.8125rem;display:flex}.bid-player{color:var(--text-primary);font-weight:600}.bid-value{color:var(--accent);font-weight:500}.bid-action{color:var(--text-secondary);font-style:italic}.reveal-screen{background:radial-gradient(at 50% 40%,#f6d3650f 0%,#0000 70%)}.reveal-container{text-align:center;flex-direction:column;align-items:center;gap:24px;width:100%;max-width:640px;display:flex}.reveal-call{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:4px;padding:16px 32px;display:flex}.caller-name{font-size:1.25rem;font-weight:700}.call-action{color:var(--text-secondary)}.call-target{color:var(--accent);font-size:1.125rem}.reveal-dice-grid{flex-wrap:wrap;justify-content:center;gap:16px;width:100%;display:flex}.reveal-player-dice{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;align-items:center;gap:8px;min-width:120px;padding:16px;display:flex}.reveal-player-dice.is-you{border-color:var(--accent)}.reveal-player-name{color:var(--text-secondary);font-size:.875rem;font-weight:600}.reveal-result{flex-direction:column;gap:12px;display:flex}.actual-count{color:var(--text-secondary);font-size:1.125rem}.actual-count strong{color:var(--accent);font-size:1.5rem}.outcome p{font-size:1.125rem}.outcome .elimination{color:var(--danger);font-weight:600}.gameover-screen{background:radial-gradient(at 50% 30%,#f6d36514 0%,#0000 70%)}.gameover-container{text-align:center;flex-direction:column;align-items:center;gap:24px;width:100%;max-width:480px;display:flex}.winner-announcement{flex-direction:column;align-items:center;gap:8px;display:flex}.trophy{font-size:4rem;animation:1s ease-in-out infinite alternate bounce}@keyframes bounce{0%{transform:translateY(0)}to{transform:translateY(-8px)}}.winner-announcement h1{background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.winner-announcement p{color:var(--text-secondary);font-size:1.125rem}.final-standings{width:100%}.final-standings h3{margin-bottom:16px}.standings-list{flex-direction:column;gap:8px;display:flex}.standing-item{background:var(--bg-secondary);border-radius:var(--radius-sm);border:1px solid #0000;align-items:center;gap:12px;padding:12px 16px;display:flex}.standing-item.winner{border-color:var(--accent);background:#f6d36514}.standing-rank{color:var(--text-muted);min-width:28px;font-weight:700}.standing-name{text-align:left;flex:1;align-items:center;gap:6px;font-weight:500;display:flex}.standing-status{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.75rem}.standing-item.winner .standing-status{color:var(--accent);font-weight:700}.gameover-actions{flex-direction:column;gap:12px;width:100%;display:flex}.rsm-overlay{-webkit-backdrop-filter:blur(6px);z-index:100;background:#0f0e17cc;justify-content:center;align-items:center;padding:24px;animation:.2s rsm-fade-in;display:flex;position:fixed;inset:0}@keyframes rsm-fade-in{0%{opacity:0}to{opacity:1}}.rsm-modal{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius);flex-direction:column;gap:20px;width:100%;max-width:520px;max-height:90vh;padding:28px;animation:.25s rsm-slide-up;display:flex;overflow-y:auto;box-shadow:0 24px 80px #000000b3}@keyframes rsm-slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.rsm-headline{align-items:center;gap:12px;display:flex}.rsm-emoji{font-size:2rem;line-height:1}.rsm-headline h2{font-size:1.5rem}.rsm-narrative{flex-direction:column;gap:6px;display:flex}.rsm-call-line{color:var(--text-primary);font-size:1rem;line-height:1.5}.rsm-count-line{color:var(--text-secondary);font-size:.9375rem;line-height:1.5}.rsm-bid-value{color:var(--accent);font-weight:600}.rsm-actual{color:var(--accent);font-size:1.1rem}.rsm-joker-note{opacity:.7;font-size:.8125rem}.rsm-events{background:var(--bg-secondary);border-radius:var(--radius-sm);flex-direction:column;gap:8px;padding:16px;display:flex}.rsm-event{align-items:center;gap:10px;font-size:1rem;font-weight:500;display:flex}.rsm-event-loss{color:var(--danger)}.rsm-event-eliminated{color:var(--danger);font-weight:700}.rsm-event-gain{color:var(--success)}.rsm-event-neutral{color:var(--text-muted);font-weight:400}.rsm-dice-grid{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.rsm-player-dice{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;align-items:center;gap:6px;min-width:80px;padding:12px;display:flex}.rsm-player-dice.is-you{border-color:var(--accent)}.rsm-player-name{color:var(--text-secondary);font-size:.75rem;font-weight:600}.die{transition:transform .2s;box-shadow:0 2px 8px #0000004d}.die:hover{transform:scale(1.05)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-light)}@media (width<=768px){.screen,.card{padding:16px}.game-layout{flex-direction:column}.game-sidebar{width:100%;min-width:unset;border-right:none;border-bottom:1px solid var(--border);gap:0;max-height:132px;padding:8px 12px;overflow-y:hidden}.game-sidebar h3,.game-sidebar .total-dice-info,.game-sidebar .bid-history{display:none}.game-sidebar .player-list{-webkit-overflow-scrolling:touch;flex-flow:row;gap:8px;padding-bottom:4px;overflow-x:auto}.game-sidebar .player-item{text-align:center;flex-direction:column;flex-shrink:0;align-items:center;gap:5px;min-width:96px;padding:8px 12px}.game-sidebar .player-info{flex-direction:column;align-items:center;gap:2px}.game-sidebar .player-name{flex-direction:column;gap:2px;font-size:.75rem}.game-sidebar .player-dice-count{justify-content:center}.game-main{gap:16px;padding:16px}.bid-controls{flex-direction:column;gap:16px}.logo h1{font-size:2.25rem}.code-value{font-size:2rem}.rsm-modal{gap:16px;padding:20px}.rsm-headline h2{font-size:1.25rem}}@media (width<=480px){.logo h1{font-size:1.875rem}.turn-banner{padding:8px 16px;font-size:1rem}.your-turn{font-size:1.25rem}.current-bid-display{width:100%;padding:14px 20px}.current-bid-value{font-size:2.25rem}.bid-input{padding:16px}.face-picker{justify-content:space-between}.face-btn{width:64px;height:64px;font-size:2.5rem}.stepper-btn{width:48px;height:48px}.bid-actions{flex-direction:column}.bid-actions .btn{min-width:unset;width:100%}.code-value{letter-spacing:.15em;font-size:1.75rem}.join-row{flex-direction:column}.reveal-player-dice{min-width:90px;padding:10px 8px}.rsm-overlay{align-items:flex-end;padding:12px}.rsm-modal{border-radius:var(--radius) var(--radius) 0 0;max-height:85vh;padding:16px}.rsm-emoji{font-size:1.5rem}.rsm-player-dice{min-width:70px;padding:8px 6px}}@supports (padding:env(safe-area-inset-bottom)){.game-main,.screen{padding-bottom:max(16px, env(safe-area-inset-bottom))}}
