.home{text-align:center;justify-content:center;padding-top:15vh;padding-bottom:10vh}.home h1{background:linear-gradient(90deg,#a855f7 0% 25%,#f44 40%,#ff8c00 50%,#f44 60%,#a855f7 75% 100%) 0 0/300% 100%;-webkit-text-fill-color:transparent;color:#0000;letter-spacing:-.02em;word-spacing:-.15em;filter:drop-shadow(0 0 30px #a855f74d);-webkit-background-clip:text;background-clip:text;margin-bottom:12px;font-size:4rem;animation:.8s ease-out titleEntry,3s ease-in-out 1s infinite heatSweep}.home .subtitle{margin-bottom:48px;font-size:1.1rem;animation:.6s ease-out .2s both fadeUp}.home .how-to-play{animation:.6s ease-out .4s both fadeUp}.home .button-group{margin-top:0;padding-top:0;animation:.6s ease-out .6s both fadeUp}.how-to-play{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:40px;padding:28px 32px}.how-to-play ul{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.how-to-play li{color:var(--text-secondary);text-align:left;padding-left:24px;font-size:.9rem;line-height:1.6;position:relative}.how-to-play li:before{content:"";background:var(--accent);width:8px;height:8px;box-shadow:0 0 12px var(--accent-glow);border-radius:50%;animation:2s ease-in-out infinite bulletPulse;position:absolute;top:8px;left:0}.how-to-play li:nth-child(2):before{animation-delay:.2s}.how-to-play li:nth-child(3):before{animation-delay:.4s}.how-to-play li:nth-child(4):before{animation-delay:.6s}@keyframes titleEntry{0%{opacity:0;transform:translateY(-20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes heatSweep{0%{background-position:100% 0}to{background-position:0 0}}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes bulletPulse{0%,to{box-shadow:0 0 8px var(--accent-glow);transform:scale(1)}50%{box-shadow:0 0 16px var(--accent-glow);transform:scale(1.1)}}.host-controls{margin-top:auto}.category-buttons{gap:8px;margin-top:12px;display:flex}.category-buttons .btn-small{background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary);flex:1}.category-buttons .btn-small:hover{background:var(--bg-card-hover)}.category-buttons .btn-random{background:linear-gradient(135deg,var(--hot)0%,var(--accent)100%);color:#fff;box-shadow:0 0 15px var(--hot-glow);border:none}.category-picker{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;max-height:45vh;margin-bottom:20px;padding:16px;display:flex}.group-toggles{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.toggles-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.75rem;font-weight:600}.toggle-chip{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:20px;padding:6px 14px;font-family:inherit;font-size:.75rem;font-weight:600;transition:all .2s}.toggle-chip.active{background:var(--hot);border-color:var(--hot);color:#fff}.toggle-chip.nsfw{color:#fca5a5;border-color:#ef444466}.toggle-chip.nsfw.active{color:#fff;background:linear-gradient(135deg,#ef4444 0%,#dc2626 100%);border-color:#0000}.group-tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:12px;padding-bottom:12px;display:flex}.tab{color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:8px 14px;font-family:inherit;font-size:.8rem;font-weight:500;transition:all .2s}.tab:hover{color:var(--text-primary)}.tab.active{background:var(--bg-card);color:var(--text-primary)}.tab.nsfw{color:#fca5a5}.tab.nsfw.active{background:#ef444426}.category-list{flex-direction:column;flex:1;gap:6px;display:flex;overflow-y:auto}.category-item{border:1px solid var(--border);color:var(--text-primary);border-radius:var(--radius-md);cursor:pointer;text-align:left;background:0 0;padding:14px 16px;font-family:inherit;font-size:.875rem;line-height:1.4;transition:all .2s}.category-item:hover{border-color:var(--accent);background:var(--accent-subtle)}.waiting-state{text-align:center;color:var(--text-secondary);margin-top:auto;padding:24px}.category-preview{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px}.category-preview .label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:8px;font-size:.75rem;font-weight:600;display:block}.category-preview .value{font-size:1.1rem;font-weight:600;line-height:1.5}.number-reveal{cursor:pointer;-webkit-user-select:none;user-select:none;background:radial-gradient(ellipse at center,var(--hot-glow)0%,transparent 60%);justify-content:center;align-items:center}.category-reminder{color:var(--text-secondary);text-align:center;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 20px;font-size:.9rem;line-height:1.5}.number-display{flex:1;justify-content:center;align-items:center;display:flex}.number-display .number{color:var(--text-primary);text-shadow:0 0 60px var(--hot-glow),0 0 120px var(--hot-glow);font-family:Space Mono,monospace;font-size:10rem;font-weight:700;line-height:1}.hint{text-align:center;color:var(--text-muted);font-size:.875rem}.hidden-screen{justify-content:space-between}.player-name-header{text-align:center;color:var(--accent);margin-bottom:12px}.waiting-for-host{text-align:center;color:var(--text-muted);padding:16px}.hidden-display{cursor:pointer;flex-direction:column;flex:1;justify-content:center;align-items:center;margin:24px 0;display:flex}.pattern{background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius-xl);justify-content:center;align-items:center;width:180px;height:180px;transition:all .2s;display:flex}.pattern:after{content:"?";color:var(--text-muted);font-family:Space Mono,monospace;font-size:4rem;font-weight:700}.hidden-display:hover .pattern{border-color:var(--hot);box-shadow:0 0 30px var(--hot-glow)}.hidden-display:hover .pattern:after{color:var(--hot)}.peek-hint{color:var(--text-muted);margin-top:16px;font-size:.875rem}.confirmed-status{text-align:center;padding:24px}.confirmed-status p:first-child{color:var(--success);font-size:1.1rem;font-weight:600}.waiting{color:var(--text-muted);margin-top:8px;font-size:.875rem}.reveal-screen{text-align:center}.reveal-screen h1{color:var(--success);text-shadow:0 0 30px var(--success-glow);margin-bottom:8px}.category-display{color:var(--text-secondary);margin-bottom:24px;font-size:.9rem}.results-list{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:left;margin-bottom:24px;padding:20px}.results-list h3{text-align:center;margin-bottom:16px}.results-list ol{list-style:none}.result-item{border-bottom:1px solid var(--border);align-items:center;padding:14px 0;display:flex}.result-item:last-child{border-bottom:none;padding-bottom:0}.result-item:first-child{padding-top:0}.result-item .position{width:32px;color:var(--text-muted);font-size:.875rem;font-weight:600}.result-item .name{flex:1;font-weight:500}.result-item .number{color:var(--accent);font-family:Space Mono,monospace;font-size:1.25rem;font-weight:700}.game-board-screen{flex-direction:column;max-width:600px;min-height:100dvh;margin:0 auto;padding:24px 16px;display:flex}.board-labels{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);justify-content:space-between;margin-bottom:10px;padding:0 8px;font-size:.75rem;font-weight:600;display:flex}.game-board{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);margin-bottom:16px;padding:16px}.board-track{align-items:stretch;gap:8px;min-height:130px;display:flex}.board-slot{background:var(--bg-base);border:2px dashed var(--border);border-radius:var(--radius-md);cursor:pointer;flex:1;justify-content:center;align-items:center;min-width:65px;transition:all .2s;display:flex}.board-slot.empty:hover{border-color:var(--accent);background:var(--accent-subtle)}.board-slot.my-slot{border-color:var(--accent);box-shadow:0 0 20px var(--accent-glow);border-style:solid}.slot-placeholder{color:var(--text-muted);opacity:.3;font-family:Space Mono,monospace;font-size:1.25rem;font-weight:700}.player-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);cursor:grab;-webkit-user-select:none;user-select:none;width:100%;height:100%;min-height:110px;padding:12px 8px;transition:all .2s}.player-card:active{cursor:grabbing}.player-card.mine{background:linear-gradient(135deg,var(--accent)0%,#7c3aed 100%);box-shadow:0 4px 20px var(--accent-glow);border:none}.player-card.confirmed{opacity:.7;cursor:default}.player-card.dragging{opacity:.5;transform:scale(.95)}.player-card.unplaced{flex-shrink:0;width:75px;min-height:95px}.card-inner{text-align:center;flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex}.card-number{color:#fff;font-family:Space Mono,monospace;font-size:1.75rem;font-weight:700;line-height:1}.card-number.revealed{font-size:2rem}.card-hidden{color:var(--text-muted);font-family:Space Mono,monospace;font-size:2rem;font-weight:700}.player-card.mine .card-hidden{color:#fff9}.card-name{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin-top:6px;font-size:.7rem;font-weight:600;overflow:hidden}.player-card.mine .card-name{color:#ffffffe6}.card-hint{color:#ffffff80;margin-top:4px;font-size:.6rem}.card-locked{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);background:#ffffff1a;border-radius:4px;margin-top:6px;padding:3px 8px;font-size:.55rem;font-weight:600}.unplaced-area{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);flex-wrap:wrap;justify-content:center;gap:8px;min-height:50px;margin-bottom:16px;padding:20px;display:flex}.unplaced-area:empty{display:none}.board-actions{text-align:center;margin-top:auto;padding-top:16px}.board-hint{color:var(--text-muted);font-size:.875rem}.revealed-actions h2{color:var(--success);text-shadow:0 0 20px var(--success-glow);margin-bottom:20px;font-size:1.5rem}@media (min-width:481px){.screen{padding:40px 24px}h1{font-size:3rem}.home h1{font-size:4rem}.number-display .number{font-size:12rem}.board-track{min-height:150px}.player-card{min-height:130px}}.hot-take-home{text-align:center;justify-content:flex-start;padding-top:24px}.hot-take-home h1{background:linear-gradient(90deg,#a855f7 0% 25%,#f44 40%,#ff8c00 50%,#f44 60%,#a855f7 75% 100%) 0 0/300% 100%;-webkit-text-fill-color:transparent;color:#0000;letter-spacing:-.02em;word-spacing:-.15em;filter:drop-shadow(0 0 30px #a855f74d);-webkit-background-clip:text;background-clip:text;margin-bottom:12px;font-size:3.5rem;animation:.8s ease-out titleEntry,3s ease-in-out 1s infinite heatSweep}.hot-take-home .subtitle{margin-bottom:32px;font-size:1.1rem;animation:.6s ease-out .2s both fadeUp}.hot-take-home .how-to-play{margin-bottom:32px;animation:.6s ease-out .4s both fadeUp}.hot-take-home .button-group{margin-top:auto;padding-top:0;animation:.6s ease-out .6s both fadeUp}.join-input-group{gap:8px;width:100%;max-width:300px;margin:0 auto;display:flex}.join-input-group input{letter-spacing:.15em;text-transform:uppercase;text-align:center;border:2px solid var(--border);background:var(--bg-secondary);color:var(--text);border-radius:12px;flex:1;padding:14px 16px;font-family:inherit;font-size:1.1rem;font-weight:600;transition:border-color .2s,box-shadow .2s}.join-input-group input::placeholder{letter-spacing:normal;text-transform:none;font-size:1rem;font-weight:400}.join-input-group input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #a855f726}.join-input-group .btn-join{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:12px;padding:14px 20px;font-size:1rem;font-weight:600;transition:background .2s,transform .1s}.join-input-group .btn-join:hover:not(:disabled){background:var(--accent-hover)}.join-input-group .btn-join:disabled{opacity:.5;cursor:not-allowed}.hot-take-home .error-message{color:var(--hot);margin-top:16px;font-size:.9rem}.name-input-section{background:var(--bg-secondary);border-radius:12px;align-items:center;gap:12px;margin-bottom:20px;padding:16px;display:flex}.name-input-section label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);white-space:nowrap;font-size:.75rem;font-weight:600}.name-input-section input{border:2px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;flex:1;padding:12px 14px;font-family:inherit;font-size:1rem;transition:border-color .2s}.name-input-section input:focus{border-color:var(--accent);outline:none}.name-input-section .name-check{color:#22c55e;font-size:1.2rem}.players-list li{align-items:center;gap:8px;display:flex}.players-list li .player-name{flex:1}.players-list li .player-check{color:#22c55e;font-size:.9rem}.players-list li .player-unnamed{color:var(--text-secondary);flex:1;font-style:italic}.players-list li.unnamed{opacity:.7}.single-device-setup{padding-top:24px}.single-device-setup h1{text-align:center;background:linear-gradient(135deg,var(--accent)0%,var(--hot)100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:8px;font-size:2rem}.single-device-setup .subtitle{text-align:center;margin-bottom:24px}.setup-section{margin-bottom:20px}.setup-section>label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:10px;font-size:.75rem;font-weight:600;display:block}.setup-section>input{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;color:var(--text-primary);outline:none;padding:14px 16px;font-family:inherit;font-size:1rem;transition:all .2s}.setup-section>input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}.player-count-selector{flex-wrap:wrap;gap:8px;display:flex}.count-btn{border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border);width:48px;height:48px;color:var(--text-primary);cursor:pointer;font-family:Space Mono,monospace;font-size:1.25rem;font-weight:700;transition:all .2s}.count-btn:hover{border-color:var(--accent);background:var(--bg-card-hover)}.count-btn.active{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 0 15px var(--accent-glow)}.player-names-list{flex-direction:column;gap:8px;display:flex}.player-names-list input{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;color:var(--text-primary);outline:none;padding:12px 14px;font-family:inherit;font-size:.9rem;transition:all .2s}.player-names-list input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}.player-names-list input::placeholder{color:var(--text-muted)}.pass-play-waiting{text-align:center;justify-content:space-between}.pass-content{flex-direction:column;flex:1;justify-content:center;align-items:center;padding:20px;display:flex}.pass-icon{margin-bottom:24px;font-size:4rem;animation:3s ease-in-out infinite float}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.pass-content h2{color:var(--text-secondary);margin-bottom:8px;font-size:1.25rem;font-weight:500}.pass-player-name{color:var(--accent);text-shadow:0 0 30px var(--accent-glow);margin-bottom:24px;font-family:Space Mono,monospace;font-size:2.5rem;font-weight:700}.pass-instruction{color:var(--text-muted);max-width:280px;margin-bottom:32px;font-size:.9rem;line-height:1.5}.pass-progress{justify-content:center;gap:8px;display:flex}.progress-dot{background:var(--bg-card);border:2px solid var(--border);border-radius:50%;width:12px;height:12px;transition:all .3s}.progress-dot.seen{background:var(--success);border-color:var(--success);box-shadow:0 0 10px var(--success-glow)}.progress-dot.current{background:var(--accent);border-color:var(--accent);box-shadow:0 0 10px var(--accent-glow);animation:1.5s ease-in-out infinite pulse}.pass-play-reveal{cursor:pointer;-webkit-user-select:none;user-select:none;background:radial-gradient(ellipse at center,var(--hot-glow)0%,transparent 60%);justify-content:center;align-items:center}.reveal-player-name{color:var(--accent);text-align:center;margin-bottom:16px;font-size:1.25rem;font-weight:600}.player-card.single-device{background:var(--bg-elevated);border:1px solid var(--border);cursor:grab}.player-card.single-device:hover{border-color:var(--accent);background:var(--bg-card-hover)}.player-card.single-device:active{cursor:grabbing}.player-card.single-device .card-hint{color:var(--text-muted)}
