/* ═══════════════════════════════════════════════
   AT THE CARD TABLE — 2026
   Two colors: navy + paper. Three type registers.
   Light/dark section alternation. Editorial restraint.
   ═══════════════════════════════════════════════ */

:root{
  --navy:   #0E1A2E;
  --navy-2: #14213A;
  --paper:  #EEE6D2;
  --ink:    #0E1A2E;

  /* Ember — the one warm accent. Used only for high-intent ticket CTAs:
     the urgency band between Show and Where, and the mobile sticky ticket bar.
     Body links use --paper with an underline like everywhere else. */
  --ember:      #A82828;
  --ember-deep: #821F1F;

  /* hairlines only — never as text color */
  --line-d: rgba(238,230,210,0.16);
  --line-l: rgba(14,26,46,0.14);

  --max:    1280px;
  --gutter: clamp(20px, 4vw, 56px);

  --ease: cubic-bezier(.2,.8,.2,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--navy);
  color:var(--paper);
  font-family:'Jost',-apple-system,sans-serif;
  font-weight:300;
  line-height:1.65;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; cursor:pointer; border:0; background:transparent; color:inherit; }

/* ── TYPE REGISTERS ─────────────────────────────
   1. Display serif — headlines (Cormorant Garamond)
   2. Body sans — paragraphs (Jost) - default
   3. Mono caps — labels, eyebrows, nav (IBM Plex Mono)
─────────────────────────────────────────────── */
.display{
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
  line-height:1.04;
  letter-spacing:-0.005em;
}
.mono{
  font-family:'IBM Plex Mono', monospace;
  font-weight:400;
  font-size:12.5px;
  letter-spacing:0.16em;
  text-transform:uppercase;
}

/* ── SECTION THEMES ─────────────────────────── */
.light{ background:var(--paper); color:var(--ink); }
.dark{  background:var(--navy);  color:var(--paper); }

/* ── LAYOUT ─────────────────────────────────── */
.container{
  width:100%;
  max-width:var(--max);
  margin:0 auto;
  padding-left:var(--gutter);
  padding-right:var(--gutter);
}
section{ position:relative; }

/* ══════════════════════════════════════════════
   HEADER
   ══════════════════════════════════════════════ */
header.site{
  position:absolute;
  top:0; left:0; right:0;
  z-index:40;
  padding:24px 0;
}
header.site .container{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:24px;
}
header.site .nav-l{ text-align:left; }
header.site .nav-c{ text-align:center; }
header.site .nav-r{ text-align:right; }
header.site a{
  color:var(--paper);
  transition:opacity 240ms ease;
}
header.site a:hover{ opacity:0.65; }
header.site .mark-line{
  color:var(--paper);
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-weight:400;
  font-size:17px;
  letter-spacing:0.03em;
}
header.site .mark-logo{
  display:inline-block;
  line-height:0;
  transition:opacity 240ms ease;
}
header.site .mark-logo img{
  height:48px;
  width:auto;
  display:block;
}

/* Header on light pages — flip text and logo to ink so they read on cream bg */
header.site.light a,
header.site.light .mark-line{
  color:var(--ink);
}
header.site.light .mark-logo img{
  filter:brightness(0);
}

/* ══════════════════════════════════════════════
   HERO
   ══════════════════════════════════════════════ */
.hero{
  min-height:100vh;
  position:relative;
  display:flex;
  align-items:center;
  overflow:hidden;
  background:var(--navy);
}

/* photographic / video underlayer — heavily dimmed */
.hero-bg{
  position:absolute; inset:0;
  overflow:hidden;
  background:
    url('assets/hero-table.jpg') center 38% / cover no-repeat;
}
.hero-video{
  position:absolute;
  top:50%; left:50%;
  width:100%; height:100%;
  min-width:100%; min-height:100%;
  transform:translate(-50%, -50%);
  object-fit:cover;
  object-position:center 38%;
  pointer-events:none;
}
/* navy wash sits above the video — heavy dim for editorial mood */
.hero-bg::after{
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(rgba(14,26,46,0.72), rgba(14,26,46,0.82));
  pointer-events:none;
}

/* velvet drape — vertical fold gradients on top of photo */
.hero::before{
  content:'';
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 50% 80% at 20% 50%, rgba(40,70,130,0.18), transparent 60%),
    radial-gradient(ellipse 50% 80% at 80% 50%, rgba(40,70,130,0.18), transparent 60%),
    linear-gradient(90deg,
      rgba(0,0,0,0.30) 0%,
      transparent 12%,
      rgba(255,255,255,0.025) 24%,
      transparent 38%,
      rgba(0,0,0,0.18) 50%,
      transparent 62%,
      rgba(255,255,255,0.025) 76%,
      transparent 88%,
      rgba(0,0,0,0.30) 100%);
  pointer-events:none;
}
.hero::after{
  content:'';
  position:absolute; inset:0;
  background:radial-gradient(ellipse at center, transparent 35%, rgba(0,0,0,0.55) 100%);
  pointer-events:none;
}

.hero-content{
  width:100%;
  text-align:center;
  position:relative; z-index:2;
  padding:140px 0 100px;
}

.hero .eyebrow{
  color:var(--paper);
  opacity:0.65;
  margin-bottom:48px;
  display:inline-flex;
  align-items:center;
  gap:10px;
  opacity:0; animation:fadeUp 900ms 200ms forwards var(--ease);
}
.hero .eyebrow .dot{
  width:6px; height:6px; border-radius:50%;
  background:var(--paper);
  opacity:0.85;
  animation:pulse 2.4s ease-out infinite;
}
@keyframes pulse{
  0%   { box-shadow:0 0 0 0 rgba(238,230,210,0.45); }
  70%  { box-shadow:0 0 0 9px rgba(238,230,210,0); }
  100% { box-shadow:0 0 0 0 rgba(238,230,210,0); }
}

.hero h1{
  margin:0;
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
  font-size: clamp(60px, 11vw, 168px);
  line-height:0.95;
  letter-spacing:-0.01em;
  color:var(--paper);
  opacity:0; animation:fadeUp 1100ms 360ms forwards var(--ease);
}
.hero h1 em{
  font-style:italic;
  font-weight:500;
}

.hero-mark{
  margin:60px auto 56px;
  width:42px;
  opacity:0; animation:fadeIn 1400ms 720ms forwards ease;
}
.hero-mark svg{ width:100%; display:block; }

