:root{color-scheme:dark;--bg:#07090e;--panel:rgba(22,26,35,.60);--panel-lt:rgba(36,42,55,.47);--panel-inner:rgba(255,255,255,.035);--border:rgba(238,246,255,.105);--border-strong:rgba(238,246,255,.19);--text:#ecedf3;--sub:#a1a8b7;--muted:#717888;--mint:#b5e4ce;--mint-rgb:181,228,206;--danger:#ffaaa4;--gold:#dac5a1;--blur:blur(24px);--radius:22px;--shadow:0 30px 75px rgba(0,0,0,.28)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;font-family:Inter,"Segoe UI",-apple-system,BlinkMacSystemFont,Arial,sans-serif;font-size:14px;line-height:1.5;background:var(--bg);color:var(--text);letter-spacing:.005em}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.38}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--mint);outline-offset:3px}a{color:inherit;text-decoration:none}svg{flex-shrink:0}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:550;letter-spacing:-.04em}h1{font-size:clamp(31px,3.1vw,45px);line-height:1.1}h2{font-size:26px}h3{font-size:18px}small{font-size:11px;color:var(--muted)}.muted{color:var(--sub)}.fine{font-size:12px}.micro{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#9aa3b6}.mono{font-variant-numeric:tabular-nums}.ambient{position:fixed;pointer-events:none;z-index:-2;filter:blur(12px)}.ambient-one{top:-300px;left:18%;width:870px;height:690px;background:radial-gradient(ellipse,rgba(82,91,117,.20),rgba(34,42,55,.08) 48%,transparent 73%)}.ambient-two{bottom:-330px;right:-150px;width:850px;height:800px;background:radial-gradient(ellipse,rgba(40,89,88,.115),transparent 68%)}.grain{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.23;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.58' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.12' filter='url(%23n)'/%3E%3C/svg%3E")}
.glass{background:linear-gradient(125deg,rgba(255,255,255,.055),rgba(255,255,255,.012) 40%,rgba(255,255,255,.015)),var(--panel);border:1px solid var(--border);box-shadow:inset 0 1px 0 rgba(255,255,255,.085),0 16px 40px rgba(0,0,0,.10);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border-radius:var(--radius)}.glass-shine{position:relative;overflow:hidden}.glass-shine:before{content:"";position:absolute;inset:0 0 auto 0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);pointer-events:none}.soft{background:var(--panel-inner);border:1px solid rgba(255,255,255,.065);border-radius:15px}.hoverable{transition:background .24s,border-color .24s,transform .24s,box-shadow .24s}.hoverable:hover{border-color:rgba(223,236,244,.25);background-color:rgba(255,255,255,.075);transform:translateY(-2px);box-shadow:0 18px 48px rgba(0,0,0,.20)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:42px;padding:0 16px;border-radius:11px;border:1px solid var(--border);background:rgba(255,255,255,.048);color:var(--text);font-weight:550;white-space:nowrap;transition:all .2s}.btn:hover:not(:disabled){background:rgba(255,255,255,.115);border-color:var(--border-strong)}.btn-primary{background:#e3e7e8;color:#18212a;border-color:#fff}.btn-primary:hover:not(:disabled){background:#fff;border-color:#fff}.btn-mint{color:#c8f2df;border-color:rgba(181,228,206,.24);background:rgba(181,228,206,.075)}.btn-ghost{border-color:transparent;background:transparent;color:var(--sub)}.btn-ghost:hover:not(:disabled){color:var(--text)}.btn-danger{color:#ffbdb8;border-color:rgba(255,150,150,.25)}.btn-sm{min-height:33px;padding:0 12px;font-size:12px;border-radius:9px}.btn-icon{width:38px;height:38px;min-height:38px;padding:0}.pill{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border:1px solid var(--border);background:rgba(255,255,255,.045);border-radius:99px;font-size:11px;color:var(--sub)}.pill-success{color:#c1e6d6;background:rgba(124,209,167,.09);border-color:rgba(124,209,167,.16)}.dot{display:inline-block;width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#a6d3ba;box-shadow:0 0 12px rgba(166,211,186,.27)}.dot-away{background:#d1b68b}.dot-offline{background:#687080;box-shadow:none}.tiny-rule{height:1px;background:var(--border);width:100%}.field{width:100%;height:44px;padding:0 13px;color:var(--text);background:rgba(7,11,18,.55);border:1px solid var(--border);border-radius:11px;outline:0}.field::placeholder{color:#767d8b}.field:focus{border-color:rgba(181,228,206,.48)}.field-select{appearance:auto}.field-label{display:block;font-size:11px;color:var(--sub);margin-bottom:7px}.form-stack{display:flex;flex-direction:column;gap:15px}.checkbox-line{display:flex;align-items:center;gap:10px}.checkbox-line input{accent-color:#b5e4ce}.badge{display:inline-flex;align-items:center;gap:5px;font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:#b6becd}.clickable{cursor:pointer}
/* Welcome / local preview access */
.welcome-layout{display:grid;grid-template-columns:1fr 470px;gap:60px;align-items:center;max-width:1120px;min-height:100vh;padding:50px 30px;margin:auto}.welcome-logo{display:flex;align-items:center;gap:13px;margin-bottom:106px}.logo-mark{width:37px;height:37px;border:1px solid rgba(255,255,255,.30);border-radius:12px;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 0,rgba(255,255,255,.19),rgba(255,255,255,.025));font-weight:700;letter-spacing:-.17em;padding-right:4px;color:#f0f4fa;box-shadow:inset 0 1px 0 rgba(255,255,255,.19)}.logo-name{font-size:16px;letter-spacing:.19em;font-weight:600}.welcome-copy h1{font-size:clamp(44px,5vw,72px);max-width:600px;line-height:1.09;margin:23px 0}.welcome-copy h1 span{color:#a6b6be}.welcome-copy p{max-width:450px;color:var(--sub);font-size:15px;line-height:1.85}.welcome-bottom{margin-top:120px;color:var(--muted);font-size:12px}.access-card{padding:35px}.access-card .access-art{height:154px;border-radius:15px;margin-bottom:30px;background:radial-gradient(ellipse at 48% 118%,rgba(159,186,177,.26),transparent 49%),linear-gradient(130deg,#111820,#191d27 50%,#141b21);border:1px solid var(--border);display:flex;align-items:center;justify-content:center}.access-art .glass-orb{width:91px;height:91px;border-radius:50%;border:1px solid rgba(255,255,255,.30);box-shadow:inset 14px 17px 20px rgba(255,255,255,.08),inset -15px -19px 27px rgba(0,0,0,.32),0 22px 38px rgba(0,0,0,.25);background:radial-gradient(circle at 32% 23%,rgba(255,255,255,.23),rgba(255,255,255,.025) 38%,rgba(255,255,255,.02) 70%);display:flex;align-items:center;justify-content:center;font-size:30px;letter-spacing:-.2em;padding-right:7px;color:#e8eded}.access-card h2{font-size:23px;margin-bottom:6px}.access-card p{font-size:12px;line-height:1.8;color:var(--sub);margin-bottom:22px}.access-note{margin-top:20px;padding-top:17px;border-top:1px solid var(--border);display:flex;gap:9px;align-items:flex-start;color:var(--muted);font-size:11px;line-height:1.7}
/* App layout */
.shell{display:grid;grid-template-columns:242px minmax(0,1fr) 274px;min-height:100vh;max-width:1710px;margin:0 auto}.sidebar{padding:30px 15px 26px 19px;display:flex;flex-direction:column;border-right:1px solid var(--border);min-height:100vh;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:11px;padding-left:12px;margin-bottom:53px}.brand .logo-name{font-size:13px}.brand .logo-mark{width:33px;height:33px;font-size:12px;border-radius:11px}.nav-group-title{padding:0 14px 10px;font-size:10px;letter-spacing:.2em;color:var(--muted);text-transform:uppercase}.nav-group{display:flex;flex-direction:column;gap:3px;margin-bottom:32px}.nav-link{height:42px;border:1px solid transparent;border-radius:11px;color:#9098a7;display:flex;align-items:center;gap:13px;padding:0 13px;background:none;text-align:left;width:100%;font-size:13px}.nav-link:hover,.nav-link.active{color:#e6e9ee;background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.055)}.nav-link.active svg{color:#d8e2df}.nav-count{margin-left:auto;color:#aebbb7;font-size:11px}.side-footer{margin-top:auto;padding:0 9px}.side-footer p{margin-top:10px;color:var(--muted);font-size:11px;line-height:1.6}.side-profile{display:flex;gap:11px;align-items:center;margin-top:19px;padding:12px 6px;border-top:1px solid var(--border)}.avatar{border-radius:13px;border:1px solid rgba(255,255,255,.16);background:linear-gradient(145deg,rgba(187,206,203,.25),rgba(70,94,107,.12)),#161e28;color:#e6efee;display:inline-flex;align-items:center;justify-content:center;font-weight:600;font-size:15px;flex-shrink:0;overflow:hidden;position:relative}.avatar:after{content:"";inset:0;position:absolute;pointer-events:none;background:linear-gradient(130deg,rgba(255,255,255,.15),transparent 40%)}.avatar-sm{width:34px;height:34px;font-size:12px;border-radius:10px}.avatar-md{width:40px;height:40px}.avatar-lg{width:68px;height:68px;font-size:22px;border-radius:18px}.avatar-xl{width:100px;height:100px;font-size:35px;border-radius:23px}.side-profile .names{min-width:0;flex:1}.side-profile strong,.friend-row strong{display:block;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-profile span{font-size:11px;color:var(--muted)}.main{padding:22px clamp(22px,2.6vw,45px) 60px;min-width:0}.topbar{height:52px;margin-bottom:40px;display:flex;align-items:center;justify-content:space-between}.crumb{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px}.crumb strong{color:#e0e5eb;font-weight:500}.top-actions{display:flex;align-items:center;gap:13px}.balance-chip{display:inline-flex;align-items:center;gap:10px;padding:9px 13px;height:40px;border:1px solid var(--border);background:rgba(255,255,255,.04);border-radius:11px;font-variant-numeric:tabular-nums}.coin{width:21px;height:21px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:linear-gradient(130deg,#d3c6a5,#877e71);font-size:10px;color:#262823;font-weight:800;border:1px solid #d4c7a6}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px}.panel-heading p{font-size:12px;color:var(--muted);margin-top:5px}.section{margin-top:36px}.section-eyebrow{font-size:10px;color:#b8c5c6;letter-spacing:.19em;text-transform:uppercase}.hero{min-height:258px;padding:39px 37px;position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:flex-end;background:linear-gradient(105deg,rgba(16,22,31,.95),rgba(32,42,53,.55) 57%,rgba(22,39,43,.57)),rgba(29,35,44,.6)}.hero:before{content:"";position:absolute;width:480px;height:340px;right:-90px;bottom:-160px;border-radius:50%;background:radial-gradient(ellipse,rgba(194,209,201,.18),transparent 70%);filter:blur(25px)}.hero:after{content:"";position:absolute;width:350px;height:350px;border:1px solid rgba(220,237,227,.13);border-radius:50%;right:6%;top:-95px;box-shadow:0 0 0 40px rgba(255,255,255,.015),0 0 0 85px rgba(255,255,255,.010);pointer-events:none}.hero-content{position:relative;z-index:1;max-width:520px}.hero h1{margin:13px 0 13px}.hero p{color:#aab4bf;line-height:1.8;font-size:13px;max-width:415px}.hero-buttons{display:flex;gap:10px;margin-top:23px}.hero-bottom{font-size:10px;letter-spacing:.14em;color:#9ba8ad;z-index:1;white-space:nowrap}.games-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.game-card{min-height:175px;padding:23px;position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between}.game-card:before{content:"";position:absolute;width:200px;height:200px;border-radius:50%;right:-62px;top:-59px;background:radial-gradient(ellipse,var(--glow),transparent 68%);pointer-events:none}.game-card .game-icon{width:47px;height:47px;border-radius:14px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);background:rgba(255,255,255,.055);font-size:22px}.game-card .game-top{display:flex;align-items:center;justify-content:space-between;width:100%}.game-card h3{margin:18px 0 3px;font-size:18px}.game-card p{color:var(--sub);font-size:12px}.game-card .card-go{position:absolute;right:22px;bottom:25px;opacity:.7}.rightbar{padding:31px 20px;border-left:1px solid var(--border);min-height:100vh}.right-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.right-heading h3{font-size:14px;letter-spacing:-.02em}.friend-row{display:flex;align-items:center;gap:10px;padding:12px 0}.friend-row .details{min-width:0;flex:1}.friend-row strong{font-size:12px}.friend-row p{font-size:11px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.online-mini{position:relative}.online-mini .dot{position:absolute;bottom:-2px;right:-2px;border:2px solid #111720;box-sizing:content-box}.right-note{padding:18px;margin-top:28px}.right-note p{font-size:11px;line-height:1.75;margin:9px 0 16px;color:var(--sub)}.right-separator{height:1px;background:var(--border);margin:26px 0}.activity-item{display:flex;gap:11px;align-items:start;padding:11px 0;font-size:11px;color:var(--sub)}.activity-mark{width:27px;height:27px;border:1px solid var(--border);border-radius:9px;display:flex;align-items:center;justify-content:center;color:#c3d5cd}.activity-item span{font-size:10px;color:var(--muted)}.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.stat-box{padding:22px}.stat-box .num{font-size:24px;font-weight:540;letter-spacing:-.05em;margin-top:10px;font-variant-numeric:tabular-nums}.stat-box .micro{font-size:9px}.split{display:grid;grid-template-columns:1fr 1fr;gap:15px}.inner-pad{padding:24px}.list-lines{display:flex;flex-direction:column;gap:12px}.row{display:flex;align-items:center;justify-content:space-between;gap:14px}.stack{display:flex;flex-direction:column;gap:6px}.game-switch{display:flex;gap:8px;flex-wrap:wrap}.mini-game-button{padding:10px 13px;font-size:12px;border:1px solid var(--border);border-radius:10px;background:rgba(255,255,255,.035);color:var(--sub)}.mini-game-button.selected{color:#e9f2ee;border-color:rgba(181,228,206,.35);background:rgba(181,228,206,.10)}
/* Profiles */
.profile-cover{height:265px;border-radius:19px 19px 0 0;position:relative;overflow:hidden;background:#1a2634}.profile-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 24%,rgba(6,9,15,.80))}.cover-aurora{background:radial-gradient(ellipse at 66% 0,rgba(120,173,162,.25),transparent 45%),radial-gradient(ellipse at 15% 85%,rgba(41,86,89,.42),transparent 52%),linear-gradient(125deg,#121b2a,#182a35 58%,#0d1724)}.cover-midnight{background:radial-gradient(ellipse at 50% 15%,rgba(142,153,189,.16),transparent 49%),linear-gradient(145deg,#131828,#171b2c 43%,#090d17)}.cover-velvet{background:radial-gradient(ellipse at 50% 30%,rgba(180,94,99,.18),transparent 52%),linear-gradient(125deg,#25181f,#321e28,#140e17)}.cover-nocturne{background:radial-gradient(ellipse at 38% 20%,rgba(90,115,172,.33),transparent 49%),linear-gradient(120deg,#0b162d,#152541,#070f21)}.cover-golden{background:radial-gradient(ellipse at 74% 0,rgba(233,202,140,.25),transparent 47%),linear-gradient(100deg,#171717,#383127 55%,#101416)}.cover-motion:before{content:"";position:absolute;inset:-50%;background:conic-gradient(from 45deg,transparent,rgba(123,181,177,.18),transparent,rgba(177,176,210,.12),transparent);animation:slowturn 32s linear infinite;filter:blur(45px)}@keyframes slowturn{to{transform:rotate(360deg)}}.profile-main{padding:0 30px 30px}.profile-identity{display:flex;gap:18px;align-items:end;transform:translateY(-40px);margin-bottom:-21px;position:relative;z-index:2}.profile-identity .avatar{border:4px solid #131923;box-shadow:0 18px 34px #080c13}.profile-identity h2{font-size:28px}.profile-ident-side{padding-bottom:9px}.profile-tabs{display:flex;gap:22px;border-bottom:1px solid var(--border);margin-bottom:23px}.profile-tab{background:none;border:0;border-bottom:2px solid transparent;padding:13px 0;color:var(--sub)}.profile-tab.active{border-color:#b6d8cb;color:#e6eee8}.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.chart-panel{padding:23px;min-width:0;overflow:hidden}.chart-panel h3{font-size:14px;font-weight:550;letter-spacing:-.01em}.chart-panel p{font-size:11px;color:var(--muted);margin-top:4px}.chart-svg{width:100%;height:auto;margin-top:18px;overflow:visible}.chart-axis{font-size:10px;fill:#8791a1}.chart-gridline{stroke:rgba(231,238,247,.105);stroke-width:1;stroke-dasharray:3 6}.empty-chart{height:175px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;color:var(--muted);font-size:12px}.cover-choice{height:96px;border-radius:14px;border:1px solid var(--border);position:relative;overflow:hidden}.cover-choice .badge{position:absolute;bottom:8px;left:9px;background:rgba(6,10,14,.6);padding:5px 8px;border-radius:6px}.item-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.shop-item{padding:10px 10px 14px;display:flex;flex-direction:column;gap:11px}.shop-item .info{padding:0 5px;display:flex;justify-content:space-between;gap:10px}.shop-item h3{font-size:13px;font-weight:560;letter-spacing:0}.shop-item p{font-size:11px;color:var(--muted)}.shop-item .btn{width:calc(100% - 10px);margin:0 5px}.item-visual{height:126px;border-radius:13px;background:#111b23;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.item-visual .item-sheen{position:absolute;inset:0;background:linear-gradient(125deg,rgba(255,255,255,.09),transparent 45%);pointer-events:none}.item-visual .table-shape{width:70%;height:68px;border-radius:50%;background:linear-gradient(140deg,#234638,#0f2e27);border:8px solid #312c2b;box-shadow:0 0 0 2px rgba(220,220,190,.22),0 20px 30px rgba(0,0,0,.6)}.item-visual.theme-obsidian .table-shape{background:linear-gradient(140deg,#303b48,#111820);border-color:#262b32}.item-visual.theme-ivory .table-shape{background:linear-gradient(140deg,#99998e,#454e4d);border-color:#433c35}
/* Modal / games / lobby */
.overlay{position:fixed;inset:0;background:rgba(2,4,8,.68);backdrop-filter:blur(12px);z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;animation:fadein .15s ease}.modal{width:min(600px,100%);max-height:min(91vh,1000px);overflow:auto;padding:25px;box-shadow:0 40px 100px rgba(0,0,0,.53);background:linear-gradient(145deg,rgba(47,55,70,.85),rgba(18,23,33,.95))}.modal-wide{width:min(740px,100%)}.modal-head{display:flex;align-items:start;justify-content:space-between;margin-bottom:22px}.modal-head h2{font-size:23px}.modal-head p{color:var(--sub);font-size:12px;margin-top:5px}.bet-controls{display:flex;gap:8px;flex-wrap:wrap;margin:13px 0 20px}.bet{min-width:74px}.game-surface{padding:22px;background:linear-gradient(150deg,rgba(16,39,35,.50),rgba(11,20,24,.58)),rgba(255,255,255,.035);border:1px solid var(--border);border-radius:17px;min-height:190px}.playing-cards{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.playing-card{width:51px;height:73px;background:#e9e9e3;border-radius:7px;border:1px solid #c9c9c4;color:#272a2d;display:flex;flex-direction:column;justify-content:space-between;padding:5px 7px;box-shadow:0 7px 14px rgba(0,0,0,.27);font-family:Georgia,serif}.playing-card.red-card{color:#aa4c4a}.playing-card .suit{font-size:19px;text-align:center;line-height:1}.playing-card .rank{font-size:15px}.playing-card.back{background:repeating-linear-gradient(45deg,#25343c,#25343c 3px,#3e4d54 3px,#3e4d54 5px);color:transparent;border:2px solid #abb5b5}.dealer-label{font-size:11px;color:#d1ddd6;text-transform:uppercase;letter-spacing:.12em}.game-message{margin-top:17px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;color:#d4dfde;background:rgba(255,255,255,.035);font-size:12px}.game-message.win{color:#c6ebd6;border-color:rgba(153,215,184,.25)}.game-message.loss{color:#e8c1be;border-color:rgba(245,166,157,.22)}.game-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}.roulette-wheel{width:145px;height:145px;border:9px solid #303a40;border-radius:50%;background:conic-gradient(#9a4b4b 0deg 10deg,#17191d 10deg 20deg,#a04b4b 20deg 30deg,#17191d 30deg 40deg,#a04b4b 40deg 50deg,#17191d 50deg 60deg,#a04b4b 60deg 70deg,#17191d 70deg 80deg,#a04b4b 80deg 90deg,#17191d 90deg 100deg,#a04b4b 100deg 110deg,#17191d 110deg 120deg,#a04b4b 120deg 130deg,#17191d 130deg 140deg,#a04b4b 140deg 150deg,#17191d 150deg 160deg,#a04b4b 160deg 170deg,#17191d 170deg 180deg,#a04b4b 180deg 190deg,#17191d 190deg 200deg,#a04b4b 200deg 210deg,#17191d 210deg 220deg,#a04b4b 220deg 230deg,#17191d 230deg 240deg,#a04b4b 240deg 250deg,#17191d 250deg 260deg,#a04b4b 260deg 270deg,#17191d 270deg 280deg,#a04b4b 280deg 290deg,#17191d 290deg 300deg,#a04b4b 300deg 310deg,#17191d 310deg 320deg,#a04b4b 320deg 330deg,#17191d 330deg 340deg,#9a4b4b 340deg 350deg,#47735d 350deg);display:flex;align-items:center;justify-content:center;box-shadow:0 15px 35px rgba(0,0,0,.35);transition:transform 2s cubic-bezier(.15,.72,.27,1)}.roulette-wheel span{width:73px;height:73px;background:#1b232a;border-radius:50%;border:2px solid #c0c8bd;display:flex;align-items:center;justify-content:center;font-size:28px}.roulette-number{font-size:29px;font-weight:600}.reels{display:flex;gap:13px;justify-content:center;margin:14px 0}.reel{width:91px;height:104px;display:flex;align-items:center;justify-content:center;border-radius:13px;font-size:48px;border:1px solid rgba(255,255,255,.16);background:linear-gradient(160deg,rgba(255,255,255,.11),rgba(255,255,255,.024));box-shadow:inset 0 1px 0 rgba(255,255,255,.12)}.horse-lane{display:flex;align-items:center;gap:11px;border-bottom:1px solid var(--border);padding:12px 0;font-size:12px}.horse-lane:last-child{border-bottom:0}.horse-label{width:100px;flex-shrink:0}.race-track{flex:1;position:relative;height:20px;background:rgba(255,255,255,.048);border-radius:99px;overflow:hidden}.race-runner{height:100%;width:20px;border-radius:99px;background:linear-gradient(90deg,#8ba9ab,#d7e6df);box-shadow:0 0 15px rgba(177,223,212,.35);position:absolute;left:0;top:0;transition:left .08s linear}.race-runner.winner{background:linear-gradient(90deg,#d3bd86,#fff1bd)}.lobby-code{padding:18px;border:1px solid var(--border);background:rgba(255,255,255,.035);border-radius:14px;display:flex;justify-content:space-between;align-items:center;gap:15px}.lobby-code strong{font-size:25px;letter-spacing:.19em;font-weight:530}.chat-window{height:200px;overflow:auto;border:1px solid var(--border);border-radius:12px;padding:13px;background:rgba(4,8,13,.23);display:flex;flex-direction:column;gap:11px}.chat-msg{font-size:12px;color:var(--sub)}.chat-msg strong{color:#d9e6e4;font-weight:600;margin-right:7px}.chat-input-row{display:flex;gap:8px;margin-top:9px}.chat-input-row .field{flex:1}.player-seat{padding:13px;display:flex;gap:10px;align-items:center}.settings-panel{max-width:670px}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:15px 0;border-bottom:1px solid var(--border)}.settings-row:last-child{border-bottom:0}.settings-row p{color:var(--muted);font-size:11px;margin-top:4px}.settings-row input[type=range]{accent-color:#bfdccc;width:155px}.admin-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.admin-card{padding:22px}.admin-card h3{font-size:14px;letter-spacing:0}.admin-card p{font-size:12px;color:var(--sub);margin:9px 0 17px}.text-link{font-size:12px;color:#b9daca;background:none;border:none;padding:0}.text-link:hover{text-decoration:underline}.empty-state{padding:45px;text-align:center;color:var(--sub)}.empty-state h3{color:var(--text);margin:11px 0 7px}.footnote{font-size:11px;line-height:1.8;color:var(--muted);margin-top:22px}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,15px);opacity:0;pointer-events:none;z-index:200;padding:13px 19px;border:1px solid var(--border-strong);background:rgba(28,37,45,.95);border-radius:12px;color:#e8f0ee;box-shadow:0 12px 30px rgba(0,0,0,.35);backdrop-filter:blur(12px);transition:transform .25s,opacity .25s;white-space:normal;max-width:min(90vw,450px);font-size:12px;text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}@keyframes fadein{from{opacity:0}to{opacity:1}}
/* responsive */
@media(max-width:1270px){.shell{grid-template-columns:220px minmax(0,1fr)}.rightbar{display:none}.main{padding:22px 28px 60px}.sidebar{padding-left:12px}}
@media(max-width:780px){.shell{display:block;padding-bottom:78px}.sidebar{position:fixed;top:auto;bottom:0;left:0;right:0;height:66px;min-height:0;display:flex;flex-direction:row;justify-content:space-evenly;padding:8px 5px;background:rgba(10,14,20,.91);backdrop-filter:blur(22px);border-top:1px solid var(--border);border-right:0;z-index:40}.sidebar .brand,.sidebar .nav-group-title,.sidebar .side-footer,.sidebar .side-profile{display:none}.sidebar .nav-group.secondary{display:flex;flex:0 0 auto;margin:0}.sidebar .nav-group.secondary .nav-link:not(:first-of-type){display:none}.sidebar .nav-group{display:flex;flex-direction:row;margin:0;justify-content:space-evenly;flex:1}.nav-link{height:48px;flex-direction:column;gap:3px;justify-content:center;padding:4px 7px;font-size:9px;min-width:52px}.nav-link svg{width:19px;height:19px}.nav-count{display:none}.main{padding:16px 16px 34px}.topbar{margin-bottom:23px}.crumb{font-size:11px}.balance-chip{height:34px;padding:7px 9px;font-size:12px}.hero{padding:26px 24px;min-height:250px}.hero-bottom{display:none}.hero h1{font-size:32px}.welcome-layout{grid-template-columns:1fr;gap:35px;padding:25px 16px 50px}.welcome-logo{margin-bottom:40px}.welcome-copy h1{font-size:44px}.welcome-bottom{margin-top:25px}.access-card{max-width:560px;width:100%;margin:auto}.games-grid,.chart-grid{grid-template-columns:1fr}.item-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-box{padding:15px}.stat-box .num{font-size:20px}.split{grid-template-columns:1fr}.profile-cover{height:220px}.profile-main{padding:0 17px 25px}.profile-identity h2{font-size:22px}.profile-identity .avatar{width:74px;height:74px}.modal{padding:19px}.admin-grid{grid-template-columns:1fr}}
@media(max-width:420px){.main{padding:13px 11px 35px}.hero h1{font-size:29px}.hero-buttons{gap:7px}.btn{padding:0 12px}.item-grid{gap:9px}.shop-item{padding:7px 7px 12px}.profile-tabs{gap:14px}.profile-tab{font-size:12px}.top-actions{gap:6px}.balance-chip{font-size:11px}.topbar .crumb span{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

.avatar img{width:100%;height:100%;object-fit:cover;display:block;position:relative;z-index:1}

/* v0.2 — quiet login, local signup, polished reflective interactions */
.auth-layout{display:flex;align-items:center;justify-content:center;max-width:100%;min-height:100svh;padding:54px 22px 40px}
.auth-stage{width:min(100%,455px);display:flex;flex-direction:column;align-items:stretch}
.auth-stage .welcome-logo{justify-content:center;margin:0 0 48px;gap:12px}
.auth-stage .welcome-logo .logo-mark{width:40px;height:40px;font-size:13px}
.auth-stage .welcome-logo .logo-name{font-size:15px;letter-spacing:.2em}
.auth-stage .welcome-copy{text-align:center;margin-bottom:33px}
.auth-stage .welcome-copy h1{max-width:none;font-size:clamp(34px,5vw,45px);font-weight:500;letter-spacing:-.05em;line-height:1.17;margin:9px 0 13px}
.auth-stage .welcome-copy h1 span{color:#afb9c6}
.auth-stage .welcome-copy .welcome-tagline{margin:0 auto;color:#8d96a5;font-size:13px;line-height:1.4;letter-spacing:.015em;font-style:italic}
.auth-stage .welcome-copy .section-eyebrow{display:none}
.auth-card{padding:31px 33px 27px;border-radius:24px;background:linear-gradient(130deg,rgba(255,255,255,.09),rgba(255,255,255,.025) 40%,rgba(255,255,255,.04)),rgba(18,23,32,.67);border-color:rgba(236,247,255,.16);box-shadow:inset 0 1px 0 rgba(255,255,255,.16),inset 0 -1px 0 rgba(255,255,255,.035),0 26px 80px rgba(0,0,0,.24);backdrop-filter:blur(30px) saturate(125%);-webkit-backdrop-filter:blur(30px) saturate(125%)}
.auth-card h2{font-size:22px;font-weight:540;letter-spacing:-.035em;margin:27px 0 6px}
.auth-description{color:#9ca7b4;font-size:12px;margin:0 0 22px!important;line-height:1.6!important}
.auth-switch{display:grid;grid-template-columns:1fr 1fr;padding:4px;border:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.2);border-radius:13px;gap:4px}
.auth-tab{border:1px solid transparent;border-radius:9px;background:transparent;color:#939eae;min-height:39px;cursor:pointer;font-size:12px;font-weight:550;transition:background .25s,border-color .25s,color .25s,box-shadow .25s}
.auth-tab.active{color:#f1f5f6;border-color:rgba(255,255,255,.105);background:linear-gradient(145deg,rgba(255,255,255,.145),rgba(255,255,255,.046));box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 4px 10px rgba(0,0,0,.14)}
.auth-tab:hover:not(.active){color:#e7eaef;background:rgba(255,255,255,.055)}
.auth-card .field{height:46px;border-color:rgba(255,255,255,.11);background:rgba(5,8,13,.38)}
.auth-card .field:focus{background:rgba(9,13,20,.52);border-color:rgba(225,239,244,.45);box-shadow:0 0 0 3px rgba(255,255,255,.035)}
.auth-card .field-label{font-size:10px;letter-spacing:.105em;color:#b5bfcc}
.auth-submit{width:100%;min-height:47px;margin-top:3px}
.auth-card .access-note{margin-top:25px;padding-top:18px;font-size:10.5px;line-height:1.7;color:#919cab}
.auth-card .access-note strong{color:#c2cad4;font-weight:550}
.auth-footer{margin-top:29px;text-align:center;font-size:10px;color:#616b7b;letter-spacing:.17em}
.hero .hero-content .hero-tagline{font-size:13px;color:#a7b4bb;font-style:italic;letter-spacing:.03em}
/* Film-like reflective streak: on entrance, sweeps across the control just once. */
.btn,.nav-link,.game-card,.shop-item,.mini-game-button,.profile-tab,.auth-tab,.shop-filter,.cover-choice{position:relative;isolation:isolate;overflow:hidden}
.btn::after,.nav-link::after,.game-card::after,.shop-item::after,.mini-game-button::after,.profile-tab::after,.auth-tab::after,.shop-filter::after,.cover-choice::after{content:"";position:absolute;pointer-events:none;z-index:4;top:-65%;bottom:-65%;left:-80%;width:53%;background:linear-gradient(90deg,transparent 0%,rgba(238,248,255,.025) 25%,rgba(241,249,255,.19) 48%,rgba(252,255,255,.29) 51%,rgba(244,253,255,.075) 65%,transparent 100%);transform:skewX(-24deg) translateX(0);opacity:0}
.btn:hover:not(:disabled)::after,.nav-link:hover::after,.game-card:hover::after,.shop-item:hover::after,.mini-game-button:hover::after,.profile-tab:hover::after,.auth-tab:hover::after,.shop-filter:hover::after,.cover-choice:hover::after{animation:glass-streak .82s cubic-bezier(.19,.63,.25,1) both}
@keyframes glass-streak{0%{transform:skewX(-24deg) translateX(0);opacity:0}12%{opacity:.9}70%{opacity:.65}100%{transform:skewX(-24deg) translateX(490%);opacity:0}}
.btn:hover:not(:disabled),.nav-link:hover,.auth-tab:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 9px 22px rgba(0,0,0,.17)}
.game-card:hover,.shop-item:hover{border-color:rgba(230,246,255,.29)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.17),0 18px 50px rgba(0,0,0,.27)}
@media(max-width:780px){.auth-layout{padding:35px 16px 48px}.auth-stage .welcome-logo{margin-bottom:34px}.auth-card{width:100%;max-width:460px;padding:26px 22px}.auth-stage .welcome-copy{margin-bottom:28px}}
@media(max-width:380px){.auth-card{padding:22px 17px}.auth-stage .welcome-copy h1{font-size:31px}}
@media(prefers-reduced-motion:reduce){.btn::after,.nav-link::after,.game-card::after,.shop-item::after,.mini-game-button::after,.profile-tab::after,.auth-tab::after,.shop-filter::after,.cover-choice::after{animation:none!important}}

/* Casino AFK website test — official transparent wordmark and streamlined graphics */
.site-wordmark{display:block;width:100%;height:auto;object-fit:contain;object-position:left center}
.welcome-logo:has(.site-wordmark){width:min(310px,85vw);margin-left:auto;margin-right:auto}
.welcome-logo .site-wordmark{filter:drop-shadow(0 4px 18px rgba(255,255,255,.08))}
.brand:has(.site-wordmark){margin-bottom:53px;padding:7px 12px 0}
.brand .site-wordmark{width:170px;max-width:100%}
.coming-soon{opacity:.54;cursor:default;border-style:dashed!important}
.coming-soon:hover{box-shadow:none!important;transform:none!important;border-color:var(--border)!important}
.coming-soon .game-icon{font-size:24px}
.profile-greeting{font-size:12px;letter-spacing:.14em;color:#a4b2b9;text-transform:none;margin-bottom:20px}
.profile-name-with-rank{display:flex;align-items:center;gap:10px}
.rank-emblem{width:37px;height:37px;display:inline-block;object-fit:contain;vertical-align:middle;flex-shrink:0}
.chart-grid{gap:30px}
.chart-panel{padding:10px 0 4px;background:transparent;border:0;box-shadow:none;min-width:0;overflow:hidden}
.chart-panel .chart-svg{max-height:180px}
@media(max-width:780px){.welcome-logo:has(.site-wordmark){width:min(270px,80vw)}.brand .site-wordmark{width:145px}.chart-grid{gap:20px}}

/* v0.3 — dedicated full-page game rooms */
.play-shell{min-height:100vh;background:radial-gradient(circle at 50% -15%,rgba(92,112,127,.16),transparent 37%),linear-gradient(180deg,#0b1017 0%,#05080d 100%);overflow:hidden;position:relative}.play-shell:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(112deg,transparent 18%,rgba(255,255,255,.018) 39%,transparent 55%),radial-gradient(circle at 17% 35%,rgba(108,142,150,.07),transparent 23%),radial-gradient(circle at 83% 42%,rgba(87,104,136,.07),transparent 24%)}
.play-header{height:74px;position:relative;z-index:20;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;padding:0 clamp(18px,3vw,46px);border-bottom:1px solid rgba(255,255,255,.07);background:rgba(6,9,14,.56);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.play-wordmark{width:145px;height:auto;opacity:.92}.play-back{justify-self:start;border:0;background:transparent;color:#aab3c0;display:flex;align-items:center;gap:8px;height:42px;padding:0 7px;font-size:12px}.play-back svg{transform:rotate(180deg)}.play-back:hover{color:#fff}.play-header-meta{justify-self:end;display:flex;align-items:center;gap:10px}.play-game-label{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#838c9a}.play-main{position:relative;z-index:2;min-height:calc(100vh - 74px)}
.game-room{position:relative;min-height:calc(100vh - 74px);padding:clamp(20px,3vw,42px) clamp(16px,3.5vw,58px) 28px;display:flex;flex-direction:column;justify-content:center}.game-atmosphere{position:absolute;inset:0;pointer-events:none;overflow:hidden}.game-atmosphere span{position:absolute;border-radius:50%;filter:blur(80px);opacity:.22}.game-atmosphere span:nth-child(1){width:32vw;height:32vw;left:-12vw;top:3%;background:#33545a}.game-atmosphere span:nth-child(2){width:27vw;height:27vw;right:-6vw;top:18%;background:#333f58}.game-atmosphere span:nth-child(3){width:34vw;height:16vw;left:36%;bottom:-12%;background:#1b3439}
.blackjack-room{gap:18px}.blackjack-table-wrap{width:min(1180px,100%);margin:0 auto;position:relative;perspective:1100px}.blackjack-table{position:relative;width:100%;aspect-ratio:1.95/1;min-height:430px;filter:drop-shadow(0 46px 55px rgba(0,0,0,.48))}.table-rail{position:absolute;inset:0;border-radius:49% 49% 27% 27% / 54% 54% 26% 26%;background:linear-gradient(160deg,#e8edf0 0%,#5e6871 13%,#151b22 20%,#2f3740 30%,#0d1218 47%,#717b83 71%,#f4f6f6 88%,#4f5961 100%);box-shadow:inset 0 0 0 2px rgba(255,255,255,.4),inset 0 -16px 26px rgba(0,0,0,.82),0 1px 0 rgba(255,255,255,.3)}.table-rail:after{content:"";position:absolute;inset:11px;border-radius:inherit;border:1px solid rgba(255,255,255,.28);box-shadow:inset 0 0 28px rgba(255,255,255,.10)}.table-cloth{position:absolute;inset:24px 30px 30px;border-radius:47% 47% 24% 24% / 53% 53% 24% 24%;overflow:hidden;background:radial-gradient(ellipse at 50% 86%,rgba(122,161,159,.11),transparent 44%),linear-gradient(160deg,#172228 0%,#111c22 48%,#0b151b 100%);border:1px solid rgba(193,222,218,.18);box-shadow:inset 0 0 70px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.05)}.table-cloth:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.028) .8px,transparent .8px);background-size:5px 5px;opacity:.38}.cloth-line{position:absolute;left:50%;transform:translateX(-50%);border:1px solid rgba(181,228,206,.16);border-top-color:transparent;border-radius:0 0 50% 50% / 0 0 100% 100%;pointer-events:none}.cloth-line-outer{bottom:13%;width:74%;height:50%}.cloth-line-inner{bottom:24%;width:49%;height:34%;opacity:.65}.table-title{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);text-align:center;color:rgba(220,234,235,.22);letter-spacing:.16em;z-index:1;user-select:none}.table-title span{display:block;font-size:10px}.table-title strong{display:block;font-size:clamp(24px,3.2vw,48px);letter-spacing:.22em;font-weight:500;margin:2px 0}.table-title small{display:block;text-transform:uppercase;letter-spacing:.18em;color:rgba(220,234,235,.14)}
.dealer-station{position:absolute;z-index:4;top:7%;left:50%;transform:translateX(-50%);text-align:center}.dealer-name{font-size:10px;letter-spacing:.17em;color:#cbd5d7;margin-bottom:9px}.dealer-cards,.player-cards{display:flex;justify-content:center;align-items:center;gap:7px}.table-card{position:relative;width:55px;height:78px;border-radius:7px;background:linear-gradient(155deg,#fcfcf8,#dedfda);border:1px solid rgba(255,255,255,.74);color:#161a1c;display:flex;flex-direction:column;justify-content:space-between;padding:5px 7px;font-family:Georgia,serif;box-shadow:0 9px 18px rgba(0,0,0,.36),inset 0 0 0 1px rgba(0,0,0,.06);transform:rotate(-1deg)}.table-card:nth-child(2n){transform:rotate(1.2deg)}.table-card.red-card{color:#a33939}.table-card-rank{font-size:15px;line-height:1}.table-card-suit{font-size:20px;text-align:center;line-height:1}.table-card-corner{text-align:right;font-size:9px}.table-card.card-back{background:linear-gradient(135deg,#0f1720,#283845);border:1px solid #84949d;box-shadow:inset 0 0 0 3px #111820,inset 0 0 0 4px rgba(220,235,236,.24),0 9px 18px rgba(0,0,0,.36);display:flex;align-items:center;justify-content:center;color:rgba(232,241,240,.55);font-family:Inter,sans-serif;font-size:8px;letter-spacing:.16em}.table-card.card-back:before{content:"";position:absolute;inset:7px;border:1px solid rgba(255,255,255,.16);background:repeating-linear-gradient(45deg,rgba(255,255,255,.06) 0 2px,transparent 2px 5px)}.table-card.card-back span{position:relative;z-index:1}
.player-station{position:absolute;z-index:5;left:50%;bottom:5.5%;transform:translateX(-50%);text-align:center}.player-nameplate{display:inline-flex;align-items:center;gap:9px;background:rgba(5,9,14,.72);border:1px solid rgba(255,255,255,.13);backdrop-filter:blur(12px);padding:6px 8px 6px 7px;border-radius:99px;margin-bottom:8px;box-shadow:0 8px 25px rgba(0,0,0,.26)}.table-player-name{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:600}.table-rank-icon{width:24px;height:24px;object-fit:contain}.player-score{min-width:29px;height:26px;border-radius:99px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.08);font-size:11px;color:#d9e6e4}.player-bet-label{font-size:9px;letter-spacing:.16em;color:#8f9ba5;margin-top:7px}.seat{position:absolute;z-index:3}.seat-left-one{left:8%;top:42%}.seat-left-two{left:18%;bottom:15%}.seat-right-one{right:8%;top:42%}.seat-right-two{right:18%;bottom:15%}.table-seat{min-width:94px;height:34px;border-radius:99px;border:1px dashed rgba(220,235,239,.15);background:rgba(2,6,10,.2);display:flex;align-items:center;justify-content:center;gap:7px;color:#66717e;font-size:8px;letter-spacing:.13em}.seat-dot{width:6px;height:6px;border-radius:50%;background:#4b5662}
.blackjack-hud{width:min(1180px,100%);margin:0 auto;padding:13px 15px;display:grid;grid-template-columns:1fr minmax(180px,.9fr) 1fr;align-items:center;gap:16px;border-radius:18px;background:linear-gradient(125deg,rgba(255,255,255,.07),rgba(255,255,255,.015)),rgba(13,18,26,.72)}.hud-bets{min-width:0}.hud-label{display:block;font-size:9px;letter-spacing:.16em;color:#86919e;margin:0 0 7px 2px}.compact-bets{margin:0;gap:6px;flex-wrap:nowrap}.compact-bets .bet{min-width:0;padding:0 11px;min-height:34px;font-size:11px}.hud-center{text-align:center;min-width:0}.table-hint{font-size:11px;color:#8e9aa7}.table-result{font-size:11px;line-height:1.45;color:#d8e2e4}.table-result.win{color:#bce5ce}.table-result.loss{color:#e4b5b3}.hud-actions{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap}.hud-actions .btn{min-height:36px}.play-note{text-align:center;color:#5f6976;font-size:10px;margin-top:-5px}
.simple-room{align-items:center}.roulette-stage{width:min(1020px,100%);display:grid;grid-template-columns:minmax(300px,1fr) minmax(320px,.7fr);gap:clamp(28px,5vw,75px);align-items:center}.roulette-modern{width:min(530px,80vw);aspect-ratio:1;border-radius:50%;margin:auto;border:18px solid #242d35;background:repeating-conic-gradient(from -5deg,#8d4141 0 5deg,#13171c 5deg 10deg);box-shadow:inset 0 0 0 3px rgba(255,255,255,.16),inset 0 0 0 18px #0a0e13,0 45px 80px rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center}.roulette-core{width:42%;height:42%;border-radius:50%;background:radial-gradient(circle at 35% 28%,#64727c,#192028 50%,#080b10 72%);border:2px solid rgba(255,255,255,.22);box-shadow:inset 0 0 28px rgba(255,255,255,.06),0 0 0 9px #343e45;display:flex;align-items:center;justify-content:center}.roulette-core span{font-size:clamp(36px,5vw,72px);font-weight:500}.roulette-panel{padding:clamp(24px,3vw,36px)}.roulette-panel h1,.slots-machine h1{margin:6px 0 8px}.roulette-panel p{font-size:12px;color:var(--sub);margin-bottom:24px}.roulette-choices{margin-bottom:15px}.roulette-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.roulette-dot.dot-red{background:#c55b59}.roulette-dot.dot-black{background:#c5cbd2}.roulette-dot.dot-green{background:#65a584}.roulette-spin-button{width:100%;margin-top:12px}.slots-machine{width:min(760px,100%);padding:clamp(26px,4vw,48px);text-align:center}.modern-reels{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin:30px 0 24px}.modern-reel{height:clamp(130px,18vw,205px);border-radius:18px;border:1px solid rgba(255,255,255,.14);background:linear-gradient(165deg,rgba(255,255,255,.11),rgba(255,255,255,.025)),#0c1219;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 1px 0 rgba(255,255,255,.12),inset 0 -35px 55px rgba(0,0,0,.34)}.modern-reel span{font-size:clamp(52px,8vw,94px);filter:drop-shadow(0 15px 20px rgba(0,0,0,.3))}.slots-bets{justify-content:center}.slots-spin-button{min-width:180px;margin-top:14px}
@media(max-width:900px){.play-header{grid-template-columns:1fr auto}.play-wordmark{display:none}.blackjack-table{aspect-ratio:1.55/1;min-height:460px}.table-card{width:48px;height:69px}.table-title strong{font-size:28px}.seat-left-one,.seat-right-one{top:38%}.seat-left-two{left:8%;bottom:22%}.seat-right-two{right:8%;bottom:22%}.blackjack-hud{grid-template-columns:1fr;gap:11px}.hud-bets,.hud-actions{text-align:center}.compact-bets{justify-content:center;flex-wrap:wrap}.hud-actions{justify-content:center}.roulette-stage{grid-template-columns:1fr}.roulette-modern{width:min(430px,76vw)}}
@media(max-width:600px){.play-header{height:64px;padding:0 12px}.play-game-label{display:none}.play-header-meta{gap:6px}.play-main{min-height:calc(100vh - 64px)}.game-room{min-height:calc(100vh - 64px);padding:18px 9px 22px}.blackjack-table{min-height:480px;aspect-ratio:auto}.table-rail{border-radius:42% 42% 23% 23% / 38% 38% 20% 20%}.table-cloth{inset:16px 12px 20px;border-radius:41% 41% 20% 20% / 37% 37% 18% 18%}.table-title{top:45%}.table-title strong{font-size:20px;letter-spacing:.15em}.dealer-station{top:7%}.player-station{bottom:5%}.seat-left-one{left:2%;top:43%}.seat-right-one{right:2%;top:43%}.seat-left-two,.seat-right-two{display:none}.table-seat{min-width:72px;font-size:7px}.table-card{width:43px;height:62px}.table-card-suit{font-size:16px}.table-rank-icon{width:20px;height:20px}.blackjack-hud{padding:11px}.compact-bets .bet{padding:0 8px}.roulette-panel,.slots-machine{padding:22px 16px}.modern-reels{gap:8px}.modern-reel{border-radius:13px}.balance-chip{display:none}}

/* Casino AFK v0.4 — Blackjack motion + table-stage pass */
.blackjack-room{padding-top:24px;gap:14px;justify-content:flex-start;overflow:hidden;position:relative;isolation:isolate}
.blackjack-stage{position:relative;width:min(1420px,100%);margin:0 auto;padding:34px 34px 18px;isolation:isolate;z-index:1}
.blackjack-rug{position:absolute;z-index:-2;inset:0;background-image:linear-gradient(180deg,rgba(4,8,12,.38),rgba(4,7,10,.58)),url('assets/blackjack-rug-example.png');background-size:cover;background-position:center center;background-repeat:no-repeat;filter:saturate(.78) brightness(.56) contrast(.98);opacity:.92}
.blackjack-rug:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 44%,transparent 22%,rgba(2,6,10,.22) 62%,rgba(2,5,9,.58) 100%),linear-gradient(90deg,rgba(3,7,11,.38),transparent 13%,transparent 87%,rgba(3,7,11,.38));pointer-events:none}
.table-status-strip{position:absolute;z-index:9;left:50%;top:0;transform:translateX(-50%);width:min(880px,72%);height:34px;padding:0 14px;border-radius:99px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;background:rgba(10,15,21,.64);font-size:8px;letter-spacing:.14em;color:#9ba8b1;text-transform:uppercase;box-shadow:0 10px 30px rgba(0,0,0,.26)}
.table-status-strip>div:first-child{display:flex;align-items:center;gap:7px}.table-status-strip>div:last-child{text-align:right}.status-rule{text-align:center;color:#65717a}.status-dot{width:6px;height:6px;border-radius:50%;background:#68727a;box-shadow:0 0 0 4px rgba(255,255,255,.025)}.status-dot.live{background:#b5dfce;box-shadow:0 0 0 4px rgba(181,223,206,.06),0 0 15px rgba(181,223,206,.35);animation:tablePulse 1.45s ease-in-out infinite}
.blackjack-table-wrap{width:min(1340px,100%)}
.blackjack-table{aspect-ratio:2.1/1;min-height:520px;filter:drop-shadow(0 58px 64px rgba(0,0,0,.55))}
.table-rail{inset:0 1.5%;border-radius:49% 49% 25% 25% / 55% 55% 24% 24%;background:linear-gradient(157deg,#eef2f4 0%,#87919a 6%,#202831 14%,#090e13 31%,#303a43 52%,#0a0e13 71%,#aeb6bc 91%,#4a545d 100%);box-shadow:inset 0 0 0 2px rgba(255,255,255,.46),inset 0 -22px 34px rgba(0,0,0,.84),0 2px 0 rgba(255,255,255,.26)}
.table-cloth{inset:28px 48px 38px;border-radius:47% 47% 22% 22% / 54% 54% 22% 22%;background:radial-gradient(ellipse at 50% 82%,rgba(134,180,174,.12),transparent 46%),radial-gradient(ellipse at 50% 5%,rgba(255,255,255,.035),transparent 38%),linear-gradient(160deg,#17252a 0%,#101b20 48%,#081217 100%);box-shadow:inset 0 0 100px rgba(0,0,0,.58),inset 0 1px 0 rgba(255,255,255,.06)}
.table-cloth:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 22%,rgba(255,255,255,.035) 42%,transparent 57%);transform:translateX(-55%);animation:clothSheen 9s ease-in-out infinite}
.table-title{top:46%}.table-title strong{font-size:clamp(28px,3.8vw,58px);color:rgba(218,235,232,.19)}
.dealer-station{top:6.5%}.dealer-name{background:rgba(3,8,12,.44);border:1px solid rgba(255,255,255,.09);display:inline-block;padding:5px 10px;border-radius:99px;backdrop-filter:blur(10px);margin-bottom:10px}
.dealer-shoe{position:absolute;z-index:5;right:13.5%;top:11%;width:90px;height:54px;border-radius:13px;transform:rotate(-8deg);background:linear-gradient(150deg,rgba(255,255,255,.17),rgba(255,255,255,.035)),#0b1218;border:1px solid rgba(255,255,255,.18);box-shadow:0 14px 25px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;color:#8997a0;font-size:9px;letter-spacing:.18em}.shoe-slot{position:absolute;left:9px;right:9px;top:8px;height:8px;border-radius:99px;background:#020507;border:1px solid rgba(255,255,255,.1)}
.dealer-hand{position:absolute;z-index:6;right:21%;top:14%;width:56px;height:18px;border-radius:99px 99px 60% 60%;background:linear-gradient(180deg,rgba(214,196,178,.48),rgba(126,107,95,.38));filter:blur(.2px);opacity:.16;transform:rotate(-12deg);transition:opacity .2s}.dealer-hand:after{content:"";position:absolute;left:-16px;top:4px;width:23px;height:10px;border-radius:99px;background:inherit}.dealer-hand.dealing{opacity:.38;animation:dealerReach .56s ease-in-out infinite alternate}
.table-card{width:61px;height:86px;border-radius:8px;transition:filter .2s;will-change:transform,opacity}.table-card.deal-in{z-index:12;animation-duration:.46s;animation-timing-function:cubic-bezier(.18,.75,.22,1);animation-fill-mode:both}.table-card.deal-player{animation-name:dealToPlayer}.table-card.deal-dealer{animation-name:dealToDealer}.table-card.flip-reveal{animation:flipCard .42s ease both}
.player-station{bottom:4%}.player-nameplate{padding:7px 10px 7px 7px;box-shadow:0 10px 27px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.05)}.player-nameplate.active-turn{border-color:rgba(185,226,211,.32);box-shadow:0 0 0 1px rgba(185,226,211,.06),0 0 30px rgba(121,184,164,.13),0 10px 27px rgba(0,0,0,.32)}
.table-seat{height:38px;min-width:104px;background:rgba(5,10,14,.26);backdrop-filter:blur(8px)}
.blackjack-hud{width:min(1340px,calc(100% - 28px));grid-template-columns:minmax(130px,.55fr) minmax(360px,1.5fr) minmax(210px,.8fr) minmax(250px,1fr);padding:14px 17px;border-radius:20px;background:linear-gradient(125deg,rgba(255,255,255,.075),rgba(255,255,255,.018)),rgba(9,14,20,.78);box-shadow:0 20px 45px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.055)}
.hud-wallet{min-width:0}.hud-wallet strong{display:block;font-size:17px;font-weight:560;color:#e2ebe9;margin:4px 0 2px}.hud-wallet small{display:block;font-size:9px;color:#6f7c86}.hud-bets{min-width:0}.compact-bets{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}.chip-bet{appearance:none;width:45px;height:45px;flex:0 0 45px;border-radius:50%;border:1px dashed rgba(231,237,239,.28);background:radial-gradient(circle at 38% 31%,rgba(255,255,255,.13),transparent 25%),radial-gradient(circle,#1e2a31 0 54%,#0c1218 56% 68%,#738089 70% 73%,#121a20 75%);color:#bac5ca;box-shadow:0 8px 16px rgba(0,0,0,.28),inset 0 0 0 3px rgba(255,255,255,.025);font:600 9px/1 Inter,sans-serif;cursor:pointer;transition:transform .2s,border-color .2s,filter .2s,box-shadow .2s}.chip-bet:hover:not(:disabled){transform:translateY(-3px) rotate(3deg);filter:brightness(1.13)}.chip-bet.selected{border-color:rgba(188,226,212,.68);color:#e2f0eb;box-shadow:0 0 0 2px rgba(188,226,212,.07),0 0 23px rgba(128,188,166,.15),0 8px 16px rgba(0,0,0,.3)}.chip-bet:disabled{opacity:.36;cursor:not-allowed}.chip-bet span{display:block;transform:rotate(-2deg)}
/* Denomination-specific betting chips. Source buttons, flying chips and table chips all share the same visual identity. */
.chip-bet.chip-25,.chip-flight.chip-25{background:radial-gradient(circle at 34% 28%,#87939b,#303b43 50%,#111920 73%)}
.chip-bet.chip-50,.chip-flight.chip-50{background:radial-gradient(circle at 34% 28%,#7398a9,#294c5b 50%,#10222a 73%)}
.chip-bet.chip-100,.chip-flight.chip-100{background:radial-gradient(circle at 34% 28%,#cad4d4,#707e82 50%,#263238 73%);color:#10171b}
.chip-bet.chip-250,.chip-flight.chip-250{background:radial-gradient(circle at 34% 28%,#bb827a,#73443f 50%,#2b1717 73%)}
.chip-bet.chip-500,.chip-flight.chip-500{background:radial-gradient(circle at 34% 28%,#947eaf,#57446f 50%,#21172e 73%)}
.chip-bet.chip-1000,.chip-flight.chip-1000{background:radial-gradient(circle at 34% 28%,#d7c49e,#8f7550 50%,#372b19 73%);color:#17130c}

.hud-center{padding:0 12px;border-left:1px solid rgba(255,255,255,.06);border-right:1px solid rgba(255,255,255,.06)}.table-hint{display:flex;flex-direction:column;gap:4px}.table-hint strong{font-size:10px;letter-spacing:.17em;color:#cad6d8}.table-hint span{font-size:10px;color:#73808a}.hud-actions{align-items:center}.hud-actions .action-big{min-width:104px;height:44px;font-size:12px}.play-note{margin-top:0;opacity:.72}

@keyframes dealToPlayer{0%{opacity:.12;transform:translate(205px,-300px) rotate(18deg) scale(.72);filter:blur(1.5px)}48%{opacity:1;transform:translate(72px,-95px) rotate(8deg) scale(.92);filter:blur(.15px)}100%{opacity:1;transform:translate(0,0) rotate(-1deg) scale(1);filter:none}}
@keyframes dealToDealer{0%{opacity:.12;transform:translate(200px,-24px) rotate(15deg) scale(.72);filter:blur(1.5px)}100%{opacity:1;transform:translate(0,0) rotate(-1deg) scale(1);filter:none}}
@keyframes flipCard{0%{transform:rotateY(90deg) scale(.94);filter:brightness(.65)}100%{transform:rotateY(0) scale(1);filter:brightness(1)}}
@keyframes dealerReach{from{transform:translate(0,0) rotate(-12deg)}to{transform:translate(-44px,20px) rotate(-5deg)}}
@keyframes tablePulse{0%,100%{opacity:.65}50%{opacity:1}}
@keyframes clothSheen{0%,62%,100%{transform:translateX(-65%)}78%{transform:translateX(70%)}}

@media(max-width:1100px){.blackjack-stage{padding-left:10px;padding-right:10px}.blackjack-table{min-height:500px}.blackjack-hud{grid-template-columns:1fr 2fr 1fr}.hud-wallet{display:none}.compact-bets{flex-wrap:wrap}.chip-bet{width:42px;height:42px;flex-basis:42px}.table-status-strip{width:min(850px,88%)}}
@media(max-width:760px){.blackjack-stage{padding-top:42px}.blackjack-rug{opacity:.78;background-position:center center}.table-status-strip{width:92%;grid-template-columns:1fr 1fr;height:auto;min-height:36px;padding:8px 12px}.status-rule{display:none}.blackjack-table{min-height:505px;aspect-ratio:auto}.table-cloth{inset:18px 16px 24px}.dealer-shoe{right:4%;top:14%;transform:scale(.78) rotate(-8deg)}.dealer-hand{display:none}.table-card{width:45px;height:64px}.blackjack-hud{grid-template-columns:1fr;padding:12px}.hud-bets{text-align:center}.compact-bets{justify-content:center}.hud-center{border:0;border-top:1px solid rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.05);padding:9px}.hud-actions{justify-content:center}.hud-actions .action-big{min-width:118px}.play-note{padding:0 12px}.table-card.deal-player{animation-name:dealToPlayerMobile}}
@keyframes dealToPlayerMobile{0%{opacity:.12;transform:translate(110px,-280px) rotate(16deg) scale(.74)}100%{opacity:1;transform:translate(0,0) rotate(-1deg) scale(1)}}
@media(prefers-reduced-motion:reduce){.status-dot.live,.dealer-hand.dealing,.table-cloth:after,.table-card.deal-in,.table-card.flip-reveal{animation:none!important}}

/* Casino AFK v0.5 — full-room rug surface + rug marketplace */
.rug-visual{background-position:center;background-repeat:no-repeat;background-size:cover}
.rug-visual.rug-heritage{background-image:linear-gradient(180deg,rgba(5,8,12,.08),rgba(5,8,12,.20)),url('assets/blackjack-rug-example.png')}

/* Casino AFK v0.6 — blackjack gameplay polish */
.player-station{bottom:3.3%;min-width:260px}
.player-cards,.dealer-cards{perspective:900px;transform-style:preserve-3d;position:relative}
.player-cards{padding:7px 10px;border-radius:16px;transition:box-shadow .35s ease,background .35s ease,transform .35s ease}
.player-cards.active-hand{background:rgba(167,221,203,.025);animation:activeHandGlow 2.35s ease-in-out infinite}
.player-station.active-seat .player-nameplate{animation:activeSeatPulse 2.35s ease-in-out infinite}
.player-station.result-win .player-nameplate{border-color:rgba(164,221,190,.36)}
.player-station.result-loss .player-nameplate{border-color:rgba(222,157,153,.28)}
.dealer-station.dealer-active .dealer-name{color:#e2eceb;box-shadow:0 0 24px rgba(178,218,205,.08)}

.table-wager{min-height:39px;margin-top:8px;display:flex;align-items:center;justify-content:center;gap:9px;position:relative}
.wager-stack{height:32px;display:flex;align-items:center;justify-content:center;min-width:16px;padding-left:9px}
.wager-chip{position:relative;width:29px;height:29px;flex:0 0 29px;margin-left:-9px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:1px dashed rgba(255,255,255,.48);box-shadow:0 7px 13px rgba(0,0,0,.34),inset 0 0 0 3px rgba(7,11,16,.45),inset 0 0 0 5px rgba(255,255,255,.08);font-size:6px;font-weight:700;letter-spacing:-.03em;color:#eef2f2;z-index:1;transform:rotate(-4deg)}
.wager-chip:nth-child(2n){transform:rotate(4deg)}
.wager-chip span{text-shadow:0 1px 2px rgba(0,0,0,.75)}
.wager-chip.chip-25{background:radial-gradient(circle at 34% 28%,#87939b,#303b43 50%,#111920 73%)}
.wager-chip.chip-50{background:radial-gradient(circle at 34% 28%,#7398a9,#294c5b 50%,#10222a 73%)}
.wager-chip.chip-100{background:radial-gradient(circle at 34% 28%,#cad4d4,#707e82 50%,#263238 73%);color:#10171b}
.wager-chip.chip-250{background:radial-gradient(circle at 34% 28%,#bb827a,#73443f 50%,#2b1717 73%)}
.wager-chip.chip-500{background:radial-gradient(circle at 34% 28%,#947eaf,#57446f 50%,#21172e 73%)}
.wager-chip.chip-1000{background:radial-gradient(circle at 34% 28%,#d7c49e,#8f7550 50%,#372b19 73%);color:#17130c}
.wager-chip.chip-arrive{z-index:8;animation:chipToTable .76s cubic-bezier(.18,.72,.19,1) both}
.wager-total{font-size:8px;letter-spacing:.15em;color:#9eabb2;white-space:nowrap;opacity:.82}
.table-wager:not(.has-wager) .wager-total{color:#657078}
.round-feedback{display:inline-flex;margin-top:3px;padding:5px 10px;border:1px solid rgba(255,255,255,.08);border-radius:99px;font-size:8px;letter-spacing:.14em;background:rgba(5,9,13,.52);backdrop-filter:blur(8px);animation:outcomeIn .55s ease both}
.round-feedback.win{color:#bde6d2;border-color:rgba(161,221,191,.22);box-shadow:0 0 24px rgba(118,190,158,.08)}
.round-feedback.loss{color:#e2b4b1;border-color:rgba(220,154,150,.18)}
.round-feedback.push{color:#cbd3d8}
.table-cloth.round-win:after{box-shadow:inset 0 0 80px rgba(104,181,148,.055)}
.table-cloth.round-loss:after{box-shadow:inset 0 0 75px rgba(181,101,101,.035)}

.clear-bet{height:34px;padding:0 10px;border-radius:9px;border:1px solid rgba(255,255,255,.085);background:transparent;color:#7f8a93;font-size:9px;letter-spacing:.08em;text-transform:uppercase;transition:color .2s,border-color .2s,background .2s}
.clear-bet:hover:not(:disabled){color:#d9e2e4;border-color:rgba(255,255,255,.17);background:rgba(255,255,255,.045)}
.clear-bet:disabled{opacity:.3;cursor:not-allowed}
.chip-bet{position:relative;overflow:hidden}
.chip-bet:after{content:"";position:absolute;inset:4px;border-radius:50%;border:1px dotted rgba(255,255,255,.18);pointer-events:none}

.table-card.deal-in{animation-duration:.9s;animation-timing-function:cubic-bezier(.17,.72,.13,1);animation-fill-mode:both;backface-visibility:hidden;transform-style:preserve-3d;will-change:transform,opacity,filter}
.table-card.flip-reveal{animation:flipCard .72s cubic-bezier(.2,.72,.18,1) both}
.dealer-shoe.shoe-active{animation:shoeNudge .9s ease both}
.dealer-hand{opacity:0;animation:none!important;transform-origin:right center}
.dealer-hand.to-player{opacity:.3;animation:dealerReachPlayer .9s cubic-bezier(.2,.65,.2,1) both!important}
.dealer-hand.to-dealer{opacity:.26;animation:dealerReachDealer .9s cubic-bezier(.2,.65,.2,1) both!important}
.dealer-hand.reveal-card{opacity:.28;animation:dealerReveal .72s ease both!important}

@keyframes dealToPlayer{
  0%{opacity:.08;transform:translate(245px,-316px) rotateZ(15deg) rotateY(82deg) rotateX(-10deg) scale(.76);filter:blur(1.3px) brightness(.72)}
  24%{opacity:.72;transform:translate(205px,-257px) rotateZ(11deg) rotateY(62deg) rotateX(-7deg) scale(.82);filter:blur(.8px) brightness(.82)}
  55%{opacity:1;transform:translate(110px,-136px) rotateZ(5deg) rotateY(20deg) rotateX(-2deg) scale(.94);filter:blur(.15px) brightness(.96)}
  82%{transform:translate(15px,-18px) rotateZ(-2deg) rotateY(2deg) scale(1.025);filter:none}
  100%{opacity:1;transform:translate(0,0) rotateZ(-1deg) rotateY(0) scale(1);filter:none}
}
@keyframes dealToDealer{
  0%{opacity:.08;transform:translate(210px,-28px) rotateZ(13deg) rotateY(78deg) rotateX(-7deg) scale(.76);filter:blur(1.3px) brightness(.72)}
  35%{opacity:.82;transform:translate(125px,-18px) rotateZ(7deg) rotateY(43deg) scale(.86);filter:blur(.5px)}
  76%{opacity:1;transform:translate(18px,-3px) rotateZ(-1deg) rotateY(4deg) scale(1.02);filter:none}
  100%{opacity:1;transform:translate(0,0) rotateZ(-1deg) rotateY(0) scale(1);filter:none}
}
@keyframes flipCard{0%{transform:rotateY(88deg) scale(.93);filter:brightness(.62)}50%{transform:rotateY(35deg) scale(.98);filter:brightness(.88)}100%{transform:rotateY(0) scale(1);filter:brightness(1)}}
@keyframes dealerReachPlayer{0%{opacity:0;transform:translate(0,0) rotate(-12deg) scaleX(.92)}25%{opacity:.25}55%{opacity:.34;transform:translate(-68px,43px) rotate(-2deg) scaleX(1.18)}100%{opacity:0;transform:translate(-112px,82px) rotate(5deg) scaleX(1.05)}}
@keyframes dealerReachDealer{0%{opacity:0;transform:translate(0,0) rotate(-12deg)}35%{opacity:.28;transform:translate(-34px,8px) rotate(-7deg)}75%{opacity:.28;transform:translate(-61px,14px) rotate(-3deg)}100%{opacity:0;transform:translate(-28px,8px) rotate(-7deg)}}
@keyframes dealerReveal{0%{opacity:0;transform:translate(-20px,8px) rotate(-9deg)}45%{opacity:.3;transform:translate(-72px,18px) rotate(-1deg)}100%{opacity:0;transform:translate(-34px,8px) rotate(-6deg)}}
@keyframes shoeNudge{0%,100%{transform:rotate(-8deg)}34%{transform:translate(-4px,2px) rotate(-6deg)}65%{transform:translate(2px,-1px) rotate(-9deg)}}
@keyframes chipToTable{0%{opacity:.15;transform:translateY(188px) translateX(92px) rotate(24deg) scale(.72);filter:blur(1px)}48%{opacity:1;transform:translateY(67px) translateX(28px) rotate(10deg) scale(.9);filter:blur(.2px)}82%{transform:translateY(-5px) translateX(2px) rotate(-6deg) scale(1.06);filter:none}100%{opacity:1;transform:translateY(0) translateX(0) rotate(-4deg) scale(1);filter:none}}
@keyframes activeHandGlow{0%,100%{box-shadow:0 0 0 1px rgba(177,224,208,.04),0 0 13px rgba(119,190,166,.045);transform:translateY(0)}50%{box-shadow:0 0 0 1px rgba(177,224,208,.13),0 0 31px rgba(119,190,166,.14);transform:translateY(-1px)}}
@keyframes activeSeatPulse{0%,100%{box-shadow:0 0 0 1px rgba(185,226,211,.05),0 0 20px rgba(121,184,164,.08),0 10px 27px rgba(0,0,0,.32)}50%{box-shadow:0 0 0 1px rgba(185,226,211,.15),0 0 37px rgba(121,184,164,.18),0 10px 27px rgba(0,0,0,.32)}}
@keyframes outcomeIn{0%{opacity:0;transform:translateY(6px) scale(.96)}100%{opacity:1;transform:translateY(0) scale(1)}}

@media(max-width:760px){
  .player-station{min-width:210px;bottom:3%}
  .table-wager{margin-top:5px}.wager-chip{width:25px;height:25px;flex-basis:25px}.wager-total{font-size:7px}
  .table-card.deal-player{animation-name:dealToPlayerMobile}
}
@keyframes dealToPlayerMobile{0%{opacity:.08;transform:translate(120px,-288px) rotateZ(14deg) rotateY(78deg) scale(.76)}52%{opacity:1;transform:translate(50px,-110px) rotateZ(6deg) rotateY(19deg) scale(.92)}84%{transform:translate(8px,-12px) rotateZ(-2deg) rotateY(2deg) scale(1.02)}100%{opacity:1;transform:translate(0,0) rotateZ(-1deg) rotateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){.player-cards.active-hand,.player-station.active-seat .player-nameplate,.wager-chip.chip-arrive,.dealer-shoe.shoe-active,.dealer-hand.to-player,.dealer-hand.to-dealer,.dealer-hand.reveal-card,.round-feedback{animation:none!important}}

/* Casino AFK v0.7 — queued chip flights + rebuilt card motion */
/* The table cloth no longer has a sweeping shine; keep the surface calm. */
.table-cloth:after{display:none!important;animation:none!important;background:none!important}
.table-cloth.round-win{box-shadow:inset 0 0 100px rgba(0,0,0,.58),inset 0 1px 0 rgba(255,255,255,.06),inset 0 0 82px rgba(104,181,148,.055)}
.table-cloth.round-loss{box-shadow:inset 0 0 100px rgba(0,0,0,.58),inset 0 1px 0 rgba(255,255,255,.06),inset 0 0 76px rgba(181,101,101,.038)}

.card-back-spade,.shoe-spade{position:relative;z-index:2;font-family:Georgia,serif;font-size:22px;line-height:1;color:rgba(236,244,243,.72);letter-spacing:0;text-shadow:0 1px 9px rgba(0,0,0,.45)}
.dealer-shoe .shoe-spade{font-size:21px;color:rgba(225,235,235,.48)}
.card-zone-empty{display:block;width:61px;height:86px;flex:0 0 61px;opacity:0;pointer-events:none}

/* A flying card is a real temporary card above the table, rather than a re-rendered card using a hardcoded offset. */
.card-flight{box-sizing:border-box;backface-visibility:hidden;transform-style:preserve-3d;will-change:transform,opacity,filter;filter:drop-shadow(0 14px 18px rgba(0,0,0,.34))}
.card-flight.card-back:before{content:"";position:absolute;inset:7px;border:1px solid rgba(255,255,255,.16);background:repeating-linear-gradient(45deg,rgba(255,255,255,.06) 0 2px,transparent 2px 5px)}
.table-card.deal-in{animation:none!important}

/* Chip flights visually originate at the chip rack in the HUD. Each click gets its own queued flight. */
.chip-flight{box-sizing:border-box;will-change:transform,opacity;filter:drop-shadow(0 11px 10px rgba(0,0,0,.28));cursor:default!important}
.chip-flight:after{content:"";position:absolute;inset:4px;border-radius:50%;border:1px dotted rgba(255,255,255,.18);pointer-events:none}
.ready-button.ready-set{color:#c7e8da;border-color:rgba(174,226,205,.26);background:rgba(141,198,178,.08)}

@media(prefers-reduced-motion:reduce){.card-flight,.chip-flight{animation:none!important}}


/* Casino AFK v1.0 — chip denomination visibility repair */
.wager-chip,
.chip-flight,
.chip-bet{
  isolation:isolate;
}
.wager-chip > span,
.chip-flight > span,
.chip-bet > span{
  position:absolute !important;
  inset:0 !important;
  z-index:20 !important;
  display:grid !important;
  place-items:center !important;
  width:auto !important;
  height:auto !important;
  margin:0 !important;
  padding:0 !important;
  line-height:1 !important;
  font-weight:850 !important;
  font-variant-numeric:tabular-nums;
  letter-spacing:-.06em !important;
  pointer-events:none !important;
  white-space:nowrap;
}
.wager-chip > span{
  font-size:8.5px !important;
  color:#f4f7f7 !important;
  text-shadow:0 1px 2px rgba(0,0,0,.95),0 0 4px rgba(0,0,0,.86) !important;
}
.wager-chip.chip-100 > span,
.wager-chip.chip-1000 > span{
  color:#11181c !important;
  text-shadow:0 1px 1px rgba(255,255,255,.48) !important;
}
.wager-chip.chip-1000 > span{font-size:6.2px !important}
.chip-flight > span{
  font-size:11px !important;
  color:#f6f8f8 !important;
  text-shadow:0 1px 3px rgba(0,0,0,.98),0 0 5px rgba(0,0,0,.8) !important;
}
.chip-flight.chip-100 > span,
.chip-flight.chip-1000 > span{
  color:#11181c !important;
  text-shadow:0 1px 1px rgba(255,255,255,.5) !important;
}
.chip-flight.chip-1000 > span{font-size:8px !important}
.chip-bet > span{z-index:20 !important}
.wager-chip:after,
.chip-flight:after,
.chip-bet:after{z-index:5 !important}

/* Casino AFK v1.1 — true two-sided dealing cards */
.card-flight-shell{
  box-sizing:border-box;
  perspective:900px;
  filter:drop-shadow(0 14px 18px rgba(0,0,0,.34));
  will-change:transform,opacity,filter;
}
.flight-card-inner{
  position:relative;
  width:100%;
  height:100%;
  transform-style:preserve-3d;
  will-change:transform;
}
.flight-card-side{
  position:absolute;
  inset:0;
  box-sizing:border-box;
  width:100%;
  height:100%;
  border-radius:8px;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
}
.flight-card-back{
  background:linear-gradient(135deg,#0f1720,#283845);
  border:1px solid #84949d;
  box-shadow:inset 0 0 0 3px #111820,inset 0 0 0 4px rgba(220,235,236,.24),0 9px 18px rgba(0,0,0,.36);
  display:flex;
  align-items:center;
  justify-content:center;
  color:rgba(232,241,240,.55);
}
.flight-card-back:before{
  content:"";
  position:absolute;
  inset:7px;
  border:1px solid rgba(255,255,255,.16);
  background:repeating-linear-gradient(45deg,rgba(255,255,255,.06) 0 2px,transparent 2px 5px);
}
.flight-card-front{
  transform:rotateY(180deg);
  background:linear-gradient(155deg,#fcfcf8,#dedfda);
  border:1px solid rgba(255,255,255,.74);
  color:#161a1c;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:5px 7px;
  font-family:Georgia,serif;
  box-shadow:0 9px 18px rgba(0,0,0,.36),inset 0 0 0 1px rgba(0,0,0,.06);
}
.flight-card-front.red-card{color:#a33939}
@media(prefers-reduced-motion:reduce){
  .card-flight-shell,.flight-card-inner{animation:none!important}
}

/* v1.2 — Blackjack Double Down + Split */
.blackjack-special{border-color:rgba(199,215,217,.17);background:rgba(255,255,255,.045);color:#d5dedf}
.blackjack-special:hover{background:rgba(255,255,255,.085);border-color:rgba(199,215,217,.28)}
.player-station.player-station-split{width:min(610px,55%);min-width:500px;bottom:2.4%}
.player-station-split>.player-nameplate{margin-bottom:5px}
.split-hands-wrap{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:end;width:100%}
.split-hand-panel{position:relative;min-width:0;padding:9px 10px 8px;border-radius:17px;border:1px solid transparent;background:rgba(7,13,18,.08);transition:border-color .35s ease,box-shadow .35s ease,background .35s ease,transform .35s ease}
.split-hand-panel.active-split-hand{border-color:rgba(185,226,211,.22);background:rgba(150,207,188,.03);box-shadow:0 0 28px rgba(112,180,158,.11);animation:activeSplitHandGlow 2.35s ease-in-out infinite}
.split-hand-panel.hand-complete{opacity:.77}
.split-hand-label{display:flex;align-items:center;justify-content:center;gap:9px;margin-bottom:5px;font-size:8px;letter-spacing:.16em;color:#7f8c95}
.split-hand-label span{display:inline-flex;min-width:24px;height:20px;padding:0 6px;border-radius:99px;align-items:center;justify-content:center;background:rgba(255,255,255,.06);color:#cad7d7;font-size:9px;letter-spacing:0}
.split-hand-cards{display:flex;justify-content:center;align-items:center;gap:7px;min-height:100px;padding:6px 4px;border-radius:14px;perspective:900px;transform-style:preserve-3d;transition:box-shadow .35s ease,background .35s ease}
.split-hand-cards.active-hand{background:rgba(167,221,203,.025);box-shadow:inset 0 0 28px rgba(115,178,158,.06)}
.split-hand-wager{min-height:31px;display:flex;justify-content:center;align-items:center;margin-top:1px;padding-left:7px}
.split-hand-wager .wager-chip{width:24px;height:24px;flex-basis:24px;margin-left:-7px}
.split-hand-wager .wager-total{margin-left:8px;font-size:7px}
.split-hand-status{display:inline-block;margin-top:3px;padding:3px 7px;border:1px solid rgba(255,255,255,.08);border-radius:99px;color:#8e9ca4;font-size:7px;letter-spacing:.14em;background:rgba(5,9,13,.5)}
.split-hand-status.bust{color:#cfa5a2;border-color:rgba(211,145,140,.16)}
@keyframes activeSplitHandGlow{0%,100%{box-shadow:0 0 0 1px rgba(169,220,202,.03),0 0 17px rgba(112,180,158,.05)}50%{box-shadow:0 0 0 1px rgba(169,220,202,.13),0 0 36px rgba(112,180,158,.16)}}
@media(max-width:900px){.player-station.player-station-split{width:68%;min-width:430px}.split-hands-wrap{gap:10px}.split-hand-panel{padding:7px 5px}.split-hand-cards{gap:4px}.split-hand-cards .table-card{width:44px;height:63px}}
@media(max-width:600px){.player-station.player-station-split{width:82%;min-width:0}.split-hands-wrap{gap:5px}.split-hand-panel{padding:5px 2px}.split-hand-label{font-size:6px}.split-hand-cards{min-height:77px}.split-hand-cards .table-card{width:36px;height:53px;padding:4px}.split-hand-wager .wager-chip{width:20px;height:20px;flex-basis:20px}.split-hand-wager .wager-total{font-size:6px}.blackjack-special{min-width:100px!important}}
@media(prefers-reduced-motion:reduce){.split-hand-panel.active-split-hand{animation:none!important}}
