@font-face { font-family: 'Oswald'; src: url(fonts/oswald.ttf) format('truetype'); font-weight: 200 700; font-display: swap; }
@font-face { font-family: 'Public Sans'; src: url(fonts/publicsans.ttf) format('truetype'); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: 'Public Sans'; src: url(fonts/publicsans-italic.ttf) format('truetype'); font-weight: 100 900; font-style: italic; font-display: swap; }

:root {
  --black: #121110; --black-2: #1E1C1A; --black-3: #2A2724;
  --bone: #EDE8E0; --bone-2: #F7F3EC; --ink: #1B1917; --body: #3E3A35;
  --muted: #7A736A; --muted-dark: #8C857C; --on-dark: #CFC8BD;
  --red: #9E2A24; --red-bright: #D9463E; --rose: #E8A89F;
  --display: 'Oswald', 'Arial Narrow', Arial, sans-serif;
  --sans: 'Public Sans', Arial, sans-serif;
  --gutter: clamp(20px, 5vw, 64px);
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bone-2); color: var(--body); font-family: var(--sans); font-size: 17px; line-height: 1.65; }
img { max-width: 100%; display: block; }
a { color: inherit; }
.display { font-family: var(--display); font-weight: 600; text-transform: uppercase; letter-spacing: 0.01em; line-height: 1.02; }
.eyebrow { margin: 0; font-size: 12px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--red-bright); }
.eyebrow.on-light { color: var(--red); }
.photo { filter: grayscale(1) contrast(1.15); object-fit: cover; }

/* ---------- Hero (shared) ---------- */
.hero { background: var(--black); color: var(--bone); display: grid; grid-template-columns: 1.25fr 1fr; min-height: min(100svh, 920px); }
.hero .text { padding: 64px var(--gutter); display: flex; flex-direction: column; justify-content: center; gap: 22px; }
.hero h1 { margin: 0; font-size: clamp(48px, 8.2vw, 112px); color: var(--bone); }
.hero .epi { margin: 0; font-size: clamp(17px, 1.8vw, 22px); font-style: italic; font-weight: 300; color: var(--on-dark); line-height: 1.45; max-width: 30em; }
.hero .meta { margin: 0; font-size: 13px; color: var(--muted-dark); letter-spacing: 0.03em; }
.hero .img { position: relative; overflow: hidden; }
.hero .img img { position: absolute; inset: 0; width: 100%; height: 100%; object-position: 50% 30%; }
.hero.compact { min-height: 0; grid-template-columns: 1.6fr 1fr; }
.hero.compact .text { padding-top: 72px; padding-bottom: 72px; }
.hero.compact h1 { font-size: clamp(40px, 6vw, 80px); }

@media (max-width: 760px) {
  .hero, .hero.compact { grid-template-columns: 1fr; min-height: 0; }
  .hero .img { order: -1; height: 62vw; max-height: 420px; }
  .hero .text { padding-top: 36px; padding-bottom: 44px; }
  .hero.compact .img { height: 46vw; }
}

