/* ============================================================
   SUBPAGE — shared header + rhythm for the standalone pages
   (programme / cause / gallery / involve). One intro, lots of air.
   ============================================================ */
.pagehead{
  background:var(--hero-bg);
  padding-block:clamp(3.5rem,9vw,6rem) clamp(2rem,5vw,3.2rem);
  border-bottom:1px solid var(--c-line);
  position:relative;overflow:hidden;
}
.pagehead .wrap{position:relative;z-index:1}
.pagehead .hero__org{margin-bottom:1.6rem}
.pagehead h1{
  font-family:var(--font-display);font-weight:var(--weight-bold);
  font-size:var(--fs-2xl);letter-spacing:var(--track-display);
  margin:.5rem 0 0;color:var(--c-ink);
}
.pagehead__lead{
  margin-top:1rem;max-width:46ch;font-size:var(--fs-md);
  color:var(--c-ink-soft);line-height:1.45;
}
.pagehead__cta{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.6rem}

/* soft corner glow, echoes the home hero without the weight */
.pagehead::after{
  content:"";position:absolute;right:-10%;top:-40%;width:55%;height:180%;
  background:radial-gradient(50% 50% at 50% 50%,
    color-mix(in srgb,var(--c-gold) 22%,transparent),transparent 70%);
  pointer-events:none;
}

/* ---- Doomsday pagehead — the same cinematic language as the home
   hero (dark gradient, light shafts, film grain) at a lighter weight:
   no ember canvas, just the backdrop, so every page reads as part of
   the same theme rather than only the homepage looking "finished". ---- */
[data-year-theme="doomsday"] .pagehead{
  background:
    radial-gradient(60% 70% at 74% 18%, color-mix(in srgb,var(--c-primary) 22%,transparent), transparent 60%),
    linear-gradient(118deg, transparent 40%, color-mix(in srgb,var(--c-gold) 12%,transparent) 52%, transparent 66%),
    radial-gradient(120% 100% at 50% 0%, #101a15 0%, #070c08 60%, #020403 100%);
  border-bottom-color:color-mix(in srgb,var(--c-primary) 25%,transparent);
  color:var(--c-on-dark-soft);
  --c-primary-ink:#4FD98C;
}
[data-year-theme="doomsday"] .pagehead h1{color:var(--c-on-dark)}
[data-year-theme="doomsday"] .pagehead .eyebrow,
[data-year-theme="doomsday"] .pagehead .hero__org,
[data-year-theme="doomsday"] .pagehead__lead{color:var(--c-on-dark-soft)}
[data-year-theme="doomsday"] .pagehead .hero__org img{filter:invert(1) brightness(1.6)}
[data-year-theme="doomsday"] .pagehead::after{
  background:radial-gradient(50% 50% at 50% 50%,
    color-mix(in srgb,var(--c-primary) 26%,transparent),transparent 70%);
}
[data-year-theme="doomsday"] .pagehead::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  mix-blend-mode:overlay;opacity:.35;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:140px 140px;
}

/* generic content section on a subpage — more breathing room than a tile */
.subsection{padding-block:clamp(2.5rem,6vw,4.5rem)}
.subsection + .subsection{border-top:1px solid var(--c-line)}
.subsection__intro{max-width:44ch;margin-bottom:1.8rem}
.subsection__intro .lead{margin-top:.4rem}

/* a quiet link back / onward at the foot of a page */
.pageflow{
  display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center;
  padding-block:clamp(2rem,5vw,3rem);
}
.pageflow a{
  font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--c-primary-ink);
  text-decoration:none;
}
.pageflow a:hover{text-decoration:underline}

