
/* \u2500\u2500\u2500 DESIGN TOKENS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
:root {
  --primary:                 #f0a8cc;
  --primary-container:       #e376ae;
  --on-primary-container:    #1a0010;
  --primary-fixed-dim:       #f0a8cc;
  --surface:                 #131313;
  --surface-dim:             #131313;
  --surface-container-lowest:#0e0e0e;
  --surface-container-low:   #1c1b1b;
  --surface-container:       #201f1f;
  --surface-container-high:  #2a2a2a;
  --surface-container-highest:#353534;
  --surface-bright:          #393939;
  --on-surface:              #ffffff;
  --on-surface-variant:      #e8e8e8;
  --outline:                 #aaaaaa;
  --outline-variant:         #6b1f4a;
  --secondary:               #e6feff;
  --secondary-fixed:         #63f7ff;
  --secondary-fixed-dim:     #00dce5;
  --on-secondary-container:  #006c71;
  --background:              #131313;
  --on-background:           #ffffff;
  --error:                   #ffb4ab;
  --ghost-border:            rgba(180,60,120,0.15);

  --ff-headline: 'Epilogue', sans-serif;
  --ff-body:     'Plus Jakarta Sans', sans-serif;
}

/* \u2500\u2500\u2500 RESET \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  background: var(--surface);
  color: var(--on-surface);
  font-family: var(--ff-body);
  font-size: 16px;
  line-height: 1.6;
  overflow-x: hidden;
}
img { display:block; max-width:100%; }
a { text-decoration:none; color:inherit; }
button { cursor:pointer; font-family:var(--ff-body); border:none; }
input, textarea, select {
  font-family:var(--ff-body);
  background:var(--surface-container-low);
  color:var(--on-surface);
  border:none;
  border-bottom: 2px solid rgba(180,60,120,0.3);
  outline:none;
  width:100%;
  padding:14px 16px;
  transition:border-color .2s;
}
input:focus, textarea:focus, select:focus { border-bottom-color:var(--secondary-fixed); }
input::placeholder, textarea::placeholder { color:var(--outline); }
textarea { resize:vertical; }
select { appearance:none; cursor:pointer; }

/* \u2500\u2500\u2500 PAGE SYSTEM \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */

