*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#050607;color:#fff;font-family:Arial,Helvetica,sans-serif}body{min-height:100vh}.bg-grid{position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,35,55,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,35,55,.045) 1px,transparent 1px);background-size:38px 38px}.page{display:none;min-height:100vh;position:relative;z-index:1}.page.active{display:block}.top{display:flex;justify-content:space-between;padding:22px 5%;font-size:12px;letter-spacing:3px;color:#ff4050;border-bottom:1px solid #3a1016}.landing{max-width:1200px;margin:auto;padding:40px 5%;display:grid;grid-template-columns:1.15fr .85fr;gap:45px;align-items:center;min-height:calc(100vh - 65px)}.art{filter:drop-shadow(0 0 30px rgba(255,20,40,.18))}.art svg{width:100%;height:auto}.eyebrow{font-size:12px;letter-spacing:3px;color:#ff4050;font-weight:800}.copy h1{font-size:clamp(42px,6vw,78px);line-height:.96;margin:18px 0}.copy h1 b{color:#ff2638}.copy p{font-size:19px;color:#a99da0;margin-bottom:25px}.voice{border:1px solid #6b1a24;background:#17070a;color:#ff6570;padding:12px 18px;border-radius:9px;cursor:pointer;font-weight:700}.roles{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:22px}.role{padding:20px;text-align:left;border:1px solid #5b1820;background:#10070a;color:#fff;border-radius:12px;cursor:pointer}.role:hover{border-color:#ff2638;box-shadow:0 0 20px rgba(255,38,56,.15)}.role strong{display:block;font-size:18px;color:#ff4b58}.role small{display:block;color:#9c898d;margin-top:7px}.panel{width:min(540px,92%);margin:12vh auto;padding:32px;background:#0b0809;border:1px solid #5b1820;border-radius:16px;box-shadow:0 0 45px rgba(255,30,50,.1)}h2{font-size:34px;margin:10px 0 25px}label{display:block;margin:18px 0 7px;color:#a99498;font-size:11px;letter-spacing:2px}input,select{width:100%;padding:15px;border-radius:9px;border:1px solid #452027;background:#080708;color:#fff;font-size:16px}button{font:inherit}.panel #join,.chat form button{width:100%;padding:15px;margin-top:22px;border:1px solid #ff2638;background:#28090d;color:#ff6570;border-radius:9px;font-weight:800;cursor:pointer}.secondary{border:1px solid #452027;background:transparent;color:#aa9ca0;padding:11px;border-radius:9px;cursor:pointer}.panel .secondary{width:100%;margin-top:10px}.small{width:auto!important;margin:0!important}.chat{max-width:1050px;margin:auto;flex-direction:column}.chat.active{display:flex}.chat header{padding:20px;border-bottom:1px solid #3a1016;display:flex;justify-content:space-between;align-items:center;background:#080607}.chat header h2{margin:6px 0;font-size:22px}.chat header small{color:#ff4050}.chat #messages{flex:1;padding:20px;display:flex;flex-direction:column;gap:10px;overflow:auto}.msg{max-width:80%;padding:11px 14px;border:1px solid #3b1a20;background:#100b0d;border-radius:12px}.msg.mine{align-self:flex-end;border-color:#6b1a24;background:#19090d}.meta{font-size:11px;color:#ff5260;margin-bottom:5px}.text{white-space:pre-wrap;word-break:break-word}.chat form{display:flex;gap:10px;padding:14px;border-top:1px solid #3a1016;background:#080607}.chat form input{flex:1}.chat form button{width:auto;margin:0;padding:0 22px}.chat #messages:empty:after{content:"No messages yet — start the conversation.";margin:auto;color:#8f7c80}#error,#homeError{color:#ff6570;min-height:20px;font-size:13px;margin-top:10px}@media(max-width:850px){.landing{grid-template-columns:1fr;padding-top:25px}.art{order:0}.copy{order:1}.copy h1{font-size:44px}.roles{grid-template-columns:1fr}.top{font-size:9px}}.intro-typing{max-width:1200px;margin:18px auto 0;padding:0 5%;font-family:"Courier New",monospace;color:#ff2638;font-size:clamp(15px,2vw,22px);letter-spacing:2px;text-shadow:0 0 12px rgba(255,20,40,.55);min-height:30px}.cursor{animation:blink .7s steps(1) infinite;color:#fff}@keyframes blink{50%{opacity:0}}body.activated .intro-typing{animation:glitch .25s 2}@keyframes glitch{0%,100%{transform:none}30%{transform:translateX(3px)}60%{transform:translateX(-3px)}}.online-bar{margin:0 20px;padding:11px 14px;border:1px solid #3b151b;background:#0b0809;color:#c7b7ba;border-radius:9px;font-size:12px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#39ff78;box-shadow:0 0 10px #39ff78;margin-right:6px}.sep{color:#5f464b;margin:0 8px}.voice-panel{margin:12px 20px 0;padding:14px;border:1px solid #4b171f;background:#0d080a;border-radius:12px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.voice-panel>div:first-child{flex:1;min-width:190px}.voice-panel b{display:block;color:#ff4d5b}.voice-panel small{display:block;color:#927f83;margin-top:4px}.voice-btn{border:1px solid #ff2638;background:#24080d;color:#ff6570;padding:10px 14px;border-radius:8px;font-weight:800;cursor:pointer}.voice-status{width:100%;font-size:12px;color:#aa9a9e}.voice-peers{display:flex;gap:8px;flex-wrap:wrap;padding:8px 20px 0}.voice-peer{display:flex;align-items:center;gap:6px;border:1px solid #3b151b;background:#10090b;padding:7px 10px;border-radius:999px}.voice-peer small{color:#8e7b80}.peer-dot{width:7px;height:7px;border-radius:50%;background:#39ff78}.system-error{color:#ff6570;text-align:center;padding:30px}@media(max-width:700px){.voice-panel{margin:10px}.online-bar{margin:10px}.voice-panel .voice-btn{flex:1}.voice-panel .secondary{flex:0 0 auto}}
/* active members + coins + ludo */
.online-bar{cursor:pointer}.online-bar:hover{filter:brightness(1.15)}
.member-modal,.ludo-modal{position:fixed;inset:0;background:rgba(0,0,0,.82);display:none;align-items:center;justify-content:center;z-index:50;padding:18px}.member-modal.show,.ludo-modal.show{display:flex}.modal-card{width:min(720px,96vw);max-height:88vh;overflow:auto;background:#100608;border:1px solid #f33;border-radius:18px;box-shadow:0 0 45px #900;padding:22px}.modal-card h2{margin-top:0;color:#ff4040}.member-row{display:flex;justify-content:space-between;gap:12px;padding:12px;border-bottom:1px solid #3a1717}.online-dot{color:#43ff73}.close-modal{float:right;background:#280b0b;color:#fff;border:1px solid #f33;border-radius:8px;padding:8px 12px}.wallet{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0}.coin{color:#ffd54a;font-weight:800}.ludo-btn{background:#7d0b0b;border:1px solid #ff4a4a;color:#fff;border-radius:10px;padding:10px 14px;font-weight:800}.ludo-board{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px auto;max-width:360px}.ludo-cell{aspect-ratio:1;background:#220b0b;border:1px solid #6d2525;display:flex;align-items:center;justify-content:center;font-size:22px}.ludo-cell.path{background:#180f0f}.ludo-actions{display:flex;gap:10px;flex-wrap:wrap}.notice{font-size:12px;color:#bbb}

/* Games area */
.tabs{display:flex;gap:8px;padding:10px 20px;background:#080607;position:sticky;top:0;z-index:5}.tab{flex:1;border:1px solid #452027;background:#10070a;color:#bbaeb1;padding:12px;border-radius:9px;cursor:pointer;font-weight:800}.tab.active{border-color:#ff2638;color:#fff;background:#25090d;box-shadow:0 0 15px rgba(255,30,50,.12)}.tabPanel{display:none;flex:1;min-height:0}.tabPanel.active{display:flex;flex-direction:column}.wallet{margin:10px 20px;padding:11px;border:1px solid #4b171f;background:#0d080a;border-radius:10px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.coin{color:#ffd35a;font-weight:900}.notice{color:#a9999d;font-size:12px}.ludo-btn,.game-btn{border:1px solid #ff2638;background:#24080d;color:#ff6570;padding:10px 14px;border-radius:8px;font-weight:800;cursor:pointer}.online-bar{cursor:pointer}.games-wrap{padding:20px}.gameGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.gameCard{min-height:120px;border:1px solid #4b171f;background:#10070a;color:#fff;border-radius:12px;cursor:pointer;font-size:28px}.gameCard b,.gameCard small{display:block}.gameCard b{font-size:14px;color:#ff4d5b;margin-top:8px}.gameCard small{font-size:11px;color:#9c898d;margin-top:4px}.gameCard:hover{border-color:#ff2638;box-shadow:0 0 18px rgba(255,20,40,.18)}.gameBox{margin-top:16px;padding:20px;border:1px solid #4b171f;background:#0d080a;border-radius:12px;min-height:260px}.gameBox input{max-width:150px}.gameBox .action{margin:6px;padding:11px 15px}.gameLogin{max-width:520px;margin:30px auto;padding:20px;border:1px solid #4b171f;background:#0d080a;border-radius:12px}.gameLogin input{margin:7px 0}.gameMsg{color:#ff6570;min-height:20px}.board3{display:grid;grid-template-columns:repeat(3,70px);gap:5px;margin:15px 0}.board3 button{height:70px;background:#12090b;border:1px solid #5b1820;color:#fff;font-size:28px;cursor:pointer}.diceFace{font-size:70px;margin:15px}.reactBox{height:130px;border:1px solid #5b1820;border-radius:12px;display:flex;align-items:center;justify-content:center;cursor:pointer;background:#12090b}.reactBox.go{background:#123d1f}.hidden{display:none!important}.modal-card{position:relative}.member-modal,.ludo-modal{display:none}.member-modal.show,.ludo-modal.show{display:flex}.ludo-board{display:grid;grid-template-columns:repeat(3,70px);gap:5px;margin:15px 0}.ludo-cell{height:70px;border:1px solid #4b171f;background:#12090b;display:flex;align-items:center;justify-content:center;font-size:28px}.ludo-cell.path{box-shadow:0 0 15px rgba(255,30,50,.25);border-color:#ff2638}.ludo-actions{display:flex;gap:8px}@media(max-width:700px){.gameGrid{grid-template-columns:repeat(2,1fr)}.tabs{padding:8px}.online-bar{margin:8px}.wallet{margin:8px}.games-wrap{padding:10px}}

/* Clean class layout: Chat + VC tabs, games shown as a separate section below. */
.game-section{margin:16px 20px 30px;padding:16px;border:1px solid #243952;border-radius:14px;background:rgba(9,18,31,.96)}
.section-title{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:2px 2px 12px;border-bottom:1px solid #243952;margin-bottom:12px}
.section-title span{font-weight:900;letter-spacing:1.5px;color:#55aaff}.section-title small{color:#9fb0c5}
.game-section .gameLogin,.game-section .games-wrap{margin:0;max-width:none}
.game-section .gameGrid{grid-template-columns:repeat(4,1fr)}
#chatTab{min-height:430px}
@media(max-width:700px){.game-section{margin:10px}.game-section .gameGrid{grid-template-columns:repeat(2,1fr)}.section-title{align-items:flex-start;flex-direction:column;gap:4px}}

/* Final clean layout */
.top-right{display:flex;align-items:center;gap:12px}.top-wallet{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid #66551c;border-radius:999px;background:#17170e;color:#ffd45a;letter-spacing:1px;font-size:12px}.top-wallet em{font-style:normal;font-size:9px;color:#fff;background:#6b5511;padding:3px 6px;border-radius:999px}.game-section{max-width:1100px;margin:18px auto 40px;padding:18px}.game-section:before{content:'🎮 GAME SECTION';display:block;color:#55aaff;font-size:18px;font-weight:900;letter-spacing:2px;margin:0 0 14px;padding-bottom:12px;border-bottom:1px solid #243952}.game-section .gameLogin,.game-section .games-wrap{margin:0}.game-section .wallet{margin-top:0}.chat .game-section{display:none}@media(max-width:700px){.top-right{gap:5px}.top-wallet{padding:6px 8px}.top-wallet em{display:none}.game-section{margin:12px 10px 30px;padding:12px}}

/* Home layout update: auth controls at the very top */
.top-auth{border:1px solid #34506b;background:#091321;color:#9fd2ff;padding:7px 11px;border-radius:8px;cursor:pointer;font-weight:900;font-size:10px;letter-spacing:1px}.top-auth:hover{border-color:#55aaff;box-shadow:0 0 14px rgba(85,170,255,.18)}.top-auth.register{color:#55aaff}.top-auth.login{color:#d7e8ff}.home-game-section{max-width:1100px;margin:0 auto 38px;padding:0 5%}.home-game-section .game-section{margin:0}.home-game-section + .game-section{margin-top:0}
#home .game-section{max-width:1100px;margin:8px auto 40px}
@media(max-width:700px){.top{padding:12px 3%;gap:6px}.top-right{flex-wrap:wrap;justify-content:flex-end}.top-auth{padding:6px 8px;font-size:9px}}
.rpsChoices{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.rpsChoices .rps{flex:1;min-width:150px}.gameCard small{display:block}


/* Coin leaderboard */
.leaderboard-section{max-width:900px;margin:28px auto;padding:22px;border:1px solid rgba(0,255,170,.22);border-radius:18px;background:rgba(5,10,18,.72);box-shadow:0 0 30px rgba(0,255,170,.06)}
.leader-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.leader-head h2{margin:4px 0 6px}.leaderboard{display:grid;gap:8px}.leader-row{display:grid;grid-template-columns:60px 1fr auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(255,255,255,.025)}.rank{font-weight:800}.leader-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leader-coins{font-weight:800}.leader-empty{padding:18px;text-align:center;opacity:.7}@media(max-width:600px){.leader-head{align-items:flex-start;flex-direction:column}.leader-row{grid-template-columns:42px 1fr auto;font-size:14px}}
