:root{--neon-pink: #ff00de;--neon-cyan: #0ff;--neon-green: #39ff14;--neon-gold: #ffcc00;--neon-yellow: #f0ff00;--dark-bg: #08080c;--card-bg: rgba(255, 255, 255, .05);--glass-border: rgba(255, 255, 255, .1)}html,body{height:100dvh;margin:0;overflow:hidden;touch-action:manipulation;-webkit-user-select:none;user-select:none}body{background-color:var(--dark-bg);background-image:radial-gradient(circle at 50% 50%,rgba(255,0,222,.04) 0%,transparent 60%),radial-gradient(circle at 10% 90%,rgba(0,255,255,.04) 0%,transparent 40%);color:#fff;font-family:Inter,system-ui,sans-serif}::-webkit-scrollbar{display:none}*{scrollbar-width:none;-ms-overflow-style:none;box-sizing:border-box;margin:0;padding:0}.app-container{width:100%;max-width:600px;margin:0 auto;height:100dvh;display:flex;flex-direction:column;padding:0 8px;overflow:hidden}.neon-header{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--glass-border)}.user-info{display:flex;align-items:center;gap:8px}.nickname-display{font-size:.75rem;color:var(--neon-cyan);opacity:.8;font-family:monospace}.btn-mini{padding:4px 6px;font-size:.55rem;opacity:.6;height:26px}.btn-mini:hover{opacity:1}.neon-header h1{font-size:1rem;letter-spacing:3px;text-transform:uppercase;background:linear-gradient(to right,var(--neon-cyan),var(--neon-pink));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.header-controls{display:flex;align-items:center;gap:15px}.sound-toggle{background:transparent;border:1px solid var(--glass-border);width:38px;height:38px;border-radius:50%;cursor:pointer;display:flex;justify-content:center;align-items:center;transition:.3s}.sound-toggle.active{border-color:var(--neon-cyan);box-shadow:0 0 10px var(--neon-cyan)}.neon-card{background:var(--card-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:24px;padding:12px;margin-bottom:8px;box-shadow:0 10px 40px #0006}.neon-button{background:#ffffff08;color:#fff;border:1px solid var(--glass-border);padding:14px 20px;border-radius:14px;font-weight:700;cursor:pointer;text-transform:uppercase;letter-spacing:1px;transition:.3s cubic-bezier(.4,0,.2,1)}.neon-button:hover:not(:disabled){background:#ffffff14;transform:translateY(-2px)}.neon-button.primary{border-color:var(--neon-cyan);color:var(--neon-cyan)}.neon-button.primary:hover:not(:disabled){background:var(--neon-cyan);color:#000;box-shadow:0 0 20px var(--neon-cyan)}.neon-button.secondary{border-color:var(--neon-pink);color:var(--neon-pink)}.neon-button.secondary:hover:not(:disabled){background:var(--neon-pink);color:#000;box-shadow:0 0 20px var(--neon-pink)}.neon-button:disabled{opacity:.2;cursor:not-allowed;transform:none!important}.neon-button.full-width{width:100%}.neon-input{background:#0000004d;border:1px solid var(--glass-border);padding:16px;border-radius:14px;color:#fff;width:100%;font-size:1rem;outline:none;transition:.3s}.room-chat{margin-top:10px;display:flex;flex-direction:column;height:200px;padding:8px;width:100%}.chat-messages{flex:1;overflow-y:auto;margin-bottom:8px;display:flex;flex-direction:column;gap:4px}.chat-msg{font-size:.8rem;line-height:1.2}.msg-time{opacity:.5;font-size:.65rem;margin-right:4px}.msg-sender{font-weight:700;color:var(--neon-cyan);margin-right:4px}.msg-text{color:#fff}.chat-form{display:flex;gap:6px;height:32px}.chat-input{flex:1;background:#ffffff0d;border:1px solid var(--glass-border);color:#fff;padding:0 10px;border-radius:4px;font-size:.85rem}.chat-empty{opacity:.3;text-align:center;font-size:.75rem;margin-top:20px}.neon-input:focus{border-color:var(--neon-cyan);box-shadow:0 0 15px #0ff3}.dice-arena{height:clamp(240px,40vh,320px);background:radial-gradient(circle at center,rgba(255,255,255,.03) 0%,transparent 80%);border:1px solid var(--glass-border);border-radius:30px;margin:5px 0;position:relative;overflow:hidden;box-shadow:inset 0 0 60px #0009}.dice-container{position:relative;width:100%;height:100%}.dice-body{width:62px;height:62px;background:#000;border:1px solid var(--neon-cyan);border-radius:12px;display:flex;justify-content:center;align-items:center;cursor:pointer;box-shadow:var(--neon-shadow);transition:border-color .2s,box-shadow .2s;position:absolute;top:50%;left:50%;margin-left:-31px;margin-top:-31px;transform:translate(var(--tx),var(--ty)) rotate(var(--tr));-webkit-user-select:none;user-select:none;will-change:transform}.dice-body.rolling{pointer-events:none}.dice-body.selected{border-color:var(--neon-pink)!important;box-shadow:0 0 20px var(--neon-pink)}.dice-body.can-select{animation:pickPulse 1.5s infinite}@keyframes pickPulse{0%,to{border-color:var(--neon-cyan);box-shadow:0 0 5px var(--neon-cyan)}50%{border-color:#fff;box-shadow:0 0 18px var(--neon-cyan)}}.dot{border-radius:50%;opacity:0;background:#fff;transition:.3s}.dot.visible{opacity:1;background:var(--neon-cyan);box-shadow:0 0 10px var(--neon-cyan)}.selected .dot.visible{background:var(--neon-pink);box-shadow:0 0 10px var(--neon-pink)}.dots-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:100%;height:100%;gap:4px;padding:12px;box-sizing:border-box}.scoreboard{border-radius:12px;overflow:hidden;margin-bottom:2px;display:flex;flex-direction:column;flex-shrink:0}@media (max-width: 500px){.scoreboard{flex-direction:column;overflow-y:auto;overflow-x:hidden;background:#0003;gap:2px;padding:2px;max-height:100px}.score-row{flex-shrink:0;padding:4px 10px!important;border-radius:8px;border:1px solid var(--glass-border);flex-direction:row!important;width:100%;justify-content:space-between}}.score-row{display:flex;justify-content:space-between;align-items:center;padding:6px 12px;border-bottom:1px solid rgba(255,255,255,.05);transition:background .3s,opacity .3s}.score-row:last-child{border-bottom:none}.score-row.active-turn{background:#00ffff14;border-left:3px solid var(--neon-cyan)}.score-row.waiting-entry{opacity:.6}.score-main{display:flex;align-items:center;gap:10px}.strikes-display{color:var(--neon-pink);font-weight:900;letter-spacing:2px;text-shadow:0 0 8px var(--neon-pink);font-family:monospace}.score-name{font-size:.9rem;opacity:.85}.score-right{display:flex;align-items:center;gap:6px}.neon-button.gold-border{border-color:var(--neon-gold);color:var(--neon-gold);text-shadow:0 0 10px var(--neon-gold);box-shadow:0 0 15px #ffcc001a;animation:goldPulse 2s infinite}@keyframes goldPulse{0%,to{border-color:var(--neon-gold);box-shadow:0 0 5px var(--neon-gold)}50%{border-color:#fff;box-shadow:0 0 20px var(--neon-gold)}}.score-pending{font-size:.75rem;color:var(--neon-gold);background:#ffc80026;padding:2px 7px;border-radius:10px;animation:pendingPulse 1s infinite alternate}@keyframes pendingPulse{0%{opacity:.7}to{opacity:1}}.score-name{font-weight:700;font-size:.9rem;display:flex;align-items:center;gap:5px}.score-strikes{color:#ff003c;text-shadow:0 0 5px #ff003c;font-size:.8rem;letter-spacing:1px}.score-value{font-weight:700;font-size:1.05rem;color:var(--neon-cyan);min-width:55px;text-align:right}.score-max{font-size:.65rem;opacity:.35}.score-item{display:flex;justify-content:space-between;padding:12px 16px;margin-bottom:8px;border-radius:12px;background:#ffffff05}.score-item.active{background:#00ffff14;border-left:3px solid var(--neon-cyan)}.victory-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000eb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:5000;display:flex;justify-content:center;align-items:center;animation:fadeIn .4s ease-out}.confetti-container{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:5001}.confetti-particle{position:absolute;top:-12px;border-radius:2px;animation:confettiFall linear forwards;opacity:0}@keyframes confettiFall{0%{transform:translateY(0) translate(0) rotate(0);opacity:1}80%{opacity:1}to{transform:translateY(110vh) translate(var(--drift)) rotate(var(--rotation));opacity:0}}.victory-card{position:relative;width:92%;max-width:380px;text-align:center;z-index:5002;overflow:hidden;animation:victoryCardIn .5s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes victoryCardIn{0%{opacity:0;transform:scale(.8) translateY(30px)}to{opacity:1;transform:scale(1) translateY(0)}}.victory-glow{position:absolute;top:-40px;right:-40px;bottom:-40px;left:-40px;background:radial-gradient(ellipse at 30% 40%,rgba(255,0,222,.25) 0%,transparent 60%),radial-gradient(ellipse at 70% 60%,rgba(0,255,255,.2) 0%,transparent 60%);z-index:-1;animation:glowPulse 2.5s ease-in-out infinite alternate;pointer-events:none}@keyframes glowPulse{0%{opacity:.6}to{opacity:1}}.victory-trophy{font-size:3.5rem;margin-bottom:8px;animation:trophyBounce 1s cubic-bezier(.34,1.56,.64,1) .2s both;display:block}@keyframes trophyBounce{0%{transform:scale(0) rotate(-20deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}.victory-title{font-size:2rem;font-weight:900;letter-spacing:4px;background:linear-gradient(135deg,var(--neon-pink),var(--neon-cyan));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:titleFlicker 3s step-end infinite 1s;margin-bottom:20px}@keyframes titleFlicker{0%,95%,to{opacity:1}96%{opacity:.7}97%{opacity:.5}}.winner-announcement{margin-bottom:24px}.victory-label{font-size:.65rem;opacity:.5;letter-spacing:2px;text-transform:uppercase;margin-bottom:6px}.winner-name{font-size:2.2rem;font-weight:900;color:var(--neon-pink);text-shadow:0 0 10px var(--neon-pink),0 0 30px rgba(255,0,222,.5);display:block;animation:nameShine 2s ease-in-out infinite alternate}@keyframes nameShine{0%{text-shadow:0 0 10px var(--neon-pink),0 0 20px rgba(255,0,222,.4)}to{text-shadow:0 0 20px var(--neon-pink),0 0 50px rgba(255,0,222,.7),0 0 80px rgba(255,0,222,.3)}}.final-scoreboard{margin:0 0 24px;border-top:1px solid var(--glass-border);padding-top:16px}.scoreboard-heading{font-size:.6rem;letter-spacing:2px;opacity:.4;text-transform:uppercase;margin-bottom:12px}.final-row{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:12px;margin-bottom:8px;background:#ffffff08;border:1px solid transparent;transition:border-color .3s}.final-row--winner{background:#ff00de14;border-color:#ff00de4d}.final-rank{font-size:.65rem;opacity:.4;min-width:22px;font-family:monospace}.final-name{flex:1;font-size:.9rem;text-align:left;opacity:.9}.final-row--winner .final-name{color:var(--neon-pink);font-weight:700}.final-val{font-weight:700;font-size:1rem;color:var(--neon-cyan);font-family:monospace}.final-unit{font-size:.65rem;opacity:.5}.victory-btn{margin-top:4px}.game-room-layout{display:flex;flex-direction:column;height:100dvh;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);gap:4px;justify-content:flex-start}.game-area{display:flex;flex-direction:column;gap:4px}.game-main-horizontal-layout{display:flex;flex-direction:row;justify-content:center;align-items:stretch;flex:1;min-height:0;width:100%;overflow:hidden}@media (min-width: 600px){.game-main-horizontal-layout{gap:20px}}.storage-grid{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;justify-content:center}.storage-label{font-size:.5rem;letter-spacing:1px;opacity:.4;text-align:center;text-transform:uppercase;margin-bottom:4px}.lobby-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.room-list{display:flex;flex-direction:column;gap:12px}.room-item{display:flex;justify-content:space-between;align-items:center;padding:18px!important}.room-info h3{color:var(--neon-cyan);margin-bottom:2px;font-size:1.1rem}.room-tag-sm{font-size:.65rem;opacity:.4;font-weight:400;margin-left:4px}.reaction-trigger-sm{background:var(--card-bg);border:1px solid var(--glass-border);width:32px;height:32px;border-radius:50%;font-size:1.1rem;cursor:pointer;display:flex;justify-content:center;align-items:center}.online-players-card{padding:16px!important;margin-bottom:15px}.online-list-horizontal{display:flex;gap:8px;overflow-x:auto;padding-bottom:5px;-webkit-overflow-scrolling:touch}.online-user-pill{background:#00ffff1a;color:var(--neon-cyan);padding:4px 10px;border-radius:20px;font-size:.65rem;white-space:nowrap;border:1px solid rgba(0,255,255,.2)}.creation-pane{padding:18px!important;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.points-display-row{display:flex;justify-content:center;align-items:center;height:48px;flex-shrink:0}.pts-main{display:flex;gap:15px;align-items:center;padding:4px 20px!important;border-radius:20px;border:1px solid var(--neon-green)!important;margin-bottom:0!important}.pts-label{font-size:.7rem;opacity:.6;text-transform:uppercase}.pts-bank{font-size:1.2rem;font-weight:900;color:var(--neon-green);text-shadow:0 0 10px var(--neon-green)}.pts-selection{font-size:.9rem;color:var(--neon-pink)}.action-stack{height:60px;flex-shrink:0;display:flex;align-items:flex-start;padding-bottom:env(safe-area-inset-bottom)}.btn-row{display:flex;width:100%;gap:6px;height:50px}.neon-button.grow-2{flex:2;height:100%;padding:0;font-size:.8rem}.neon-button.grow-1{flex:1.2;height:100%;padding:0;font-size:.8rem}.neon-button.d-btn{border-color:var(--color-gold)!important;color:var(--color-gold)!important;font-size:.8rem;padding:0 4px!important}.wait-pill{width:100%;text-align:center;padding:12px;border-radius:30px;font-size:.8rem;letter-spacing:2px;opacity:.6}.global-error-toast{position:fixed;top:90px;left:50%;transform:translate(-50%);z-index:9999;padding:14px 20px!important;color:#ff3e3e;border-color:#ff3e3e!important}.wait-message{text-align:center;padding:20px!important;font-size:.9rem;border-color:var(--neon-cyan)!important}.neon-text-pink{color:var(--neon-pink);text-shadow:0 0 10px var(--neon-pink)}.neon-text-cyan{color:var(--neon-cyan);text-shadow:0 0 10px var(--neon-cyan)}.status-badge{font-size:.6rem;padding:4px 8px;border-radius:4px;letter-spacing:1px}.status-badge.online{color:var(--neon-green);border:1px solid var(--neon-green)}.status-badge.offline{color:#ff3e3e;border:1px solid #ff3e3e}.fade-in{animation:fadeIn .5s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.firework-rocket{position:fixed;bottom:-50px;left:50%;transform:translate(-50%);font-size:2rem;z-index:9999;animation:rocketLaunch .8s ease-out forwards}@keyframes rocketLaunch{0%{bottom:-50px;opacity:1;transform:translate(-50%) scale(1)}80%{opacity:1}to{bottom:50%;opacity:0;transform:translate(-50%) scale(.5)}}.floating-emoji{position:fixed;pointer-events:none;z-index:9999;font-size:2.2rem;will-change:transform,opacity;-webkit-user-select:none;user-select:none}.neon-button.start-hero{background:#39ff1426!important;border:2px solid var(--neon-green)!important;color:var(--neon-green)!important;text-shadow:0 0 10px var(--neon-green);box-shadow:0 0 20px #39ff144d;font-size:1.1rem;font-weight:900;width:100%;margin-top:10px;animation:pulseNeonGreen 2s infinite}@keyframes pulseNeonGreen{0%{box-shadow:0 0 10px #39ff1433}50%{box-shadow:0 0 30px #39ff1480}to{box-shadow:0 0 10px #39ff1433}}.game-main-horizontal-layout{display:flex;flex-direction:row;width:100%;margin:2px 0;gap:4px;justify-content:center;align-items:flex-start}@media (min-width: 600px){.dice-arena-wrapper{flex-direction:row;height:320px;flex:none}}.dice-arena{width:460px;height:340px;background:radial-gradient(circle,#08080c,#000);position:relative;overflow:hidden}.dice-arena-wrapper{flex:1;display:flex;justify-content:center;align-items:center;position:relative;min-height:0;background:#0000004d;border-radius:20px;overflow:hidden;border:1px solid var(--glass-border)}.aside-storage{display:flex;flex-direction:column;width:55px;height:100%;border-left:1px solid var(--neon-pink);background:#ffffff0d;align-items:center;padding:8px 0;overflow-y:auto;flex-shrink:0}@media (min-width: 600px){.aside-storage{width:70px;height:320px;padding:10px 0;gap:8px}}.storage-label{font-size:.5rem;opacity:.4;text-transform:uppercase;margin-bottom:4px}.die-stored{width:38px;height:38px;background:#fff;color:#000;display:flex;justify-content:center;align-items:center;font-weight:900;border-radius:8px;font-size:1.1rem;box-shadow:0 3px #bbb;flex-shrink:0;animation:storageDrop .3s ease-out}@keyframes storageDrop{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.room-header-neon.compact{padding:8px 0;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--glass-border);margin-bottom:10px}.reactions-container{position:relative}.reaction-trigger{background:var(--card-bg);border:1px solid var(--glass-border);width:42px;height:42px;border-radius:50%;font-size:1.4rem;cursor:pointer;display:flex;justify-content:center;align-items:center;transition:.3s}.reaction-trigger:hover,.reaction-trigger.active{border-color:var(--neon-cyan);box-shadow:0 0 10px var(--neon-cyan)}.reactions-flyout{position:absolute;top:50px;right:0;padding:8px;border-radius:12px;display:flex;gap:8px;z-index:1000;box-shadow:0 10px 30px #00000080;animation:slideDown .2s ease-out}.reaction-btn-mini{background:transparent;border:none;font-size:1.5rem;cursor:pointer;transition:transform .2s}.reaction-btn-mini:active{transform:scale(.8)}.die-stored.locked{background:#ffffff1a;color:#ffffff80;border:1px solid rgba(255,255,255,.1);box-shadow:none}.die-stored.active{cursor:pointer;border:1px solid var(--neon-cyan)}.die-stored.active.pulse{animation:storagePulse 2s infinite}@keyframes storagePulse{0%,to{border-color:var(--neon-cyan);box-shadow:0 0 5px var(--neon-cyan)}50%{border-color:#fff;box-shadow:0 0 15px var(--neon-cyan)}}.reaction-buttons-row{display:none}.completion-modal{width:90%;max-width:400px;padding:30px;text-align:center;border-radius:20px;animation:modalPop .4s cubic-bezier(.175,.885,.32,1.275)}.completion-modal h3{font-size:2rem;margin-bottom:15px}.completion-warning{color:#ff3e3e;font-size:.9rem;margin:15px 0;font-weight:700}.completion-actions{display:flex;flex-direction:column;gap:12px;margin-top:20px}@keyframes modalPop{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}
