:root{--bg:#0A0A0A;--fg:#F2F2EE;--mute:#8A8A85;--line:rgba(242,242,238,.14);--acid:#D8FF3A;--mag:#FF3FA4;
  --disp:"Anton",Impact,sans-serif;--sans:"Inter Tight",system-ui,sans-serif;--mono:"Space Mono",monospace;--pad:clamp(20px,5vw,72px)}
*{box-sizing:border-box;margin:0;padding:0}
html.lenis{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}
body{background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul{list-style:none}
::selection{background:var(--acid);color:#000}
.noise{position:fixed;inset:-50%;z-index:60;pointer-events:none;opacity:.07;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain .5s steps(2) infinite}
@keyframes grain{0%{transform:translate(0,0)}50%{transform:translate(-3%,2%)}100%{transform:translate(2%,-3%)}}

.loader{position:fixed;inset:0;z-index:100;background:var(--acid);color:#000;display:grid;place-items:center;overflow:hidden}
.loader__word{font-family:var(--disp);font-size:clamp(90px,26vw,420px);line-height:.85;letter-spacing:-.02em;text-transform:uppercase}
.loader__meta{position:absolute;left:var(--pad);right:var(--pad);bottom:28px;display:flex;justify-content:space-between;font-family:var(--mono);font-size:13px;text-transform:uppercase}

.cursor{position:fixed;left:0;top:0;z-index:90;pointer-events:none;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--acid);mix-blend-mode:difference;transition:width .25s,height .25s,margin .25s;display:grid;place-items:center}
.cursor span{opacity:0;font-family:var(--mono);font-size:11px;color:#000;text-transform:uppercase;transition:opacity .2s}
.cursor.is-hover{width:80px;height:80px;margin:-40px 0 0 -40px;mix-blend-mode:normal}
.cursor.is-hover span{opacity:1}
@media(hover:none){.cursor{display:none}}

.nav{position:fixed;z-index:80;top:0;left:0;right:0;display:flex;align-items:center;gap:24px;padding:18px var(--pad);mix-blend-mode:difference}
.nav__logo{font-family:var(--disp);font-size:26px;letter-spacing:.02em}
.nav__links{display:flex;gap:22px;margin-left:auto;font-family:var(--mono);font-size:13px;text-transform:uppercase}
.nav__cta{font-family:var(--mono);font-size:13px;text-transform:uppercase;padding:10px 16px;border:1px solid currentColor;border-radius:999px}

.btn{display:inline-flex;align-items:center;padding:18px 30px;background:var(--acid);color:#000;font-family:var(--disp);font-size:20px;letter-spacing:.04em;text-transform:uppercase;position:relative;overflow:hidden;isolation:isolate}
.btn span{position:relative;z-index:1}
.btn::before{content:"";position:absolute;inset:0;background:var(--mag);transform:translateY(101%);transition:transform .45s cubic-bezier(.7,0,.2,1)}
.btn:hover::before{transform:translateY(0)}
.btn--line{background:none;color:var(--fg);border:1px solid var(--line)}
.sec__label{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:var(--acid);margin-bottom:24px}
.sec__title{font-family:var(--disp);font-size:clamp(56px,10vw,160px);line-height:.98;text-transform:uppercase;letter-spacing:-.01em}
.sec__title em{font-style:normal;color:var(--mag)}

.hero{position:relative;height:100svh;display:grid;grid-template-rows:auto 1fr auto;padding:90px var(--pad) 32px;overflow:hidden}
.hero__media{position:absolute;inset:0;z-index:0}
.hero__media video{width:100%;height:100%;object-fit:cover;opacity:.75}
.hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,10,.5),rgba(10,10,10,0) 40%,rgba(10,10,10,.85))}
.hero__top,.hero__bottom,.hero__title{position:relative;z-index:1}
.hero__top{display:flex;justify-content:space-between;font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.1em}
.hero__top p{display:flex;gap:18px}
.hero__title{font-family:var(--disp);font-size:clamp(100px,22vw,380px);line-height:.8;text-transform:uppercase;align-self:center;letter-spacing:-.01em;color:var(--fg);display:flex;justify-content:space-between}
.hero__title .ch{display:inline-block;will-change:transform}
.hero__bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}
.hero__date{font-family:var(--disp);font-size:clamp(28px,4vw,56px);line-height:1;display:flex;gap:12px;align-items:baseline}
.hero__date span{padding:0 8px;background:var(--fg);color:#000}
.hero__date em{font-family:var(--mono);font-style:normal;font-size:14px;text-transform:uppercase;margin-left:8px}
.count{display:flex;gap:18px}
.count i{display:grid;font-style:normal;text-align:center}
.count b{font-family:var(--disp);font-size:clamp(28px,3.4vw,48px);line-height:1;color:var(--acid);font-variant-numeric:tabular-nums}
.count span{font-family:var(--mono);font-size:11px;text-transform:uppercase;color:var(--mute)}

.marq{overflow:hidden;white-space:nowrap}
.marq--acid{background:var(--acid);color:#000;font-family:var(--disp);font-size:clamp(28px,4vw,60px);text-transform:uppercase;padding:10px 0}
.marq__track{display:flex;width:max-content;will-change:transform}
.marq--big{font-family:var(--disp);font-size:clamp(90px,18vw,300px);line-height:.9;text-transform:uppercase;color:var(--fg);padding:40px 0 20px;border-top:1px solid var(--line)}

.lineup{position:relative;padding:calc(var(--pad)*1.5) var(--pad)}
.names{border-top:1px solid var(--line)}
.name{display:flex;align-items:baseline;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line);cursor:default;position:relative}
.name span{font-family:var(--disp);font-size:clamp(44px,8.5vw,140px);line-height:.95;text-transform:uppercase;transition:color .3s,transform .5s cubic-bezier(.2,.8,.2,1);display:inline-block}
.name small{font-family:var(--mono);font-size:12px;text-transform:uppercase;color:var(--mute)}
.name:hover span{color:var(--acid);transform:translateX(24px) skewX(-6deg)}
.name--more span{color:var(--mute);font-size:clamp(30px,4vw,64px)}
.names__img{position:fixed;left:0;top:0;width:min(320px,34vw);aspect-ratio:3/4;pointer-events:none;z-index:50;opacity:0;transform:translate(-50%,-50%) rotate(-4deg);overflow:hidden}
.names__img img{width:100%;height:100%;object-fit:cover}
.names__img figcaption{position:absolute;left:10px;bottom:10px;background:var(--acid);color:#000;font-family:var(--mono);font-size:11px;text-transform:uppercase;padding:4px 8px}

.cuts{height:400vh;position:relative}
.cuts__pin{position:sticky;top:0;height:100svh;overflow:hidden;background:#000}
.cuts__imgs img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0}
.cuts__imgs img.is-on{opacity:.8}
.cuts__words{position:absolute;inset:0;display:grid;place-items:center}
.cuts__words p{position:absolute;font-family:var(--disp);font-size:clamp(80px,20vw,340px);line-height:.85;text-transform:uppercase;color:var(--fg);opacity:0;text-shadow:0 0 60px rgba(0,0,0,.6)}
.cuts__words p:nth-child(even){color:var(--acid)}
.cuts__words p.is-on{opacity:1}
.cuts__idx,.cuts__hint{position:absolute;bottom:28px;font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.1em}
.cuts__idx{left:var(--pad)}.cuts__idx span{color:var(--acid)}
.cuts__hint{right:var(--pad);color:var(--mute)}

.days{padding:calc(var(--pad)*1.5) var(--pad)}
.days__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:56px}
.day{position:relative;border:1px solid var(--line);padding:28px;display:grid;gap:10px;align-content:start;min-height:420px}
.day__n{font-family:var(--mono);font-size:12px;color:var(--acid)}
.day h3{font-family:var(--disp);font-size:clamp(48px,6vw,96px);line-height:1;text-transform:uppercase}
.day__t{font-size:14px;color:var(--mute)}
.day ul{margin-top:18px;display:grid;gap:6px;font-family:var(--disp);font-size:clamp(22px,2.2vw,32px);text-transform:uppercase;letter-spacing:.02em}
.day li::before{content:"→ ";color:var(--mag)}
.stamp{position:absolute;right:20px;top:20px;font-family:var(--disp);font-size:14px;text-transform:uppercase;letter-spacing:.08em;padding:8px 12px;border:2px solid var(--acid);color:var(--acid);border-radius:999px;transform:rotate(8deg);font-style:normal}
.stamp--mag{border-color:var(--mag);color:var(--mag)}

.venue{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(24px,4vw,64px);padding:calc(var(--pad)*1.5) var(--pad);align-items:center}
.venue__img{overflow:hidden;aspect-ratio:3/2}
.venue__img img{width:100%;height:100%;object-fit:cover;transform:scale(1.2)}
.venue__p{margin-top:28px;color:#C9C9C4;max-width:46ch}
.venue__facts{margin-top:32px;display:grid;grid-template-columns:1fr 1fr;gap:16px;border-top:1px solid var(--line);padding-top:20px}
.venue__facts li{font-family:var(--mono);font-size:12px;text-transform:uppercase;color:var(--mute)}
.venue__facts b{display:block;font-family:var(--disp);font-size:clamp(36px,4vw,64px);line-height:1;color:var(--fg)}

.tickets{padding:calc(var(--pad)*1.5) var(--pad);background:var(--fg);color:#000}
.tickets .sec__label{color:#000}
.tickets__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:56px}
.tix{position:relative;border:2px solid #000;padding:28px;display:grid;gap:10px;align-content:start}
.tix--hot{background:#000;color:var(--fg)}
.tix>p{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.1em}
.tix h3{font-family:var(--disp);font-size:clamp(72px,9vw,140px);line-height:.9}.tix h3 small{font-size:.35em;margin-left:6px}
.tix ul{margin:12px 0 22px;display:grid;gap:6px;font-size:15px}.tix li::before{content:"— "}
.tix .btn{justify-self:start}.tix--hot .stamp{top:-14px;right:-10px;background:var(--mag);color:#000;border-color:var(--mag)}

.camp{padding:calc(var(--pad)*1.5) var(--pad)}
.camp__grid{display:grid;grid-template-columns:1.5fr 1.125fr;gap:12px}
.camp__tile{position:relative;overflow:hidden;background:#111;clip-path:inset(0 100% 0 0)}
.camp__tile img{width:100%;height:100%;object-fit:cover}
.camp__tile figcaption{position:absolute;left:10px;bottom:10px;font-family:var(--mono);font-size:11px;text-transform:uppercase;background:var(--acid);color:#000;padding:4px 8px}

.footer__row{display:flex;justify-content:space-between;gap:16px;padding:20px var(--pad) 28px;font-family:var(--mono);font-size:12px;color:var(--mute);text-transform:uppercase;flex-wrap:wrap}

@media(max-width:820px){
  .nav__links{display:none}
  .hero{padding-top:80px}
  .hero__top p:last-child{display:none}
  .hero__title{font-size:clamp(80px,26vw,200px)}
  .hero__bottom{gap:16px}.hero__date{font-size:28px}.count{gap:12px}.count b{font-size:26px}
  .btn{padding:14px 22px;font-size:17px}
  .names__img{display:none}
  .name span{font-size:clamp(38px,11vw,70px)}
  .cuts{height:300vh}
  .days__grid,.tickets__grid{grid-template-columns:1fr}.day{min-height:auto}
  .venue{grid-template-columns:1fr}
  .camp__grid{grid-template-columns:1fr 1fr}
  .marq--big{font-size:clamp(70px,22vw,120px)}
}