/* \u2500\u2500\u2500 MATERIAL ICONS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.material-symbols-outlined {
  font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24;
}
.icon-fill { font-variation-settings:'FILL' 1,'wght' 400,'GRAD' 0,'opsz' 24; }

/* \u2500\u2500\u2500 TYPOGRAPHY \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.font-headline { font-family:var(--ff-headline); }

.eyebrow {
  font-family:var(--ff-body);
  font-size:11px;
  font-weight:700;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--primary);
  display:block;
  margin-bottom:14px;
}
.eyebrow.cyan { color:var(--secondary-fixed); }
.eyebrow.dim  { color:var(--outline); }

h1.display {
  font-family:var(--ff-headline);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:-.02em;
  line-height:.9;
  font-size:clamp(56px,9vw,130px);
}
h1.display span.orange { color:var(--primary-container); }
h1.display span.primary { color:var(--primary); }
h1.display em { color:var(--primary); font-style:italic; }

h2.section-title {
  font-family:var(--ff-headline);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:-.02em;
  line-height:.93;
  font-size:clamp(40px,5vw,80px);
}
h2.section-title span.orange { color:var(--primary-container); }
h2.section-title span.cyan   { color:var(--secondary-fixed); }
h2.section-title span.primary{ color:var(--primary); }
h2.section-title em { font-style:italic; }

h3.card-title {
  font-family:var(--ff-headline);
  font-weight:700;
  text-transform:uppercase;
  font-size:clamp(22px,2.5vw,32px);
  letter-spacing:-.01em;
  line-height:1;
  margin-bottom:8px;
}
h4.sub-title {
  font-family:var(--ff-headline);
  font-weight:700;
  text-transform:uppercase;
  font-size:20px;
  letter-spacing:-.01em;
}

.counter {
  font-family:var(--ff-headline);
  font-weight:900;
  line-height:1;
  letter-spacing:-.02em;
}
.counter.xl  { font-size:clamp(60px,9vw,120px); }
.counter.lg  { font-size:clamp(40px,5vw,72px); }
.counter.md  { font-size:clamp(28px,3vw,48px); }
.counter.cyan   { color:var(--secondary-fixed-dim); }
.counter.orange { color:var(--primary-container); }
.counter.primary{ color:var(--primary); }
.counter.white  { color:#fff; }

p.body-lg  { font-size:18px; line-height:1.7; color:var(--on-surface-variant); }
p.body-md  { font-size:16px; line-height:1.7; color:var(--on-surface-variant); }
p.body-sm  { font-size:14px; line-height:1.6; color:var(--outline); }
p.italic   { font-style:italic; color:var(--primary); }

.label-tag {
  font-family:var(--ff-body);
  font-size:10px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--outline);
  display:block;
  margin-bottom:8px;
}
.label-tag.primary { color:var(--primary); }
.label-tag.cyan    { color:var(--secondary-fixed); }
.label-tag.orange  { color:var(--primary-container); }

/* \u2500\u2500\u2500 NAV \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.site-nav {
  position:fixed; top:0; left:0; right:0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 60px; height:68px;
  background:rgba(19,19,19,.95);
  backdrop-filter:blur(16px);
  border-bottom:1px solid var(--ghost-border);
}
.nav-logo {
  font-family:var(--ff-headline);
  font-size:22px; font-weight:900;
  letter-spacing:-.03em;
  color:var(--primary-container);
  cursor:pointer;
}
.nav-links { display:flex; gap:36px; }
.nav-link {
  font-family:var(--ff-headline);
  font-size:13px; font-weight:700;
  text-transform:uppercase; letter-spacing:.05em;
  color:rgba(255,255,255,.45);
  cursor:pointer; transition:color .2s;
  padding-bottom:4px;
}
.nav-link:hover { color:#fff; }
.nav-link.active {
  color:var(--primary);
  border-bottom:2px solid var(--primary-container);
}
.nav-cta {
  background:var(--primary-container);
  color:var(--on-primary-container);
  padding:10px 28px;
  font-family:var(--ff-headline);
  font-size:13px; font-weight:700;
  text-transform:uppercase; letter-spacing:.08em;
  transition:background .2s, transform .15s;
}
.nav-cta:hover { background:var(--primary); transform:scale(.97); }

/* \u2500\u2500\u2500 BUTTONS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--ff-headline);
  font-weight:700; text-transform:uppercase; letter-spacing:-.01em;
  transition:all .2s; cursor:pointer; border:none;
}
.btn-primary {
  background:var(--primary-container);
  color:var(--on-primary-container);
  padding:16px 40px; font-size:16px;
}
.btn-primary:hover { background:var(--primary); }
.btn-primary.lg { padding:20px 52px; font-size:20px; }
.btn-primary.sm { padding:10px 24px; font-size:13px; }

.btn-secondary {
  background:transparent;
  color:#fff;
  padding:16px 40px; font-size:16px;
  border:2px solid rgba(255,255,255,.25);
}
.btn-secondary:hover { border-color:#fff; }

.btn-cyan {
  background:var(--secondary-fixed);
  color:var(--on-secondary-container);
  padding:16px 40px; font-size:16px;
}
.btn-cyan:hover { background:var(--secondary-fixed-dim); }

.btn-white {
  background:#fff; color:#000;
  padding:16px 40px; font-size:16px;
}
.btn-white:hover { background:var(--secondary-fixed); }

.btn-ghost-orange {
  background:transparent;
  color:var(--primary);
  border:none; padding:0;
  font-family:var(--ff-body);
  font-weight:700; font-size:15px;
  letter-spacing:.1em; text-transform:uppercase;
  border-bottom:2px solid var(--primary-container);
  padding-bottom:3px;
  transition:color .2s, border-color .2s;
}
.btn-ghost-orange:hover { color:#fff; border-color:#fff; }

.btn-row { display:flex; gap:16px; flex-wrap:wrap; margin-top:28px; }

/* \u2500\u2500\u2500 LAYOUT \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.container { max-width:1400px; margin:0 auto; }
.px { padding-left:60px; padding-right:60px; }
.section { padding:96px 60px; }
.section.tight { padding:64px 60px; }
.section.flush { padding:0; }

.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:64px; }
.grid-2.asymm { grid-template-columns:1.3fr 1fr; }
.grid-2.asymm-r { grid-template-columns:1fr 1.3fr; }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; }
.grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:2px; }
.grid-6 { display:grid; grid-template-columns:repeat(6,1fr); gap:2px; }
.gap-20 { gap:20px; }
.gap-4 { gap:4px; }
.items-center { align-items:center; }
.items-start { align-items:flex-start; }
.items-end { align-items:flex-end; }
.justify-between { justify-content:space-between; }
.flex { display:flex; }
.flex-col { display:flex; flex-direction:column; }
.flex-wrap { flex-wrap:wrap; }
.gap-8 { gap:8px; }
.gap-12 { gap:12px; }
.gap-16 { gap:16px; }
.gap-24 { gap:24px; }
.gap-32 { gap:32px; }
.mt-4  { margin-top:4px; }
.mt-8  { margin-top:8px; }
.mt-12 { margin-top:12px; }
.mt-16 { margin-top:16px; }
.mt-20 { margin-top:20px; }
.mt-24 { margin-top:24px; }
.mt-32 { margin-top:32px; }
.mt-40 { margin-top:40px; }
.mt-48 { margin-top:48px; }
.mt-56 { margin-top:56px; }
.mb-4  { margin-bottom:4px; }
.mb-8  { margin-bottom:8px; }
.mb-16 { margin-bottom:16px; }
.mb-24 { margin-bottom:24px; }
.mb-32 { margin-bottom:32px; }
.mb-40 { margin-bottom:40px; }
.mb-48 { margin-bottom:48px; }
.w-full { width:100%; }
.text-center { text-align:center; }
.relative { position:relative; }
.absolute { position:absolute; }
.inset-0 { inset:0; }
.z-10 { z-index:10; }
.overflow-hidden { overflow:hidden; }

/* Backgrounds */
.bg-base    { background:var(--surface); }
.bg-low     { background:var(--surface-container-low); }
.bg-mid     { background:var(--surface-container); }
.bg-high    { background:var(--surface-container-high); }
.bg-highest { background:var(--surface-container-highest); }
.bg-lowest  { background:var(--surface-container-lowest); }
.bg-orange  { background:var(--primary-container); }

/* \u2500\u2500\u2500 TICKER \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.ticker-wrap { background:var(--primary-container); overflow:hidden; white-space:nowrap; padding:14px 0; }
@keyframes ticker { from{transform:translateX(0)} to{transform:translateX(-50%)} }
.ticker-track { display:inline-flex; animation:ticker 28s linear infinite; }
.ticker-item {
  font-family:var(--ff-headline); font-size:18px; font-weight:900;
  letter-spacing:.08em; text-transform:uppercase;
  color:var(--on-primary-container); padding:0 32px;
}
.ticker-sep { color:rgba(26,0,16,.3); padding:0 8px; font-size:14px; }

/* \u2500\u2500\u2500 HERO \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.hero {
  position:relative; min-height:100vh;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:68px 60px 80px;
  overflow:hidden;
}

/* YouTube video background */
.hero-video-bg {
  position:absolute; inset:0; z-index:0; overflow:hidden; background:#0a0a0a;
}
.hero-video-bg iframe {
  position:absolute;
  top:50%; left:50%;
  width:177.78vh;
  min-width:100%;
  height:100vh;
  min-height:56.25vw;
  transform:translate(-50%,-50%);
  pointer-events:none;
  border:none;
}

