:root{--bg:#03070a;--panel:#071116;--panel2:#0a171d;--line:#16323c;--line2:#275967;--text:#f4fbfd;--muted:#8aa1aa;--cyan:#55eaff;--cyan2:#14b9d5;--good:#70e4a4;--warn:#f4c96b;--bad:#ff7184;--shadow:0 30px 90px rgba(0,0,0,.5)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Tahoma,"Segoe UI",Arial,sans-serif;min-height:100vh}button,input,textarea,select{font:inherit}button{cursor:pointer}.bg-grid{position:fixed;inset:0;z-index:-3;opacity:.24;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:55px 55px;mask-image:linear-gradient(#000,transparent 85%)}body:before{content:"";position:fixed;inset:0;z-index:-2;background:radial-gradient(circle at 12% 0,rgba(85,234,255,.09),transparent 28%),radial-gradient(circle at 90% 70%,rgba(20,185,213,.06),transparent 28%);pointer-events:none}.ambient{position:fixed;width:480px;height:480px;border-radius:50%;filter:blur(110px);pointer-events:none;z-index:-1}.ambient-a{top:-280px;right:-180px;background:rgba(85,234,255,.12)}.ambient-b{bottom:-320px;left:-180px;background:rgba(30,120,150,.08)}
.topbar{height:78px;position:sticky;top:0;z-index:60;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(16px,4vw,60px);background:rgba(3,7,10,.8);border-bottom:1px solid rgba(95,190,210,.08);backdrop-filter:blur(20px)}.brand{display:flex;align-items:center;gap:11px;color:#fff;text-decoration:none}.brandMark{width:43px;height:43px;display:grid;place-items:center;border:1px solid #2e7080;border-radius:14px;background:linear-gradient(145deg,#12313a,#061016);color:var(--cyan);font-size:21px;font-weight:1000;box-shadow:0 0 30px rgba(85,234,255,.09)}.brandWords{display:grid}.brandWords strong{font-size:21px;letter-spacing:2px}.brandWords small{font-size:7px;letter-spacing:2.4px;color:#607b84}.desktopNav{display:flex;gap:8px}.navBtn,.menuBtn{border:1px solid #183640;background:#071116;color:#cfe2e7;border-radius:12px;padding:10px 15px}.navBtn:hover,.menuBtn:hover{border-color:#3a8597;color:#fff;background:#0a1a21}.menuBtn{width:45px;height:45px;display:grid;place-content:center;gap:4px}.menuBtn i{display:block;width:18px;height:2px;background:#bfeaf1;border-radius:9px}
.wrap{width:min(1220px,92vw);margin:auto}.hero{min-height:690px;display:grid;grid-template-columns:1.02fr .98fr;align-items:center;gap:50px;padding:65px 0 45px}.heroCopy{position:relative;z-index:2}.eyebrow{display:inline-flex;align-items:center;gap:8px;color:#75d8e8;font-size:10px;font-weight:900;letter-spacing:2px}.dot{width:7px;height:7px;border-radius:50%;background:var(--good);box-shadow:0 0 15px var(--good)}.hero h1{font-size:clamp(48px,7vw,88px);line-height:1.02;letter-spacing:-4px;margin:18px 0 22px}.hero h1 span{color:var(--cyan)}.hero p{max-width:680px;color:#91a7af;font-size:17px;line-height:1.9;margin:0}.heroActions{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}.btn{border:1px solid #20424d;background:#08151b;color:#dcebef;border-radius:14px;padding:13px 18px;font-weight:900;transition:.2s;box-shadow:none}.btn:hover{transform:translateY(-2px);border-color:#3e8291}.btn.primary{background:linear-gradient(135deg,#69edff,#20bfdc);border-color:#8cf2ff;color:#021015;box-shadow:0 12px 35px rgba(43,210,235,.18)}.btn.danger{border-color:#5b2630;color:#ff9cab;background:#190b0f}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.heroStats{display:flex;gap:24px;margin-top:34px;flex-wrap:wrap}.heroStats b{display:block;font-size:20px}.heroStats span{color:#607b84;font-size:10px}.heroVisual{min-height:600px;display:grid;place-items:center;position:relative}.heroArt{width:min(430px,75vw);aspect-ratio:3/4;object-fit:cover;border-radius:12px 30px 30px 12px;border:1px solid #285d6b;box-shadow:35px 45px 100px rgba(0,0,0,.62),0 0 80px rgba(85,234,255,.08);transform:rotate(3deg);transition:.5s}.heroArt:hover{transform:rotate(0) translateY(-6px)}.heroRing{position:absolute;width:520px;height:520px;border:1px solid rgba(85,234,255,.12);border-radius:50%;box-shadow:inset 0 0 80px rgba(85,234,255,.03)}.heroBadge{position:absolute;padding:12px 15px;border:1px solid #275865;background:rgba(5,14,18,.88);border-radius:14px;box-shadow:0 20px 50px rgba(0,0,0,.4);font-size:10px;color:#a9dbe2}.heroBadge.a{top:90px;right:0}.heroBadge.b{bottom:100px;left:0}
.library{padding:70px 0 40px}.sectionTitle{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:25px}.sectionTitle h2{font-size:38px;margin:8px 0}.sectionTitle p{margin:0;color:var(--muted);line-height:1.7}.shelf{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:25px;align-items:stretch}.book{position:relative;min-height:500px;border:1px solid #173741;border-radius:10px 25px 25px 10px;background:linear-gradient(160deg,#0a171d,#03080b 80%);overflow:hidden;transition:.28s;box-shadow:0 18px 55px rgba(0,0,0,.32)}.book:before{content:"";position:absolute;top:0;bottom:0;left:0;width:9px;background:linear-gradient(#123944,#04090c);border-right:1px solid #1c4a58;z-index:5}.book:hover{transform:translateY(-9px);border-color:#37798a;box-shadow:0 30px 85px rgba(0,0,0,.55),0 0 45px rgba(85,234,255,.06)}.bookCover{height:330px;margin:11px 11px 0 20px;position:relative;overflow:hidden;border-radius:7px 18px 18px 7px;background:#061016;border:1px solid #1a4552}.bookCover img{width:100%;height:100%;object-fit:cover;display:block}.bookShade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.78))}.bookStatus{position:absolute;top:12px;right:12px;z-index:3;padding:7px 10px;border-radius:99px;background:rgba(3,8,11,.86);border:1px solid #285664;font-size:9px;font-weight:900}.bookStatus.development{color:var(--warn)}.bookStatus.coming{color:#b4c8ce}.bookStatus.maintenance{color:#ff9aa8}.bookStatus.hidden{color:#ff7588}.bookMeta{padding:18px 20px}.bookMeta small{color:#57d5e8;letter-spacing:2px;font-size:8px;font-weight:900}.bookMeta h3{font-size:24px;margin:8px 0 6px}.bookMeta p{color:#8199a2;font-size:12px;line-height:1.7;margin:0;min-height:42px}.bookBottom{display:flex;justify-content:space-between;gap:10px;margin-top:15px;color:#5e7881;font-size:9px}.bookBottom strong{color:#99e6ef}.bookTooltip{position:absolute;left:18px;right:18px;bottom:17px;z-index:9;padding:16px;border-radius:16px;border:1px solid #2a6776;background:rgba(3,10,14,.96);backdrop-filter:blur(12px);box-shadow:0 20px 60px rgba(0,0,0,.6);opacity:0;transform:translateY(8px);pointer-events:none;transition:.2s}.book:hover .bookTooltip{opacity:1;transform:none}.bookTooltip b{display:block;margin-bottom:6px}.bookTooltip span{display:block;color:#a5bbc2;font-size:11px;line-height:1.7;margin-top:3px}.book.locked{opacity:.5;filter:saturate(.2)}.book.locked:hover{transform:none}
.gamePage{padding:28px 0 70px}.back{border:0;background:none;color:#76d9e8;font-weight:900;padding:8px 0;margin-bottom:15px}.showcase{display:grid;grid-template-columns:minmax(280px,440px) 1fr;gap:40px;align-items:center}.showcase img{width:100%;height:560px;object-fit:cover;border-radius:12px 28px 28px 12px;border:1px solid #2b6575;box-shadow:35px 40px 100px rgba(0,0,0,.5)}.panel{background:linear-gradient(160deg,rgba(9,22,29,.98),rgba(3,9,12,.98));border:1px solid #163842;border-radius:26px;padding:30px;box-shadow:var(--shadow)}.panel h2{font-size:34px;margin:7px 0}.muted{color:var(--muted);line-height:1.8}.field{display:grid;gap:7px;margin:0 0 15px}.field label{font-size:11px;color:#b5cbd1;font-weight:900}.field input,.field textarea,.field select{width:100%;border:1px solid #183b46;background:#040b0f;color:#fff;border-radius:13px;padding:13px 14px;outline:none}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(85,234,255,.07)}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.formActions{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}.notice{border:1px solid #183e4a;background:#06131a;border-radius:15px;padding:14px;color:#8da6ae;font-size:11px;line-height:1.8}.avatars{display:flex;gap:9px;flex-wrap:wrap}.avatar{width:58px;height:58px;border:1px solid #183a45;background:#061118;border-radius:15px;font-size:27px;color:#fff}.avatar.sel{border-color:var(--cyan);box-shadow:0 0 25px rgba(85,234,255,.12)}
.roomGrid{display:grid;grid-template-columns:1fr 340px;gap:16px}.codePanel{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px;border:1px solid #1f5362;border-radius:21px;background:radial-gradient(circle at 20% 0,rgba(85,234,255,.12),transparent 35%),#061219}.roomCode{font-size:clamp(34px,6vw,60px);letter-spacing:7px;font-weight:1000}.timerPanel{display:grid;place-items:center;padding:20px;border:1px solid #183842;border-radius:21px;background:#040b0f}.timer{font-size:50px;font-weight:1000;color:var(--cyan);font-variant-numeric:tabular-nums}.phase{font-size:29px;font-weight:1000;margin:24px 0 7px}.players{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.player{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid #15333e;background:#061117;border-radius:15px}.playerAvatar{width:42px;height:42px;display:grid;place-items:center;background:#0a2028;border-radius:12px;font-size:21px}.player.dead{opacity:.4}.playerInfo{flex:1}.playerInfo b{display:block}.playerInfo span{font-size:9px;color:#607983}.roleCard{max-width:700px;margin:30px auto;padding:38px;text-align:center;border:1px solid #2a6575;border-radius:28px;background:radial-gradient(circle at 50% 0,rgba(85,234,255,.14),transparent 45%),#061219;box-shadow:0 35px 90px rgba(0,0,0,.45)}.roleIcon{font-size:65px}.roleCard h2{font-size:38px;margin:8px}.roleCard p{color:#a8bdc4;line-height:1.9}.actionGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.actionBtn{border:1px solid #19414d;background:#07151c;color:#fff;border-radius:14px;padding:14px;font-weight:900}.actionBtn:hover{border-color:var(--cyan)}
.sideOverlay{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:90;backdrop-filter:blur(7px)}.sideMenu{position:fixed;top:0;right:0;bottom:0;width:min(390px,92vw);background:#050c11;border-left:1px solid #1a414d;padding:24px;z-index:100;box-shadow:-30px 0 100px rgba(0,0,0,.7)}.sideMenu button{width:100%;text-align:right;background:none;color:#eaf6f8;border:0;border-bottom:1px solid #122831;padding:16px 8px;font-weight:900}.sideMenu button:hover{color:var(--cyan);background:#07161d}.adminGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.statBox{border:1px solid #173742;background:#061117;border-radius:17px;padding:18px}.statBox b{display:block;font-size:29px}.adminTabs{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.tableWrap{overflow:auto;border:1px solid #173742;border-radius:18px}.table{width:100%;border-collapse:collapse;min-width:720px}.table th,.table td{padding:12px;border-bottom:1px solid #12303a;text-align:right;font-size:11px}.table th{color:#80a0aa}.gameAdminRow{display:grid;grid-template-columns:90px 1fr auto;gap:16px;align-items:center;padding:13px 0;border-bottom:1px solid #14323b}.gameAdminRow img{width:90px;height:110px;object-fit:cover;border-radius:7px 12px 12px 7px;border:1px solid #245766}.miniBtns{display:flex;gap:7px;flex-wrap:wrap}.empty{padding:35px;text-align:center;border:1px dashed #1a3a45;border-radius:18px;color:#607a83}.hidden{display:none!important}hr{border:0;border-top:1px solid #15323b;margin:28px 0}footer{width:min(1220px,92vw);margin:auto;padding:30px 0 45px;color:#506a73;font-size:9px;text-align:center}.footerLine{height:1px;background:linear-gradient(90deg,transparent,#173740,transparent);margin-bottom:20px}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:200;background:#06131a;border:1px solid #2a6170;border-radius:14px;padding:13px 18px;display:none;box-shadow:0 20px 60px rgba(0,0,0,.55);max-width:90vw;text-align:center;font-size:12px}
@media(max-width:900px){.desktopNav{display:none}.hero{grid-template-columns:1fr;min-height:auto;padding-top:45px}.heroCopy{text-align:center}.heroCopy p{margin:auto}.heroActions,.heroStats{justify-content:center}.heroVisual{min-height:500px}.showcase{grid-template-columns:1fr}.showcase img{height:430px}.roomGrid{grid-template-columns:1fr}.adminGrid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.wrap{width:94vw}.hero h1{font-size:49px;letter-spacing:-2px}.heroArt{width:280px}.heroRing{width:340px;height:340px}.heroBadge.a{right:-3px;top:55px}.heroBadge.b{left:-3px;bottom:55px}.shelf{grid-template-columns:1fr}.book{min-height:470px}.bookCover{height:305px}.panel{padding:20px}.grid2{grid-template-columns:1fr}.showcase img{height:390px}.roomCode{font-size:35px;letter-spacing:5px}.codePanel{align-items:flex-start;flex-direction:column}.adminGrid{grid-template-columns:1fr 1fr}.gameAdminRow{grid-template-columns:70px 1fr}.gameAdminRow .miniBtns{grid-column:1/-1}.gameAdminRow img{width:70px;height:90px}}
/* WAVE 4.0 VISUAL SYSTEM — game-first, not a generic landing page */
:root{--bg:#070809;--panel:#101214;--panel2:#151719;--line:#282c30;--line2:#3a4147;--text:#f4f2ed;--muted:#92979b;--cyan:#65d7e6;--cyan2:#2ca9bc;--good:#86d7a9;--warn:#e6bf70;--bad:#e87582;--shadow:0 28px 90px rgba(0,0,0,.55)}
body{background:#070809;color:var(--text);font-family:Tahoma,"Segoe UI",Arial,sans-serif}
body:before{background:radial-gradient(circle at 78% 8%,rgba(101,215,230,.055),transparent 24%),radial-gradient(circle at 12% 85%,rgba(255,255,255,.025),transparent 25%)}
.bg-grid{opacity:.09;background-size:72px 72px}
.topbar{height:74px;background:rgba(7,8,9,.88);border-bottom:1px solid rgba(255,255,255,.07);backdrop-filter:blur(18px)}
.brandMark{width:42px;height:42px;border-radius:10px;background:#111416;border:1px solid #30363a;color:#e8f8fa;box-shadow:none;position:relative;overflow:hidden}.brandMark:after{content:"";position:absolute;left:-10px;right:-10px;bottom:5px;height:9px;border-top:2px solid var(--cyan);border-radius:50%;transform:rotate(-8deg)}
.brandWords strong{font-size:20px;letter-spacing:3px}.brandWords small{color:#72797d}
.navBtn,.menuBtn{border:1px solid #292e32;background:#0d0f10;color:#bfc4c7;border-radius:9px}.navBtn:hover,.menuBtn:hover{border-color:#59636a;background:#151819;color:#fff}
.wrap{width:min(1260px,92vw)}
/* Home hero */
.homeHero{min-height:700px;display:grid;grid-template-columns:minmax(0,1.03fr) minmax(350px,.72fr);gap:72px;align-items:center;padding:68px 0 54px;border-bottom:1px solid rgba(255,255,255,.06)}
.heroMain{padding-inline-start:2vw}.eyebrow{color:#9ca5a9;font-size:9px;letter-spacing:2.2px;font-weight:900}.dot{width:6px;height:6px;background:var(--cyan);box-shadow:0 0 12px rgba(101,215,230,.45)}
.heroMain h1{font-size:clamp(52px,7vw,92px);line-height:.98;letter-spacing:-4px;margin:20px 0 25px;max-width:760px}.heroMain h1 span{color:#e9e5dc;text-decoration:underline;text-decoration-color:rgba(101,215,230,.65);text-decoration-thickness:3px;text-underline-offset:10px}.heroMain p{max-width:650px;color:#969b9e;font-size:16px;line-height:1.95;margin:0}
.heroActions{margin-top:30px}.btn{border:1px solid #30363a;background:#101315;color:#e5e8e9;border-radius:10px;padding:13px 19px;transition:transform .18s,border-color .18s,background .18s}.btn:hover{transform:translateY(-2px);border-color:#626b70;background:#171a1c}.btn.primary{background:#e9e7e0;border-color:#f7f4eb;color:#101112;box-shadow:0 15px 40px rgba(0,0,0,.24)}.btn.primary:hover{background:#fff}
.heroProof{display:flex;align-items:center;gap:17px;margin-top:30px;color:#6f767a;font-size:9px;text-transform:uppercase;letter-spacing:1px}.heroProof b{color:#d9dddf;font-size:11px}.heroProof i{width:1px;height:18px;background:#303438}
.featureGame{position:relative;max-width:455px;justify-self:end;width:100%}.featureTop,.featureFoot{display:flex;justify-content:space-between;align-items:center;color:#6f777b;font-size:9px;letter-spacing:1px;text-transform:uppercase}.featureTop{margin-bottom:11px}.livePill{border:1px solid #2e3c40;padding:5px 8px;border-radius:99px;color:#9ab0b5}.livePill em{display:inline-block;width:5px;height:5px;border-radius:50%;background:#7bd49f;margin-left:4px}
.featureCard{height:610px;position:relative;overflow:hidden;border:1px solid #363b3f;border-radius:9px;background:#101315;box-shadow:25px 35px 90px rgba(0,0,0,.55)}.featureCover{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.82) contrast(1.06)}.featureOverlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.03) 15%,rgba(0,0,0,.12) 42%,rgba(0,0,0,.9) 100%)}.featureInfo{position:absolute;right:28px;left:28px;bottom:29px}.featureInfo small{font-size:8px;letter-spacing:2px;color:#a7afb2}.featureInfo h2{font-size:57px;letter-spacing:3px;margin:5px 0 7px}.featureInfo p{color:#c1c4c4;font-size:12px;line-height:1.8;max-width:360px;margin:0}.featureActions{display:flex;align-items:center;gap:14px;margin-top:18px}.featureActions>span{font-size:9px;color:#a4aaad}.featureFoot{margin-top:10px;color:#666d70}.featureFoot b{color:#c5c9ca}
/* Game shelf: portrait covers, like a real game collection */
.library{padding:64px 0 44px}.libraryHead{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:28px}.libraryHead h2{font-size:42px;letter-spacing:-1.5px;margin:8px 0 7px}.libraryHead p{color:#7f8589;font-size:12px;line-height:1.8;margin:0;max-width:700px}.libraryHint{display:flex;align-items:center;gap:10px;border:1px solid #292e32;padding:9px 12px;border-radius:8px;color:#70777a}.libraryHint span{font-size:18px;color:#e5e1d9}.libraryHint small{font-size:7px;line-height:1.45;letter-spacing:1px}
.shelf{display:flex;gap:18px;align-items:stretch;overflow-x:auto;padding:8px 4px 24px;scrollbar-width:thin;scrollbar-color:#343a3e transparent}.shelf:after{content:"";flex:0 0 1px}.book{flex:0 0 220px;min-height:0;height:414px;border:1px solid #2d3236;border-radius:6px 11px 11px 6px;background:#101214;box-shadow:0 16px 45px rgba(0,0,0,.38);cursor:pointer;transition:transform .22s,border-color .22s,box-shadow .22s}.book:before{width:5px;background:linear-gradient(#24292c,#090a0b);border-right:1px solid #3c4448}.book:hover{transform:translateY(-8px) rotate(-.4deg);border-color:#596269;box-shadow:0 25px 65px rgba(0,0,0,.58)}.bookCover{height:302px;margin:6px 6px 0 12px;border-radius:3px 8px 8px 3px;border:1px solid #292f33}.bookCover img{object-fit:cover}.bookShade{background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.48))}.bookStatus{top:9px;right:9px;background:rgba(8,9,10,.88);border-color:#4a5155;padding:5px 8px;font-size:7px}.bookMeta{padding:11px 13px 12px}.bookMeta small{font-size:7px;letter-spacing:1.6px;color:#7e888c}.bookMeta h3{font-size:20px;margin:5px 0 3px}.bookMeta p{font-size:9px;line-height:1.5;color:#737b7f;min-height:28px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.bookBottom{margin-top:9px;font-size:7px}.bookBottom strong{color:#bfc6c8}.bookTooltip{display:none}
.book.locked{opacity:.55;filter:grayscale(.75)}
/* Game detail feels like a boxed game, not a generic product page */
.gamePage{padding:32px 0 70px}.showcase{grid-template-columns:minmax(260px,390px) 1fr;gap:52px}.showcase>img{height:535px;border-radius:6px 15px 15px 6px;border:1px solid #383f43;box-shadow:24px 30px 80px rgba(0,0,0,.5)}.panel{background:#101214;border:1px solid #292f33;border-radius:13px;padding:28px;box-shadow:var(--shadow)}.panel h2{font-size:36px}.notice{background:#0b0d0e;border-color:#2b3034;color:#858c90}.field input,.field textarea,.field select{background:#0b0d0e;border-color:#292f33;border-radius:9px}.field input:focus,.field textarea:focus,.field select:focus{border-color:#667177;box-shadow:0 0 0 3px rgba(255,255,255,.035)}
/* Room is intentionally more like a game table */
.codePanel{background:#0d1011;border-color:#343b3f;border-radius:12px}.roomCode{font-size:clamp(35px,6vw,58px);letter-spacing:8px}.timerPanel{background:#0a0c0d;border-color:#2b3034;border-radius:12px}.timer{color:#dce1e1}.phase{font-size:28px}.player{background:#0d1011;border-color:#292f33;border-radius:9px}.playerAvatar{background:#171a1c}.roleCard{background:#111416;border-color:#3b4448;border-radius:13px}.roleCard h2{font-size:36px}.actionBtn{background:#0d1011;border-color:#30383c;border-radius:9px}
/* Admin — deliberate control-room styling */
.adminGrid{grid-template-columns:repeat(4,1fr);gap:10px}.statBox{background:#0d1011;border-color:#292f33;border-radius:10px}.statBox b{font-size:28px}.adminTabs{border-bottom:1px solid #252a2d;padding-bottom:12px}.adminTabs .btn{border-radius:8px}.tableWrap{border-color:#292f33;border-radius:10px}.table th,.table td{border-color:#242a2d}.gameAdminRow{border-color:#242a2d}.gameAdminRow img{border-color:#363d41;border-radius:4px 8px 8px 4px}
.sideMenu{background:#0a0c0d;border-left-color:#30363a}.sideMenu button{border-color:#202528}.sideMenu button:hover{background:#111416;color:#fff}
footer{color:#555d61}.footerLine{background:linear-gradient(90deg,transparent,#2a3034,transparent)}
@media(max-width:900px){.homeHero{grid-template-columns:1fr;gap:45px;padding-top:48px}.heroMain{padding:0}.featureGame{justify-self:center;max-width:410px}.featureCard{height:560px}.libraryHead{align-items:flex-start}.showcase{grid-template-columns:1fr}.showcase>img{height:500px;max-width:370px;justify-self:center}.adminGrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.wrap{width:93vw}.homeHero{min-height:0;padding:42px 0 36px}.heroMain h1{font-size:50px;letter-spacing:-2.5px}.heroMain p{font-size:13px}.heroProof{gap:10px;font-size:7px}.featureCard{height:500px}.featureInfo{right:20px;left:20px}.featureInfo h2{font-size:47px}.library{padding-top:45px}.libraryHead{display:block}.libraryHead h2{font-size:33px}.libraryHint{display:none}.shelf{gap:14px}.book{flex-basis:190px;height:370px}.bookCover{height:270px}.bookMeta h3{font-size:18px}.showcase>img{height:430px}.adminGrid{grid-template-columns:1fr 1fr}}
/* WAVE 4.1 — creator-owned game covers */
.coverUpload{display:grid;grid-template-columns:150px 1fr;gap:20px;align-items:center;margin:8px 0 18px;padding:16px;border:1px solid #292e32;border-radius:12px;background:#0b0d0e}
.coverPreview{width:150px;aspect-ratio:2/3;overflow:hidden;border-radius:5px 12px 12px 5px;border:1px solid #3b4247;background:#050607;box-shadow:0 18px 40px rgba(0,0,0,.35)}
.coverPreview img{width:100%;height:100%;display:block;object-fit:cover}
.coverUploadInfo label{display:block;font-size:13px;font-weight:900;margin-bottom:7px}.coverUploadInfo p{margin:0 0 13px;color:#80878b;font-size:11px;line-height:1.7}.coverUploadInfo input[type=file]{width:100%;padding:11px;border:1px dashed #3b4449;border-radius:9px;background:#080a0b;color:#bfc5c8}
@media(max-width:560px){.coverUpload{grid-template-columns:105px 1fr;gap:13px}.coverPreview{width:105px}}
/* WAVE 4.2 — larger game covers + creator-uploaded player portraits */
.shelf{gap:22px;padding-inline:8px 16px}
.book{flex-basis:268px;height:472px;border-radius:7px 14px 14px 7px}
.bookCover{height:345px;margin:7px 7px 0 14px;border-radius:4px 10px 10px 4px}
.bookMeta{padding:13px 15px 14px}.bookMeta h3{font-size:22px}.bookMeta p{font-size:10px}
.showcase{grid-template-columns:minmax(290px,430px) 1fr}.showcase>img{height:590px}
.avatars{gap:12px}.avatar{width:72px;height:88px;padding:4px;border-radius:12px;overflow:hidden;position:relative}.avatar img{width:100%;height:100%;object-fit:cover;border-radius:8px;display:block}.avatar.sel{border-color:var(--cyan);box-shadow:0 0 0 2px rgba(101,215,230,.12),0 12px 30px rgba(0,0,0,.4)}.avatarFallback{display:grid;place-items:center;width:100%;height:100%;font-size:20px;font-weight:900;color:#aeb6b9;background:#15191b}
.playerAvatar{width:54px;height:66px;border-radius:10px;overflow:hidden;padding:0}.playerAvatar img{width:100%;height:100%;object-fit:cover;display:block}.playerAvatar span{display:grid;place-items:center;width:100%;height:100%;font-weight:900;color:#aeb6b9}
.avatarAdminGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}.avatarAdminCard{background:#0b0d0e;border:1px solid #292f33;border-radius:13px;padding:13px}.avatarAdminPreview{height:220px;border-radius:8px;overflow:hidden;background:#15191b;border:1px solid #30363a;display:grid;place-items:center;margin-bottom:12px}.avatarAdminPreview img{width:100%;height:100%;object-fit:cover}.avatarAdminPreview span{font-size:42px;font-weight:900;color:#778186}.uploadSmall{display:grid;gap:6px;color:#92999d;font-size:10px;margin-top:10px}.uploadSmall input{width:100%;font-size:10px}
@media(max-width:900px){.book{flex-basis:250px;height:450px}.bookCover{height:328px}.showcase{grid-template-columns:minmax(260px,390px) 1fr}.showcase>img{height:540px}}
@media(max-width:560px){.book{flex-basis:215px;height:410px}.bookCover{height:300px}.bookMeta h3{font-size:19px}.showcase>img{height:470px}.avatar{width:64px;height:78px}.avatarAdminGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.avatarAdminPreview{height:190px}}
/* WAVE 4.3 — broadcast-first visual system */
:root{--bg:#050708;--panel:#0b0e10;--panel2:#0f1315;--line:#252b2e;--line2:#394246;--text:#e8e9e6;--muted:#7d8588;--cyan:#58d9e9;--cyan2:#2faabd;--good:#7ed7a4;--bad:#e87583;--shadow:0 28px 80px rgba(0,0,0,.5)}
body{background:#050708;color:var(--text)}body:before{background:radial-gradient(circle at 15% 0,rgba(88,217,233,.045),transparent 28%),radial-gradient(circle at 90% 75%,rgba(255,255,255,.025),transparent 30%)}.bg-grid{opacity:.09}.ambient{opacity:.35}
.btn.primary{background:#17373d;border-color:#2e6872;color:#dffcff;box-shadow:0 10px 30px rgba(40,160,180,.12)}.btn.primary:hover{background:#1d454c;border-color:#58d9e9}.btn{background:#0c1012;border-color:#272f32;color:#d6dbdc}.btn:hover{background:#121719;border-color:#485357}
.heroMain h1 span,.eyebrow{color:#69dce9}.featureCard{background:#0b0d0f}.featureOverlay{background:linear-gradient(180deg,rgba(0,0,0,.02) 15%,rgba(0,0,0,.2) 45%,rgba(0,0,0,.92) 100%)}
.book{flex-basis:286px;height:488px;background:#0d1012;border-color:#2a3033;box-shadow:0 18px 48px rgba(0,0,0,.46)}.bookCover{height:355px}.bookMeta{padding:14px 16px}.bookMeta h3{font-size:22px;color:#e9ecec}.bookMeta p{color:#7c8588}.bookBottom strong{color:#8edbe5}
/* Broadcast room */
.roomPage{padding-top:28px}.roomHeader{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:22px}.roomHeader h1{font-size:44px;margin:8px 0 4px;letter-spacing:-1px}.roomHeader h1 span{color:#65dce8}.roomMiniStatus{min-width:120px;padding:13px 16px;border:1px solid #292f32;background:#0b0e10;border-radius:12px;text-align:center}.roomMiniStatus b{display:block;font-size:24px}.roomMiniStatus span{font-size:9px;color:#70787b}.roomInvitePanel{border:1px solid #30373a;background:linear-gradient(145deg,#0d1113,#080a0b);border-radius:16px;padding:22px;box-shadow:0 22px 60px rgba(0,0,0,.38)}.inviteCode{display:grid;gap:3px}.inviteCode small,.roomPhaseBar small{color:#70787b;font-size:9px}.inviteCode strong{font-size:clamp(46px,8vw,76px);line-height:1;letter-spacing:10px;color:#f1f1eb}.inviteCode span{font-size:10px;color:#747d80}.inviteActions{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.inviteLink{margin-top:13px;border:1px solid #242b2e;background:#07090a;border-radius:9px;padding:11px 13px;color:#90999c;font-size:11px;direction:ltr;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qrWrap{display:flex;align-items:center;gap:15px;margin-top:14px;padding-top:14px;border-top:1px solid #22282b}.qrWrap img{width:92px;height:92px;padding:6px;background:#0b0d0e;border:1px solid #32393c;border-radius:8px}.qrWrap b{display:block;font-size:12px;margin-bottom:5px}.qrWrap small{display:block;color:#727b7e;line-height:1.7;font-size:10px;max-width:320px}.roomPhaseBar{display:flex;align-items:center;justify-content:space-between;margin-top:15px;padding:14px 17px;border:1px solid #242a2d;background:#0a0d0f;border-radius:12px}.roomPhaseBar b{display:block;font-size:18px;margin-top:3px}.roomTimer{text-align:left}.roomTimer strong{display:block;font-size:25px;font-variant-numeric:tabular-nums}.roomMessage{color:#788184;font-size:11px;line-height:1.8;margin:12px 2px 22px}.roomSectionHead{display:flex;justify-content:space-between;align-items:end;margin:24px 0 12px}.roomSectionHead h2{margin:4px 0 0;font-size:24px}.roomSectionHead>span{font-size:9px;color:#727a7d}.roomSide{position:sticky;top:96px;height:max-content}.sideLabel{font-size:8px;letter-spacing:2px;color:#6c777a;margin-bottom:4px}.roomSide h3{font-size:24px;margin:0 0 7px}.wide{width:100%;margin-top:8px}.roomRule{margin:17px 0;padding:13px;border:1px solid #22292b;background:#080a0b;border-radius:10px}.roomRule b{display:block;font-size:10px;color:#a9dce3;margin-bottom:5px}.roomRule span{display:block;color:#70787b;font-size:9px;line-height:1.7}.player{background:#0b0e10;border-color:#242b2e;min-height:78px}.playerAvatar{width:54px;height:66px;border-radius:9px;background:#111517;border:1px solid #293033}.playerAvatar img{object-fit:cover}.avatarMissing{font-size:18px;color:#9ba4a7}.hostTag{display:inline-block;margin-right:5px;font-size:7px;letter-spacing:1px;color:#69dce9;border:1px solid #28535b;padding:2px 5px;border-radius:4px}.playerInfo span{color:#687276}
.roleIcon{font-size:54px}.actionBtn{background:#0b0e10;border-color:#293134}.panel{background:#0c0f11;border-color:#292f32}.notice{background:#090c0e;border-color:#252c2f}
.avatarFallback{display:none}.avatar{background:#0a0d0f;border-color:#292f32}.avatar img{border-radius:8px}
@media(max-width:900px){.roomHeader{align-items:flex-start}.roomGrid{grid-template-columns:1fr}.roomSide{position:static}.book{flex-basis:270px}.bookCover{height:340px}}
@media(max-width:560px){.roomHeader{display:block}.roomMiniStatus{margin-top:14px;display:inline-block}.roomHeader h1{font-size:34px}.inviteCode strong{font-size:48px;letter-spacing:6px}.inviteActions .btn{flex:1}.qrWrap img{width:76px;height:76px}.book{flex-basis:238px;height:435px}.bookCover{height:315px}}

/* 4.6 — player-facing game description */
.gameHeroDetail{display:grid;grid-template-columns:minmax(300px,430px) minmax(0,1fr);gap:56px;align-items:start;padding-top:14px}.detailCoverWrap{position:relative;display:flex;justify-content:center}.detailCover{position:relative;z-index:2;width:100%;max-width:430px;height:610px;object-fit:cover;border-radius:8px 18px 18px 8px;border:1px solid #30383b;box-shadow:26px 32px 90px rgba(0,0,0,.58)}.coverGlow{position:absolute;width:78%;height:65%;left:11%;bottom:2%;background:radial-gradient(ellipse,rgba(75,190,210,.16),transparent 68%);filter:blur(30px)}.detailInfo{padding:26px 0}.detailInfo h1{font-size:58px;line-height:1;margin:8px 0 18px;letter-spacing:-2px}.detailStats{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}.detailStats span{padding:9px 12px;border:1px solid #252d30;background:#0b0f10;border-radius:9px;color:#879194;font-size:10px}.detailStats b{color:#dfe5e6}.descriptionBox,.howBox{margin-top:14px;padding:20px 21px;border:1px solid #273135;background:linear-gradient(145deg,#111617,#0b0e0f);border-radius:15px}.descLabel{font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:#83d7e4;font-weight:900;margin-bottom:9px}.descriptionBox p,.howBox p{margin:0;color:#aab4b7;line-height:2;font-size:13px;white-space:pre-line}.emptyHow{opacity:.65}.featureDescription{margin:10px 0 14px;padding:11px 13px;border:1px solid rgba(160,180,185,.18);background:rgba(5,9,10,.5);border-radius:10px}.featureDescription span{display:block;font-size:8px;letter-spacing:1.2px;color:#8bd9e5;font-weight:900;margin-bottom:4px}.featureDescription p{margin:0!important;font-size:11px!important;line-height:1.7!important;color:#b8c2c4!important}.coverUploadInfo p{line-height:1.7}
@media(max-width:900px){.gameHeroDetail{grid-template-columns:1fr;gap:22px}.detailCover{height:540px;max-width:380px}.detailInfo{padding:0}.detailInfo h1{font-size:48px}}
@media(max-width:560px){.detailCover{height:460px;max-width:300px}.detailInfo h1{font-size:40px}.descriptionBox,.howBox{padding:16px}.descriptionBox p,.howBox p{font-size:12px;line-height:1.85}}

/* WAVE 4.7 — flexible cover art + editorial ribbons */
.bookCover{position:relative;background:#080a0b}
.bookCover .coverImage{width:100%;height:100%;display:block;object-fit:cover}
.bookCover .coverImage.contain{object-fit:contain;background:#07090a}
.coverRibbon{position:absolute;left:10px;top:10px;z-index:4;padding:7px 11px;border-radius:5px 9px 9px 5px;background:#e9e5dc;color:#111;font-size:9px;font-weight:1000;letter-spacing:.3px;box-shadow:0 8px 22px rgba(0,0,0,.35)}
.coverRibbon:before{content:"";position:absolute;left:-5px;top:0;border-top:14px solid transparent;border-bottom:14px solid transparent;border-right:5px solid #e9e5dc}
.coverRibbon.popular{background:#d8e9e6}.coverRibbon.popular:before{border-right-color:#d8e9e6}.coverRibbon.new{background:#e8d9a9}.coverRibbon.new:before{border-right-color:#e8d9a9}.coverRibbon.featured{background:#b8dce3}.coverRibbon.featured:before{border-right-color:#b8dce3}
.detailCoverWrap{position:relative}.detailCover.contain{object-fit:contain;background:#080a0b}.detailRibbon{position:absolute;top:24px;left:22px;z-index:5;padding:9px 13px;border-radius:5px 10px 10px 5px;background:#e9e5dc;color:#111;font-size:10px;font-weight:1000;box-shadow:0 12px 30px rgba(0,0,0,.45)}
.detailRibbon.popular{background:#d8e9e6}.detailRibbon.new{background:#e8d9a9}.detailRibbon.featured{background:#b8dce3}
.gameAdminRow>img{object-fit:cover}.gameAdminRow>img.contain{object-fit:contain;background:#080a0b}

/* WAVE 4.9 performance pass: keep the game room responsive on modest PCs/phones. */
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}
@media (max-width:800px){.ambient{display:none}.topbar{backdrop-filter:none}.sideOverlay{backdrop-filter:none}.book:hover,.btn:hover{transform:none}.featureCard,.book,.panel{box-shadow:0 12px 35px rgba(0,0,0,.28)}}

/* WAVE 5.0.3 SAFE ADMIN UPGRADE */
.adminPage{padding-top:10px}
.adminTopbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px;padding:20px 22px;border:1px solid rgba(101,215,230,.13);border-radius:22px;background:linear-gradient(135deg,rgba(16,20,22,.98),rgba(7,11,13,.98));box-shadow:0 20px 60px rgba(0,0,0,.28)}
.adminTopbar h2{margin:6px 0 4px;font-size:32px}
.adminTopbar p{margin:0;color:var(--muted);font-size:12px}
.adminTopActions{display:flex;gap:8px;flex-wrap:wrap;flex-shrink:0}
.adminTopActions .btn{white-space:nowrap}
.adminQuick{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0}
.adminQuickCard{min-height:120px;text-align:right;padding:18px;border:1px solid #1c3942;border-radius:18px;background:linear-gradient(150deg,#0d1519,#070b0d);color:var(--text);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;transition:.2s}
.adminQuickCard:hover{transform:translateY(-3px);border-color:#3a7d8a;background:#0c171c}
.adminQuickCard b{font-size:25px}
.adminQuickCard span{font-weight:1000}
.adminQuickCard small{color:var(--muted);font-size:10px;line-height:1.5}
.adminStatus{display:flex;align-items:center;justify-content:space-between;gap:15px}
.statusOk{display:inline-flex;align-items:center;gap:8px;font-size:10px;font-weight:1000;letter-spacing:1.5px;color:var(--good)}
.statusOk span{width:8px;height:8px;border-radius:50%;background:var(--good);box-shadow:0 0 14px var(--good)}
@media(max-width:800px){.adminTopbar{align-items:flex-start;flex-direction:column}.adminTopActions{width:100%}.adminTopActions .btn{flex:1}.adminQuick{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.adminTopbar{padding:17px}.adminTopbar h2{font-size:27px}.adminTopActions .btn{flex:auto}.adminQuick{grid-template-columns:1fr 1fr}.adminQuickCard{min-height:105px;padding:14px}.adminStatus{align-items:flex-start;flex-direction:column}}

/* WAVE 5.0.4 — mobile-first room settings */
.fieldHint{display:block;margin-top:7px;color:#718084;font-size:10px;line-height:1.6}.modalOverlay{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:18px;background:rgba(0,0,0,.72);backdrop-filter:blur(10px)}.modalCard{width:min(620px,100%);max-height:90vh;overflow:auto;box-shadow:0 30px 100px rgba(0,0,0,.55)}.modalCard h2{margin-top:6px}.modalCard .formActions{position:sticky;bottom:0;padding-top:12px;background:linear-gradient(transparent,#0b0e10 25%)}


/* WAVE 5.1 FINAL — live room polish, chat, host controls, mobile UX */
.connTag{display:inline-flex;align-items:center;margin-right:8px;padding:4px 8px;border:1px solid rgba(112,228,164,.2);border-radius:999px;color:var(--good);font-size:8px;letter-spacing:.5px;vertical-align:middle}.connTag.offline{color:var(--warn);border-color:rgba(244,201,107,.2)}
.roundBadge{display:inline-block;margin-right:7px;padding:4px 7px;border-radius:999px;border:1px solid #26383d;color:#84989d;font-size:8px}
.readyTag{display:inline-block;margin-right:5px;padding:3px 6px;border-radius:999px;border:1px solid rgba(112,228,164,.2);color:var(--good);font-size:7px}.kickBtn{border:1px solid rgba(255,113,132,.22);background:#170d10;color:#ff9aaa;border-radius:9px;padding:8px 10px;font-size:9px;font-weight:900}.kickBtn:hover{border-color:var(--bad);background:#241015}
.actionPanel{margin-top:16px}.actionTitle{display:flex;align-items:center;justify-content:space-between;gap:15px}.actionTitle h3{margin:4px 0;font-size:23px}.actionTitle>span{font-size:9px;color:#7d9095}.actionBtn.selected{border-color:var(--cyan);background:linear-gradient(145deg,#0d2630,#08141a);box-shadow:0 0 0 1px rgba(85,234,255,.08),0 8px 28px rgba(0,0,0,.28);color:#fff}
.teamBox{margin:18px auto;padding:13px;border:1px solid rgba(255,113,132,.18);background:rgba(120,25,40,.08);border-radius:14px;max-width:460px}.teamBox>b{display:block;color:#ff9aaa;font-size:10px;margin-bottom:9px}.teamBox span{display:inline-block;margin:3px;padding:6px 9px;border-radius:8px;background:#190e11;color:#f0b8c1;font-size:9px}.roleMini{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.roleMini .btn{width:auto;margin-right:auto}
.chatPanel{margin-top:18px;padding:16px}.chatHead{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:12px}.chatHead h3{margin:4px 0 0}.chatHead small{color:#6f8085;font-size:11px}.chatMessages{height:250px;overflow:auto;padding:8px;background:#070a0c;border:1px solid #1c282c;border-radius:12px}.chatMsg{display:flex;align-items:baseline;gap:8px;padding:7px 8px;margin:2px 0;border-radius:8px;line-height:1.55}.chatMsg:hover{background:#0b1114}.chatMsg b{font-size:13px;color:#9bdde6;white-space:nowrap}.chatMsg span{font-size:14px;color:#c2cacc;word-break:break-word}.chatMsg.mine b{color:var(--cyan)}.chatMsg.system{justify-content:center;color:#65767b}.chatMsg.system span{font-size:9px;color:#718187}.chatComposer{display:flex;gap:8px;margin-top:10px}.chatComposer input{flex:1;min-width:0}.chatComposer .btn{width:auto;min-width:82px}
.endPanel{overflow:hidden}.endPlayers{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;margin:16px 0}.endPlayer{display:flex;align-items:center;justify-content:space-between;padding:12px;border:1px solid #202b2f;background:#080c0e;border-radius:10px}.endPlayer b,.endPlayer span{display:block}.endPlayer b{font-size:11px}.endPlayer span{margin-top:3px;color:#728187;font-size:9px}.endPlayer strong{font-size:9px;color:#8ed6df}
@media(max-width:560px){.players{grid-template-columns:1fr}.player{min-height:70px}.playerAvatar{width:48px;height:58px}.kickBtn{padding:7px 9px}.chatMessages{height:210px}.chatComposer .btn{min-width:72px;padding-left:12px;padding-right:12px}.roundBadge{margin-top:5px}.actionTitle{align-items:flex-start}.roomMiniStatus{min-width:110px}}

.voteBoard{display:grid;gap:8px;margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:14px}.voteRow{display:flex;align-items:center;gap:10px;justify-content:flex-start;padding:9px 10px;border-radius:10px;background:rgba(255,255,255,.03)}.voteRow span{opacity:.55}.voteRow strong{margin-inline-start:auto}.voteModeBadge{display:inline-block;margin-top:6px;padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.05);font-size:12px}


/* WAVE 5.2 — Mafia Game Mode: lobby disappears at start, cinematic phases, no chat except discussion. */
.mafiaStage{position:relative;min-height:calc(100vh - 130px);margin-top:4px;border:1px solid #1a2b31;border-radius:30px;overflow:hidden;background:radial-gradient(circle at 50% 18%,rgba(48,75,86,.18),transparent 35%),linear-gradient(180deg,#070b0f,#020406 78%);box-shadow:0 35px 110px rgba(0,0,0,.65)}
.mafiaStage:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 20% 30%,rgba(255,255,255,.05) 0 1px,transparent 1.5px),radial-gradient(circle at 70% 18%,rgba(255,255,255,.04) 0 1px,transparent 1.5px);background-size:170px 170px,230px 230px;opacity:.35;pointer-events:none}
.mafiaStage.nightMode{background:radial-gradient(circle at 50% 22%,rgba(45,75,110,.28),transparent 32%),linear-gradient(180deg,#040813,#020305 78%)}
.mafiaStage.nightMode:after{content:"";position:absolute;left:-80px;right:-80px;bottom:-150px;height:360px;background:radial-gradient(ellipse at center,rgba(25,47,58,.2),transparent 65%);pointer-events:none}
.mafiaStage.discussionMode{background:radial-gradient(circle at 50% 12%,rgba(220,165,73,.09),transparent 30%),linear-gradient(180deg,#0b0d0d,#040505 75%)}
.mafiaStage.votingMode{background:radial-gradient(circle at 50% 14%,rgba(210,55,65,.10),transparent 32%),linear-gradient(180deg,#0d090b,#030405 76%)}
.mafiaStage.endedMode{background:radial-gradient(circle at 50% 18%,rgba(106,203,170,.11),transparent 35%),linear-gradient(180deg,#07100e,#020504 76%)}
.stageTop{position:relative;z-index:4;display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:28px 30px 12px}.stageTop h1{font-size:clamp(34px,6vw,58px);margin:7px 0 4px;letter-spacing:-2px}.stageTop p{margin:0;color:#83979d;font-size:12px;line-height:1.8}.stageTimer{min-width:120px;text-align:center;padding:12px 15px;border:1px solid #26373c;background:rgba(3,7,9,.78);border-radius:16px;backdrop-filter:blur(10px)}.stageTimer small,.stageTimer span{display:block;color:#687b81;font-size:9px}.stageTimer strong{display:block;font-size:30px;line-height:1.15;font-variant-numeric:tabular-nums;color:#f0f4f3}.stageArena{position:relative;z-index:2;min-height:610px;padding:22px 30px 100px;display:flex;flex-direction:column;align-items:center;justify-content:center}.moonGlow{position:absolute;width:380px;height:380px;border-radius:50%;top:70px;left:50%;transform:translateX(-50%);background:radial-gradient(circle,#c9d6d0 0 16%,rgba(196,211,204,.18) 17%,transparent 55%);filter:blur(.2px);opacity:.34}.nightMode .moonGlow{opacity:.6;box-shadow:0 0 90px rgba(142,178,205,.14)}.stageCenter{position:relative;z-index:3;width:min(760px,100%);display:flex;flex-direction:column;align-items:center}.phaseTitle{display:flex;align-items:center;gap:10px;margin-bottom:18px;padding:8px 14px;border:1px solid #25383d;background:rgba(3,8,10,.7);border-radius:999px;box-shadow:0 10px 35px rgba(0,0,0,.35)}.phaseTitle span{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:#111a1d;color:#d9e6e6;font-size:12px}.phaseTitle b{font-size:11px;letter-spacing:1px}.nightMode .phaseTitle span{color:#b9d4e8}.votingMode .phaseTitle span{color:#ff9aa5}.discussionMode .phaseTitle span{color:#e8c17a}
.roleReveal{width:min(520px,94vw);padding:34px 28px 30px;text-align:center;border:1px solid #6b7774;border-radius:26px;background:linear-gradient(160deg,rgba(22,25,25,.98),rgba(7,9,10,.98));box-shadow:0 35px 110px rgba(0,0,0,.72),0 0 0 1px rgba(255,255,255,.025);animation:roleReveal .65s cubic-bezier(.2,.85,.25,1) both}.roleReveal:before{content:"";display:block;height:3px;width:70px;margin:0 auto 24px;border-radius:99px;background:#d9d2bc;box-shadow:0 0 28px rgba(217,210,188,.18)}.roleSeal{width:88px;height:88px;margin:0 auto 16px;display:grid;place-items:center;border:1px solid #737b79;border-radius:50%;background:radial-gradient(circle at 35% 30%,#27302f,#0b0e0e);font-size:42px;box-shadow:inset 0 0 30px rgba(255,255,255,.04),0 18px 50px rgba(0,0,0,.5)}.roleReveal h2{font-size:42px;margin:7px 0 5px}.roleTeam{font-size:11px;color:#cbbf9e;letter-spacing:1px}.roleReveal p{color:#a8b4b5;line-height:1.9;max-width:420px;margin:18px auto 22px}.roleReveal .btn{min-width:190px}.introReady{width:min(500px,94vw);padding:40px 28px;text-align:center;border:1px solid #334247;border-radius:25px;background:rgba(6,10,12,.9);box-shadow:0 30px 80px rgba(0,0,0,.5);animation:riseIn .5s ease both}.introGlyph{width:86px;height:86px;display:grid;place-items:center;margin:0 auto 18px;border-radius:50%;border:1px solid #5c696c;color:#e3e6e3;font-size:36px;font-weight:1000;box-shadow:0 0 55px rgba(255,255,255,.05)}.introReady h2{font-size:34px;margin:8px 0}.introReady p{color:#85979c;line-height:1.8}
.gamePlayerStrip{position:relative;z-index:4;width:min(1100px,100%);display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:35px}.gamePlayer{display:flex;align-items:center;gap:7px;padding:6px 9px 6px 6px;border:1px solid #23373d;background:rgba(6,11,13,.82);border-radius:999px;backdrop-filter:blur(8px);transition:.25s}.gamePlayer.me{border-color:#596966;box-shadow:0 0 25px rgba(255,255,255,.04)}.gamePlayer.out{opacity:.28;filter:grayscale(1)}.gameAvatar{width:30px;height:30px;border-radius:50%;overflow:hidden;background:#11191b;border:1px solid #304247}.gameAvatar img{width:100%;height:100%;object-fit:cover}.gamePlayer span{font-size:9px;color:#b5c2c4}.gamePlayer i{font-style:normal;color:#d5c58e;font-size:9px}.mafiaStage .actionPanel{width:min(760px,94vw);margin-top:0;border-color:#28383c;background:rgba(7,11,13,.92);animation:riseIn .45s ease both}.mafiaStage .actionTitle h3{font-size:27px}.mafiaStage .actionBtn{min-height:62px;background:linear-gradient(145deg,#0c1518,#070c0e);border-color:#273c42}.mafiaStage .actionBtn:hover{transform:translateY(-2px);border-color:#9aa8a6}.votingMode .actionBtn.selected{border-color:#e1c17c;background:linear-gradient(145deg,#241d10,#0e0b08);box-shadow:0 0 30px rgba(225,193,124,.10)}
.discussionChat{width:min(760px,94vw);margin:0;border-radius:22px;background:rgba(8,12,13,.94);border-color:#38413f;box-shadow:0 30px 100px rgba(0,0,0,.55);animation:riseIn .45s ease both}.discussionChat .chatMessages{height:320px;background:#050708;border-color:#202b2d}.discussionChat .chatComposer input{border-color:#2c3a3d;background:#080d0f;font-size:15px;min-height:48px}.discussionMode .gamePlayerStrip{margin-top:24px}.stageFooter{position:absolute;z-index:5;left:25px;right:25px;bottom:20px;display:flex;justify-content:space-between;gap:10px}.stageFooter .btn{background:rgba(5,8,9,.85);backdrop-filter:blur(8px)}
@keyframes roleReveal{from{opacity:0;transform:translateY(35px) rotateX(16deg) scale(.96)}to{opacity:1;transform:none}}@keyframes riseIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes pulseNight{0%,100%{opacity:.45}50%{opacity:.75}}.nightMode .moonGlow{animation:pulseNight 4s ease-in-out infinite}
/* Admin usability: explicit navigation and clickable game actions work under strict CSP. */
.gameAdminRow .miniBtns{display:flex;gap:7px;flex-wrap:wrap}.gameAdminRow .miniBtns .btn{min-width:82px}.adminPage .adminTopActions #adminHome{min-width:130px}
@media(max-width:700px){.stageTop{padding:20px 17px 8px}.stageTop h1{font-size:35px}.stageTimer{min-width:95px}.stageTimer strong{font-size:24px}.stageArena{min-height:620px;padding:15px 12px 95px}.moonGlow{width:280px;height:280px;top:75px}.roleReveal{padding:28px 19px}.roleReveal h2{font-size:34px}.roleSeal{width:76px;height:76px;font-size:34px}.gamePlayerStrip{gap:5px}.gamePlayer{padding:4px 7px 4px 4px}.gameAvatar{width:27px;height:27px}.discussionChat .chatMessages{height:270px}.stageFooter{left:12px;right:12px;bottom:12px}.stageFooter .btn{flex:1}.mafiaStage{border-radius:20px;min-height:calc(100vh - 110px)}}

.stageActions{display:flex;align-items:flex-start;gap:8px}.soundBtn{border:1px solid #26373c;background:rgba(3,7,9,.78);color:#cbd7d8;border-radius:14px;padding:12px 11px;font-size:10px;font-weight:900;backdrop-filter:blur(10px)}.soundBtn:hover{border-color:#6d7775;color:#fff}
@media(max-width:700px){.stageActions{gap:5px}.soundBtn{padding:10px 8px;font-size:9px}}

/* WAVE 5.2.6 — dead spectator + readable discussion */
.deadWatcher{margin:14px auto;padding:12px 16px;border:1px solid rgba(255,70,85,.42);background:rgba(100,12,20,.28);color:#ff9ca7;border-radius:12px;font-weight:900;text-align:center;box-shadow:0 0 24px rgba(255,50,70,.08)}.deadWatcher span{color:#ff4f61;margin-left:6px}.player.dead{border-color:rgba(255,70,85,.35)!important;opacity:.78}.player.dead .playerAvatar{filter:grayscale(1);box-shadow:0 0 0 2px rgba(255,70,85,.35)}.chatMessages{height:330px!important}.chatMsg{padding:9px 10px!important;line-height:1.7!important}.chatMsg b{font-size:15px!important}.chatMsg span{font-size:16px!important}.chatComposer input{font-size:16px!important;min-height:48px}.chatComposer .btn{min-height:48px;font-size:14px}
@media(max-width:640px){.chatMessages{height:360px!important}.deadWatcher{font-size:13px}.actionBtn{min-height:52px;font-size:14px}}
