:root{
  --text-xs:clamp(.75rem,.7rem + .25vw,.875rem);
  --text-sm:clamp(.875rem,.8rem + .35vw,1rem);
  --text-base:clamp(1rem,.95rem + .25vw,1.0625rem);
  --text-lg:clamp(1.0625rem,1rem + .5vw,1.25rem);
  --text-xl:clamp(1.5rem,1.2rem + 1.25vw,2.25rem);
  --text-2xl:clamp(1.9rem,1.2rem + 2.2vw,3rem);
  --text-hero:clamp(2.1rem,1rem + 3.7vw,3.9rem);
  --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;
  --space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;

  --bg:#08111b;--panel:#101922;--panel-2:#16222e;--border:#24323f;
  --text:#eef3f8;--muted:#b3c1cd;
  --blue:#1ca7ff;--blue-soft:#69bdf7;--red:#e8112d;
  --radius:16px;--max:1120px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,sans-serif;font-size:var(--text-base);line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
h1,h2{margin:0;font-family:Archivo,sans-serif;font-weight:900;line-height:1.06;letter-spacing:-.015em}
p{margin:0}
.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--space-6)}
.narrow{max-width:760px}
.center{text-align:center}
.skip{position:absolute;left:-9999px}
.skip:focus{left:var(--space-4);top:var(--space-4);z-index:99;background:var(--panel);padding:var(--space-2) var(--space-4);border-radius:8px}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
section{padding-block:clamp(var(--space-12),7vw,var(--space-24))}
.sec-t{font-size:var(--text-2xl)}
.muted{color:var(--muted)}
.body-lg{font-size:var(--text-lg);color:var(--muted);margin-top:var(--space-6)}
.kicker{font-size:var(--text-xs);letter-spacing:.22em;text-transform:uppercase;font-weight:700;color:var(--blue-soft);margin-bottom:var(--space-4)}
.kicker-dark{color:var(--blue-soft)}