/* Animated gradient overlay */
.hero-video-bg::after {
  content:'';
  position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(to top, #0e0e0e 6%, rgba(13,13,13,.65) 40%, rgba(13,13,13,.2) 100%),
    linear-gradient(to right, rgba(13,13,13,.8) 0%, transparent 65%);
  animation:heroFade 6s ease-in-out infinite alternate;
}
@keyframes heroFade {
  0%   { opacity: 1; }
  100% { opacity: 0.92; }
}

.hero-content { position:relative; z-index:2; max-width:1100px; }
.hero-sub-label {
  font-family:var(--ff-body); font-size:12px; font-weight:700;
  letter-spacing:.3em; text-transform:uppercase;
  color:var(--secondary-fixed);
  display:flex; align-items:center; gap:12px; margin-bottom:20px;
}
.hero-sub-label::before { content:''; display:block; width:40px; height:2px; background:var(--secondary-fixed); }
.hero-location {
  display:flex; flex-direction:column; gap:2px;
}
.hero-location .loc-label {
  font-size:11px; font-weight:700; letter-spacing:.2em;
  text-transform:uppercase; color:var(--outline);
}
.hero-location .loc-name {
  font-family:var(--ff-headline); font-size:24px; font-weight:700; color:#fff;
}

/* \u2500\u2500\u2500 PAGE HERO (inner pages) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.page-hero {
  position:relative;
  min-height:60vh;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:110px 60px 60px;
  overflow:hidden;
}
.page-hero-bg {
  position:absolute; inset:0;
}
.page-hero-bg img {
  width:100%; height:100%; object-fit:cover; opacity:.3; mix-blend-mode:luminosity;
}
.page-hero-bg::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(to top, var(--surface) 20%, transparent 100%);
}
.page-hero-content { position:relative; z-index:2; max-width:1400px; margin:0 auto; width:100%; }

/* \u2500\u2500\u2500 ACCENT LINE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.accent-line { width:56px; height:3px; background:var(--primary-container); margin-bottom:24px; }
.accent-line.cyan { background:var(--secondary-fixed); }

/* \u2500\u2500\u2500 SECTION DIVIDER \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.divider { height:1px; background:var(--ghost-border); }

/* \u2500\u2500\u2500 STAT CARDS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.stat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; }
.stat-card {
  background:var(--surface-container-low);
  padding:48px 40px;
  display:flex; flex-direction:column;
}
.stat-card.featured {
  background:var(--surface-container-high);
  border-left:4px solid var(--primary-container);
  border-right:4px solid var(--primary-container);
  transform:scaleY(1.02);
  position:relative; z-index:2;
}
.stat-desc {
  font-size:11px; font-weight:700; letter-spacing:.15em;
  text-transform:uppercase; color:var(--outline); margin-top:8px;
}

/* \u2500\u2500\u2500 TIMELINE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.timeline { display:flex; flex-direction:column; }
.timeline-item {
  display:grid; grid-template-columns:110px 1fr;
  gap:24px; padding:24px 0;
  border-bottom:1px solid rgba(180,60,120,.15);
}
.timeline-item:last-child { border-bottom:none; }
.timeline-time {
  font-size:11px; font-weight:700; letter-spacing:.15em;
  text-transform:uppercase; color:var(--secondary-fixed-dim); padding-top:4px;
}
.timeline-label { color:var(--outline); font-size:14px; line-height:1.5; margin-top:4px; }

/* \u2500\u2500\u2500 SPONSOR GRID \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.sponsor-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:2px; }
.sponsor-slot {
  background:var(--surface-container);
  padding:28px 20px;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:8px; min-height:100px; cursor:pointer;
  transition:background .2s;
}
.sponsor-slot:hover { background:var(--surface-container-highest); }
.sponsor-name-lg {
  font-family:var(--ff-headline); font-size:14px; font-weight:900;
  text-transform:uppercase; letter-spacing:.05em; color:var(--on-surface-variant);
}
.sponsor-sub { font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--outline); }

/* \u2500\u2500\u2500 DONATION BLADE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.tier-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; }
.tier-row {
  background:var(--surface);
  padding:36px 32px;
  display:flex; justify-content:space-between; align-items:center;
  cursor:pointer; transition:background .2s;
  text-decoration:none;
}
.tier-row:hover { background:var(--primary-container); }
.tier-row:hover .tier-cta-tag { background:#fff; color:#000; }
.tier-row:hover .tier-tier-name { color:rgba(26,0,16,.7); }
.tier-amount {
  font-family:var(--ff-headline); font-size:40px; font-weight:900;
  color:#fff; line-height:1;
}
.tier-tier-name {
  font-size:12px; font-weight:700; letter-spacing:.12em;
  text-transform:uppercase; color:var(--outline); margin-top:6px;
}
.tier-cta-tag {
  background:var(--surface-container-high);
  color:#fff;
  font-family:var(--ff-headline); font-size:12px; font-weight:700;
  text-transform:uppercase; letter-spacing:.08em;
  padding:10px 20px; transition:all .2s;
}
.tier-row.featured-tier { background:var(--primary-container); }
.tier-row.featured-tier .tier-amount { color:var(--on-primary-container); }
.tier-row.featured-tier .tier-tier-name { color:rgba(26,0,16,.6); }
.tier-row.featured-tier .tier-cta-tag { background:#fff; color:#000; }
.tier-row.featured-tier:hover { background:var(--primary); }
.blade-footer {
  text-align:center; padding-top:28px;
  font-size:13px; color:var(--outline);
}
.blade-footer strong { color:var(--on-surface-variant); }

/* \u2500\u2500\u2500 BENTO / SCHEDULE GRID \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.bento { display:grid; grid-template-columns:repeat(4,1fr); gap:4px; }
.bento-main {
  grid-column:span 2; grid-row:span 2;
  background:var(--surface-container-lowest);
  padding:48px 40px;
  display:flex; flex-direction:column; justify-content:space-between;
  min-height:380px;
  border-left:8px solid var(--secondary-fixed);
}
.bento-card {
  background:var(--surface-container);
  padding:32px 28px;
  display:flex; flex-direction:column; justify-content:space-between;
  transition:background .2s;
}
.bento-card:hover { background:var(--surface-container-highest); }
.bento-cta {
  grid-column:span 2;
  background:var(--primary-container);
  padding:40px;
  display:flex; justify-content:space-between; align-items:center; gap:24px;
}
.bento-cta h3 {
  font-family:var(--ff-headline); font-size:28px; font-weight:900;
  text-transform:uppercase; color:var(--on-primary-container); line-height:1.1;
}

/* \u2500\u2500\u2500 PHOTO GRID \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.photo-mosaic {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-template-rows:280px 280px;
  gap:4px;
}
.photo-cell {
  background:var(--surface-container-low);
  position:relative; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  transition:opacity .3s;
}
.photo-cell:hover { opacity:.8; }
.photo-cell.span-2x2 { grid-column:span 2; grid-row:span 2; }
.photo-cell-label {
  font-family:var(--ff-headline); font-size:48px; font-weight:900;
  color:rgba(255,255,255,.04); text-transform:uppercase; letter-spacing:.06em;
  pointer-events:none;
}

/* \u2500\u2500\u2500 HOST CARDS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.host-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:4px; }
.host-card {
  background:var(--surface-container-low);
}
.host-photo {
  aspect-ratio:3/4; overflow:hidden;
  background:var(--surface-container);
  display:flex; align-items:center; justify-content:center;
}
.host-photo img {
  width:100%; height:100%; object-fit:cover;
  filter:grayscale(100%); transition:filter .5s;
}
.host-card:hover .host-photo img { filter:grayscale(0%); }
.host-info { padding:20px 24px; }
.host-name {
  font-family:var(--ff-headline); font-size:26px; font-weight:700;
  text-transform:uppercase; letter-spacing:-.01em; margin-bottom:4px;
}
.host-title { font-size:13px; color:var(--outline); line-height:1.4; }
.host-org   { font-size:13px; color:var(--primary-container); font-weight:600; margin-top:2px; }

/* \u2500\u2500\u2500 ARCHIVE (shop) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.archive-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:2px; }
.archive-item { background:var(--surface-container); overflow:hidden; }
.archive-thumb {
  aspect-ratio:.85; background:var(--surface-container-low);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  position:relative; overflow:hidden;
}
.archive-yr {
  font-family:var(--ff-headline); font-weight:900; font-size:80px;
  color:var(--surface-container-highest); line-height:1;
}
.sold-overlay {
  position:absolute; inset:0;
  background:rgba(14,14,14,.7); backdrop-filter:blur(2px);
  display:flex; align-items:center; justify-content:center;
}
.sold-tag {
  background:var(--primary-container); color:var(--on-primary-container);
  font-family:var(--ff-body); font-size:10px; font-weight:800;
  letter-spacing:.16em; text-transform:uppercase; padding:6px 16px;
}
.archive-info { padding:16px 20px; }
.archive-edition {
  font-family:var(--ff-headline); font-size:22px; font-weight:700;
  text-transform:uppercase; margin-bottom:2px;
}
.archive-cause { font-size:11px; color:var(--outline); font-weight:700; letter-spacing:.08em; text-transform:uppercase; }

/* \u2500\u2500\u2500 SHIRT FEATURE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.shirt-swatch-row { display:flex; gap:8px; flex-wrap:wrap; margin:20px 0; }
.size-btn {
  border:2px solid rgba(180,60,120,.3);
  color:var(--on-surface-variant);
  background:transparent;
  font-family:var(--ff-body); font-size:12px; font-weight:700;
  text-transform:uppercase; letter-spacing:.08em;
  padding:12px 18px; cursor:pointer;
  transition:all .2s;
}
.size-btn:hover { border-color:#fff; color:#fff; }
.size-btn.active { background:#fff; color:#000; border-color:#fff; }

/* \u2500\u2500\u2500 SOLD OUT BADGES \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.so-strip { display:flex; flex-wrap:wrap; gap:8px; margin-top:24px; }
.so-badge {
  font-family:var(--ff-body); font-size:10px; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--outline);
  border:1px solid rgba(180,60,120,.25); padding:6px 14px;
}
.so-badge span { color:var(--primary-container); margin-left:6px; }

/* \u2500\u2500\u2500 FORM \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.form-field { margin-bottom:20px; }
.form-label {
  display:block; font-size:10px; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase;
  color:var(--outline); margin-bottom:8px;
}
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }

/* \u2500\u2500\u2500 LEFT BORDER ACCENT \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.l-border-orange { border-left:4px solid var(--primary-container); padding-left:24px; }
.l-border-cyan   { border-left:4px solid var(--secondary-fixed);    padding-left:24px; }

/* \u2500\u2500\u2500 QUOTE BLOCK \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.quote-block {
  background:var(--surface-container-low);
  padding:56px 64px;
  border-left:4px solid var(--primary-container);
}
.quote-text {
  font-family:var(--ff-headline); font-size:clamp(22px,2.5vw,32px);
  font-weight:900; text-transform:uppercase; letter-spacing:-.01em;
  line-height:1.15; margin-bottom:24px;
}
.quote-cite {
  font-size:11px; font-weight:700; letter-spacing:.18em;
  text-transform:uppercase; color:var(--outline);
}

/* \u2500\u2500\u2500 VIDEO BLOCK \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.video-block {
  background:var(--surface-container-lowest);
  aspect-ratio:16/9; position:relative; overflow:hidden;
  cursor:pointer; display:flex; align-items:center; justify-content:center;
}
.video-block::before {
  content:''; position:absolute; inset:0;
  background:linear-gradient(135deg, rgba(255,107,0,.08) 0%, transparent 60%);
}
.play-btn {
  position:relative; z-index:2;
  display:flex; flex-direction:column; align-items:center; gap:12px;
}
.play-ring {
  width:80px; height:80px; border-radius:50%;
  border:2px solid rgba(255,255,255,.25);
  display:flex; align-items:center; justify-content:center;
  transition:all .2s;
}
.video-block:hover .play-ring { border-color:var(--primary-container); background:rgba(255,107,0,.15); }
.play-ring-icon { font-size:40px; color:#fff; margin-left:4px; }
.video-label { font-size:11px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--outline); }

/* \u2500\u2500\u2500 EMAIL CAPTURE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.email-row { display:flex; gap:4px; max-width:560px; margin:0 auto; }
.email-row input { border-bottom:2px solid rgba(255,255,255,.2); background:var(--surface-container); }
.email-row input:focus { border-bottom-color:#fff; }
.email-small { font-size:11px; color:var(--outline); text-align:center; margin-top:10px; letter-spacing:.06em; }

/* \u2500\u2500\u2500 HISTORY TRACK \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.history-stack { display:flex; flex-direction:column; gap:2px; }
.history-card {
  background:var(--surface-container-low);
  padding:28px 32px; position:relative; overflow:hidden;
}
.history-card.featured { background:var(--primary-container); }
.h-year { font-family:var(--ff-headline); font-weight:900; font-size:52px; line-height:1; }
.h-raised { font-family:var(--ff-headline); font-weight:900; font-size:36px; color:var(--secondary-fixed-dim); line-height:1; margin:4px 0 10px; }
.history-card.featured .h-raised { color:var(--on-primary-container); }
.h-ghost { position:absolute; right:-10px; top:-10px; font-family:var(--ff-headline); font-size:100px; font-weight:900; opacity:.06; letter-spacing:-.02em; }

/* \u2500\u2500\u2500 TEMPLATE CARD (sponsorship tiers) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.tier-card {
  background:var(--surface);
  padding:48px 40px;
  transition:background .2s; position:relative;
}
.tier-card:hover { background:var(--surface-container); }
.tier-card.featured-card {
  background:var(--surface-container-high);
  outline:2px solid var(--primary-container);
  outline-offset:-2px;
}
.tier-num { font-family:var(--ff-headline); font-size:32px; font-weight:900; font-style:italic; opacity:.2; }
.tier-features { list-style:none; margin:24px 0 32px; }
.tier-features li {
  display:flex; gap:10px; padding:12px 0;
  border-bottom:1px solid rgba(180,60,120,.12);
  font-size:15px; color:var(--on-surface-variant); font-weight:500;
}
.tier-features li:last-child { border-bottom:none; }
.tier-features li::before { content:'/'; color:var(--primary); }
.tier-features.cyan li::before { color:var(--secondary-fixed); }
.tier-price {
  font-family:var(--ff-headline); font-size:40px; font-weight:900;
  letter-spacing:-.01em; margin-bottom:20px;
}
.most-pop {
  position:absolute; top:-14px; left:50%; transform:translateX(-50%);
  background:var(--primary-container); color:var(--on-primary-container);
  font-size:10px; font-weight:700; letter-spacing:.15em; text-transform:uppercase;
  padding:4px 14px;
}

/* \u2500\u2500\u2500 CORPORATE TEMPLATE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.email-template {
  background:var(--surface-container);
  padding:28px;
}
.template-header {
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:20px; padding-bottom:16px;
  border-bottom:1px solid rgba(180,60,120,.12);
}
.template-body {
  background:var(--surface-container-low); padding:24px;
  font-size:13px; color:var(--on-surface-variant); line-height:1.8;
}

/* \u2500\u2500\u2500 THANK YOU \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.ty-check {
  width:88px; height:88px; border-radius:50%;
  border:2px solid rgba(99,247,255,.25);
  display:flex; align-items:center; justify-content:center;
  margin:0 auto 32px;
}
.ty-card-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; max-width:1000px; margin:0 auto 40px; }
.ty-card { background:var(--surface); padding:40px 32px; }
.ty-card.featured-ty { background:var(--primary-container); }
.ty-card .ty-icon { font-size:32px; margin-bottom:20px; display:block; }
.ty-card h3 { font-family:var(--ff-headline); font-size:26px; font-weight:700; text-transform:uppercase; margin-bottom:10px; }
.ty-card p { font-size:14px; color:var(--outline); line-height:1.6; margin-bottom:20px; }
.ty-card.featured-ty h3 { color:var(--on-primary-container); }
.ty-card.featured-ty p { color:rgba(26,0,16,.7); }

/* \u2500\u2500\u2500 FOOTER \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.site-footer {
  background:var(--surface-container-lowest);
  padding:64px 60px 32px;
  border-top:1px solid var(--ghost-border);
}
.footer-inner { display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:48px; margin-bottom:48px; }
.footer-brand-name { font-family:var(--ff-headline); font-size:22px; font-weight:900; color:#fff; margin-bottom:14px; }
.footer-desc { font-size:13px; color:#888888; text-transform:uppercase; letter-spacing:.1em; line-height:1.6; max-width:260px; }
.footer-col h4 {
  font-size:11px; font-weight:700; letter-spacing:.2em; text-transform:uppercase;
  color:rgba(255,255,255,.35); margin-bottom:18px;
}
.footer-link {
  display:block; font-size:13px; text-transform:uppercase;
  letter-spacing:.1em; color:#888888; margin-bottom:12px;
  cursor:pointer; transition:color .2s; text-decoration:none;
}
.footer-link:hover { color:var(--secondary-fixed); }

.footer-copy { font-size:11px; color:#888888; text-transform:uppercase; letter-spacing:.1em; }

/* \u2500\u2500\u2500 ANIMATIONS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
@keyframes fadeUp { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }
.fade-up { animation:fadeUp .65s ease forwards; }
.fade-up.d1 { animation-delay:.1s; }
.fade-up.d2 { animation-delay:.25s; }
.fade-up.d3 { animation-delay:.4s; }
.fade-up.d4 { animation-delay:.55s; }

/* \u2500\u2500\u2500 PRIVACY \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.privacy-body { max-width:760px; margin:0 auto; padding:80px 60px; }
.privacy-body h2 { font-family:var(--ff-headline); font-size:36px; font-weight:700; text-transform:uppercase; margin:40px 0 14px; }
.privacy-body p { font-size:16px; color:var(--on-surface-variant); line-height:1.8; margin-bottom:14px; }
.privacy-body a { color:var(--primary); border-bottom:1px solid var(--primary-container); transition:color .2s; }
.privacy-body a:hover { color:#fff; }

/* \u2500\u2500\u2500 MISC UTILS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
.text-orange  { color:var(--primary-container); }
.text-primary { color:var(--primary); }
.text-cyan    { color:var(--secondary-fixed); }
.text-cyan-dim{ color:var(--secondary-fixed-dim); }
.text-outline { color:var(--outline); }
.text-white   { color:#fff; }
.text-muted   { color:var(--on-surface-variant); }
.italic       { font-style:italic; }
.uppercase    { text-transform:uppercase; }
.progress-bar { height:4px; background:var(--surface-container-high); }
.progress-fill{ height:100%; background:var(--primary-container); transition:width 1.5s ease; }

/* ── COUNTDOWN BAR ── */
.countdown-bar {
  position:fixed;top:68px;left:0;right:0;z-index:99;
  background:rgba(14,14,14,0.92);backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(180,60,120,0.2);
  display:flex;align-items:center;justify-content:center;gap:0;
  padding:10px 0;
}
.cd-label { font-family:var(--ff-body);font-size:10px;font-weight:700;letter-spacing:0.2em;text-transform:uppercase;color:rgba(180,60,120,0.6);margin-right:20px; }
.cd-unit { display:flex;flex-direction:column;align-items:center;padding:0 14px;position:relative; }
.cd-unit:not(:last-child)::after { content:':';position:absolute;right:-2px;top:2px;font-family:var(--ff-headline);font-size:18px;font-weight:900;color:rgba(255,255,255,0.2); }
.cd-num { font-family:var(--ff-headline);font-size:20px;font-weight:900;color:#fff;line-height:1;letter-spacing:-0.02em;min-width:32px;text-align:center; }
.cd-lbl { font-family:var(--ff-body);font-size:9px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:rgba(255,255,255,0.3);margin-top:2px; }
body { padding-top:108px; }



/* ─── FOOTER THERMOMETER ───────────────────────────────────── */
.footer-thermo-wrap {
  padding: 56px 60px;
  border-top: 1px solid rgba(180,60,120,0.12);
  border-bottom: 1px solid rgba(180,60,120,0.12);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}
.footer-thermo-label {
  display: flex;
  justify-content: space-between;
  width: 100%;
  max-width: 680px;
}
.thermo-bar {
  width: 100%;
  max-width: 680px;
  height: 12px;
  background: var(--surface-container-high);
  border-radius: 6px;
  overflow: hidden;
}
.thermo-fill {
  height: 100%;
  background: linear-gradient(to right, var(--primary-container), var(--secondary-fixed));
  border-radius: 6px;
  width: 0%;
  transition: width 1.6s cubic-bezier(0.22, 1, 0.36, 1);
}
.thermo-amounts {
  display: flex;
  justify-content: space-between;
  width: 100%;
  max-width: 680px;
  align-items: baseline;
}
.thermo-raised {
  font-family: var(--ff-headline);
  font-size: clamp(36px, 5vw, 64px);
  font-weight: 900;
  color: #fff;
  letter-spacing: -0.02em;
  line-height: 1;
}
.thermo-raised span { color: var(--primary-container); }
.thermo-goal {
  font-family: var(--ff-headline);
  font-size: 20px;
  font-weight: 700;
  color: var(--outline);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* ─── DTF BIG ROW ─────────────────────────────────────────── */
.footer-dtf-row {
  border-top: 1px solid rgba(180,60,120,0.08);
  border-bottom: 1px solid rgba(180,60,120,0.08);
  padding: 28px 60px;
  text-align: center;
  overflow: hidden;
}
.footer-dtf-text {
  font-family: var(--ff-headline);
  font-size: clamp(48px, 9vw, 120px);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.03em;
  line-height: 0.9;
  color: rgba(255,255,255,0.06);
  white-space: nowrap;
}
.footer-dtf-text span { color: rgba(227,118,174,0.14); }

/* ─── FOOTER BOTTOM STRIP ─────────────────────────────────── */
.footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 60px;
  border-top: 1px solid rgba(255,255,255,0.04);
}

/* ─── RESPONSIVE ─────────────────────────────────────────── */

/* Tablet — 1024px */
@media (max-width: 1024px) {
  .section { padding: 72px 40px; }
  .section.tight { padding: 48px 40px; }
  .site-nav { padding: 0 40px; }
  .hero { padding: 68px 40px 64px; }
  .page-hero { padding: 110px 40px 48px; }
  .footer-inner { grid-template-columns: 1fr 1fr; gap: 40px; }
  .grid-2 { gap: 48px; }
  .grid-6 { grid-template-columns: repeat(3, 1fr); }
  .sponsor-grid { grid-template-columns: repeat(3, 1fr); }
  .archive-grid { grid-template-columns: repeat(3, 1fr); }
  .bento { grid-template-columns: repeat(2, 1fr); }
  .bento-main { grid-column: span 2; grid-row: span 1; min-height: 240px; }
  .bento-cta { grid-column: span 2; }
  .host-grid { grid-template-columns: repeat(2, 1fr); }
  .photo-mosaic { grid-template-columns: repeat(2, 1fr); }
  .photo-mosaic .photo-cell.span-2x2 { grid-column: span 2; grid-row: span 1; }
  h1.display { font-size: clamp(48px, 7vw, 100px); }
  h2.section-title { font-size: clamp(36px, 4.5vw, 72px); }
}

/* Mobile — 768px */
@media (max-width: 768px) {
  /* Base spacing */
  .section { padding: 56px 24px; }
  .section.tight { padding: 40px 24px; }
  .container { padding-left: 0; padding-right: 0; }

  /* Nav */
  .site-nav { padding: 0 24px; height: 60px; }
  .nav-links { gap: 20px; }
  .nav-link { font-size: 11px; }
  .nav-cta { padding: 8px 20px; font-size: 11px; }
  .countdown-bar { padding: 8px 0; }
  .cd-num { font-size: 16px; }
  .cd-lbl { font-size: 8px; }
  .cd-label { font-size: 9px; margin-right: 12px; }
  body { padding-top: 100px; }

  /* Hero */
  .hero { padding: 60px 24px 56px; min-height: 85vh; }
  .page-hero { padding: 100px 24px 40px; min-height: 50vh; }
  h1.display { font-size: clamp(40px, 11vw, 72px); }
  h2.section-title { font-size: clamp(32px, 9vw, 60px); }
  .hero-sub-label { font-size: 10px; }

  /* All 2-col grids → 1 col */
  .grid-2,
  .grid-2.asymm,
  .grid-2.asymm-r,
  [class*="grid-2"] { grid-template-columns: 1fr; gap: 40px; }

  /* 3-col → 1 col */
  .grid-3,
  .stat-grid,
  .ty-card-grid { grid-template-columns: 1fr; gap: 2px; }

  /* Tier cards — 1 col on mobile */
  .tier-grid { grid-template-columns: 1fr; }

  /* 4-col → 1 col */
  .grid-4,
  .host-grid { grid-template-columns: repeat(2, 1fr); gap: 2px; }

  /* 6-col → 2 col */
  .grid-6,
  .sponsor-grid,
  .archive-grid { grid-template-columns: repeat(2, 1fr); gap: 2px; }

  /* Bento → stacked */
  .bento { grid-template-columns: 1fr; gap: 2px; }
  .bento-main { grid-column: span 1; grid-row: span 1; min-height: 220px; padding: 28px 24px; }
  .bento-card { padding: 24px; }
  .bento-cta { grid-column: span 1; padding: 24px; flex-direction: column; gap: 20px; }
  .bento-cta h3 { font-size: 20px; }

  /* Stat cards — horizontal on mobile, stack the value */
  .stat-grid { grid-template-columns: 1fr; }
  .stat-card { padding: 32px 24px; flex-direction: row; align-items: center; justify-content: space-between; }
  .stat-card.featured { border-left: 4px solid var(--primary-container); border-right: none; border-top: none; }

  /* Sponsorship tier cards */
  .tier-card { padding: 36px 28px; }

  /* History stack — stays stacked, just reduce padding */
  .history-card { padding: 22px 24px; }
  .h-year { font-size: 40px; }
  .h-raised { font-size: 28px; }

  /* Photo mosaic → 2 col */
  .photo-mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
  .photo-cell.span-2x2 { grid-column: span 2; grid-row: span 1; }

  /* Footer → stacked */
  .footer-inner { grid-template-columns: 1fr; gap: 32px; padding: 48px 24px 36px; }
  
  .site-footer { padding: 0; }

  /* Footer DTF strip — smaller */
  .footer-dtf-strip { padding: 20px 24px; }
  .footer-dtf-text { font-size: clamp(36px, 10vw, 72px); }

  /* Form */
  .form-row { grid-template-columns: 1fr; }

  /* Email row — stack on small screens */
  .email-row { flex-direction: column; max-width: 100%; }
  .email-row .btn { width: 100%; justify-content: center; }

  /* Buttons */
  .btn-primary.lg { padding: 16px 36px; font-size: 16px; }
  .btn-row { flex-direction: column; align-items: flex-start; gap: 12px; }

  /* Thank-you card grid */
  .ty-card-grid { grid-template-columns: 1fr; max-width: 100%; }

  /* Section headings */
  .page-hero-content h1.display { font-size: clamp(40px, 10vw, 72px); }

  /* Privacy body */
  .privacy-body { padding: 40px 24px; }

  /* Nav — hide some links on very small */
  .nav-links .nav-link:nth-child(n+4) { display: none; }

  /* Inline style overrides for specific sections */
  [style*="gap:80px"] { gap: 40px !important; }
  [style*="padding:0 60px"] { padding: 0 24px !important; }
  [style*="max-width:1200px"] { padding: 0 24px !important; }
}

/* Small mobile — 480px */
@media (max-width: 480px) {
  .section { padding: 48px 20px; }
  .section.tight { padding: 36px 20px; }
  .site-nav { padding: 0 20px; }
  .hero { padding: 60px 20px 48px; }
  .page-hero { padding: 100px 20px 36px; }
  h1.display { font-size: clamp(36px, 12vw, 56px); }
  h2.section-title { font-size: clamp(28px, 10vw, 48px); }
  .grid-4, .host-grid { grid-template-columns: 1fr; }
  .grid-6, .sponsor-grid, .archive-grid { grid-template-columns: repeat(2, 1fr); }
  .nav-links .nav-link:nth-child(n+3) { display: none; }
  .nav-logo { font-size: 18px; }
  .tier-card { padding: 28px 20px; }
  .tier-price { font-size: 32px; }
  .footer-inner { padding: 40px 20px 28px; }
}

/* ─── EVENT PHOTO SLIDER ──────────────────────────────────── */
.event-slider-wrap {
  position: relative;
  overflow: hidden;
  cursor: grab;
}
.event-slider-wrap:active { cursor: grabbing; }

.event-slider {
  display: flex;
  gap: 16px;
  padding: 0 60px;
  transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);
  will-change: transform;
}

.event-slide {
  position: relative;
  flex: 0 0 calc(33.333% - 11px);
  aspect-ratio: 4/3;
  overflow: hidden;
  cursor: pointer;
  background: var(--surface-container);
}

@media (max-width: 768px) {
  .event-slide { flex: 0 0 calc(80% - 8px); }
  .event-slider { padding: 0 24px; }
}
@media (max-width: 480px) {
  .event-slide { flex: 0 0 calc(90% - 8px); }
}

.event-slide img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
  filter: grayscale(20%);
}
.event-slide:hover img { transform: scale(1.04); filter: grayscale(0%); }