.hero-sub{
  margin:0 auto;
  max-width:580px;
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-weight:400;
  font-size:24px;
  line-height:1.5;
  color:var(--paper);
  opacity:0; animation:fadeUp 1100ms 880ms forwards var(--ease);
}

.hero-cta{
  margin-top:48px;
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  gap:24px;
  opacity:0; animation:fadeUp 1100ms 1040ms forwards var(--ease);
}

@keyframes fadeUp{
  from{ opacity:0; transform:translateY(24px); }
  to{ opacity:1; transform:translateY(0); }
}
@keyframes fadeIn{
  from{ opacity:0; }
  to{ opacity:1; }
}

/* ══════════════════════════════════════════════
   BUTTONS
   ══════════════════════════════════════════════ */
.btn{
  display:inline-block;
  padding:18px 48px;
  background:var(--paper);
  color:var(--navy);
  font-family:'IBM Plex Mono', monospace;
  font-weight:400;
  font-size:13px;
  letter-spacing:0.22em;
  text-transform:uppercase;
  transition:all 280ms ease;
  border:1px solid var(--paper);
  cursor:pointer;
}
.btn:hover{
  background:transparent;
  color:var(--paper);
}
.btn-ghost{
  background:transparent;
  color:inherit;
  border:1px solid currentColor;
}
.btn-ghost:hover{ opacity:0.7; }

/* light section override */
.light .btn{
  background:var(--ink);
  color:var(--paper);
  border-color:var(--ink);
}
.light .btn:hover{
  background:transparent;
  color:var(--ink);
}

/* ══════════════════════════════════════════════
   PULL QUOTE
   ══════════════════════════════════════════════ */
.pullquote{
  padding:140px 0;
  text-align:center;
}
.pullquote .rule{
  width:60px; height:1px;
  background:currentColor;
  opacity:0.3;
  margin:0 auto 56px;
}
.pullquote q{
  quotes:none;
  display:block;
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-weight:400;
  font-size: clamp(32px, 4.2vw, 50px);
  line-height:1.3;
  max-width:920px;
  margin:0 auto 36px;
}
.pullquote q::before{ content:'\201C'; }
.pullquote q::after{ content:'\201D'; }
.pullquote .attr{
  opacity:0.55;
}

/* ══════════════════════════════════════════════
   EDITORIAL SPLIT
   ══════════════════════════════════════════════ */
.editorial{
  display:grid;
  grid-template-columns:1fr;
}
@media(min-width:880px){
  .editorial{ grid-template-columns:1.05fr 1fr; }
}

.editorial-photo{
  aspect-ratio: 4/3;
  position:relative;
  overflow:hidden;
  background:linear-gradient(160deg, #1d1610 0%, #0a0706 90%);
}
@media(min-width:880px){
  .editorial-photo{ aspect-ratio:auto; min-height:640px; }
}
.editorial-photo img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  object-position:center 30%;
  filter:saturate(0.85) contrast(1.05);
}
.editorial-photo::after{
  content:'';
  position:absolute; inset:0;
  box-shadow: inset 0 0 120px rgba(0,0,0,0.5);
  background:linear-gradient(180deg, transparent 60%, rgba(0,0,0,0.35) 100%);
  pointer-events:none;
}
.ph-tag{
  position:absolute;
  bottom:20px; left:20px;
  z-index:3;
  color:rgba(238,230,210,0.6);
}

.editorial-text{
  padding:80px 56px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
@media(min-width:1100px){
  .editorial-text{ padding:120px 96px; }
}
.editorial-text .mono{
  color:currentColor;
  opacity:0.6;
  margin-bottom:28px;
}
.editorial-text h2{
  margin:0 0 32px;
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
  font-size: clamp(44px, 5.6vw, 76px);
  line-height:1;
  letter-spacing:-0.01em;
}
.editorial-text p{
  margin:0 0 1.4em;
  font-size:18px;
  line-height:1.75;
  max-width:52ch;
}
.editorial-text p em{ font-style:italic; }
.editorial-text .read-more{
  margin-top:16px;
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-family:'IBM Plex Mono', monospace;
  font-size:13px;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:currentColor;
  transition:gap 280ms ease;
}
.editorial-text .read-more:hover{ gap:20px; }

/* ══════════════════════════════════════════════
   FULL-BLEED PHOTO MOMENT
   ══════════════════════════════════════════════ */
.bleed{
  position:relative;
  width:100%;
  height:80vh;
  min-height:520px;
  overflow:hidden;
  background:#000;
}
.bleed img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  object-position:center 45%;
  filter:saturate(0.5) brightness(0.65) contrast(1.05);
}
.bleed::after{
  content:'';
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(14,26,46,0.7) 0%, transparent 22%, transparent 50%, rgba(14,26,46,0.92) 100%);
}
.bleed-content{
  position:absolute; inset:0;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  align-items:center;
  text-align:center;
  padding:0 var(--gutter) 80px;
  z-index:2;
}
.bleed-content .mono{
  color:var(--paper);
  opacity:0.7;
  margin-bottom:14px;
}
.bleed-content q{
  quotes:none;
  display:block;
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-weight:400;
  font-size: clamp(28px, 3.6vw, 42px);
  line-height:1.3;
  color:var(--paper);
  max-width:820px;
  text-shadow:0 2px 30px rgba(0,0,0,0.6);
}
.bleed-content q::before{ content:'\201C'; }
.bleed-content q::after{ content:'\201D'; }

/* ══════════════════════════════════════════════
   THREE DOORS
   ══════════════════════════════════════════════ */
.doors{
  padding:140px 0 160px;
  background:var(--navy);
  position:relative;
  overflow:hidden;
}
.doors::before{
  content:'';
  position:absolute; inset:0;
  background:
    linear-gradient(90deg,
      rgba(0,0,0,0.25) 0%,
      transparent 15%,
      rgba(255,255,255,0.02) 30%,
      transparent 45%,
      rgba(0,0,0,0.18) 60%,
      transparent 75%,
      rgba(255,255,255,0.02) 88%,
      transparent 100%);
}
.doors-head{
  text-align:center;
  margin-bottom:96px;
  position:relative; z-index:2;
}
.doors-head .mono{
  color:var(--paper);
  opacity:0.55;
  display:block;
  margin-bottom:20px;
}
.doors-head h3{
  margin:0;
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
  font-size: clamp(40px, 5.4vw, 68px);
  color:var(--paper);
  line-height:1.05;
}
.doors-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:24px;
  position:relative; z-index:2;
}
@media(min-width:880px){
  .doors-grid{ grid-template-columns:repeat(3, 1fr); gap:8px; }
}
/* Door is now a perspective container for the flip card */
.door{
  aspect-ratio: 4/5;
  position:relative;
  perspective:1400px;
}
.door-inner{
  position:relative;
  width:100%;
  height:100%;
  transform-style:preserve-3d;
  transition:transform 700ms cubic-bezier(.65,.05,.36,1);
  will-change:transform;
}
.door.flipped .door-inner{
  transform:rotateY(180deg);
}

