/* ═══════════════════════════════════════════════════════════
   DOS LUCAS · CONCEPT ROOM — Boy Smells × DOS LUCAS
   "Two Worlds": DOS LUCAS night-editorial DNA split into the
   demo's dual palette — Hinoki ink/olive (cold) vs Peachy
   peach/champagne (warm) — with the iconic two-tone bottle
   (opaque hood + sphere cap + tinted glass) as campaign device.
   ═══════════════════════════════════════════════════════════ */

:root {
  --night:        #0c0a09;
  --night-2:      #14100e;
  --night-3:      #1c1714;
  --cream:        #efe5d4;
  --cream-dim:    rgba(239,229,212,.58);
  --cream-faint:  rgba(239,229,212,.32);
  /* Boy Smells — from the real packshots */
  --olive:        #3a4230;      /* Hinoki hood, deep matte olive */
  --olive-2:      #2b3124;
  --olive-lt:     #a9b98d;      /* olive readable on night */
  --champagne:    #f0e0c8;      /* Peachy hood, pearl champagne */
  --peach:        #f4b092;      /* the juice */
  --peach-deep:   #e08a63;
  --peach-ink:    #33180c;      /* text on peach/champagne */
  /* DOS LUCAS constants */
  --bordeaux-lt:  #b84a56;
  --gold:         #c9a86a;
  --line:         rgba(239,229,212,.12);
  --line-strong:  rgba(239,229,212,.25);
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
html.lenis, html.lenis body { height:auto; }
.lenis.lenis-smooth { scroll-behavior:auto !important; }
body {
  background: var(--night);
  color: var(--cream);
  font-family: 'Inter', sans-serif;
  font-weight: 300;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
button { font-family:inherit; cursor:pointer; }

/* ── type utilities ── */
.mono-label {
  font-family:'JetBrains Mono', monospace;
  font-size:10px; font-weight:400;
  letter-spacing:.32em; text-transform:uppercase;
  color:var(--cream-dim);
}
.guilloche-line {
  font-family:'JetBrains Mono', monospace;
  font-size:8px; letter-spacing:.3em; text-transform:uppercase;
  color:var(--bordeaux-lt); opacity:.4;
  white-space:nowrap; overflow:hidden; line-height:1;
  margin:0 auto; max-width:1200px; padding:0 24px;
}

/* ── bottle plate (campaign device: the two-tone flacon) ── */
.plate {
  color: var(--cream);
  display:inline-block;
  border-radius:14px;
  position:relative;
  overflow:hidden;
}
.plate-hero.bottle {
  display:flex; flex-direction:column;
  width: clamp(272px, 36vw, 392px);
  border-radius:32px;
  overflow:visible;
  background:none;
  margin-top:46px;
  box-shadow:
    0 34px 110px rgba(244,176,146,.12),
    0 24px 70px rgba(58,66,48,.35),
    0 6px 22px rgba(0,0,0,.55);
  transform-origin:center;
}
.bottle-cap {
  position:absolute; top:-46px; left:50%;
  width:76px; height:76px; margin-left:-38px;
  border-radius:50%;
  background:
    radial-gradient(circle at 32% 26%, rgba(255,255,255,.34), transparent 42%),
    linear-gradient(100deg, var(--olive) 0%, var(--olive) 47%, var(--champagne) 53%, var(--champagne) 100%);
  box-shadow: 0 14px 34px rgba(0,0,0,.5), inset 0 -3px 10px rgba(0,0,0,.28);
}
.bottle-cap::after {
  content:'';
  position:absolute; left:50%; bottom:-7px;
  width:34px; height:8px; margin-left:-17px;
  border-radius:3px;
  background: linear-gradient(100deg, var(--olive-2) 0 47%, #d9c6a8 53% 100%);
}
.bottle-hood {
  display:block;
  padding: clamp(40px,5vw,54px) 24px clamp(24px,3vw,32px);
  border-radius:32px 32px 0 0;
  background: linear-gradient(100deg, var(--olive) 0%, var(--olive) 46%, var(--champagne) 54%, var(--champagne) 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.14);
  text-align:center;
}
.bottle-glass {
  display:block;
  position:relative;
  padding: clamp(20px,2.6vw,28px) 24px clamp(30px,3.6vw,38px);
  border-radius:0 0 32px 32px;
  background: linear-gradient(180deg, rgba(244,176,146,.20) 0%, rgba(244,176,146,.34) 62%, rgba(224,138,99,.44) 100%);
  border-top:1px solid rgba(255,255,255,.18);
  text-align:center;
  overflow:hidden;
}
.bottle-glass::after {
  content:'';
  position:absolute; left:0; right:0; bottom:0; height:14px;
  background: linear-gradient(180deg, transparent, rgba(224,138,99,.5));
}
.emb {
  display:block;
  font-family:'Fraunces', serif;
  font-weight:500;
  font-size: clamp(46px, 7vw, 78px);
  line-height:.98;
  letter-spacing:.015em;
  color: rgba(0,0,0,.18);
  text-shadow: 0 1px 0 rgba(255,255,255,.30), 0 -1px 1px rgba(0,0,0,.22);
}
.bottle-label {
  display:block;
  margin-top:14px;
  font-family:'JetBrains Mono', monospace;
  font-size: clamp(8px, 1vw, 10px);
  letter-spacing:.42em;
  color:#fff;
  opacity:.95;
  text-shadow: 0 1px 6px rgba(0,0,0,.25);
}
.plate-small {
  padding: 12px 26px 11px;
  border-radius:9px;
  background: var(--olive);
  border:1px solid rgba(239,229,212,.14);
  box-shadow: 0 12px 36px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.10);
}
.plate-small span {
  font-family:'Fraunces', serif;
  font-style:italic; font-weight:400;
  font-size: clamp(16px,2.2vw,23px);
  line-height:1;
  letter-spacing:.12em;
  color: var(--cream);
  text-transform:uppercase;
}

/* per-world plates */
#sec-hinoki .plate-small { background: linear-gradient(165deg, var(--olive) 0%, var(--olive-2) 100%); }
#sec-peachy .plate-small { background: linear-gradient(165deg, var(--champagne) 0%, #e8cba6 100%); border-color: rgba(51,24,12,.18); }
#sec-peachy .plate-small span { color: var(--peach-ink); }
#sec-mix .plate-small {
  background: linear-gradient(100deg, var(--olive) 0%, var(--olive) 44%, var(--champagne) 56%, var(--champagne) 100%);
}
#sec-mix .plate-small span { color: var(--cream); text-shadow: 0 1px 10px rgba(0,0,0,.65), 0 0 2px rgba(0,0,0,.5); }

/* per-world section accents */
#sec-hinoki { background: radial-gradient(ellipse 70% 45% at 12% 8%, rgba(58,66,48,.22), transparent 60%); }
#sec-hinoki .film-no { color: var(--olive-lt); }
#sec-peachy { background: radial-gradient(ellipse 70% 45% at 88% 8%, rgba(244,176,146,.07), transparent 60%); }
#sec-peachy .film-no { color: var(--peach); }
#sec-mix .film-no { color: var(--bordeaux-lt); }

/* ── topbar ── */
.topbar {
  position:fixed; top:0; left:0; right:0; z-index:60;
  display:flex; align-items:center; justify-content:space-between;
  gap:24px;
  padding:14px 28px;
  background: rgba(12,10,9,0);
  border-bottom:1px solid transparent;
  transition: background .45s ease, border-color .45s ease;
}
.topbar.solid {
  background: rgba(12,10,9,.88);
  backdrop-filter: blur(14px);
  border-bottom:1px solid var(--line);
}
.topbar-left { display:flex; align-items:center; gap:14px; min-width:0; }
.dl-mark { height:30px; width:auto; filter:invert(.92) brightness(1.05); }
.topbar-nav { display:flex; gap:28px; }
.topbar-nav a { transition:color .3s; }
.topbar-nav a:hover { color:var(--peach); }
.topbar-right { display:flex; align-items:center; gap:18px; }
.confidential { color:var(--bordeaux-lt); }
.comment-counter { color:var(--peach); letter-spacing:.18em; }

/* ── cover ── */
.cover {
  min-height:100svh;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  position:relative;
  padding: 110px 24px 130px;
  background:
    radial-gradient(ellipse 70% 50% at 16% -10%, rgba(58,66,48,.38), transparent 62%),
    radial-gradient(ellipse 75% 55% at 84% 114%, rgba(244,176,146,.13), transparent 62%),
    var(--night);
}
.cover-inner { display:flex; flex-direction:column; align-items:center; text-align:center; gap:20px; }
.cover-kicker { color:var(--cream-dim); }
.cover-brand {
  font-family:'Fraunces', serif;
  font-weight:400;
  font-size: clamp(42px, 7vw, 82px);
  line-height:1;
  letter-spacing:.015em;
  color:var(--cream);
}
.cover-kicker-sub { color:rgba(169,185,141,.75); letter-spacing:.5em; font-size:9px; margin-top:-8px; }
.cover-sub {
  font-family:'Fraunces', serif;
  font-weight:300;
  font-size: clamp(17px, 2.2vw, 24px);
  color: var(--cream-dim);
  max-width:580px;
  line-height:1.5;
  margin-top:10px;
}
.cover-sub em { font-style:italic; color:var(--peach); }
.cover-meta { display:flex; align-items:center; gap:14px; flex-wrap:wrap; justify-content:center; }
.meta-dot { width:3px; height:3px; border-radius:50%; background:var(--bordeaux-lt); }
.cover-scrollhint {
  position:absolute; bottom:32px; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:12px;
}
.scroll-line {
  width:1px; height:48px;
  background: linear-gradient(var(--cream-faint), transparent);
  animation: scrollPulse 2.2s ease-in-out infinite;
}
@keyframes scrollPulse { 0%,100%{opacity:.3; transform:scaleY(.7)} 50%{opacity:1; transform:scaleY(1)} }

/* ── marquee (scent ticker) ── */
.marquee {
  overflow:hidden; white-space:nowrap;
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  padding:15px 0;
  background: var(--night-2);
}
.marquee-track { display:inline-flex; animation: marquee 44s linear infinite; }
.marquee-track span {
  font-family:'JetBrains Mono', monospace;
  font-size:12px; letter-spacing:.28em;
  color: rgba(244,176,146,.48);
}
@keyframes marquee { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ── film sections ── */
.film-section { padding: clamp(70px,9vw,130px) 24px 40px; max-width:1240px; margin:0 auto; }
.section-head { display:flex; flex-direction:column; gap:18px; margin-bottom:42px; }
.film-no {
  font-family:'Fraunces', serif; font-style:italic; font-weight:300;
  font-size: clamp(28px,3.4vw,44px);
  color:var(--bordeaux-lt);
}
.film-title {
  font-family:'Fraunces', serif;
  font-weight:400;
  font-size: clamp(34px, 5vw, 72px);
  line-height:1.02;
  color:var(--cream);
  letter-spacing:.015em;
}
.film-desc {
  font-size:15px; line-height:1.75; color:var(--cream-dim);
  max-width:680px;
}
.film-meta-row { display:flex; gap:16px; flex-wrap:wrap; align-items:center; }

/* ── revision tag (new cut under a section) ── */
.revision-head {
  display:flex; align-items:center; gap:16px; flex-wrap:wrap;
  margin: 54px 0 20px;
  padding-top: 34px;
  border-top: 1px solid var(--line-strong);
}
.revision-tag {
  font-family:'Fraunces', serif; font-style:italic;
  background: var(--peach); color:var(--peach-ink);
  padding: 8px 18px 6px; border-radius:8px;
  font-size: clamp(17px,2.2vw,24px); letter-spacing:.06em; line-height:1;
  text-transform:uppercase;
}
.revision-date {
  font-family:'JetBrains Mono',monospace;
  font-size:13px; letter-spacing:.24em; color:var(--cream-dim);
}

/* ── player ── */
.player {
  position:relative;
  background:#000;
  border-radius:14px;
  overflow:hidden;
  border:1px solid var(--line);
  box-shadow: 0 40px 120px rgba(0,0,0,.6);
}
.player video { width:100%; display:block; aspect-ratio:16/9; background:#000; cursor:pointer; }
.player-hint {
  position:absolute; top:14px; right:16px;
  font-family:'JetBrains Mono',monospace; font-size:9px; letter-spacing:.22em; text-transform:uppercase;
  color:rgba(239,229,212,.65);
  background:rgba(12,10,9,.55); backdrop-filter:blur(6px);
  padding:7px 12px; border-radius:6px;
  pointer-events:none;
  opacity:0; transition:opacity .4s;
}
.player:hover .player-hint { opacity:1; }
.player-controls {
  position:absolute; left:0; right:0; bottom:0;
  display:flex; align-items:center; gap:14px;
  padding: 26px 18px 14px;
  background: linear-gradient(transparent, rgba(0,0,0,.82));
}
.pc-btn {
  background:none; border:none; color:var(--cream);
  width:34px; height:34px; display:grid; place-items:center;
  border-radius:8px; transition:background .25s;
  font-size:15px;
}
.pc-btn:hover { background:rgba(255,255,255,.12); }
.pc-btn svg { width:16px; height:16px; fill:currentColor; }
.pc-time {
  font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.08em;
  color:var(--cream-dim); min-width:96px; text-align:center;
}
.timeline {
  flex:1; height:26px; position:relative; cursor:pointer;
  display:flex; align-items:center;
}
.timeline-track {
  width:100%; height:4px; border-radius:2px;
  background: rgba(239,229,212,.22);
  position:relative; overflow:visible;
}
.timeline-progress {
  position:absolute; left:0; top:0; bottom:0; width:0%;
  background: var(--peach); border-radius:2px;
}
.pin {
  position:absolute; top:50%;
  width:19px; height:19px; margin-left:-9px;
  transform:translateY(-50%) ;
  background:var(--peach); color:var(--peach-ink);
  border:none; border-radius:50%;
  font-family:'JetBrains Mono',monospace; font-size:10px; font-weight:500;
  display:grid; place-items:center;
  z-index:3;
  transition: transform .2s;
}
.pin:hover { transform:translateY(-50%) scale(1.25); }
.pin.resolved { background:var(--olive-lt); color:#141b0e; }

/* ── feedback zone ── */
.film-feedback {
  display:grid;
  grid-template-columns: minmax(0,1fr) 300px;
  gap:36px;
  margin-top:34px;
}
.comments-col { display:flex; flex-direction:column; gap:14px; }
.comments-title { display:flex; align-items:baseline; gap:14px; }
.comments-title h4 {
  font-family:'Fraunces',serif; font-weight:400; font-style:italic;
  font-size:21px; color:var(--cream);
}
.comment-card {
  border:1px solid var(--line);
  border-radius:12px;
  padding:14px 16px;
  display:flex; flex-direction:column; gap:8px;
  background:var(--night-2);
  transition:border-color .3s;
}
.comment-card:hover { border-color:var(--line-strong); }
.comment-card.resolved { opacity:.45; }
.comment-head { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.comment-author { font-size:13px; font-weight:500; color:var(--cream); }
.tc-chip {
  font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.1em;
  background:rgba(244,176,146,.13); color:var(--peach);
  border:none; border-radius:5px; padding:3px 8px;
  transition:background .25s;
}
.tc-chip:hover { background:rgba(244,176,146,.28); }
.comment-date { font-family:'JetBrains Mono',monospace; font-size:9px; letter-spacing:.12em; color:var(--cream-faint); margin-left:auto; }
.comment-body { font-size:14px; line-height:1.65; color:var(--cream-dim); font-weight:400; }
.comment-actions { display:flex; gap:10px; }
.resolve-btn {
  background:none; border:none;
  font-family:'JetBrains Mono',monospace; font-size:9px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--cream-faint); padding:2px 0;
  transition:color .25s;
}
.resolve-btn:hover { color:var(--olive-lt); }
.no-comments { font-size:13px; color:var(--cream-faint); font-style:italic; font-family:'Fraunces',serif; }

/* ── composer ── */
.composer {
  border:1px solid var(--line-strong);
  border-radius:12px;
  background:var(--night-3);
  padding:14px;
  display:flex; flex-direction:column; gap:10px;
}
.composer-meta { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.composer textarea, .composer input[type=text] {
  width:100%;
  background:rgba(239,229,212,.06);
  border:1px solid var(--line);
  border-radius:8px;
  color:var(--cream);
  font-family:'Inter',sans-serif; font-size:14px; font-weight:400;
  padding:10px 12px;
  resize:vertical;
  outline:none;
  transition:border-color .25s;
}
.composer textarea { min-height:64px; }
.composer textarea:focus, .composer input[type=text]:focus { border-color:rgba(244,176,146,.5); }
.composer-row { display:flex; gap:10px; align-items:center; }
.send-btn {
  background:var(--peach); color:var(--peach-ink);
  border:none; border-radius:8px;
  font-family:'JetBrains Mono',monospace; font-size:10px; font-weight:500;
  letter-spacing:.2em; text-transform:uppercase;
  padding:11px 20px;
  transition:background .25s, transform .15s;
}
.send-btn:hover { background:#f8c4ab; }
.send-btn:active { transform:scale(.97); }
.send-btn:disabled { opacity:.45; cursor:default; }
.author-tag { font-family:'JetBrains Mono',monospace; font-size:9px; letter-spacing:.15em; color:var(--cream-faint); text-transform:uppercase; }
.author-tag button { background:none; border:none; color:var(--gold); font:inherit; letter-spacing:inherit; text-transform:inherit; padding:0; margin-left:6px; }

/* ── status / reaction panel ── */
.status-panel {
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--night-2);
  padding:22px;
  display:flex; flex-direction:column; gap:16px;
  height:fit-content;
  position:sticky; top:90px;
}
.status-chip {
  display:inline-flex; align-items:center; gap:8px;
  font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.24em; text-transform:uppercase;
  padding:8px 14px; border-radius:7px;
  width:fit-content;
}
.status-chip::before { content:''; width:7px; height:7px; border-radius:50%; background:currentColor; }
.status-pending  { color:var(--olive-lt); background:rgba(169,185,141,.10); }
.status-approved { color:var(--peach); background:rgba(244,176,146,.11); }
.status-changes  { color:var(--gold); background:rgba(201,168,106,.12); }
.status-by { font-family:'JetBrains Mono',monospace; font-size:9px; letter-spacing:.14em; color:var(--cream-faint); text-transform:uppercase; line-height:1.8; }
.approve-btn, .changes-btn {
  border-radius:9px;
  font-family:'JetBrains Mono',monospace; font-size:10px; font-weight:500;
  letter-spacing:.2em; text-transform:uppercase;
  padding:13px 18px;
  transition:all .25s;
  text-align:center;
}
.approve-btn {
  background:var(--peach); color:var(--peach-ink); border:none;
}
.approve-btn:hover { background:#f8c4ab; }
.changes-btn {
  background:none; color:var(--cream-dim);
  border:1px solid var(--line-strong);
}
.changes-btn:hover { border-color:var(--gold); color:var(--gold); }

/* ── reference groups ── */
.refs-section { padding: clamp(70px,9vw,130px) 24px 60px; max-width:1240px; margin:0 auto; }
.ref-group { margin-bottom:56px; }
.ref-group-head { display:flex; align-items:baseline; gap:18px; margin-bottom:20px; flex-wrap:wrap; }
.ref-group-film {
  font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.3em;
  color:var(--bordeaux-lt); text-transform:uppercase;
}
.ref-group-name {
  font-family:'Fraunces',serif; font-weight:400; font-style:italic;
  font-size: clamp(24px,3vw,34px); color:var(--cream);
}
.ref-grid {
  display:grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap:18px;
}
.ref-card {
  background:var(--night-2);
  border:1px solid var(--line);
  border-radius:12px;
  overflow:hidden;
  cursor:pointer;
  transition: transform .3s, border-color .3s;
  text-align:left; padding:0;
}
.ref-card:hover { transform:translateY(-4px); border-color:rgba(244,176,146,.45); }
.ref-card img { width:100%; aspect-ratio:16/9; object-fit:cover; }
.clip-thumb { position:relative; }
.clip-play {
  position:absolute; inset:0;
  display:grid; place-items:center;
  color:#fff;
  pointer-events:none;
}
.clip-play svg {
  width:20px; height:20px; fill:currentColor;
  background:rgba(12,10,9,.62);
  padding:11px; border-radius:50%;
  box-sizing:content-box;
  backdrop-filter:blur(4px);
  transition:transform .25s;
}
.ref-card:hover .clip-play svg { transform:scale(1.12); }
.clip-labels { display:flex; flex-direction:column; gap:3px; min-width:0; }
.clip-sub { font-size:11px; color:var(--cream-faint); font-weight:400; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ref-card-info { display:flex; align-items:center; gap:10px; padding:12px 14px; }
.ref-card-title { font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--cream-dim); }
.ref-card-badges { margin-left:auto; display:flex; align-items:center; gap:8px; }
.mini-chip {
  font-family:'JetBrains Mono',monospace; font-size:8.5px; letter-spacing:.14em;
  padding:3px 8px; border-radius:5px; text-transform:uppercase;
}
.mini-approved { color:var(--peach); background:rgba(244,176,146,.13); }
.mini-changes { color:var(--gold); background:rgba(201,168,106,.13); }
.mini-count { color:var(--peach); background:rgba(244,176,146,.1); }
.mini-tag { color:var(--gold); background:rgba(201,168,84,.13); width:fit-content; }

/* ── why section (the letter) ── */
.why-section {
  border-top:1px solid var(--line);
  background:
    radial-gradient(ellipse 60% 55% at 50% 115%, rgba(244,176,146,.06), transparent 62%),
    var(--night-2);
  padding: clamp(80px,10vw,140px) 24px;
}
.why-inner { max-width:920px; margin:0 auto; display:flex; flex-direction:column; gap:34px; text-align:center; align-items:center; }
.why-kicker { color:var(--olive-lt); }
.why-statement {
  font-family:'Fraunces', serif;
  font-weight:300;
  font-size: clamp(23px, 3.2vw, 38px);
  line-height:1.45;
  color:var(--cream);
}
.why-statement em { font-style:italic; color:var(--peach); }
.why-honest {
  font-family:'Fraunces', serif;
  font-style:italic; font-weight:300;
  font-size: clamp(15px, 1.8vw, 18px);
  color:var(--cream-dim);
  margin-top:-10px;
}
.why-stats {
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap:0;
  width:100%;
  margin-top:14px;
  border-top:1px solid var(--line);
}
.stat {
  display:flex; flex-direction:column; align-items:center; gap:10px;
  padding:28px 12px 6px;
}
.stat + .stat { border-left:1px solid var(--line); }
.stat-num {
  font-family:'Fraunces', serif;
  font-style:italic; font-weight:300;
  font-size: clamp(34px, 4.6vw, 56px);
  line-height:1;
}
.stat:nth-child(1) .stat-num { color:var(--olive-lt); }
.stat:nth-child(2) .stat-num { color:var(--cream); }
.stat:nth-child(3) .stat-num { color:var(--peach); }
.stat:nth-child(4) .stat-num { color:var(--gold); }
.why-fine { color:var(--cream-faint); letter-spacing:.28em; font-size:9px; margin-top:10px; }

/* ── door section (CTA) ── */
.door-section {
  padding: clamp(80px,10vw,140px) 24px clamp(70px,8vw,110px);
  text-align:center;
  display:flex; flex-direction:column; align-items:center; gap:22px;
  background:
    radial-gradient(ellipse 55% 50% at 50% -10%, rgba(58,66,48,.20), transparent 60%),
    var(--night);
}
.door-title {
  font-family:'Fraunces',serif; font-style:italic; font-weight:300;
  font-size:clamp(30px,4.4vw,48px);
  margin-top:26px;
}
.door-copy {
  color:var(--cream-dim); font-size:15px; line-height:1.8;
  max-width:640px;
}
.door-cta { display:flex; gap:14px; flex-wrap:wrap; justify-content:center; margin-top:10px; }
.cta-btn {
  font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:500;
  letter-spacing:.24em; text-transform:uppercase;
  padding:16px 30px; border-radius:10px;
  transition:all .25s;
}
.cta-primary { background:var(--peach); color:var(--peach-ink); }
.cta-primary:hover { background:#f8c4ab; transform:translateY(-2px); box-shadow:0 14px 40px rgba(244,176,146,.22); }
.cta-ghost { border:1px solid var(--line-strong); color:var(--cream-dim); }
.cta-ghost:hover { border-color:var(--olive-lt); color:var(--olive-lt); }
.door-alt { font-family:'Fraunces',serif; font-style:italic; font-size:14px; color:var(--cream-faint); }

/* ── general / footer ── */
.general-section { max-width:760px; margin:0 auto; padding:0 24px 90px; text-align:center; display:flex; flex-direction:column; gap:14px; }
.general-title { font-family:'Fraunces',serif; font-style:italic; font-weight:300; font-size:clamp(26px,3.4vw,38px); margin-top:28px; }
.general-sub { color:var(--cream-dim); font-size:14px; margin-bottom:14px; }
#general-comments { text-align:left; display:flex; flex-direction:column; gap:14px; }
.footer {
  border-top:1px solid var(--line);
  padding:64px 24px 48px;
  display:flex; flex-direction:column; align-items:center; gap:10px;
  text-align:center;
  background:var(--night-2);
}
.footer-logo { height:72px; width:auto; filter:invert(.92) brightness(1.05); opacity:.85; margin-bottom:8px; }
.footer-name { font-family:'Fraunces',serif; font-weight:500; font-size:18px; letter-spacing:.04em; }
.footer-fine { margin-top:18px; color:var(--cream-faint); max-width:640px; line-height:2; }

/* ── lightbox ── */
.lightbox {
  position:fixed; inset:0; z-index:100;
  background:rgba(8,6,5,.96);
  display:grid;
  grid-template-columns: minmax(0,1fr) 360px;
}
.lightbox[hidden] { display:none; }
.lb-stage { display:grid; place-items:center; padding:48px; min-width:0; }
.lb-stage img, .lb-stage video { max-width:100%; max-height:calc(100vh - 96px); border-radius:8px; box-shadow:0 30px 90px rgba(0,0,0,.7); }
.lb-stage video { width:100%; background:#000; }
.lb-panel {
  border-left:1px solid var(--line);
  background:var(--night-2);
  padding:64px 26px 26px;
  display:flex; flex-direction:column; gap:16px;
  overflow-y:auto;
}
.lb-panel h3 { font-family:'Fraunces',serif; font-weight:400; font-size:22px; }
.lb-comments { display:flex; flex-direction:column; gap:12px; flex:1; }
.lb-close, .lb-prev, .lb-next {
  position:absolute; z-index:102;
  background:rgba(239,229,212,.07); color:var(--cream);
  border:1px solid var(--line); border-radius:50%;
  width:44px; height:44px;
  font-size:22px; line-height:1;
  display:grid; place-items:center;
  transition:background .25s;
}
.lb-close:hover, .lb-prev:hover, .lb-next:hover { background:rgba(239,229,212,.18); }
.lb-close { top:18px; left:18px; }
.lb-prev { top:50%; left:18px; transform:translateY(-50%); }
.lb-next { top:50%; left:calc(100% - 360px - 62px); transform:translateY(-50%); }
.status-row { display:flex; flex-direction:column; gap:10px; }
.status-row .btn-row { display:flex; gap:8px; }
.status-row .approve-btn, .status-row .changes-btn { flex:1; padding:11px 10px; font-size:9px; }

/* ── toast ── */
.toast {
  position:fixed; bottom:28px; left:50%; transform:translateX(-50%);
  z-index:120;
  background:var(--cream); color:#1a1410;
  font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.12em;
  padding:13px 22px; border-radius:9px;
  box-shadow:0 16px 50px rgba(0,0,0,.5);
}
.toast.error { background:#e8b4b0; }

/* ── reveals ── */
.reveal-load { opacity:0; }
.sr-reveal { opacity:0; transform:translateY(28px); }

/* ── responsive ── */
@media (max-width: 900px) {
  .topbar { padding:12px 16px; }
  .topbar-nav { display:none; }
  .confidential { display:none; }
  .film-feedback { grid-template-columns:1fr; }
  .status-panel { position:static; }
  .lightbox { grid-template-columns:1fr; grid-template-rows: minmax(0,1fr) auto; }
  .lb-panel { border-left:none; border-top:1px solid var(--line); padding:20px; max-height:46vh; }
  .lb-stage { padding:56px 16px 12px; }
  .lb-next { left:auto; right:18px; }
  .pc-time { display:none; }
}
@media (max-width: 700px) {
  .why-stats { grid-template-columns: repeat(2, 1fr); }
  .stat { padding:22px 8px 4px; }
  .stat:nth-child(3) { border-left:none; }
  .stat:nth-child(1), .stat:nth-child(2) { border-bottom:1px solid var(--line); }
}
@media (prefers-reduced-motion: reduce) {
  .marquee-track { animation:none; }
  .reveal-load, .sr-reveal { opacity:1 !important; transform:none !important; }
}