.slide-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(14,14,14,0.75) 0%, transparent 55%);
  transition: opacity 0.3s;
}
.event-slide:hover .slide-overlay { opacity: 0.6; }

.slide-year {
  position: absolute;
  bottom: 20px; left: 24px;
  font-family: 'Epilogue', sans-serif;
  font-size: clamp(40px, 5vw, 72px);
  font-weight: 900;
  color: #fff;
  letter-spacing: -0.03em;
  line-height: 1;
  z-index: 2;
  text-shadow: 0 2px 16px rgba(0,0,0,0.4);
}

/* Nav buttons */
.slider-btn {
  position: absolute;
  top: 50%; transform: translateY(-50%);
  background: rgba(14,14,14,0.7);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(180,60,120,0.25);
  color: #fff;
  width: 48px; height: 48px;
  font-size: 20px;
  cursor: pointer;
  z-index: 10;
  display: flex; align-items: center; justify-content: center;
  transition: background 0.2s, border-color 0.2s;
}
.slider-btn:hover { background: var(--primary-container); border-color: var(--primary-container); }
.slider-prev { left: 16px; }
.slider-next { right: 16px; }

/* Dots */
.slider-dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 24px;
  padding: 0 60px;
}
.slider-dot {
  width: 6px; height: 6px;
  border-radius: 3px;
  background: var(--surface-container-high);
  border: none; cursor: pointer;
  transition: background 0.2s, width 0.3s;
  padding: 0;
}
.slider-dot.active {
  background: var(--primary-container);
  width: 24px;
}

