:root{--felt-dark: #0f2218;--felt-base: #1e5038;--felt-light: #2a6648;--felt-highlight: #3a8860;--wood-dark: #140a04;--wood-base: #2e1a0e;--wood-light: #4a2a16;--wood-highlight: #6b4025;--gold-dark: #8b6914;--gold: #d4a84b;--gold-light: #e8c97b;--gold-glow: rgba(212, 168, 75, .5);--font-display: "Cinzel", Georgia, serif;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--card-cream: #f5f0e1;--card-cream-shadow: #d4cfc0;--card-red: #b22222;--card-black: #1a1a1a;--text-primary: #ffffff;--text-secondary: rgba(255, 255, 255, .7);--text-muted: rgba(255, 255, 255, .5);--danger: #c44;--danger-dark: #a33;--card-width: 90px;--card-height: 130px;--card-radius: 10px;--shadow-contact: 0 1px 2px rgba(0, 0, 0, .3);--shadow-mid: 0 4px 8px rgba(0, 0, 0, .25);--shadow-ambient: 0 8px 24px rgba(0, 0, 0, .2);--z-base: 1;--z-card: 5;--z-table: 10;--z-banner: 100;--z-modal: 1000}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{font-family:var(--font-body);background:var(--felt-dark);color:var(--text-primary)}#root{height:100%}.room-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 30%,transparent 0%,rgba(0,0,0,.4) 60%,rgba(0,0,0,.7) 100%),linear-gradient(180deg,var(--felt-dark) 0%,var(--felt-base) 50%,var(--felt-dark) 100%);z-index:-1}.lobby:before,.waiting-room:before,.game-board:before,.game-over:before,.error-screen:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%' height='100%' filter='url(%23noise)'/%3E%3C/svg%3E");opacity:.03;pointer-events:none;z-index:var(--z-base)}.lobby:before{animation:noiseFlicker 7s ease-in-out infinite}@keyframes noiseFlicker{0%,to{opacity:.025}50%{opacity:.038}}.lobby,.waiting-room,.game-board,.game-over,.error-screen{min-height:100vh;background:radial-gradient(ellipse at 50% 30%,transparent 0%,rgba(0,0,0,.3) 70%,rgba(0,0,0,.6) 100%),linear-gradient(180deg,var(--felt-dark) 0%,var(--felt-base) 40%,var(--felt-base) 60%,var(--felt-dark) 100%);position:relative}.game-table{position:relative;width:94%;max-width:1100px;height:85vh;max-height:700px;display:flex;flex-direction:column;z-index:var(--z-table);background:linear-gradient(180deg,var(--wood-highlight) 0%,var(--wood-light) 10%,var(--wood-base) 40%,var(--wood-dark) 80%,#0a0604 100%);border-radius:50%/40%;padding:28px 35px;box-shadow:0 0 80px #0009,0 20px 60px #000000b3,0 8px 30px #00000080,inset 0 2px #ffffff2e,inset 0 4px 8px #ffffff0f,inset 0 -4px 12px #00000080;border:2px solid rgba(139,90,43,.6)}.table-felt{flex:1;display:flex;flex-direction:column;justify-content:space-between;padding:2rem 3rem;position:relative;overflow:visible;background:radial-gradient(ellipse at 50% 45%,var(--felt-highlight) 0%,var(--felt-light) 20%,var(--felt-base) 45%,var(--felt-dark) 100%);border-radius:50%/42%;box-shadow:inset 0 8px 20px #0009,inset 0 2px 6px #0006,inset 0 0 80px #0003,inset 0 -4px 12px #0000004d;border:1px solid rgba(0,0,0,.4)}.table-felt:before{content:"";position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);width:450px;height:300px;background:radial-gradient(ellipse at center,rgba(255,255,230,.1) 0%,rgba(255,255,200,.05) 40%,transparent 70%);pointer-events:none;z-index:0}.lobby{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;gap:2rem;min-height:100vh;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 45%,transparent 0%,rgba(0,0,0,.5) 50%,rgba(0,0,0,.85) 100%),radial-gradient(ellipse at 50% 50%,var(--felt-base) 0%,var(--felt-dark) 40%,#0a0c0a 70%,#080908 100%)}.lobby:after{content:"";position:absolute;top:-50%;right:-25%;bottom:-50%;left:-25%;background:radial-gradient(ellipse at 30% 40%,rgba(212,168,75,.025) 0%,transparent 60%),radial-gradient(ellipse at 70% 60%,rgba(180,120,60,.02) 0%,transparent 55%);pointer-events:none;z-index:1;animation:hazeFloat 30s ease-in-out infinite}@keyframes hazeFloat{0%,to{transform:translate(0)}33%{transform:translate(3%,-2%)}66%{transform:translate(-2%,3%)}}.lobby-title{font-family:var(--font-display);font-size:5rem;font-weight:900;letter-spacing:.25em;color:var(--gold);text-shadow:0 0 2px rgba(255,220,150,.8),0 0 10px var(--gold-glow),0 0 20px rgba(212,168,75,.4),0 0 40px rgba(212,168,75,.25),0 0 80px rgba(212,168,75,.15),0 4px 8px rgba(0,0,0,.6);-webkit-text-stroke:1px rgba(139,90,43,.4);animation:titleGlow 4s ease-in-out 1.6s infinite;z-index:2}.neon-letter{display:inline-block;opacity:0;animation:neonFlicker .5s ease-out forwards}.neon-letter-1{animation-delay:.2s}.neon-letter-2{animation-delay:.45s}.neon-letter-3{animation-delay:.65s;animation-name:neonFlickerStutter;animation-duration:.7s}.neon-letter-4{animation-delay:.9s}.neon-letter-5{animation-delay:1.15s;animation-name:neonFlickerStutter;animation-duration:.65s}@keyframes neonFlicker{0%{opacity:0}10%{opacity:.8}20%{opacity:.2}40%{opacity:1}60%{opacity:.7}80%{opacity:1}to{opacity:1}}@keyframes neonFlickerStutter{0%{opacity:0}8%{opacity:.6}15%{opacity:0}22%{opacity:.4}30%{opacity:0}40%{opacity:.9}50%{opacity:.3}65%{opacity:1}75%{opacity:.6}85%{opacity:1}to{opacity:1}}.cascade-card{position:absolute;width:70px;height:100px;border-radius:8px;top:-120px;pointer-events:none;z-index:0;opacity:0;background:radial-gradient(ellipse at center,rgba(180,140,90,.15) 0%,rgba(180,140,90,.08) 20%,transparent 40%),linear-gradient(to right,rgba(180,140,90,.2) 0%,transparent 3%,transparent 97%,rgba(180,140,90,.2) 100%),linear-gradient(to bottom,rgba(180,140,90,.2) 0%,transparent 4%,transparent 96%,rgba(180,140,90,.2) 100%),repeating-linear-gradient(45deg,transparent,transparent 6px,rgba(100,140,180,.1) 6px,rgba(100,140,180,.1) 7px),repeating-linear-gradient(-45deg,transparent,transparent 6px,rgba(100,140,180,.1) 6px,rgba(100,140,180,.1) 7px),linear-gradient(180deg,#1e3d5f,#15294a,#0f1f38);border:2px solid #0a1525;box-shadow:0 2px 8px #0000004d,inset 0 1px #ffffff14}.cascade-card:before{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border:1px solid rgba(180,140,90,.2);border-radius:5px}.cascade-card:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:16px;height:16px;background:radial-gradient(circle at center,rgba(212,168,75,.3) 0%,rgba(212,168,75,.15) 40%,transparent 70%);border-radius:50%}.cascade-card-1{left:8%;animation:cardCascade1 14s linear infinite;animation-delay:0s}.cascade-card-2{left:25%;animation:cardCascade2 16s linear infinite;animation-delay:-3s}.cascade-card-3{left:45%;animation:cardCascade3 18s linear infinite;animation-delay:-7s}.cascade-card-4{left:70%;animation:cardCascade4 15s linear infinite;animation-delay:-2s}.cascade-card-5{left:85%;animation:cardCascade5 17s linear infinite;animation-delay:-9s}.cascade-card-6{left:15%;animation:cardCascade6 19s linear infinite;animation-delay:-5s}.cascade-card-7{left:55%;animation:cardCascade7 16s linear infinite;animation-delay:-11s}.cascade-card-8{left:38%;animation:cardCascade8 20s linear infinite;animation-delay:-14s}@keyframes cardCascade1{0%{opacity:0;transform:rotate(-15deg) translate(0) translateY(0)}5%{opacity:.35}50%{opacity:.4;transform:rotate(10deg) translate(40px) translateY(calc(55vh + 60px))}90%{opacity:.15}to{opacity:0;transform:rotate(25deg) translate(60px) translateY(calc(110vh + 120px))}}@keyframes cardCascade2{0%{opacity:0;transform:rotate(10deg) translate(0) translateY(0)}5%{opacity:.3}50%{opacity:.4;transform:rotate(-20deg) translate(-50px) translateY(calc(55vh + 60px))}90%{opacity:.1}to{opacity:0;transform:rotate(-35deg) translate(-70px) translateY(calc(110vh + 120px))}}@keyframes cardCascade3{0%{opacity:0;transform:rotate(-5deg) translate(0) translateY(0)}5%{opacity:.25}50%{opacity:.35;transform:rotate(15deg) translate(30px) translateY(calc(55vh + 60px))}90%{opacity:.1}to{opacity:0;transform:rotate(30deg) translate(45px) translateY(calc(110vh + 120px))}}@keyframes cardCascade4{0%{opacity:0;transform:rotate(20deg) translate(0) translateY(0)}5%{opacity:.35}50%{opacity:.4;transform:rotate(-10deg) translate(-35px) translateY(calc(55vh + 60px))}90%{opacity:.15}to{opacity:0;transform:rotate(-25deg) translate(-55px) translateY(calc(110vh + 120px))}}@keyframes cardCascade5{0%{opacity:0;transform:rotate(-12deg) translate(0) translateY(0)}5%{opacity:.3}50%{opacity:.35;transform:rotate(18deg) translate(45px) translateY(calc(55vh + 60px))}90%{opacity:.1}to{opacity:0;transform:rotate(35deg) translate(65px) translateY(calc(110vh + 120px))}}@keyframes cardCascade6{0%{opacity:0;transform:rotate(8deg) translate(0) translateY(0)}5%{opacity:.25}50%{opacity:.35;transform:rotate(-15deg) translate(-40px) translateY(calc(55vh + 60px))}90%{opacity:.1}to{opacity:0;transform:rotate(-30deg) translate(-60px) translateY(calc(110vh + 120px))}}@keyframes cardCascade7{0%{opacity:0;transform:rotate(-18deg) translate(0) translateY(0)}5%{opacity:.3}50%{opacity:.4;transform:rotate(12deg) translate(35px) translateY(calc(55vh + 60px))}90%{opacity:.12}to{opacity:0;transform:rotate(28deg) translate(50px) translateY(calc(110vh + 120px))}}@keyframes cardCascade8{0%{opacity:0;transform:rotate(14deg) translate(0) translateY(0)}5%{opacity:.25}50%{opacity:.35;transform:rotate(-8deg) translate(-30px) translateY(calc(55vh + 60px))}90%{opacity:.1}to{opacity:0;transform:rotate(-20deg) translate(-45px) translateY(calc(110vh + 120px))}}@keyframes titleGlow{0%,to{filter:brightness(1);text-shadow:0 0 2px rgba(255,220,150,.8),0 0 10px var(--gold-glow),0 0 20px rgba(212,168,75,.4),0 0 40px rgba(212,168,75,.25),0 0 80px rgba(212,168,75,.15),0 4px 8px rgba(0,0,0,.6)}50%{filter:brightness(1.05);text-shadow:0 0 4px rgba(255,220,150,.9),0 0 15px var(--gold-glow),0 0 30px rgba(212,168,75,.5),0 0 60px rgba(212,168,75,.3),0 0 100px rgba(212,168,75,.2),0 4px 8px rgba(0,0,0,.6)}}.lobby-tagline{font-family:var(--font-display);font-size:1.4rem;color:var(--gold);margin-top:-.75rem;letter-spacing:.08em;text-shadow:0 0 10px var(--gold-glow);z-index:2;animation:subtitleFadeIn .6s ease-out 1s both}.lobby-tagline-secondary{font-family:var(--font-body);font-size:1rem;color:var(--text-muted);margin-top:-.5rem;letter-spacing:.04em;z-index:2;animation:subtitleFadeIn .6s ease-out 1.2s both}@keyframes subtitleFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.rules{max-width:420px;background:linear-gradient(180deg,#140e0af2,#0c0806fa);border:1px solid rgba(139,90,43,.5);border-top-color:#b4823c66;border-radius:12px;padding:1.75rem;margin-top:1rem;z-index:2;box-shadow:0 4px 24px #00000080,0 12px 40px #0000004d,inset 0 1px #ffffff0f}.rules h2{font-size:1.2rem;color:var(--gold);margin-bottom:.75rem}.rules ul{list-style:none;font-size:.95rem;line-height:1.6;color:var(--text-secondary)}.rules li:before{content:"•";color:var(--gold);margin-right:.5rem}.btn{font-family:var(--font-body);font-size:1.2rem;font-weight:600;padding:.75rem 2rem;border:none;border-radius:8px;cursor:pointer;transition:all .15s ease;position:relative}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible,.name-input:focus-visible,.card-draggable:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.btn-primary{background:linear-gradient(180deg,var(--gold-light) 0%,var(--gold-dark) 100%);color:var(--felt-dark);box-shadow:inset 0 1px #ffffff4d,0 2px 8px var(--gold-glow)}.btn-primary:hover:not(:disabled){background:linear-gradient(180deg,var(--gold-light) 0%,var(--gold) 100%);box-shadow:inset 0 1px #fff6,0 4px 16px var(--gold-glow);transform:translateY(-2px)}.btn-primary:active:not(:disabled){background:var(--gold);box-shadow:inset 0 2px 4px #0000004d;transform:translateY(0)}.btn-secondary{background:linear-gradient(180deg,#ffffff26,#ffffff14);color:var(--text-primary);border:1px solid rgba(255,255,255,.2);box-shadow:inset 0 1px #ffffff1a,0 2px 4px #0003}.btn-secondary:hover:not(:disabled){background:linear-gradient(180deg,#fff3,#ffffff1f);border-color:#ffffff4d;transform:translateY(-2px)}.btn-secondary:active:not(:disabled){background:linear-gradient(180deg,#ffffff14,#ffffff26);box-shadow:inset 0 2px 4px #0003;transform:translateY(0)}.btn-danger{background:linear-gradient(180deg,#e55 0%,var(--danger-dark) 100%);color:#fff;box-shadow:inset 0 1px #fff3,0 2px 4px #0000004d}.btn-danger:hover:not(:disabled){background:linear-gradient(180deg,#f66 0%,var(--danger) 100%);transform:translateY(-2px)}.btn-small{font-size:.9rem;padding:.5rem 1rem}.btn-icon{width:40px;height:40px;padding:0;display:flex;align-items:center;justify-content:center;font-size:1.2rem;border-radius:50%}.connection-status{display:flex;align-items:center;gap:.75rem;color:var(--text-secondary);z-index:2}.spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.2);border-top-color:var(--gold);border-radius:50%;animation:spin .8s linear infinite}.spinner-large{width:48px;height:48px;border-width:3px}@keyframes spin{to{transform:rotate(360deg)}}.waiting-room{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem}.waiting-room h1{font-family:var(--font-display);font-size:2rem;font-weight:700;letter-spacing:.15em;color:var(--gold);text-shadow:0 0 10px var(--gold-glow),0 0 30px rgba(212,168,75,.3);z-index:2}.waiting-text{color:var(--text-secondary);z-index:2}.game-id{font-family:Courier New,monospace;font-size:.85rem;color:var(--text-muted);z-index:2}.waiting-actions{display:flex;gap:1rem;margin-top:1rem;z-index:2}.waiting-spinner{display:flex;flex-direction:column;align-items:center;gap:.75rem;z-index:2}.share-link-box{display:flex;align-items:center;gap:.5rem;width:min(520px,90vw);z-index:2}.share-link-input{flex:1;min-width:0;padding:.7rem .9rem;font-family:Courier New,monospace;font-size:.9rem;background:#0000004d;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:var(--text-primary)}.share-link-input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 10px var(--gold-glow)}.share-link-button{white-space:nowrap}.share-link-error{color:var(--text-secondary);font-size:.85rem;text-align:center;z-index:2}@media (max-width: 520px){.share-link-box{flex-direction:column}.share-link-button{width:100%}}.card{width:var(--card-width);height:var(--card-height);border-radius:var(--card-radius);position:relative;transition:transform .15s ease,box-shadow .15s ease;flex-shrink:0;z-index:var(--z-card)}.card-face{background:linear-gradient(165deg,#fffef8 0%,var(--card-cream) 50%,var(--card-cream-shadow) 100%);box-shadow:var(--shadow-contact),var(--shadow-mid),var(--shadow-ambient),inset 0 1px #fffc}.card-face:before{content:"";position:absolute;top:0;left:10%;right:10%;height:2px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);border-radius:var(--card-radius) var(--card-radius) 0 0}.card-back{background:radial-gradient(ellipse at center,rgba(180,140,90,.15) 0%,rgba(180,140,90,.08) 20%,transparent 40%),linear-gradient(to right,rgba(180,140,90,.2) 0%,transparent 3%,transparent 97%,rgba(180,140,90,.2) 100%),linear-gradient(to bottom,rgba(180,140,90,.2) 0%,transparent 4%,transparent 96%,rgba(180,140,90,.2) 100%),repeating-linear-gradient(45deg,transparent,transparent 6px,rgba(100,140,180,.1) 6px,rgba(100,140,180,.1) 7px),repeating-linear-gradient(-45deg,transparent,transparent 6px,rgba(100,140,180,.1) 6px,rgba(100,140,180,.1) 7px),linear-gradient(180deg,#1e3d5f,#15294a,#0f1f38);border:3px solid #0a1525;box-shadow:var(--shadow-contact),var(--shadow-mid),var(--shadow-ambient),inset 0 1px #ffffff1a,inset 0 0 20px #0000004d;position:relative}.card-back:before{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border:1px solid rgba(180,140,90,.25);border-radius:calc(var(--card-radius) - 6px);pointer-events:none}.card-back:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:24px;height:24px;background:radial-gradient(circle at center,rgba(212,168,75,.4) 0%,rgba(212,168,75,.2) 40%,transparent 70%);border-radius:50%}.card-placeholder{background:#00000040;border:2px dashed rgba(255,255,255,.15);box-shadow:inset 0 2px 8px #0003}.card-stack{display:flex;align-items:center;justify-content:center}.card-count{font-size:1.5rem;font-weight:700;color:#ffffffe6;text-shadow:0 2px 4px rgba(0,0,0,.5)}.card-red{color:var(--card-red)}.card-black{color:var(--card-black)}.card-corner{position:absolute;display:flex;flex-direction:column;align-items:center;font-family:Georgia,Times New Roman,serif;line-height:1}.card-corner-top{top:6px;left:8px}.card-corner-bottom{bottom:6px;right:8px;transform:rotate(180deg)}.card-rank{font-size:1.1rem;font-weight:700}.card-suit{font-size:.85rem}.card-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.card-suit-large{font-size:2.5rem}.card-draggable{cursor:grab}.card-draggable:active{cursor:grabbing}.card-draggable:hover{will-change:transform,box-shadow;transform:translateY(-10px);box-shadow:0 2px 4px #0000004d,0 8px 16px #00000040,0 16px 32px #0003,0 0 20px var(--gold-glow)}.card-selected{transform:translateY(-16px);box-shadow:0 0 0 3px var(--gold),0 8px 16px #0000004d,0 16px 32px #0003,0 0 30px var(--gold-glow)}.card-invalid{animation:shake .15s ease-in-out 3}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.card-snap{animation:cardSnap .2s ease-out}@keyframes cardSnap{0%{transform:scale(1.1);opacity:.8}50%{transform:scale(.95)}to{transform:scale(1);opacity:1}}.game-board{min-height:100vh;position:relative;display:flex;flex-direction:column;padding:0;justify-content:center;align-items:center;background:radial-gradient(ellipse at 50% 40%,transparent 20%,rgba(0,0,0,.3) 60%,rgba(0,0,0,.6) 100%),linear-gradient(180deg,#151210,#0a0908,#0c0a09)}.game-board:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 50%,transparent 20%,rgba(0,0,0,.4) 50%,rgba(0,0,0,.7) 80%,rgba(0,0,0,.85) 100%);pointer-events:none;z-index:1;animation:ambientVignette 8s ease-in-out infinite}@keyframes ambientVignette{0%,to{opacity:1}50%{opacity:.92}}.game-board:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%' height='100%' filter='url(%23noise)'/%3E%3C/svg%3E");opacity:.02;pointer-events:none;z-index:2}.opponent-area,.player-area{display:flex;align-items:center;justify-content:center;gap:2rem;padding:1.5rem;position:relative;z-index:2}.player-info{position:absolute;display:flex;flex-direction:column;align-items:center;gap:.25rem}.player-info-top{top:.5rem;left:50%;transform:translate(-50%)}.player-info-bottom{bottom:.5rem;left:50%;transform:translate(-50%)}.player-name{font-size:.9rem;font-weight:600}.player-name-self{color:var(--gold);text-shadow:0 0 10px var(--gold-glow)}.player-name-opponent{color:var(--text-secondary)}.opponent-hand,.hand-area{display:flex;gap:10px;min-width:500px;justify-content:center}.opponent-hand .card{margin-left:-25px}.opponent-hand .card:first-child{margin-left:0}.center-area{display:flex;justify-content:center;align-items:center;gap:4rem;flex:1;position:relative;z-index:2}.center-area:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:500px;height:250px;background:radial-gradient(ellipse at center,rgba(255,255,200,.06) 0%,transparent 70%);pointer-events:none}.center-zone{display:flex;justify-content:center;align-items:center;position:relative;flex:1;z-index:2}.reserve-top-left{position:absolute;left:10%;top:15%}.reserve-top-right{position:absolute;right:10%;top:15%}.reserve-bottom-left{position:absolute;left:10%;bottom:15%}.reserve-bottom-right{position:absolute;right:10%;bottom:15%}.reserve-stalemate{animation:reserveGlow .5s ease-in-out infinite alternate}@keyframes reserveGlow{0%{filter:drop-shadow(0 0 8px var(--gold-glow))}to{filter:drop-shadow(0 0 16px var(--gold)) drop-shadow(0 0 24px var(--gold-glow))}}.center-pile{padding:12px;border-radius:16px;transition:all .15s ease;position:relative}.center-pile-active{background:#d4a84b26;box-shadow:0 0 20px var(--gold-glow),inset 0 0 20px #d4a84b1a;transform:scale(1.05)}.center-pile:hover{background:#ffffff0d}.pile-stack{display:flex;flex-direction:column;align-items:center;gap:.5rem}.pile-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}.disconnect-banner,.stalemate-banner{position:fixed;top:0;left:0;right:0;padding:.75rem;text-align:center;font-weight:600;z-index:var(--z-banner);text-transform:uppercase;letter-spacing:.05em}.disconnect-banner{background:linear-gradient(180deg,#e55 0%,var(--danger) 100%);box-shadow:0 2px 8px #0000004d}.disconnect-banner.reconnecting{background:linear-gradient(180deg,#f90,#d80)}.stalemate-banner{background:linear-gradient(180deg,var(--gold-light) 0%,var(--gold) 100%);color:var(--felt-dark);animation:pulse-banner .5s ease-in-out infinite alternate}@keyframes pulse-banner{0%{opacity:.9}to{opacity:1}}.game-over{display:flex;align-items:center;justify-content:center}.game-over-content{text-align:center;display:flex;flex-direction:column;align-items:center;gap:2rem;z-index:2}.winner-text{font-family:var(--font-display);font-size:4rem;font-weight:700;letter-spacing:.08em;color:var(--gold);text-shadow:0 0 10px var(--gold-glow),0 0 30px rgba(212,168,75,.4),0 0 60px rgba(212,168,75,.2),0 4px 8px rgba(0,0,0,.5)}.loser-text{font-family:var(--font-display);font-size:4rem;font-weight:700;letter-spacing:.08em;color:var(--text-secondary);text-shadow:0 4px 8px rgba(0,0,0,.4)}.game-over-actions{display:flex;flex-direction:column;gap:1rem}.rematch-waiting{display:flex;align-items:center;gap:.75rem;color:var(--text-secondary)}.rematch-notice{color:var(--gold);font-weight:600;text-shadow:0 0 10px var(--gold-glow)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:linear-gradient(180deg,var(--felt-light) 0%,var(--felt-base) 40%,var(--felt-dark) 100%);border:1px solid rgba(107,64,37,.3);border-radius:16px;padding:2rem 2.5rem;max-width:400px;width:90%;box-shadow:0 0 80px #0009,0 16px 48px #00000080,inset 0 1px #ffffff14,inset 0 -1px #0003}.modal h2{color:var(--gold);margin-bottom:1rem;font-size:1.5rem;text-align:center}.modal p{color:var(--text-secondary);margin-bottom:1.5rem;text-align:center;line-height:1.5}.modal-actions{display:flex;gap:1rem;justify-content:center}.modal-actions .btn{flex:1;max-width:150px}.name-input{width:100%;padding:.75rem 1rem;font-size:1.1rem;font-family:var(--font-body);background:#0000004d;border:2px solid rgba(255,255,255,.2);border-radius:8px;color:var(--text-primary);margin-bottom:1rem;text-align:center;transition:border-color .15s ease}.name-input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 10px var(--gold-glow)}.name-input::placeholder{color:var(--text-muted)}.name-input-error{color:var(--danger);font-size:.9rem;margin-top:-.5rem;margin-bottom:1rem}.error-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem}.error-screen h1{color:#e55;z-index:2}.error-screen p{color:var(--text-secondary);z-index:2}@media (max-width: 1024px){:root{--card-width: 80px;--card-height: 115px}.center-area{gap:3rem}.opponent-hand,.hand-area{min-width:450px;gap:8px}.reserve-top-left{left:8%;top:12%}.reserve-top-right{right:8%;top:12%}.reserve-bottom-left{left:8%;bottom:12%}.reserve-bottom-right{right:8%;bottom:12%}}@media (max-width: 768px){:root{--card-width: 70px;--card-height: 100px}.lobby-title{font-size:3rem;letter-spacing:.15em}.cascade-card{width:60px;height:86px}.cascade-card-7,.cascade-card-8{display:none}.game-table{border-radius:40%/35%;padding:20px 28px;height:80vh}.table-felt{border-radius:42%/38%;padding:1.5rem 2rem}.opponent-hand,.hand-area{min-width:400px;gap:6px}.center-area{gap:2.5rem}.opponent-area,.player-area{gap:1.5rem;padding:1rem}.reserve-top-left{left:5%;top:10%}.reserve-top-right{right:5%;top:10%}.reserve-bottom-left{left:5%;bottom:10%}.reserve-bottom-right{right:5%;bottom:10%}}@media (max-width: 600px){:root{--card-width: 55px;--card-height: 80px;--card-radius: 6px}.lobby-title{font-size:2rem;letter-spacing:.1em;-webkit-text-stroke:.5px rgba(139,90,43,.4)}.lobby-tagline{font-size:1.1rem}.lobby-tagline-secondary{font-size:.9rem}.lobby:after{display:none}.cascade-card{width:50px;height:72px}.cascade-card-5,.cascade-card-6,.cascade-card-7,.cascade-card-8{display:none}.winner-text,.loser-text{letter-spacing:.05em}.rules{padding:1rem;margin:0 1rem}.game-table{border-radius:35%/32%;padding:18px 22px;width:96%;height:78vh}.table-felt{border-radius:38%/35%;padding:1.25rem 1.75rem}.opponent-hand,.hand-area{min-width:auto;gap:4px}.opponent-hand .card{margin-left:-15px}.center-area{gap:1.5rem}.center-pile{padding:8px}.opponent-area,.player-area{gap:1rem;padding:.75rem}.card-rank{font-size:.9rem}.card-suit{font-size:.7rem}.card-suit-large{font-size:1.8rem}.btn{font-size:1rem;padding:.6rem 1.5rem}.winner-text,.loser-text{font-size:2.5rem}.leave-game-btn{top:.5rem;left:.5rem}.btn-icon{width:36px;height:36px;font-size:1rem}.reserve-top-left{left:2%;top:8%}.reserve-top-right{right:2%;top:8%}.reserve-bottom-left{left:2%;bottom:8%}.reserve-bottom-right{right:2%;bottom:8%}}@media (max-width: 480px){.game-table{border-radius:30%;padding:16px;width:98%;height:75vh}.table-felt{border-radius:32%;padding:1rem 1.5rem}.reserve-top-left{left:0;top:5%}.reserve-top-right{right:0;top:5%}.reserve-bottom-left{left:0;bottom:5%}.reserve-bottom-right{right:0;bottom:5%}}@media (min-width: 1400px){:root{--card-width: 100px;--card-height: 145px}.game-table{max-width:1400px}.opponent-hand,.hand-area{min-width:560px;gap:12px}.center-area{gap:5rem}}.menu-buttons{display:flex;flex-direction:column;gap:1rem;width:100%;max-width:300px;z-index:2}.menu-buttons .btn{width:100%}@keyframes buttonStagger{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.menu-btn-stagger-1{animation:buttonStagger .4s ease-out .15s both}.menu-btn-stagger-2{animation:buttonStagger .4s ease-out .3s both}.menu-btn-stagger-3{animation:buttonStagger .4s ease-out .45s both}.menu-btn-stagger-4{animation:buttonStagger .4s ease-out .6s both}.rules-modal{max-width:440px}.rules-content{text-align:left;margin-bottom:1.5rem}.rules-content ul{list-style:none;font-size:.95rem;line-height:1.6;color:var(--text-secondary)}.rules-content li:before{content:"•";color:var(--gold);margin-right:.5rem}.rules-section-heading{font-family:var(--font-display);font-size:.85rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin:1rem 0 .5rem}.rules-section-heading:first-child{margin-top:0}.rules-content ol{list-style:none;counter-reset:rules-counter;font-size:.95rem;line-height:1.6;color:var(--text-secondary);padding:0}.rules-content ol li{counter-increment:rules-counter}.rules-content ol li:before{content:counter(rules-counter) ".";color:var(--gold);margin-right:.5rem;font-weight:600}.settings-modal{max-width:360px}.settings-list{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.settings-item{display:flex;justify-content:space-between;align-items:center;gap:1rem}.settings-item-stacked{flex-direction:column;align-items:stretch;gap:.5rem}.settings-name-input{margin-bottom:0;text-align:left}.settings-item-stacked .name-input-error{margin:0}.settings-hint{color:var(--text-muted);font-size:.85rem;margin:0}.settings-label{color:var(--text-secondary);font-size:1rem}.toggle-btn{padding:.5rem 1rem;min-width:60px;font-size:.9rem;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease}.toggle-on{background:linear-gradient(180deg,var(--gold-light) 0%,var(--gold) 100%);color:var(--felt-dark);box-shadow:0 2px 4px #0003}.toggle-off{background:#ffffff1a;color:var(--text-muted);border:1px solid rgba(255,255,255,.15)}.toggle-btn:hover{transform:translateY(-1px)}.settings-toggle-group{display:flex;gap:0;border-radius:6px;overflow:hidden;border:1px solid rgba(255,255,255,.15)}.toggle-option{padding:.5rem .75rem;font-size:.85rem;font-weight:600;border:none;cursor:pointer;transition:all .15s ease;background:#ffffff0d;color:var(--text-muted)}.toggle-option:first-child{border-right:1px solid rgba(255,255,255,.1)}.toggle-option-active{background:linear-gradient(180deg,var(--gold-light) 0%,var(--gold) 100%);color:var(--felt-dark)}.toggle-option:hover:not(.toggle-option-active){background:#ffffff1a;color:var(--text-secondary)}.game-controls{position:fixed;top:1rem;left:1rem;display:flex;gap:.5rem;z-index:var(--z-banner)}.pause-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.pause-overlay .modal-overlay{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.pause-menu{text-align:center;display:flex;flex-direction:column;align-items:center;gap:1.5rem}.pause-title{font-family:var(--font-display);font-size:3rem;font-weight:700;letter-spacing:.15em;color:var(--gold);text-shadow:0 0 10px var(--gold-glow),0 0 30px rgba(212,168,75,.3)}.pause-info{color:var(--text-secondary);font-size:1.1rem}.pause-buttons{display:flex;flex-direction:column;gap:.75rem;width:220px}.pause-buttons .btn{width:100%}.game-board-paused .game-table{filter:saturate(.3) brightness(.7);pointer-events:none}.reduce-motion,.reduce-motion *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.reduce-motion .neon-letter{opacity:1!important}@media (prefers-reduced-motion: reduce){.cascade-card{display:none}.neon-letter{opacity:1!important;animation:none!important}.lobby-title{animation:none!important}}.btn:focus-visible,.toggle-btn:focus-visible,.toggle-option:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.card-draggable:not(.card-selected):hover{z-index:calc(var(--z-card) + 1)}@media (max-width: 600px){.menu-buttons{max-width:240px}.pause-title{font-size:2rem}.pause-buttons{width:180px}.game-controls{top:.5rem;left:.5rem}.settings-modal{max-width:90%}}.table-felt.streak-active{box-shadow:inset 0 8px 20px #0009,inset 0 2px 6px #0006,inset 0 0 80px #0003,inset 0 -4px 12px #0000004d,inset 0 0 60px var(--gold-glow);animation:streakPulse .6s ease-in-out infinite alternate}.table-felt.streak-high{box-shadow:inset 0 8px 20px #0009,inset 0 2px 6px #0006,inset 0 0 80px #0003,inset 0 -4px 12px #0000004d,inset 0 0 100px #d4a84b66,0 0 30px var(--gold-glow);animation:streakPulseHigh .4s ease-in-out infinite alternate}@keyframes streakPulse{0%{box-shadow:inset 0 8px 20px #0009,inset 0 2px 6px #0006,inset 0 0 80px #0003,inset 0 -4px 12px #0000004d,inset 0 0 40px var(--gold-glow)}to{box-shadow:inset 0 8px 20px #0009,inset 0 2px 6px #0006,inset 0 0 80px #0003,inset 0 -4px 12px #0000004d,inset 0 0 80px var(--gold-glow)}}@keyframes streakPulseHigh{0%{box-shadow:inset 0 8px 20px #0009,inset 0 2px 6px #0006,inset 0 0 80px #0003,inset 0 -4px 12px #0000004d,inset 0 0 80px #d4a84b59,0 0 20px var(--gold-glow)}to{box-shadow:inset 0 8px 20px #0009,inset 0 2px 6px #0006,inset 0 0 80px #0003,inset 0 -4px 12px #0000004d,inset 0 0 120px #d4a84b80,0 0 40px var(--gold-glow)}}.game-board.endgame:before{background:radial-gradient(ellipse at 50% 50%,transparent 15%,rgba(0,0,0,.5) 45%,rgba(0,0,0,.75) 70%,rgba(0,0,0,.9) 100%)}.game-board.critical:before{background:radial-gradient(ellipse at 50% 50%,transparent 10%,rgba(0,0,0,.55) 40%,rgba(0,0,0,.8) 65%,rgba(0,0,0,.95) 100%);animation:tensionPulse 1.5s ease-in-out infinite}@keyframes tensionPulse{0%,to{opacity:1}50%{opacity:.85}}.game-board.endgame .game-table{box-shadow:0 0 80px #0009,0 20px 60px #000000b3,0 8px 30px #00000080,inset 0 2px #ffffff2e,inset 0 4px 8px #ffffff0f,inset 0 -4px 12px #00000080,0 0 60px #b43c2826}.game-board.critical .game-table{box-shadow:0 0 80px #0009,0 20px 60px #000000b3,0 8px 30px #00000080,inset 0 2px #ffffff2e,inset 0 4px 8px #ffffff0f,inset 0 -4px 12px #00000080,0 0 80px #b43c2840;animation:tableRimPulse 1.5s ease-in-out infinite}@keyframes tableRimPulse{0%,to{box-shadow:0 0 80px #0009,0 20px 60px #000000b3,0 8px 30px #00000080,inset 0 2px #ffffff2e,inset 0 4px 8px #ffffff0f,inset 0 -4px 12px #00000080,0 0 80px #b43c2840}50%{box-shadow:0 0 80px #0009,0 20px 60px #000000b3,0 8px 30px #00000080,inset 0 2px #ffffff2e,inset 0 4px 8px #ffffff0f,inset 0 -4px 12px #00000080,0 0 100px #b43c2859}}.contested-overlay{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:calc(var(--z-modal) - 1);display:flex;justify-content:center;align-items:center}.contested-card-bounce{position:absolute;top:50%;animation:contestedBounce 1.2s ease-out forwards}.contested-pile-left{left:35%;transform:translate(-50%)}.contested-pile-right{left:65%;transform:translate(-50%)}@keyframes contestedBounce{0%{transform:translate(-50%) translateY(-50%) scale(1.1);opacity:1}15%{transform:translate(-50%) translateY(-50%) scale(.95);opacity:1}30%{transform:translate(-50%) translateY(-20%) scale(1);opacity:1}50%{transform:translate(-50%) translateY(100%) scale(.9);opacity:.9}70%{transform:translate(-50%) translateY(150%) scale(.85);opacity:.7}to{transform:translate(-50%) translateY(200%) scale(.8);opacity:0}}.contested-timing{position:absolute;top:42%;font-family:var(--font-body);font-size:1rem;font-weight:600;color:var(--danger);background:#000000b3;padding:.4rem .8rem;border-radius:6px;animation:contestedTimingFade 1.5s ease-out forwards;text-shadow:0 1px 2px rgba(0,0,0,.5)}@keyframes contestedTimingFade{0%{opacity:0;transform:translate(-50%) translateY(0)}20%{opacity:1;transform:translate(-50%) translateY(0)}80%{opacity:1;transform:translate(-50%) translateY(-10px)}to{opacity:0;transform:translate(-50%) translateY(-20px)}}.game-board.contested-close{animation:screenShake .3s ease-in-out}@keyframes screenShake{0%,to{transform:translate(0)}10%{transform:translate(-3px)}20%{transform:translate(3px)}30%{transform:translate(-3px)}40%{transform:translate(3px)}50%{transform:translate(-2px)}60%{transform:translate(2px)}70%{transform:translate(-1px)}80%{transform:translate(1px)}90%{transform:translate(0)}}.countdown-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);background:#0009;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none}.countdown-number{font-family:var(--font-display);font-size:12rem;font-weight:900;color:var(--gold);text-shadow:0 0 20px var(--gold-glow),0 0 40px rgba(212,168,75,.5),0 0 80px rgba(212,168,75,.3),0 8px 16px rgba(0,0,0,.6);animation:countdownPop .8s ease-out}.countdown-go{font-size:10rem;color:var(--gold-light);text-shadow:0 0 30px var(--gold),0 0 60px rgba(212,168,75,.6),0 0 100px rgba(212,168,75,.4),0 8px 16px rgba(0,0,0,.6);animation:countdownGo .6s ease-out}@keyframes countdownPop{0%{transform:scale(1.5);opacity:0}30%{transform:scale(.9);opacity:1}50%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}@keyframes countdownGo{0%{transform:scale(.5);opacity:0}50%{transform:scale(1.2);opacity:1}to{transform:scale(1);opacity:0}}.game-end-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);pointer-events:none}.game-end-text{font-family:var(--font-display);font-size:5rem;font-weight:900;letter-spacing:.1em;animation:gameEndAppear .5s ease-out forwards}.game-end-win{color:var(--gold);text-shadow:0 0 20px var(--gold),0 0 40px rgba(212,168,75,.6),0 0 80px rgba(212,168,75,.4),0 0 120px rgba(212,168,75,.2),0 8px 16px rgba(0,0,0,.5);animation:gameEndWin 2s ease-out forwards}.game-end-lose{color:var(--text-secondary);text-shadow:0 0 10px rgba(255,255,255,.2),0 8px 16px rgba(0,0,0,.5);animation:gameEndLose 2s ease-out forwards}@keyframes gameEndAppear{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes gameEndWin{0%{transform:scale(.8);opacity:0}20%{transform:scale(1.1);opacity:1}40%{transform:scale(1)}80%{opacity:1}to{opacity:0;transform:scale(1.05)}}@keyframes gameEndLose{0%{transform:scale(.8);opacity:0}20%{transform:scale(1);opacity:1}80%{opacity:1}to{opacity:0}}@media (max-width: 768px){.countdown-number{font-size:8rem}.countdown-go{font-size:6rem}.game-end-text{font-size:3.5rem}}@media (max-width: 480px){.countdown-number{font-size:6rem}.countdown-go{font-size:4rem}.game-end-text{font-size:2.5rem}}