/* Each face is a full-size panel — must be opaque so the other face
   doesn't show through, and needs its own transform so Firefox builds
   a proper 3D context for backface-visibility. */
.door-face{
  position:absolute;
  inset:0;
  border:1px solid var(--line-d);
  background:var(--navy-2);
  padding:48px 32px;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
  transition:background 400ms ease, border-color 400ms ease;
}
.door-front{
  transform:rotateY(0deg);
}
.door-back{
  transform:rotateY(180deg);
  justify-content:center;
}
.door-face:hover{
  background:#1A2843;
  border-color:rgba(238,230,210,0.32);
}

/* Icon (front only) */
.door-icon{
  width:36px; height:36px;
  margin:24px auto 36px;
  color:var(--paper);
  opacity:0.85;
}
.door-icon svg{ width:100%; height:100%; }

/* Shared text styles for both faces */
.door-face .mono{
  color:var(--paper);
  opacity:0.55;
  margin-bottom:16px;
}
.door-back .mono{
  margin-bottom:24px;
}
.door h4{
  margin:0;
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
  font-size: clamp(32px, 3.6vw, 44px);
  color:var(--paper);
  line-height:1.05;
}
.door-face p{
  margin:24px 0 0;
  font-size:16px;
  line-height:1.7;
  color:var(--paper);
  opacity:0.78;
  max-width:32ch;
}
.door-back p{
  margin:0 0 14px;
}
.door-back p:last-of-type{
  margin-bottom:0;
}
.door-back .door-meta{
  margin-top:18px;
  font-size:11px;
  opacity:0.55;
}

/* Learn more / Back buttons — same mono link style on both faces */
.door-flip-btn,
.door-flip-back{
  margin-top:auto;
  padding:32px 0 0;
  font-family:'IBM Plex Mono', monospace;
  font-size:12px;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--paper);
  background:none;
  border:0;
  cursor:pointer;
  opacity:0.75;
  display:inline-flex;
  align-items:center;
  gap:10px;
  transition:opacity 240ms ease, gap 280ms ease;
}
.door-flip-back{
  margin-top:28px;
  padding-top:0;
}
.door-flip-btn:hover,
.door-flip-back:hover{
  opacity:1;
  gap:18px;
}

/* ══════════════════════════════════════════════
   PRESS — As Seen On (two-tier, paper band between navy sections)
   ══════════════════════════════════════════════ */
.press{
  padding:48px var(--gutter);
  background:var(--paper);
  color:var(--ink);
  border-top:1px solid var(--line-l);
  border-bottom:1px solid var(--line-l);
  text-align:center;
}
.press-label{
  display:block;
  margin-bottom:36px;
  opacity:0.55;
}
.press-row{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
}
.press-row-shows{
  gap:4.5rem;
  margin-bottom:32px;
}
.press-row-networks{
  gap:4rem;
}

/* Divider between rows */
.press-divider{
  width:48px;
  height:1px;
  background:var(--line-l);
  margin:0 auto 32px;
}

/* Logo base — uniform dark silhouettes for paper bg */
.press-logo{
  width:auto;
  filter:brightness(0);
  transition:opacity 240ms ease;
}
/* Logos with internal contrast (e.g. ABC's black disc + white text) keep their native color
   and need higher opacity for the cutout text to read crisply against paper bg */
.press-logo[data-keep-color]{
  filter:none;
  opacity:0.7;
}
.press-logo[data-keep-color]:hover{ opacity:1; }

/* Top tier — prominent show logos (bigger) */
.press-logo-show{
  height:48px;
  opacity:0.7;
}
.press-logo-show:hover{ opacity:1; }
.press-logo-show[data-shorter]{ height:40px; }

/* Bottom tier — network logos (dimmer, smaller) */
.press-logo-net{
  height:32px;
  opacity:0.4;
}
.press-logo-net:hover{ opacity:0.75; }
.press-logo-net[data-tall]{ height:42px; }
.press-logo-net[data-short]{ height:28px; }
.press-logo-net[data-invert]{
  /* Prime Video — already dark in source, just sized */
  height:28px;
  filter:brightness(0);
}

/* ══════════════════════════════════════════════
   FACTS
   ══════════════════════════════════════════════ */
.facts{ padding:120px 0; }
.facts-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:0;
  border-top:1px solid var(--line-d);
  border-bottom:1px solid var(--line-d);
}
@media(min-width:720px){
  .facts-grid{ grid-template-columns:repeat(4, 1fr); }
}
.fact{
  padding:60px 32px;
  text-align:center;
  border-right:1px solid var(--line-d);
}
.fact:last-child{ border-right:0; }
@media(max-width:719px){
  .fact{ border-right:0; border-bottom:1px solid var(--line-d); }
  .fact:last-child{ border-bottom:0; }
}
.fact-num{
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
  font-size: clamp(60px, 7.4vw, 96px);
  line-height:1;
  margin-bottom:18px;
}
.fact-num .unit{
  font-size:0.32em;
  font-style:italic;
  font-weight:400;
  opacity:0.65;
  margin-left:0.12em;
}
.fact-label{
  font-family:'IBM Plex Mono', monospace;
  font-size:12.5px;
  letter-spacing:0.22em;
  text-transform:uppercase;
  opacity:0.65;
}

/* ══════════════════════════════════════════════
   THE SHOW — compact light panel (matches venue-head scale)
   ══════════════════════════════════════════════ */
.show{
  padding:100px 0;
  background:var(--paper);
  color:var(--ink);
  text-align:center;
}
.show-inner{
  max-width:920px;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.show .mono{
  display:block;
  margin-bottom:24px;
  opacity:0.6;
}
.show h2{
  margin:0 0 32px;
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
  font-size: clamp(40px, 5.4vw, 68px);
  line-height:1.02;
  letter-spacing:-0.01em;
}
.show p{
  margin:0 auto 1.2em;
  font-size:18px;
  line-height:1.7;
  max-width:54ch;
  opacity:0.92;
}
.show p:last-of-type{
  margin-bottom:40px;
}

/* Trailer frame inside the Show panel */
.show-trailer{
  width:100%;
  max-width:760px;
  margin:0 auto 44px;
  aspect-ratio: 16/9;
  position:relative;
  background:var(--ink);
  border:1px solid var(--line-l);
  overflow:hidden;
  box-shadow:0 24px 60px -28px rgba(14,26,46,0.35);
}
.show-trailer iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  display:block;
}

