:root{
  --night:#1b1040; --indigo:#24104f; --yellow:#f2c935; --cream:#faf5e6; --pink:#e8458b; --teal:#0b8a74; --orange:#d9441b; --purple:#4b238f;
  --mute:#6a6384; --line:#ddd5c4; --err:#c0282d;
  --disp:'Anton','Impact','Arial Narrow',sans-serif; --head:'Oswald','Arial Narrow','Impact',sans-serif; --body:'Nunito Sans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{margin:0;font:16px/1.7 var(--body);color:var(--night);background:var(--cream);-webkit-text-size-adjust:100%;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,h4{margin:0}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px 12px;z-index:100}
:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}
.y{color:var(--yellow)}
.outline{color:transparent;-webkit-text-stroke:2px #fff}.outline.pk{-webkit-text-stroke-color:var(--pink)}
.hl{background:linear-gradient(transparent 62%,var(--yellow) 62%,var(--yellow) 92%,transparent 92%)}

/* buttons */
.btn{display:inline-block;background:var(--yellow);color:var(--night);border:2px solid var(--yellow);padding:13px 26px;font:800 .82rem var(--body);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;cursor:pointer;text-align:center;border-radius:2px}
.btn:hover{background:#ffd94f;border-color:#ffd94f}
.btn.line{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}.btn.line:hover{background:rgba(255,255,255,.1)}
.btn.ghost{background:transparent;border-color:var(--night);color:var(--night)}.btn.ghost:hover{background:rgba(27,16,64,.08)}
.btn[disabled]{opacity:.6;cursor:wait}
.dk{background:var(--night);color:#fff;border:2px solid var(--night);padding:12px 20px;font:800 .74rem var(--body);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border-radius:2px}
.dk:hover{background:var(--purple);border-color:var(--purple)}.dk.wide{width:100%;padding:14px}

/* header */
.top{position:sticky;top:0;z-index:40;background:var(--indigo);display:flex;align-items:center;justify-content:space-between;padding:8px 24px;padding-top:max(8px,env(safe-area-inset-top));box-shadow:0 2px 0 rgba(242,201,53,.35)}
.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:#fff}
.brand img{width:42px;height:42px;border-radius:50%;background:var(--cream);object-fit:cover}
.brand span{display:flex;flex-direction:column;line-height:1.15}
.brand b{font-size:.82rem;letter-spacing:.14em;text-transform:uppercase}.brand i{font-style:normal;font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--yellow)}
nav{display:flex;gap:6px;align-items:center}
nav a{color:#fff;text-decoration:none;font:700 .74rem var(--body);letter-spacing:.14em;text-transform:uppercase;padding:10px 14px}
nav a:hover{color:var(--yellow)}
nav .btn-nav{background:var(--yellow);color:var(--night);margin-left:8px;border-radius:2px}nav .btn-nav:hover{background:#ffd94f;color:var(--night)}
.burger{display:none;background:none;border:0;padding:10px;cursor:pointer}
.burger span{display:block;width:24px;height:3px;background:#fff;margin:4px 0;border-radius:2px}

/* hero */
.hero{position:relative;overflow:hidden;color:#fff;background:radial-gradient(ellipse at 85% 0%,#5a1f86 0%,transparent 55%),linear-gradient(135deg,#2a1263 0%,#1d0b4a 70%)}
.hero-in{position:relative;padding-top:70px;padding-bottom:84px;min-height:420px}
.eyebrow{margin:0 0 14px;color:var(--yellow);font:800 .72rem var(--body);letter-spacing:.2em;text-transform:uppercase}
.hero h1{font:400 clamp(3rem,10.5vw,8.2rem)/.92 var(--disp);text-transform:uppercase;position:relative;z-index:2}
.hero h1 span{display:block}
.lede{max-width:34ch;color:#cfc6f0;margin:20px 0 26px;position:relative;z-index:2}
.hero-btns{display:flex;gap:14px;flex-wrap:wrap;position:relative;z-index:2}
.badge{position:absolute;right:24px;top:36px;width:clamp(190px,27vw,330px);aspect-ratio:1;border-radius:50%;background:var(--cream);overflow:hidden;box-shadow:0 0 0 8px rgba(255,255,255,.08),0 24px 60px rgba(0,0,0,.45);z-index:1}
.badge img{width:100%;height:100%;object-fit:cover;transform:scale(1.12)}
.year{position:absolute;right:24px;bottom:-34px;font:400 clamp(7rem,20vw,15rem)/1 var(--disp);color:transparent;-webkit-text-stroke:2px rgba(255,255,255,.14);pointer-events:none;z-index:0}
.ticker{background:var(--yellow);color:var(--night);overflow:hidden;white-space:nowrap;padding:9px 0;font:800 .78rem var(--body);letter-spacing:.14em;border-top:2px solid var(--night);border-bottom:2px solid var(--night)}
.track{display:inline-flex;animation:scroll 40s linear infinite}.track span{padding-right:0}
@keyframes scroll{to{transform:translateX(-50%)}}

/* about */
.about{padding:96px 0 40px}
.two{display:grid;grid-template-columns:1fr 1.5fr;gap:64px;align-items:start}
.about h2{font:400 clamp(2.2rem,4.6vw,3.6rem)/1.05 var(--disp);text-transform:uppercase;margin-bottom:22px}
.pill{display:inline-block;border:2px solid var(--night);padding:4px 12px;font:800 .66rem var(--body);letter-spacing:.12em;text-transform:uppercase}
.copy p{margin:0 0 16px;max-width:62ch}
.itin{list-style:none;padding:0;margin:20px 0 22px;display:grid;gap:12px}
.itin li{display:flex;align-items:center;gap:14px;background:#fff;border:2px solid var(--night);padding:8px 14px 8px 8px}
.itin span{background:var(--indigo);color:var(--yellow);font:800 .72rem var(--body);letter-spacing:.1em;text-transform:uppercase;padding:6px 10px;min-width:62px;text-align:center}
.itin p{margin:0}

/* line-up */
.lineup{padding-top:40px;overflow:hidden}
.lu-title{font:400 clamp(2.6rem,6vw,4.4rem)/1 var(--disp);text-transform:uppercase;padding-bottom:50px}
.band{position:relative;margin-top:-44px;padding:120px 0 84px;clip-path:polygon(0 44px,100% 0,100% 100%,0 100%)}
.lineup .band:first-of-type{margin-top:0}
.peach{background:#ffe0d3}.lav{background:#e6e0fb}.mint{background:#d3f5eb}
.band-in{display:grid;grid-template-columns:minmax(260px,.9fr) 1.1fr;gap:70px;align-items:center}
.flip .poster{order:2}
.poster{justify-self:center;width:100%;max-width:340px;transform:rotate(-4deg)}
.flip .poster{transform:rotate(4deg)}
.poster img{border:3px solid var(--night);box-shadow:10px 12px 0 var(--night)}
.info h3{font:700 clamp(2.4rem,5.4vw,4.2rem)/1 var(--head);text-transform:uppercase;margin-bottom:22px;color:var(--night)}
.info h3 em{display:block;font-style:normal;color:var(--c)}
dl{display:grid;grid-template-columns:1fr 1fr;gap:16px 36px;margin:0 0 24px;max-width:520px}
dt{font:800 .64rem var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--c)}
dd{margin:0;font-weight:700}dd small{font-weight:400;color:var(--mute)}
.acts{display:flex;gap:10px;flex-wrap:wrap}

/* finale */
.finale{position:relative;color:#fff;padding:96px 0;background:radial-gradient(ellipse at 90% 0%,rgba(232,69,139,.28),transparent 50%),radial-gradient(ellipse at 0% 100%,rgba(11,138,116,.2),transparent 45%),#170b3a}
.fin-eye{margin:0 0 10px;color:#3ddbb8;font:800 .7rem var(--body);letter-spacing:.2em;text-transform:uppercase}
.finale h2{font:400 clamp(3rem,9vw,6.8rem)/1 var(--disp);text-transform:uppercase;margin-bottom:22px}
.finale h2 .y{text-shadow:0 0 36px rgba(242,201,53,.4)}
.finale h2 .outline{-webkit-text-stroke-width:2px}
.fin-lede{max-width:58ch;color:#d4ccf3;font-size:1.05rem;margin:0 0 6px}.fin-sub{color:#d4ccf3;margin:0 0 24px}
.fcards{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:920px}
.fcards div{border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.05);padding:22px 24px;position:relative}
.fcards i{font:400 2.2rem/1 var(--disp);color:var(--pink);font-style:normal;float:left;margin-right:16px}
.fcards b{display:block;color:var(--yellow);font:800 .76rem var(--body);letter-spacing:.14em;text-transform:uppercase;margin-bottom:6px}
.fcards p{margin:0;color:#c3badf;font-size:.92rem;line-height:1.55;overflow:hidden}
.fin-end{max-width:62ch;color:#d4ccf3;margin:34px 0 0}

/* register */
.register{padding:96px 0 110px;text-align:center}
.register h2{font:400 clamp(2.2rem,5vw,3.6rem)/1.05 var(--disp);text-transform:uppercase}
.sub{color:var(--mute);max-width:60ch;margin:16px auto 40px}.req{color:var(--err)}
.cats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1000px;margin:0 auto;text-align:left}
.cat{background:#fff;border:2px solid var(--night);padding:20px 22px 22px;display:flex;flex-direction:column;gap:6px;box-shadow:0 0 0 var(--night);transition:transform .15s,box-shadow .15s}
.cat:hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--night)}
.cat h3{font:700 1.25rem/1.15 var(--head);text-transform:uppercase;letter-spacing:.02em;margin:6px 0 2px}
.chip{align-self:flex-start;color:#fff;font:800 .6rem var(--body);letter-spacing:.14em;text-transform:uppercase;padding:3px 9px}
.chip.teal{background:var(--teal)}.chip.pink{background:var(--pink)}.chip.orange{background:var(--orange)}.chip.indigo{background:var(--purple)}
.price{margin:0 0 12px;font:400 1.9rem/1.1 var(--disp);color:var(--c,var(--purple))}.price small{font:600 .76rem var(--body);color:var(--mute);margin-left:4px}
.cat:nth-child(1) .price,.cat:nth-child(2) .price{color:var(--teal)}.cat:nth-child(3) .price{color:var(--pink)}.cat:nth-child(4) .price{color:var(--orange)}

/* footer */
footer{background:#140a33;color:#c3badf;padding:50px 0 0}
.foot{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:36px;padding-bottom:36px}
.f-brand{display:flex;gap:14px;align-items:center}.f-brand img{border-radius:50%;background:var(--cream)}
.f-brand strong{color:#fff;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase}.f-brand p,.foot p{margin:2px 0 0;font-size:.9rem}
footer h4{color:var(--yellow);font:800 .66rem var(--body);letter-spacing:.18em;text-transform:uppercase;margin-bottom:8px}
footer a{text-decoration:none}footer a:hover{color:var(--yellow)}
.copy-bar{display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.12);padding-top:16px;padding-bottom:calc(20px + env(safe-area-inset-bottom));font-size:.78rem}
.copy-bar a{text-decoration:underline}

/* modal */
.overlay{position:fixed;inset:0;background:rgba(20,10,51,.78);z-index:60;display:flex;align-items:flex-end;justify-content:center}
.overlay[hidden]{display:none}
.sheet{position:relative;background:var(--cream);width:100%;max-width:560px;max-height:94vh;overflow:auto;border-radius:16px 16px 0 0;padding:26px 22px calc(26px + env(safe-area-inset-bottom));animation:up .22s ease-out;border-top:6px solid var(--yellow)}
@keyframes up{from{transform:translateY(30px);opacity:.4}to{transform:none;opacity:1}}
@media(min-width:640px){.overlay{align-items:center;padding:20px}.sheet{border-radius:4px;border:0;border-top:6px solid var(--yellow)}}
.close{position:absolute;right:10px;top:8px;width:42px;height:42px;border:0;background:none;font-size:32px;cursor:pointer;color:var(--night)}
.sheet h3{font:400 2rem/1.1 var(--disp);text-transform:uppercase;margin:0 36px .4em 0}.m-meta{color:var(--mute);margin:-4px 0 14px}
.fee-box{display:flex;justify-content:space-between;align-items:center;background:var(--indigo);color:#fff;padding:12px 18px;margin-bottom:18px}
.fee-box strong{font:400 1.7rem var(--disp);color:var(--yellow)}
.field{margin-bottom:14px}.field label{display:block;font-weight:700;margin-bottom:4px}
.field input,.field select,.field textarea{width:100%;font:inherit;padding:12px 14px;border:2px solid #b3aacb;border-radius:3px;background:#fff;color:var(--night)}
.field textarea{min-height:84px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--purple);outline:none;box-shadow:0 0 0 3px rgba(75,35,143,.25)}
.field.bad input,.field.bad select,.field.bad textarea{border-color:var(--err)}
.msg{color:var(--err);font-size:.9rem;font-weight:700;margin-top:3px}
.form-err{color:var(--err);font-weight:700;margin:0 0 10px}
.block-btn{display:block;width:100%;margin-top:10px}
.hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.tick{width:64px;height:64px;border-radius:50%;background:var(--teal);color:#fff;font-size:36px;display:grid;place-items:center;margin-bottom:12px}
.idbox{border:3px dashed var(--purple);background:#fff;text-align:center;padding:16px;margin:14px 0}
.idbox span{display:block;color:var(--mute);font-weight:700}.idbox strong{display:block;font:400 clamp(1.5rem,8vw,2.5rem) var(--disp);color:var(--purple);letter-spacing:.02em;white-space:nowrap}
.d-fee{font-size:1.1rem}

/* responsive */
@media(max-width:900px){
  .two{grid-template-columns:1fr;gap:28px}
  .band-in{grid-template-columns:1fr;gap:44px}.flip .poster{order:0}.poster{max-width:300px}
  .cats{grid-template-columns:repeat(2,1fr)}
  .foot{grid-template-columns:1fr 1fr}.f-brand{grid-column:1/-1}
}
@media(max-width:760px){
  .burger{display:block}
  nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--indigo);flex-direction:column;align-items:stretch;padding:8px 16px 18px}
  nav.open{display:flex}nav a{padding:14px}nav .btn-nav{margin:8px 0 0}
  .badge{position:relative;right:auto;top:auto;margin:30px auto 0;width:min(70vw,260px)}
  .hero-in{padding-top:44px;padding-bottom:70px}.year{right:8px;bottom:-14px}
  .fcards{grid-template-columns:1fr}.band{padding:100px 0 64px}
}
@media(max-width:520px){.cats{grid-template-columns:1fr}.foot{grid-template-columns:1fr}dl{grid-template-columns:1fr 1fr;gap:14px 20px}.copy-bar{flex-direction:column;gap:6px}.dk{width:100%}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
