*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--table-green:#1a472a;--table-dark:#0d2818;--table-border:#2d6b3f;--table-felt:#1e5631;--gold:#d4af37;--gold-light:#f0d060;--gold-dark:#b8960f;--card-red:#e63946;--card-black:#1d1d1d;--card-bg:#fefefe;--card-back-bg:#1a1a2e;--card-back-accent:#16213e;--card-shadow:#00000059;--bg-dark:#0a0a12;--bg-panel:#12121e;--text-primary:#f0f0f0;--text-secondary:#a0a0b0;--text-muted:#666680;--border-subtle:#ffffff14;--glass-bg:#ffffff0f;--glass-border:#ffffff1a;--surface:#ffffff0d;--surface-strong:#ffffff14;--surface-border:#fff3;--sunken:#0003;--text-faint:#fff6;--overlay-bg:linear-gradient(135deg, #0a0a12 0%, #1a1a2e 50%, #0a0a12 100%);--panel-bg:linear-gradient(145deg, #14142a, #1a1a30);--modal-bg:#1a1a30;--card-width:85px;--card-height:120px;--card-small-width:65px;--card-small-height:95px;--card-radius:8px;--right-panel-width:280px;--font-primary:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-display:"Outfit", "Inter", sans-serif}html,body{height:100%;font-family:var(--font-primary);background:var(--bg-dark);color:var(--text-primary);-webkit-font-smoothing:antialiased;overflow:hidden}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes cardPlay{0%{opacity:.5;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes glow{0%,to{box-shadow:0 0 8px #d4af374d}50%{box-shadow:0 0 20px #d4af3799}}@keyframes winnerGlow{0%,to{box-shadow:0 0 10px #d4af3766}50%{box-shadow:0 0 30px #d4af37cc,0 0 60px #d4af3766}}@keyframes messageSlide{0%{opacity:0;transform:translate(-50%,-50%)scale(.8)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes timerPulse{0%,to{color:var(--card-red)}50%{color:#ff6b6b;transform:scale(1.1)}}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes float1{0%,to{transform:translate(0)rotate(0)}25%{transform:translate(60px,-40px)rotate(15deg)}50%{transform:translate(30px,-80px)rotate(-10deg)}75%{transform:translate(-30px,-50px)rotate(5deg)}}@keyframes float2{0%,to{transform:translate(0)rotate(0)}25%{transform:translate(-50px,-60px)rotate(-20deg)}50%{transform:translate(-80px,-30px)rotate(15deg)}75%{transform:translate(-20px,-70px)rotate(-5deg)}}@keyframes float3{0%,to{transform:translate(0)rotate(0)}25%{transform:translate(40px,50px)rotate(10deg)}50%{transform:translate(-40px,30px)rotate(-15deg)}75%{transform:translate(20px,60px)rotate(20deg)}}.menu-page{background:linear-gradient(135deg,#0a0a12 0%,#1a1a2e 50%,#0a0a12 100%);height:100dvh;display:flex;position:relative;overflow:hidden auto}.menu-bg{pointer-events:none;position:fixed;inset:0;overflow:hidden}.menu-bg-card{opacity:.06;font-size:4rem;animation-duration:20s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;position:absolute}.card-float-1{color:var(--card-black);animation-name:float1;top:10%;left:10%}.card-float-2{color:var(--card-red);animation-name:float2;animation-delay:-3s;top:20%;right:15%}.card-float-3{color:var(--card-red);animation-name:float3;animation-delay:-5s;bottom:30%;left:20%}.card-float-4{color:var(--card-black);animation-name:float1;animation-delay:-8s;bottom:15%;right:25%}.card-float-5{color:var(--card-black);font-size:6rem;animation-name:float2;animation-delay:-12s;top:50%;left:50%}.card-float-6{color:var(--card-red);animation-name:float3;animation-delay:-7s;top:60%;right:10%}.menu-bg-tile{opacity:.08;background:linear-gradient(#fffdf6 0%,#f3ead4 100%);border-radius:6px;flex-direction:column;align-items:center;width:2.9rem;height:4rem;padding-top:.45rem;animation-duration:22s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;display:flex;position:absolute;box-shadow:inset 0 -3px #0000001f,0 4px 10px #00000059}.menu-tile-num{font-family:var(--font-display);font-size:1.6rem;font-weight:800;line-height:1}.menu-tile-dot{background:currentColor;border-radius:50%;width:.55rem;height:.55rem;margin-top:.35rem}.menu-tile-red{color:#d0282c}.menu-tile-blue{color:#1f68c9}.menu-tile-yellow{color:#d98c00}.menu-tile-black{color:#1c1c1c}.menu-tile-fake{color:#1f8a4c;justify-content:center;padding-top:0}.tile-float-1{animation-name:float2;animation-delay:-2s;top:32%;left:4%;transform:rotate(-12deg)}.tile-float-2{animation-name:float3;animation-delay:-9s;top:7%;left:42%}.tile-float-3{animation-name:float1;animation-delay:-4s;bottom:7%;left:36%}.tile-float-4{animation-name:float1;animation-delay:-14s;top:38%;right:4%}.tile-float-5{width:3.4rem;height:4.7rem;animation-name:float2;animation-delay:-6s;bottom:22%;right:38%}.tile-float-6{animation-name:float2;animation-delay:-11s;top:18%;right:14%}.tile-float-7{animation-name:float3;animation-delay:-16s;bottom:28%;left:18%}.tile-float-8{width:3.4rem;height:4.7rem;animation-name:float3;animation-delay:-3s;top:62%;right:9%}html[data-theme=light] .menu-bg-tile{opacity:.22;box-shadow:inset 0 -3px #5a41141f,0 4px 10px #5a41142e}.menu-container{text-align:center;z-index:1;width:90%;max-width:500px;margin:auto;padding:1.5rem 0;animation:.8s ease-out fadeIn}.menu-header{margin-bottom:3rem}.menu-logo{justify-content:center;align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.menu-logo-suit{filter:drop-shadow(0 0 20px #d4af374d);font-size:3.5rem}.menu-logo-suit.red{color:var(--card-red)}.menu-logo-suit.black{color:#ddd}.menu-brand-logo{border-radius:20px;width:84px;height:84px;margin:0 auto .75rem;animation:.6s ease-out fadeInScale;display:block;box-shadow:0 8px 28px #00000059}html[data-theme=light] .menu-brand-logo{box-shadow:0 8px 24px #5a411440}.menu-title{font-family:var(--font-display);background:linear-gradient(135deg, var(--gold-light), var(--gold), var(--gold-dark));-webkit-text-fill-color:transparent;letter-spacing:-1px;-webkit-background-clip:text;background-clip:text;font-size:3.5rem;font-weight:800;line-height:1.1}.menu-subtitle{color:var(--text-secondary);letter-spacing:3px;text-transform:uppercase;margin-top:.5rem;font-size:1.1rem;font-weight:500}.menu-actions{flex-direction:column;align-items:center;gap:1rem;display:flex}.menu-footer{color:var(--text-muted);letter-spacing:1px;margin-top:2.5rem;font-size:.8rem}.menu-container-wide{max-width:760px}.rules-panel.name-panel{text-align:center;max-height:none}.name-hint{color:var(--text-secondary);margin-bottom:1rem;font-size:.85rem}.name-input{border:1px solid var(--border-subtle);color:#fff;text-align:center;width:100%;font-size:1rem;font-family:var(--font-primary);background:#ffffff14;border-radius:8px;outline:none;padding:.8rem}.name-input:focus{border-color:var(--gold)}.name-error{color:var(--card-red);margin-top:.5rem;font-size:.8rem}.name-submit{margin:1.25rem auto 0}.games-greeting{color:var(--text-secondary);flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;margin-bottom:1.5rem;display:flex}.games-greeting strong{color:var(--gold-light)}.games-category{text-align:left;margin-bottom:1.75rem}.games-category-title{font-family:var(--font-display);color:var(--text-secondary);letter-spacing:1px;text-transform:uppercase;margin-bottom:.75rem;font-size:1rem;font-weight:600}.games-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:1rem;display:grid}.game-card{background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:16px;flex-direction:column;gap:.75rem;padding:1.25rem;transition:border-color .3s,transform .3s;display:flex}.game-card:hover{border-color:#d4af3766;transform:translateY(-2px)}.game-card-soon{opacity:.75}.game-card-icon{color:var(--gold);font-size:2.25rem;line-height:1}.game-card-tile{background:linear-gradient(#fffdf6 0%,#f3ead4 100%);border-radius:5px;flex-direction:column;align-self:flex-start;align-items:center;width:2.1rem;height:2.9rem;padding-top:.32rem;transition:transform .3s;display:flex;transform:rotate(-6deg);box-shadow:inset 0 -2px #0000001f,0 3px 8px #00000059}.game-card-tile .menu-tile-num{font-size:1.2rem}.game-card-tile .menu-tile-dot{width:.4rem;height:.4rem;margin-top:.25rem}.game-card:hover .game-card-tile{transform:rotate(0)translateY(-2px)}html[data-theme=light] .game-card-tile{box-shadow:inset 0 -2px #5a41141f,0 3px 8px #5a411438,0 0 0 1px #5a411414}.category-card{vertical-align:middle;color:#111;letter-spacing:0;background:#fff;border-radius:3px;justify-content:center;align-items:center;width:.9rem;height:1.2rem;margin:-.2rem .1rem 0 0;display:inline-flex;position:relative;box-shadow:0 1px 3px #00000059,inset 0 0 0 1px #0000000f}.category-card.is-red{color:var(--card-red)}.category-card-rank{font-size:.38rem;font-weight:800;line-height:1;font-family:var(--font-primary);position:absolute;top:.05rem;left:.12rem}.category-card-suit{margin-top:.12rem;font-size:.62rem;line-height:1}html[data-theme=light] .category-card{box-shadow:0 1px 3px #5a411440,0 0 0 1px #5a41141a}.category-tile{vertical-align:middle;letter-spacing:0;background:linear-gradient(#fffdf6 0%,#f3ead4 100%);border-radius:3px;flex-direction:column;align-items:center;width:.9rem;height:1.2rem;margin:-.2rem .1rem 0 0;padding-top:.1rem;display:inline-flex;box-shadow:inset 0 -1px #0000001f,0 1px 3px #00000059}.category-tile .menu-tile-num{letter-spacing:-.5px;font-size:.62rem}.category-tile .menu-tile-dot{width:.2rem;height:.2rem;margin-top:.1rem}html[data-theme=light] .category-tile{box-shadow:inset 0 -1px #5a41141f,0 1px 3px #5a411440,0 0 0 1px #5a411414}.game-card-name{font-family:var(--font-display);align-items:center;gap:.5rem;font-size:1.35rem;font-weight:700;display:flex}.game-card-badge{font-family:var(--font-primary);color:var(--gold-light);letter-spacing:.5px;background:#d4af3726;border-radius:999px;padding:.15rem .5rem;font-size:.65rem;font-weight:600}.game-card-desc{color:var(--text-secondary);margin-top:.25rem;font-size:.85rem;line-height:1.5}.game-card-meta{color:var(--text-muted);margin-top:.4rem;font-size:.75rem}.game-card-actions{gap:.5rem;margin-top:auto;display:flex}.theme-toggle-floating{z-index:5;position:fixed;top:1rem;right:1rem}.theme-toggle{width:2.4rem;height:2.4rem;color:var(--text-primary);border:1px solid var(--glass-border);background:var(--glass-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.15rem;transition:transform .2s,border-color .2s;display:flex}.theme-toggle:hover{border-color:var(--gold);transform:rotate(-15deg)scale(1.05)}html[data-theme=light] :is(.menu-page,.lobby-overlay){--gold:#c19a1e;--gold-light:#a8820c;--gold-dark:#8a6a06;--text-primary:#1f1b14;--text-secondary:#5a5345;--text-muted:#8a8272;--border-subtle:#4634141f;--glass-bg:#ffffffb8;--glass-border:#46341424;--surface:#4634140a;--surface-strong:#46341414;--surface-border:#46341438;--sunken:#4634140d;--text-faint:#8a8272;--overlay-bg:linear-gradient(135deg, #f7f2e8 0%, #efe6d4 50%, #f7f2e8 100%);--panel-bg:linear-gradient(145deg, #fffdf8, #fbf6ec);--modal-bg:#fffdf8;color:var(--text-primary)}html[data-theme=light] .menu-page{background:var(--overlay-bg)}html[data-theme=light] .lobby-overlay .lobby-panel{border-color:#a8820c40;box-shadow:0 20px 60px #5a411426}html[data-theme=light] .lobby-overlay .lobby-create-modal{background:#3c2d1440}html[data-theme=light] .lobby-overlay .menu-bg-card{opacity:.09}html[data-theme=light] .lobby-overlay :is(.btn-primary,.btn-play){color:#fff;text-shadow:0 1px 1px #0003}html[data-theme=light] .lobby-overlay .btn-secondary:hover{background:var(--surface-strong)}html[data-theme=light] .lobby-overlay .room-status-waiting{color:#2e7d32}html[data-theme=light] .lobby-overlay .room-status-playing{color:#1565c0}html[data-theme=light] .lobby-overlay .okey-segment button.is-on{background:#a8820c24}html[data-theme=light] .menu-page .menu-bg-card{opacity:.09}html[data-theme=light] .menu-page .menu-title{background:linear-gradient(135deg,#c9a227,#a8820c,#7d5f05);-webkit-background-clip:text;background-clip:text}html[data-theme=light] .menu-page .rules-panel,html[data-theme=light] .menu-page .game-card{box-shadow:0 6px 24px #5a411414}html[data-theme=light] .menu-page .game-card:hover{border-color:#a8820c80}html[data-theme=light] .menu-page .name-input{color:var(--text-primary);border-color:var(--glass-border);background:#fff}html[data-theme=light] .menu-page .name-input::placeholder{color:var(--text-muted)}html[data-theme=light] .menu-page .btn-primary,html[data-theme=light] .menu-page .btn-play{color:#fff;text-shadow:0 1px 1px #0003}html[data-theme=light] .menu-page .btn-secondary:hover{background:#4634140f}html[data-theme=light] .menu-page .game-card-badge{background:#a8820c24}html[data-theme=light] .menu-page .rules-penalty-item{background:#4634140f}html[data-theme=light] .menu-page .penalty-card-display.black{color:var(--card-black)}.btn{font-family:var(--font-primary);cursor:pointer;letter-spacing:.5px;border:none;border-radius:12px;font-weight:600;transition:all .3s}.btn-play{background:linear-gradient(135deg, var(--gold), var(--gold-dark));color:#0a0a12;border-radius:16px;align-items:center;gap:.75rem;padding:1rem 2.5rem;font-size:1.2rem;display:flex;box-shadow:0 4px 25px #d4af374d,inset 0 1px #fff3}.btn-play:hover{transform:translateY(-2px);box-shadow:0 8px 35px #d4af3780}.btn-play:active{transform:translateY(0)}.btn-play-icon{font-size:1.5rem}.btn-rules{background:var(--glass-bg);color:var(--text-primary);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:.75rem 2rem;font-size:1rem}.btn-rules:hover{background:#ffffff1a;border-color:#fff3}.btn-primary{background:linear-gradient(135deg, var(--gold), var(--gold-dark));color:#0a0a12;padding:.75rem 2rem;font-size:1rem}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 20px #d4af3766}.btn-primary:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-secondary{background:var(--glass-bg);color:var(--text-secondary);border:1px solid var(--glass-border);padding:.75rem 2rem;font-size:1rem}.btn-secondary:hover{color:var(--text-primary);background:#ffffff1a}.btn-sm{border-radius:8px;padding:.45rem 1rem;font-size:.8rem}.btn-xs{border-radius:6px;padding:.3rem .75rem;font-size:.7rem}.rules-panel{text-align:left;background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:16px;max-height:50vh;margin-top:2rem;padding:1.5rem;animation:.4s ease-out slideUp;overflow-y:auto}.rules-panel::-webkit-scrollbar{width:6px}.rules-panel::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.rules-close{float:right;z-index:2;border:1px solid var(--glass-border);background:var(--modal-bg);width:2rem;height:2rem;color:var(--text-secondary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;margin:-.5rem -.5rem 0 .5rem;font-size:.85rem;transition:color .2s,border-color .2s;display:flex;position:sticky;top:0}.rules-close:hover{color:var(--text-primary);border-color:var(--gold)}.rules-title{font-family:var(--font-display);color:var(--gold);text-align:center;margin-bottom:1rem;font-size:1.3rem}.rules-section{border-bottom:1px solid var(--border-subtle);margin-bottom:1rem;padding-bottom:1rem}.rules-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.rules-section h3{margin-bottom:.5rem;font-size:.95rem;font-weight:600}.rules-section p{color:var(--text-secondary);font-size:.85rem;line-height:1.5}.rules-penalties{flex-direction:column;gap:.4rem;display:flex}.rules-penalty-item{background:#0003;border-radius:6px;justify-content:space-between;align-items:center;padding:.3rem .5rem;font-size:.85rem;display:flex}.penalty-card-display{font-weight:600}.penalty-card-display.red{color:var(--card-red)}.penalty-card-display.black{color:#ccc}.penalty-points{color:var(--gold);font-weight:700}.rules-list{color:var(--text-secondary);font-size:.85rem;line-height:1.8;list-style:none}.rules-list li:before{content:"•";color:var(--gold);margin-right:.5rem;font-weight:700}.game-page{width:100vw;height:100dvh;overflow:hidden}.game-layout{width:100%;height:100%;display:flex}.game-table{flex:1;min-width:0;height:100%;position:relative}.game-table-felt{background:radial-gradient(ellipse at center, var(--table-felt) 0%, var(--table-green) 40%, var(--table-dark) 100%);width:100%;height:100%;position:relative;overflow:hidden}.game-table-felt:before{content:"";pointer-events:none;background-image:repeating-linear-gradient(0deg,#0000,#0000 2px,#00000008 2px 4px);position:absolute;inset:0}.game-table-felt:after{content:"";pointer-events:none;border:2px solid #d4af3726;border-radius:50%;position:absolute;inset:12px}.lobby-btn{z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--text-primary);cursor:pointer;font-size:.8rem;font-weight:600;font-family:var(--font-primary);background:#0009;border:1px solid #ffffff1a;border-radius:20px;padding:.4rem 1rem;transition:all .3s;position:absolute;top:12px;left:12px}.lobby-btn:hover{border-color:var(--gold);color:var(--gold);background:#000c}.game-info-bar{z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#00000080;border:1px solid #ffffff14;border-radius:30px;gap:1.5rem;padding:.5rem 1.5rem;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.game-info-item{align-items:center;gap:.4rem;display:flex}.game-info-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;font-size:.7rem}.game-info-value{color:var(--gold);font-size:.85rem;font-weight:700}.koz-indicator{color:var(--card-red)!important}.player-seat{z-index:5;align-items:center;gap:.5rem;display:flex;position:absolute}.player-seat-info{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:center;background:#0000008c;border:1px solid #ffffff14;border-radius:10px;min-width:100px;padding:.4rem .8rem}.player-seat-active .player-seat-info{border-color:var(--gold);animation:2s ease-in-out infinite glow;box-shadow:0 0 15px #d4af3733}.player-seat-eliminated .player-seat-info{border-color:var(--card-red);opacity:.5}.player-seat-name{color:var(--text-primary);white-space:nowrap;font-size:.75rem;font-weight:700}.player-seat-stats{justify-content:center;align-items:center;gap:.4rem;margin-top:.15rem;display:flex}.player-seat-score{color:var(--gold);font-size:.7rem;font-weight:600}.player-seat-round-penalty{color:var(--card-red);background:#e6394626;border-radius:4px;padding:0 .3rem;font-size:.65rem;font-weight:600}.player-seat-indicator{color:var(--gold);font-size:.8rem;animation:1s ease-in-out infinite pulse}.player-seat-strikes{justify-content:center;gap:2px;margin-top:.2rem;display:flex}.seat-strike{color:#ffffff26;font-size:.55rem;font-weight:800}.seat-strike.active{color:var(--card-red);text-shadow:0 0 4px #e6394680}.player-seat-timer{color:var(--gold);margin-top:.2rem;font-size:.7rem;font-weight:700}.player-seat-timer.timer-warning{color:#ff9800}.player-seat-timer.timer-critical{animation:.5s ease-in-out infinite timerPulse}.player-bubble{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--gold);color:#fff;white-space:nowrap;z-index:100;background:#000000d9;border-radius:12px;max-width:200px;padding:.6rem 1rem;font-size:.85rem;font-weight:600;animation:.3s cubic-bezier(.175,.885,.32,1.275) fadeInScale;position:absolute;bottom:calc(100% + 15px);left:50%;transform:translate(-50%);box-shadow:0 4px 20px #0006}.player-bubble-arrow{border-left:8px solid #0000;border-right:8px solid #0000;border-top:8px solid var(--gold);width:0;height:0;position:absolute;top:100%;left:50%;transform:translate(-50%)}.player-seat-top .player-bubble{top:calc(100% + 15px);bottom:auto}.player-seat-top .player-bubble-arrow{border-top:none;border-bottom:8px solid var(--gold);top:auto;bottom:100%}.player-seat-bottom{bottom:140px;left:50%;transform:translate(-50%)}.player-seat-top{top:50px;left:50%;transform:translate(-50%)}.player-seat-left{top:50%;left:20px;transform:translateY(-50%)}.player-seat-right{top:50%;right:20px;transform:translateY(-50%)}.card{width:var(--card-width);height:var(--card-height);border-radius:var(--card-radius);flex-shrink:0;transition:transform .2s,box-shadow .2s;animation:.3s ease-out both fadeInScale;position:relative}.card-small{width:var(--card-small-width);height:var(--card-small-height)}.card-inner{background:var(--card-bg);border-radius:var(--card-radius);width:100%;height:100%;box-shadow:0 2px 8px var(--card-shadow);border:1px solid #ddd;position:relative;overflow:hidden}.card-inner:after{content:"";border-radius:calc(var(--card-radius) - 3px);pointer-events:none;border:1px solid #0000000f;position:absolute;inset:3px}.card-red .card-rank,.card-red .card-suit-symbol,.card-red .card-center-suit{color:var(--card-red)}.card-black .card-rank,.card-black .card-suit-symbol,.card-black .card-center-suit{color:var(--card-black)}.card-corner{flex-direction:column;align-items:center;line-height:1;display:flex;position:absolute}.card-corner-top{top:4px;left:5px}.card-corner-bottom{bottom:4px;right:5px;transform:rotate(180deg)}.card-rank{font-size:.75rem;font-weight:800;font-family:var(--font-display)}.card-suit-symbol{margin-top:-1px;font-size:.65rem}.card-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.card-center-suit{font-size:1.8rem}.card-small .card-rank{font-size:.65rem}.card-small .card-suit-symbol{font-size:.55rem}.card-small .card-center-suit{font-size:1.3rem}.card-small .card-corner-top{top:3px;left:4px}.card-small .card-corner-bottom{bottom:3px;right:4px}.card-back{background:linear-gradient(135deg, var(--card-back-bg), var(--card-back-accent));box-shadow:0 2px 8px var(--card-shadow);border:1px solid #ffffff1a}.card-back-pattern{border-radius:var(--card-radius);background:repeating-linear-gradient(45deg,#0000,#0000 5px,#d4af370d 5px 10px);justify-content:center;align-items:center;width:100%;height:100%;display:flex}.card-back-inner{background:#d4af3708;border:1px solid #d4af3733;border-radius:4px;justify-content:center;align-items:center;width:70%;height:75%;display:flex}.card-back-symbol{color:var(--gold);opacity:.4;font-size:1.2rem}.card-small .card-back-symbol{font-size:.9rem}.card-playable{cursor:pointer}.card-playable:hover{z-index:10;transform:translateY(-12px)scale(1.05);box-shadow:0 8px 25px #d4af374d}.card-playable .card-inner{border-color:var(--gold);box-shadow:0 0 10px #d4af3733}.card-disabled{opacity:.5;filter:brightness(.7)}.card-highlighted{animation:1.5s ease-in-out infinite winnerGlow}.hand{z-index:3;justify-content:center;align-items:center;display:flex;position:absolute}.hand-cards{display:flex;position:relative}.hand-horizontal{flex-direction:row}.hand-vertical{flex-direction:column}.hand-bottom{z-index:20;bottom:15px;left:50%;transform:translate(-50%)}.hand-bottom .hand-card-wrapper{margin-left:-15px;transition:transform .2s}.hand-bottom .hand-card-wrapper:first-child{margin-left:0}.hand-top{top:50px;left:50%;transform:translate(-50%)}.hand-top .hand-card-wrapper{margin-left:-30px}.hand-top .hand-card-wrapper:first-child{margin-left:0}.hand-left{top:50%;left:15px;transform:translateY(-50%)}.hand-left .hand-cards{flex-direction:column}.hand-left .hand-card-wrapper{margin-top:-55px}.hand-left .hand-card-wrapper:first-child{margin-top:0}.hand-right{top:50%;right:15px;transform:translateY(-50%)}.hand-right .hand-cards{flex-direction:column}.hand-right .hand-card-wrapper{margin-top:-55px}.hand-right .hand-card-wrapper:first-child{margin-top:0}.play-area{z-index:15;width:250px;height:250px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.play-area-cards{width:100%;height:100%;position:relative}.play-area-card{margin-top:-40px;margin-left:-27px;animation:.3s ease-out both cardPlay;position:absolute;top:50%;left:50%}.play-area-bottom{z-index:4;margin-top:30px}.play-area-top{z-index:1;margin-top:-110px}.play-area-left{z-index:2;margin-left:-97px}.play-area-right{z-index:3;margin-left:43px}.play-area-winner .card{border-radius:var(--card-radius);animation:1s ease-in-out infinite winnerGlow}.collect-to-bottom{opacity:0;z-index:100;pointer-events:none;transition:all .5s cubic-bezier(.4,0,.2,1) 1.3s;transform:translateY(400px)scale(.1)}.collect-to-top{opacity:0;z-index:100;pointer-events:none;transition:all .5s cubic-bezier(.4,0,.2,1) 1.3s;transform:translateY(-300px)scale(.1)}.collect-to-left{opacity:0;z-index:100;pointer-events:none;transition:all .5s cubic-bezier(.4,0,.2,1) 1.3s;transform:translate(-300px)scale(.1)}.collect-to-right{opacity:0;z-index:100;pointer-events:none;transition:all .5s cubic-bezier(.4,0,.2,1) 1.3s;transform:translate(300px)scale(.1)}.game-message{z-index:25;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--gold);white-space:nowrap;pointer-events:none;background:#000000bf;border:1px solid #d4af3733;border-radius:30px;padding:.6rem 1.5rem;font-size:.85rem;font-weight:600;animation:.3s ease-out messageSlide;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.right-panel{width:var(--right-panel-width);background:var(--bg-panel);border-left:1px solid var(--border-subtle);flex-direction:column;flex-shrink:0;height:100%;animation:.4s ease-out slideInRight;display:flex}.right-panel-timer{border-bottom:1px solid var(--border-subtle);background:#0000004d;justify-content:center;align-items:center;gap:.5rem;padding:.6rem;display:flex}.timer-icon{font-size:.9rem}.timer-text{font-family:var(--font-display);color:var(--gold);letter-spacing:2px;font-size:1.1rem;font-weight:700}.right-panel-tabs{border-bottom:1px solid var(--border-subtle);display:flex}.right-panel-tab{text-align:center;color:var(--text-muted);cursor:pointer;font-size:.75rem;font-weight:600;font-family:var(--font-primary);background:0 0;border:none;flex:1;padding:.5rem;transition:all .2s;position:relative}.right-panel-tab.active{color:var(--gold);background:#d4af370d}.right-panel-tab.active:after{content:"";background:var(--gold);border-radius:1px;height:2px;position:absolute;bottom:0;left:20%;right:20%}.right-panel-tab:hover:not(.active){color:var(--text-secondary)}.chat-badge{background:var(--card-red);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:.6rem;display:flex;position:absolute;top:4px;right:8px}.right-panel-content{flex-direction:column;flex:1;display:flex;overflow:hidden}.right-panel-mobile-toggle{z-index:25;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:44px;height:44px;color:var(--gold);cursor:pointer;background:#000000b3;border:1px solid #d4af374d;border-radius:50%;justify-content:center;align-items:center;font-size:1.2rem;transition:all .3s;display:none;position:absolute;top:12px;right:12px;box-shadow:0 4px 15px #0006}.right-panel-mobile-toggle:hover{border-color:var(--gold);background:#000000d9;transform:scale(1.05);box-shadow:0 4px 20px #d4af374d}.right-panel-mobile-close{z-index:10;width:32px;height:32px;color:var(--card-red);cursor:pointer;background:#e6394626;border:1px solid #e639464d;border-radius:50%;justify-content:center;align-items:center;font-size:.9rem;font-weight:700;transition:all .2s;display:none;position:absolute;top:10px;right:10px}.right-panel-mobile-close:hover{border-color:var(--card-red);background:#e639464d}.right-panel-mobile-backdrop{display:none}.side-scoreboard{flex:1;padding:.6rem;overflow-y:auto}.side-scoreboard::-webkit-scrollbar{width:4px}.side-scoreboard::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.side-scoreboard-header{text-align:center;color:var(--gold);border-bottom:1px solid var(--border-subtle);margin-bottom:.5rem;padding-bottom:.4rem;font-size:.75rem;font-weight:600}.side-score-players{flex-direction:column;gap:.4rem;display:flex}.side-score-player{border:1px solid var(--border-subtle);background:#ffffff08;border-radius:8px;padding:.5rem}.side-score-player.eliminated{opacity:.4;border-color:var(--card-red)}.side-score-player-header{justify-content:space-between;align-items:center;display:flex}.side-score-username{font-size:.7rem;font-weight:600}.side-score-total{color:var(--gold);font-size:.8rem;font-weight:800}.side-score-strikes{gap:3px;margin-top:.3rem;display:flex}.strike-x{color:#ffffff1f;font-size:.65rem;font-weight:800}.strike-x.active{color:var(--card-red);text-shadow:0 0 6px #e6394666}.side-score-penalty-cards{flex-wrap:wrap;gap:.2rem;margin-top:.3rem;display:flex}.mini-penalty-badge{border-radius:3px;padding:.1rem .3rem;font-size:.6rem;font-weight:600}.penalty-red{color:var(--card-red);background:#e6394626}.penalty-black{color:#ccc;background:#ffffff14}.side-score-history{margin-top:.6rem}.side-score-history-title{color:var(--text-muted);text-align:center;margin-bottom:.3rem;font-size:.7rem}.side-score-history-table{font-size:.65rem}.side-score-history-row{border-bottom:1px solid #ffffff0a;display:flex}.side-score-history-row.header{color:var(--gold);border-bottom:1px solid #d4af3726;font-weight:600}.side-score-history-cell{text-align:center;flex:1;padding:.2rem .15rem}.side-score-history-cell.round-num{color:var(--text-muted)}.side-score-history-cell.has-penalty{color:var(--card-red);font-weight:600}.chat-panel{flex-direction:column;flex:1;height:100%;display:flex}.chat-header{border-bottom:1px solid var(--border-subtle);padding:.5rem .6rem}.chat-title{color:var(--text-secondary);font-size:.75rem;font-weight:600}.chat-messages{flex-direction:column;flex:1;gap:.3rem;padding:.5rem;display:flex;overflow-y:auto}.chat-messages::-webkit-scrollbar{width:4px}.chat-messages::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.chat-empty{text-align:center;color:var(--text-muted);padding:2rem 0;font-size:.7rem}.chat-msg{border-radius:6px;padding:.3rem .4rem}.chat-msg:hover{background:#ffffff08}.chat-msg-system{background:#d4af370d;border-radius:6px}.chat-msg-system-text{color:var(--gold);font-size:.65rem;font-style:italic}.chat-msg-system-icon{font-size:.55rem}.chat-msg-header{justify-content:space-between;align-items:center;display:flex}.chat-msg-username{color:var(--gold);font-size:.65rem;font-weight:700}.chat-msg-time{color:var(--text-muted);font-size:.55rem}.chat-msg-text{color:var(--text-secondary);word-break:break-word;margin-top:.1rem;font-size:.72rem}.chat-input-area{border-top:1px solid var(--border-subtle);background:#0003;gap:.3rem;padding:.5rem;display:flex}.chat-input{border:1px solid var(--border-subtle);color:var(--text-primary);font-size:.75rem;font-family:var(--font-primary);background:#ffffff0f;border-radius:8px;outline:none;flex:1;padding:.4rem .6rem;transition:border-color .2s}.chat-input:focus{border-color:var(--gold)}.chat-input::placeholder{color:var(--text-muted)}.chat-send-btn{background:linear-gradient(135deg, var(--gold), var(--gold-dark));color:#0a0a12;cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;font-size:1rem;transition:all .2s;display:flex}.chat-send-btn:disabled{opacity:.3;cursor:not-allowed}.chat-send-btn:hover:not(:disabled){box-shadow:0 2px 10px #d4af374d}.scoreboard-overlay{z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000c;justify-content:center;align-items:center;animation:.4s ease-out fadeIn;display:flex;position:absolute;inset:0}.scoreboard{background:linear-gradient(145deg,#1a1a2e,#16213e);border:1px solid #d4af3733;border-radius:20px;width:90%;max-width:550px;max-height:85vh;padding:2rem;animation:.5s ease-out slideUp;overflow-y:auto;box-shadow:0 20px 60px #00000080}.scoreboard::-webkit-scrollbar{width:6px}.scoreboard::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.scoreboard-title{font-family:var(--font-display);text-align:center;color:var(--gold);margin-bottom:1rem;font-size:1.5rem}.scoreboard-winner{text-align:center;color:var(--text-primary);background:#d4af371a;border:1px solid #d4af3733;border-radius:10px;margin-bottom:1rem;padding:.75rem;font-size:1.1rem}.scoreboard-eliminated{text-align:center;color:var(--card-red);background:#e639461a;border:1px solid #e6394633;border-radius:10px;margin-bottom:.75rem;padding:.6rem;font-size:1rem}.scoreboard-table-wrapper{margin-bottom:1.5rem;overflow-x:auto}.scoreboard-table{border-collapse:collapse;width:100%;font-size:.85rem}.scoreboard-table th{color:var(--gold);text-align:center;border-bottom:2px solid #d4af3733;padding:.5rem;font-weight:600}.scoreboard-table td{text-align:center;border-bottom:1px solid var(--border-subtle);padding:.4rem .5rem}.round-label{color:var(--text-muted);font-weight:500}.score-penalty{color:var(--card-red);font-weight:600}.score-zero{color:#4caf50}.scoreboard-total-row td{border-top:2px solid #d4af374d;padding-top:.6rem}.scoreboard-strikes-row td{padding-top:.4rem}.has-strikes{color:var(--card-red)}.table-strike{color:#ffffff26;margin:0 1px;font-size:.6rem}.table-strike.active{color:var(--card-red)}.scoreboard-penalties{margin-bottom:1.5rem}.scoreboard-penalties h3{color:var(--text-secondary);text-align:center;margin-bottom:.75rem;font-size:.9rem}.scoreboard-penalty-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.scoreboard-penalty-player{background:#0000004d;border-radius:8px;padding:.6rem}.scoreboard-penalty-name{color:var(--text-secondary);margin-bottom:.3rem;font-size:.75rem;font-weight:600}.scoreboard-penalty-cards{flex-wrap:wrap;gap:.3rem;display:flex}.penalty-card-badge{border-radius:4px;padding:.15rem .4rem;font-size:.7rem;font-weight:600}.no-penalty{color:#4caf50;font-size:.7rem}.scoreboard-info{text-align:center;margin-bottom:1rem}.scoreboard-info-text{color:var(--text-muted);font-size:.75rem}.scoreboard-actions{justify-content:center;gap:1rem;margin-top:1rem;display:flex}.lobby-overlay{z-index:100;background:var(--overlay-bg);color:var(--text-primary);justify-content:flex-start;align-items:flex-start;padding:1rem 0;animation:.3s ease-out fadeIn;display:flex;position:fixed;inset:0;overflow-y:auto}.lobby-overlay>.lobby-panel{margin:auto}.lobby-panel{background:var(--panel-bg);border:1px solid #d4af3726;border-radius:20px;flex-direction:column;width:90%;max-width:700px;max-height:85vh;animation:.4s ease-out slideUp;display:flex;overflow:hidden;box-shadow:0 20px 60px #0009}.lobby-header{border-bottom:1px solid var(--border-subtle);grid-template-columns:1fr auto 1fr;align-items:center;gap:.75rem;padding:1rem 1.5rem;display:grid}.lobby-header-end{justify-self:end;display:flex}.lobby-back-btn{white-space:nowrap;font-family:var(--font-primary);border:1px solid var(--glass-border);background:var(--surface);color:var(--text-primary);cursor:pointer;border-radius:8px;justify-self:start;padding:.4rem .75rem;font-size:.78rem;font-weight:600;transition:border-color .2s,background .2s}.lobby-back-btn:hover{border-color:var(--gold);background:var(--surface-strong)}.lobby-title{font-family:var(--font-display);color:var(--gold);text-align:center;font-size:1.3rem}.lobby-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.3rem;font-size:1.2rem;transition:color .2s}.lobby-close:hover{color:var(--text-primary)}.lobby-actions{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1.5rem;display:flex}.lobby-search{flex:1}.lobby-search-input{background:var(--surface);border:1px solid var(--border-subtle);width:100%;color:var(--text-primary);font-size:.8rem;font-family:var(--font-primary);border-radius:8px;outline:none;padding:.45rem .75rem;transition:border-color .2s}.lobby-search-input:focus{border-color:var(--gold)}.lobby-search-input::placeholder{color:var(--text-muted)}.lobby-action-buttons{gap:.5rem;display:flex}@media (max-width:600px){.lobby-header{padding:.8rem 1rem}.lobby-title{font-size:1.05rem}.lobby-back-btn{padding:.35rem .55rem;font-size:.72rem}.lobby-actions{flex-wrap:wrap}.lobby-search{flex-basis:100%}.lobby-action-buttons{width:100%}.lobby-action-buttons>*{flex:1}}.lobby-filters{border-bottom:1px solid var(--border-subtle);gap:.5rem;padding:.5rem 1.5rem;display:flex}.lobby-filter-btn{background:var(--surface);color:var(--text-muted);cursor:pointer;font-size:.7rem;font-family:var(--font-primary);border:1px solid #0000;border-radius:20px;padding:.3rem .8rem;font-weight:500;transition:all .2s}.lobby-filter-btn.active{border-color:var(--gold);color:var(--gold);background:#d4af371a}.lobby-filter-btn:hover:not(.active){color:var(--text-secondary);background:var(--surface-strong)}.lobby-room-list{flex:1;max-height:580px;padding:.5rem 1rem;overflow-y:auto}.lobby-room-list::-webkit-scrollbar{width:5px}.lobby-room-list::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}.lobby-empty{text-align:center;color:var(--text-muted);padding:2rem;font-size:.85rem}.lobby-room-item{background:var(--surface);border:1px solid var(--border-subtle);border-radius:10px;justify-content:space-between;align-items:center;margin-bottom:.4rem;padding:.6rem .75rem;transition:all .2s;display:flex}.lobby-room-item:hover{background:var(--surface-strong);border-color:#d4af371a}.lobby-room-name{font-size:.8rem;font-weight:600}.lobby-room-id{color:var(--text-muted);margin-left:.5rem;font-size:.65rem}.lobby-room-meta{align-items:center;gap:.5rem;margin-top:.2rem;display:flex}.lobby-room-host{color:var(--text-muted);font-size:.65rem}.room-status{border-radius:10px;padding:.15rem .5rem;font-size:.6rem;font-weight:600}.room-status-waiting{color:#4caf50;background:#4caf5026}.room-status-playing{color:#2196f3;background:#2196f326}.room-status-full{color:var(--card-red);background:#e6394626}.lobby-room-actions{align-items:center;gap:.75rem;display:flex}.lobby-room-players{flex-direction:column;align-items:center;gap:.15rem;display:flex}.lobby-player-count{color:var(--text-secondary);font-size:.7rem;font-weight:600}.lobby-player-icons{gap:3px;display:flex}.lobby-player-dot{background:var(--surface-border);border-radius:50%;width:6px;height:6px}.lobby-player-dot.filled{background:var(--gold)}.lobby-create-modal{z-index:120;background:#00000080;justify-content:center;align-items:flex-start;padding:1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.lobby-create-content{background:var(--modal-bg);border:1px solid #d4af3733;border-radius:16px;width:300px;max-width:100%;margin:auto;padding:1.5rem}@media (max-height:520px) and (orientation:landscape){.lobby-create-content{width:360px;padding:1rem 1.25rem}.lobby-create-content h3,.lobby-create-content .okey-setting{margin-bottom:.6rem}.lobby-create-content .okey-segment button{padding:.35rem .5rem}}.lobby-create-content h3{color:var(--gold);text-align:center;margin-bottom:1rem;font-size:1rem}.lobby-create-input{background:var(--surface);border:1px solid var(--border-subtle);width:100%;color:var(--text-primary);font-size:.85rem;font-family:var(--font-primary);border-radius:8px;outline:none;margin-bottom:1rem;padding:.5rem}.lobby-create-input:focus{border-color:var(--gold)}.lobby-create-actions{justify-content:center;gap:.5rem;display:flex}.peskil-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:15;background:#000000b3;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.peskil-modal{background:var(--bg-surface);border:1px solid var(--border-subtle);text-align:center;color:var(--text-primary);border-radius:12px;width:350px;padding:2rem;box-shadow:0 10px 40px #00000080,inset 0 1px 1px #ffffff0d}.peskil-modal h2{color:var(--gold);margin-top:0;margin-bottom:.5rem}.peskil-modal p{color:var(--text-secondary);margin-bottom:2rem;font-size:.9rem}.peskil-buttons{flex-direction:column;gap:1rem;display:flex}.peskil-btn-yes{color:#fff;cursor:pointer;background:linear-gradient(90deg,#ff4d4d,#e60000);border:none;border-radius:8px;padding:.8rem;font-weight:700;transition:transform .2s}.peskil-btn-yes:hover{transform:translateY(-2px)}.peskil-btn-no{color:var(--text-primary);border:1px solid var(--border-subtle);cursor:pointer;background:#ffffff1a;border-radius:8px;padding:.8rem;transition:background .2s}.peskil-btn-no:hover{background:#ffffff26}@media (max-width:900px){:root{--card-width:55px;--card-height:80px;--card-small-width:42px;--card-small-height:62px;--right-panel-width:220px}.hand-bottom .hand-card-wrapper{margin-left:-20px}.hand-top .hand-card-wrapper{margin-left:-32px}.hand-left .hand-card-wrapper,.hand-right .hand-card-wrapper{margin-top:-50px}.play-area{width:160px;height:150px}.player-seat-info{min-width:80px;padding:.3rem .5rem}.player-seat-name{font-size:.65rem}}@media (max-width:1024px){.right-panel-mobile-toggle,.right-panel-mobile-close{display:flex}.right-panel-mobile-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:90;background:#0009;animation:.2s ease-out fadeIn;display:block;position:fixed;inset:0}.right-panel{z-index:100;border-left:1px solid #d4af3726;flex-direction:column;width:300px;max-width:85vw;height:100dvh;transition:transform .3s cubic-bezier(.4,0,.2,1);animation:none;position:fixed;top:0;right:0;transform:translate(100%);box-shadow:-5px 0 30px #00000080}.right-panel.mobile-open{transform:translate(0)}.right-panel-timer{writing-mode:horizontal-tb;padding:.8rem 3rem .8rem 1rem}.right-panel-tabs{flex-direction:row}.right-panel-content{flex:1;overflow-y:auto}.game-layout{flex-direction:row}.game-table{width:100%;height:100%}.lobby-panel{width:95%}}@media (max-width:768px){:root{--card-width:55px;--card-height:80px;--card-small-width:44px;--card-small-height:64px}}@media (max-width:600px){:root{--card-width:60px;--card-height:86px;--card-small-width:40px;--card-small-height:58px;--hand-gutter:12px;--hand-row-gap:6px}.hand-bottom{width:100%;padding:10px var(--hand-gutter) calc(10px + env(safe-area-inset-bottom));background:linear-gradient(#0000 0%,#00000059 25%,#000000bf 100%);bottom:0;left:0;right:0;transform:none}.hand-bottom .hand-cards{gap:var(--hand-row-gap);flex-direction:column;width:100%}.hand-row{justify-content:center;display:flex}.hand-bottom .hand-card-wrapper,.hand-bottom .hand-card-wrapper:first-child{margin-left:0}.hand-row .hand-card-wrapper+.hand-card-wrapper{margin-left:min(4px, calc((100vw - 2 * var(--hand-gutter) - var(--card-width)) / max(var(--row-count) - 1, 1) - var(--card-width)))}.hand-row .card{box-shadow:-2px 0 6px #00000059}.hand-row .card-playable{transform:translateY(-6px)}.hand-row .card-playable:hover{transform:translateY(-10px)}.hand-row .card-disabled{opacity:.55;filter:brightness(.75)}.hand-row .card-rank{font-size:.85rem}.hand-row .card-suit-symbol{font-size:.75rem}.player-seat-bottom{bottom:calc(2 * var(--card-height) + var(--hand-row-gap) + 30px + env(safe-area-inset-bottom))}.hand-left,.hand-right,.hand-top{display:none}.player-seat-left{top:38%;left:6px}.player-seat-right{top:38%;right:6px}.player-seat-top{top:54px}.player-seat-left .player-seat-info,.player-seat-right .player-seat-info,.player-seat-top .player-seat-info{min-width:0;padding:.25rem .45rem}.player-seat-left .player-seat-strikes,.player-seat-right .player-seat-strikes{display:none}.player-seat-name{text-overflow:ellipsis;max-width:84px;font-size:.65rem;overflow:hidden}.player-seat-indicator{display:none}.player-bubble{max-width:140px;font-size:.7rem}.play-area{width:200px;height:200px;top:42%}.play-area-top{margin-top:-95px}.play-area-left{margin-left:-80px}.play-area-right{margin-left:30px}.play-area-bottom{margin-top:20px}.game-info-bar{gap:.8rem;padding:.4rem .9rem}.game-message{white-space:normal;text-align:center;max-width:90vw;padding:.5rem 1rem;font-size:.75rem;top:30%}}@media (max-height:500px) and (orientation:landscape){:root{--card-width:52px;--card-height:74px;--card-small-width:38px;--card-small-height:54px}.hand-top,.hand-left,.hand-right{display:none}.hand-bottom{bottom:calc(6px + env(safe-area-inset-bottom))}.hand-bottom .hand-card-wrapper{margin-left:-6px}.hand-bottom .hand-card-wrapper:first-child{margin-left:0}.player-seat-bottom{bottom:calc(var(--card-height) + 18px);left:auto;right:12px;transform:none}.player-seat-top{top:8px;left:30%}.player-seat-indicator,.player-seat-strikes{display:none}.play-area{width:180px;height:170px;top:44%}.play-area-top{margin-top:-85px}.play-area-bottom{margin-top:10px}}.voice-panel{background:var(--sunken);border:1px solid var(--border-subtle);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:.6rem;min-height:180px;margin-bottom:1.5rem;padding:1rem;display:flex}.voice-mic-btn{cursor:pointer;background:var(--surface);border:2px solid var(--border-subtle);touch-action:manipulation;border-radius:50%;width:64px;height:64px;font-size:1.5rem;transition:all .2s}.voice-mic-btn.on{border-color:var(--gold);background:#d4af3733}.voice-mic-btn.speaking{box-shadow:0 0 0 6px #d4af3740,0 0 18px #d4af3780}.voice-mic-btn:disabled{opacity:.5;cursor:wait}.voice-status{color:var(--text-muted);text-align:center;font-size:.8rem}.voice-error{color:var(--card-red);text-align:center;font-size:.75rem}.voice-unlock-btn{background:var(--gold);color:#000;cursor:pointer;border:none;border-radius:8px;padding:.4rem .9rem;font-weight:700}.voice-participants{flex-wrap:wrap;justify-content:center;gap:.4rem;display:flex}.voice-chip{background:var(--surface);border:1px solid var(--border-subtle);color:var(--text-muted);border-radius:20px;align-items:center;gap:.3rem;padding:.3rem .6rem;font-size:.72rem;display:flex}.voice-chip.connected{color:var(--text-primary)}.voice-chip.talking{color:var(--gold);border-color:var(--gold)}.seat-groups{grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:.5rem;display:grid}.seat-group{border:1px solid var(--border-subtle);background:var(--sunken);border-radius:14px;flex-direction:column;gap:.6rem;padding:.6rem;display:flex}.seat-group-title{letter-spacing:1px;text-transform:uppercase;color:var(--gold);font-size:.75rem;font-weight:700}.seat-groups-hint{color:var(--text-muted);margin-bottom:1.25rem;font-size:.75rem}@media (max-width:600px){.seat-groups{gap:.6rem}.seat-group{padding:.45rem}}.seat-name{font-size:.9rem}@media (max-width:600px){.seat-name{font-size:.8rem}}.lobby-panel.waiting-room-panel{z-index:1;text-align:center;width:500px;max-width:92%;max-height:none;padding:1.25rem 2rem 2rem;overflow:visible}.wr-title{font-family:var(--font-display);color:var(--gold);margin-bottom:.5rem;font-size:2rem}.wr-code{color:var(--text-muted);letter-spacing:1px;margin-bottom:2rem}@media (max-height:520px) and (orientation:landscape){.lobby-panel.waiting-room-panel{grid-template-columns:1.15fr 1fr;align-items:start;column-gap:1.25rem;width:min(860px,96%);max-width:96%;padding:.75rem 1.25rem 1rem;display:grid}.waiting-room-panel .waiting-room-top{grid-column:1/-1;margin-bottom:.25rem}.wr-title{margin-bottom:.2rem;font-size:1.35rem}.wr-code{margin-bottom:.75rem;font-size:.8rem}.waiting-room-panel .seat-groups{gap:.5rem}.waiting-room-panel .seat-group{gap:.4rem;padding:.4rem}.waiting-room-panel .seat-slot{gap:.1rem!important;padding:.45rem!important}.waiting-room-panel .seat-slot>div:first-child{font-size:1.1rem!important}.waiting-room-panel .seat-groups-hint{margin-bottom:0;font-size:.7rem}.waiting-room-panel .spectator-box{margin-bottom:.75rem}.wr-side{flex-direction:column;justify-content:flex-end;align-self:stretch;display:flex}.wr-side>:last-child{margin-bottom:0}}.waiting-room-top{justify-content:flex-end;gap:.5rem;min-height:2rem;margin-bottom:.5rem;display:flex}.waiting-room-chip{border:1px solid var(--gold);color:var(--gold);cursor:pointer;background:#d4af371a;border-radius:8px;padding:.4rem .8rem;font-size:.75rem;font-weight:700}.waiting-room-chip:hover{background:#d4af3733}.seat-slot-free{cursor:pointer}.wr-unread{background:var(--card-red);color:#fff;vertical-align:middle;border-radius:999px;min-width:1.1rem;margin-left:.35rem;padding:0 .3rem;font-size:.65rem;line-height:1.1rem;display:inline-block}.seat-slot-free:hover{border-color:var(--gold)!important;background:#d4af3714!important}.seat-move-hint{color:var(--gold);opacity:.8;font-size:.7rem}.spectator-box{border:1px solid var(--border-subtle);background:var(--sunken);text-align:left;border-radius:12px;margin-bottom:1.25rem;padding:.6rem .8rem}.spectator-title{color:var(--text-secondary);margin-bottom:.35rem;font-size:.8rem;font-weight:700}.spectator-list{flex-wrap:wrap;gap:.35rem;display:flex}.spectator-chip{background:var(--surface);color:var(--text-primary);border-radius:20px;padding:.2rem .55rem;font-size:.75rem}.spectator-empty{color:var(--text-muted);font-size:.75rem}@media (max-width:600px){.lobby-panel.waiting-room-panel{padding:1rem 1rem 1.5rem}}.spectator-banner{z-index:30;color:var(--gold);white-space:nowrap;background:#000000b3;border:1px solid #d4af374d;border-radius:20px;padding:.35rem .9rem;font-size:.75rem;font-weight:600;position:absolute;top:52px;left:12px}@media (max-width:600px){.spectator-banner-long{display:none}}