/* Custom poster + play button (lite YouTube approach) */
.trailer-poster{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  padding:0;
  border:0;
  background:#000;
  cursor:pointer;
  overflow:hidden;
  display:block;
}
.trailer-poster img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform 900ms cubic-bezier(.22,1,.36,1), filter 400ms ease;
}
.trailer-poster:hover img,
.trailer-poster:focus-visible img{
  transform:scale(1.03);
  filter:brightness(0.82);
}
.trailer-play{
  position:absolute;
  top:50%; left:50%;
  width:84px; height:84px;
  transform:translate(-50%, -50%);
  pointer-events:none;
  transition:transform 360ms cubic-bezier(.22,1,.36,1);
  filter:drop-shadow(0 6px 24px rgba(0,0,0,0.45));
}
.trailer-poster:hover .trailer-play,
.trailer-poster:focus-visible .trailer-play{
  transform:translate(-50%, -50%) scale(1.06);
}
.trailer-play svg{
  width:100%; height:100%;
  display:block;
}
@media(max-width:720px){
  .trailer-play{ width:64px; height:64px; }
}
@media(max-width:720px){
  .show-trailer{ margin-bottom:32px; }
}

/* ══════════════════════════════════════════════
   WHERE — vintage panel with ornaments + ghost-bg photo
   ══════════════════════════════════════════════ */
.where{
  position:relative;
  width:100%;
  min-height:720px;
  padding:120px 0 140px;
  overflow:hidden;
  background:var(--navy);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:64px;
  isolation:isolate;
}
/* Ghost photo background — faded, blue-tinted, low opacity */
.where-img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  object-position:center;
  filter:contrast(1.5) brightness(0.55) saturate(0.4) sepia(0.3) hue-rotate(180deg);
  opacity:0.32;
  z-index:1;
  mix-blend-mode:screen;
}
/* Vignette over the ghost photo */
.where-overlay{
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 80% 70% at 50% 50%, rgba(14,26,46,0) 25%, rgba(14,26,46,0.85) 100%);
  z-index:2;
  pointer-events:none;
}

/* Corner flourishes */
.where-corner{
  position:absolute;
  width:96px;
  height:96px;
  z-index:3;
  color:var(--paper);
  opacity:0.55;
  pointer-events:none;
}
/* Bottom-of-section fade — anchors a taller panel to the next section */
.where::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:0;
  height:90px;
  background:linear-gradient(180deg, rgba(14,26,46,0) 0%, var(--navy) 100%);
  z-index:2;
  pointer-events:none;
}

/* ══════════════════════════════════════════════
   VENUE PHOTO GRID — clickable thumbnails that open a lightbox
   ══════════════════════════════════════════════ */
.venue-grid{
  position:relative;
  z-index:4;
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:16px;
  width:100%;
  max-width:1100px;
  padding:0 var(--gutter);
}
.venue-tile{
  display:block;
  padding:0;
  border:1px solid rgba(238,230,210,0.18);
  background:transparent;
  cursor:pointer;
  overflow:hidden;
  position:relative;
  aspect-ratio:3/2;
  transition:transform 320ms ease, border-color 240ms ease;
}
.venue-tile:hover,
.venue-tile:focus-visible{
  transform:translateY(-3px);
  border-color:rgba(238,230,210,0.45);
  outline:none;
}
.venue-tile img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter:brightness(0.82) saturate(0.92);
  transition:transform 520ms ease, filter 280ms ease;
}
.venue-tile:hover img,
.venue-tile:focus-visible img{
  filter:brightness(1) saturate(1);
  transform:scale(1.05);
}
@media(max-width:720px){
  .venue-grid{
    grid-template-columns:repeat(2, 1fr);
    gap:10px;
    margin-top:40px;
  }
}

/* ══════════════════════════════════════════════
   VENUE LIGHTBOX — full-screen photo viewer
   ══════════════════════════════════════════════ */
.venue-lightbox{
  position:fixed; inset:0;
  z-index:200;
  background:rgba(5,7,15,0.94);
  align-items:center;
  justify-content:center;
  padding:48px;
  animation:venueLightboxFade 240ms ease;
}
.venue-lightbox[hidden]{ display:none; }
.venue-lightbox:not([hidden]){ display:flex; }
@keyframes venueLightboxFade{
  from{ opacity:0; }
  to{ opacity:1; }
}
.venue-lightbox-img{
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  box-shadow:0 30px 90px -20px rgba(0,0,0,0.6);
}
.venue-lightbox-close{
  position:absolute;
  top:20px; right:24px;
  background:transparent;
  border:none;
  color:var(--paper);
  font-size:40px;
  line-height:1;
  cursor:pointer;
  padding:8px 14px;
  opacity:0.7;
  transition:opacity 200ms ease;
  font-family:inherit;
}
.venue-lightbox-close:hover,
.venue-lightbox-close:focus-visible{ opacity:1; outline:none; }
@media(max-width:720px){
  .venue-lightbox{ padding:16px; }
  .venue-lightbox-close{ top:8px; right:12px; font-size:36px; }
}

.where-corner-tl{ top:36px; left:36px; }
.where-corner-tr{ top:36px; right:36px; transform:scaleX(-1); }
.where-corner-bl{ bottom:36px; left:36px; transform:scaleY(-1); }
.where-corner-br{ bottom:36px; right:36px; transform:scale(-1, -1); }

/* Centered text composition */
.where-content{
  position:relative;
  z-index:4;
  width:100%;
  max-width:680px;
  margin:0 auto;
  padding:0 var(--gutter);
  text-align:center;
  color:var(--paper);
}

/* Decorative divider above the WHERE label (replaces a venue crest) */
.where-divider{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  margin-bottom:36px;
  opacity:0.7;
}
.where-dot{
  width:5px; height:5px;
  border-radius:50%;
  background:currentColor;
  opacity:0.65;
}
.where-line{
  width:48px; height:1px;
  background:currentColor;
  opacity:0.55;
}
.where-glyph{
  font-size:18px;
  line-height:1;
  color:var(--paper);
  opacity:0.95;
}

