/* ============================================================
   STORYLINE — narrative sections + reveals
   ============================================================ */

section{padding:var(--section-y) var(--gutter);max-width:var(--maxw);margin:0 auto}

/* ---- SCROLL REVEAL ---- */
.reveal{opacity:0;transform:translateY(var(--reveal-dist));transition:opacity 1s var(--ease),transform 1.1s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal[data-delay="1"]{transition-delay:.10s}
.reveal[data-delay="2"]{transition-delay:.20s}
.reveal[data-delay="3"]{transition-delay:.30s}
.reveal[data-delay="4"]{transition-delay:.40s}
html[data-motion="minimal"] .reveal{transition-duration:.45s;--reveal-dist:14px}
html[data-motion="minimal"] .reveal[data-delay]{transition-delay:0s}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1!important;transform:none!important}
  .hero video,.act .bg,.act video{transform:none!important}
}

/* ---- EYEBROW ---- */
.eyebrow{
  display:inline-flex;align-items:center;gap:14px;
  font-size:10px;letter-spacing:var(--track-eyebrow);text-transform:uppercase;
  color:var(--muted);margin-bottom:34px;font-weight:400;
}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--accent)}
.eyebrow.center{justify-content:center}
.eyebrow.center::after{content:"";width:34px;height:1px;background:var(--accent)}

/* ---- INTRO ---- */
.intro{max-width:760px;margin:0 auto;text-align:center}
.intro p{
  font-family:var(--sans);font-size:clamp(20px,2.4vw,26px);line-height:1.55;
  font-weight:300;margin-bottom:22px;color:var(--ink);text-wrap:balance;letter-spacing:.005em;
}
.intro p.dim{color:var(--muted)}
.intro .sign{
  margin-top:60px;font-size:10.5px;letter-spacing:var(--track-label);
  text-transform:uppercase;color:var(--muted);
}
.intro .sign span{
  display:block;font-family:var(--sans);text-transform:none;letter-spacing:.01em;
  font-size:17px;color:var(--ink);margin-bottom:7px;font-weight:400;
}

/* ---- ACT TITLE ---- */
.act{
  position:relative;height:100vh;min-height:660px;
  display:flex;align-items:center;padding:0 var(--gutter);overflow:hidden;
  max-width:none;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);
}
.act .bg,.act video{position:absolute;inset:0;width:100%;height:116%;object-fit:cover;background-size:cover;background-position:center;z-index:0;will-change:transform}
.act::after{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,rgba(0,0,0,.72) 0%,rgba(0,0,0,.42) 42%,rgba(0,0,0,.08) 100%);
}
.act::before{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(0,0,0,.45) 0%,transparent 30%,transparent 70%,rgba(0,0,0,.55) 100%);
}
.act .copy{position:relative;z-index:2;max-width:820px;width:100%}

.act-index{
  font-size:10.5px;letter-spacing:.4em;text-transform:uppercase;color:var(--accent);
  margin-bottom:26px;display:flex;align-items:center;gap:16px;
}
.act-index::after{content:"";width:54px;height:1px;background:var(--accent-line)}

.act-title{
  font-family:var(--head);font-weight:300;
  font-size:clamp(52px,7.5vw,112px);line-height:.98;color:var(--ink);
  margin:0 0 26px;letter-spacing:.004em;
}
.act-title em{
  display:block;font-style:italic;color:var(--accent);
  font-size:.36em;letter-spacing:.02em;font-weight:300;margin-top:14px;font-family:var(--head);
}
.act-tag{
  font-family:var(--head);font-weight:300;font-size:clamp(19px,2.2vw,26px);
  line-height:1.4;color:var(--ink-soft);margin-bottom:46px;max-width:560px;text-wrap:balance;
}
.act-cta{display:flex;gap:14px;flex-wrap:wrap}
.btn-gold,.btn-outline{
  display:inline-flex;align-items:center;gap:9px;
  padding:17px 34px;font-size:10.5px;letter-spacing:var(--track-cta);text-transform:uppercase;
  font-weight:500;font-family:var(--sans);transition:all .32s var(--ease);
  border:1px solid var(--accent);cursor:pointer;
}
.btn-gold .ar,.btn-outline .ar{transition:transform .32s var(--ease)}
.btn-gold:hover .ar,.btn-outline:hover .ar{transform:translateX(4px)}
.btn-gold{background:var(--accent);color:#0b0b0c}
.btn-gold:hover{background:transparent;color:var(--accent)}
.btn-outline{background:transparent;color:var(--ink);border-color:var(--rule)}
.btn-outline:hover{border-color:var(--accent);color:var(--accent)}

/* ---- CHAPTERS ---- */
.chapters{
  display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(48px,7vw,110px);align-items:start;
  padding:var(--section-y) var(--gutter);max-width:1320px;margin:0 auto;
}
.chapters .visual{
  position:sticky;top:96px;height:78vh;min-height:480px;
  background-size:cover;background-position:center;overflow:hidden;
  border:1px solid var(--rule-soft);
}
.chapters .visual::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 120px rgba(0,0,0,.4)}
.chapters .text{display:flex;flex-direction:column;gap:clamp(72px,9vw,124px);padding:30px 0}
.chapter .cnum{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--accent);margin-bottom:18px}
.chapter h3{font-family:var(--head);font-size:clamp(28px,3.4vw,40px);font-weight:400;margin-bottom:18px;line-height:1.14}
.chapter p{font-size:16px;line-height:1.85;color:var(--ink-soft);max-width:460px;font-weight:300}
.chapter ul{list-style:none;margin-top:30px}
.chapter li{
  padding:16px 0;border-bottom:1px solid var(--rule);font-size:13px;
  letter-spacing:var(--track-label);text-transform:uppercase;color:var(--muted);
  display:flex;justify-content:space-between;align-items:baseline;
}
.chapter li:first-child{border-top:1px solid var(--rule)}
.chapter li b{font-family:var(--head);font-weight:400;font-size:21px;color:var(--ink);text-transform:none;letter-spacing:.01em}
.chapter .held{margin-top:26px;font-family:var(--head);font-style:italic;font-size:16px;color:var(--accent);opacity:.9}