/* header */
.hdr{position:sticky;top:0;z-index:50;background:rgba(8,17,27,.86);backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:border-color .3s}
.hdr.scrolled{border-bottom-color:var(--border)}
.hdr-in{display:flex;align-items:center;gap:var(--space-8);min-height:70px}
.brand img{width:170px}
.hdr nav{display:flex;gap:var(--space-6);margin-left:auto}
.hdr nav a{font-size:var(--text-sm);font-weight:500;color:var(--muted);text-decoration:none}
.hdr nav a:hover{color:#fff}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:Archivo,sans-serif;font-size:var(--text-sm);font-weight:700;letter-spacing:.02em;padding:.8rem 1.5rem;border-radius:999px;text-decoration:none;border:1px solid transparent;transition:transform .2s,background .2s,color .2s;white-space:nowrap}
.btn:hover{transform:translateY(-1px)}
.btn-blue{background:var(--blue);color:#04121e}
.btn-blue:hover{background:#4fbcff}
.btn-white{background:#fff;color:#0a6fb3}
.btn-white:hover{background:#eef6fd}
.btn-ghost{border-color:currentColor;color:inherit}
.btn-ghost:hover{background:rgba(255,255,255,.1)}
.btn-lg{padding:1rem 2rem;font-size:var(--text-base)}

/* hero */
.hero{position:relative;isolation:isolate;min-height:min(94vh,900px);display:flex;align-items:center;padding-block:var(--space-20);overflow:hidden}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 72%;z-index:-2}
.hero-scrim{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(8,17,27,.86) 0%,rgba(8,17,27,.66) 45%,rgba(8,17,27,.95) 100%)}
.hero-in{max-width:900px;text-align:center;margin-inline:auto}
.hero h1{font-size:var(--text-hero);text-transform:uppercase}
.h1-blue{color:var(--blue-soft)}
.lede{margin:var(--space-6) auto 0;max-width:58ch;font-size:var(--text-lg);color:#d8e3ec}
.hero-cta{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-8);justify-content:center}
.free-tag{margin-top:var(--space-4);font-size:var(--text-sm);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.free-tag strong{color:#fff}
.count{display:flex;gap:var(--space-10);justify-content:center;margin:var(--space-10) 0 var(--space-2);padding-top:var(--space-6);border-top:1px solid rgba(255,255,255,.2)}
.count dt{font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;color:#a9bccd}
.count dd{margin:0;font-family:Archivo,sans-serif;font-weight:900;font-size:clamp(1.9rem,1rem + 2.6vw,2.9rem);line-height:1.05}
.count-note{font-size:var(--text-sm);color:#a9bccd}

/* why */
.why{background:var(--panel)}
.checks{list-style:none;margin:var(--space-10) 0 0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}
.checks li{display:flex;align-items:center;gap:var(--space-3);background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4) var(--space-6);font-size:var(--text-base);font-weight:500}
.checks li::before{content:"";flex:none;width:22px;height:22px;border-radius:999px;background:var(--blue);
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12l5 5L20 6' fill='none' stroke='black' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat,linear-gradient(#000,#000);
  mask-composite:exclude;-webkit-mask-composite:destination-out}

/* giveback */
.giveback .sec-t{margin-top:var(--space-2)}
.giveback strong{color:#fff}

/* sponsors */
.sponsors{background:var(--panel)}
.logos{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-6);margin-top:var(--space-10)}
.logo-card{display:grid;place-items:center;width:200px;height:132px;border-radius:var(--radius);border:1px solid var(--border)}
.logo-dark{background:var(--panel-2)}
.logo-light{background:#fff;border-color:#fff}
.logo-card img{width:112px}
.give-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-top:var(--space-10)}
.give{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-6);font-size:var(--text-base);color:var(--muted);line-height:1.7}
.give strong{color:#fff}

/* details */
.days{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-top:var(--space-10)}
.day{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-6);text-align:center}
.day-lead{background:var(--blue);border-color:var(--blue);color:#04121e}
.dow{font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;opacity:.8;font-weight:600}
.date{font-family:Archivo,sans-serif;font-weight:700;font-size:var(--text-base);margin-top:var(--space-1);opacity:.9}
.time{font-family:Archivo,sans-serif;font-weight:900;font-size:clamp(1.5rem,1rem + 1.6vw,2.1rem);line-height:1.1;margin-top:var(--space-2)}
.day .note{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.12em;font-weight:700;margin-top:var(--space-2)}
.venue-line{margin-top:var(--space-10);text-align:center;font-family:Archivo,sans-serif;font-weight:900;font-size:var(--text-xl);color:var(--blue-soft)}
.fineprint{text-align:center;color:var(--muted);font-size:var(--text-sm);margin-top:var(--space-2)}
#ics{margin-top:var(--space-8)}

/* visit */
.visit{background:var(--panel)}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(var(--space-8),5vw,var(--space-16));align-items:center}
.visit address{font-style:normal;font-family:Archivo,sans-serif;font-weight:700;font-size:var(--text-lg);margin-top:var(--space-6);line-height:1.35}
.visit .muted{margin-top:var(--space-4);max-width:46ch}
.visit-cta{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-8)}
.map-card{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--panel-2)}
.map-card iframe{width:100%;height:380px;border:0;display:block}
.map-foot{padding:var(--space-3) var(--space-4);font-size:var(--text-xs);color:var(--muted);border-top:1px solid var(--border)}
.map-foot a{text-decoration:underline}

/* closer */
.closer{background:var(--blue);color:#04121e;text-align:center}
.closer h2{font-size:var(--text-2xl);text-transform:uppercase}
.closer p{margin:var(--space-6) 0 var(--space-8);font-size:var(--text-lg);font-weight:500}

.ftr{background:#050c14;padding-block:var(--space-12);text-align:center}
.ftr-in{display:grid;justify-items:center;gap:var(--space-3)}
.ftr img{width:190px}
.ftr p{font-size:var(--text-sm);letter-spacing:.04em}
.ftr .muted{font-size:var(--text-xs)}
.ftr a{text-decoration:underline}

@media (max-width:900px){
  .hdr nav{display:none}
  .checks,.give-grid,.days,.grid-2{grid-template-columns:1fr}
  .hero{min-height:auto;padding-block:var(--space-16)}
  .count{gap:var(--space-6)}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}html{scroll-behavior:auto}}

/* lineup */
.lineup{background:var(--panel)}
.lineup-intro{margin-top:var(--space-4);max-width:70ch;color:var(--muted)}
.lineup-intro a{color:var(--blue-soft)}
.perks{list-style:none;margin:var(--space-6) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.perks li{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:.45rem .9rem}
.bgroup-t{font-family:Archivo,sans-serif;font-weight:900;text-transform:uppercase;letter-spacing:.06em;font-size:1rem;margin:3.25rem 0 1.25rem;padding-bottom:.6rem;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:.6rem}
.bgroup-t span{font-size:.7rem;font-weight:700;letter-spacing:.1em;color:#04121e;background:var(--blue-soft);border-radius:999px;padding:.15rem .55rem}
.bgrid{margin-top:2.5rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1.25rem}
.bcard{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:border-color .2s,transform .2s}
.bcard:hover{border-color:var(--blue);transform:translateY(-3px)}
.b-img{display:block;aspect-ratio:4/3;background:#0b1520;overflow:hidden}
.b-img img{width:100%;height:100%;object-fit:cover;display:block}
.b-body{padding:1.1rem 1.15rem 1.25rem;display:flex;flex-direction:column;flex:1}
.b-body h3{font-family:Archivo,sans-serif;font-weight:900;text-transform:uppercase;font-size:1rem;line-height:1.2;margin:0}
.b-sub{margin:.3rem 0 0;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--blue-soft);font-weight:700}
.b-specs{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem}
.b-specs li{font-size:.7rem;color:var(--muted);border:1px solid var(--border);border-radius:6px;padding:.2rem .45rem;background:rgba(255,255,255,.02)}
.b-foot{margin-top:auto;padding-top:1rem}
.b-price{margin:0;font-family:Archivo,sans-serif;font-weight:900;font-size:1.3rem;letter-spacing:-.01em;display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}
.b-price span{font-family:Inter,sans-serif;font-size:.65rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.b-msrp{margin:.3rem 0 0;font-size:.75rem;color:var(--muted)}
.b-msrp s{opacity:.7}
.b-link{display:inline-block;margin-top:.9rem;font-size:.8rem;font-weight:700;color:var(--blue-soft);text-decoration:none}
.b-link:hover{text-decoration:underline}
.lineup-cta{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2.5rem}
@media(max-width:640px){.bgrid{grid-template-columns:1fr 1fr;gap:.85rem}.b-body{padding:.85rem}.b-body h3{font-size:.85rem}.b-price{font-size:1.05rem}.b-specs li{font-size:.65rem}}

.lineup-fine{margin:2rem 0 0;font-size:.78rem;line-height:1.6;color:var(--muted);opacity:.85;max-width:80ch}

.give-head{max-width:68ch}
.give-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.25rem;margin-top:2.75rem}
.give{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;display:flex;flex-direction:column;gap:1.1rem}
.give p{margin:0;color:var(--muted);font-size:.95rem;line-height:1.65}
.give p strong{color:var(--text)}
.give-logo{height:76px;border-radius:10px;display:flex;align-items:center;justify-content:center;padding:.75rem}
.give-logo img{max-height:100%;width:auto;object-fit:contain}
.give-logo.logo-dark{background:#0a1118;border:1px solid var(--border)}
.give-logo.logo-light{background:#fff}
.give-logo.logo-btm{background:#0a1118;border:1px solid var(--border)}
