/* LULPK3X — THE EXPERIENCE AND REACTIVE SOUNDSTAGE */
.battle-arena,.visualizer-section{position:relative;isolation:isolate;background:#030b15;color:#f6faff;overflow:hidden}
.battle-arena{padding:120px 0 110px;background:radial-gradient(ellipse at 51% 35%,#2435657c,transparent 60%),radial-gradient(ellipse at 10% 80%,#0a4d6870,transparent 45%),#030913}
.battle-arena:after{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(#b8e9ff06 1px,transparent 1px),linear-gradient(90deg,#b8e9ff06 1px,transparent 1px);background-size:65px 65px;mask-image:linear-gradient(black,transparent 92%)}
.battle-haze{position:absolute;pointer-events:none;left:47%;top:20%;height:65%;width:4px;transform:rotate(16deg);background:#9a85ff25;filter:blur(38px);box-shadow:0 0 180px 80px #9381ff42}
.battle-container,.visualizer-shell{width:var(--page);margin:auto;position:relative;z-index:2}
.battle-top,.visualizer-top{display:flex;align-items:end;justify-content:space-between;gap:35px;margin-top:35px}
.battle-top h2,.visualizer-top h2{font-size:clamp(61px,10.5vw,146px);margin:17px 0 12px;line-height:.9}
.battle-top p,.visualizer-top p{max-width:335px;line-height:1.85;color:#a9c1d2;font-size:14px;margin:0 0 18px}
.battle-matchbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 0 17px;border-bottom:1px solid #bbe7ff38;margin-top:20px}
.battle-round{font-size:12px;letter-spacing:2px;font-weight:900}.battle-round em{font-style:normal;color:#8fa8bc}
.battle-progress{font-size:10px;font-weight:800;letter-spacing:1.5px;color:#a9c7d7}
.battle-dots{display:flex;gap:8px;align-items:center}.battle-dot{border:1px solid #5b93b9;border-radius:50%;height:8px;width:8px;background:#233d53;transition:background .3s,transform .3s}.battle-dot.current{background:#8fedff;transform:scale(1.4);box-shadow:0 0 15px #93efff90}.battle-dot.done{background:#6cf3af;border-color:#6cf3af}
.battle-stage{display:grid;grid-template-columns:minmax(0,1fr) 80px minmax(0,1fr);gap:0;margin:24px auto 0;align-items:center}
.battle-contender{min-width:0;position:relative;background:linear-gradient(170deg,#0c1d2c,#0a0f1c);border:1px solid #77bde94a;padding:13px;box-shadow:0 30px 75px #0009;transition:border .35s,transform .4s,box-shadow .4s;isolation:isolate}
.battle-contender-a{--bc:#6cddf9}.battle-contender-b{--bc:#bf92ff}.battle-contender-b{background:linear-gradient(165deg,#1b1430,#111023);border-color:#b995ff5d}
.battle-contender.picked{border-color:var(--bc);box-shadow:0 27px 85px #000a,0 0 45px color-mix(in srgb,var(--bc),transparent 72%)}
.battle-contender:hover{transform:translateY(-5px);border-color:var(--bc)}
.battle-card-label{display:flex;justify-content:space-between;gap:12px;margin:2px 6px 12px;font-size:10px;font-weight:900;letter-spacing:2px}.battle-side-tag{color:var(--bc);font-size:9px}
.battle-play{display:block;position:relative;height:clamp(270px,31vw,435px);width:100%;background:#03080e;border:0;overflow:hidden;padding:0;cursor:pointer;border-radius:2px}
.battle-play:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0002,transparent 35%,#030910c9);z-index:1;pointer-events:none}
.battle-play img{height:100%;width:100%;object-fit:cover;display:block;object-position:center 30%;filter:brightness(.77) saturate(.87);transition:filter .6s,transform .9s var(--ease)}
.battle-play:hover img,.battle-play:focus-visible img{filter:brightness(.97) saturate(1.15);transform:scale(1.065)}
.battle-video-gloss{position:absolute;inset:0;z-index:2;background:radial-gradient(circle at 40% 37%,#a3eeff1b,transparent 49%);pointer-events:none;mix-blend-mode:screen}
.battle-play-round{position:absolute;top:48%;left:50%;transform:translate(-50%,-50%);width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:#020b19a1;border:1px solid #e6f7ff98;z-index:3;font-size:21px;color:#fff;padding-left:4px;backdrop-filter:blur(10px);transition:.32s;box-shadow:0 0 35px #a0e8ff39}
.battle-play:hover .battle-play-round{transform:translate(-50%,-50%) scale(1.15);background:var(--bc);color:#050a12;box-shadow:0 0 60px var(--bc)}
.battle-watch-hint{position:absolute;bottom:17px;left:17px;z-index:3;font-size:9px;letter-spacing:2px;font-weight:900;color:#e0f7ff}
.battle-info{display:flex;gap:15px;align-items:center;justify-content:space-between;margin:14px 5px 3px}.battle-info strong{font:900 clamp(23px,2.5vw,43px)/.95 Impact,'Arial Black',sans-serif;letter-spacing:.2px;max-width:56%}
.battle-vote{flex:0 0 auto;border:1px solid var(--bc);background:color-mix(in srgb,var(--bc),transparent 88%);color:#f6fbff;font-size:10px;letter-spacing:1px;font-weight:900;padding:15px 18px;min-height:45px;transition:transform .3s,background .3s,box-shadow .3s}
.battle-vote:hover{transform:translateY(-3px);background:color-mix(in srgb,var(--bc),transparent 68%);box-shadow:0 0 26px color-mix(in srgb,var(--bc),transparent 76%)}
.battle-contender.picked .battle-vote{background:var(--bc);color:#04101a}
.battle-versus{position:relative;z-index:3;margin:0 -30px;width:140px;text-align:center;pointer-events:none;text-shadow:0 5px 35px #000;filter:drop-shadow(0 0 32px #bc9afa55)}
.battle-versus span{display:block;font:900 clamp(65px,7vw,110px)/.9 Impact,'Arial Black',sans-serif;letter-spacing:-3px;background:linear-gradient(#fff,#aff5ff 43%,#b8a0ff);background-clip:text;-webkit-background-clip:text;color:transparent;transform:skew(-9deg)}
.battle-versus small{display:block;letter-spacing:2px;color:#ebeeff;font-size:9px;font-weight:900;margin-top:10px}
.battle-result-row{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:27px 0;border-bottom:1px solid #9dbfe72b}
.battle-feedback{color:#b6cedc;font-size:13px;font-weight:650;min-height:24px}.battle-feedback.has-pick{color:#a4f5e5}
.battle-navigator{display:flex;gap:10px}.battle-nav{padding:14px 19px;font-size:10px;font-weight:900;letter-spacing:1px;border:1px solid #95bcd657;background:#0d1f31;color:#edf8ff;transition:.28s;white-space:nowrap}.battle-nav:hover{background:#203d55;border-color:#92eaff}.battle-nav-next{background:#8adfff;color:#071324;border-color:#8adfff}.battle-nav-next:hover{background:#b6f0ff;color:#071324}
.battle-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:24px;padding:22px 10px;background:linear-gradient(90deg,#12304d7d,#2e204960);border:1px solid #a9e5ff27}.battle-stats>div{text-align:center;min-width:0}.battle-stats strong{display:block;color:#e8faff;font:900 clamp(29px,4vw,54px)/1 Impact,Arial,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.battle-stats small{display:block;color:#9dbfd3;letter-spacing:1.5px;font-size:9px;font-weight:850;margin-top:10px}
.battle-disclaimer{color:#829bb0;font-size:11px;line-height:1.7;text-align:center;margin:22px auto 0}
.visualizer-section{padding:110px 0 120px;background:radial-gradient(ellipse at 70% 50%,#162855a6,transparent 62%),linear-gradient(115deg,#031523,#070a19 70%)}
.visualizer-top h2{font-size:clamp(62px,9.7vw,140px)}
.visualizer-panel{position:relative;margin-top:40px;border:1px solid #72d5ff63;background:#030d1b;min-height:410px;overflow:hidden;box-shadow:0 35px 105px #0008,0 0 65px #3d98e51a;isolation:isolate}
.visualizer-panel-bg{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 56%,#234b8654,transparent 65%),repeating-linear-gradient(90deg,transparent 0 52px,#8be8ff09 53px,transparent 54px),linear-gradient(180deg,#070d1e,#071827);z-index:-1}
.visualizer-panel:after{position:absolute;content:"";inset:0;pointer-events:none;border:1px solid #fff1;box-shadow:inset 0 0 60px #0008}
.visualizer-top-meta{position:absolute;z-index:2;left:24px;top:21px;color:#aed7e5;font-size:9px;font-weight:900;letter-spacing:2.6px}.visualizer-top-meta i{color:#81e5ff;font-style:normal;margin:0 6px}
#music-visualizer{display:block;width:100%;height:clamp(260px,30vw,390px);position:relative;z-index:1;transform:translateZ(0)}
.visualizer-center-mark{position:absolute;z-index:1;left:50%;top:43%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;text-shadow:0 0 40px #01060e}
.visualizer-center-mark span{font:900 clamp(53px,8vw,115px)/1 Impact,'Arial Black',sans-serif;font-style:italic;letter-spacing:-.1em;background:linear-gradient(140deg,#f4fcff,#79dbff 50%,#ae8bf8);background-clip:text;-webkit-background-clip:text;color:transparent;opacity:.12}
.visualizer-center-mark small{display:block;font-size:9px;letter-spacing:3px;font-weight:900;color:#99b3cfbb;margin-top:7px}
.visualizer-bottom{position:relative;z-index:3;border-top:1px solid #a9dfff30;display:flex;justify-content:space-between;gap:20px;align-items:center;padding:22px 25px;background:#061323ca}
.visualizer-track-info{display:flex;align-items:center;gap:14px}.visualizer-led{width:9px;height:9px;border-radius:50%;background:#526a83;box-shadow:0 0 0 5px #5b7c8e21}.visualizer-led.playing{background:#6bf5b5;box-shadow:0 0 14px #6bf5b580,0 0 0 5px #6bf5b515}
.visualizer-track-info strong,.visualizer-track-info small{display:block}.visualizer-track-info strong{font-size:13px;letter-spacing:1.3px}.visualizer-track-info small{font-size:10px;color:#9ab6cc;letter-spacing:1.1px;margin-top:6px}
.visualizer-controls{display:flex;gap:10px}.visualizer-btn{background:#102539;color:#e7f7ff;border:1px solid #7cd6f45b;padding:13px 17px;letter-spacing:1.2px;font-weight:900;font-size:10px;min-height:45px;transition:transform .3s,background .3s,box-shadow .3s}.visualizer-btn:hover{transform:translateY(-3px);background:#214660;box-shadow:0 0 27px #71e4ff27}.visualizer-btn-primary{background:#8ae6ff;color:#031323;border-color:#8ae6ff}.visualizer-btn-primary:hover{background:#b5efff;color:#031323}
.visualizer-caption{display:flex;justify-content:space-between;gap:16px;margin-top:17px;color:#7995aa;letter-spacing:1.3px;font-size:9px;font-weight:800}
#lobby-mini-spectrum{width:62px;height:26px;display:block;align-self:center;flex-shrink:0;pointer-events:none}.lobby-eq{display:none}
.section-rail .rail-link{min-height:31px}.navlinks a[href="#visualizer"]{display:none}
@media(max-width:1200px){.navlinks{gap:12px!important}.navlinks a{font-size:9px!important}}
@media(max-width:990px){.battle-stage{grid-template-columns:minmax(0,1fr) 58px minmax(0,1fr)}.battle-versus{width:110px;margin:0 -26px}.battle-play{height:350px}.battle-info{display:block}.battle-info strong{display:block;max-width:100%;margin-bottom:14px}.battle-vote{width:100%}.battle-top h2{font-size:clamp(59px,9.3vw,105px)}.visualizer-top h2{font-size:clamp(56px,9.2vw,108px)}}
@media(max-width:760px){.battle-arena,.visualizer-section{padding:82px 0}.battle-top,.visualizer-top{display:block}.battle-top h2,.visualizer-top h2{font-size:clamp(59px,13vw,99px)}.battle-top p,.visualizer-top p{margin-top:15px}.battle-matchbar{gap:12px;flex-wrap:wrap}.battle-dots{order:3;flex:0 0 100%;justify-content:center;margin-top:5px}.battle-progress{font-size:9px}.battle-stage{grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr);gap:0}.battle-contender{padding:6px}.battle-card-label{font-size:8px;letter-spacing:.3px;margin:6px 3px}.battle-side-tag{display:none}.battle-play{height:clamp(190px,51vw,295px)}.battle-play-round{width:45px;height:45px;font-size:16px}.battle-watch-hint{bottom:10px;left:7px;font-size:7px;letter-spacing:1px}.battle-versus{width:67px;margin:0 -17px}.battle-versus span{font-size:62px}.battle-versus small{font-size:7px;letter-spacing:.5px;margin-top:5px}.battle-info{margin:12px 3px 4px}.battle-info strong{font-size:clamp(21px,5.1vw,30px);min-height:44px}.battle-vote{padding:11px 3px;font-size:9px;min-height:40px}.battle-navigator{width:100%}.battle-nav{flex:1;padding:13px 9px;font-size:9px}.battle-stats{padding:19px 4px}.battle-stats small{font-size:8px;letter-spacing:.7px}.visualizer-panel{min-height:0}.visualizer-bottom{padding:15px;flex-direction:column;align-items:stretch}.visualizer-controls{width:100%}.visualizer-btn{flex:1;padding:12px 7px;font-size:9px}.visualizer-caption{display:block;line-height:2.1}.visualizer-top-meta{left:13px;top:13px;font-size:8px}.visualizer-center-mark{top:38%}#lobby-mini-spectrum{display:none}}
@media(prefers-reduced-motion:reduce){.battle-haze{filter:none}.battle-contender,.battle-play img,.visualizer-btn{transition:none!important}.visualizer-center-mark{opacity:.45}}
