body.rave-world{background:#08020e;color:#fff;overflow-x:hidden;padding-bottom:100px}body.rave-world:before{content:'';position:fixed;inset:0;z-index:-2;background:linear-gradient(#05010b45,#05010b9c),url('assets/rave-immersive.png') center/cover;filter:saturate(1.2)}.world-lights{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;mix-blend-mode:screen}.world-lights i{position:absolute;top:-10%;left:var(--x);width:24%;height:140%;transform-origin:50% 0;clip-path:polygon(49% 0,51% 0,100% 100%,0 100%);background:linear-gradient(var(--c),transparent 80%);opacity:.25;animation:world-scan var(--s) ease-in-out infinite alternate;animation-delay:var(--d)}@keyframes world-scan{from{transform:rotate(-40deg);opacity:.15}to{transform:rotate(40deg);opacity:.45}}.rave-world header{background:#08020bba;border-bottom:1px solid #e452dc;box-shadow:0 0 28px #d919ac45;z-index:20}.rave-world header strong{font-size:25px;letter-spacing:-1px;text-shadow:0 0 14px #ff3ed2}.rave-world nav a{font-weight:800;text-transform:uppercase;font-size:12px;padding:8px 0;border-bottom:2px solid transparent}.rave-world nav a:hover,.rave-world nav a[aria-current]{color:#ff57df;border-color:#ff57df}.rave-world .hero{background:linear-gradient(#15012815,#06010a55);min-height:470px;padding:65px 20px 45px}.rave-world .hero:before{display:none}.rave-world .hero img{max-height:200px;width:min(500px,75vw);mix-blend-mode:screen;filter:drop-shadow(0 0 20px #ed26d9)}.rave-world h1{font-size:clamp(42px,6vw,90px);font-weight:1000;line-height:1;letter-spacing:-.045em;text-shadow:0 0 25px #d817be90}.rave-world h2{font-size:clamp(28px,3vw,42px);font-weight:900;letter-spacing:-.025em}.rave-world .lead{font-size:22px;color:#fff;text-shadow:0 2px 5px black}.rave-world main{position:relative;z-index:2;max-width:1340px}.rave-world section:not(.hero){padding:30px;background:linear-gradient(120deg,#160824a6,#050b1bb3);border:1px solid #a346b35c;border-radius:16px;backdrop-filter:blur(7px);box-shadow:0 10px 40px #0007;margin-bottom:35px}.rave-world .track-grid{grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:25px}.rave-world .track-card,.rave-world .card,.rave-world .join-panel,.rave-world .action-panel,.rave-world .form-wrap,.rave-world .shop-basket{background:linear-gradient(140deg,#3a103bcc,#070f21d9);border:1px solid #cc65eaa1;box-shadow:0 0 15px #af27cc26;transition:transform .25s,box-shadow .25s}.rave-world .track-card:hover,.rave-world .card:hover{transform:translateY(-7px);box-shadow:0 0 28px #13c5ff55;border-color:#70e7ff}.rave-world .track-card h3{font-size:23px}.rave-world .pill,.rave-world button:not(:disabled){background:linear-gradient(120deg,#e113bc,#7825cf);color:#fff;border:1px solid #ee72e5;box-shadow:0 0 12px #d61fd647;font-weight:800}.rave-world .pill{display:inline-block;padding:15px 23px}.rave-world .filters button.active{background:#00c8ef;color:#061327;border-color:#88ebff}.rave-world input,.rave-world textarea,.rave-world select{background:#060919db!important;border:1px solid #986bc4!important;color:white!important;accent-color:#ff29cf}.rave-world input:focus,.rave-world textarea:focus{outline:2px solid #46d9ff;box-shadow:0 0 18px #00c7ff44}.rave-world .muted,.rave-world small{color:#e0d4ed}.rave-world .tags span{background:#0a032caf;border:1px solid #f36bde;box-shadow:0 0 14px #d026c65e;font-weight:800}.rave-world footer{position:relative;background:#09020bb0}.rave-world .hwc-audio-bar{background:#06020de0;border-top:1px solid #e352da;backdrop-filter:blur(12px);z-index:30}.dance-logo{transform-origin:50% 70%;will-change:transform;animation:logo-dance 12s ease-in-out infinite;animation-delay:-1s}@keyframes logo-dance{0%,12%,100%{transform:translateY(0) rotate(0) scale(1)}18%{transform:translateY(-14px) rotate(-8deg) scale(1.04)}24%{transform:translateY(0) rotate(8deg)}30%{transform:translateY(-16px) rotate(-8deg)}36%{transform:translateY(0) rotate(0)}42%{transform:translateY(-15px) rotate(360deg) scale(1.08)}48%{transform:translateY(0) rotate(360deg)}55%{transform:translateY(20px) rotate(340deg) scale(.95)}61%{transform:translateY(20px) rotate(380deg) scale(.95)}67%{transform:translateY(-8px) rotate(360deg)}75%{transform:rotate(360deg) scale(1.09)}85%{transform:rotate(360deg) scale(1)}99%{transform:rotate(360deg)}}.dance-control{display:inline-block;margin:18px 8px 0;padding:10px 16px;border-radius:25px;font-size:12px}.world-paused .dance-logo,.world-paused .world-lights i{animation-play-state:paused}.world-paused .dance-logo{transform:none}.logo-show{position:fixed;inset:0;z-index:90;display:grid;place-items:center;background:#090214dd;backdrop-filter:blur(9px)}.logo-show[hidden]{display:none}.logo-show img{width:min(700px,85vw);mix-blend-mode:screen;filter:drop-shadow(0 0 25px #ef26e5)}.logo-show button{position:absolute;right:25px;top:25px;padding:15px;color:#fff;background:#521452;border:1px solid #ff65de;cursor:pointer}.show-launch{position:fixed;right:20px;top:80px;z-index:25;padding:10px 17px;border-radius:25px;color:white;background:#5b125bce;border:1px solid #e65bdb;cursor:pointer;font-weight:bold;font-size:12px}@media(max-width:700px){.rave-world section:not(.hero){padding:20px}.rave-world .hero{min-height:390px}.rave-world header strong{font-size:20px}.show-launch{position:relative;top:auto;right:auto;margin:12px}.rave-world .track-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}}@media(prefers-reduced-motion:reduce){.dance-logo,.world-lights i{animation:none!important}.rave-world .card:hover,.rave-world .track-card:hover{transform:none}}

/* Bright stage beams and scattered light bursts across every public page. */
.world-lights{z-index:4;mix-blend-mode:screen}.world-lights i{opacity:.6;background:linear-gradient(var(--c),#ffffff20 45%,transparent 90%);filter:drop-shadow(0 0 12px var(--c));width:19%}
@keyframes world-scan{0%{transform:rotate(-48deg);opacity:.35}45%{opacity:.85}100%{transform:rotate(48deg);opacity:.4}}
.rave-bursts{position:fixed;inset:0;z-index:5;pointer-events:none;overflow:hidden;mix-blend-mode:screen}.rave-bursts b{position:absolute;left:var(--x);top:var(--y);width:45vw;height:45vw;max-width:680px;max-height:680px;transform:translate(-50%,-50%);background:radial-gradient(circle,#fff9 0%,var(--c) 6%,transparent 60%);opacity:0;animation:light-burst 9s ease-out infinite;animation-delay:var(--d)}
@keyframes light-burst{0%,7%,100%{opacity:0;scale:.65}2%{opacity:.68;scale:1}5%{opacity:.15;scale:1.2}}
.world-paused .rave-bursts b,.paused .rave-bursts b{animation-play-state:paused;opacity:0}.paused .world-lights i{animation-play-state:paused}
.logo-show .dance-logo{animation:breakdance-show 9s ease-in-out infinite;transform-origin:50% 65%}
@keyframes breakdance-show{0%,100%{transform:translateY(0) rotate(0) scale(1)}10%{transform:translateY(-35px) rotate(-12deg) scale(1.05)}17%{transform:translateY(0) rotate(12deg)}24%{transform:translateY(-25px) rotate(-8deg)}34%{transform:translateY(40px) rotate(-70deg) scale(.85)}43%{transform:translateY(40px) rotate(-70deg) scale(.85)}57%{transform:translateY(0) rotate(360deg) scale(.95)}70%{transform:translateY(-35px) rotate(360deg) scale(1.1)}85%{transform:translateY(0) rotate(360deg) scale(1)}}
@media(prefers-reduced-motion:reduce){.world-lights,.rave-bursts{display:none}.logo-show .dance-logo{animation:none!important}}

/* Homepage-only dance and independent, faster stage fixtures. */
.rave-world .hero img{animation:none!important;transform:none!important}.world-lights i{animation-duration:var(--s);animation-delay:var(--d)}
.beat-logo{animation:front-logo-groove 4.2s ease-in-out infinite;transform-origin:50% 65%}
@keyframes front-logo-groove{0%,100%{transform:translateY(0) rotate(0) scale(var(--beat-scale,1))}16%{transform:translateY(-7px) rotate(-2deg) scale(var(--beat-scale,1))}33%{transform:translateY(0) rotate(2deg) scale(var(--beat-scale,1))}50%{transform:translateY(-10px) rotate(-1.5deg) scale(var(--beat-scale,1))}68%{transform:translateY(0) rotate(2deg) scale(var(--beat-scale,1))}83%{transform:translateY(-5px) rotate(-1deg) scale(var(--beat-scale,1))}}
.paused .beat-logo{animation-play-state:paused}.paused .world-lights i{animation-play-state:paused}
.rave-bursts b{width:31vw;height:31vw;animation-duration:7.2s;background:radial-gradient(circle,#fffd 0%,var(--c) 8%,transparent 65%)}
@keyframes light-burst{0%,9%,100%{opacity:0;scale:.65}2%{opacity:.95;scale:1}6%{opacity:.25;scale:1.2}}
.rave-lights>i{animation-duration:calc(var(--speed) * .34);animation-delay:var(--delay)}
@media(prefers-reduced-motion:reduce){.beat-logo{animation:none!important}.world-lights,.rave-bursts{display:none}}

/* The DJ stays in the background. Only the separate logo moves. */
.beat-logo{background:none!important;mask-image:none!important;animation:none!important;filter:none!important;transform:none!important;overflow:visible;left:32%;top:14%;width:37%;height:30%}
.beat-logo>img{display:block;width:100%;height:100%;object-fit:contain;animation:front-logo-groove 4.2s ease-in-out infinite;transform-origin:50% 65%;filter:brightness(var(--beat-brightness,1)) drop-shadow(0 0 var(--beat-glow,8px) #ff29d7)}
.official-stamp{position:absolute;left:32%;top:14%;width:37%;height:30%;z-index:3;pointer-events:none;mix-blend-mode:screen}.official-stamp img{width:100%;height:100%;clip-path:polygon(60% 60%,95% 58%,96% 96%,60% 97%)}
.paused .beat-logo>img{animation-play-state:paused}
.nav-logo{display:block;flex-shrink:0;width:120px;height:45px}.nav-logo img{width:100%;height:100%;object-fit:contain;mix-blend-mode:screen}
header{height:auto;min-height:64px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}header nav{flex-wrap:wrap;justify-content:center;min-width:0}body{overflow-x:hidden}img,video{max-width:100%}.portals,.quick{max-width:calc(100% - 32px)}.portals>a,.quick>a{min-width:0}.player{flex-wrap:wrap}.now{min-width:160px}main{max-width:100%}.rave-world main{width:min(100%,1340px)}
@media(min-width:1101px){.player{flex-wrap:nowrap}.rave-world .hero{min-height:360px}}
@media(max-width:900px){header nav{gap:12px}.portals>a{padding:15px;gap:15px}.portals h1,.portals h2{font-size:24px}.quick{grid-template-columns:repeat(2,1fr)}main{padding-bottom:190px}}
@media(max-width:700px){main{background-size:100% 100%}.beat-logo{display:block;left:20%;top:10%;width:60%;height:19%}.official-stamp{left:20%;top:10%;width:60%;height:19%}.rave-world main{padding:24px 14px 130px}.rave-world .hero{min-height:260px;padding:45px 15px}.nav-logo{width:95px;height:36px}.player{gap:9px}.player .now{font-size:12px}.controls input{width:70px}}
@media(prefers-reduced-motion:reduce){.beat-logo>img{animation:none!important;transform:none!important}}

/* Colour-shifting logo; fixtures can originate anywhere around the crowd. */
.official-stamp{display:none!important}
.beat-logo>img{animation:front-logo-groove 4.2s ease-in-out infinite,logo-colours 13s linear infinite;filter:brightness(var(--beat-brightness,1)) drop-shadow(0 0 var(--beat-glow,12px) var(--logo-colour,#fb28d8))}
@property --logo-colour{syntax:'<color>';inherits:true;initial-value:#ff28d7}
@keyframes logo-colours{0%,100%{--logo-colour:#ff28d7}20%{--logo-colour:#16cbff}40%{--logo-colour:#fff12a}60%{--logo-colour:#ff791c}80%{--logo-colour:#76ff19}}
.logo-colour-layer{position:absolute;inset:0;pointer-events:none;background:var(--logo-colour,#ff28d7);mask:url('assets/hwc-cutout.png') center/contain no-repeat;mix-blend-mode:multiply;animation:front-logo-groove 4.2s ease-in-out infinite,logo-colours 13s linear infinite;transform-origin:50% 65%;opacity:.8}
.paused .logo-colour-layer{animation-play-state:paused}
.random-fixtures{position:fixed;inset:0;z-index:4;pointer-events:none;overflow:hidden;mix-blend-mode:screen}
.random-fixtures i{position:absolute;left:var(--fx);top:var(--fy);width:var(--width);height:145vmax;transform-origin:50% 0;clip-path:polygon(49% 0,51% 0,100% 100%,0 100%);background:linear-gradient(#ffffffdb 0%,var(--beam) 4%,var(--beam-soft) 38%,transparent 83%);filter:drop-shadow(0 0 16px var(--beam));opacity:0;animation:wild-search var(--duration) ease-in-out infinite;animation-delay:var(--offset)}
@keyframes wild-search{0%,18%,83%,100%{opacity:0;transform:rotate(var(--from))}22%{opacity:.8}45%{opacity:.35}60%{opacity:.85}79%{opacity:0;transform:rotate(var(--to))}}
.paused .random-fixtures i,.world-paused .random-fixtures i{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.random-fixtures{display:none}.logo-colour-layer{animation:none!important}.beat-logo>img{animation:none!important}}

.rave-world form label{display:block;margin:12px 0}.rave-world form input:not([type=checkbox]),.rave-world form select,.rave-world form textarea{display:block;max-width:100%;width:100%;padding:12px;margin-top:7px;border-radius:8px}.rave-world form button{padding:12px 17px;margin:8px 5px 8px 0;border-radius:8px}.rave-world form input[type=checkbox]{width:auto}.rave-world .join-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:25px}.rave-world .join-panel{padding:24px;border-radius:14px}
/* A scattered wall of memories, inside the same animated nightclub. */
.memory-wall{columns:3 290px;column-gap:36px;padding:22px 20px 60px}.memory-card{break-inside:avoid;display:inline-block;width:100%;margin:8px 0 38px;background:linear-gradient(140deg,#210b36ed,#061329e8);border:1px solid #f161ce;border-radius:5px;padding:12px;box-shadow:0 0 18px #c828ad55,0 16px 30px #000a;animation:memory-wobble 11s ease-in-out infinite;animation-delay:var(--float-delay);transform:rotate(var(--tilt));transition:box-shadow .25s;position:relative}.memory-card:nth-child(3n+2){border-color:#65daff;box-shadow:0 0 20px #159bfa55,0 16px 30px #000a}.memory-card:nth-child(3n){border-color:#b2ff42;box-shadow:0 0 18px #76ff2638,0 16px 30px #000a}.memory-card img{display:block;width:100%;height:auto;max-height:600px;object-fit:contain;background:#08030d}.memory-caption{padding:14px 6px 8px}.memory-caption h2{font-size:22px!important;margin:0 0 10px}.memory-caption p{font-size:13px;line-height:1.5}.memory-date{font-weight:bold;color:#ffef75}.memory-remember{display:inline-block;border:1px solid #f151d8;padding:9px 12px;border-radius:20px;font-size:12px;color:#fff}.memory-card:hover,.memory-card:focus-within{animation-play-state:paused;box-shadow:0 0 32px #ec67ee9c;z-index:4}.memory-filters{display:flex;flex-wrap:wrap;align-items:end;gap:20px;margin-top:24px}.memory-filters label{min-width:170px}.memory-filters select{min-height:45px}.world-paused .memory-card{animation-play-state:paused}
@keyframes memory-wobble{0%,100%{transform:rotate(var(--tilt)) translateY(0)}50%{transform:rotate(calc(var(--tilt) * -.45)) translateY(-6px)}}
@media(max-width:650px){.memory-wall{columns:1;padding:16px 10px 60px}.memory-card{margin-bottom:28px}.memory-filters{gap:10px}.memory-filters label{width:100%}}
@media(prefers-reduced-motion:reduce){.memory-card{animation:none!important;transform:none!important}}
