/* ------------------------------------------------------------------
   kuchipudi bangalore — prototype stylesheet
   All colour driven by 4 tokens. Radius ≤ 6px. Mobile-first.
   ------------------------------------------------------------------ */

:root {
  --purple: #4A2C5A;
  --gold:   #B08D2E;
  --ink:    #1A1A1A;
  --paper:  #FBF8F3;

  --purple-deep: #371F44;
  --gold-soft:   #C9A647;
  --ink-60:      rgba(26, 26, 26, 0.6);
  --ink-30:      rgba(26, 26, 26, 0.28);
  --paper-2:     #F4EFE5;

  --serif: "Cormorant Garamond", "EB Garamond", Georgia, serif;
  --sans:  "IBM Plex Sans", "Plus Jakarta Sans", system-ui, sans-serif;
  --mono:  "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;

  --r-1: 2px;
  --r-2: 4px;
  --r-3: 6px;

  --max-w: 1320px;
  --gutter: 24px;
}

@media (min-width: 720px) { :root { --gutter: 40px; } }
@media (min-width: 1100px) { :root { --gutter: 64px; } }

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img, svg { display: block; max-width: 100%; }

a {
  color: inherit;
  text-decoration: none;
}
a:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}

button { font: inherit; }

::selection { background: var(--gold); color: var(--paper); }

/* ---------- Typography scale ---------- */

h1, h2, h3, h4 {
  font-family: var(--serif);
  font-weight: 500;
  color: var(--ink);
  margin: 0;
  letter-spacing: -0.01em;
  line-height: 1.05;
  text-wrap: balance;
}

h1 { font-size: clamp(40px, 7vw, 72px); font-weight: 500; line-height: 1.02; }
h2 { font-size: clamp(32px, 4.6vw, 52px); line-height: 1.08; }
h3 { font-size: clamp(24px, 2.8vw, 32px); line-height: 1.15; }
h4 { font-size: clamp(20px, 2.2vw, 24px); line-height: 1.2; }

p { margin: 0 0 1em; text-wrap: pretty; }

.eyebrow {
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold);
}

.lede {
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(20px, 2.2vw, 26px);
  line-height: 1.4;
  color: var(--ink);
}

.mono { font-family: var(--mono); font-size: 12px; letter-spacing: 0.02em; }

/* ---------- Layout primitives ---------- */

.container {
  width: 100%;
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--gutter);
}

.section {
  padding: clamp(60px, 9vw, 120px) 0;
}

.rule {
  border: 0;
  border-top: 1px solid var(--ink-30);
  margin: 0;
}
.rule-gold {
  border: 0;
  border-top: 1px solid var(--gold);
  margin: 0;
}

/* ---------- Masthead ---------- */

.masthead {
  position: sticky;
  top: 0;
  z-index: 30;
  background: var(--paper);
  border-bottom: 1px solid var(--ink-30);
  backdrop-filter: saturate(120%);
}

.masthead__inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 18px var(--gutter);
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
}

.logotype {
  display: block;
  font-family: var(--serif);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(22px, 2.6vw, 30px);
  letter-spacing: -0.005em;
  color: var(--gold);
  line-height: 1;
  text-transform: lowercase;
}
.logotype__tag {
  display: block;
  margin-top: 8px;
  font-family: var(--sans);
  font-style: normal;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-60);
  font-weight: 400;
}

.nav {
  display: none;
  align-items: center;
  gap: 18px;
  padding-top: 6px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.nav a {
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0.02em;
  color: var(--ink);
  padding: 6px 0;
  border-bottom: 1px solid transparent;
  white-space: nowrap;
}
.nav a:hover { color: var(--purple); border-bottom-color: var(--gold); }
.nav a[aria-current="page"] { color: var(--purple); border-bottom-color: var(--gold); }

@media (min-width: 1100px) { .nav { display: flex; } .nav-toggle { display: none; } }

.nav-toggle {
  appearance: none;
  border: 1px solid var(--ink);
  background: var(--paper);
  color: var(--ink);
  padding: 8px 12px;
  border-radius: var(--r-1);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  align-self: center;
}

.nav-drawer {
  display: none;
  border-top: 1px solid var(--ink-30);
  background: var(--paper);
}
.nav-drawer.open { display: block; }
.nav-drawer ul { list-style: none; margin: 0; padding: 8px var(--gutter) 24px; }
.nav-drawer li { border-bottom: 1px solid var(--ink-30); }
.nav-drawer li:last-child { border-bottom: 0; }
.nav-drawer a {
  display: block;
  padding: 16px 0;
  font-size: 16px;
  color: var(--ink);
}
.nav-drawer a[aria-current="page"] { color: var(--purple); }

@media (min-width: 1100px) { .nav-drawer { display: none !important; } }

/* ---------- Buttons / CTAs ---------- */

.btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 13px 22px;
  border: 1px solid var(--gold);
  background: var(--gold);
  color: var(--ink);
  border-radius: 999px;
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: background 120ms ease, color 120ms ease, border-color 120ms ease;
  min-height: 44px;
  text-decoration: none;
}
.btn:hover { background: var(--ink); color: var(--gold); border-color: var(--ink); }
.btn--ghost {
  background: transparent;
  color: var(--ink);
  border-color: var(--ink);
}
.btn--ghost:hover { background: var(--ink); color: var(--paper); }
.btn--on-purple {
  background: var(--gold);
  color: var(--ink);
  border-color: var(--gold);
}
.btn--on-purple-ghost {
  background: transparent;
  color: var(--paper);
  border-color: var(--paper);
}
.btn--on-purple-ghost:hover { background: var(--paper); color: var(--purple); border-color: var(--paper); }

.btn .arrow { display: inline-block; transition: transform 160ms ease; }
.btn:hover .arrow { transform: translateX(3px); }

.btn-row { display: flex; flex-wrap: wrap; gap: 12px; }

/* ---------- Placeholder image block ---------- */

.ph {
  position: relative;
  background: var(--paper-2);
  border: 1px solid var(--ink-30);
  border-radius: var(--r-2);
  overflow: hidden;
  color: var(--ink-60);
}
.ph::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(
    135deg,
    transparent 0,
    transparent 14px,
    rgba(26, 26, 26, 0.05) 14px,
    rgba(26, 26, 26, 0.05) 15px
  );
}
.ph__label {
  position: absolute;
  left: 14px;
  bottom: 12px;
  right: 14px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--ink-60);
  background: rgba(251, 248, 243, 0.92);
  padding: 6px 8px;
  border-radius: var(--r-1);
}
.ph__corner {
  position: absolute;
  top: 12px;
  left: 14px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.06em;
  color: var(--ink-60);
  text-transform: uppercase;
}
.ph--on-purple {
  background: var(--purple-deep);
  border-color: rgba(251, 248, 243, 0.2);
  color: rgba(251, 248, 243, 0.7);
}
.ph--on-purple::before {
  background-image: repeating-linear-gradient(
    135deg,
    transparent 0,
    transparent 14px,
    rgba(251, 248, 243, 0.06) 14px,
    rgba(251, 248, 243, 0.06) 15px
  );
}
.ph--on-purple .ph__label {
  background: rgba(55, 31, 68, 0.92);
  color: rgba(251, 248, 243, 0.72);
}
.ph--on-purple .ph__corner { color: rgba(251, 248, 243, 0.55); }

.ph--play::after {
  content: "▶";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-size: 28px;
  color: var(--paper);
  background: rgba(74, 44, 90, 0.55);
}
.ph--play:hover::after { background: rgba(74, 44, 90, 0.7); }

/* ---------- Dev toggle ---------- */

.dev-toggle {
  position: fixed;
  top: 12px;
  right: 12px;
  z-index: 60;
  background: var(--ink);
  color: var(--paper);
  border: 1px solid var(--gold);
  border-radius: var(--r-2);
  padding: 8px 10px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  display: flex;
  align-items: center;
  gap: 10px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18);
}
.dev-toggle__label { opacity: 0.7; text-transform: uppercase; }
.dev-toggle__sw {
  appearance: none;
  width: 36px;
  height: 20px;
  border-radius: 999px;
  background: rgba(251, 248, 243, 0.2);
  position: relative;
  cursor: pointer;
  border: 0;
  flex: 0 0 auto;
}
.dev-toggle__sw::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 16px;
  height: 16px;
  border-radius: 999px;
  background: var(--paper);
  transition: transform 140ms ease;
}
.dev-toggle__sw[aria-checked="true"] { background: var(--gold); }
.dev-toggle__sw[aria-checked="true"]::after { transform: translateX(16px); }
.dev-toggle__state { color: var(--gold-soft); }