/* stalls page lists */
.stalls-list,.stalls-open{list-style:none;margin:1.5rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem}
.stalls-list li,.stalls-open li{
  display:flex;justify-content:space-between;gap:1rem;align-items:center;
  padding:.8rem 1.1rem;border:1px solid var(--c-line);border-radius:var(--r-md);
  background:var(--c-surface);font-size:var(--fs-base);color:var(--c-ink-soft);
  transition:border-color var(--dur-2),transform var(--dur-2),box-shadow var(--dur-2);
}
.stalls-list li:hover{border-color:color-mix(in srgb,var(--c-primary) 30%,var(--c-line));transform:translateX(3px);box-shadow:var(--shadow-lift)}
@media (prefers-reduced-motion:reduce){.stalls-list li:hover{transform:none}}
.stalls-list li b{color:var(--c-ink);font-family:var(--font-mono)}
.stalls-list li > span:not(.stalls-list__icon){flex:1}
.stalls-list__icon{
  display:grid;place-items:center;width:32px;height:32px;flex:none;border-radius:var(--r-sm);
  color:var(--c-primary-ink);background:color-mix(in srgb,var(--c-primary) 12%,transparent);
}
.stalls-list__icon svg{width:17px;height:17px}
.stalls__tbc{color:var(--c-ink-mute);font-style:italic;justify-content:flex-start}
.stalls-urgency{
  margin-top:.6rem;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.03em;
  color:var(--c-primary-ink);
}

/* stall idea inspiration — two category cards, each a short list */
.idea-groups{margin-top:2rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.2rem}
.idea-group{
  border:1px solid var(--c-line);border-radius:var(--r-lg);padding:var(--sp-5);
  background:var(--c-surface);
}
.idea-group__head{display:flex;align-items:center;gap:.7rem;margin-bottom:.9rem}
.idea-group__icon{
  flex:none;width:38px;height:38px;border-radius:var(--r-md);display:grid;place-items:center;
  color:var(--c-primary-ink);background:color-mix(in srgb,var(--c-primary) 14%,transparent);
}
.idea-group__icon svg{width:19px;height:19px}
.idea-group__head h3{margin:0;font-size:1.05rem;color:var(--c-ink)}
.idea-group__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}
.idea-group__list li{
  position:relative;padding-left:1.1rem;font-size:var(--fs-sm);color:var(--c-ink-soft);line-height:1.45;
}
.idea-group__list li::before{
  content:"";position:absolute;left:0;top:.5em;width:6px;height:6px;border-radius:50%;
  background:var(--c-primary);
}

/* sponsorship tiers — one card per partnership level */
.sponsor-tiers{margin-top:2rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.2rem}
.sponsor-tier{
  border:1px solid var(--c-line);border-radius:var(--r-lg);padding:var(--sp-5);
  background:var(--c-surface);transition:border-color var(--dur-2),transform var(--dur-2),box-shadow var(--dur-2);
}
.sponsor-tier:hover{border-color:color-mix(in srgb,var(--c-primary) 30%,var(--c-line));transform:translateY(-2px);box-shadow:var(--shadow-lift)}
@media (prefers-reduced-motion:reduce){.sponsor-tier:hover{transform:none}}
.sponsor-tier__head{display:flex;align-items:baseline;justify-content:space-between;gap:.8rem;flex-wrap:wrap}
.sponsor-tier__head h3{margin:0;font-size:1.05rem;color:var(--c-ink)}
.sponsor-tier__amount{
  font-family:var(--font-mono);font-size:.86rem;font-weight:var(--weight-semi);
  color:var(--c-primary-ink);white-space:nowrap;
}
.sponsor-tier p{margin:.6rem 0 0;font-size:var(--fs-sm);color:var(--c-ink-soft);line-height:1.5}

/* "how it works" — three numbered steps */
.how-steps{
  margin-top:2rem;list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.4rem;
}
.how-step{position:relative;padding-left:.2rem}
.how-step__n{
  display:grid;place-items:center;width:38px;height:38px;border-radius:50%;margin-bottom:.8rem;
  font-family:var(--font-mono);font-weight:600;font-size:1rem;
  color:var(--c-on-primary);background:var(--c-primary);
}
.how-step h3{margin:0 0 .35rem;font-size:1.02rem;color:var(--c-ink)}
.how-step p{margin:0;font-size:var(--fs-sm);color:var(--c-ink-soft)}
@media (min-width:640px){
  .how-steps{grid-template-columns:repeat(3,1fr)}
  .how-step:not(:last-child)::after{
    content:"";position:absolute;top:19px;left:calc(100% - 1.6rem + 38px/2);width:calc(1.4rem + 1px);height:1px;
    background:var(--c-line);
  }
}