.where-content .mono{
  display:block;
  margin-bottom:28px;
  opacity:0.75;
}
.where-content h3{
  margin:0 0 32px;
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
  font-size: clamp(40px, 5.4vw, 68px);
  line-height:1.02;
  letter-spacing:-0.01em;
  text-shadow:0 2px 30px rgba(0,0,0,0.6);
}
.where-content h3 em{ font-style:italic; }
.where-content > p{
  margin:0 auto 40px;
  font-size:18px;
  line-height:1.75;
  max-width:54ch;
  opacity:0.92;
  text-shadow:0 1px 18px rgba(0,0,0,0.5);
}
.where-content > p em{ font-style:italic; }
.where-meta{
  display:inline-flex;
  align-items:center;
  gap:28px;
  flex-wrap:wrap;
  justify-content:center;
  padding-top:24px;
  border-top:1px solid rgba(238,230,210,0.18);
}
.where-meta .mono{
  display:inline;
  margin:0;
  opacity:0.85;
}
.where-directions{
  display:inline-flex;
  align-items:center;
  gap:10px;
  opacity:0.9;
  transition:opacity 240ms ease, gap 280ms ease;
}
.where-directions:hover{
  opacity:1;
  gap:18px;
}

/* ══════════════════════════════════════════════
   TICKETS CTA — light
   ══════════════════════════════════════════════ */
.tickets{
  padding:160px 0;
  text-align:center;
  background:var(--paper);
  color:var(--ink);
}
.tickets .mono{
  display:block;
  margin-bottom:28px;
  opacity:0.55;
}
.tickets h3{
  margin:0 0 36px;
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
  font-size: clamp(52px, 7.6vw, 100px);
  line-height:1;
  letter-spacing:-0.01em;
}
.tickets h3 em{ font-style:italic; }
.tickets p{
  max-width:560px;
  margin:0 auto 48px;
  font-size:18px;
  line-height:1.75;
}
.tickets .age{
  display:block;
  margin-top:12px;
  font-family:'IBM Plex Mono', monospace;
  font-size:12.5px;
  letter-spacing:0.22em;
  text-transform:uppercase;
  opacity:0.6;
}
/* Ticket Tailor inline widget container */
.tt-widget-wrap{
  width:100%;
  max-width:680px;
  margin:0 auto;
}
.tt-widget-wrap iframe{
  width:100%;
  border:0;
  display:block;
}
.tt-widget-fallback{
  text-align:center;
  padding:24px 0;
}

.tickets .venue{
  margin-top:44px;
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size:18px;
  opacity:0.75;
}
.tickets .venue a{
  border-bottom:1px solid currentColor;
  padding-bottom:1px;
  transition:opacity 240ms ease;
}
.tickets .venue a:hover{ opacity:0.6; }

/* ══════════════════════════════════════════════
   NEWSLETTER + FOOTER — dark
   ══════════════════════════════════════════════ */
.newsletter{
  padding:96px 0;
  border-bottom:1px solid var(--line-d);
}
.newsletter-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:32px;
  align-items:center;
}
@media(min-width:760px){
  .newsletter-grid{ grid-template-columns:1fr 1fr; gap:80px; }
}
.newsletter h4{
  margin:0;
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
  font-size: clamp(32px, 3.8vw, 46px);
  line-height:1.1;
}
.newsletter p{
  margin:16px 0 0;
  font-size:17px;
  opacity:0.75;
  max-width:42ch;
}
.form-row{
  display:flex;
  gap:0;
  border-bottom:1px solid var(--line-d);
}
.form-row input{
  flex:1;
  background:transparent;
  border:0;
  padding:20px 0;
  color:var(--paper);
  font-family:'Jost', sans-serif;
  font-size:17px;
  outline:none;
}
.form-row input::placeholder{ color:var(--paper); opacity:0.5; }
.form-row button{
  padding:20px 8px;
  color:var(--paper);
  font-family:'IBM Plex Mono', monospace;
  font-size:12.5px;
  letter-spacing:0.22em;
  text-transform:uppercase;
  transition:opacity 240ms ease;
}
.form-row button:hover{ opacity:0.6; }

/* ══════════════════════════════════════════════
   CONTACT + NEWSLETTER
   ══════════════════════════════════════════════ */
.contact-news{
  padding:96px 0 88px;
  border-top:1px solid var(--line-d);
  border-bottom:1px solid var(--line-d);
}
.cn-inner{
  max-width:640px;
  text-align:center;
  margin:0 auto;
}
.cn-inner span.mono{
  display:block;
  margin-bottom:18px;
  opacity:0.6;
}
.cn-inner h3{
  margin:0 0 18px;
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
  font-size: clamp(32px, 3.6vw, 46px);
  line-height:1.1;
  letter-spacing:-0.005em;
}
.cn-inner h3 em{ font-style:italic; }
.cn-inner p{
  margin:0 auto 28px;
  font-size:17px;
  line-height:1.7;
  opacity:0.78;
  max-width:46ch;
}
.cn-inner .brevo-form{
  margin:0 auto;
}

/* Brevo signup form — styled to match the site's button & input language */
.brevo-form{
  display:flex;
  gap:0;
  border-bottom:1px solid var(--line-d);
  max-width:480px;
}
.brevo-form input[type="email"]{
  flex:1;
  background:transparent;
  border:0;
  padding:18px 0;
  color:var(--paper);
  font-family:'Jost', sans-serif;
  font-size:17px;
  outline:none;
}
.brevo-form input[type="email"]::placeholder{
  color:var(--paper);
  opacity:0.45;
}
.brevo-submit{
  padding:18px 4px;
  background:none;
  border:0;
  color:var(--paper);
  font-family:'IBM Plex Mono', monospace;
  font-size:12.5px;
  letter-spacing:0.22em;
  text-transform:uppercase;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:8px;
  opacity:0.85;
  transition:opacity 240ms ease, gap 280ms ease;
}
.brevo-submit:hover{ opacity:1; gap:14px; }

/* Newsletter success state (replaces form after subscribe) */
.brevo-success{
  max-width:480px;
  margin:0 auto;
  padding:24px 0 8px;
  border-top:1px solid var(--line-d);
  border-bottom:1px solid var(--line-d);
  text-align:center;
  animation:brevoFadeIn 600ms cubic-bezier(.22,1,.36,1);
}
.brevo-success-eyebrow{
  margin:0 0 10px !important;
  font-family:'IBM Plex Mono', monospace;
  font-size:12.5px !important;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--paper);
  opacity:0.65 !important;
}
.brevo-success-msg{
  margin:0 !important;
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size:18px !important;
  line-height:1.45;
  color:var(--paper);
  opacity:0.92 !important;
  max-width:none !important;
}
@keyframes brevoFadeIn{
  from{ opacity:0; transform:translateY(8px); }
  to{ opacity:1; transform:translateY(0); }
}