@media (min-width: 720px) {
  .dev-toggle { top: 16px; right: 16px; padding: 10px 12px; font-size: 12px; }
}

/* ---------- Hero (Home) ---------- */

.home-hero {
  position: relative;
  padding: clamp(48px, 7vw, 90px) 0 clamp(60px, 9vw, 120px);
  overflow: hidden;
}
.home-hero__grid {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
}
@media (min-width: 900px) {
  .home-hero__grid {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    gap: 56px;
    align-items: start;
  }
}

.home-hero__num {
  font-family: var(--serif);
  font-weight: 400;
  font-style: italic;
  color: var(--gold);
  font-size: clamp(140px, 22vw, 320px);
  line-height: 0.8;
  letter-spacing: -0.04em;
  position: absolute;
  top: -0.1em;
  left: -0.04em;
  opacity: 0.18;
  pointer-events: none;
  user-select: none;
}
@media (min-width: 900px) {
  .home-hero__num {
    left: auto;
    right: 38%;
    top: -0.18em;
    opacity: 0.14;
  }
}

.home-hero__left {
  position: relative;
  z-index: 1;
}
.home-hero__eyebrow {
  display: flex;
  gap: 14px;
  align-items: center;
  margin-bottom: 28px;
}
.home-hero__eyebrow::after {
  content: "";
  flex: 0 0 40px;
  height: 1px;
  background: var(--gold);
}

.home-hero h1 {
  font-size: clamp(42px, 6.6vw, 76px);
  font-weight: 500;
  margin-bottom: 22px;
  text-wrap: balance;
}
.home-hero h1 em {
  font-style: italic;
  color: var(--purple);
  font-weight: 500;
}
.home-hero__sub {
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(19px, 2vw, 24px);
  color: var(--ink);
  margin-bottom: 36px;
  max-width: 32ch;
  line-height: 1.4;
}

.home-hero__ctas { margin-top: 8px; }

.home-hero__right { position: relative; }
.home-hero__img {
  aspect-ratio: 3 / 4;
  width: 100%;
  position: relative;
  overflow: hidden;
  border-radius: var(--r-2);
}
.home-hero__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.home-hero__img .ph__credit {
  background: rgba(251, 248, 243, 0.85);
  padding: 4px 6px;
  border-radius: var(--r-1);
  backdrop-filter: blur(2px);
}
@media (min-width: 900px) {
  .home-hero__img {
    aspect-ratio: 3 / 4.4;
    margin-top: -40px;
    margin-bottom: -80px;
    margin-right: calc(var(--gutter) * -0.6);
  }
}

.home-hero__meta {
  margin-top: 14px;
  display: flex;
  justify-content: flex-end;
  gap: 18px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  color: var(--ink-60);
  text-transform: uppercase;
}

/* ---------- Positioning panel ---------- */

.positioning {
  background: var(--purple);
  color: var(--paper);
  padding: clamp(72px, 11vw, 140px) 0;
  position: relative;
}
.positioning__inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
}
@media (min-width: 900px) {
  .positioning__inner {
    grid-template-columns: 2fr 8fr 2fr;
    align-items: start;
  }
}
.positioning__rail {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold-soft);
}
.positioning__rail span { display: block; margin-bottom: 6px; }
.positioning__body {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(28px, 3.6vw, 46px);
  line-height: 1.18;
  letter-spacing: -0.01em;
  text-wrap: balance;
}
.positioning__body em {
  color: var(--gold-soft);
  font-style: italic;
}
.positioning__sig {
  display: none;
}
@media (min-width: 900px) {
  .positioning__sig {
    display: block;
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(251, 248, 243, 0.55);
    text-align: right;
    padding-top: 18px;
    line-height: 1.6;
  }
}

/* ---------- Reel / Three tiles ---------- */

.reel {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
}
@media (min-width: 900px) {
  .reel { grid-template-columns: 1fr 8fr; gap: 56px; align-items: end; }
}
.reel__caption .eyebrow { margin-bottom: 14px; display: block; }
.reel__caption h2 { margin-bottom: 14px; }
.reel__player {
  aspect-ratio: 16 / 9;
  width: 100%;
  cursor: pointer;
}

.tiles {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  border-top: 1px solid var(--ink-30);
}
@media (min-width: 720px) {
  .tiles { grid-template-columns: repeat(3, 1fr); border-top: 0; }
}
.tile {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  padding: 28px 0;
  border-bottom: 1px solid var(--ink-30);
  align-content: start;
}
@media (min-width: 720px) {
  .tile {
    border-bottom: 0;
    border-right: 1px solid var(--ink-30);
    padding: 0 28px;
  }
  .tile:first-child { padding-left: 0; }
  .tile:last-child { border-right: 0; padding-right: 0; }
}
.tile__img { aspect-ratio: 4 / 3; }
.tile h3 { font-family: var(--serif); font-weight: 500; margin: 4px 0 6px; }
.tile p { font-size: 15px; color: var(--ink-60); margin: 0 0 12px; }
.tile__cta {
  font-family: var(--sans);
  font-size: 13px;
  letter-spacing: 0.04em;
  color: var(--purple);
  border-bottom: 1px solid var(--gold);
  padding-bottom: 2px;
  align-self: start;
}
.tile__cta:hover { color: var(--ink); }

/* ---------- Stats strip ---------- */

.stats {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
  padding: clamp(40px, 6vw, 64px) 0;
  border-top: 1px solid var(--gold);
  border-bottom: 1px solid var(--gold);
}
@media (min-width: 720px) {
  .stats { grid-template-columns: repeat(3, 1fr); gap: 48px; }
}
.stat__num {
  font-family: var(--serif);
  font-weight: 500;
  font-size: clamp(42px, 5.6vw, 68px);
  color: var(--purple);
  line-height: 1;
  letter-spacing: -0.01em;
}
.stat__label {
  margin-top: 12px;
  font-size: 14px;
  color: var(--ink);
  max-width: 28ch;
}
.stat__tbc {
  display: inline-block;
  margin-left: 8px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold);
  vertical-align: middle;
}

/* ---------- Productions strip ---------- */

.productions {
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
}
@media (min-width: 720px) {
  .productions { grid-template-columns: repeat(3, 1fr); gap: 32px; }
}
.production__img { aspect-ratio: 4 / 5; }
.production__meta {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-top: 14px;
  gap: 16px;
}
.production__title { font-family: var(--serif); font-size: 22px; font-weight: 500; }
.production__year { font-family: var(--mono); font-size: 12px; color: var(--ink-60); }

.section-head {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-bottom: clamp(36px, 5vw, 56px);
  align-items: end;
}
@media (min-width: 900px) {
  .section-head { grid-template-columns: 8fr 4fr; gap: 48px; }
  .section-head__aside { text-align: right; }
}
.section-head h2 { max-width: 18ch; }
.section-head__aside p { color: var(--ink-60); font-size: 15px; max-width: 32ch; margin-left: auto; }

/* ---------- Press carousel ---------- */

.press {
  background: var(--paper-2);
  padding: clamp(60px, 8vw, 100px) 0;
}
.press__inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: grid;
  grid-template-columns: 1fr;
  gap: 36px;
}
@media (min-width: 900px) {
  .press__inner { grid-template-columns: 3fr 9fr; gap: 64px; align-items: start; }
}
.press__rail { display: flex; flex-direction: column; gap: 18px; }
.press__quote {
  font-family: var(--serif);
  font-weight: 400;
  font-style: italic;
  font-size: clamp(24px, 3.2vw, 38px);
  line-height: 1.25;
  color: var(--ink);
  letter-spacing: -0.005em;
}
.press__quote::before { content: "\201C"; color: var(--gold); margin-right: 0.05em; }
.press__quote::after { content: "\201D"; color: var(--gold); margin-left: 0.05em; }
.press__attrib {
  margin-top: 22px;
  font-family: var(--sans);
  font-size: 13px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-60);
}
.press__attrib strong { color: var(--ink); font-weight: 500; }
.press__nav { display: flex; gap: 8px; margin-top: 28px; }
.press__nav button {
  width: 44px; height: 44px;
  border-radius: 999px;
  border: 1px solid var(--ink);
  background: transparent;
  cursor: pointer;
  color: var(--ink);
  font-size: 16px;
}
.press__nav button:hover { background: var(--ink); color: var(--paper); }
.press__count {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--ink-60);
  align-self: center;
  margin-left: 8px;
}