/* ---------- Generic sections ---------- */
.band { padding: clamp(56px, 9vw, 112px) var(--gutter); }
.band.dark { background: var(--black); color: var(--on-dark); }
.band.light { background: var(--bone); }
.band.red { background: var(--red); color: #F4EEE6; }
.wrap { max-width: 1080px; margin: 0 auto; }
.narrow { max-width: 680px; margin: 0 auto; }
h2.section { margin: 0 0 24px; font-size: clamp(30px, 4.2vw, 48px); color: var(--ink); }
.dark h2.section { color: var(--bone); }
.lead { font-family: var(--display); font-weight: 400; font-size: clamp(24px, 3vw, 36px); text-wrap: balance; line-height: 1.25; color: var(--ink); margin: 0; }
.lead em { font-style: normal; color: var(--red); }
.dark .lead { color: var(--bone); }
.red .lead { color: #F4EEE6; font-size: clamp(28px, 4vw, 48px); line-height: 1.15; }
.red .lead em { color: #F4D9D3; }

.injuries { margin: 0 0 28px; font-family: var(--display); font-size: clamp(20px, 2.4vw, 26px); line-height: 1.3; text-transform: uppercase; color: var(--red); }
.cols { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }
.cols p { margin: 0 0 16px; }
@media (max-width: 760px) { .cols { grid-template-columns: 1fr; gap: 8px; } }

.quote { margin: 0 0 28px; padding-top: 20px; border-top: 4px solid var(--red-bright); font-family: var(--display); font-weight: 400; font-size: clamp(24px, 3vw, 34px); line-height: 1.25; color: var(--rose); }
.byline { margin: 0 0 28px; font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted-dark); }

.footer { background: var(--black); color: var(--muted-dark); padding: 40px var(--gutter); font-size: 14px; }
.footer .wrap { display: flex; flex-wrap: wrap; gap: 12px 32px; justify-content: space-between; align-items: center; }
.footer a { color: var(--on-dark); text-decoration: none; border-bottom: 1px solid var(--black-3); }
.footer a:hover { color: var(--bone); border-color: var(--red-bright); }

.btn { display: inline-flex; align-items: center; gap: 10px; padding: 14px 22px; background: var(--red); color: #F4EEE6; text-decoration: none; font-family: var(--display); font-weight: 500; font-size: 17px; letter-spacing: 0.06em; text-transform: uppercase; border: 0; }
.btn:hover { background: var(--red-bright); }
.btn.ghost { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 2px var(--ink); }
.btn.ghost:hover { background: var(--ink); color: var(--bone); }
.dark .btn.ghost { color: var(--bone); box-shadow: inset 0 0 0 2px var(--bone); }

/* ---------- Investor hub ---------- */
.docs { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; }
.doc { background: #fff; border-top: 5px solid var(--red); padding: 28px; display: flex; flex-direction: column; gap: 14px; }
.doc h3 { margin: 0; font-size: 30px; color: var(--ink); }
.doc p { margin: 0; color: var(--body); }
.doc .actions { margin-top: auto; padding-top: 10px; display: flex; flex-wrap: wrap; gap: 12px; }
.doc .size { font-size: 13px; color: var(--muted); }
.doc.soon { background: transparent; border-top-color: var(--muted); box-shadow: inset 0 0 0 1px #DDD5C8; }
.doc.soon h3 { color: var(--muted); }

/* ---------- Treatment reading page ---------- */
.reader { background: #fff; padding: clamp(40px, 7vw, 88px) var(--gutter) 96px; }
.reader .narrow { max-width: 700px; }
.reader p.body { margin: 0 0 1.05em; font-size: 18px; line-height: 1.68; color: #2B2724; }
.logline { border-left: 4px solid var(--red); padding: 2px 0 2px 22px; margin: 0 0 22px; }
.logline .l { margin: 8px 0 0; font-family: var(--display); font-weight: 400; font-size: clamp(22px, 3vw, 28px); line-height: 1.28; color: var(--ink); }
.logline .l span { color: var(--red); }
.note { margin: 0 0 56px; font-size: 14px; font-style: italic; color: var(--muted); }
.act-band { background: var(--black); color: var(--bone); padding: 18px 24px 17px; margin: 64px 0 28px; display: flex; align-items: baseline; gap: 18px; flex-wrap: wrap; }
.act-band:first-of-type { margin-top: 0; }
.act-band .num { margin: 0; font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--red-bright); font-weight: 700; }
.act-band h2 { margin: 0; font-size: clamp(28px, 4vw, 38px); color: var(--bone); }
.act-cont { margin: 48px 0 18px; padding-top: 12px; border-top: 2px solid var(--red); }
.act-cont h2 { margin: 0; font-size: 22px; color: var(--ink); }
.turn { margin: 26px 0 28px; padding-left: 18px; border-left: 3px solid var(--red); font-family: var(--display); font-weight: 400; font-size: clamp(21px, 2.6vw, 25px); line-height: 1.32; color: var(--ink); }
.alt { margin-top: 32px; background: var(--bone); border-top: 3px solid var(--red); padding: 20px 24px; font-size: 16.5px; line-height: 1.62; }
.alt .label { margin: 0 0 6px; font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--red); font-weight: 700; }
.alt p { margin: 0; }
.end { margin: 48px 0 0; text-align: center; font-size: 12px; letter-spacing: 0.35em; color: var(--muted-dark); text-transform: uppercase; }
.reader-actions { margin-top: 56px; padding-top: 28px; border-top: 1px solid #E2DBCF; display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; align-items: center; }
.backlink { font-size: 14px; color: var(--muted); text-decoration: none; }
.backlink:hover { color: var(--red); }

.topbar { background: var(--black); color: var(--muted-dark); padding: 14px var(--gutter); font-size: 13px; display: flex; justify-content: space-between; gap: 16px; }
.topbar a { color: var(--on-dark); text-decoration: none; }
.topbar a:hover { color: var(--bone); }
.topbar .t { font-family: var(--display); letter-spacing: 0.08em; text-transform: uppercase; color: var(--bone); }

/* ---------- Treatment outline (run times) ---------- */
.outline { background: var(--bone); }
.t-wrap { max-width: 760px; margin: 0 auto; padding-left: var(--gutter); padding-right: var(--gutter); box-sizing: content-box; }
.t-logline { padding-top: clamp(40px, 6vw, 64px); }
.t-logline .logline { margin: 0; }
.t-intro { padding-top: 48px; padding-bottom: 56px; }
.structure { display: flex; flex-direction: column; gap: 16px; }
.t-h2 { margin: 0; font-family: var(--display); font-weight: 500; text-transform: uppercase; font-size: 32px; line-height: 1.1; color: var(--ink); }
.t-lead { margin: 0; max-width: 65ch; }
.bar { display: flex; gap: 4px; height: 10px; }
.acts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.acts > div { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.acts .t { font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--red); font-weight: 600; font-variant-numeric: tabular-nums; }
.acts .n { font-family: var(--display); font-size: 20px; text-transform: uppercase; color: var(--ink); line-height: 1.15; }
.acts .d { font-size: 14px; line-height: 1.45; }
.t-note { margin: 0; font-size: 15px; color: var(--muted); font-style: italic; max-width: 65ch; }
.t-act { background: var(--black); color: var(--bone); }
.t-act .t-wrap { padding-top: 40px; padding-bottom: 36px; display: flex; flex-direction: column; gap: 6px; }
.t-act h2 { margin: 0; font-family: var(--display); font-weight: 600; text-transform: uppercase; font-size: clamp(34px, 7vw, 52px); line-height: 1.02; color: var(--bone); }
.t-act .span { margin: 0; font-size: 14px; color: var(--on-dark); font-variant-numeric: tabular-nums; }
.act-body { padding-top: 40px; padding-bottom: 48px; display: flex; flex-direction: column; gap: 32px; }
.scene { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 20px; }
.tc { font-family: var(--display); font-size: 15px; color: var(--red); letter-spacing: 0.04em; font-variant-numeric: tabular-nums; padding-top: 3px; }
.scene h3 { font-family: var(--display); font-weight: 500; text-transform: uppercase; font-size: 21px; line-height: 1.2; color: var(--ink); margin: 0 0 8px; letter-spacing: 0.02em; }
.scene p { margin: 0 0 12px; max-width: 65ch; }
.scene p:last-child { margin-bottom: 0; }
.outline .alt { background: var(--bone-2); border-top: 4px solid var(--red); padding: 24px; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.outline .alt h3 { font-family: var(--display); font-weight: 500; text-transform: uppercase; font-size: 21px; color: var(--red); margin: 0; }
.t-actions { padding-top: 8px; padding-bottom: 72px; display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; align-items: center; }
@media (max-width: 640px) {
  .acts { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 20px; }
  .scene { grid-template-columns: 1fr; gap: 4px; }
}
@media print {
  .topbar, .t-actions { display: none; }
  .hero, .t-act, .footer, .bar div { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .t-act { break-after: avoid; break-inside: avoid; }
  .act-body { padding-bottom: 24px; }
  .scene, .alt { break-inside: avoid; }
}

/* ---------- Public page additions ---------- */
.bleed { margin: 0; background: var(--black); }
.bleed img { width: 100%; aspect-ratio: 16 / 9; max-height: 92vh; }
.credits { margin: -16px 0 28px; font-size: 14px; color: var(--muted-dark); }
.statement { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 56px; align-items: start; }
.statement > div > p { margin: 0 0 16px; }
.statement > img { width: 100%; aspect-ratio: 560 / 1080; position: sticky; top: 24px; }
.closer { margin-top: 28px !important; font-family: var(--display); font-size: clamp(22px, 2.6vw, 28px); line-height: 1.25; color: var(--bone); }
.closer span { color: var(--rose); }
@media (max-width: 760px) {
  .statement { grid-template-columns: 1fr; gap: 32px; }
  .statement > img { order: -1; position: static; aspect-ratio: 4 / 5; object-position: 50% 15%; max-width: 360px; }
}
.marker { text-align: center; font-family: var(--display); text-transform: uppercase; letter-spacing: 0.3em; font-size: 14px; color: var(--muted); display: flex; align-items: center; gap: 16px; }
.marker::before, .marker::after { content: ""; flex: 1; height: 1px; background: #D6CFC4; }
.hero-cta { margin: 8px 0 0; }
.teaser .player { background: #000; aspect-ratio: 16 / 9; }
.teaser video { width: 100%; height: 100%; display: block; background: #000; }
.teaser-alt { margin: 14px 0 0; font-size: 14px; color: var(--muted-dark); }
.teaser-alt a { color: var(--on-dark); }
/* ---------- Landing + password gate ---------- */
body.landing { background: var(--black); }
.landing .hero { min-height: 100svh; }
.landing-foot { margin: 28px 0 0; font-size: 13px; color: var(--muted-dark); }
.landing-foot a { color: var(--on-dark); }
.gate { display: flex; flex-direction: column; gap: 10px; max-width: 420px; margin-top: 8px; }
.gate label { font-size: 12px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted-dark); }
.gate-row { display: flex; gap: 10px; }
.gate input[type=password] { flex: 1; min-width: 0; padding: 13px 14px; font: inherit; font-size: 17px; color: var(--bone); background: var(--black-2); border: 1px solid var(--black-3); border-radius: 0; }
.gate input[type=password]:focus { outline: 2px solid var(--red-bright); outline-offset: 1px; }
.gate-msg { margin: 2px 0 0; font-size: 14px; color: var(--rose); }
@media (max-width: 760px) { .landing .hero { min-height: 100svh; } }
/* ---------- Marchand Films mark ---------- */
.mf { width: 28px; height: 28px; flex: none; opacity: .92; }
.foot-brand { display: inline-flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.epi.by { display: flex; align-items: center; gap: 14px; }
.mf-lg { width: 40px; height: 40px; opacity: 1; }