/* ══════════════════════════════════════════════
   FAQ
   ══════════════════════════════════════════════ */
.faq{
  padding:120px 0 140px;
  background:var(--navy);
  color:var(--paper);
}
.faq-inner{
  max-width:760px;
}
.faq-head{
  text-align:center;
  margin-bottom:80px;
}
.faq-head .mono{
  display:block;
  margin-bottom:20px;
  opacity:0.55;
}
.faq-head h1,
.faq-head h3{
  margin:0;
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
  font-size: clamp(40px, 5.4vw, 68px);
  line-height:1.05;
  letter-spacing:-0.01em;
}
.faq-head h1 em,
.faq-head h3 em{ font-style:italic; }

/* Dedicated FAQ page — extra top padding to clear the absolute header */
.faq-page{
  padding-top:160px;
}
@media(max-width:720px){
  .faq-page{ padding-top:120px; }
}

.faq-list{
  display:flex;
  flex-direction:column;
}
.faq-item{
  padding:0;
  border-top:1px solid var(--line-d);
}
.faq-item:last-of-type{
  border-bottom:1px solid var(--line-d);
}

/* Summary acts as the clickable Q header */
.faq-item summary{
  list-style:none;            /* remove default disclosure marker (Firefox) */
  padding:28px 0;
  cursor:pointer;
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
  font-size: clamp(22px, 2vw, 26px);
  line-height:1.3;
  color:var(--paper);
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:24px;
  transition:opacity 240ms ease;
}
.faq-item summary::-webkit-details-marker{ display:none; }  /* remove default marker (Safari/Chrome) */
.faq-item summary::marker{ display:none; }
.faq-item summary:hover{ opacity:0.85; }

/* Custom +/× indicator on the right */
.faq-item summary::after{
  content:'+';
  font-family:'Jost', sans-serif;
  font-weight:300;
  font-size:28px;
  line-height:1;
  color:var(--paper);
  opacity:0.55;
  transition:transform 320ms cubic-bezier(.65,.05,.36,1), opacity 240ms ease;
  flex-shrink:0;
  align-self:center;
  width:18px;
  text-align:center;
  display:inline-block;
}
.faq-item[open] summary::after{
  transform:rotate(45deg);   /* + becomes × */
  opacity:0.85;
}

/* Answer paragraph (only visible when item is [open]) */
.faq-item p{
  margin:0;
  padding:0 0 28px;
  font-size:17px;
  line-height:1.75;
  color:var(--paper);
  opacity:0.82;
  max-width:62ch;
  animation:faqOpen 360ms cubic-bezier(.22,1,.36,1);
}

@keyframes faqOpen{
  from{ opacity:0; transform:translateY(-6px); }
  to{ opacity:0.82; transform:translateY(0); }
}
.faq-item p em{ font-style:italic; }
.faq-item p a{
  color:var(--paper);
  border-bottom:1px solid rgba(238,230,210,0.3);
  padding-bottom:1px;
  transition:border-color 240ms ease;
}
.faq-item p a:hover{
  border-bottom-color:rgba(238,230,210,0.85);
}

.faq-contact{
  margin-top:64px;
  text-align:center;
}
.faq-contact p{
  margin:0;
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size: clamp(17px, 1.8vw, 21px);
  color:var(--paper);
  opacity:0.85;
}
.faq-contact a{
  color:var(--paper);
  border-bottom:1px solid rgba(238,230,210,0.3);
  padding-bottom:1px;
  transition:border-color 240ms ease;
}
.faq-contact a:hover{
  border-bottom-color:rgba(238,230,210,0.85);
}

@media(max-width:720px){
  .faq{ padding:72px 0 88px; }
  .faq-head{ margin-bottom:48px; }
  .faq-item{ padding:26px 0; }
  .faq-contact{ margin-top:40px; }
}