.chapters.mirror .visual{order:2}
.chapters.mirror .text{order:1}

/* ---- BRIDGE ---- */
.bridge{text-align:center;padding:clamp(96px,13vw,160px) 24px;max-width:760px;margin:0 auto}
.bridge p{font-family:var(--head);font-size:clamp(26px,3.4vw,38px);line-height:1.38;font-weight:300;color:var(--muted);text-wrap:balance}
.bridge .glyph{width:1px;height:60px;background:linear-gradient(var(--accent),transparent);margin:0 auto 44px}

/* ---- SOPRANO ---- */
.soprano{display:grid;grid-template-columns:320px 1fr;gap:clamp(40px,6vw,72px);align-items:center}
.soprano .portrait{
  width:100%;aspect-ratio:4/5;
  background:url('https://d275vyrruichwi.cloudfront.net/Projects/Bayn/Doc-Susan_block10-1.jpg') center/cover;
  filter:grayscale(1) contrast(1.04) brightness(.86);border:1px solid var(--rule-soft);
}
.soprano .lede{font-size:17px;line-height:1.85;color:var(--ink-soft);max-width:540px;font-weight:300}
.soprano blockquote{
  font-family:var(--head);font-size:clamp(24px,2.8vw,30px);line-height:1.5;font-weight:300;font-style:italic;
  margin:30px 0;padding-left:26px;border-left:1px solid var(--accent);text-wrap:balance;
}
.soprano cite{font-size:10.5px;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--muted);font-style:normal}
.soprano cite span{display:block;font-family:var(--head);text-transform:none;letter-spacing:.01em;font-size:17px;color:var(--ink);margin-bottom:4px;font-weight:400}

@media(max-width:880px){
  .act{height:auto;min-height:560px;padding:120px var(--gutter) 80px}
  .act-title em{font-size:.42em}
  .chapters,.chapters.mirror{grid-template-columns:1fr;gap:36px;padding:72px var(--gutter)}
  .chapters .visual,.chapters.mirror .visual{position:relative;top:auto;height:46vh;min-height:300px;order:0}
  .chapters.mirror .text{order:1}
  .chapters .text{gap:60px;padding:6px 0}
  .soprano{grid-template-columns:1fr;gap:32px;text-align:center}
  .soprano .portrait{max-width:240px;margin:0 auto}
  .soprano blockquote{padding-left:0;padding-top:18px;border-left:none;border-top:1px solid var(--accent);margin:24px auto}
  .bridge .glyph{height:44px;margin-bottom:32px}
}
@media(max-width:480px){
  section{padding:var(--section-y) 22px}
  .act{min-height:500px;padding:104px 22px 64px}
  .act-index{font-size:9.5px;letter-spacing:.3em;margin-bottom:20px}
  .act-index::after{width:36px}
  .act-tag{margin-bottom:34px}
  .act-cta{flex-direction:column;align-items:stretch;width:100%}
  .act-cta a{justify-content:center;padding:15px 24px}
  .intro p{font-size:clamp(20px,5.5vw,24px)}
  .chapters,.chapters.mirror{padding:56px 22px}
  .chapters .visual{height:40vh;min-height:260px}
  .chapter p{font-size:15px}
  .chapter li b{font-size:19px}
}