/* ---------- Sponsor wall ---------- */

.sponsors {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: var(--ink-30);
  border: 1px solid var(--ink-30);
}
@media (min-width: 600px) { .sponsors { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 900px) { .sponsors { grid-template-columns: repeat(5, 1fr); } }
.sponsor {
  aspect-ratio: 3 / 2;
  background: var(--paper);
  display: grid;
  place-items: center;
  padding: 18px;
  font-family: var(--mono);
  font-size: 11px;
  color: var(--ink-60);
  letter-spacing: 0.04em;
  text-align: center;
}

/* ---------- Festival CTA card ---------- */

.fest-card {
  background: var(--purple);
  color: var(--paper);
  padding: clamp(48px, 7vw, 88px) clamp(28px, 5vw, 72px);
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
  position: relative;
  border-radius: var(--r-3);
  overflow: hidden;
}
@media (min-width: 900px) {
  .fest-card { grid-template-columns: 7fr 5fr; gap: 64px; align-items: center; }
}
.fest-card .eyebrow { color: var(--gold-soft); }
.fest-card h2 { color: var(--paper); margin: 10px 0 18px; }
.fest-card h2 em { color: var(--gold-soft); font-style: italic; }
.fest-card__meta {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: rgba(251, 248, 243, 0.7);
  text-transform: uppercase;
  margin-bottom: 28px;
}
.fest-card__num {
  font-family: var(--serif);
  font-size: clamp(120px, 18vw, 220px);
  line-height: 0.85;
  color: var(--gold-soft);
  letter-spacing: -0.04em;
  font-weight: 400;
  font-style: italic;
  text-align: right;
}

/* ---------- Footer ---------- */

.footer {
  background: var(--ink);
  color: var(--paper);
  padding: clamp(60px, 8vw, 96px) 0 32px;
}
.footer__top {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
}
@media (min-width: 900px) {
  .footer__top {
    grid-template-columns: 5fr 3fr 4fr;
    gap: 64px;
  }
}
.footer__brand {
  font-family: var(--serif);
  font-style: italic;
  font-size: 28px;
  color: var(--gold);
  text-transform: lowercase;
  line-height: 1;
}
.footer__brand-tag {
  margin-top: 14px;
  font-size: 13px;
  color: rgba(251, 248, 243, 0.6);
  letter-spacing: 0.04em;
  max-width: 38ch;
}
.footer h4 {
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold-soft);
  margin-bottom: 18px;
}
.footer ul { list-style: none; padding: 0; margin: 0; }
.footer li { margin-bottom: 10px; font-size: 14px; }
.footer a { color: rgba(251, 248, 243, 0.85); }
.footer a:hover { color: var(--gold-soft); }
.footer__news {
  margin-top: 14px;
  display: flex;
  gap: 8px;
  border: 1px solid rgba(251, 248, 243, 0.3);
  border-radius: var(--r-2);
  padding: 4px;
}
.footer__news input {
  flex: 1;
  background: transparent;
  border: 0;
  color: var(--paper);
  font: inherit;
  font-size: 14px;
  padding: 10px 12px;
  outline: none;
}
.footer__news input::placeholder { color: rgba(251, 248, 243, 0.4); }
.footer__news button {
  background: var(--gold);
  color: var(--ink);
  border: 0;
  border-radius: var(--r-1);
  padding: 10px 16px;
  cursor: pointer;
  font-weight: 500;
  font-size: 13px;
}

.footer__bottom {
  max-width: var(--max-w);
  margin: 56px auto 0;
  padding: 24px var(--gutter) 0;
  border-top: 1px solid rgba(251, 248, 243, 0.15);
  display: flex;
  flex-direction: column;
  gap: 12px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  color: rgba(251, 248, 243, 0.5);
}
@media (min-width: 720px) {
  .footer__bottom { flex-direction: row; justify-content: space-between; align-items: center; }
}

/* ---------- Festival page ---------- */

.fest-hero {
  position: relative;
  padding: clamp(40px, 6vw, 80px) 0 clamp(64px, 9vw, 120px);
  background: var(--paper);
}

/* Countdown — borrowed pattern, recast in our type system */
.countdown {
  margin-top: 28px;
  padding: 16px 18px;
  border: 1px solid var(--ink-30);
  border-left: 3px solid var(--gold);
  border-radius: var(--r-2);
  background: var(--paper);
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
}
.countdown__label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-60);
  flex: 0 0 auto;
}
.countdown__cells {
  display: flex;
  gap: 18px;
  flex-wrap: wrap;
}
.countdown__cell {
  display: flex;
  flex-direction: column;
  align-items: baseline;
  min-width: 56px;
}
.countdown__num {
  font-family: var(--serif);
  font-weight: 500;
  font-size: clamp(28px, 3.4vw, 40px);
  line-height: 1;
  color: var(--purple);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
}
.countdown__unit {
  margin-top: 6px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-60);
}

/* Full-bleed image moment between sections */
.image-moment {
  background: var(--purple-deep);
  padding: 0;
}
.image-moment__inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: clamp(56px, 8vw, 96px) var(--gutter);
}
.image-moment__img { aspect-ratio: 21 / 9; }
.image-moment__caption {
  margin-top: 18px;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 18px;
  flex-wrap: wrap;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  color: rgba(251,248,243,0.6);
  text-transform: uppercase;
}
.image-moment__caption strong { color: var(--gold-soft); font-weight: 500; }
.fest-hero__crumb {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-60);
  margin-bottom: 28px;
}
.fest-hero__crumb a { color: var(--ink-60); border-bottom: 1px solid transparent; }
.fest-hero__crumb a:hover { color: var(--purple); border-bottom-color: var(--gold); }
.fest-hero__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 36px;
}
@media (min-width: 900px) {
  .fest-hero__grid {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    gap: 64px;
    align-items: end;
  }
}
.fest-hero h1 {
  font-size: clamp(48px, 8vw, 96px);
  line-height: 0.98;
  letter-spacing: -0.015em;
}
.fest-hero h1 em { font-style: italic; color: var(--purple); }
.fest-hero__meta {
  margin-top: 24px;
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.4;
  color: var(--ink);
}
.fest-hero__data {
  border-top: 1px solid var(--gold);
  padding-top: 24px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
.fest-hero__data dt {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-60);
  margin-bottom: 8px;
}
.fest-hero__data dd {
  margin: 0;
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 500;
  line-height: 1.2;
  color: var(--ink);
}
.fest-hero__ctas { margin-top: 32px; }

/* ---------- Concept ---------- */

.concept {
  background: var(--purple);
  color: var(--paper);
  padding: clamp(72px, 10vw, 140px) 0;
}
.concept__inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
}
@media (min-width: 900px) {
  .concept__inner { grid-template-columns: 3fr 9fr; gap: 64px; align-items: start; }
}
.concept__label {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold-soft);
}
.concept__body {
  font-family: var(--serif);
  font-size: clamp(28px, 3.4vw, 44px);
  line-height: 1.22;
  letter-spacing: -0.005em;
  font-weight: 400;
  color: var(--paper);
  text-wrap: balance;
}
.concept__body em { color: var(--gold-soft); font-style: italic; }
.concept__embargo {
  margin-top: 28px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--gold-soft);
  text-transform: uppercase;
}
.cast {
  margin-top: 40px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 1px;
  background: rgba(251, 248, 243, 0.18);
  border: 1px solid rgba(251, 248, 243, 0.18);
  border-radius: var(--r-2);
  overflow: hidden;
}
@media (min-width: 720px) { .cast { grid-template-columns: repeat(2, 1fr); } }
.cast__slot {
  background: var(--purple);
  padding: 22px 20px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.cast__form {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold-soft);
}
.cast__name {
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 500;
  color: var(--paper);
}
.cast__placeholder {
  font-family: var(--serif);
  font-style: italic;
  font-size: 20px;
  color: rgba(251, 248, 243, 0.55);
}

/* ---------- The Day ---------- */

