html,body{margin:0;height:100%;overflow:hidden;background:#04140a;font-family:'Segoe UI',system-ui,Arial,sans-serif}
#scene{position:fixed;inset:0;display:block}
#hud{position:fixed;top:0;left:0;right:0;display:flex;justify-content:center;padding:18px;pointer-events:none;z-index:5}
#eventTitle{color:#fff;font-weight:900;letter-spacing:2px;font-size:1.4rem;text-shadow:0 3px 12px rgba(0,0,0,.6);background:rgba(0,0,0,.28);padding:8px 22px;border-radius:30px;border:1px solid rgba(255,255,255,.15)}

.overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:10;background:rgba(3,10,6,.72);backdrop-filter:blur(3px)}
.hidden{display:none !important}

.lobby-card{text-align:center;color:#eafff0;background:rgba(10,30,18,.85);border:1px solid rgba(255,255,255,.12);border-radius:24px;padding:44px 54px;box-shadow:0 30px 90px rgba(0,0,0,.5)}
.lobby-logo{max-height:56px;max-width:260px;margin-bottom:16px}
.lobby-card h1{margin:10px 0 6px;font-size:1.9rem}
.brand-banner{position:fixed;left:0;right:0;bottom:0;z-index:4;display:flex;justify-content:center;pointer-events:none}
.brand-banner img{max-width:100%;max-height:110px;display:block;box-shadow:0 -10px 40px rgba(0,0,0,.5)}
.lobby-card p{color:#9fc9ae;margin:0 0 20px}
.pulse-dot{width:14px;height:14px;background:#33d17a;border-radius:50%;margin:0 auto 14px;box-shadow:0 0 0 0 rgba(51,209,122,.7);animation:pulse 1.6s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(51,209,122,.6)}70%{box-shadow:0 0 0 22px rgba(51,209,122,0)}100%{box-shadow:0 0 0 0 rgba(51,209,122,0)}}
#qrcode{display:flex;justify-content:center;margin:10px 0;background:#fff;padding:14px;border-radius:14px;width:fit-content;margin-left:auto;margin-right:auto}
.reg-url{color:#ffd400;font-weight:700;letter-spacing:.5px;margin-top:8px}

#playerBanner{position:fixed;top:90px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,#2fae5a,#33d17a);color:#04170c;font-weight:800;padding:12px 30px;border-radius:30px;z-index:6;box-shadow:0 10px 30px rgba(0,0,0,.35);animation:slideDown .4s ease}
@keyframes slideDown{from{transform:translate(-50%,-30px);opacity:0}to{transform:translate(-50%,0);opacity:1}}

#confettiCanvasWrap{position:absolute;inset:0}
#confettiCanvas{width:100%;height:100%}
.prize-card{position:relative;text-align:center;color:#fff;background:radial-gradient(circle at 50% 0%,#1c3d2c,#0b1f16 70%);border:2px solid #ffd400;border-radius:28px;padding:50px 70px;box-shadow:0 0 90px rgba(255,212,0,.35)}
.trophy{font-size:5rem}
.prize-photo{width:180px;height:180px;object-fit:cover;border-radius:20px;margin:0 auto 10px;display:block;border:3px solid #ffd400;box-shadow:0 10px 40px rgba(0,0,0,.4)}
.prize-card h1{margin:6px 0 14px;font-size:2.2rem;color:#ffd400}
.prize-name{font-size:1.6rem;font-weight:800;margin-bottom:6px}
.prize-desc{color:#b7d9c5;font-size:1.05rem;max-width:480px}
