:root{--acid:#e5e600;--bg:#000;--white:#f5f5f5;--pad:clamp(28px,3.65vw,72px)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#000;color:var(--white);font-family:Montserrat,Arial,sans-serif}
button,a{color:inherit;font:inherit}
a{text-decoration:none}
main{width:100%;margin:0;background:#000;overflow:hidden}
.hero{height:801px;position:relative;background:#050505 url("assets/hero.png") center/cover no-repeat}
header{height:92px;position:fixed;z-index:50;top:0;left:0;right:0;background:rgba(17,17,17,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.05);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 clamp(28px,6vw,110px);animation:header-in .75s cubic-bezier(.22,1,.36,1) both;transition:height .45s cubic-bezier(.22,1,.36,1),background .45s,box-shadow .45s}
header.scrolled{height:70px;background:rgba(9,9,9,.88);box-shadow:0 12px 34px rgba(0,0,0,.38)}
.logo{display:flex;align-items:center;justify-self:start;transition:transform .4s cubic-bezier(.22,1,.36,1),filter .4s}.logo:hover{transform:scale(1.035);filter:drop-shadow(0 0 12px rgba(229,230,0,.2))}.logo img{display:block;width:clamp(150px,13vw,194px);height:auto}
nav{display:flex;align-items:center;justify-content:center;gap:clamp(38px,5vw,82px);margin:0}nav a{font-size:13px;white-space:nowrap;position:relative;transition:color .3s,transform .3s}nav a:after{content:"";position:absolute;left:50%;right:50%;bottom:-10px;height:1px;background:var(--acid);transition:left .35s cubic-bezier(.22,1,.36,1),right .35s cubic-bezier(.22,1,.36,1)}nav a:hover{color:var(--acid);transform:translateY(-2px)}nav a:hover:after{left:0;right:0}
.actions{display:flex;align-items:center;justify-self:end;gap:26px}.actions button{width:22px;height:22px;border:0;padding:0;background:none;cursor:pointer;position:relative;transition:transform .35s cubic-bezier(.22,1,.36,1),filter .35s}.actions button:hover{transform:translateY(-2px) scale(1.12);filter:drop-shadow(0 0 7px rgba(229,230,0,.5))}.actions button:active{transform:scale(.9)}.actions svg{fill:none;stroke:#fff;stroke-width:1.7;width:100%;height:100%;transition:stroke .3s,fill .3s}.actions button:hover svg{stroke:var(--acid)}.favorites-toggle.has-favorites svg{stroke:#ef3f4f;fill:#ef3f4f}.favorite-count{position:absolute;right:-9px;top:-8px;min-width:15px;height:15px;padding:0 3px;border-radius:10px;background:#ef3f4f;color:#fff;font-size:8px;display:none;place-items:center}.favorite-count.visible{display:grid}.menu{display:none}.menu span{display:block;background:white;height:1px;margin:5px 0}
.hero-copy{position:absolute;left:55px;top:170px}.hero h1{font-size:58px;line-height:1.15;letter-spacing:-2.5px;font-weight:500;margin:0;animation:copy-in .9s .18s cubic-bezier(.22,1,.36,1) both}.hero h1 em{font-style:normal;color:var(--acid)}.hero-copy p{font-size:13px;line-height:1.45;margin:15px 0 0;animation:copy-in .9s .32s cubic-bezier(.22,1,.36,1) both}.hero-buttons{display:flex;gap:18px;margin-top:120px;animation:copy-in .9s .46s cubic-bezier(.22,1,.36,1) both}.button{height:61px;min-width:278px;border-radius:8px;display:grid;place-items:center;font-size:16px;font-weight:500;position:relative;isolation:isolate;overflow:hidden;transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s,border-color .35s,background .35s}.button:before{content:"";position:absolute;z-index:-1;top:-40%;bottom:-40%;left:-45%;width:28%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.48),transparent);transform:skewX(-22deg);transition:left .65s cubic-bezier(.22,1,.36,1)}.button:hover:before{left:120%}.button:hover{transform:translateY(-4px)}.button:active{transform:translateY(0) scale(.975);transition-duration:.12s}.primary{background:var(--acid);color:#000}.primary:hover{box-shadow:0 12px 35px rgba(229,230,0,.22)}.secondary{border:1px solid #eee;background:rgba(0,0,0,.2)}.secondary:hover{border-color:var(--acid);background:rgba(229,230,0,.06);box-shadow:0 12px 35px rgba(0,0,0,.4)}
.content-section{padding:0 var(--pad)}.section-title{height:91px;display:flex;align-items:center;justify-content:space-between}.section-title h2{font-weight:400;text-transform:uppercase;font-size:29px;letter-spacing:-1px;margin:0}.section-title a{font-size:10px}
.genres{padding-top:12px}.genre-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:24px}.genre-grid a{border-radius:16px;overflow:hidden;position:relative}.genre-grid img{display:block;width:100%;aspect-ratio:1;object-fit:cover;transition:transform .55s cubic-bezier(.22,1,.36,1),filter .55s}.genre-grid a:hover img{transform:scale(1.045);filter:brightness(1.08)}.genre-favorite{position:absolute;right:12px;top:12px;width:36px;height:36px;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:rgba(0,0,0,.66);backdrop-filter:blur(8px);color:#fff;font-size:17px;display:grid;place-items:center;cursor:pointer;opacity:0;transform:translateY(-7px);transition:opacity .35s,transform .35s,background .35s,color .35s,border-color .35s}.genre-grid a:hover .genre-favorite,.genre-favorite.active{opacity:1;transform:none}.genre-favorite:hover,.genre-favorite.active{background:#ef3f4f;color:#fff;border-color:#ef3f4f}.favorites-panel{position:fixed;z-index:70;right:clamp(18px,5vw,90px);top:78px;width:min(300px,calc(100vw - 36px));padding:18px;border:1px solid #2d2d2d;border-radius:13px;background:rgba(14,14,14,.97);box-shadow:0 20px 50px rgba(0,0,0,.6);opacity:0;visibility:hidden;transform:translateY(-10px);transition:.3s}.favorites-panel.open{opacity:1;visibility:visible;transform:none}.favorites-panel h3{font-size:15px;margin:0 0 13px}.favorites-panel p{font-size:11px;color:#8c8c8c;margin:0}.favorites-panel ul{list-style:none;padding:0;margin:0}.favorites-panel li{padding:10px 0;border-top:1px solid #282828;font-size:12px;display:flex;justify-content:space-between}.favorites-panel li span{color:#ef3f4f}
.subgenres{padding-top:70px}.subgenres .section-title{height:75px}.subgenre-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.subgenre-card{height:190px;position:relative;border:1px solid #242424;border-radius:13px;overflow:hidden;padding:16px;background:radial-gradient(circle at 50% 35%,rgba(255,255,255,.16),transparent 28%),linear-gradient(145deg,#171717,#050505 72%);cursor:pointer;transition:transform .45s cubic-bezier(.22,1,.36,1),border-color .45s,box-shadow .45s}.subgenre-card:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 28%,rgba(229,230,0,.09) 50%,transparent 72%);transform:translateX(-120%);transition:transform .7s cubic-bezier(.22,1,.36,1)}.subgenre-card:hover{transform:translateY(-7px);border-color:rgba(229,230,0,.48);box-shadow:0 18px 35px rgba(0,0,0,.45)}.subgenre-card:hover:before{transform:translateX(120%)}.sub-number{position:absolute;top:13px;left:15px;color:#777;font-size:9px;letter-spacing:.14em}.pulse-art{position:absolute;left:50%;top:43%;width:95px;height:95px;transform:translate(-50%,-50%);display:grid;place-items:center}.pulse-art i{position:absolute;border:1px solid rgba(255,255,255,.2);border-radius:50%;width:34px;height:34px;transition:transform .6s,border-color .6s}.pulse-art i:nth-child(2){width:62px;height:62px}.pulse-art i:nth-child(3){width:90px;height:90px}.subgenre-card:hover .pulse-art i{transform:scale(1.08);border-color:rgba(229,230,0,.5)}.house .pulse-art i{border-radius:8px;transform:rotate(45deg)}.house:hover .pulse-art i{transform:rotate(135deg) scale(1.06)}.trance .pulse-art i{border-radius:50% 0 50% 50%;transform:rotate(-45deg)}.dnb .pulse-art i{border-width:0 1px;border-radius:0;transform:rotate(28deg)}.dubstep .pulse-art i{border-radius:50%;height:20px}.sub-copy{position:absolute;left:15px;bottom:14px}.sub-copy h3{font-size:clamp(17px,1.6vw,25px);font-weight:500;text-transform:uppercase;margin:0}.sub-copy p{font-size:8px;color:#8d8d8d;margin:4px 0 0}.play-subgenre{position:absolute;right:13px;bottom:13px;width:31px;height:31px;border:1px solid #484848;border-radius:50%;background:#090909;color:var(--acid);display:grid;place-items:center;cursor:pointer;transition:transform .35s,background .35s,border-color .35s}.play-subgenre span{font-size:10px;margin-left:2px}.play-subgenre:hover{transform:scale(1.12);background:var(--acid);color:#000;border-color:var(--acid)}.equalizer{position:absolute;right:52px;bottom:18px;height:20px;display:flex;align-items:flex-end;gap:2px;opacity:0;transition:opacity .3s}.equalizer i{display:block;width:2px;height:4px;background:var(--acid)}.subgenre-card.playing{border-color:var(--acid);box-shadow:0 0 32px rgba(229,230,0,.1)}.subgenre-card.playing .equalizer{opacity:1}.subgenre-card.playing .play-subgenre{background:var(--acid);color:#000;border-color:var(--acid)}.subgenre-card.playing .equalizer i{animation:eq .72s ease-in-out infinite alternate}.subgenre-card.playing .equalizer i:nth-child(2){animation-delay:-.45s}.subgenre-card.playing .equalizer i:nth-child(3){animation-delay:-.2s}.subgenre-card.playing .equalizer i:nth-child(4){animation-delay:-.6s}.subgenre-card.playing .equalizer i:nth-child(5){animation-delay:-.32s}.subgenre-card.playing .pulse-art{animation:art-pulse 1.8s ease-in-out infinite}
.home-page>.favorites-panel~*{}.home-page .subgenres,.home-page .legends{display:none}
@keyframes eq{to{height:19px}}@keyframes art-pulse{50%{filter:drop-shadow(0 0 10px rgba(229,230,0,.65));transform:translate(-50%,-50%) scale(1.06)}}
.legends{padding-top:72px}.legends .section-title{height:75px}.legend-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.legend-card{height:245px;position:relative;overflow:hidden;border:1px solid #242424;border-radius:13px;background:#080808;cursor:pointer;transition:transform .48s cubic-bezier(.22,1,.36,1),border-color .48s,box-shadow .48s}.legend-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 32%,rgba(0,0,0,.1) 52%,#050505 100%);pointer-events:none}.legend-photo{position:absolute;inset:0;background-size:cover;background-position:center;filter:grayscale(1) contrast(1.15);transition:transform .7s cubic-bezier(.22,1,.36,1),filter .7s}.daft-punk .legend-photo{background-image:url("assets/genre-electronic.png");background-position:58% 56%}.nina .legend-photo{background-image:url("assets/artist-rihanna.png");background-position:center 20%}.deadmau5 .legend-photo{background-image:url("assets/event-techno.png");background-position:65% center}.prodigy .legend-photo{background-image:url("assets/event-rock.png");background-position:78% center}.legend-card:hover{transform:translateY(-8px);border-color:rgba(229,230,0,.5);box-shadow:0 22px 45px rgba(0,0,0,.5)}.legend-card:hover .legend-photo{transform:scale(1.065);filter:grayscale(.65) contrast(1.18) sepia(.12)}.legend-index{position:absolute;z-index:2;left:15px;top:14px;color:var(--acid);font-size:9px;letter-spacing:.15em}.legend-info{position:absolute;z-index:2;left:15px;bottom:15px;transition:transform .45s cubic-bezier(.22,1,.36,1)}.legend-info h3{font-size:clamp(19px,2vw,29px);line-height:1;text-transform:uppercase;font-weight:500;margin:0}.legend-info p{font-size:8px;color:#8d8d8d;margin:7px 0 0}.legend-arrow{position:absolute;z-index:2;right:15px;bottom:16px;width:31px;height:31px;border:1px solid #444;border-radius:50%;display:grid;place-items:center;color:var(--acid);font-size:15px;opacity:0;transform:translate(-8px,8px);transition:opacity .4s,transform .4s,background .4s,color .4s}.legend-card:hover .legend-info{transform:translateY(-3px)}.legend-card:hover .legend-arrow{opacity:1;transform:none}.legend-arrow:hover{background:var(--acid);color:#000}
.events{padding-top:73px}.events .section-title{height:70px}.event-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.event-grid article{height:260px;position:relative;padding:14px 14px 15px;background:linear-gradient(to bottom,transparent 26%,rgba(0,0,0,.12) 50%,#000 100%),var(--photo) center/cover no-repeat;border-radius:12px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;cursor:pointer;transition:transform .42s cubic-bezier(.22,1,.36,1),box-shadow .42s,filter .42s}.event-grid article:after{content:"";position:absolute;inset:0;border-radius:inherit;border:1px solid transparent;pointer-events:none;transition:border-color .42s}.event-grid article:hover{transform:translateY(-6px);box-shadow:0 18px 42px rgba(229,230,0,.1);filter:brightness(1.08)}.event-grid article:hover:after{border-color:rgba(229,230,0,.28)}.date{position:absolute;left:14px;top:13px;background:var(--acid);color:#000;border-radius:7px;padding:5px 8px 6px;text-align:center;line-height:1;font-size:14px;transition:transform .42s cubic-bezier(.22,1,.36,1),box-shadow .42s}.event-grid article:hover .date{transform:translateY(-2px) scale(1.04);box-shadow:0 7px 20px rgba(229,230,0,.2)}.date b{font-size:28px;font-weight:400;display:block}.event-grid h3{font-size:13px;font-weight:400;line-height:1.35;margin:0 0 26px;transition:transform .42s}.event-grid article:hover h3{transform:translateY(-3px)}.event-grid p{font-size:8px;margin:0}
.event-link{display:block}.event-link article{width:100%}
.artists{padding-top:75px}.artists .section-title{height:65px}.artist-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:35px}.artist-grid figure{margin:0;text-align:center}.artist-grid img{display:block;width:100%;aspect-ratio:1;object-fit:contain}.artist-grid figcaption{font-size:13px;margin-top:12px}
.stats{height:159px;margin-top:65px;border-radius:24px 24px 0 0;background:#1b1b1b;display:grid;grid-template-columns:repeat(4,1fr);align-items:center;text-align:center}.stats b{display:block;font-size:43px;line-height:1;font-weight:400}.stats span{display:block;font-size:12px;margin-top:4px}
.reveal{opacity:0;transform:translateY(34px);transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1)}.reveal.visible{opacity:1;transform:none}
@keyframes header-in{from{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:none}}
@keyframes copy-in{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
@media(max-width:900px){:root{--pad:28px}.hero{height:700px;background-position:62% center}header{height:70px;padding:0 20px;grid-template-columns:1fr auto}.logo img{width:155px}nav{display:none}nav.open{display:flex;position:fixed;top:70px;left:0;right:0;margin:0;padding:30px;gap:24px;background:#111;flex-direction:column;border-top:1px solid #292929}.menu{display:block!important}.hero-copy{left:35px;top:135px}.hero h1{font-size:48px}.hero-buttons{margin-top:100px}.button{min-width:220px}.genre-grid{gap:12px}.subgenre-grid{grid-template-columns:repeat(3,1fr)}.legend-grid{grid-template-columns:repeat(2,1fr)}.section-title h2{font-size:24px}.event-grid{grid-template-columns:repeat(2,1fr)}.artist-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){body{background:#000}.hero{height:660px;background-position:66% center}.hero:after{content:"";position:absolute;inset:70px 0 0;background:linear-gradient(90deg,rgba(0,0,0,.35),transparent)}header{padding:0 18px}.logo img{width:132px}.actions{gap:15px}.hero-copy{z-index:2;left:20px;top:125px}.hero h1{font-size:40px;line-height:1.13;letter-spacing:-1.7px}.hero-copy p{font-size:10px}.hero-buttons{margin-top:90px;flex-direction:column;gap:10px}.button{height:50px;min-width:190px;width:max-content;padding:0 18px;font-size:13px}.content-section{padding-left:18px;padding-right:18px}.section-title{height:78px}.section-title h2{font-size:20px}.section-title a{font-size:8px}.genre-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}.genre-grid a{min-width:165px;scroll-snap-align:start}.subgenres{padding-top:42px}.subgenre-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px}.subgenre-card{min-width:205px;scroll-snap-align:start}.legends{padding-top:38px}.legend-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px}.legend-card{min-width:245px;scroll-snap-align:start}.events{padding-top:40px}.event-grid{grid-template-columns:1fr}.event-grid article{height:230px}.artists{padding-top:40px}.artist-grid{gap:24px 12px}.artist-grid figcaption{font-size:10px}.stats{height:auto;padding:35px 10px;grid-template-columns:repeat(2,1fr);gap:35px;margin-top:45px}.stats b{font-size:33px}}