.day {
  padding: clamp(72px, 10vw, 140px) 0;
}
.day__head {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin-bottom: 56px;
}
@media (min-width: 900px) {
  .day__head { grid-template-columns: 4fr 8fr; gap: 64px; align-items: end; }
}
.day__head h2 { font-size: clamp(40px, 5.6vw, 64px); }
.day__head h2 em { font-style: italic; color: var(--purple); }
.day__head p { color: var(--ink-60); font-size: 16px; max-width: 42ch; }

.day__cols {
  display: grid;
  grid-template-columns: 1fr;
  gap: 56px;
}
@media (min-width: 900px) {
  .day__cols { grid-template-columns: 1fr 1fr; gap: 80px; }
}
.day__col h3 {
  font-size: clamp(28px, 3.2vw, 38px);
  font-weight: 500;
  margin-bottom: 8px;
}
.day__col h3 em { font-style: italic; color: var(--purple); }
.day__col .eyebrow { display: block; margin-bottom: 14px; }
.day__col .lede { margin-bottom: 36px; }

.schedule { border-top: 1px solid var(--ink-30); }
.schedule__row {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 20px;
  padding: 22px 0;
  border-bottom: 1px solid var(--ink-30);
  align-items: baseline;
}
.schedule__time {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--gold);
  font-weight: 500;
}
.schedule__body h4 {
  font-family: var(--serif);
  font-size: 19px;
  font-weight: 500;
  margin-bottom: 4px;
}
.schedule__body p { font-size: 14px; color: var(--ink-60); margin: 0; }
.schedule__body em.embargo {
  color: var(--gold);
  font-style: italic;
  font-family: var(--serif);
  font-size: 16px;
}

.day__info {
  margin-top: 36px;
  padding: 20px;
  border: 1px solid var(--ink-30);
  border-radius: var(--r-3);
  background: var(--paper-2);
}
.day__info dl {
  margin: 0;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 8px 18px;
}
.day__info dt {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-60);
  align-self: baseline;
  padding-top: 4px;
}
.day__info dd { margin: 0; font-size: 14px; color: var(--ink); }

/* ---------- Stats band (festival) ---------- */

.fest-stats {
  background: var(--ink);
  color: var(--paper);
  padding: clamp(48px, 6vw, 72px) 0;
}
.fest-stats__inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
}
@media (min-width: 720px) {
  .fest-stats__inner { grid-template-columns: repeat(3, 1fr); gap: 48px; }
}
.fest-stats__num {
  font-family: var(--serif);
  font-size: clamp(56px, 7.5vw, 96px);
  font-weight: 500;
  color: var(--gold);
  line-height: 0.95;
  letter-spacing: -0.02em;
}
.fest-stats__label {
  margin-top: 10px;
  font-family: var(--sans);
  font-size: 14px;
  letter-spacing: 0.04em;
  color: rgba(251, 248, 243, 0.75);
}

/* ---------- Film premiere ---------- */

.film {
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
}
@media (min-width: 900px) {
  .film { grid-template-columns: 6fr 6fr; gap: 80px; align-items: center; }
}
.film__img { aspect-ratio: 16 / 11; }
.film h2 { font-size: clamp(32px, 4.2vw, 48px); }
.film h2 em { font-style: italic; color: var(--purple); }
.film__date {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 14px;
}
.film__caption {
  margin-top: 18px;
  font-size: 16px;
  color: var(--ink);
  max-width: 46ch;
}

/* ---------- Tickets / Stalls / Patronage ---------- */

.tickets {
  background: var(--paper-2);
  padding: clamp(72px, 10vw, 120px) 0;
}
.tickets__grid {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
}
@media (min-width: 720px) { .tickets__grid { grid-template-columns: repeat(3, 1fr); gap: 24px; } }
.ticket {
  background: var(--paper);
  border: 1px solid var(--ink-30);
  border-top: 4px solid var(--gold);
  border-radius: var(--r-3);
  padding: 32px 28px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-height: 280px;
}
.ticket .eyebrow { color: var(--purple); }
.ticket h3 { font-family: var(--serif); font-size: 28px; font-weight: 500; }
.ticket p { font-size: 15px; color: var(--ink-60); flex: 1; }
.ticket .ticket__price {
  font-family: var(--serif);
  font-size: 20px;
  color: var(--ink);
  font-weight: 500;
}
.ticket__cta {
  align-self: start;
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--ink);
  border-bottom: 1px solid var(--gold);
  padding-bottom: 2px;
}
.ticket__cta:hover { color: var(--purple); }

/* ---------- Partner With Us ---------- */

.partner-hero {
  padding: clamp(40px, 6vw, 80px) 0 clamp(56px, 8vw, 96px);
}
.partner-hero__crumb {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-60);
  margin-bottom: 28px;
}
.partner-hero__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 36px;
}
@media (min-width: 900px) {
  .partner-hero__grid {
    grid-template-columns: 8fr 4fr;
    gap: 80px;
    align-items: end;
  }
}
.partner-hero h1 {
  font-size: clamp(40px, 6.4vw, 76px);
  margin-top: 18px;
  letter-spacing: -0.015em;
}
.partner-hero h1 em { font-style: italic; color: var(--purple); }
.partner-hero__sub {
  margin-top: 24px;
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(19px, 2vw, 24px);
  line-height: 1.4;
  color: var(--ink);
  max-width: 36ch;
}
.partner-hero__ctas { margin-top: 32px; }

.partner-hero__aside {
  border-left: 1px solid var(--gold);
  padding-left: 24px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--ink-60);
  line-height: 1.6;
}
.partner-hero__aside strong { color: var(--ink); font-weight: 500; }

/* Why partner */

.why {
  background: var(--paper);
  padding: clamp(56px, 8vw, 96px) 0;
  border-top: 1px solid var(--ink-30);
}
.why__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
}
@media (min-width: 900px) {
  .why__grid { grid-template-columns: 5fr 7fr; gap: 80px; }
}
.why__intro {
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(22px, 2.4vw, 30px);
  line-height: 1.4;
  color: var(--ink);
}
.reasons { display: grid; gap: 0; }
.reasons__row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px;
  padding: 22px 0;
  border-top: 1px solid var(--ink-30);
}
.reasons__row:last-child { border-bottom: 1px solid var(--ink-30); }
@media (min-width: 720px) {
  .reasons__row { grid-template-columns: 4fr 8fr; gap: 32px; }
}
.reasons__k {
  font-family: var(--sans);
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--purple);
  font-weight: 500;
  padding-top: 4px;
}
.reasons__v {
  font-size: 16px;
  line-height: 1.55;
  color: var(--ink);
}
.veena-quote {
  margin-top: 48px;
  padding: 32px;
  background: var(--purple);
  color: var(--paper);
  border-radius: var(--r-3);
  position: relative;
}
.veena-quote__body {
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(22px, 2.6vw, 32px);
  line-height: 1.3;
  color: var(--paper);
  text-wrap: balance;
}
.veena-quote__body::before { content: "\201C"; color: var(--gold-soft); }
.veena-quote__body::after  { content: "\201D"; color: var(--gold-soft); }
.veena-quote__who {
  margin-top: 22px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold-soft);
}
.veena-quote__tbc {
  margin-left: 10px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  color: var(--gold-soft);
  background: rgba(251,248,243,0.1);
  padding: 2px 6px;
  border-radius: 2px;
}

/* Tiers */

.tiers {
  padding: clamp(64px, 9vw, 120px) 0;
  background: var(--paper-2);
}
.tiers__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 720px)  { .tiers__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .tiers__grid { grid-template-columns: repeat(3, 1fr); } }

.tier {
  background: var(--paper);
  border: 1px solid var(--ink-30);
  border-top: 4px solid var(--gold);
  border-radius: var(--r-3);
  padding: 28px 26px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 360px;
}
.tier--featured {
  background: var(--purple);
  color: var(--paper);
  border-color: var(--gold);
  border-top-width: 4px;
}
.tier--featured .tier__title { color: var(--paper); }
.tier--featured .tier__body { color: rgba(251,248,243,0.85); }
.tier--featured .tier__benefits li { color: rgba(251,248,243,0.85); border-color: rgba(251,248,243,0.18); }
.tier--featured .eyebrow { color: var(--gold-soft); }
.tier--featured .tier__tag { color: var(--gold-soft); }