/* ─── FOOTER DTF TICKER ───────────────────────────────────── */
.footer-dtf-row { overflow: hidden; padding: 20px 0; }
.footer-dtf-ticker {
  display: inline-flex;
  white-space: nowrap;
  animation: dtfScroll 20s linear infinite;
}
.footer-dtf-ticker:hover { animation-play-state: paused; }
@keyframes dtfScroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
.footer-dtf-text {
  font-family: var(--ff-headline);
  font-size: clamp(36px, 6vw, 80px);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.03em;
  line-height: 0.9;
  color: rgba(255,255,255,0.07);
  padding-right: 40px;
}
.footer-dtf-text span { color: rgba(227,118,174,0.18); }

/* ─── LARGE SPONSOR SLOT (this year) ─────────────────────── */
.sponsor-slot-lg {
  background: var(--surface-container-low);
  padding: 48px 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 160px;
  transition: background 0.2s;
  text-decoration: none;
}
.sponsor-slot-lg:hover { background: var(--surface-container); }
.sponsor-slot-lg img {
  max-height: 64px;
  width: auto;
  max-width: 220px;
  object-fit: contain;
  filter: brightness(0) invert(1);
  opacity: 0.85;
  transition: opacity 0.2s;
}
.sponsor-slot-lg:hover img { opacity: 1; }

@media (max-width: 768px) {
  .footer-dtf-ticker { animation-duration: 14s; }
  .footer-dtf-text { font-size: clamp(32px, 10vw, 56px); }
  .sponsor-slot-lg { padding: 32px 24px; min-height: 120px; }
}
