@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap";:root{--bg:#0b1214;--bg-card:#101a19;--bg-surface:#162321;--bg-elevated:#20302d;--primary:#e23d3d;--primary-light:#f06464;--primary-dark:#b92b32;--accent:#f2c94c;--accent-soft:#dcad2f;--text:#f4f7f5;--text-secondary:#b8c5c0;--text-muted:#7f918b;--success:#24b8a6;--warning:#e2a93b;--danger:#e23d3d;--border:#2a3a36;--radius:8px;--radius-lg:8px;--radius-xl:8px;--shadow:0 4px 20px #0000004d;--shadow-lg:0 8px 40px #0006;--transition:all .3s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}body,html{width:100%;min-height:100vh;overflow-x:hidden}#root{width:100%;min-height:100vh}input,button,select,textarea{font-family:inherit}a{color:var(--primary-light);text-decoration:none}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.35)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.spin{animation:1s linear infinite spin}.fade-in{animation:.4s ease-out fadeIn}.slide-up{animation:.5s ease-out slideUp}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex;position:relative;overflow:hidden}.login-bg{pointer-events:none;position:fixed;inset:0}.bg-glow{filter:blur(120px);opacity:.15;border-radius:50%;width:300px;height:300px;position:absolute}.bg-glow.top-right{background:var(--primary);top:-100px;right:-100px}.bg-glow.bottom-left{background:var(--accent);bottom:-100px;left:-100px}.login-content{flex-direction:column;align-items:center;gap:32px;width:100%;max-width:400px;display:flex}.brand{text-align:center;animation:.6s ease-out fadeIn}.brand-icon{background:linear-gradient(135deg, var(--primary), var(--primary-dark));border-radius:16px;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 16px;display:flex;box-shadow:0 8px 24px #d32f2f4d}.brand h1{letter-spacing:-1px;background:linear-gradient(to right, var(--text), var(--text-secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:2rem;font-weight:900}.brand-sub{color:var(--text-muted);letter-spacing:2px;text-transform:uppercase;margin-top:4px;font-size:.85rem}.step-dots{align-items:center;gap:6px;display:flex}.dot{background:var(--border);width:8px;height:8px;transition:var(--transition);border-radius:50%}.dot.active{background:var(--primary-light);box-shadow:0 0 12px #ef535066}.dot.done{background:var(--success)}.line{background:var(--border);width:24px;height:2px;transition:var(--transition);border-radius:1px}.line.done{background:var(--success)}.auth-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);width:100%;box-shadow:var(--shadow-lg);padding:32px 24px}.auth-card h2{margin-bottom:4px;font-size:1.3rem;font-weight:700}.form-desc{color:var(--text-secondary);margin-bottom:24px;font-size:.85rem}.input-group{margin-bottom:16px;position:relative}.input-icon{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.input-field{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);transition:var(--transition);outline:none;padding:14px 14px 14px 44px;font-size:1rem}.input-field:focus{border-color:var(--primary);box-shadow:0 0 0 3px #d32f2f26}.input-field::placeholder{color:var(--text-muted)}.checkbox-label{cursor:pointer;color:var(--text-secondary);align-items:center;gap:10px;margin-bottom:20px;font-size:.85rem;display:flex}.checkbox-label input{display:none}.check-box{border:2px solid var(--border);width:20px;height:20px;transition:var(--transition);border-radius:6px;flex-shrink:0;position:relative}.checkbox-label input:checked+.check-box{background:var(--success);border-color:var(--success)}.checkbox-label input:checked+.check-box:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:6px;height:10px;position:absolute;top:2px;left:5px;transform:rotate(45deg)}.primary-btn{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;border-radius:var(--radius);cursor:pointer;width:100%;transition:var(--transition);border:none;justify-content:center;align-items:center;gap:8px;padding:14px;font-size:1rem;font-weight:700;display:flex;box-shadow:0 4px 16px #d32f2f4d}.primary-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 24px #d32f2f66}.primary-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.text-btn{color:var(--text-muted);cursor:pointer;text-align:center;background:0 0;border:none;width:100%;margin-top:16px;padding:8px;font-size:.85rem}.text-btn:hover{color:var(--text-secondary)}.otp-header{text-align:center;margin-bottom:24px}.otp-icon{color:var(--success);margin-bottom:12px}.otp-inputs{justify-content:center;gap:8px;margin-bottom:24px;display:flex}.otp-box{text-align:center;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:44px;height:52px;color:var(--text);transition:var(--transition);outline:none;font-size:1.3rem;font-weight:700}.otp-box:focus{border-color:var(--primary);box-shadow:0 0 0 3px #d32f2f26}.otp-secondary-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:4px;display:grid}.otp-secondary-actions .text-btn{min-height:40px;margin:0}.otp-secondary-actions .text-btn:disabled{opacity:.48;cursor:default}.error-box{border-radius:var(--radius);color:var(--danger);background:#f443361a;border:1px solid #f443364d;margin-bottom:16px;padding:10px 14px;font-size:.85rem}.login-footer-text{color:var(--text-muted);margin:0 0 6px;font-size:.75rem}.login-legal-links{justify-content:center;align-items:center;gap:8px;font-size:.72rem;display:flex}.login-legal-links a{color:var(--text-muted);text-decoration:none}.login-legal-links a:hover{color:var(--accent);text-decoration:underline}.login-legal-links span{color:var(--text-muted);opacity:.5}.modal-overlay{z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;justify-content:center;align-items:center;padding:20px;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);width:100%;max-width:380px;box-shadow:var(--shadow-lg);overflow:hidden}.modal-panel-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.modal-panel-title{align-items:center;gap:10px;display:flex}.modal-panel-title h3{margin:0;font-size:1rem}.modal-close{background:var(--bg-surface);color:var(--text-muted);cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.modal-body{padding:20px}.modal-desc{color:var(--text-muted);margin-bottom:16px;font-size:.82rem}.preset-grid{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px;display:grid}.preset-chip{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:var(--transition);flex-direction:column;align-items:center;gap:2px;padding:14px 12px;display:flex}.preset-chip.active{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 10%, var(--bg-surface))}.preset-value{font-size:1rem;font-weight:700}.preset-bonus{color:var(--success);font-size:.7rem;font-weight:600}.custom-input{margin-bottom:12px}.custom-input label{color:var(--text-muted);margin-bottom:6px;font-size:.75rem;font-weight:600;display:block}.custom-input input{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);box-sizing:border-box;outline:none;padding:12px;font-size:1rem}.custom-input input:focus{border-color:var(--primary)}.modal-panel-footer{border-top:1px solid var(--border);gap:10px;padding:16px 20px;display:flex}.btn-modal-cancel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;flex:1;padding:12px;font-weight:600}.btn-modal-confirm{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;border-radius:var(--radius);cursor:pointer;transition:var(--transition);border:none;flex:2;justify-content:center;align-items:center;gap:6px;padding:12px;font-weight:700;display:flex}.btn-modal-confirm:hover{transform:translateY(-1px)}.btn-modal-confirm:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-modal-confirm.redemption{background:linear-gradient(135deg, var(--warning), #e65100)}.purchase-success{text-align:center;padding:30px 22px 22px}.purchase-success>svg{color:var(--success)}.purchase-success h4{margin:12px 0 6px;font-size:1.05rem}.purchase-success p{color:var(--text-secondary);margin:0 0 22px;font-size:.85rem;line-height:1.5}.purchase-success .btn-modal-confirm{width:100%;min-height:44px}.dashboard-page{--dash-red:#c8203c;--dash-green:#1f8f5f;--dash-yellow:#d4af37;--dash-blue:#1f6fb2;--dash-gold:#d4af37;--dash-gold-light:#f3dfa0;--dash-gold-dark:#8a6a1f;--dash-felt:#04140e;--dash-ivory:#f4ecd8;max-width:540px;color:var(--dash-ivory);flex-direction:column;gap:20px;margin:0 auto;padding:4px 2px 24px;display:flex;position:relative}.dashboard-page:before{content:"";z-index:-1;background:radial-gradient(ellipse 900px 480px at 50% -8%, #d4af3724, transparent 60%), repeating-linear-gradient(45deg, #ffffff03 0 2px, transparent 2px 26px), repeating-linear-gradient(-45deg, #0000001f 0 2px, transparent 2px 26px), radial-gradient(circle at 50% 25%, #0c2c1f, var(--dash-felt) 78%);position:fixed;inset:0}.dashboard-page .section-title,.dashboard-page .greeting h2,.dashboard-page .stat-val,.dashboard-page .resume-copy strong,.dashboard-page .progress-copy strong,.dashboard-page .action-card-text strong{color:var(--dash-ivory)}.dash-stagger-1,.dash-stagger-2,.dash-stagger-3,.dash-stagger-4,.dash-stagger-5,.dash-stagger-6,.dash-stagger-7{animation:.5s cubic-bezier(.16,1,.3,1) both fadeIn}.dash-stagger-1{animation-delay:10ms}.dash-stagger-2{animation-delay:70ms}.dash-stagger-3{animation-delay:.13s}.dash-stagger-4{animation-delay:.19s}.dash-stagger-5{animation-delay:.25s}.dash-stagger-6{animation-delay:.31s}.dash-stagger-7{animation-delay:.37s}.overlay{z-index:2000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#040809c7;justify-content:center;align-items:center;padding:20px;animation:.25s ease-out fadeIn;display:flex;position:fixed;inset:0}.dash-header{justify-content:space-between;align-items:center;padding:6px 2px;display:flex}.greeting{align-items:center;gap:14px;display:flex}.greeting-avatar-wrap{position:relative}.greeting-avatar{background:radial-gradient(circle at 32% 28%, #1c4531, var(--dash-felt));width:48px;height:48px;color:var(--dash-gold-light);border:1.5px solid color-mix(in srgb, var(--dash-gold) 55%, transparent);border-radius:50%;place-items:center;font-size:1.1rem;font-weight:800;display:grid;box-shadow:0 4px 16px #0006,inset 0 1px #ffffff1a}.avatar-status-dot{border:2.5px solid var(--dash-felt);background:#2fbf80;border-radius:50%;width:13px;height:13px;position:absolute;bottom:-1px;right:-1px;box-shadow:0 0 8px #2fbf80cc}.greeting-details{flex-direction:column;gap:2px;display:flex}.greeting-time{color:#f4ecd880;text-transform:uppercase;letter-spacing:.5px;font-size:.72rem;font-weight:600}.greeting h2{letter-spacing:-.2px;margin:0;font-size:1.15rem;font-weight:800}.balance-pill{color:var(--dash-ivory);background:linear-gradient(160deg, #123423, var(--dash-felt));border:1px solid color-mix(in srgb, var(--dash-gold) 45%, #ffffff1a);font:inherit;cursor:pointer;border-radius:30px;align-items:center;gap:8px;padding:8px 14px 8px 12px;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden;box-shadow:0 4px 15px #0000004d}.balance-pill-glow{pointer-events:none;opacity:.6;background:radial-gradient(circle,#d4af372e,#0000 70%);transition:opacity .3s;position:absolute;inset:-10px}.balance-pill:hover{border-color:var(--dash-gold);transform:translateY(-1px);box-shadow:0 6px 20px #d4af3740}.balance-pill:hover .balance-pill-glow{opacity:1}.balance-icon{color:var(--dash-gold);filter:drop-shadow(0 0 6px #d4af3799)}.balance-num{background:linear-gradient(135deg, var(--dash-gold-light), var(--dash-gold));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:.95rem;font-weight:800}.balance-label{color:#f4ecd873;text-transform:lowercase;font-size:.7rem;font-weight:700}.balance-add-circle{width:20px;height:20px;color:var(--dash-gold);background:#d4af372e;border-radius:50%;place-items:center;margin-left:2px;transition:transform .2s;display:grid}.balance-pill:hover .balance-add-circle{background:var(--dash-gold);color:#0b1214;transform:rotate(90deg)}.dash-stats-bar{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.stat-card{background:linear-gradient(160deg, #123423, var(--dash-felt));border:1px solid color-mix(in srgb, var(--dash-gold) 22%, #ffffff14);border-radius:14px;flex-direction:column;gap:8px;padding:10px 12px;transition:all .25s;display:flex;box-shadow:inset 0 1px #ffffff0f,0 6px 18px #00000047}.stat-card.clickable{cursor:pointer}.stat-card:hover{border-color:color-mix(in srgb, var(--dash-gold) 40%, transparent);transform:translateY(-2px);box-shadow:inset 0 1px #ffffff17,0 10px 24px #00000057}.stat-icon{border-radius:8px;place-items:center;width:28px;height:28px;display:grid}.stat-icon.rank{color:var(--dash-gold);background:#d4af3729}.stat-icon.winrate{color:#4ecf9a;background:#1f8f5f33}.stat-icon.daily{color:#ea5a72;background:#c8203c2e}.stat-icon.online{color:#5aa8e6;background:#1f6fb233}.stat-info{flex-direction:column;display:flex}.stat-val{text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:800;line-height:1.1;overflow:hidden}.stat-lbl{color:#f4ecd880;margin-top:2px;font-size:.65rem;font-weight:600}.section-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.section-title{letter-spacing:-.1px;align-items:center;gap:8px;margin:0;font-size:.92rem;font-weight:800;display:flex}.section-title:before{content:"";background:linear-gradient(180deg, var(--dash-gold-light), var(--dash-gold));border-radius:2px;width:3px;height:14px;box-shadow:0 0 8px #d4af3780}.sparkle-icon{color:var(--dash-gold)}.section-sub{color:#f4ecd880;font-size:.72rem;font-weight:500}.section-badge{text-transform:uppercase;letter-spacing:.5px;color:#4ecf9a;background:#1f8f5f2e;border:1px solid #1f8f5f59;border-radius:12px;padding:3px 8px;font-size:.65rem;font-weight:800}.resume-list{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.resume-card{min-height:64px;color:var(--dash-ivory);background:linear-gradient(160deg, #123423, var(--dash-felt));border:1px solid color-mix(in srgb, var(--dash-gold) 40%, transparent);text-align:left;cursor:pointer;border-radius:14px;grid-template-columns:38px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px 14px;transition:all .25s;display:grid;position:relative;box-shadow:inset 0 1px #ffffff12,0 6px 18px #00000047}.resume-card.local-save{border-color:#1f8f5f66}.resume-card:hover{border-color:var(--dash-gold);transform:translateY(-2px);box-shadow:0 6px 20px #00000057}.resume-game-icon{width:38px;height:38px;color:var(--dash-felt);background:linear-gradient(135deg, var(--dash-gold-light) 0%, var(--dash-gold) 100%);border-radius:10px;place-items:center;display:grid;position:relative;box-shadow:0 2px 8px #d4af374d}.resume-game-icon:after{content:"";border:2px solid var(--dash-felt);background:#2fbf80;border-radius:50%;width:9px;height:9px;animation:2s infinite pulse;position:absolute;top:-2px;right:-2px;box-shadow:0 0 6px #2fbf80b3}.resume-game-icon.local{color:#071513;background:linear-gradient(135deg,#4ecf9a 0%,#1f8f5f 100%);box-shadow:0 2px 8px #1f8f5f4d}.resume-copy{flex-direction:column;gap:2px;display:flex}.resume-copy strong{font-size:.88rem;font-weight:700}.resume-copy small{color:#f4ecd880;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;overflow:hidden}.resume-action{color:var(--dash-gold-light);background:#d4af371f;border-radius:20px;align-items:center;gap:5px;padding:4px 10px;font-size:.75rem;font-weight:800;display:flex}.resume-dismiss{color:#f4ecd880;cursor:pointer;border-radius:50%;place-items:center;width:24px;height:24px;transition:all .2s;display:grid}.resume-dismiss:hover{color:#ea5a72;background:#c8203c38}.dash-hero{flex-direction:column;gap:10px;display:flex}.dash-hero-tabs{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.dash-hero-tab{--tab-color:var(--dash-gold);border:1px solid color-mix(in srgb, var(--tab-color) 25%, #ffffff14);background:linear-gradient(160deg, #123423, var(--dash-felt));color:#f4ecd899;cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:9px 8px;font-size:.76rem;font-weight:700;transition:all .2s;display:flex}.dash-hero-tab svg{color:var(--tab-color);opacity:.7;transition:opacity .2s}.dash-hero-tab:hover{border-color:color-mix(in srgb, var(--tab-color) 45%, transparent);color:var(--dash-ivory)}.dash-hero-tab.active{color:var(--dash-ivory);border-color:var(--tab-color);background:linear-gradient(160deg, color-mix(in srgb, var(--tab-color) 20%, #123423), var(--dash-felt));box-shadow:0 0 16px color-mix(in srgb, var(--tab-color) 30%, transparent), inset 0 1px 0 #ffffff14}.dash-hero-tab.active svg{opacity:1}.dash-hero-table{border:1px solid color-mix(in srgb, var(--game-color) 35%, var(--dash-gold-dark));background:linear-gradient(165deg, color-mix(in srgb, var(--game-color) 14%, #0e2b1f), var(--dash-felt));border-radius:20px;padding:20px 20px 18px;position:relative;overflow:hidden;box-shadow:0 20px 50px #0006,inset 0 1px #ffffff0f}.dash-hero-glow{background:radial-gradient(circle at 85% -10%, color-mix(in srgb, var(--game-color) 45%, transparent), transparent 62%);opacity:.55;pointer-events:none;position:absolute;inset:0}.dash-hero-sheen{pointer-events:none;background:linear-gradient(115deg,#0000 30%,#ffffff14 48%,#0000 66%);animation:5s ease-in-out infinite dashHeroSheen;position:absolute;inset:0;transform:translate(-100%)}@keyframes dashHeroSheen{0%,25%{transform:translate(-120%)}55%,to{transform:translate(120%)}}.dash-hero-top{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex;position:relative}.dash-hero-icon{width:40px;height:40px;color:var(--game-color);background:color-mix(in srgb, var(--game-color) 22%, transparent);border-radius:12px;place-items:center;display:grid;box-shadow:inset 0 1px #ffffff1a}.dash-hero-badge{text-transform:uppercase;letter-spacing:.5px;color:var(--dash-gold-light);border:1px solid color-mix(in srgb, var(--dash-gold) 40%, transparent);background:#00000047;border-radius:20px;padding:4px 9px;font-size:.62rem;font-weight:800}.dash-hero-name{letter-spacing:-.2px;margin:0 0 3px;font-size:1.3rem;font-weight:900;position:relative}.dash-hero-desc{color:#f4ecd899;margin:0 0 16px;font-size:.8rem;position:relative}.game-progress-strip{background:linear-gradient(160deg, #123423, var(--dash-felt));border:1px solid color-mix(in srgb, var(--dash-gold) 22%, #ffffff14);border-radius:14px;flex-direction:column;gap:8px;padding:12px 14px;display:flex;box-shadow:inset 0 1px #ffffff0f,0 6px 18px #00000047}.progress-top-row{justify-content:space-between;align-items:center;display:flex}.progress-rank-info{align-items:center;gap:10px;display:flex}.progress-rank-mark{width:32px;height:32px;color:var(--dash-gold);background:#d4af3729;border-radius:8px;place-items:center;display:grid}.progress-copy{flex-direction:column;display:flex}.progress-copy strong{font-size:.88rem;font-weight:800}.progress-copy span{color:#f4ecd880;font-size:.7rem;font-weight:600}.progress-record-badge{color:#f4ecd8bf;background:#ffffff0f;border-radius:20px;align-items:center;gap:6px;padding:4px 10px;font-size:.75rem;font-weight:800;display:flex}.progress-record-badge .divider{opacity:.4}.progress-track-wrapper{width:100%}.progress-track{background:#ffffff14;border-radius:4px;height:7px;overflow:hidden}.progress-track span{background:linear-gradient(90deg, var(--dash-gold) 0%, var(--dash-gold-light) 100%);border-radius:4px;height:100%;transition:width .5s;display:block;position:relative;overflow:hidden;box-shadow:0 0 10px #d4af3780}.progress-track span:after{content:"";background:linear-gradient(90deg,#0000,#ffffff8c,#0000);animation:2.2s ease-in-out infinite progressShimmer;position:absolute;inset:0;transform:translate(-100%)}.player-count-section{flex-direction:column;display:flex}.player-count-control{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.player-count-btn{background:linear-gradient(160deg, #123423, var(--dash-felt));border:1px solid color-mix(in srgb, var(--dash-gold) 20%, #ffffff14);color:#f4ecd8b3;cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:10px;font-size:.82rem;font-weight:700;transition:all .2s;display:flex}.player-count-btn:hover{border-color:color-mix(in srgb, var(--dash-gold) 40%, transparent);color:var(--dash-ivory)}.player-count-btn.active{border-color:var(--dash-gold);color:var(--dash-gold-light);background:#d4af3729;box-shadow:0 0 12px #d4af3740}.dash-actions-section{flex-direction:column;display:flex}.play-main-btn{background:linear-gradient(135deg, var(--dash-gold-light) 0%, var(--dash-gold) 60%, var(--dash-gold-dark) 100%);color:#201404;width:100%;min-height:64px;font:inherit;cursor:pointer;border:1px solid #ffffff4d;border-radius:16px;justify-content:space-between;align-items:center;padding:14px 18px;transition:all .3s cubic-bezier(.16,1,.3,1);animation:2.6s ease-in-out infinite playBtnGlowPulse;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 30px #d4af3759,inset 0 1px #fff6}.play-btn-glow{background:linear-gradient(90deg,#0000,#ffffff59,#0000);animation:3.4s ease-in-out infinite playBtnAmbientSweep;position:absolute;inset:0;transform:translate(-120%)}.play-main-btn:hover{animation-play-state:paused;transform:translateY(-2px)scale(1.01);box-shadow:0 12px 36px #d4af3773}.play-main-btn:disabled{opacity:.7;cursor:not-allowed;animation-play-state:paused;transform:none}.play-main-btn:hover .play-btn-glow{animation:.6s forwards playBtnHoverSweep}.play-btn-content{align-items:center;gap:14px;display:flex}.play-btn-icon{fill:currentColor;filter:drop-shadow(0 2px 4px #0003)}.play-btn-text{text-align:left;flex-direction:column;display:flex}.play-btn-title{letter-spacing:.2px;font-size:1.05rem;font-weight:900}.play-btn-sub{opacity:.75;font-size:.72rem;font-weight:700}.play-free-badge{color:#201404;background:#20140440;border:1px solid #2014044d;border-radius:20px;align-items:center;gap:4px;padding:6px 12px;font-size:.72rem;font-weight:800;display:flex}.play-actions-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.action-card{background:linear-gradient(160deg, #123423, var(--dash-felt));border:1px solid color-mix(in srgb, var(--dash-gold) 22%, #ffffff14);color:var(--dash-ivory);cursor:pointer;text-align:left;border-radius:14px;align-items:center;gap:10px;padding:12px;transition:all .25s;display:flex;box-shadow:inset 0 1px #ffffff0f,0 6px 16px #0000003d}.action-card:disabled{opacity:.4;cursor:not-allowed}.action-card:not(:disabled):hover{border-color:color-mix(in srgb, var(--dash-gold) 40%, transparent);transform:translateY(-2px)}.action-card-icon{border-radius:10px;flex-shrink:0;place-items:center;width:34px;height:34px;display:grid}.action-card-icon.challenge{color:var(--dash-gold);background:#d4af3729}.action-card-icon.tournament{color:#c48bfc;background:#a855f729}.action-card-icon.offline{color:#4ecf9a;background:#1f8f5f2e}.action-card-text{flex-direction:column;flex:1;min-width:0;display:flex}.action-card-text strong{text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;font-weight:700;overflow:hidden}.action-card-text small{color:#f4ecd880;text-overflow:ellipsis;white-space:nowrap;font-size:.65rem;overflow:hidden}.action-card-arrow{color:#f4ecd866;flex-shrink:0;transition:transform .2s}.action-card:hover .action-card-arrow{color:var(--dash-ivory);transform:translate(3px)}.online-indicator{background:linear-gradient(160deg, #123423, var(--dash-felt));border:1px solid color-mix(in srgb, var(--dash-gold) 22%, #ffffff14);cursor:pointer;border-radius:14px;justify-content:space-between;align-items:center;padding:10px 16px;transition:all .2s;display:flex;box-shadow:inset 0 1px #ffffff0f,0 6px 16px #0000003d}.online-indicator:hover{border-color:color-mix(in srgb, var(--dash-gold) 40%, transparent)}.online-dot-ring{place-items:center;width:12px;height:12px;display:grid;position:relative}.online-dot{background:#2fbf80;border-radius:50%;width:8px;height:8px;box-shadow:0 0 8px #2fbf80}.online-dot-ring:after{content:"";border:1px solid #2fbf80;border-radius:50%;animation:2s infinite pulse;position:absolute;inset:-2px}.online-text{color:#f4ecd8b3;font-size:.8rem}.online-text strong{color:var(--dash-ivory)}.online-action-link{color:var(--dash-gold-light);align-items:center;gap:4px;font-size:.75rem;font-weight:700;display:flex}.matchmaking-modal{background:linear-gradient(165deg, #123423, var(--dash-felt,#04140e));border:1px solid color-mix(in srgb, var(--dash-gold,#d4af37) 35%, #ffffff1a);text-align:center;border-radius:20px;flex-direction:column;align-items:center;width:100%;max-width:340px;padding:30px 24px;animation:.3s cubic-bezier(.16,1,.3,1) slideUp;display:flex;box-shadow:0 28px 80px #0000008c,0 0 30px #d4af3714}.matchmaking-modal h2{margin:16px 0 6px;font-size:1.2rem;font-weight:800}.match-pulse{border:2px solid var(--primary);background:#e23d3d33;border-radius:50%;width:48px;height:48px;margin:8px 0;animation:1.5s infinite pulse}.stake-display{color:var(--text-muted);font-size:.85rem}.stake-display.mode{color:var(--text);font-weight:800}.stake-display.practice{color:#24b8a6}.cancel-search{border:1px solid var(--border);color:var(--text-muted);font:inherit;cursor:pointer;background:#ffffff0d;border-radius:20px;align-items:center;gap:6px;margin-top:20px;padding:8px 18px;font-size:.8rem;font-weight:700;transition:all .2s;display:flex}.cancel-search:hover{color:var(--danger);border-color:var(--danger);background:#e23d3d33}.challenge-incoming-modal{background:linear-gradient(165deg, #123423, var(--dash-felt,#04140e));border:1.5px solid var(--dash-gold,#d4af37);text-align:center;border-radius:22px;width:100%;max-width:360px;padding:24px;animation:.3s ease-out slideUp;box-shadow:0 12px 40px #00000080,0 0 30px #d4af3733}.challenge-incoming-header{width:56px;height:56px;color:var(--dash-gold,#d4af37);background:#d4af3726;border-radius:16px;place-items:center;margin:0 auto 14px;display:grid}.challenge-incoming-title{margin:0 0 6px;font-size:1.05rem;font-weight:800}.challenge-incoming-stake{color:var(--text-muted);margin-bottom:20px;font-size:.82rem}.challenge-incoming-actions{grid-template-columns:1fr 1fr;gap:12px;display:grid}.challenge-incoming-btn{font:inherit;cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:12px;font-size:.88rem;font-weight:800;transition:all .2s;display:flex}.challenge-incoming-btn.accept{color:#071513;background:#24b8a6}.challenge-incoming-btn.decline{color:var(--text-muted);background:#ffffff14}.challenge-incoming-btn.decline:hover{color:var(--danger);background:#e23d3d33}.challenge-panel{background:linear-gradient(165deg, #123423, var(--dash-felt,#04140e));border:1px solid color-mix(in srgb, var(--dash-gold,#d4af37) 30%, #ffffff1a);width:100%;max-width:400px;box-shadow:var(--shadow-lg);border-radius:20px;flex-direction:column;gap:16px;padding:24px;animation:.3s ease-out slideUp;display:flex}.challenge-panel-header h3{margin:0 0 4px;font-size:1.05rem;font-weight:800}.challenge-panel-header p{color:var(--text-muted);margin:0;font-size:.78rem}.online-search{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-muted);border-radius:12px;align-items:center;gap:10px;padding:8px 12px;display:flex}.online-search input{color:var(--text);background:0 0;border:none;outline:none;width:100%;font-size:.85rem}.online-list{flex-direction:column;gap:8px;max-height:240px;display:flex;overflow-y:auto}.online-row{background:var(--bg-surface);border-radius:12px;align-items:center;gap:12px;padding:8px 12px;display:flex}.online-avatar{background:var(--primary);color:#fff;border-radius:8px;place-items:center;width:32px;height:32px;font-size:.8rem;font-weight:800;display:grid}.online-name{flex:1;font-size:.88rem;font-weight:700}.btn-send-challenge{background:var(--accent);color:#0b1214;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:6px;padding:6px 12px;font-size:.75rem;font-weight:800;display:flex}.btn-cancel-modal{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:12px;padding:10px;font-size:.85rem;font-weight:700}.btn-cancel-modal:hover{color:var(--text);background:#ffffff0d}.no-players-msg{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:30px;display:flex}.ludo-challenge-colors{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.ludo-challenge-color-btn{border:1.5px solid var(--border);background:var(--bg-surface);color:var(--text);cursor:pointer;border-radius:12px;align-items:center;gap:10px;padding:12px;transition:all .2s;display:flex}.ludo-challenge-color-btn.selected{border-color:var(--accent);background:#f2c94c1a}.ludo-challenge-pawn i{border-radius:50%;width:14px;height:14px;display:block}.ludo-challenge-color-btn.red .ludo-challenge-pawn i{background:#e23d3d}.ludo-challenge-color-btn.green .ludo-challenge-pawn i{background:#24b8a6}.ludo-challenge-color-btn.yellow .ludo-challenge-pawn i{background:#f2c94c}.ludo-challenge-color-btn.blue .ludo-challenge-pawn i{background:#4a90e2}.ludo-challenge-color-label{text-align:left;flex-direction:column;flex:1;display:flex}.ludo-challenge-color-label strong{text-transform:capitalize;font-size:.85rem}.ludo-challenge-color-back{color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-size:.78rem}.ludo-challenge-color-back:hover{color:var(--text)}.onboarding-overlay{z-index:3000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#040809d9;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.onboarding-card{background:linear-gradient(165deg, #123423, var(--dash-felt,#04140e));border:1px solid color-mix(in srgb, var(--dash-gold,#d4af37) 30%, #ffffff1a);border-radius:24px;width:100%;max-width:360px;padding:32px 24px;box-shadow:0 28px 80px #0000008c,0 0 30px #d4af3714}.onboard-step{text-align:center;flex-direction:column;align-items:center;display:flex}.onboard-icon{color:var(--dash-gold,#d4af37);filter:drop-shadow(0 4px 12px #d4af374d);margin-bottom:16px}.onboard-step h2{margin:0 0 8px;font-size:1.25rem;font-weight:800}.onboard-step p{color:var(--text-secondary);margin:0 0 24px;font-size:.85rem;line-height:1.4}.onboard-dots{gap:8px;margin-bottom:24px;display:flex}.onboard-dots .dot{background:var(--border);border-radius:50%;width:8px;height:8px;transition:all .3s}.onboard-dots .dot.active{background:var(--dash-gold,#d4af37);border-radius:4px;width:20px}.onboard-btn{background:linear-gradient(135deg, var(--dash-gold-light,#f3dfa0) 0%, var(--dash-gold,#d4af37) 100%);color:#201404;cursor:pointer;border:none;border-radius:14px;width:100%;margin-bottom:10px;padding:12px;font-size:.95rem;font-weight:800;box-shadow:0 4px 16px #d4af374d}.onboard-skip{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:.8rem}@keyframes playBtnGlowPulse{0%,to{box-shadow:0 8px 30px #e23d3d66,inset 0 1px #ffffff4d}50%{box-shadow:0 10px 38px #e23d3d9e,inset 0 1px #ffffff4d}}@keyframes playBtnAmbientSweep{0%,18%{transform:translate(-120%)}58%,to{transform:translate(120%)}}@keyframes playBtnHoverSweep{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes progressShimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media (width<=480px){.dash-stats-bar{grid-template-columns:repeat(2,1fr)}.dash-hero-tab span{font-size:.68rem}.dash-hero-table{padding:16px 16px 14px}.dash-hero-name{font-size:1.15rem}.play-actions-grid{grid-template-columns:1fr;gap:8px}.action-card{padding:10px 12px}}@media (prefers-reduced-motion:reduce){.dash-stagger-1,.dash-stagger-2,.dash-stagger-3,.dash-stagger-4,.dash-stagger-5,.dash-stagger-6,.dash-stagger-7,.play-main-btn,.play-btn-glow,.dash-hero-sheen,.progress-track span:after,.resume-game-icon:after,.online-dot-ring:after{animation:none}}.history-page{animation:.3s ease-out fadeIn}.page-head{margin-bottom:24px}.page-head h1{margin:0;font-size:1.4rem;font-weight:800}.page-head p{color:var(--text-muted);margin-top:2px;font-size:.85rem}.history-tabs{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;width:min(360px,100%);margin-bottom:18px;padding:4px;display:grid}.history-tabs button{min-height:40px;color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;gap:7px;font-size:.8rem;font-weight:800;display:flex}.history-tabs button.active{color:var(--text);background:var(--bg-card);box-shadow:0 2px 8px #00000029}.history-tabs strong{min-width:20px;color:var(--text-secondary);background:var(--bg-elevated);border-radius:10px;padding:2px 5px;font-size:.65rem}.history-list{flex-direction:column;gap:10px;display:flex}.history-item{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);transition:var(--transition);align-items:center;gap:14px;padding:14px 16px;display:flex}.tx-icon{background:var(--bg-surface);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.tx-info{flex:1}.tx-type{text-transform:capitalize;font-size:.85rem;font-weight:700;display:block}.tx-date{color:var(--text-muted);font-size:.7rem}.tx-desc{color:var(--text-muted);margin:4px 0 0;font-size:.75rem;line-height:1.3}.tx-amount{white-space:nowrap;font-size:.95rem;font-weight:800}.tx-amount.positive{color:var(--success)}.tx-amount.negative{color:var(--text-secondary)}.icon-acq{color:var(--success)}.icon-red{color:var(--warning)}.icon-stake{color:var(--text-muted)}.icon-win{color:var(--primary-light)}.game-history-icon{aspect-ratio:1;color:#f77;background:color-mix(in srgb, #e23d3d 13%, var(--bg-surface));border-radius:8px;flex:none;place-items:center;width:42px;display:grid}.game-history-icon.game-ludo{color:#58d5c5;background:color-mix(in srgb, #24b8a6 13%, var(--bg-surface))}.game-history-icon.game-snakes{color:#f2c94c;background:color-mix(in srgb, #f2c94c 13%, var(--bg-surface))}.game-history-title,.game-opponents,.game-history-meta{align-items:center;display:flex}.game-history-title{gap:8px;margin-bottom:3px}.game-opponents{color:var(--text-secondary);gap:5px;margin-bottom:2px;font-size:.75rem;font-weight:700}.game-duration{color:var(--text-muted);align-items:center;gap:4px;margin-top:2px;font-size:.68rem;font-weight:700;display:inline-flex}.result-badge{color:var(--text-muted);background:var(--bg-surface);text-transform:uppercase;border-radius:10px;padding:3px 7px;font-size:.62rem;font-weight:900}.result-win{color:var(--success);background:color-mix(in srgb, var(--success) 12%, transparent)}.result-loss{color:#f77;background:color-mix(in srgb, var(--danger) 12%, transparent)}.result-draw{color:var(--warning);background:color-mix(in srgb, var(--warning) 12%, transparent)}.game-history-meta{color:var(--accent);text-align:right;flex-direction:column;flex:none;justify-content:center;gap:4px;font-size:.68rem;font-weight:800}.loading-state,.empty-state{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:60px 20px;display:flex}.empty-state p{margin-top:4px}@media (width<=480px){.history-item{gap:10px;padding:12px}.game-history-meta{max-width:70px}.game-history-meta span{white-space:normal}}.profile-page{animation:.3s ease-out fadeIn}.profile-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);align-items:center;gap:16px;margin-bottom:28px;padding:24px;display:flex}.profile-avatar{background:var(--bg-surface);width:60px;height:60px;color:var(--text-muted);border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.profile-main h2{margin:0;font-size:1.1rem}.profile-main p{color:var(--text-muted);margin-top:2px;font-size:.8rem}.profile-section{margin-bottom:28px}.profile-section h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:10px;padding-left:4px;font-size:.75rem}.info-list,.action-list{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);overflow:hidden}.info-item,.action-item{border-bottom:1px solid var(--border);color:var(--text);align-items:center;gap:14px;padding:14px 16px;text-decoration:none;display:flex}.info-item:last-child,.action-item:last-child{border-bottom:none}.info-text{flex:1}.info-text label{color:var(--text-muted);margin-bottom:2px;font-size:.7rem;display:block}.info-text span{font-size:.85rem;font-weight:600}.username-form{flex:1;min-width:0}.username-form>label{color:var(--text-muted);margin-bottom:5px;font-size:.7rem;display:block}.username-controls{align-items:center;gap:7px;display:flex}.username-controls input{min-width:0;height:38px;color:var(--text);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);font:inherit;flex:1;padding:0 10px;font-size:.9rem;font-weight:600}.username-controls input:focus{border-color:var(--primary);outline:2px solid #d32f2f47}.profile-icon-btn{width:36px;height:36px;color:var(--text-muted);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;flex:0 0 36px;justify-content:center;align-items:center;display:inline-flex}.profile-icon-btn:hover{color:var(--text);border-color:var(--text-muted)}.profile-icon-btn.confirm{color:var(--success)}.profile-icon-btn:disabled{opacity:.55;cursor:not-allowed}.username-error{color:var(--danger);margin-top:5px;font-size:.72rem;display:block}.verified-badge{color:var(--success)}.action-item{cursor:pointer;transition:var(--transition);justify-content:space-between}.action-item:hover{background:var(--bg-surface)}.logout-btn-full{width:100%;color:var(--danger);border-radius:var(--radius-lg);cursor:pointer;transition:var(--transition);background:#f443361a;border:1px solid #f4433633;justify-content:center;align-items:center;gap:8px;margin-top:12px;padding:14px;font-weight:700;display:flex}.logout-btn-full:hover{background:var(--danger);color:#fff}.profile-footer{text-align:center;color:var(--text-muted);margin-top:40px;font-size:.75rem}.profile-footer p{margin:4px 0}.tournaments-page{animation:.3s ease-out fadeIn}.tourney-header{justify-content:space-between;align-items:flex-start;margin-bottom:24px;display:flex}.tourney-header h1{margin:0;font-size:1.4rem;font-weight:800}.tourney-header p{color:var(--text-muted);margin-top:2px;font-size:.85rem}.btn-create{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;border-radius:var(--radius);cursor:pointer;transition:var(--transition);white-space:nowrap;border:none;align-items:center;gap:6px;padding:10px 18px;font-size:.85rem;font-weight:700;display:flex}.btn-create:hover{transform:translateY(-2px);box-shadow:0 4px 16px #d32f2f4d}.create-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);width:100%;max-width:380px;box-shadow:var(--shadow-lg);overflow:hidden}.create-panel-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px;display:flex}.create-panel-header h2{margin:0;font-size:1.1rem}.btn-close{background:var(--bg-surface);color:var(--text-muted);cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.create-panel-body{flex-direction:column;gap:12px;padding:20px;display:flex}.create-panel-body label{color:var(--text-secondary);font-size:.8rem;font-weight:600}.create-panel-body input,.create-panel-body select{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);transition:var(--transition);outline:none;padding:12px;font-size:.95rem}.create-panel-body input:focus,.create-panel-body select:focus{border-color:var(--primary)}.create-panel-footer{border-top:1px solid var(--border);gap:10px;padding:16px 20px;display:flex}.btn-cancel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;flex:1;padding:12px;font-weight:600}.btn-confirm{background:var(--primary);color:#fff;border-radius:var(--radius);cursor:pointer;transition:var(--transition);border:none;flex:1;padding:12px;font-weight:700}.btn-confirm:hover{background:var(--primary-dark)}.tourney-list{flex-direction:column;gap:10px;display:flex}.tourney-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);transition:var(--transition);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.tourney-card:active{transform:scale(.98)}.tourney-card-body{align-items:center;gap:12px;display:flex}.tourney-icon{background:color-mix(in srgb, var(--accent) 15%, var(--bg-surface));width:40px;height:40px;color:var(--accent);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.tourney-info h3{margin:0 0 4px;font-size:.9rem;font-weight:700}.tourney-meta{color:var(--text-muted);gap:12px;font-size:.75rem;display:flex}.tourney-meta span{align-items:center;gap:4px;display:flex}.btn-enter{background:color-mix(in srgb, var(--primary) 15%, transparent);color:var(--primary-light);border:1px solid color-mix(in srgb, var(--primary) 30%, transparent);cursor:pointer;transition:var(--transition);border-radius:8px;padding:8px 16px;font-size:.8rem;font-weight:700}.btn-enter:hover{background:var(--primary);color:#fff}.loading-state{color:var(--text-muted);justify-content:center;align-items:center;gap:10px;padding:60px 20px;display:flex}.empty-state{text-align:center;color:var(--text-muted);padding:60px 20px}.empty-state p{margin:12px 0 4px;font-weight:600}.empty-state span{font-size:.85rem}.matatu-discard-3d{aspect-ratio:5/7;width:clamp(104px,20vw,140px);position:relative;overflow:visible}.matatu-discard-3d.empty{background:0 0}.matatu-discard-canvas{width:100%;height:100%;display:block;overflow:visible}.matatu-discard-fallback{background:#fffaf0;border:2px solid #e4dcbf;border-radius:10px;align-content:center;justify-items:center;font-style:normal;display:none;position:absolute;inset:5% 12%;transform:rotate(1deg);box-shadow:0 18px 28px #00000057}.matatu-discard-fallback strong{font-size:2rem;line-height:1}.matatu-discard-fallback i{font-family:Georgia,serif;font-size:2.8rem;line-height:1}.matatu-discard-fallback.red{color:#c92832}.matatu-discard-fallback.black{color:#172128}.matatu-discard-canvas[data-unavailable=true]+.matatu-discard-fallback{display:grid}@media (width<=620px){.matatu-discard-3d{width:86px}}@media (width<=380px){.matatu-discard-3d{width:88px}}.game-board{color:#f9faf8;isolation:isolate;background:linear-gradient(115deg,#ffffff09 0 1px,#0000 1px 8px) 0 0/34px 34px,linear-gradient(25deg,#00000014 0 1px,#0000 1px 9px) 0 0/31px 31px,radial-gradient(at 50% 44%,#459e5bb8 0%,#19633ce6 42%,#082a1e 100%) 0 0/100% 100%,#0a2e23 0 0/100% 100%;grid-template-rows:auto auto 1fr auto;min-height:100dvh;display:grid;position:relative;overflow:hidden}.game-board:before{content:"";pointer-events:none;z-index:-1;border:10px solid #4c2a17bd;border-radius:32px;position:absolute;inset:12px;box-shadow:inset 0 0 0 2px #f3cd7d33,inset 0 0 90px #00000061,0 18px 46px #0000003d}.game-board:after{content:"";pointer-events:none;z-index:-1;background:radial-gradient(at 50% 45%,#0000 0 42%,#0000002e 83%),linear-gradient(90deg,#ffffff06,#0000 20% 80%,#ffffff05);border-radius:22px;position:absolute;inset:28px;box-shadow:inset 0 0 70px #0000002e}.game-board.pressure:after{box-shadow:inset 0 0 80px #781c1540,inset 0 0 70px #0000002e}.game-board.your-move .player-zone{filter:drop-shadow(0 -10px 28px #f5c84b14)}.game-loading-screen{background:linear-gradient(#ffffff09 1px,#0000 1px) 0 0/26px 26px,linear-gradient(90deg,#ffffff09 1px,#0000 1px) 0 0/26px 26px,radial-gradient(#237544 0%,#0d3b2d 100%) 0 0/100% 100%;justify-content:center;align-items:center;min-height:100dvh;display:flex}.game-loading-content{color:#ffffffbd;flex-direction:column;align-items:center;gap:14px;font-size:.9rem;font-weight:700;display:flex}.game-loading-content .spinner{color:#f5c84b}.card-shuffle{aspect-ratio:5/7;background:linear-gradient(135deg,#ffffff29,#0000 32%),linear-gradient(135deg,#8e1720,#d93730);border:2px solid #ffffff61;border-radius:8px;width:52px;animation:.8s infinite shuffle;box-shadow:0 18px 40px #00000059}@keyframes shuffle{0%,to{transform:translate(0)rotate(0)}25%{transform:translate(-10px)rotate(-5deg)}75%{transform:translate(10px)rotate(5deg)}}.game-header{z-index:2;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#04140fc2;border-bottom:1px solid #ffffff17;grid-template-columns:44px minmax(0,1fr) minmax(120px,auto);align-items:center;gap:12px;padding:12px 18px;display:grid}.game-back{aspect-ratio:1;color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff24;border-radius:10px;justify-content:center;align-items:center;width:40px;transition:transform .18s,background .18s;display:flex}.game-back:hover,.game-back:focus-visible{background:#ffffff24;outline:none;transform:translateY(-1px)}.game-title-area{align-items:center;gap:10px;min-width:0;font-weight:900;display:flex}.game-title-mark{aspect-ratio:1;color:#1a1403;background:#f5c84b;border-radius:50%;justify-content:center;align-items:center;width:34px;display:flex;box-shadow:0 0 26px #f5c84b47}.game-title-area span,.game-title-area small{display:block}.game-title-area small{color:#ffffff80;margin-top:1px;font-size:.68rem;font-weight:700}.connection-pill{color:#ffffffc7;white-space:nowrap;text-overflow:ellipsis;background:#ffffff12;border:1px solid #ffffff1f;border-radius:999px;justify-content:center;align-items:center;gap:7px;min-width:0;max-width:260px;padding:8px 11px;font-size:.74rem;font-weight:800;display:inline-flex;overflow:hidden}.game-header-actions{justify-self:end;align-items:center;gap:8px;min-width:0;display:inline-flex}.sound-toggle{aspect-ratio:1;color:#ffffffd1;cursor:pointer;background:#ffffff14;border:1px solid #ffffff24;border-radius:10px;flex:none;justify-content:center;align-items:center;width:36px;transition:transform .18s,background .18s,color .18s;display:inline-flex}.sound-toggle:hover,.sound-toggle:focus-visible{color:#fff;background:#ffffff24;outline:none;transform:translateY(-1px)}.connection-pill.error{color:#ffe6e3;background:#b5261f47;border-color:#ff615773}.opponent-zone{z-index:2;grid-template-columns:minmax(0,min(560px,100%));justify-content:center;gap:10px;padding:14px 18px 0;display:grid}.opponent-zone.multi{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));width:min(900px,100%);margin:0 auto}.opponent-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(135deg,#ffffff13,#0000 38%),#061a14ad;border:1px solid #ffffff1c;border-radius:16px;grid-template-columns:minmax(130px,1fr) auto auto;align-items:center;gap:14px;width:min(560px,100%);min-height:76px;padding:10px 14px;transition:transform .22s,border-color .22s,background .22s,box-shadow .22s;display:grid;transform:translateY(0);box-shadow:0 16px 34px #00000038,inset 0 1px #ffffff0d}.opponent-panel.danger{border-color:#ffc34d80;box-shadow:0 0 0 1px #ffc34d1f,0 16px 34px #0000003d}.opponent-panel.current{background:#092c1fad;border-color:#4ade8085;transform:translateY(3px);box-shadow:0 18px 40px #00000047,0 0 0 1px #4ade8024}.opponent-panel.current .status-dot{animation:.9s ease-in-out infinite statusBeat}.opponent-panel.drew-card{background:linear-gradient(135deg,#f5c84b29,#0000 42%),#08251bbd;border-color:#f5c84b9e;animation:.95s opponentPickedCard;box-shadow:0 18px 40px #00000047,0 0 0 1px #f5c84b2e,0 0 24px #f5c84b24}.opponent-panel.drew-card .mini-card-back:last-child{animation:.95s pickedCardLift}.opponent-panel.bot .opponent-avatar{background:linear-gradient(145deg,#ffffff1f,#0000 32%),linear-gradient(145deg,#24b8a6,#0d6259)}.player-identity{align-items:center;gap:10px;min-width:0;display:flex}.opponent-avatar{aspect-ratio:1;color:#fff8dc;background:linear-gradient(145deg,#d94b4b,#8f252c);border-radius:50%;flex:none;justify-content:center;align-items:center;width:44px;display:flex;position:relative;box-shadow:inset 0 0 0 1px #ffffff29,0 8px 18px #00000038}.avatar-badge{color:#1a1403;background:#f5c84b;border:2px solid #09241beb;border-radius:999px;justify-content:center;align-items:center;min-width:22px;height:18px;font-size:.58rem;font-weight:950;display:inline-flex;position:absolute;top:-5px;right:-5px}.status-dot{aspect-ratio:1;background:#4ade80;border:2px solid #0f3327;border-radius:50%;width:10px;position:absolute;bottom:2px;right:0}.player-label{color:#ffffff85;text-transform:uppercase;font-size:.68rem;font-weight:800;display:block}.player-identity strong{margin-top:2px;font-size:.94rem;display:block}.opponent-cards{justify-content:center;min-width:112px;display:flex}.mini-card-back{aspect-ratio:5/7;background:linear-gradient(135deg,#ffffff24,#0000 32%),radial-gradient(circle,#ffffff21 0 8%,#0000 9%),repeating-linear-gradient(45deg,#ffffff14 0 4px,#0000 4px 8px),linear-gradient(135deg,#861b24,#d43630);border:1px solid #ffffff57;border-radius:5px;width:32px;position:relative;overflow:hidden;transform:rotate(-2deg);box-shadow:2px 4px 9px #00000057,inset 0 0 0 2px #ffffff0d}.mini-card-back:after{content:"P";color:#ffffff3d;justify-content:center;align-items:center;font-size:.76rem;font-weight:900;display:flex;position:absolute;inset:0}.opponent-pressure{color:#ffffffb8;text-transform:uppercase;justify-self:end;font-size:.72rem;font-weight:900}.thinking-label{align-items:center;gap:6px;display:inline-flex}.picked-label{color:#f5c84b}.thinking-dots{align-items:center;gap:3px;display:inline-flex}.thinking-dots i{aspect-ratio:1;background:currentColor;border-radius:50%;width:4px;animation:1s ease-in-out infinite thinkingDot;display:block}.thinking-dots i:nth-child(2){animation-delay:.14s}.thinking-dots i:nth-child(3){animation-delay:.28s}.opponent-panel.danger .opponent-pressure{color:#f5c84b}.play-area{z-index:1;grid-template-rows:auto auto auto 1fr;place-items:center;gap:14px;min-height:0;padding:18px 18px 12px;display:grid}.table-stats{justify-content:center;align-items:center;gap:8px;display:flex}.table-stat{color:#fffc;background:linear-gradient(#ffffff14,#0000),#04140f99;border:1px solid #ffffff17;border-radius:999px;justify-content:center;align-items:center;gap:6px;min-width:64px;padding:8px 10px;font-size:.78rem;font-weight:900;display:inline-flex}.rules-strip{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;width:min(760px,100%);display:flex}.table-clarity{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;width:min(780px,100%);display:grid}.table-clarity div{background:linear-gradient(#ffffff14,#0000),#04140fad;border:1px solid #ffffff1a;border-radius:12px;flex-direction:column;justify-content:center;gap:2px;min-width:0;min-height:42px;padding:8px 10px;display:flex;box-shadow:inset 0 1px #ffffff0d}.table-clarity div>span{color:#ffffff7a;text-transform:uppercase;font-size:.62rem;font-weight:900}.table-clarity strong{color:#fff;white-space:nowrap;text-overflow:ellipsis;text-shadow:0 1px 10px #00000073;align-items:center;min-width:0;font-size:.86rem;font-weight:950;display:flex;overflow:hidden}.card-label,.requirement-label,.cut-card-list{min-width:0;color:inherit;align-items:center;gap:5px;line-height:1;display:inline-flex}.requirement-label{white-space:nowrap}.requirement-label span,.card-label span{text-overflow:ellipsis;min-width:0;overflow:hidden}.card-label.compact{gap:3px}.cut-card-list{gap:6px}.suit-svg{vertical-align:-.14em;filter:drop-shadow(0 1px #ffffff38);flex:none;display:inline-block}.rule-alert{color:#fffc;white-space:nowrap;background:linear-gradient(#ffffff12,#0000),#04140f9e;border:1px solid #ffffff1a;border-radius:999px;justify-content:center;align-items:center;gap:7px;min-height:32px;padding:7px 10px;font-size:.72rem;font-weight:900;display:inline-flex}.rule-alert.danger{color:#fff3cf;background:#a82d2575;border-color:#ff775b6b}.rule-alert.cut-alert{color:#dcffe8;background:linear-gradient(#ffffff1f,#0000),#0d5c32b3;border-color:#4ade806b;box-shadow:0 0 22px #4ade801f}.cut-dot{aspect-ratio:1;color:#052215;background:#4ade80;border-radius:50%;justify-content:center;align-items:center;width:22px;font-size:.76rem;font-weight:950;display:inline-flex}.requested-suit{aspect-ratio:1;background:#fffaf0;border-radius:50%;justify-content:center;align-items:center;width:22px;font-size:1rem;display:inline-flex}.requested-suit.red{color:#d4282e}.requested-suit.black{color:#1f2933}.turn-panel{grid-template-columns:auto auto;justify-content:center;align-items:center;gap:12px;width:min(460px,100%);display:grid}.turn-indicator{border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:36px;padding:8px 14px;font-size:.8rem;font-weight:900;transition:background .2s,color .2s,border .2s;display:inline-flex}.turn-indicator.your-turn{color:#1a1403;background:#f5c84b;border:1px solid #ffffff2e}.game-board.your-move .turn-indicator.your-turn{animation:1.6s ease-in-out infinite turnGlow}.turn-indicator.waiting{color:#ffffff9e;background:#ffffff14;border:1px solid #ffffff1a}.turn-pulse{aspect-ratio:1;opacity:.72;background:currentColor;border-radius:50%;width:8px}.turn-pulse.active{opacity:1;animation:1.2s infinite pulse;box-shadow:0 0 14px #ffffff73}.pass-turn-btn{color:#052215;cursor:pointer;background:#4ade80;border:1px solid #ffffff2e;border-radius:999px;min-height:36px;padding:8px 16px;font-size:.78rem;font-weight:950;box-shadow:0 10px 20px #00000038}.pass-turn-btn:hover,.pass-turn-btn:focus-visible{filter:brightness(1.05);outline:none}.table-center{perspective:1100px;transform-style:preserve-3d;border-radius:999px;grid-template-columns:repeat(3,minmax(88px,116px));justify-content:center;align-items:center;gap:clamp(14px,5vw,42px);padding:18px clamp(10px,3vw,24px);display:grid;position:relative}.table-center:before{content:"";border-radius:inherit;filter:blur(4px);z-index:-1;background:radial-gradient(#0003,#0000 68%);position:absolute;inset:7px 0}.table-center.under-pressure:before{background:radial-gradient(#95291f57,#0000 70%);animation:1.2s ease-in-out infinite tablePressure}.card-slot{min-width:0;color:inherit;background:0 0;border:0;flex-direction:column;align-items:center;gap:9px;display:flex}button.card-slot{cursor:pointer}button.card-slot:disabled{cursor:default}.draw-card,.play-card{aspect-ratio:5/7;border-radius:11px;width:clamp(86px,18vw,116px);overflow:hidden;box-shadow:0 20px 32px #00000061,0 3px #00000038}.draw-card{transform-style:preserve-3d;background:linear-gradient(135deg,#ffffff29,#0000 34%),radial-gradient(circle,#ffffff24 0 7%,#0000 8%),repeating-linear-gradient(45deg,#ffffff14 0 5px,#0000 5px 10px),linear-gradient(135deg,#8e1720,#d93730);border:2px solid #ffffff57;justify-content:center;align-items:center;transition:transform .18s,box-shadow .18s,filter .18s;display:flex;position:relative;overflow:visible;transform:translateZ(8px)}.deck-edge{z-index:-1;background:#78161cb8;border:1px solid #ffffff29;border-radius:11px;position:absolute;inset:4px -4px -4px 4px;transform:translateZ(-5px)}.deck-edge.edge-two{opacity:.7;inset:8px -8px -8px 8px;transform:translateZ(-10px)}.draw-card:before,.draw-card:after{content:"";border:1px solid #ffffff3b;border-radius:9px;position:absolute;inset:5px}.draw-card:after{opacity:.75;border-style:dashed;inset:12px}.draw-card.drawable{box-shadow:0 22px 38px #00000070,0 0 0 2px #f5c84b3d,0 0 26px #f5c84b1f}.draw-card.drawable:hover{transform:translateY(-8px)translateZ(18px)rotateX(4deg)rotateY(-3deg)}.draw-card.drawing{filter:brightness(1.2);animation:.7s infinite alternate drawPulse}@keyframes drawPulse{0%{transform:translateY(0)}to{transform:translateY(-7px)}}.draw-pattern{z-index:1;color:#ffffff3d;font-size:2.2rem;font-weight:900}.draw-pattern:after{content:"P"}.play-card{position:relative;transform:none}.discard-slot{min-width:clamp(108px,21vw,142px)}.cut-target-slot{min-width:clamp(98px,19vw,126px)}.cut-target-frame{aspect-ratio:5/7;perspective:800px;width:clamp(92px,19vw,122px);transform-style:preserve-3d;background:#f5c84b14;border:2px dashed #f5c84bb3;border-radius:13px;padding:5px;position:relative;box-shadow:inset 0 0 22px #f5c84b14,0 12px 24px #0000002e}.cut-target-cards{width:100%;height:100%;position:relative}.cut-target-card{aspect-ratio:5/7;border-radius:9px;position:absolute;top:0;overflow:hidden;transform:translateZ(8px);box-shadow:0 9px 17px #00000047}.cut-target-cards.count-2 .cut-target-card{top:5%}.cut-target-cards.count-4 .cut-target-card{top:13%}.cut-target-label{color:#f5d66e;align-items:center;gap:5px;display:inline-flex}.play-card.live-card{animation:.34s cubic-bezier(.17,.84,.44,1) cardLands}.play-card:before{content:"";border-radius:inherit;pointer-events:none;z-index:1;position:absolute;inset:2px;box-shadow:inset 0 0 0 1px #ffffff2e}.play-card .card-face{transform:none}.table-rules{flex-direction:column;align-items:center;gap:8px;display:flex}.rule-chip{aspect-ratio:1;color:#1a1403;background:#f5c84b;border-radius:50%;justify-content:center;align-items:center;width:40px;font-weight:900;display:flex;box-shadow:0 10px 24px #0000002e}.rule-chip.suit{background:#fffaf0;font-size:1.3rem}.rule-chip.suit.red{color:#d4282e}.rule-chip.suit.black{color:#1f2933}.slot-label{color:#ffffff9e;text-transform:uppercase;min-height:16px;font-size:.72rem;font-weight:900}.empty-slot{color:#ffffff61;background:#ffffff0a;border:2px dashed #ffffff2e;border-radius:12px;justify-content:center;align-items:center;width:100%;height:100%;font-size:.78rem;font-weight:900;display:flex}.card-face{border-radius:inherit;width:100%;height:100%;transform-style:preserve-3d;background:linear-gradient(110deg,#ffffffc2,#0000 22% 78%,#00000009) 0 0/100% 100%,radial-gradient(circle,#00000009 0 8%,#0000 9%) 0 0/100% 100%,linear-gradient(90deg,#0f172a06 1px,#0000 1px) 0 0/8px 8px,#fffaf0 0 0/100% 100%;justify-content:center;align-items:center;display:flex;position:relative;box-shadow:inset 0 0 0 1px #0f172a1f,inset 0 -8px 18px #0f172a0a}.card-face:after{content:"";background:radial-gradient(circle at var(--card-shine-x,50%) var(--card-shine-y,35%), #ffffffb8, #ffffff1f 24%, transparent 48%);opacity:var(--card-shine-opacity,0);z-index:5;pointer-events:none;border:1px solid #0f172a14;border-radius:7px;transition:opacity .16s;position:absolute;inset:8px}.card-face.red{color:#d4282e}.card-face.black{color:#1f2933}.card-face.joker{background:linear-gradient(145deg,#ffffffd1,#0000 26% 76%,#00000014),radial-gradient(circle at 50% 42%,#f5c84b40,#0000 42%),repeating-linear-gradient(-35deg,#0f172a0a 0 3px,#0000 3px 9px),#fffaf0;overflow:hidden}.card-face.joker:before{content:"";aspect-ratio:1;background:#f5c84b1a;border:1px solid #b8860b2e;border-radius:50%;width:76%;position:absolute;box-shadow:0 0 0 7px #f5c84b0a}.joker-artwork{z-index:3;filter:drop-shadow(0 4px 3px #0f172a33);width:82%;height:88%;position:relative;overflow:visible;transform:translateZ(18px)}.joker-artwork.red{color:#d4282e}.joker-artwork.black{color:#1f2933}.joker-rays{fill:#d9a719;opacity:.14}.joker-cap-shadow,.joker-hair{fill:#17202a}.joker-cap-left,.joker-coat{fill:currentColor;stroke:#111827;stroke-width:1.5px}.joker-cap-right,.joker-coat-panel{fill:#efbd34;stroke:#9a7110;stroke-width:1.3px}.joker-cap-center{fill:#fff7df;stroke:currentColor;stroke-width:1.4px}.joker-bell,.joker-button{fill:#f4c542;stroke:#8a6410;stroke-width:1.4px}.joker-face{fill:#ffe8c8;stroke:#563d2d;stroke-width:1.5px}.joker-mask{fill:currentColor;fill-opacity:.16;stroke:currentColor;stroke-width:1.3px}.joker-eye{fill:#111827}.joker-nose,.joker-staff{fill:none;stroke:#563d2d;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.joker-smile{fill:#fffaf0;stroke:#9f2430;stroke-width:1.5px;stroke-linejoin:round}.joker-collar-back,.joker-lapel{fill:#fff7df;stroke:currentColor;stroke-width:1.5px;stroke-linejoin:round}.joker-staff-head{fill:currentColor;stroke:#111827;stroke-width:1.4px}.card-face.mini .joker-artwork{width:90%;height:92%}.joker-label{z-index:2;text-align:center;text-transform:uppercase;letter-spacing:0;border-radius:3px;min-width:48px;padding:3px 7px 2px;font-weight:950;line-height:1.05;position:absolute;bottom:15px;left:50%;transform:translate(-50%)translateZ(24px);box-shadow:0 5px 12px #0003}.joker-label span,.joker-label small{display:block}.joker-label span{font-size:.5rem}.joker-label small{margin-top:1px;font-size:.32rem}.card-face.red .joker-label{color:#fffaf0;background:#c7252b}.card-face.black .joker-label{color:#fffaf0;background:#1f2933}.card-face.mini .joker-label{min-width:36px;padding:2px 4px;bottom:9px}.card-face.mini .joker-label span{font-size:.38rem}.card-face.mini .joker-label small{display:none}.card-corner{z-index:4;flex-direction:column;align-items:center;gap:1px;line-height:1;display:flex;position:absolute}.top-left{top:8px;left:8px;transform:translateZ(16px)}.bottom-right{bottom:8px;right:8px;transform:rotate(180deg)translateZ(16px)}.card-rank{font-size:1rem;font-weight:900}.card-suit-icon{justify-content:center;align-items:center;display:inline-flex}.card-center-suit{filter:drop-shadow(0 1px #ffffff80);z-index:3;justify-content:center;align-items:center;display:inline-flex;position:relative;transform:translateZ(20px)}.card-face.mini .card-rank{font-size:.74rem}.card-face.mini .card-suit-icon,.card-face.mini .card-center-suit{line-height:1}.card-face.mini .top-left{top:5px;left:5px}.card-face.mini .bottom-right{bottom:5px;right:5px}.player-zone{z-index:2;padding:0 16px 16px}.hand-header{justify-content:space-between;align-items:center;gap:12px;width:min(900px,100%);margin:0 auto 10px;display:flex}.hand-title,.hand-meta{align-items:center;gap:8px;display:flex}.hand-title{color:#fff;font-size:.9rem;font-weight:900}.hand-meta{color:#ffffffa3;font-size:.78rem;font-weight:800}.hand-meta strong{color:#f5c84b}.matatu-call-btn{color:#1a1403;cursor:pointer;background:#f5c84b;border:0;border-radius:999px;min-height:32px;padding:0 13px;font-size:.72rem;font-weight:950;box-shadow:0 8px 18px #0000003d}.matatu-call-btn:hover,.matatu-call-btn:focus-visible{outline:none;transform:translateY(-1px)}.hand-container{scrollbar-width:none;width:min(960px,100%);margin:0 auto;padding:18px 2px 7px;overflow:auto visible}.hand-container::-webkit-scrollbar{display:none}.hand-scroll{perspective:1200px;min-width:max-content;transform-style:preserve-3d;justify-content:center;align-items:end;gap:clamp(6px,1vw,10px);padding:0 8px;display:flex}.hand-card{--card-tilt-x:0deg;--card-tilt-y:0deg;--card-shine-opacity:0;aspect-ratio:5/7;cursor:default;width:clamp(58px,13.6vw,84px);transform:translateY(0) rotateX(var(--card-tilt-x)) rotateY(var(--card-tilt-y));transform-origin:50% 100%;transform-style:preserve-3d;will-change:transform;background:0 0;border:0;border-radius:10px;flex:none;padding:0;transition:transform .18s,filter .18s,opacity .18s;animation:.38s cubic-bezier(.17,.84,.44,1) backwards cardDealIn;position:relative}.hand-card>.card-face{transform:translateZ(8px);box-shadow:0 14px 20px #0003,inset 0 0 0 1px #0f172a1f,inset 0 -8px 18px #0f172a0a}.hand-card.active-turn{cursor:pointer}.hand-card.blocked{opacity:.64;filter:saturate(.72)brightness(.9)}.hand-card.playable{opacity:1;filter:none;transform:translateY(-7px) rotateX(var(--card-tilt-x)) rotateY(var(--card-tilt-y))}.hand-card.playable:before{content:"";background:#f5c84b38;border-radius:14px;position:absolute;inset:-5px;box-shadow:0 0 22px #f5c84b38}.hand-card.cut-ready:before{background:#4ade803d;box-shadow:0 0 26px #4ade8047}.hand-card.playable:hover,.hand-card.playable:focus-visible{transform:translateY(-22px) translateZ(18px) rotateX(var(--card-tilt-x)) rotateY(var(--card-tilt-y)) scale(1.04);z-index:20;outline:none}.hand-card.playable:hover>.card-face,.hand-card.playable:focus-visible>.card-face{box-shadow:0 25px 34px #00000057,inset 0 0 0 1px #0f172a1f,inset 0 -8px 18px #0f172a0a}.hand-card.playing{pointer-events:none;filter:brightness(1.1);opacity:.35;transition:transform .28s,opacity .28s;transform:translateY(-76px)translate(8px)scale(1.04)}.hand-card:disabled{cursor:default}.play-hint{aspect-ratio:1;color:#1a1403;background:#f5c84b;border-radius:50%;justify-content:center;align-items:center;width:24px;animation:1.4s ease-in-out infinite hintFloat;display:flex;position:absolute;top:-7px;right:-5px;box-shadow:0 8px 18px #00000040}.cut-hint{color:#052215;background:linear-gradient(#ffffff47,#0000),#4ade80;border:1px solid #ffffff52;border-radius:999px;flex-direction:column;justify-content:center;align-items:center;gap:1px;min-width:70px;min-height:42px;line-height:1;display:inline-flex;position:absolute;bottom:-24px;left:50%;transform:translate(-50%);box-shadow:0 7px 16px #00000047}.card-reason{color:#1a1403;background:#f5c84b;border:1px solid #ffffff47;border-radius:999px;justify-content:center;align-items:center;min-width:42px;min-height:20px;font-size:.58rem;font-weight:950;line-height:1;display:inline-flex;position:absolute;bottom:-12px;left:50%;transform:translate(-50%);box-shadow:0 6px 14px #0000003d}.cut-hint strong{text-transform:uppercase;font-size:.68rem;font-weight:950}.cut-hint small{font-size:.78rem;font-weight:950}.suit-picker-overlay{z-index:2500;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#00000094;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.suit-picker-card{background:#101d18;border:1px solid #ffffff1f;border-radius:18px;gap:16px;width:min(360px,100%);padding:20px;display:grid;box-shadow:0 22px 70px #0000006b}.suit-picker-card strong,.suit-picker-card span{display:block}.suit-picker-card>div:first-child strong{color:#fff;font-size:1rem}.suit-picker-card>div:first-child span{color:#fff9;margin-top:3px;font-size:.78rem;font-weight:800}.suit-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.suit-choice{cursor:pointer;background:#fffaf0;border:1px solid #ffffff1f;border-radius:14px;min-height:88px;transition:transform .18s,border .18s,box-shadow .18s}.suit-choice:hover,.suit-choice:focus-visible{border-color:#f5c84bb8;outline:none;transform:translateY(-2px);box-shadow:0 12px 26px #00000047}.suit-choice span{font-size:2rem;line-height:1}.suit-choice strong{margin-top:6px;font-size:.78rem}.suit-choice.red{color:#d4282e}.suit-choice.black{color:#1f2933}.suit-cancel{color:#fffc;cursor:pointer;background:#ffffff14;border:1px solid #ffffff1f;border-radius:12px;min-height:38px;font-weight:900}.winner-overlay{z-index:3000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000d1;justify-content:center;align-items:center;padding:20px;animation:.25s ease-out fadeIn;display:flex;position:fixed;inset:0}.winner-card{text-align:center;background:#111827;border:1px solid #ffffff1a;border-radius:20px;width:min(340px,100%);padding:34px 24px 24px;box-shadow:0 24px 80px #0000006b}.winner-card-win{border-color:#f5c84b80}.trophy-icon{aspect-ratio:1;color:#f5c84b;background:#f5c84b1f;border:2px solid #f5c84b80;border-radius:50%;justify-content:center;align-items:center;width:78px;margin-bottom:16px;display:inline-flex;box-shadow:0 0 30px #f5c84b26}.win-text,.lose-text{margin-bottom:8px;font-size:1.9rem}.win-text{color:#f5c84b}.lose-text{color:#ffffffb8}.winner-card p{color:#ffffff9e;margin-bottom:24px;font-size:.88rem}.xp-result{flex-direction:column;gap:5px;margin:4px 0 24px;display:flex}.xp-result strong{color:#f5c84b;font-size:1.05rem}.xp-result small{color:#ffffff8f;font-size:.72rem;font-weight:750}.xp-result span{color:#ffffffa8;font-size:.8rem;font-weight:800}.btn-lobby{color:#fff;cursor:pointer;background:#d43630;border:0;border-radius:12px;width:100%;min-height:44px;font-weight:900;transition:transform .18s,background .18s}.btn-lobby:hover,.btn-lobby:focus-visible{background:#b82325;outline:none;transform:translateY(-1px)}@keyframes cardDealIn{0%{opacity:0;transform:translateY(34px)scale(.92)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes cardLands{0%{opacity:.45;transform:translateY(-24px)scale(1.06)}72%{opacity:1;transform:translateY(3px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes hintFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes thinkingDot{0%,to{opacity:.42;transform:translateY(0)}50%{opacity:1;transform:translateY(-4px)}}@keyframes statusBeat{0%,to{transform:scale(1);box-shadow:0 0 #4ade804d}50%{transform:scale(1.18);box-shadow:0 0 0 5px #4ade8000}}@keyframes opponentPickedCard{0%{transform:translateY(0)scale(1)}42%{transform:translateY(-4px)scale(1.018)}to{transform:translateY(0)scale(1)}}@keyframes pickedCardLift{0%{opacity:0;transform:translateY(9px)rotate(5deg)}44%{opacity:1;transform:translateY(-7px)rotate(1deg)}to{opacity:1;transform:translateY(0)rotate(-2deg)}}@keyframes turnGlow{0%,to{box-shadow:0 0 #f5c84b00}50%{box-shadow:0 0 24px #f5c84b38}}@keyframes tablePressure{0%,to{opacity:.82;transform:scale(1)}50%{opacity:1;transform:scale(1.04)}}@media (width>=860px){.game-board{grid-template-rows:auto auto 1fr auto}.play-area{padding-top:24px}.player-zone{padding-bottom:24px}}@media (width<=620px){.game-board{overscroll-behavior-y:contain;flex-direction:column;min-height:100dvh;display:flex;overflow:hidden auto}.game-board:before{border-radius:20px;inset:8px}.game-header{grid-template-columns:36px minmax(0,1fr) auto;gap:8px;padding:8px 10px;position:sticky;top:0}.game-back{width:36px}.game-title-area{gap:7px;font-size:.88rem}.game-title-mark{width:30px}.game-title-area small{font-size:.58rem}.connection-pill{width:auto;max-width:min(138px,38vw);padding:7px 9px;font-size:.66rem}.game-header-actions{grid-column:auto;gap:6px;width:auto}.sound-toggle{width:34px}.opponent-zone{flex:none;width:100%;padding:8px 10px 0}.opponent-zone.multi{scroll-snap-type:x proximity;scrollbar-width:none;justify-content:flex-start;gap:8px;width:100%;display:flex;overflow-x:auto}.opponent-zone.multi::-webkit-scrollbar{display:none}.opponent-panel{border-radius:10px;grid-template-columns:minmax(92px,1fr) auto auto;gap:8px;min-height:58px;padding:7px 9px}.opponent-zone.multi .opponent-panel{scroll-snap-align:start;flex:0 0 min(280px,82vw)}.opponent-avatar{width:34px}.player-identity{gap:7px}.player-label{font-size:.6rem}.player-identity strong{font-size:.8rem}.opponent-cards{min-width:72px}.mini-card-back{width:26px}.opponent-pressure{grid-column:auto;justify-self:end;font-size:.6rem}.play-area{flex:none;gap:8px;width:100%;padding:10px 10px 8px}.table-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;width:100%;display:grid}.table-stat{gap:4px;min-width:0;padding:6px 5px;font-size:.7rem}.rules-strip{scroll-snap-type:x proximity;scrollbar-width:none;flex-wrap:nowrap;justify-content:flex-start;gap:6px;padding:1px 0 3px;overflow-x:auto}.rules-strip::-webkit-scrollbar{display:none}.rule-alert{scroll-snap-align:start;flex:none;min-height:28px;padding:5px 8px;font-size:.66rem}.table-clarity{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.table-clarity div{border-radius:8px;min-height:36px;padding:6px 8px}.table-clarity strong{font-size:.72rem}.table-clarity div>span{font-size:.56rem}.turn-panel{grid-template-columns:auto auto;gap:7px;width:auto}.turn-indicator,.pass-turn-btn{min-height:32px;padding:6px 11px;font-size:.72rem}.table-center{border-radius:16px;grid-template-columns:repeat(3,minmax(0,88px));gap:clamp(4px,2vw,8px);width:100%;padding:9px 4px 7px}.table-center:before{border-radius:16px;inset:2px 0}.card-slot{gap:5px}.draw-card{width:82px}.discard-slot,.cut-target-slot{min-width:0}.cut-target-frame{border-radius:10px;width:84px;padding:4px}.slot-label{min-height:14px;font-size:.62rem}.rule-chip{width:34px}.player-zone{width:100%;padding:7px 10px max(10px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#04140f7a;border-top:1px solid #ffffff14;flex:none;margin-top:auto}.hand-header{align-items:center;gap:8px;margin-bottom:2px}.hand-title{font-size:.76rem}.hand-meta{white-space:nowrap;flex-direction:row;justify-content:flex-end;align-items:center;gap:6px;font-size:.66rem}.matatu-call-btn{min-height:30px;padding:0 11px;font-size:.68rem}.hand-container{padding:13px 0 5px}.hand-scroll{justify-content:center;gap:6px;width:max-content;min-width:100%;padding:0 6px}.hand-card{width:62px}.hand-card.playable:hover,.hand-card.playable:focus-visible{transform:translateY(-13px) translateZ(10px) rotateX(var(--card-tilt-x)) rotateY(var(--card-tilt-y))}}@media (prefers-reduced-motion:reduce){.card-shuffle,.turn-pulse.active,.draw-card.drawing,.play-card.live-card,.hand-card,.play-hint,.thinking-dots i,.opponent-panel.current .status-dot,.opponent-panel.drew-card,.opponent-panel.drew-card .mini-card-back:last-child,.game-board.your-move .turn-indicator.your-turn,.table-center.under-pressure:before{animation:none}.hand-card,.hand-card.playable,.hand-card.playable:hover,.hand-card.playable:focus-visible{transition:none;--card-tilt-x:0deg!important;--card-tilt-y:0deg!important;--card-shine-opacity:0!important}}@media (width<=380px){.game-title-mark,.game-title-area small,.connection-pill svg{display:none}.connection-pill{max-width:124px}.opponent-pressure{display:none}.opponent-panel{grid-template-columns:minmax(90px,1fr) auto}.table-stats{gap:5px}.table-stat{min-width:54px;padding:7px 8px}.draw-card,.play-card{width:78px}.cut-target-frame{width:82px}.hand-card{width:58px}.table-clarity{gap:6px}.table-clarity div{padding:7px 8px}}.board-die-layer{z-index:12;pointer-events:none;position:absolute;inset:0;overflow:hidden}.board-die-canvas{width:100%;height:100%;display:block}.board-die-fallback{aspect-ratio:1;color:#101817;background:#faf8ef;border:2px solid #deddd5;border-radius:13px;place-items:center;width:54px;font-size:1.35rem;font-weight:900;display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(8deg);box-shadow:0 12px 20px #07100e57}.board-die-canvas[data-unavailable=true]+.board-die-fallback{display:grid}.ludo-game{--ludo-red:#c8203c;--ludo-green:#1f8f5f;--ludo-yellow:#d4af37;--ludo-blue:#1f6fb2;--ludo-gold:#d4af37;--ludo-gold-light:#f3dfa0;--ludo-gold-dark:#8a6a1f;--ludo-felt:#04140e;--ludo-ivory:#f4ecd8;min-height:100dvh;color:var(--ludo-ivory);background:radial-gradient(ellipse 900px 480px at 50% -8%, #d4af3729, transparent 60%), repeating-linear-gradient(45deg, #ffffff04 0 2px, transparent 2px 26px), repeating-linear-gradient(-45deg, #00000024 0 2px, transparent 2px 26px), radial-gradient(circle at 50% 30%, #0c2c1f, var(--ludo-felt) 78%);-webkit-user-select:none;user-select:none;grid-template-rows:auto 1fr;display:grid}.ludo-header{border-bottom:1px solid color-mix(in srgb, var(--ludo-gold) 35%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:linear-gradient(#06140ff0,#06140fc7);grid-template-columns:44px 1fr 44px;align-items:center;gap:12px;padding:14px 18px;display:grid;position:relative;box-shadow:0 8px 22px #0006}.ludo-header:after{content:"";background:linear-gradient(90deg, transparent, var(--ludo-gold), transparent);opacity:.75;height:1px;position:absolute;bottom:-1px;left:0;right:0}.ludo-icon-btn{aspect-ratio:1;border:1px solid color-mix(in srgb, var(--ludo-gold) 30%, #ffffff1f);width:42px;color:var(--ludo-gold-light);cursor:pointer;background:#ffffff0d;border-radius:12px;justify-content:center;align-items:center;transition:border-color .2s,background .2s;display:flex}.ludo-icon-btn:hover{border-color:var(--ludo-gold);background:color-mix(in srgb, var(--ludo-gold) 14%, #ffffff0d)}.ludo-title{align-items:center;gap:10px;min-width:0;display:flex}.ludo-title-icon{aspect-ratio:1;color:#2b1c02;background:linear-gradient(150deg, var(--ludo-gold-light), var(--ludo-gold) 55%, var(--ludo-gold-dark));border-radius:12px;justify-content:center;align-items:center;width:36px;display:flex;box-shadow:0 3px 10px #d4af3766,inset 0 1px #ffffff80}.ludo-title h1{letter-spacing:.3px;background:linear-gradient(135deg, var(--ludo-gold-light), var(--ludo-gold));color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:1.1rem;font-weight:800}.ludo-title p{color:#f4ecd880;margin:2px 0 0;font-size:.72rem;font-weight:800}.ludo-shell{grid-template-rows:auto 1fr;grid-template-columns:minmax(220px,1fr) minmax(260px,420px);gap:18px;min-height:0;padding:18px;display:grid}.ludo-scorebar{grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.ludo-player-pill{border:1px solid color-mix(in srgb, var(--ludo-gold) 22%, #ffffff14);color:#f4ecd8ad;background:linear-gradient(160deg,#ffffff0d,#04140ec7);border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:46px;font-size:.78rem;font-weight:800;display:flex;position:relative;box-shadow:inset 0 1px #ffffff0d,0 4px 10px #0000003d}.turn-dot{aspect-ratio:1;background:currentColor;border-radius:50%;width:6px;animation:1.2s ease-in-out infinite ludoTurnPulse;box-shadow:0 0 9px}.ludo-player-pill strong{color:var(--ludo-gold-light)}.ludo-player-pill.active{border-color:var(--ludo-gold);background:linear-gradient(160deg, color-mix(in srgb, currentColor 22%, #ffffff0f), #04140eeb);box-shadow:0 0 0 1px color-mix(in srgb, currentColor 55%, transparent), 0 0 16px color-mix(in srgb, currentColor 45%, transparent), inset 0 1px 0 #ffffff14}.ludo-player-pill.red{color:var(--ludo-red)}.ludo-player-pill.green{color:var(--ludo-green)}.ludo-player-pill.yellow{color:var(--ludo-yellow)}.ludo-player-pill.blue{color:var(--ludo-blue)}.ludo-reaction-bubble{z-index:10;color:#2b1c02;background:linear-gradient(160deg, var(--ludo-gold-light), var(--ludo-gold));border:1px solid var(--ludo-gold-dark);white-space:nowrap;pointer-events:none;border-radius:999px;margin-bottom:6px;padding:4px 9px;font-size:.68rem;font-weight:900;animation:1.6s ease-out forwards ludoBubblePop;position:absolute;bottom:100%;left:50%;box-shadow:0 6px 14px #0006}.ludo-board-wrap{perspective:1100px;justify-content:center;align-items:center;min-height:0;display:flex}.ludo-board{--board-inset:8px;aspect-ratio:1;border:5px solid var(--ludo-gold);width:min(72vh,100%);max-width:700px;box-shadow:0 32px 80px #0000008c, 0 0 0 1px #0006, 0 0 34px #d4af3740, 0 8px 0 var(--ludo-gold-dark);transform-style:preserve-3d;background:radial-gradient(circle at 50% 38%,#241a10,#0b0805 80%);border-radius:14px;grid-template-rows:repeat(15,1fr);grid-template-columns:repeat(15,1fr);gap:2px;padding:8px;display:grid;position:relative;transform:rotateX(1.5deg)}.ludo-board:before{content:"";z-index:4;pointer-events:none;border-radius:inherit;background:linear-gradient(115deg,#0000 32%,#f3dfa024 47%,#0000 62%) 0 0/260% 260%;animation:7s ease-in-out infinite ludoBoardSheen;position:absolute;inset:0}.ludo-board.shake{animation:.32s ease-in-out ludoBoardShake}.ludo-base-design{z-index:0;pointer-events:none;border-radius:7px;position:absolute;inset:0;overflow:hidden}.ludo-base-design i{width:calc(40% - var(--board-inset));height:calc(40% - var(--board-inset));border:1px solid color-mix(in srgb, var(--ludo-gold) 45%, transparent);background:repeating-linear-gradient(42deg,#ffffff1a 0 1px,#0000 1px 12px),repeating-linear-gradient(138deg,#07111724 0 1px,#0000 1px 12px);position:absolute;box-shadow:inset 0 0 34px #ffffff0d}.ludo-base-design .red{top:var(--board-inset);left:var(--board-inset)}.ludo-base-design .green{top:var(--board-inset);right:var(--board-inset)}.ludo-base-design .yellow{right:var(--board-inset);bottom:var(--board-inset)}.ludo-base-design .blue{bottom:var(--board-inset);left:var(--board-inset)}.ludo-board-die-layer{z-index:20;border-radius:7px}.ludo-board-die-layer .board-die-fallback{border-radius:7px;width:27px;font-size:.7rem}.ludo-cell{z-index:1;color:#111827b3;background:#ffffff1a;border-radius:5px;justify-content:center;align-items:center;min-width:0;min-height:0;display:flex;position:relative}.ludo-cell.track{background:linear-gradient(160deg,#f7ecd2,#e9d8ac);box-shadow:inset 0 0 0 1px #00000029,inset 0 1px #ffffff8c}.ludo-cell.safe{color:#2b1c02;background:linear-gradient(160deg, var(--ludo-gold-light), var(--ludo-gold));animation:2.6s ease-in-out infinite ludoSafeGlow}.ludo-cell.home-cell{border-radius:50%;box-shadow:inset 0 0 0 2px #ffffff80,inset 0 0 0 3px #00000024,0 3px 6px #00000040}.ludo-cell.finish-cell{border-radius:4px;box-shadow:inset 0 0 0 1px #ffffff6b,inset 0 -5px 9px #0f172a1f}.ludo-cell.final-dock{z-index:2;border-radius:8px;box-shadow:inset 0 0 0 2px #ffffffb8,0 0 0 2px #0f172a2e,0 4px 9px #0f172a38}.final-dock-spots{opacity:.42;grid-template-columns:repeat(2,1fr);gap:12%;display:grid;position:absolute;inset:13%}.final-dock-spots i{background:#d4af378c;border-radius:50%;box-shadow:inset 0 1px 2px #0f172a47}.ludo-cell.red{background:radial-gradient(circle at 32% 26%, color-mix(in srgb, var(--ludo-red) 45%, white), var(--ludo-red) 60%, color-mix(in srgb, var(--ludo-red) 76%, black))}.ludo-cell.green{background:radial-gradient(circle at 32% 26%, color-mix(in srgb, var(--ludo-green) 45%, white), var(--ludo-green) 60%, color-mix(in srgb, var(--ludo-green) 76%, black))}.ludo-cell.yellow{background:radial-gradient(circle at 32% 26%, #ffe98f, var(--ludo-yellow) 60%, color-mix(in srgb, var(--ludo-yellow) 72%, black))}.ludo-cell.blue{background:radial-gradient(circle at 32% 26%, color-mix(in srgb, var(--ludo-blue) 45%, white), var(--ludo-blue) 60%, color-mix(in srgb, var(--ludo-blue) 76%, black))}.ludo-cell.center{z-index:1;box-shadow:none;background:0 0;border-radius:0}.ludo-final-x{z-index:2;border:2px solid var(--ludo-gold);pointer-events:none;filter:drop-shadow(0 4px 8px #00000073);border-radius:4px;grid-area:7/7/span 3/span 3;position:relative;overflow:hidden}.finish-wedge{color:#ffffffeb;position:absolute;inset:0}.finish-wedge.green{background:var(--ludo-green);clip-path:polygon(0 0,100% 0,50% 50%)}.finish-wedge.yellow{background:var(--ludo-yellow);clip-path:polygon(100% 0,100% 100%,50% 50%)}.finish-wedge.blue{background:var(--ludo-blue);clip-path:polygon(0 100%,100% 100%,50% 50%)}.finish-wedge.red{background:var(--ludo-red);clip-path:polygon(0 0,50% 50%,0 100%)}.finish-wedge svg{stroke-width:3px;filter:drop-shadow(0 1px 1px #0f172a4d);width:22%;height:22%;position:absolute}.finish-wedge.green svg{top:8%;left:39%}.finish-wedge.yellow svg{top:39%;right:8%}.finish-wedge.blue svg{bottom:8%;left:39%}.finish-wedge.red svg{top:39%;left:8%}.ludo-final-x:after{content:"";background:linear-gradient(45deg,#0000 48.8%,#d4af37d9 49% 51%,#0000 51.2%),linear-gradient(-45deg,#0000 48.8%,#d4af37d9 49% 51%,#0000 51.2%);position:absolute;inset:0}.finish-center{z-index:2;aspect-ratio:1;border:2px solid var(--ludo-gold);background:radial-gradient(circle at 35% 30%, var(--ludo-gold-light), var(--ludo-gold) 60%, var(--ludo-gold-dark));border-radius:50%;width:13%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 2px 6px #0006,0 0 12px #d4af3780}.ludo-cell.center.final-dock{z-index:3;background:0 0}.ludo-piece{z-index:5;aspect-ratio:1;border:2px solid var(--ludo-gold-light);width:76%;color:var(--ludo-ivory);cursor:default;transform:translate(var(--piece-x,0), var(--piece-y,0));border-radius:50%;justify-content:center;place-self:center;align-items:center;font-size:clamp(.55rem,1.4vw,.82rem);font-weight:900;transition:transform .18s,box-shadow .18s;display:flex;box-shadow:inset 0 5px 7px #fff6,inset 0 -5px 8px #00000047,0 8px 14px #0006,0 0 0 1px #0000004d}.ludo-piece.red{background:radial-gradient(circle at 32% 26%, color-mix(in srgb, var(--ludo-red) 45%, white) 0%, var(--ludo-red) 55%, color-mix(in srgb, var(--ludo-red) 74%, black) 100%)}.ludo-piece.green{background:radial-gradient(circle at 32% 26%, color-mix(in srgb, var(--ludo-green) 45%, white) 0%, var(--ludo-green) 55%, color-mix(in srgb, var(--ludo-green) 74%, black) 100%)}.ludo-piece.yellow{background:radial-gradient(circle at 32% 26%, var(--ludo-gold-light) 0%, var(--ludo-yellow) 55%, var(--ludo-gold-dark) 100%)}.ludo-piece.blue{background:radial-gradient(circle at 32% 26%, color-mix(in srgb, var(--ludo-blue) 45%, white) 0%, var(--ludo-blue) 55%, color-mix(in srgb, var(--ludo-blue) 74%, black) 100%)}.ludo-piece:not(.playable):not(.moving):not(.hopping):not(.finished){animation:3.2s ease-in-out infinite ludoIdleBob;animation-delay:var(--idle-delay,0s)}.ludo-piece.hopping{z-index:6;animation:.3s ease-in-out infinite ludoHopBounce}.ludo-piece.playable{cursor:pointer;transform:translate(var(--piece-x,0), calc(var(--piece-y,0) - 4px)) translateZ(16px) scale(1.13);box-shadow:0 12px 24px #0006, 0 0 0 3px var(--ludo-gold), 0 0 16px #d4af3780}.ludo-piece.playable:hover,.ludo-piece.playable:focus-visible{box-shadow:0 16px 28px #00000073, 0 0 0 3px var(--ludo-gold-light), 0 0 24px var(--ludo-gold);outline:none}.ludo-piece.blockade{z-index:7;border-color:var(--ludo-gold-light);box-shadow:inset 0 5px 7px #fff6,inset 0 -5px 8px #00000040,0 0 0 3px #04140ed9,0 8px 14px #00000073}.ludo-piece.blockade:after{content:"";border:2px solid var(--ludo-gold);pointer-events:none;border-radius:50%;position:absolute;inset:-5px}.ludo-piece.moving{animation:.42s cubic-bezier(.2,.8,.3,1) ludoPieceHop}.ludo-piece.finished{z-index:8;border-width:1px;width:42%;font-size:clamp(.42rem,.85vw,.58rem);box-shadow:inset 0 2px 3px #ffffff6b,0 3px 7px #0000005c}.ludo-capture-burst{z-index:9;aspect-ratio:1;pointer-events:none;place-self:center;width:6%;position:relative}.ludo-capture-burst i{background:var(--burst-color,#fff);width:6px;height:6px;box-shadow:0 0 6px var(--burst-color,#fff);border-radius:50%;margin:-3px 0 0 -3px;animation:.6s ease-out forwards ludoBurstFly;position:absolute;top:50%;left:50%}.ludo-capture-burst i:first-child{--burst-end:translate(20px, 0)}.ludo-capture-burst i:nth-child(2){--burst-end:translate(14px, 14px)}.ludo-capture-burst i:nth-child(3){--burst-end:translate(0, 20px)}.ludo-capture-burst i:nth-child(4){--burst-end:translate(-14px, 14px)}.ludo-capture-burst i:nth-child(5){--burst-end:translate(-20px, 0)}.ludo-capture-burst i:nth-child(6){--burst-end:translate(-14px, -14px)}.ludo-capture-burst i:nth-child(7){--burst-end:translate(0, -20px)}.ludo-capture-burst i:nth-child(8){--burst-end:translate(14px, -14px)}.ludo-turn-sweep{z-index:15;aspect-ratio:1;pointer-events:none;background:radial-gradient(circle, color-mix(in srgb, var(--sweep-color) 55%, transparent) 0%, transparent 70%);border-radius:50%;grid-area:1/1/-1/-1;place-self:center;width:55%;animation:.62s ease-out forwards ludoTurnSweep}.ludo-board-die-layer:after{content:"";opacity:0;pointer-events:none;border:2px solid #ffffff80;border-radius:50%;animation:.6s ease-out .5s ludoDiceRipple;position:absolute;inset:30%}.ludo-control-panel{border:1px solid color-mix(in srgb, var(--ludo-gold) 35%, #ffffff1a);background:linear-gradient(165deg,#ffffff0a,#04140ee0);border-radius:20px;align-self:center;gap:14px;padding:18px;display:grid;box-shadow:0 22px 60px #0000006b,inset 0 1px #ffffff0f,0 0 30px #d4af3714}.ludo-control-panel.red{--panel-color:var(--ludo-red)}.ludo-control-panel.green{--panel-color:var(--ludo-green)}.ludo-control-panel.yellow{--panel-color:var(--ludo-yellow)}.ludo-control-panel.blue{--panel-color:var(--ludo-blue)}.ludo-turn-card,.ludo-status-card{border:1px solid color-mix(in srgb, var(--ludo-gold) 20%, #ffffff14);background:#ffffff0a;border-radius:16px;padding:14px}.ludo-turn-label{color:var(--panel-color);text-transform:uppercase;letter-spacing:1px;font-size:.72rem;font-weight:900;display:block}.ludo-turn-card h2{margin:4px 0;font-size:1.8rem}.ludo-turn-card p{color:#ffffff9e;font-size:.86rem}.ludo-turn-card p.network-error{color:#fca5a5}.ludo-turn-card p.ludo-turn-persona{color:color-mix(in srgb, var(--ludo-gold) 78%, #fff);margin-bottom:6px;font-size:.78rem;font-style:italic;line-height:1.35}.dice-button{border:2px solid var(--ludo-gold);color:#111827;background:var(--panel-color);min-height:88px;box-shadow:0 18px 38px color-mix(in srgb, var(--panel-color) 30%, transparent), inset 0 1px 0 #ffffff4d;cursor:pointer;border-radius:22px;justify-content:center;align-items:center;gap:14px;transition:transform .18s,filter .18s;display:flex}.dice-button:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-2px)}.dice-button:disabled{cursor:default;opacity:.72}.dice-result-face{aspect-ratio:1;color:#111827;background:linear-gradient(145deg,#fff8e6,#e9d8ac);border:1px solid #0000002e;border-radius:10px;flex:0 0 40px;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);place-items:center;gap:3px;width:40px;padding:6px;display:grid;box-shadow:inset -5px -6px 9px #00000026,inset 4px 4px 7px #ffffffe6,0 7px 13px #0000004d}.dice-result-face i{aspect-ratio:1;opacity:0;background:radial-gradient(circle at 38% 35%,#374151,#080b10 70%);border-radius:50%;place-self:center;width:6px;box-shadow:inset 0 1px 2px #ffffff2e,0 1px 1px #ffffff73}.dice-result-face i.visible{opacity:1}.dice-action{flex-direction:column;align-items:flex-start;min-width:80px;display:flex}.dice-action strong{font-size:1.7rem;line-height:1}.dice-action small{opacity:.7;margin-top:6px;font-size:.68rem;font-weight:800}.ludo-status-card{color:#f4ecd8b8;align-items:center;gap:8px;font-weight:800;display:flex}.ludo-status-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.ludo-winner-overlay{z-index:3000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000c7;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0;overflow:hidden}.ludo-color-overlay{z-index:2900;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:radial-gradient(circle at 50% 20%,#1e3c2e8c,#040a0de6 70%);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.ludo-color-panel{border:1px solid color-mix(in srgb, var(--ludo-gold) 40%, #ffffff1a);width:min(420px,100%);max-height:min(640px,92vh);color:var(--ludo-ivory);background:linear-gradient(165deg, #123423, var(--ludo-felt));text-align:center;border-radius:14px;padding:30px 22px 24px;animation:.36s cubic-bezier(.16,1,.3,1) both ludoColorPanelIn;position:relative;overflow-y:auto;box-shadow:0 32px 90px #0009,0 0 40px #d4af371a,inset 0 1px #ffffff0f}@keyframes ludoColorPanelIn{0%{opacity:0;transform:translateY(14px)scale(.97)}to{opacity:1;transform:none}}.ludo-color-crest{width:46px;height:46px;color:var(--ludo-gold);background:radial-gradient(circle at 35% 30%, #1c4531, var(--ludo-felt));border:1px solid color-mix(in srgb, var(--ludo-gold) 45%, transparent);border-radius:50%;place-items:center;margin-bottom:10px;display:inline-grid;box-shadow:0 0 18px #d4af3738,inset 0 1px #ffffff14}.ludo-color-panel h2{letter-spacing:0;background:linear-gradient(135deg, var(--ludo-gold-light), var(--ludo-gold));color:#0000;-webkit-background-clip:text;background-clip:text;margin:0 0 6px;font-size:1.25rem}.ludo-color-sub{color:#ffffff80;margin:0 0 20px;font-size:.8rem}.ludo-color-options{flex-direction:column;gap:10px;display:flex}.ludo-color-choice{--choice-color:#fff;border:1px solid color-mix(in srgb, var(--choice-color) 42%, #ffffff1f);min-height:78px;color:var(--ludo-ivory);background:linear-gradient(120deg, color-mix(in srgb, var(--choice-color) 14%, var(--ludo-felt)), color-mix(in srgb, var(--choice-color) 6%, var(--ludo-felt)));text-align:left;text-transform:capitalize;cursor:pointer;border-radius:12px;grid-template-columns:56px 1fr auto;align-items:center;gap:14px;padding:11px 14px;transition:transform .16s,background .16s,border-color .16s,box-shadow .16s;display:grid;position:relative}.ludo-color-choice:hover,.ludo-color-choice:focus-visible{border-color:var(--choice-color);background:linear-gradient(120deg, color-mix(in srgb, var(--choice-color) 24%, #0f1c17), color-mix(in srgb, var(--choice-color) 10%, #0f1c17));box-shadow:0 10px 26px #00000059, 0 0 0 1px color-mix(in srgb, var(--choice-color) 35%, transparent);outline:none;transform:translateY(-2px)}.ludo-color-choice.red{--choice-color:var(--ludo-red)}.ludo-color-choice.green{--choice-color:var(--ludo-green)}.ludo-color-choice.yellow{--choice-color:var(--ludo-yellow)}.ludo-color-choice.blue{--choice-color:var(--ludo-blue)}.ludo-color-choice.taken{opacity:.42;cursor:not-allowed;pointer-events:none;border-style:dashed}.ludo-color-choice.mine{border-style:solid;border-color:var(--choice-color);cursor:default;pointer-events:none;box-shadow:0 0 0 1px color-mix(in srgb, var(--choice-color) 45%, transparent), 0 0 20px color-mix(in srgb, var(--choice-color) 20%, transparent)}.ludo-color-label{flex-direction:column;gap:2px;display:flex}.ludo-color-label strong{letter-spacing:.2px;font-size:.98rem;line-height:1.1}.ludo-color-label small{color:#ffffff7a;text-transform:none;letter-spacing:0;font-size:.7rem;line-height:1.2}.ludo-color-choice.taken .ludo-color-label small{color:#ffffff4d}.ludo-color-select{width:26px;height:26px;color:var(--choice-color);background:color-mix(in srgb, var(--choice-color) 16%, transparent);border:1px solid color-mix(in srgb, var(--choice-color) 40%, transparent);opacity:.75;border-radius:50%;place-items:center;transition:opacity .16s,transform .16s;display:inline-grid}.ludo-color-choice:hover .ludo-color-select,.ludo-color-choice:focus-visible .ludo-color-select{opacity:1;transform:scale(1.08)}.ludo-color-badge{text-transform:uppercase;letter-spacing:.5px;background:color-mix(in srgb, var(--choice-color) 55%, transparent);color:#fff;white-space:nowrap;border-radius:20px;padding:4px 8px;font-size:.6rem;font-weight:700}.ludo-color-preview{background:#0a1712;border:1px solid #d4af3747;border-radius:10px;grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:2px;width:52px;height:52px;padding:3px;display:grid;position:relative;box-shadow:inset 0 2px 6px #00000073}.ludo-color-preview-cell{background:#ffffff0d;border-radius:3px;position:relative}.ludo-color-preview-cell.active{background:linear-gradient(150deg, color-mix(in srgb, var(--choice-color) 75%, white), color-mix(in srgb, var(--choice-color) 55%, black));box-shadow:inset 0 0 4px #00000059, 0 0 10px color-mix(in srgb, var(--choice-color) 55%, transparent)}.ludo-color-preview-pips{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;place-items:center;gap:2px;display:grid;position:absolute;inset:3px}.ludo-color-preview-pips i{aspect-ratio:1;background:radial-gradient(circle at 32% 28%,#fff,#ffffffb3 40%,#00000040 100%);border-radius:50%;width:55%;box-shadow:0 1px 2px #0006}.ludo-color-preview-cross{pointer-events:none;background:linear-gradient(90deg,#0000 calc(50% - 1.5px),#d4af3780 calc(50% - 1.5px) calc(50% + 1.5px),#0000 calc(50% + 1.5px)),linear-gradient(#0000 calc(50% - 1.5px),#d4af3780 calc(50% - 1.5px) calc(50% + 1.5px),#0000 calc(50% + 1.5px));position:absolute;inset:0}.ludo-winner-card{--winner-color:var(--ludo-gold);z-index:2;text-align:center;width:min(340px,100%);color:var(--ludo-ivory);background:linear-gradient(165deg, #0e2b1f, var(--ludo-felt));border:1px solid color-mix(in srgb, var(--winner-color) 54%, #ffffff24);border-radius:8px;padding:24px;position:relative;overflow:hidden;box-shadow:0 34px 100px #000000a6,0 0 0 1px #ffffff0d}.ludo-winner-card.red{--winner-color:var(--ludo-red)}.ludo-winner-card.green{--winner-color:var(--ludo-green)}.ludo-winner-card.yellow{--winner-color:var(--ludo-yellow)}.ludo-winner-card.blue{--winner-color:var(--ludo-blue)}.ludo-winner-card:before{content:"";background:var(--winner-color);height:5px;box-shadow:0 0 24px var(--winner-color);position:absolute;inset:0 0 auto}.ludo-champion-label{width:fit-content;min-height:30px;color:var(--ludo-gold-light);text-transform:uppercase;letter-spacing:1px;background:#d4af371a;border:1px solid #d4af376b;border-radius:4px;justify-content:center;align-items:center;gap:6px;margin:0 auto 8px;padding:5px 10px;font-size:.68rem;font-weight:900;display:flex}.ludo-champion-label svg{color:var(--ludo-gold)}.ludo-victory-emblem{width:190px;height:166px;margin:0 auto -4px;position:relative}.ludo-victory-cup{z-index:3;pointer-events:none;place-items:center;width:120px;height:120px;display:grid;position:absolute;top:24px;left:50%;transform:translate(-50%)}.ludo-victory-cup svg{filter:drop-shadow(0 6px 12px #0006)}.ludo-victory-color-bg{z-index:1;opacity:.35;filter:blur(18px);pointer-events:none;border-radius:50%;width:124px;height:124px;position:absolute;top:18px;left:50%;transform:translate(-50%)}.ludo-victory-cup svg{color:var(--ludo-gold);filter:drop-shadow(0 5px 0 var(--ludo-gold-dark)) drop-shadow(0 8px 12px #00000080)}.ludo-victory-rays{z-index:1;position:absolute;inset:5px 22px 18px}.ludo-victory-rays i{background:var(--ludo-gold);opacity:.6;transform-origin:1px 74px;border-radius:2px;width:2px;height:19px;position:absolute;top:0;left:calc(50% - 1px)}.ludo-victory-rays i:first-child{transform:rotate(-72deg)}.ludo-victory-rays i:nth-child(2){transform:rotate(-54deg)}.ludo-victory-rays i:nth-child(3){transform:rotate(-36deg)}.ludo-victory-rays i:nth-child(4){transform:rotate(-18deg)}.ludo-victory-rays i:nth-child(5){transform:rotate(0)}.ludo-victory-rays i:nth-child(6){transform:rotate(18deg)}.ludo-victory-rays i:nth-child(7){transform:rotate(36deg)}.ludo-victory-rays i:nth-child(8){transform:rotate(54deg)}.ludo-victory-rays i:nth-child(9){transform:rotate(72deg)}.ludo-victory-rays i:nth-child(10){transform:rotate(180deg)}.ludo-laurel{z-index:4;width:43px;height:78px;position:absolute;top:56px}.ludo-laurel.left{left:11px;transform:rotate(-15deg)}.ludo-laurel.right{right:11px;transform:scaleX(-1)rotate(-15deg)}.ludo-laurel i{background:var(--ludo-gold);border-radius:100% 0;width:21px;height:9px;position:absolute;left:9px;transform:rotate(32deg);box-shadow:0 2px 4px #00000052}.ludo-laurel i:first-child{top:0}.ludo-laurel i:nth-child(2){top:18px;left:4px;transform:rotate(12deg)}.ludo-laurel i:nth-child(3){top:37px;left:3px;transform:rotate(-8deg)}.ludo-laurel i:nth-child(4){top:56px;left:8px;transform:rotate(-28deg)}.ludo-victory-plinth{z-index:5;grid-template-columns:1fr 42px 1fr;align-items:end;gap:3px;width:104px;height:38px;display:grid;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.ludo-victory-plinth i,.ludo-victory-plinth strong{background:linear-gradient(160deg,#241a10,#150f0a);border:1px solid #d4af3766;place-items:center;display:grid;box-shadow:inset 0 2px #ffffff14,0 4px 8px #00000059}.ludo-victory-plinth i{height:22px}.ludo-victory-plinth strong{height:34px;color:var(--ludo-gold-light);font-size:1.1rem}.ludo-victory-confetti{z-index:1;pointer-events:none;position:absolute;inset:0}.ludo-victory-confetti i{background:radial-gradient(circle at 35% 30%, var(--ludo-gold-light), var(--ludo-gold) 60%, var(--ludo-gold-dark));border-radius:50%;width:10px;height:10px;animation:3.8s linear infinite ludoConfettiFall;position:absolute;top:-8%;box-shadow:0 0 5px #d4af378c}.ludo-victory-confetti i:nth-child(3n){opacity:.85;width:7px;height:7px}.ludo-victory-confetti i:nth-child(5n){width:13px;height:13px}.ludo-victory-confetti i:first-child{animation-delay:-1.4s;left:5%}.ludo-victory-confetti i:nth-child(2){animation-delay:-3.1s;left:12%}.ludo-victory-confetti i:nth-child(3){animation-delay:-.6s;left:20%}.ludo-victory-confetti i:nth-child(4){animation-delay:-2.2s;left:28%}.ludo-victory-confetti i:nth-child(5){animation-delay:-1.1s;left:36%}.ludo-victory-confetti i:nth-child(6){animation-delay:-3.5s;left:43%}.ludo-victory-confetti i:nth-child(7){animation-delay:-.2s;left:49%}.ludo-victory-confetti i:nth-child(8){animation-delay:-2.6s;left:55%}.ludo-victory-confetti i:nth-child(9){animation-delay:-1.7s;left:61%}.ludo-victory-confetti i:nth-child(10){animation-delay:-3.3s;left:67%}.ludo-victory-confetti i:nth-child(11){animation-delay:-.9s;left:73%}.ludo-victory-confetti i:nth-child(12){animation-delay:-2.4s;left:79%}.ludo-victory-confetti i:nth-child(13){animation-delay:-1.3s;left:84%}.ludo-victory-confetti i:nth-child(14){animation-delay:-3.6s;left:89%}.ludo-victory-confetti i:nth-child(15){animation-delay:-.4s;left:94%}.ludo-victory-confetti i:nth-child(16){animation-delay:-2.8s;left:98%}.ludo-winner-card h2{margin:8px 0 6px;font-size:2rem}.ludo-winner-card p{color:#ffffffa3;margin-bottom:20px}.ludo-xp-result{flex-direction:column;gap:3px;margin:-8px 0 18px;display:flex}.ludo-xp-result strong{color:#facc15;font-size:.92rem}.ludo-xp-result span{color:#ffffff9e;font-size:.72rem;font-weight:750}.ludo-winner-card button{color:#111827;cursor:pointer;background:silver;border:0;border-radius:12px;width:100%;min-height:44px;font-weight:900}.ludo-header-actions{align-items:center;gap:6px;display:flex}.ludo-end-game-btn{color:#fca5a5!important;background:#ef44441f!important;border-color:#ef444466!important}.ludo-end-game-btn:hover{background:#ef44443d!important}.ludo-color-waiting{color:#ffffff85;margin-top:14px;font-size:.82rem;font-weight:700;animation:1.2s ease-in-out infinite ludoTurnPulse}@keyframes ludoPieceHop{0%{transform:translate(var(--piece-x,0), var(--piece-y,0)) translateZ(0) scale(.92)}50%{transform:translate(var(--piece-x,0), calc(var(--piece-y,0) - 10px)) translateZ(24px) scale(1.16)}to{transform:translate(var(--piece-x,0), var(--piece-y,0)) translateZ(0) scale(1)}}@keyframes ludoHopBounce{0%,to{transform:translate(var(--piece-x,0), var(--piece-y,0)) scale(1)}40%{transform:translate(var(--piece-x,0), calc(var(--piece-y,0) - 9px)) scale(1.08)}70%{transform:translate(var(--piece-x,0), calc(var(--piece-y,0) + 1px)) scale(.94)}}@keyframes ludoIdleBob{0%,to{transform:translate(var(--piece-x,0), var(--piece-y,0))}50%{transform:translate(var(--piece-x,0), calc(var(--piece-y,0) - 3px))}}@keyframes ludoBurstFly{0%{opacity:1;transform:translate(0)scale(1)}to{transform:var(--burst-end) scale(.3);opacity:0}}@keyframes ludoTurnSweep{0%{opacity:0;transform:scale(.4)}30%{opacity:.55}to{opacity:0;transform:scale(1.6)}}@keyframes ludoDiceRipple{0%{opacity:.6;transform:scale(.4)}to{opacity:0;transform:scale(1.8)}}@keyframes ludoBoardShake{0%,to{transform:rotateX(1.5deg)translate(0)}25%{transform:rotateX(1.5deg)translate(-4px,2px)}50%{transform:rotateX(1.5deg)translate(3px,-2px)}75%{transform:rotateX(1.5deg)translate(-2px,1px)}}@keyframes ludoBoardSheen{0%{background-position:-60% -60%}50%{background-position:60% 60%}to{background-position:-60% -60%}}@keyframes ludoSafeGlow{0%,to{box-shadow:inset 0 0 0 2px #77540a52,0 0 #ffd10000}50%{box-shadow:inset 0 0 0 2px #77540a52,0 0 10px #ffd1008c}}@keyframes ludoBubblePop{0%{opacity:0;transform:translate(-50%,4px)scale(.7)}15%{opacity:1;transform:translate(-50%,-2px)scale(1.05)}25%{transform:translate(-50%)scale(1)}85%{opacity:1}to{opacity:0;transform:translate(-50%,-6px)scale(.9)}}@keyframes ludoTurnPulse{0%,to{opacity:.45;transform:scale(.9)}50%{opacity:1;transform:scale(1.25)}}@keyframes ludoConfettiFall{0%{opacity:0;transform:translateY(-10vh)rotate(0)}10%{opacity:.9}to{opacity:.35;transform:translate(28px,112vh)rotate(540deg)}}@media (width<=860px){.ludo-shell{grid-template-columns:1fr}.ludo-board{--board-inset:5px;width:min(92vw,620px)}}@media (width<=560px){.ludo-shell{gap:12px;padding:12px}.ludo-scorebar{grid-template-columns:repeat(2,minmax(0,1fr))}.ludo-player-pill{min-height:38px;font-size:.74rem}.ludo-board{border-radius:14px;gap:1px;padding:5px}.ludo-cell{border-radius:3px}.ludo-control-panel{border-radius:16px;padding:12px}.dice-button{min-height:86px}.dice-result-face{flex-basis:36px;width:36px;padding:5px}.dice-result-face i{width:5px}.ludo-piece{width:90%}}@media (width<=380px){.ludo-board{width:min(98vw,620px);padding:4px}.ludo-header{gap:8px;padding:10px 12px}.ludo-title h1{font-size:.94rem}.ludo-title p{font-size:.66rem}.ludo-piece{border-width:1.5px;width:94%}}@media (prefers-reduced-motion:reduce){.turn-dot,.ludo-piece,.ludo-piece:not(.playable):not(.moving):not(.hopping):not(.finished),.ludo-piece.moving,.ludo-piece.hopping,.ludo-board-die-layer,.ludo-board-die-layer:after,.ludo-board:before,.ludo-board.shake,.ludo-cell.safe,.ludo-turn-sweep,.ludo-capture-burst i,.ludo-reaction-bubble{animation:none}.ludo-victory-confetti i{animation:none;display:none}}.landing{--lnd-gold:#d4af37;--lnd-gold-light:#f3dfa0;--lnd-felt:#04140e;--lnd-felt-raised:#123423;--lnd-ivory:#f4ecd8;--lnd-muted:#f4ecd89e;min-height:100vh;color:var(--lnd-ivory);background:radial-gradient(ellipse 900px 500px at 50% -10%, #d4af3729, transparent 62%), radial-gradient(circle at 50% 30%, #0c2c1f, var(--lnd-felt) 78%)}.landing h1,.landing h2,.landing h3{text-wrap:balance}.landing-nav{z-index:20;border-bottom:1px solid color-mix(in srgb, var(--lnd-gold) 20%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#04140ee0;position:sticky;top:0}.landing-nav-inner,.landing-footer-inner{justify-content:space-between;align-items:center;gap:20px;width:min(1080px,100%);margin:0 auto;padding:14px clamp(16px,4vw,32px);display:flex}.landing-brand{letter-spacing:-.2px;color:var(--lnd-ivory);align-items:center;gap:9px;font-size:1.15rem;font-weight:900;display:inline-flex}.landing-brand-mark{color:#201404;background:linear-gradient(135deg, var(--lnd-gold-light), var(--lnd-gold));border-radius:9px;place-items:center;width:32px;height:32px;display:grid;box-shadow:0 0 14px #d4af3747}.landing-nav-links{align-items:center;gap:clamp(12px,2.5vw,26px);font-size:.88rem;display:flex}.landing-nav-links a{color:var(--lnd-muted);text-decoration:none;transition:color .2s}.landing-nav-links a:hover{color:var(--lnd-ivory)}.landing-nav-cta{border:1px solid color-mix(in srgb, var(--lnd-gold) 45%, transparent);white-space:nowrap;border-radius:20px;padding:8px 16px;font-weight:700;color:var(--lnd-gold-light)!important}.landing-nav-cta:hover{background:color-mix(in srgb, var(--lnd-gold) 14%, transparent)}.landing-hero{padding:clamp(48px,9vw,104px) clamp(16px,4vw,32px) clamp(40px,7vw,80px)}.landing-hero-inner{text-align:center;width:min(760px,100%);margin:0 auto}.landing-eyebrow{letter-spacing:1.4px;text-transform:uppercase;color:var(--lnd-gold);margin:0 0 14px;font-size:.74rem;font-weight:800}.landing-hero h1{letter-spacing:-1px;background:linear-gradient(135deg, var(--lnd-ivory) 30%, var(--lnd-gold-light));color:#0000;-webkit-background-clip:text;background-clip:text;margin:0 0 18px;font-size:clamp(2rem,6vw,3.3rem);line-height:1.08}.landing-lede{max-width:62ch;color:var(--lnd-muted);margin:0 auto 30px;font-size:clamp(.95rem,2.1vw,1.08rem);line-height:1.65}.landing-cta-row{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.landing-cta-primary{color:#201404;background:linear-gradient(135deg, var(--lnd-gold-light) 0%, var(--lnd-gold) 60%, #8a6a1f 100%);border-radius:12px;align-items:center;gap:9px;padding:14px 26px;font-size:.98rem;font-weight:900;text-decoration:none;transition:transform .18s,box-shadow .18s;display:inline-flex;box-shadow:0 12px 30px #d4af3747,inset 0 1px #fff6}.landing-cta-primary:hover{transform:translateY(-2px);box-shadow:0 16px 38px #d4af375c}.landing-cta-secondary{border:1px solid color-mix(in srgb, var(--lnd-gold) 32%, transparent);color:var(--lnd-ivory);background:linear-gradient(160deg, var(--lnd-felt-raised), transparent);border-radius:12px;align-items:center;gap:8px;padding:14px 22px;font-size:.92rem;font-weight:700;text-decoration:none;transition:border-color .2s;display:inline-flex}.landing-cta-secondary:hover{border-color:var(--lnd-gold)}.landing-cta-note{color:#f4ecd873;margin:18px 0 0;font-size:.78rem}.landing-section{width:min(1080px,100%);margin:0 auto;padding:clamp(40px,7vw,78px) clamp(16px,4vw,32px)}.landing-section-alt{border-block:1px solid color-mix(in srgb, var(--lnd-gold) 14%, transparent);background:#00000038;width:100%;max-width:none}.landing-section-alt>*{width:min(1080px,100%);margin-inline:auto}.landing-section h2{letter-spacing:-.4px;margin:0 0 10px;font-size:clamp(1.4rem,3.4vw,2rem)}.landing-section-lede{max-width:62ch;color:var(--lnd-muted);margin:0 0 30px;font-size:.94rem;line-height:1.6}.landing-game-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:26px;display:grid}.landing-game{border:1px solid color-mix(in srgb, var(--lnd-gold) 24%, transparent);background:linear-gradient(165deg, var(--lnd-felt-raised), var(--lnd-felt));border-radius:16px;padding:22px;box-shadow:0 14px 34px #00000052}.landing-game-icon{width:46px;height:46px;color:var(--lnd-gold);background:#d4af3724;border-radius:13px;place-items:center;margin-bottom:14px;display:grid}.landing-game-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;display:flex}.landing-game h3{margin:0;font-size:1.15rem}.landing-game-tag{text-transform:uppercase;letter-spacing:.5px;color:var(--lnd-gold-light);border:1px solid color-mix(in srgb, var(--lnd-gold) 30%, transparent);background:#d4af3724;border-radius:20px;padding:3px 9px;font-size:.66rem;font-weight:800}.landing-game p{color:var(--lnd-muted);margin:0;font-size:.89rem;line-height:1.6}.landing-steps{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin:26px 0 0;padding:0;list-style:none;display:grid}.landing-steps li{gap:14px;display:flex}.landing-step-number{color:#201404;background:linear-gradient(135deg, var(--lnd-gold-light), var(--lnd-gold));border-radius:50%;flex-shrink:0;place-items:center;width:38px;height:38px;font-weight:900;display:grid}.landing-steps h3{margin:6px 0 5px;font-size:1rem}.landing-steps p{color:var(--lnd-muted);margin:0;font-size:.87rem;line-height:1.55}.landing-feature-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-top:26px;display:grid}.landing-feature-icon{width:40px;height:40px;color:var(--lnd-gold);background:#d4af371f;border-radius:11px;place-items:center;margin-bottom:12px;display:grid}.landing-feature h3{margin:0 0 6px;font-size:.98rem}.landing-feature p{color:var(--lnd-muted);margin:0;font-size:.85rem;line-height:1.55}.landing-tokens{align-items:flex-start;gap:18px;display:flex}.landing-tokens-icon{width:48px;height:48px;color:var(--lnd-gold);border:1px solid color-mix(in srgb, var(--lnd-gold) 30%, transparent);background:#d4af3724;border-radius:14px;flex-shrink:0;place-items:center;display:grid}.landing-tokens h2{margin-bottom:10px}.landing-tokens p{max-width:70ch;color:var(--lnd-muted);margin:0 0 14px;font-size:.92rem;line-height:1.65}.landing-inline-link{color:var(--lnd-gold-light);align-items:center;gap:6px;font-size:.88rem;font-weight:700;text-decoration:none;display:inline-flex}.landing-inline-link:hover{text-decoration:underline}.landing-faq{flex-direction:column;gap:10px;margin-top:24px;display:flex}.landing-faq details{border:1px solid color-mix(in srgb, var(--lnd-gold) 20%, transparent);background:linear-gradient(160deg, var(--lnd-felt-raised), var(--lnd-felt));border-radius:12px;overflow:hidden}.landing-faq summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:15px 18px;font-size:.94rem;font-weight:700;list-style:none;display:flex}.landing-faq summary::-webkit-details-marker{display:none}.landing-faq summary:after{content:"+";color:var(--lnd-gold);font-size:1.3rem;font-weight:400;line-height:1}.landing-faq details[open] summary:after{content:"−"}.landing-faq p{color:var(--lnd-muted);max-width:74ch;margin:0;padding:0 18px 16px;font-size:.88rem;line-height:1.65}.landing-final{text-align:center;border-top:1px solid color-mix(in srgb, var(--lnd-gold) 14%, transparent);padding:clamp(48px,8vw,88px) clamp(16px,4vw,32px)}.landing-final h2{margin:0 0 8px;font-size:clamp(1.5rem,4vw,2.1rem)}.landing-final p{color:var(--lnd-muted);margin:0 0 24px;font-size:.95rem}.landing-footer{border-top:1px solid color-mix(in srgb, var(--lnd-gold) 18%, transparent);background:#0000004d}.landing-footer-inner{flex-wrap:wrap;align-items:flex-start;padding-block:30px}.landing-footer-inner p{color:#f4ecd873;max-width:44ch;margin:10px 0 0;font-size:.82rem;line-height:1.55}.landing-footer-links{flex-direction:column;gap:9px;font-size:.85rem;display:flex}.landing-footer-links a{color:var(--lnd-muted);text-decoration:none}.landing-footer-links a:hover{color:var(--lnd-gold-light)}.landing-copyright{color:#f4ecd859;width:min(1080px,100%);margin:0 auto;padding:0 clamp(16px,4vw,32px) 26px;font-size:.76rem}@media (width<=560px){.landing-nav-links a:not(.landing-nav-cta){display:none}.landing-tokens{flex-direction:column;gap:14px}.landing-footer-inner{flex-direction:column;gap:22px}}@media (prefers-reduced-motion:reduce){.landing-cta-primary{transition:none}}.legal-page{background:var(--bg);min-height:100dvh;color:var(--text)}.legal-header{z-index:10;background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:16px 20px;display:flex;position:sticky;top:0}.legal-back{border:1px solid var(--border);background:var(--bg-surface);width:36px;height:36px;color:var(--text);cursor:pointer;border-radius:10px;flex-shrink:0;place-items:center;transition:border-color .2s;display:grid}.legal-back:hover{border-color:var(--accent)}.legal-header-title{color:var(--accent);align-items:center;gap:8px;display:flex}.legal-header-title h1{color:var(--text);margin:0;font-size:1.05rem;font-weight:800}.legal-body{max-width:640px;margin:0 auto;padding:24px 20px 56px}.legal-text{font-family:var(--sans,-apple-system, "Segoe UI", sans-serif);white-space:pre-wrap;word-break:break-word;color:var(--text-secondary);margin:0;font-size:.9rem;line-height:1.7}.legal-loading{color:var(--text-muted);justify-content:center;padding:60px 0;display:flex}.legal-error{color:var(--text-muted);text-align:center;padding:40px 0}.legal-lede{color:var(--text-secondary);margin:0 0 24px;font-size:.95rem;line-height:1.6}.legal-points{flex-direction:column;gap:14px;margin-bottom:28px;display:flex}.legal-point{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;gap:12px;padding:14px 16px;display:flex}.legal-point svg{color:var(--accent);flex-shrink:0;margin-top:2px}.legal-point strong{color:var(--text);margin-bottom:3px;font-size:.88rem;display:block}.legal-point span{color:var(--text-muted);font-size:.82rem;line-height:1.5}.legal-support{color:var(--text-muted);border-top:1px solid var(--border);padding-top:16px;font-size:.85rem}.legal-support a{color:var(--accent)}.player-layout{background:var(--bg);flex-direction:column;max-width:540px;min-height:100dvh;margin:0 auto;display:flex;position:relative;box-shadow:0 0 40px #00000080}.player-content{flex:1;padding:14px 14px 96px;animation:.3s cubic-bezier(.16,1,.3,1) fadeIn}.bottom-nav{z-index:1000;max-width:540px;padding:4px 6px calc(4px + env(safe-area-inset-bottom,0px));-webkit-backdrop-filter:blur(20px);background:#101a19eb;border-top:1px solid #ffffff1a;margin:0 auto;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 24px #0006}.nav-inner{justify-content:space-around;align-items:center;display:flex}.bottom-nav .nav-item{color:var(--text-muted);cursor:pointer;letter-spacing:.2px;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:12px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;min-height:52px;padding:8px 10px;font-size:.68rem;font-weight:700;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.bottom-nav .nav-item:active{transform:scale(.94)}.bottom-nav .nav-item.active{color:#fff;background:#e23d3d1f}.bottom-nav .nav-item svg{transition:transform .2s}.bottom-nav .nav-item.active svg{color:var(--primary-light);filter:drop-shadow(0 2px 6px #e23d3d66);transform:translateY(-1px)scale(1.1)}.bottom-nav .nav-item span{margin-top:1px}.active-dot{background:var(--primary-light);width:16px;height:3px;box-shadow:0 0 8px var(--primary-light);border-radius:2px;position:absolute;bottom:3px}@media (width<=380px){.player-content{padding:10px 10px 90px}.bottom-nav .nav-item{padding:6px 4px;font-size:.62rem}}.admin-layout{min-height:100vh;color:var(--text);background-color:var(--bg);display:flex}.admin-sidebar{background-color:var(--bg-card);width:260px;color:var(--text);flex-direction:column;flex-shrink:0;display:flex}.sidebar-header{border-bottom:1px solid var(--border);padding:30px 24px}.sidebar-header h2{color:var(--primary-light);margin:0;font-size:1.4rem}.sidebar-header p{opacity:.6;margin:4px 0 0;font-size:.8rem}.sidebar-nav{flex:1;padding:24px 12px}.admin-sidebar .nav-item{color:var(--text-secondary);border-radius:8px;align-items:center;gap:12px;margin-bottom:4px;padding:12px 16px;text-decoration:none;transition:all .2s;display:flex}.admin-sidebar .nav-item:hover,.admin-sidebar .nav-item.active{background-color:var(--primary);color:var(--text)}.sidebar-footer{border-top:1px solid var(--border);padding:24px}.admin-player-link{width:100%;color:var(--text-muted);border-radius:8px;align-items:center;gap:12px;padding:12px;font-size:.9rem;text-decoration:none;display:flex}.admin-player-link:hover{color:var(--text);background-color:var(--bg-surface)}.logout-btn{width:100%;color:var(--text-muted);cursor:pointer;font:inherit;background:0 0;border:none;border-radius:8px;align-items:center;gap:12px;padding:12px;font-size:.9rem;display:flex}.logout-btn:hover{color:var(--text);background-color:var(--bg-surface)}.admin-main{flex-direction:column;flex:1;display:flex}.admin-topbar{background-color:var(--bg-card);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;height:70px;padding:0 32px;display:flex;box-shadow:0 1px 4px #00000029}.admin-topbar h1{margin:0;font-size:1.25rem}.admin-content{padding:32px;overflow-y:auto}.admin-route-loading{color:var(--text-muted);justify-content:center;align-items:center;gap:12px;padding:80px 20px;display:flex}.game-route-loading{background:var(--bg);place-items:center;min-height:100dvh;display:grid}.game-route-loading span{aspect-ratio:1;width:52px;color:var(--bg);background:var(--accent);border-radius:8px;place-items:center;font-size:1.4rem;font-weight:900;animation:.8s ease-in-out infinite alternate pulse;display:grid}