.tier__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
}
.tier__tag {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold);
}
.tier__title {
  font-family: var(--serif);
  font-size: 32px;
  font-weight: 500;
  color: var(--ink);
  margin: 4px 0;
}
.tier__body { font-size: 15px; color: var(--ink-60); }
.tier__benefits {
  list-style: none;
  padding: 0;
  margin: 8px 0 0;
  border-top: 1px solid var(--ink-30);
}
.tier__benefits li {
  border-bottom: 1px solid var(--ink-30);
  padding: 12px 0;
  font-size: 14px;
  line-height: 1.5;
  display: flex;
  gap: 10px;
}
.tier__benefits li::before {
  content: "—";
  color: var(--gold);
  flex: 0 0 auto;
}

.tiers__note {
  max-width: var(--max-w);
  margin: 32px auto 0;
  padding: 0 var(--gutter);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--ink-60);
}
.tiers__note strong { color: var(--ink); font-weight: 500; }

/* Reach metrics */

.reach {
  padding: clamp(72px, 10vw, 120px) 0;
}
.reach__head { margin-bottom: clamp(40px, 6vw, 64px); }
.reach__head p { color: var(--ink-60); max-width: 56ch; }

.reach__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1px;
  background: var(--ink-30);
  border: 1px solid var(--ink-30);
  border-radius: var(--r-3);
  overflow: hidden;
}
@media (min-width: 720px) { .reach__grid { grid-template-columns: repeat(2, 1fr); } }
.reach__block {
  background: var(--paper);
  padding: 28px 28px 24px;
}
.reach__block h4 {
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--purple);
  margin-bottom: 16px;
  font-weight: 500;
}
.reach__rows { display: grid; gap: 0; }
.reach__row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 16px;
  padding: 14px 0;
  border-top: 1px solid var(--ink-30);
  font-size: 14px;
  align-items: baseline;
}
.reach__row:first-child { border-top: 0; }
.reach__row .k { color: var(--ink-60); }
.reach__row .v { color: var(--ink); text-align: right; font-family: var(--serif); font-size: 17px; }

/* Past sponsors / testimonials */

.past-section {
  background: var(--paper);
  padding: clamp(64px, 9vw, 110px) 0;
  border-top: 1px solid var(--ink-30);
}
.past-year {
  margin-bottom: 40px;
}
.past-year__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 16px;
}
.past-year__year {
  font-family: var(--serif);
  font-size: 28px;
  font-weight: 500;
  color: var(--purple);
}
.past-year__count {
  font-family: var(--mono);
  font-size: 11px;
  color: var(--ink-60);
  letter-spacing: 0.08em;
}
.past-year__logos {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: var(--ink-30);
  border: 1px solid var(--ink-30);
}
@media (min-width: 720px) { .past-year__logos { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 1000px) { .past-year__logos { grid-template-columns: repeat(5, 1fr); } }

.testimonials {
  display: grid;
  gap: 24px;
  margin-top: 48px;
}
@media (min-width: 900px) { .testimonials { grid-template-columns: 1fr 1fr; } }
.testimonial {
  padding: 28px;
  border: 1px solid var(--ink-30);
  border-left: 3px solid var(--gold);
  border-radius: var(--r-2);
  background: var(--paper-2);
}
.testimonial__body {
  font-family: var(--serif);
  font-style: italic;
  font-size: 20px;
  line-height: 1.45;
  color: var(--ink);
}
.testimonial__who {
  margin-top: 16px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-60);
}
.testimonial__who strong { color: var(--ink); font-weight: 500; }

.case-study {
  margin-top: 40px;
  padding: 32px;
  background: var(--ink);
  color: var(--paper);
  border-radius: var(--r-3);
}
.case-study h4 {
  color: var(--gold-soft);
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin-bottom: 14px;
  font-weight: 500;
}
.case-study p {
  font-family: var(--serif);
  font-size: clamp(20px, 2.4vw, 28px);
  line-height: 1.35;
  margin: 0;
}

/* Forms (deck request + enquiry) */

.forms {
  background: var(--paper-2);
  padding: clamp(72px, 10vw, 120px) 0;
}
.forms__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 48px;
}
@media (min-width: 900px) { .forms__grid { grid-template-columns: 1fr 1fr; gap: 64px; } }

.form-card {
  background: var(--paper);
  border: 1px solid var(--ink-30);
  border-radius: var(--r-3);
  padding: 36px 32px;
}
.form-card .eyebrow { color: var(--gold); display: block; margin-bottom: 10px; }
.form-card h3 {
  font-family: var(--serif);
  font-size: 30px;
  font-weight: 500;
  margin-bottom: 12px;
}
.form-card p {
  font-size: 15px;
  color: var(--ink-60);
  margin-bottom: 22px;
  max-width: 42ch;
}

.field { display: grid; gap: 6px; margin-bottom: 16px; }
.field label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-60);
}
.field input,
.field select,
.field textarea {
  font: inherit;
  font-size: 15px;
  padding: 12px 14px;
  border: 1px solid var(--ink-30);
  border-radius: var(--r-2);
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  outline: none;
  min-height: 44px;
}
.field input:focus,
.field select:focus,
.field textarea:focus {
  border-color: var(--purple);
  box-shadow: 0 0 0 2px var(--gold);
}
.field textarea { min-height: 120px; resize: vertical; }
.field--inline { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }

.form-card__msg {
  margin-top: 14px;
  padding: 14px;
  background: var(--purple);
  color: var(--paper);
  border-radius: var(--r-2);
  font-size: 14px;
}

/* CSR / 80G */

.csr {
  padding: clamp(64px, 9vw, 110px) 0;
}
.csr__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
}
@media (min-width: 900px) { .csr__grid { grid-template-columns: 4fr 8fr; gap: 80px; } }
.csr__rows { border-top: 1px solid var(--ink-30); }
.csr__row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px;
  padding: 22px 0;
  border-bottom: 1px solid var(--ink-30);
}
@media (min-width: 720px) { .csr__row { grid-template-columns: 4fr 8fr; gap: 32px; align-items: baseline; } }
.csr__k {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--purple);
}
.csr__v { font-size: 16px; line-height: 1.55; }

/* ---------- Press page ---------- */

.press-hero {
  padding: clamp(40px, 6vw, 80px) 0 clamp(56px, 8vw, 96px);
}
.press-hero__crumb {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-60);
  margin-bottom: 28px;
}
.press-hero__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 36px;
}
@media (min-width: 900px) {
  .press-hero__grid { grid-template-columns: 8fr 4fr; gap: 80px; align-items: end; }
}
.press-hero h1 {
  font-size: clamp(44px, 7vw, 84px);
  margin-top: 18px;
  letter-spacing: -0.015em;
}
.press-hero h1 em { font-style: italic; color: var(--purple); }
.press-hero__sub {
  margin-top: 24px;
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(19px, 2vw, 24px);
  line-height: 1.4;
  color: var(--ink);
  max-width: 36ch;
}
.press-hero__note {
  border-left: 2px solid var(--gold);
  padding: 8px 16px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  line-height: 1.6;
  color: var(--ink-60);
}

/* Coverage list */

.coverage {
  padding: clamp(56px, 8vw, 96px) 0;
  border-top: 1px solid var(--ink-30);
}
.coverage__year {
  margin-bottom: 48px;
}
.coverage__year-head {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 24px;
  align-items: center;
  margin-bottom: 8px;
}
.coverage__year-num {
  font-family: var(--serif);
  font-size: clamp(40px, 5vw, 64px);
  font-weight: 500;
  color: var(--purple);
  line-height: 1;
  letter-spacing: -0.01em;
}
.coverage__year-rule { border-top: 1px solid var(--gold); height: 0; }

.coverage__list { display: grid; gap: 0; }
.coverage__item {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  padding: 24px 0;
  border-bottom: 1px solid var(--ink-30);
}
@media (min-width: 720px) {
  .coverage__item { grid-template-columns: 200px 1fr auto; gap: 32px; align-items: baseline; }
}
.coverage__meta {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.coverage__pub {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--purple);
  font-weight: 500;
}
.coverage__date {
  font-family: var(--mono);
  font-size: 11px;
  color: var(--ink-60);
  letter-spacing: 0.06em;
}
.coverage__body h4 {
  font-family: var(--serif);
  font-size: clamp(20px, 2.2vw, 26px);
  font-weight: 500;
  line-height: 1.25;
  margin-bottom: 8px;
}
.coverage__body p {
  font-size: 15px;
  color: var(--ink-60);
  margin: 0;
  max-width: 60ch;
}
.coverage__link {
  font-family: var(--sans);
  font-size: 13px;
  letter-spacing: 0.04em;
  color: var(--ink);
  border-bottom: 1px solid var(--gold);
  padding-bottom: 2px;
  align-self: start;
  white-space: nowrap;
}
.coverage__link:hover { color: var(--purple); }