/* Visually-hidden utility (for screen-reader-only labels) */
.visually-hidden{
  position:absolute !important;
  width:1px; height:1px;
  padding:0; margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

/* ══════════════════════════════════════════════
   MOBILE STICKY TICKET BAR
   Fixed bottom on small screens, slides in once user
   has scrolled past the hero. Hidden on desktop —
   the nav "Tickets" link covers that case.
   ══════════════════════════════════════════════ */
/* ══════════════════════════════════════════════
   URGENCY CTA — full-width ember band between sections.
   Two-tier: theatrical Cormorant headline (dates + urgency)
   over a small mono caps action line.
   ══════════════════════════════════════════════ */
.urgent-cta{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:14px;
  background:var(--ember);
  color:var(--paper);
  text-decoration:none;
  padding:54px 24px;
  text-align:center;
  transition:background 200ms ease;
}
.urgent-cta:hover,
.urgent-cta:active{
  background:var(--ember-deep);
}
.urgent-cta-headline{
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-weight:500;
  font-size:clamp(30px, 4.4vw, 46px);
  line-height:1.05;
}
.urgent-cta-sep{
  opacity:0.55;
  font-style:normal;
}
.urgent-cta-action{
  font-family:'IBM Plex Mono', monospace;
  font-size:14px;
  font-weight:400;
  letter-spacing:0.22em;
  text-transform:uppercase;
}
.urgent-cta-arrow{
  font-size:1.1em;
  margin-left:4px;
}
@media(max-width:600px){
  .urgent-cta{
    padding:40px 18px;
    gap:12px;
  }
  .urgent-cta-sep{ display:none; }
  .urgent-cta-dates{ display:block; }
  .urgent-cta-action{
    font-size:12px;
    letter-spacing:0.18em;
  }
}

.mobile-tickets-bar{
  display:none;
  position:fixed;
  bottom:0; left:0; right:0;
  z-index:60;
  padding:22px 20px;
  background:var(--ember);
  color:var(--paper);
  font-family:'IBM Plex Mono', monospace;
  font-size:16px;
  font-weight:400;
  letter-spacing:0.16em;
  text-transform:uppercase;
  text-align:center;
  align-items:center;
  justify-content:center;
  gap:12px;
  text-decoration:none;
  transform:translateY(105%);
  transition:transform 480ms cubic-bezier(.22,1,.36,1), background 200ms ease;
  box-shadow:0 -10px 28px -10px rgba(0,0,0,0.55);
  /* Respect iOS safe-area inset on home-bar phones */
  padding-bottom:calc(22px + env(safe-area-inset-bottom, 0));
}
.mobile-tickets-bar:hover,
.mobile-tickets-bar:active{
  background:var(--ember-deep);
}
.mobile-tickets-bar.is-visible{
  transform:translateY(0);
}
@media(max-width:720px){
  .mobile-tickets-bar{ display:flex; }
  /* Give body some bottom padding when bar is visible so footer text isn't covered */
  body.has-sticky-bar footer.site{ padding-bottom:96px; }
}

/* ══════════════════════════════════════════════
   404 — PAGE NOT FOUND
   ══════════════════════════════════════════════ */
.not-found{
  min-height:60vh;
  padding:120px 20px 100px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.not-found-inner{ max-width:640px; margin:0 auto; }
.not-found-eyebrow{
  font-size:13px;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--paper);
  opacity:0.55;
  margin:0 0 24px;
}
.not-found-title{
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(36px, 6vw, 56px);
  font-weight:400;
  line-height:1.1;
  margin:0 0 28px;
  color:var(--paper);
}
.not-found-body{
  font-size:17px;
  line-height:1.6;
  color:var(--paper);
  opacity:0.75;
  margin:0;
}
.not-found-body a{
  color:var(--paper);
  border-bottom:1px solid rgba(238,230,210,0.3);
  padding-bottom:1px;
  transition:border-color 240ms ease;
}
.not-found-body a:hover{
  border-bottom-color:rgba(238,230,210,0.85);
}

/* ══════════════════════════════════════════════
   ABOUT PAGE
   ══════════════════════════════════════════════ */
.about{
  padding:140px 0 120px;
  background:var(--paper);
  color:var(--ink);
}
.about-inner{
  max-width:880px;
}
.about-head{
  text-align:center;
  margin-bottom:64px;
}
.about-head .mono{
  display:block;
  margin-bottom:20px;
  opacity:0.55;
}
.about-head h1{
  margin:0 0 18px;
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
  font-size: clamp(48px, 6.4vw, 88px);
  line-height:1.02;
  letter-spacing:-0.01em;
}
.about-head h1 em{ font-style:italic; }
.about-tagline{
  margin:0;
  opacity:0.55;
}
.about-photo{
  margin:0 0 64px;
  aspect-ratio:3/2;
  max-width:780px;
  margin-left:auto;
  margin-right:auto;
  overflow:hidden;
  background:var(--ink);
}
.about-photo img{
  width:100%; height:100%;
  object-fit:cover;
  object-position:center 35%;
  filter:saturate(0.92) contrast(1.02);
  display:block;
}
.about-body{
  max-width:680px;
  margin:0 auto;
}
.about-body p{
  margin:0 0 1.4em;
  font-size:18px;
  line-height:1.8;
  color:var(--ink);
}
.about-body p:last-child{ margin-bottom:0; }
.about-body em{ font-style:italic; }
.about-lede{
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-weight:400;
  font-size: clamp(22px, 2.4vw, 28px) !important;
  line-height:1.5 !important;
  color:var(--ink);
  margin-bottom:1.6em !important;
  opacity:0.92;
}
.about-cta{
  text-align:center;
  margin-top:80px;
  padding-top:48px;
  border-top:1px solid var(--line-l);
}
.about-cta-eyebrow{
  display:block;
  margin:0 0 20px;
  opacity:0.6;
}
@media(max-width:720px){
  .about{ padding:88px 0 80px; }
  .about-head{ margin-bottom:40px; }
  .about-photo{ margin-bottom:40px; }
  .about-cta{ margin-top:56px; padding-top:32px; }
}

/* ══════════════════════════════════════════════
   EVENTS PAGE
   ══════════════════════════════════════════════ */
.events{
  padding:140px 0 120px;
  background:var(--paper);
  color:var(--ink);
}
.events-inner{
  max-width:1100px;
}
.events-head{
  text-align:center;
  max-width:760px;
  margin:0 auto 96px;
}
.events-head .mono{
  display:block;
  margin-bottom:20px;
  opacity:0.55;
}
.events-head h1{
  margin:0 0 28px;
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
  font-size: clamp(44px, 6vw, 76px);
  line-height:1.02;
  letter-spacing:-0.01em;
}
.events-head h1 em{ font-style:italic; }
.events-lede{
  margin:0 0 36px;
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size: clamp(20px, 2.2vw, 24px);
  line-height:1.5;
  opacity:0.9;
}
.events-lede em{ font-style:italic; }

/* Three pillars */
.events-pillars{
  display:grid;
  grid-template-columns:1fr;
  gap:40px;
  margin-bottom:120px;
  padding-bottom:80px;
  border-bottom:1px solid var(--line-l);
}
@media(min-width:760px){
  .events-pillars{ grid-template-columns:repeat(3, 1fr); gap:48px; }
}
.events-pillars article{
  text-align:center;
}
.events-pillar-title{
  margin:0 0 16px;
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
  font-size: clamp(24px, 2.4vw, 30px);
  line-height:1.2;
}
.events-pillars p{
  margin:0;
  font-size:16px;
  line-height:1.7;
  opacity:0.82;
}

/* Testimonials */
.events-quotes{
  margin-bottom:120px;
}
.events-quotes-head{
  text-align:center;
  margin-bottom:64px;
}
.events-quotes-head .mono{
  display:block;
  margin-bottom:18px;
  opacity:0.55;
}
.events-quotes-head h2{
  margin:0;
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
  font-size: clamp(34px, 4vw, 52px);
  line-height:1.05;
  letter-spacing:-0.005em;
}
.events-quotes-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:32px;
}
@media(min-width:680px){
  .events-quotes-grid{ grid-template-columns:repeat(2, 1fr); gap:36px; }
}
@media(min-width:1024px){
  .events-quotes-grid{ grid-template-columns:repeat(3, 1fr); gap:40px; }
}
.events-quotes-grid blockquote{
  margin:0;
  padding:32px 28px;
  background:#fff;
  border:1px solid var(--line-l);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:24px;
}
.events-quotes-grid p{
  margin:0;
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size: clamp(17px, 1.6vw, 19px);
  line-height:1.55;
  color:var(--ink);
}
.events-quotes-grid p strong{ font-weight:500; font-style:normal; text-transform:uppercase; letter-spacing:0.05em; font-family:'IBM Plex Mono', monospace; font-size:0.85em; }
.events-quotes-grid cite{
  font-family:'IBM Plex Mono', monospace;
  font-style:normal;
  font-size:11px;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--ink);
  opacity:0.6;
  display:block;
  padding-top:16px;
  border-top:1px solid var(--line-l);
}

