@font-face{font-family:RussoOne;src:url(/fonts/RussoOne-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"Press Start 2P";src:url(/fonts/PressStart2P-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{color-scheme:dark;--font-sans: "RussoOne", "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "SFMono-Regular", ui-monospace, monospace;--font-arcade: "Press Start 2P", monospace;--color-bg: #060810;--color-bg-elevated: #0b1020;--color-bg-soft: #11182d;--color-surface: rgba(91, 231, 255, .08);--color-surface-strong: rgba(91, 231, 255, .14);--color-border: rgba(91, 231, 255, .18);--color-border-strong: rgba(184, 113, 255, .32);--color-text: #f5f7ff;--color-text-soft: #cfd8f8;--color-text-muted: #92a0c7;--color-brand: #5be7ff;--color-brand-strong: #7df0ff;--color-brand-ink: #04131a;--color-accent: #b871ff;--color-accent-soft: rgba(184, 113, 255, .2);--color-warning: #ffcf5a;--color-warning-soft: rgba(255, 207, 90, .18);--color-success: #4dffb8;--color-success-soft: rgba(77, 255, 184, .18);--color-danger: #ff5c98;--color-danger-soft: rgba(255, 92, 152, .18);--gradient-bg: radial-gradient(circle at top, rgba(91, 231, 255, .08) 0%, transparent 32%), radial-gradient(circle at bottom, rgba(184, 113, 255, .1) 0%, transparent 36%), linear-gradient(180deg, #0b1020 0%, #060810 100%);--gradient-surface: linear-gradient(180deg, rgba(255, 255, 255, .05) 0%, rgba(91, 231, 255, .04) 100%);--gradient-surface-strong: linear-gradient(180deg, rgba(184, 113, 255, .14) 0%, rgba(91, 231, 255, .1) 100%);--gradient-brand: linear-gradient(135deg, #7df0ff 0%, #5be7ff 45%, #49b8ff 100%);--gradient-brand-hover: linear-gradient(135deg, #9bf4ff 0%, #70ebff 45%, #62c6ff 100%);--gradient-accent: linear-gradient(135deg, #d38cff 0%, #b871ff 48%, #7f6dff 100%);--gradient-accent-hover: linear-gradient(135deg, #dea4ff 0%, #c68bff 48%, #9584ff 100%);--gradient-success: linear-gradient(135deg, #72ffca 0%, #4dffb8 50%, #32d6b5 100%);--gradient-danger: linear-gradient(135deg, #ff86b3 0%, #ff5c98 48%, #ff477e 100%);--gradient-warning: linear-gradient(135deg, #ffe27f 0%, #ffcf5a 48%, #ffb347 100%);--shadow-sm: 0 10px 24px rgba(0, 0, 0, .3), 0 0 16px rgba(91, 231, 255, .1);--shadow-md: 0 18px 48px rgba(0, 0, 0, .38), 0 0 24px rgba(91, 231, 255, .14);--shadow-focus: 0 0 0 3px rgba(91, 231, 255, .22), 0 0 22px rgba(91, 231, 255, .24);--shadow-brand-glow: 0 0 12px rgba(91, 231, 255, .32), 0 0 28px rgba(91, 231, 255, .16);--shadow-accent-glow: 0 0 12px rgba(184, 113, 255, .28), 0 0 28px rgba(184, 113, 255, .14);--shadow-success-glow: 0 0 12px rgba(77, 255, 184, .28), 0 0 28px rgba(77, 255, 184, .14);--shadow-danger-glow: 0 0 12px rgba(255, 92, 152, .28), 0 0 28px rgba(255, 92, 152, .14);--color-overlay: rgba(4, 8, 18, .72);--color-selection: rgba(91, 231, 255, .28);--radius-sm: 10px;--radius-md: 16px;--radius-lg: 22px;--radius-xl: 28px;--radius-pill: 999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--container-width: 1180px;--line-height: 1.5;--button-height: 44px;--input-height: 44px;--touch-target: 44px;--transition-fast: .14s ease;--transition-base: .22s ease}*,*:before,*:after{box-sizing:border-box}*{min-width:0}html{font-size:16px}body,h1,h2,h3,h4,p,ul{margin:0}ul{padding:0;list-style:none}button,input,textarea,select{font:inherit}button{border:0;background:none;color:inherit}img,svg,canvas{display:block;max-width:100%}html,body,#root{min-height:100%}body{background:radial-gradient(circle at top,var(--color-accent-soft),transparent 30%),linear-gradient(180deg,var(--color-bg-elevated) 0%,var(--color-bg) 100%);color:var(--color-text);font-family:var(--font-sans);line-height:var(--line-height)}#root{width:100%}a{color:inherit}strong{font-weight:700}::selection{background:var(--color-accent-soft)}:focus-visible{outline:none;box-shadow:var(--shadow-focus)}body>*{width:100%}main,.app-shell{width:min(100% - 32px,var(--container-width));margin:0 auto}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.stack.compact{gap:var(--space-1)}.inline{display:flex;align-items:center;gap:var(--space-3)}.wrap{flex-wrap:wrap}.muted{color:var(--color-text-muted)}.center{display:grid;place-items:center}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}button,input[type=text],input[type=number],input:not([type]),select,textarea{transition:border-color var(--transition-fast),background-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast),opacity var(--transition-fast),box-shadow var(--transition-fast)}button{display:inline-flex;align-items:center;justify-content:center;min-height:var(--button-height);padding:0 var(--space-4);border:1px solid transparent;border-radius:var(--radius-pill);background:linear-gradient(180deg,var(--color-brand-strong),var(--color-brand));color:var(--color-brand-ink);font-weight:700;cursor:pointer;box-shadow:var(--shadow-sm)}button:hover:not(:disabled){transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(0)}button:disabled{cursor:not-allowed;opacity:.5;box-shadow:none}input[type=text],input[type=number],input:not([type]),textarea,select{width:100%;min-height:var(--input-height);padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-soft);color:var(--color-text)}input::placeholder,textarea::placeholder{color:var(--color-text-muted)}input:disabled,textarea:disabled,select:disabled{opacity:.6;cursor:not-allowed}input[type=range]{width:100%;accent-color:var(--color-brand);cursor:pointer}input[type=range]:disabled{cursor:not-allowed;opacity:.5}.card,.connection-pill{border:1px solid var(--color-border);background:linear-gradient(180deg,var(--color-surface-strong),var(--color-surface));box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.card{padding:var(--space-4);border-radius:var(--radius-lg)}.badge,.connection-pill{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:28px;padding:0 12px;border-radius:var(--radius-pill);color:var(--color-text-soft);white-space:nowrap;background:var(--color-surface-strong)}.badge.is-success{color:var(--color-success);background:var(--color-success-soft)}.badge.is-warning{color:var(--color-warning);background:var(--color-warning-soft)}.badge.is-danger{color:var(--color-danger);background:var(--color-danger-soft)}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--color-text-muted);box-shadow:0 0 0 4px var(--color-surface)}.status-dot[data-state=connected]{background:var(--color-success)}.status-dot[data-state=disconnected]{background:var(--color-danger)}.connection-pill[data-status=connected]{color:var(--color-success);background:var(--color-success-soft)}.connection-pill[data-status=connecting]{color:var(--color-warning);background:var(--color-warning-soft)}.connection-pill[data-status=disconnected]{color:var(--color-danger);background:var(--color-danger-soft)}.section{display:flex;flex-direction:column;gap:var(--space-4)}.section-header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.section-header h2{font-family:var(--font-sans);font-size:.9rem;line-height:1.4;letter-spacing:.04em}.section-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}@media(max-width:720px){.section-actions{justify-content:flex-start}}.avatar{aspect-ratio:1 / 1;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:transform .15s ease,background .15s ease,border-color .15s ease,box-shadow .15s ease,opacity .15s ease}.avatar.sm{width:32px;height:32px}.avatar.md{width:48px;height:48px}.avatar.lg{width:72px;height:72px}.avatar img{width:100%;height:100%;object-fit:cover;display:block;transition:filter .15s ease,transform .15s ease}.avatar-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--space-3)}.avatar-grid button.avatar{width:100%;height:auto;padding:0;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer}.avatar-grid button.avatar:hover{transform:translateY(-2px) scale(1.05);background:var(--color-surface-strong);border-color:var(--color-border-strong)}.avatar-grid button.avatar:hover img{filter:brightness(1.08) saturate(1.12)}.avatar-grid button.avatar.selected{border-color:var(--color-brand);background:var(--color-warning-soft);box-shadow:0 0 10px var(--color-warning-soft);transform:scale(1.1)}.avatar-grid button.avatar:disabled{opacity:1}.avatar-grid button.avatar.selected img{filter:brightness(1.08) saturate(1.15)}@media(max-width:640px){.avatar-grid{grid-template-columns:repeat(4,1fr)}}.app-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:10px;padding:10px 14px;overflow:hidden}.app-header>.title{margin:0;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--font-sans);font-size:1.2rem;font-weight:400;line-height:1.4;letter-spacing:.04em}.app-header>.user{display:inline-flex;align-items:center;gap:8px;min-width:0}.app-header>.user>button{width:auto;min-width:0;max-width:180px;margin:0;padding:6px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto;gap:var(--space-2)}.app-header>.user>.status{width:10px;height:10px;border-radius:999px;flex:0 0 auto;background:var(--color-text-muted)}.app-header>.user>.status[data-status=connected]{background:var(--color-success)}.app-header>.user>.status[data-status=connecting]{background:var(--color-warning)}.app-header>.user>.status[data-status=disconnected]{background:var(--color-text-muted)}.app-header>.user>.status[data-status=error]{background:var(--color-danger)}.name-screen{gap:var(--space-4)}.name-row{display:flex;gap:var(--space-3);align-items:stretch}.name-row>input{flex:1 1 auto;min-width:0}.name-row>button{flex:0 0 auto}.actions{display:flex;gap:var(--space-2)}@media(max-width:640px){.name-row{flex-wrap:wrap}.name-row>input{flex:1 1 100%}.name-row>button{width:100%}}.room-setup{gap:var(--space-4)}.create-row,.join-row{display:flex;gap:var(--space-3)}.create-row>button{width:100%}.join-row>button{flex:0 0 auto}.join-row>input{flex:1 1 auto}@media(max-width:640px){.join-row{flex-direction:column}.join-row>button,.join-row>input{width:100%}}.lobby{gap:var(--space-4)}.players{display:grid;gap:var(--space-3);grid-template-columns:1fr}.player-avatar{display:flex;align-items:center;justify-content:center;flex-shrink:0}.player-content{display:grid;gap:.4rem;min-width:0}.player-top,.player-bottom{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;justify-content:space-between;column-gap:var(--space-2);min-width:0}.player-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700;font-size:1.1rem;line-height:1.1}.player-meta,.player-state{display:flex;align-items:center;gap:var(--space-2);min-width:0}.player-meta{flex-wrap:wrap}.player-state{justify-content:flex-end;flex-shrink:0}.player-you-badge,.player-host-badge,.player-ready-badge{white-space:nowrap}.status-dot{position:absolute;top:12px;left:12px;width:12px;height:12px;border:2px solid var(--color-text)}@media(max-width:479px){.player-top,.player-bottom{column-gap:.5rem}.player-name{font-size:1rem}}@media(min-width:640px){.players{grid-template-columns:repeat(2,minmax(0,1fr))}}:root{--bet-step-size: 10%;--bet-control-rail: 44px;--game-sidebar-width: 360px}.game-screen{gap:var(--space-4)}.game-screen>.game-layout{display:grid;grid-template-columns:1fr;gap:var(--space-4);min-height:0}.game-status{font-size:.95rem}.game-board{display:flex;align-items:stretch;gap:var(--space-3);min-width:0}.game-board>.slot-machine{flex:1 1 auto;min-width:0}.game-players-scroll{height:calc(100vh - 360px);overflow-y:auto}.game-players{display:grid;gap:var(--space-3);list-style:none}.player-card{position:relative;display:flex;flex-direction:row;align-items:center;gap:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:linear-gradient(180deg,var(--color-surface-strong),var(--color-surface));box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.player-card>.player-content{display:flex;flex-direction:column;gap:var(--space-2);flex:1}.player-card[data-current=true]{border-color:var(--color-brand);box-shadow:0 0 0 1px var(--color-warning-soft),var(--shadow-sm)}.player-card[data-online=false]{opacity:.72}.player-card[data-eliminated=true]{opacity:.6}.player-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.player-tags{display:flex;align-items:center;gap:var(--space-2);min-width:0;flex-wrap:wrap}.player-name{font-weight:700;color:var(--color-text)}.player-values{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2);font-size:.95rem;color:var(--color-text-muted)}.player-values>span{text-align:center}.slot-machine{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;gap:var(--space-2)}.slot-row{display:grid;gap:var(--space-2)}.slot-cell{display:grid;place-items:center;aspect-ratio:1 / 1;width:56px;height:56px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:linear-gradient(180deg,var(--color-surface-strong),var(--color-surface))}.slot-cell[data-win=true]{border-color:var(--color-brand);background:linear-gradient(180deg,var(--color-warning-soft),var(--color-surface))}.slot-empty{min-height:160px;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:linear-gradient(180deg,var(--color-surface-strong),var(--color-surface));box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.slot-symbol{width:90%;height:90%;object-fit:contain;object-position:center;display:block;pointer-events:none;-webkit-user-select:none;user-select:none}.bet-controls{display:flex;flex:0 0 var(--bet-control-rail);flex-direction:column;align-items:center;justify-content:stretch;width:var(--bet-control-rail)}.bet-stack{position:relative;display:flex;flex-direction:column-reverse;justify-content:flex-start;width:100%;min-height:160px;max-height:260px;flex:1 1 auto;touch-action:none;-webkit-user-select:none;user-select:none;cursor:ns-resize}.bet-stack[data-disabled=true]{cursor:not-allowed;opacity:.5}.bet-step{width:100%;height:var(--bet-step-size);flex:0 0 var(--bet-step-size);border:0;border-radius:999px;background:var(--color-surface-strong);box-shadow:inset 0 1px 0 var(--color-surface);pointer-events:none}.bet-step.is-active{background:linear-gradient(180deg,var(--color-brand-strong),var(--color-brand));box-shadow:0 0 8px var(--color-warning-soft),inset 0 1px #ffffff40}.bet-value{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:2px 8px;border-radius:var(--radius-pill);background:var(--color-bg-elevated);font-family:var(--font-arcade);font-weight:400;font-size:.65rem;letter-spacing:.04em;color:var(--color-text);pointer-events:none}.round-timer{position:absolute;left:50%;transform:translate(-50%);padding:4px 12px;border-radius:999px;font-family:var(--font-arcade);font-weight:400;font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text);background:var(--color-bg-elevated);border:1px solid var(--color-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 0 10px #0006,inset 0 1px 0 var(--color-surface);transition:all .2s ease}.round-timer.is-urgent{color:var(--color-danger);border-color:var(--color-danger);box-shadow:0 0 12px var(--color-danger-soft),0 0 24px var(--color-danger-soft),inset 0 1px #fff3;animation:timer-pulse .8s ease-in-out infinite}@keyframes timer-pulse{0%{transform:translate(-50%) scale(1)}50%{transform:translate(-50%) scale(1.1)}to{transform:translate(-50%) scale(1)}}@media(min-width:560px){.game-screen>.game-layout{grid-template-columns:minmax(0,1fr) minmax(280px,360px);align-items:start}.game-board{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;grid-column:1;grid-row:1;gap:var(--space-3);min-width:0}.game-board>.slot-machine{grid-column:1;grid-row:1;min-width:0}.game-board>.bet-controls{grid-column:1;grid-row:2;width:100%;height:var(--bet-control-rail);flex:0 0 auto}.game-players-scroll{grid-column:2;grid-row:1;align-self:start;height:calc(100vh - 170px);overflow-y:auto}.bet-controls{width:100%;height:var(--bet-control-rail);flex:0 0 auto}.bet-stack{flex-direction:row;align-items:center;justify-content:flex-start;width:100%;height:42px;min-height:0;max-height:none;cursor:ew-resize}.bet-step{width:auto;height:100%;flex:1 1 0}}.win-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:24px;overflow:hidden;background:#060a12c7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:win-overlay-fade-in .22s ease-out}.coin-rain{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:2}.coin{position:absolute;top:-20%;left:var(--x);width:var(--size);height:var(--size);opacity:var(--opacity);will-change:transform,opacity;animation:coin-fall var(--duration) linear infinite;animation-delay:var(--delay)}.coin:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:url(/img/coin.png);background-size:contain;background-repeat:no-repeat;background-position:center;filter:drop-shadow(0 0 6px rgba(255,200,80,.55)) drop-shadow(0 0 14px rgba(255,200,80,.3));transform-origin:center;will-change:transform,filter;animation:coin-wobble calc(var(--duration) * .9) ease-in-out infinite,coin-rotate calc(var(--duration) * .55) linear infinite,coin-glow calc(var(--duration) * .7) ease-in-out infinite;animation-delay:var(--delay),var(--delay),var(--delay)}.win-card{position:relative;z-index:1;width:min(100%,420px);padding:28px 24px;border:1px solid var(--color-border);border-radius:24px;background:linear-gradient(180deg,var(--color-bg-soft) 0%,var(--color-bg-elevated) 100%);box-shadow:0 24px 80px #00000073,0 0 0 1px #ffffff08 inset,var(--shadow-md);text-align:center;animation:win-card-pop-in .28s ease-out}.win-card .label{margin-bottom:10px;color:var(--color-text-muted);font-family:var(--font-arcade);font-size:.7rem;font-weight:400;line-height:1.4;letter-spacing:.14em;text-transform:uppercase}.win-card .title{margin:0;color:var(--color-text);font-family:var(--font-arcade);font-size:clamp(1.2rem,4vw,1.8rem);font-weight:400;line-height:1.3;text-transform:uppercase}.win-card .player{margin-top:20px;padding:18px 16px;border-radius:18px;background:var(--color-surface-strong)}.win-card .player .avatar{margin:0 auto 10px}.win-card .player .name{color:var(--color-text);font-size:24px;font-weight:800;line-height:1.1;word-break:break-word}.win-card .player .balance{margin-top:8px;color:var(--color-success);font-size:18px;font-weight:700;line-height:1.2}.win-card button{margin-top:22px;min-width:140px;padding:12px 18px;border:0;border-radius:14px;background:linear-gradient(180deg,var(--color-success) 0%,var(--color-brand) 100%);color:var(--color-brand-ink);font-family:var(--font-arcade);font-size:.75rem;font-weight:400;line-height:1.2;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:transform .12s ease,filter .12s ease,box-shadow .12s ease;box-shadow:var(--shadow-sm)}.win-card button:hover{transform:translateY(-1px);filter:brightness(1.03)}.win-card button:active{transform:translateY(0);filter:brightness(.98)}.win-card button:focus-visible{outline:2px solid var(--color-success);outline-offset:3px}@keyframes coin-fall{0%{transform:translate3d(0,-22vh,0);opacity:0}8%{opacity:var(--opacity)}to{transform:translate3d(0,125vh,0);opacity:var(--opacity)}}@keyframes coin-wobble{0%{transform:translate(0) scale(.92)}25%{transform:translate(calc(var(--drift) * .35)) scale(1)}50%{transform:translate(calc(var(--drift) * -.2)) scale(.96)}75%{transform:translate(calc(var(--drift) * .55)) scale(1.03)}to{transform:translate(0) scale(.98)}}@keyframes coin-rotate{0%{rotate:0deg}to{rotate:var(--rotate)}}@keyframes coin-glow{0%{filter:drop-shadow(0 0 6px rgba(255,200,80,.55)) drop-shadow(0 0 14px rgba(255,200,80,.3))}50%{filter:drop-shadow(0 0 10px rgba(255,215,110,.75)) drop-shadow(0 0 22px rgba(255,215,110,.45))}to{filter:drop-shadow(0 0 6px rgba(255,200,80,.55)) drop-shadow(0 0 14px rgba(255,200,80,.3))}}@keyframes win-overlay-fade-in{0%{opacity:0}to{opacity:1}}@keyframes win-card-pop-in{0%{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:480px){.win-overlay{padding:16px}.win-card{padding:22px 18px;border-radius:20px}.win-card button{width:100%}}.audio-toggles{position:fixed;right:16px;bottom:16px;z-index:1000;display:flex;gap:8px}.audio-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:#0a0e18e0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;transition:transform .12s ease,opacity .12s ease,box-shadow .12s ease,border-color .12s ease}.audio-toggle:hover{transform:translateY(-1px)}.audio-toggle:active{transform:translateY(0)}.audio-toggle:focus-visible{outline:none;box-shadow:0 0 0 2px #ffffff2e,0 0 0 4px #50b4ff47}.audio-toggle.is-on{border-color:#50ffc873;box-shadow:0 0 16px #50ffc838;opacity:1}.audio-toggle.is-off{border-color:#ffffff1a;box-shadow:none;opacity:.55}.audio-toggle__icon{font-size:18px;line-height:1}