/* Press kit */

.kit {
  background: var(--paper-2);
  padding: clamp(64px, 9vw, 110px) 0;
}
.kit__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
}
@media (min-width: 900px) { .kit__grid { grid-template-columns: 4fr 8fr; gap: 64px; } }
.kit__intro p { color: var(--ink-60); max-width: 38ch; font-size: 15px; }
.kit__files { border-top: 1px solid var(--ink-30); }
.kit__file {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  padding: 20px 0;
  border-bottom: 1px solid var(--ink-30);
  align-items: center;
}
.kit__file--featured {
  background: var(--ink);
  color: var(--paper);
  padding: 22px;
  border-radius: var(--r-3);
  border-bottom: 0;
  margin-bottom: 12px;
}
.kit__file-name {
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 500;
}
.kit__file-note {
  font-size: 13px;
  color: var(--ink-60);
  margin-top: 2px;
}
.kit__file--featured .kit__file-note { color: rgba(251,248,243,0.7); }
.kit__dl {
  font-family: var(--sans);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink);
  border: 1px solid var(--ink);
  padding: 10px 16px;
  border-radius: var(--r-2);
  white-space: nowrap;
}
.kit__dl:hover { background: var(--ink); color: var(--paper); }
.kit__file--featured .kit__dl { background: var(--gold); color: var(--ink); border-color: var(--gold); }
.kit__file--featured .kit__dl:hover { background: var(--paper); color: var(--ink); border-color: var(--paper); }

.bio-block {
  padding: clamp(56px, 8vw, 96px) 0;
}
.bio-block__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
}
@media (min-width: 900px) { .bio-block__grid { grid-template-columns: 4fr 8fr; gap: 64px; align-items: start; } }
.bio-block h2 { margin-bottom: 8px; }
.bio-block .bio__short {
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(20px, 2.2vw, 26px);
  line-height: 1.4;
  color: var(--ink);
  margin-bottom: 24px;
}
.bio-block .bio__long {
  font-size: 16px;
  line-height: 1.65;
  color: var(--ink);
  max-width: 64ch;
}

.press-contact {
  padding: clamp(56px, 8vw, 96px) 0;
  background: var(--purple);
  color: var(--paper);
}
.press-contact__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
}
@media (min-width: 720px) { .press-contact__grid { grid-template-columns: repeat(2, 1fr); gap: 64px; align-items: end; } }
.press-contact h3 {
  color: var(--paper);
  font-size: clamp(32px, 4vw, 48px);
  font-weight: 500;
}
.press-contact h3 em { color: var(--gold-soft); font-style: italic; }
.press-contact dl { margin: 0; display: grid; gap: 12px; }
.press-contact dt {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold-soft);
}
.press-contact dd {
  margin: 0;
  font-family: var(--serif);
  font-size: 22px;
  color: var(--paper);
  font-weight: 500;
}

/* ---------- Visiting accordion ---------- */

.visiting {
  padding: clamp(64px, 9vw, 110px) 0;
  background: var(--paper);
  border-top: 1px solid var(--ink-30);
}
.visiting__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 36px;
}
@media (min-width: 900px) {
  .visiting__grid { grid-template-columns: 4fr 8fr; gap: 80px; align-items: start; }
}
.visiting__intro p { color: var(--ink-60); max-width: 32ch; font-size: 15px; }
.visiting__list { border-top: 1px solid var(--ink-30); }
.visit-row {
  border-bottom: 1px solid var(--ink-30);
}
.visit-row__head {
  width: 100%;
  background: transparent;
  border: 0;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 22px 0;
  cursor: pointer;
  text-align: left;
  color: var(--ink);
  gap: 24px;
}
.visit-row__head:hover .visit-row__label { color: var(--purple); }
.visit-row__label {
  font-family: var(--serif);
  font-size: clamp(22px, 2.6vw, 28px);
  font-weight: 500;
  line-height: 1.2;
}
.visit-row__icon {
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  border: 1px solid var(--ink);
  display: grid;
  place-items: center;
  font-family: var(--mono);
  font-size: 14px;
  line-height: 1;
  color: var(--ink);
  transition: transform 160ms ease, background 160ms ease, color 160ms ease;
}
.visit-row[aria-expanded="true"] .visit-row__icon {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--ink);
  transform: rotate(45deg);
}
.visit-row__body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 240ms ease;
}
.visit-row[aria-expanded="true"] .visit-row__body { max-height: 500px; }
.visit-row__body-inner {
  padding: 0 0 24px;
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink);
  max-width: 60ch;
}

/* ---------- Page hero (shared by Phase 2 pages) ---------- */

.page-hero {
  padding: clamp(40px, 6vw, 80px) 0 clamp(56px, 8vw, 96px);
}
.page-hero__crumb {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-60);
  margin-bottom: 28px;
}
.page-hero__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 36px;
}
@media (min-width: 900px) {
  .page-hero__grid { grid-template-columns: 8fr 4fr; gap: 80px; align-items: end; }
}
.page-hero h1 {
  font-size: clamp(44px, 7vw, 84px);
  margin-top: 18px;
  letter-spacing: -0.015em;
}
.page-hero h1 em { font-style: italic; color: var(--purple); }
.page-hero__sub {
  margin-top: 24px;
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(19px, 2vw, 24px);
  line-height: 1.4;
  color: var(--ink);
  max-width: 38ch;
}
.page-hero__note {
  border-left: 2px solid var(--gold);
  padding: 8px 16px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  line-height: 1.6;
  color: var(--ink-60);
}
.page-hero__note strong { color: var(--ink); font-weight: 500; }

/* ---------- Accomplishments ---------- */

.acc-section {
  padding: clamp(56px, 8vw, 96px) 0;
  border-top: 1px solid var(--ink-30);
}
.acc-section:first-of-type { border-top: 0; }
.acc-section__head {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-bottom: 32px;
}
@media (min-width: 900px) {
  .acc-section__head { grid-template-columns: 4fr 8fr; gap: 64px; align-items: baseline; }
}
.acc-section h2 {
  font-size: clamp(32px, 4.4vw, 52px);
  letter-spacing: -0.01em;
}
.acc-section h2 em { font-style: italic; color: var(--purple); }
.acc-section__count {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--ink-60);
  text-transform: uppercase;
}

.acc-rows { border-top: 1px solid var(--ink-30); }
.acc-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px;
  padding: 22px 0;
  border-bottom: 1px solid var(--ink-30);
}
@media (min-width: 720px) {
  .acc-row { grid-template-columns: 5fr 6fr 1fr; gap: 32px; align-items: baseline; }
}
.acc-row__name {
  font-family: var(--serif);
  font-size: clamp(20px, 2.2vw, 26px);
  font-weight: 500;
  line-height: 1.2;
}
.acc-row__body { font-size: 15px; color: var(--ink-60); line-height: 1.55; }
.acc-row__year {
  font-family: var(--mono);
  font-size: 12px;
  color: var(--purple);
  letter-spacing: 0.06em;
  text-align: right;
}
.acc-row__year .verify {
  font-family: var(--mono);
  font-size: 10px;
  color: var(--gold);
  background: rgba(176,141,46,0.1);
  padding: 2px 6px;
  border-radius: 2px;
  letter-spacing: 0.08em;
}

/* ---------- Productions index (Work) ---------- */

.prod-index {
  padding: clamp(56px, 8vw, 96px) 0;
}
.prod-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 36px;
}
@media (min-width: 720px) { .prod-grid { grid-template-columns: repeat(2, 1fr); gap: 36px; } }
@media (min-width: 1100px) { .prod-grid { grid-template-columns: repeat(3, 1fr); gap: 40px 32px; } }

.prod-card { display: flex; flex-direction: column; gap: 14px; }
.prod-card__img { aspect-ratio: 4 / 5; }
.prod-card__meta {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
}
.prod-card__title {
  font-family: var(--serif);
  font-size: 24px;
  font-weight: 500;
  line-height: 1.2;
}
.prod-card__year {
  font-family: var(--mono);
  font-size: 11px;
  color: var(--gold);
  letter-spacing: 0.08em;
  white-space: nowrap;
}
.prod-card__note {
  font-size: 14px;
  color: var(--ink-60);
  line-height: 1.5;
  margin: 0;
}