/* Closing CTA */
.events-cta{
  text-align:center;
  padding:56px 0 0;
  border-top:1px solid var(--line-l);
}
.events-cta h2{
  margin:0 0 18px;
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
  font-style:italic;
  font-size: clamp(32px, 4vw, 48px);
  line-height:1.1;
}
.events-cta p{
  margin:0 0 32px;
  font-size:17px;
  line-height:1.7;
  max-width:48ch;
  margin-left:auto;
  margin-right:auto;
  opacity:0.85;
}
.events-cta-email{
  margin-top:24px !important;
  opacity:0.6;
}
.events-cta-email a{
  color:var(--ink);
  border-bottom:1px solid rgba(14,26,46,0.3);
  padding-bottom:1px;
  letter-spacing:0.16em;
}

@media(max-width:720px){
  .events{ padding:88px 0 80px; }
  .events-head{ margin-bottom:64px; }
  .events-pillars{ margin-bottom:80px; padding-bottom:56px; }
  .events-quotes{ margin-bottom:80px; }
  .events-quotes-head{ margin-bottom:40px; }
}

/* ══════════════════════════════════════════════
   PRIVACY POLICY PAGE
   ══════════════════════════════════════════════ */
.policy{
  padding:140px 0 120px;
  background:var(--paper);
  color:var(--ink);
}
.policy-inner{
  max-width:760px;
}
.policy-head{
  margin-bottom:72px;
  text-align:center;
}
.policy-head .mono{
  display:block;
  margin-bottom:20px;
  opacity:0.55;
}
.policy-head h1{
  margin:0 0 24px;
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
  font-size: clamp(44px, 6vw, 72px);
  line-height:1.02;
  letter-spacing:-0.01em;
}
.policy-head h1 em{ font-style:italic; }
.policy-meta{
  margin:0;
  opacity:0.55;
}
.policy-section{
  margin-bottom:48px;
}
.policy-section:last-child{
  margin-bottom:0;
}
.policy-section h2{
  margin:0 0 18px;
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
  font-size: clamp(26px, 2.8vw, 34px);
  line-height:1.15;
  letter-spacing:-0.005em;
}
.policy-section h3{
  margin:24px 0 10px;
  font-family:'IBM Plex Mono', monospace;
  font-size:12.5px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--ink);
  opacity:0.7;
  font-weight:400;
}
.policy-section p,
.policy-section li{
  font-size:17px;
  line-height:1.75;
  color:var(--ink);
}
.policy-section p{
  margin:0 0 1em;
}
.policy-section p:last-child{
  margin-bottom:0;
}
.policy-section ul{
  margin:0 0 1em;
  padding-left:1.2em;
}
.policy-section li{
  margin-bottom:0.5em;
}
.policy-section a{
  color:var(--ink);
  border-bottom:1px solid rgba(14,26,46,0.3);
  padding-bottom:1px;
  transition:border-color 240ms ease;
}
.policy-section a:hover{
  border-bottom-color:rgba(14,26,46,0.85);
}
.policy-section em{ font-style:italic; }
.policy-section strong{ font-weight:500; }
.policy-lede{
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size: clamp(19px, 2vw, 22px) !important;
  line-height:1.55 !important;
  opacity:0.92;
}
.policy-contact h2{
  font-style:italic;
}

@media(max-width:720px){
  .policy{ padding:88px 0 80px; }
  .policy-head{ margin-bottom:48px; }
  .policy-section{ margin-bottom:36px; }
}

footer.site{
  padding:48px 0 44px;
}
.footer-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:24px;
  align-items:center;
}
@media(min-width:720px){
  .footer-grid{ grid-template-columns:auto 1fr auto; gap:60px; }
}
.footer-mark{
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size:17px;
  color:var(--paper);
}
.footer-links{
  display:flex; flex-wrap:wrap;
  gap:18px 26px;
  color:var(--paper);
  opacity:0.6;
  list-style:none;
  margin:0; padding:0;
}
.footer-links a{ transition:opacity 240ms ease; }
.footer-links a:hover{ opacity:1; }
.footer-cr{
  font-family:'IBM Plex Mono', monospace;
  font-size:11.5px;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--paper);
  opacity:0.55;
}

/* ══════════════════════════════════════════════
   RESPONSIVE TIGHTENING
   ══════════════════════════════════════════════ */
@media(max-width:720px){
  header.site .mark-logo img{ height:36px; }
  .hero-content{ padding:120px 0 80px; }
  .where{ min-height:auto; padding:80px 0; }
  .where-content{ padding-left:24px; padding-right:24px; }
  .where-content > p{ font-size:16px; }
  .where-corner{ width:60px; height:60px; }
  .where-corner-tl{ top:18px; left:18px; }
  .where-corner-tr{ top:18px; right:18px; }
  .where-corner-bl{ bottom:18px; left:18px; }
  .where-corner-br{ bottom:18px; right:18px; }
  .where-meta{
    flex-direction:column;
    gap:12px;
  }
  .show{ padding:72px 0; }
  .hero h1{ font-size: clamp(54px, 16vw, 92px); }
  .hero-sub{ font-size:18px; }
  .pullquote{ padding:88px 0; }
  .pullquote q{ font-size: clamp(22px, 6vw, 32px); }
  .editorial-text{ padding:56px 24px; }
  .editorial-text h2{ font-size: clamp(34px, 9vw, 48px); }
  .doors{ padding:88px 0; }
  .doors-head{ margin-bottom:56px; }
  .door{ aspect-ratio:auto; min-height:380px; }
  .press{ padding:64px 0 72px; }
  .facts{ padding:72px 0; }
  .fact{ padding:44px 24px; }
  .tickets{ padding:96px 0; }
  .bleed{ height:60vh; min-height:420px; }
  .bleed-content{ padding-bottom:48px; }
}

@media (prefers-reduced-motion: reduce){
  .hero .eyebrow,
  .hero h1,
  .hero-mark,
  .hero-sub,
  .hero-cta{ animation:none; opacity:1; }
  .hero .eyebrow .dot{ animation:none; }
}