/* ---------- Sadhana / Samanvay page ---------- */

.sadhana-thesis {
  padding: clamp(64px, 9vw, 110px) 0;
  background: var(--purple);
  color: var(--paper);
}
.sadhana-thesis__inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
}
@media (min-width: 900px) { .sadhana-thesis__inner { grid-template-columns: 3fr 9fr; gap: 64px; } }
.sadhana-thesis__label {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold-soft);
}
.sadhana-thesis__body {
  font-family: var(--serif);
  font-size: clamp(22px, 2.8vw, 32px);
  line-height: 1.35;
  color: var(--paper);
}

.courses {
  padding: clamp(64px, 9vw, 110px) 0;
}
.courses__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}
@media (min-width: 720px) { .courses__grid { grid-template-columns: 1fr 1fr; gap: 32px; } }
.course-card {
  background: var(--paper);
  border: 1px solid var(--ink-30);
  border-top: 4px solid var(--gold);
  border-radius: var(--r-3);
  padding: 32px 28px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.course-card .eyebrow { color: var(--purple); }
.course-card h3 { font-family: var(--serif); font-size: 32px; font-weight: 500; }
.course-card__body { font-size: 15px; color: var(--ink-60); line-height: 1.6; }
.course-card__meta {
  display: flex;
  gap: 18px;
  margin-top: auto;
  padding-top: 18px;
  border-top: 1px solid var(--ink-30);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-60);
}
.course-card__meta strong { color: var(--ink); font-weight: 500; }

.sadhana-promise {
  margin-top: 40px;
  padding: 28px 32px;
  background: var(--ink);
  color: var(--paper);
  border-radius: var(--r-3);
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(20px, 2.4vw, 28px);
  line-height: 1.35;
}
.sadhana-promise em { color: var(--gold-soft); font-style: italic; }

.gaps {
  padding: clamp(56px, 8vw, 96px) 0;
  background: var(--paper-2);
}
.gaps__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 36px;
}
@media (min-width: 900px) { .gaps__grid { grid-template-columns: 4fr 8fr; gap: 80px; align-items: start; } }
.gaps__list {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid var(--ink-30);
}
.gaps__list li {
  padding: 16px 0;
  border-bottom: 1px solid var(--ink-30);
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: 14px;
  align-items: baseline;
  font-size: 16px;
}
.gaps__list li::before {
  content: attr(data-i);
  font-family: var(--mono);
  font-size: 11px;
  color: var(--gold);
  letter-spacing: 0.06em;
}

/* ---------- Contact ---------- */

.contact-routes {
  padding: clamp(64px, 9vw, 110px) 0;
}
.contact-routes__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1px;
  background: var(--ink-30);
  border: 1px solid var(--ink-30);
  border-radius: var(--r-3);
  overflow: hidden;
}
@media (min-width: 720px) { .contact-routes__grid { grid-template-columns: repeat(2, 1fr); } }
.contact-route {
  background: var(--paper);
  padding: 28px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.contact-route__label {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--purple);
}
.contact-route__to {
  font-family: var(--serif);
  font-size: clamp(22px, 2.4vw, 28px);
  font-weight: 500;
  word-break: break-word;
}
.contact-route__to a { border-bottom: 1px solid var(--gold); }
.contact-route__body { font-size: 14px; color: var(--ink-60); line-height: 1.55; }

/* ---------- Press audit panel ---------- */

.audit {
  padding: clamp(56px, 8vw, 96px) 0;
}
.audit__panel {
  border: 1px dashed var(--gold);
  border-radius: var(--r-3);
  padding: clamp(28px, 4vw, 48px);
  background: var(--paper);
}
.audit__head {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 14px;
}
.audit__panel h3 {
  font-family: var(--serif);
  font-size: clamp(28px, 3.6vw, 40px);
  font-weight: 500;
  letter-spacing: -0.01em;
  margin-bottom: 18px;
  max-width: 28ch;
}
.audit__body {
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink-60);
  max-width: 64ch;
  margin-bottom: 28px;
}
.audit__counts {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1px;
  background: var(--ink-30);
  border: 1px solid var(--ink-30);
  border-radius: var(--r-2);
  overflow: hidden;
  margin-bottom: 28px;
}
@media (min-width: 720px) { .audit__counts { grid-template-columns: repeat(3, 1fr); } }
.audit__count {
  background: var(--paper-2);
  padding: 18px 20px;
}
.audit__count dt {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-60);
  margin-bottom: 8px;
}
.audit__count dd {
  margin: 0;
  font-family: var(--serif);
  font-size: 18px;
  font-weight: 500;
  color: var(--ink);
  line-height: 1.25;
}
.audit__needed {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid var(--ink-30);
}
.audit__needed li {
  padding: 14px 0;
  border-bottom: 1px solid var(--ink-30);
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: 14px;
  align-items: baseline;
  font-size: 15px;
}
.audit__needed li::before {
  content: "□";
  font-family: var(--mono);
  font-size: 16px;
  color: var(--gold);
  line-height: 1;
}

/* ---------- Lineage chain (Festival post-reveal) ---------- */

.lineage {
  margin-top: 40px;
  padding: 32px 28px;
  border-top: 1px solid rgba(251,248,243,0.2);
  border-bottom: 1px solid rgba(251,248,243,0.2);
}
.lineage__label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold-soft);
  margin-bottom: 14px;
}
.lineage__intro {
  font-family: var(--serif);
  font-size: clamp(18px, 2.1vw, 24px);
  line-height: 1.45;
  color: var(--paper);
  margin: 0 0 32px;
  max-width: 64ch;
}
.lineage__chain {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 12px;
}
.lineage__card {
  flex: 1 1 220px;
  min-width: 200px;
  padding: 18px 18px 20px;
  background: rgba(251,248,243,0.06);
  border: 1px solid rgba(251,248,243,0.18);
  border-radius: var(--r-2);
}
.lineage__period {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold-soft);
  margin-bottom: 8px;
}
.lineage__figure {
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 500;
  color: var(--paper);
  line-height: 1.2;
  margin-bottom: 10px;
}
.lineage__note {
  font-size: 13px;
  color: rgba(251,248,243,0.7);
  margin: 0;
  line-height: 1.5;
}
.lineage__dash {
  align-self: center;
  color: var(--gold-soft);
  font-family: var(--mono);
  font-size: 18px;
  padding: 0 4px;
}
@media (max-width: 720px) {
  .lineage__dash { display: none; }
}

/* ---------- Festival team credits ---------- */

.fest-credits {
  padding: clamp(64px, 9vw, 110px) 0;
  background: var(--paper);
  border-top: 1px solid var(--ink-30);
}
.fest-credits__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 36px;
}
@media (min-width: 720px) {
  .fest-credits__grid { grid-template-columns: repeat(3, 1fr); gap: 48px; }
}
.fest-credits__col {
  border-top: 1px solid var(--gold);
  padding-top: 22px;
}
.fest-credits__label {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--purple);
  margin-bottom: 18px;
}
.fest-credits__col ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.fest-credits__col li {
  font-family: var(--serif);
  font-size: clamp(20px, 2.4vw, 26px);
  font-weight: 500;
  line-height: 1.3;
  color: var(--ink);
  padding: 6px 0;
}
.fest-credits__col li strong {
  font-weight: 500;
  color: var(--purple);
}

/* ---------- Press contact credit ---------- */

.press-contact__credit {
  grid-column: 1 / -1;
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid rgba(251,248,243,0.18);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  color: rgba(251,248,243,0.65);
}
.press-contact__credit strong {
  color: var(--gold-soft);
  font-weight: 500;
}

/* ---------- Yakshagana positioning band ---------- */

.yakshagana {
  background: var(--ink);
  color: var(--paper);
  padding: clamp(72px, 10vw, 130px) 0;
  position: relative;
  overflow: hidden;
}
.yakshagana__inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
}
@media (min-width: 900px) { .yakshagana__inner { grid-template-columns: 2fr 8fr 2fr; align-items: start; gap: 64px; } }
.yakshagana__label {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold-soft);
}
.yakshagana__body {
  font-family: var(--serif);
  font-size: clamp(28px, 3.4vw, 44px);
  line-height: 1.22;
  letter-spacing: -0.005em;
  color: var(--paper);
  text-wrap: balance;
}
.yakshagana__body em { color: var(--gold-soft); font-style: italic; }
.yakshagana__rail {
  display: none;
}
@media (min-width: 900px) {
  .yakshagana__rail {
    display: block;
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(251, 248, 243, 0.5);
    text-align: right;
    padding-top: 18px;
    line-height: 1.8;
  }
  .yakshagana__rail span { display: block; margin-bottom: 8px; }
}

/* ---------- Voice (Veena pull-quotes) ---------- */

.voice {
  background: var(--paper-2);
  padding: clamp(72px, 10vw, 130px) 0;
}
.voice__inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: grid;
  grid-template-columns: 1fr;
  gap: 36px;
}
@media (min-width: 900px) {
  .voice__inner { grid-template-columns: 3fr 9fr; gap: 64px; align-items: start; }
}
.voice__rail .eyebrow { display: block; margin-bottom: 12px; }
.voice__quote {
  font-family: var(--serif);
  font-weight: 400;
  font-style: italic;
  font-size: clamp(26px, 3.6vw, 44px);
  line-height: 1.24;
  color: var(--ink);
  letter-spacing: -0.005em;
}
.voice__quote::before { content: "\201C"; color: var(--gold); margin-right: 0.02em; }
.voice__quote::after  { content: "\201D"; color: var(--gold); margin-left: 0.02em; }
.voice__attrib {
  margin-top: 22px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-60);
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}
.voice__attrib strong { color: var(--ink); font-weight: 500; }
.voice__attrib a {
  color: var(--ink);
  border-bottom: 1px solid var(--gold);
}
.voice__tag {
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  background: rgba(176, 141, 46, 0.12);
  color: var(--gold);
  padding: 3px 8px;
  border-radius: 2px;
}
.voice__nav { display: flex; gap: 8px; margin-top: 28px; }
.voice__nav button {
  width: 44px; height: 44px;
  border-radius: 999px;
  border: 1px solid var(--ink);
  background: transparent;
  cursor: pointer;
  color: var(--ink);
  font-size: 16px;
}
.voice__nav button:hover { background: var(--ink); color: var(--paper); }
.voice__count {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--ink-60);
  align-self: center;
  margin-left: 8px;
}

/* ---------- Coverage tags (sponsored vs editorial) ---------- */

.cov-tag {
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 3px 7px;
  border-radius: 2px;
  white-space: nowrap;
}
.cov-tag--sponsored        { background: rgba(176,141,46,0.12); color: var(--gold); }
.cov-tag--editorial         { background: rgba(74,44,90,0.10);  color: var(--purple); }
.cov-tag--editorial-byline { background: var(--purple);          color: var(--gold-soft); }

.coverage__meta {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.coverage__pub-row {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}

/* ---------- AIM panel ---------- */

.aim-panel {
  padding: clamp(64px, 9vw, 110px) 0;
  background: var(--paper);
  border-top: 1px solid var(--ink-30);
}
.aim-panel__inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
}
@media (min-width: 900px) { .aim-panel__inner { grid-template-columns: 5fr 7fr; gap: 80px; align-items: center; } }
.aim-panel h2 {
  font-size: clamp(36px, 4.8vw, 56px);
  letter-spacing: -0.01em;
}
.aim-panel h2 em { font-style: italic; color: var(--purple); }
.aim-panel__body {
  font-family: var(--serif);
  font-size: clamp(18px, 2vw, 22px);
  line-height: 1.5;
  color: var(--ink);
  max-width: 52ch;
}
.aim-panel__meta {
  margin-top: 18px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  color: var(--ink-60);
}
.aim-panel__keys {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: var(--ink-30);
  border: 1px solid var(--ink-30);
  border-radius: var(--r-3);
  overflow: hidden;
}
.aim-panel__key {
  background: var(--paper-2);
  padding: 22px 20px;
}
.aim-panel__key dt {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-60);
  margin-bottom: 6px;
}
.aim-panel__key dd {
  margin: 0;
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 500;
  color: var(--ink);
  line-height: 1.2;
}

/* ---------- Pre-reveal allowed-items block (Festival concept) ---------- */

.public-prods {
  margin-top: 36px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 720px) { .public-prods { grid-template-columns: 1fr 1fr; gap: 20px; } }
.public-prod {
  background: rgba(251,248,243,0.06);
  border: 1px solid rgba(251,248,243,0.2);
  border-left: 3px solid var(--gold);
  border-radius: var(--r-2);
  padding: 22px 22px 24px;
}
.public-prod__tag {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold-soft);
  margin-bottom: 10px;
}
.public-prod__title {
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 500;
  color: var(--paper);
  margin-bottom: 10px;
}
.public-prod__body {
  font-size: 14px;
  line-height: 1.5;
  color: rgba(251,248,243,0.78);
  margin: 0;
}

.prereveal-quote {
  margin-top: 40px;
  padding: 28px 28px 30px;
  border-top: 1px solid rgba(251,248,243,0.2);
  border-bottom: 1px solid rgba(251,248,243,0.2);
}
.prereveal-quote__body {
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(20px, 2.4vw, 28px);
  line-height: 1.35;
  color: var(--paper);
}
.prereveal-quote__body::before { content: "\201C"; color: var(--gold-soft); }
.prereveal-quote__body::after  { content: "\201D"; color: var(--gold-soft); }
.prereveal-quote__who {
  margin-top: 16px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold-soft);
}
.prereveal-links {
  margin-top: 28px;
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
}
.prereveal-links a {
  color: rgba(251,248,243,0.85);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  border-bottom: 1px solid var(--gold-soft);
  padding-bottom: 2px;
}
.prereveal-links a:hover { color: var(--gold-soft); }

/* ---------- Photo credit (corner) ---------- */

.ph__credit {
  position: absolute;
  top: 12px;
  right: 14px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.06em;
  color: var(--ink-60);
  text-transform: uppercase;
}
.ph--on-purple .ph__credit { color: rgba(251,248,243,0.55); }

/* ---------- Therey book (Home) ---------- */

.therey {
  padding: clamp(72px, 10vw, 120px) 0;
  background: var(--paper-2);
  border-top: 1px solid var(--ink-30);
}
.therey__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
}
@media (min-width: 900px) { .therey__grid { grid-template-columns: 4fr 8fr; gap: 80px; align-items: center; } }
.therey__cover {
  aspect-ratio: 3 / 4;
  max-width: 320px;
}
.therey h2 {
  font-size: clamp(36px, 4.6vw, 56px);
  letter-spacing: -0.01em;
  margin-bottom: 14px;
}
.therey h2 em { font-style: italic; color: var(--purple); }
.therey__sub {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 18px;
}
.therey__body {
  font-family: var(--serif);
  font-size: clamp(18px, 2vw, 22px);
  line-height: 1.5;
  color: var(--ink);
  max-width: 56ch;
}

/* ---------- Phase 2 stub ---------- */
  padding: clamp(80px, 12vw, 160px) 0;
}
.stub__inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
}
@media (min-width: 900px) { .stub__inner { grid-template-columns: 5fr 7fr; gap: 80px; align-items: start; } }
.stub__tag {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 18px;
}
.stub h1 { font-size: clamp(40px, 6vw, 72px); margin-bottom: 18px; }
.stub p { color: var(--ink-60); max-width: 50ch; }
.stub__lorem {
  display: grid;
  gap: 16px;
}
.stub__lorem .lorem-block {
  background: var(--paper-2);
  border: 1px dashed var(--ink-30);
  border-radius: var(--r-3);
  padding: 20px;
}
.stub__lorem .lorem-line {
  height: 10px;
  background: var(--ink-30);
  border-radius: 2px;
  margin: 8px 0;
  opacity: 0.5;
}
.stub__lorem .lorem-line.w-90 { width: 90%; }
.stub__lorem .lorem-line.w-70 { width: 70%; }
.stub__lorem .lorem-line.w-50 { width: 50%; }

/* ---------- Page-load reveal ---------- */

@media (prefers-reduced-motion: no-preference) {
  .reveal-in {
    opacity: 0;
    transform: translateY(8px);
    animation: revealIn 700ms cubic-bezier(.2, .7, .2, 1) forwards;
  }
  .reveal-in:nth-child(2) { animation-delay: 80ms; }
  .reveal-in:nth-child(3) { animation-delay: 160ms; }
  @keyframes revealIn {
    to { opacity: 1; transform: translateY(0); }
  }
}
