/* ===== MOMENTS — prestige gallery ===== */
.m-body{background:#0b0d08}
.m-body .nav{background:transparent}
.m-body .nav.scrolled{background:rgba(11,13,8,.82)}

/* Cinematic hero */
.m-hero{position:relative;height:100svh;min-height:620px;overflow:hidden;isolation:isolate;color:var(--ivory)}
.m-slide{position:absolute;inset:0;opacity:0;transition:opacity 2.2s var(--ease)}
.m-slide.on{opacity:1}
.m-slide img{width:100%;height:100%;object-fit:cover;transform:scale(1.12);transition:transform 9s linear;filter:saturate(.9)}
.m-slide.on img{transform:scale(1.0)}
.m-hero::after{content:"";position:absolute;inset:0;z-index:1;background:
  linear-gradient(180deg,rgba(11,13,8,.55) 0%,rgba(11,13,8,.05) 30%,rgba(11,13,8,.15) 55%,rgba(11,13,8,.92) 100%),
  radial-gradient(90% 70% at 15% 100%,rgba(11,13,8,.85),transparent 70%)}
.m-hero-in{position:absolute;inset:auto 0 0 0;z-index:2;padding:0 0 clamp(48px,9vh,96px)}
.m-hero h1{margin:14px 0 0;font-weight:400;line-height:.95}
.m-hero h1 .s{display:block;font-family:var(--script);font-size:clamp(4.2rem,13vw,10.5rem);color:var(--gold-hi);line-height:1.05;text-shadow:0 10px 40px rgba(0,0,0,.45)}
.m-hero h1 .i{display:block;font-family:var(--serif);font-style:italic;font-size:clamp(1.8rem,4vw,3.2rem);color:var(--ivory);text-shadow:0 4px 24px rgba(0,0,0,.6);margin-top:4px;padding-left:clamp(8px,3vw,56px)}
.m-hero-meta{text-shadow:0 1px 10px rgba(0,0,0,.8);display:flex;flex-wrap:wrap;gap:12px 36px;align-items:center;margin-top:28px;font-size:.72rem;letter-spacing:.34em;text-transform:uppercase;color:var(--stone)}
.m-hero-meta b{color:var(--gold-hi);font-weight:400}
.m-dots{position:absolute;right:clamp(16px,4vw,56px);bottom:clamp(48px,9vh,96px);z-index:3;display:flex;gap:10px}
.m-dots button{width:34px;height:44px;border:0;background:none;padding:0;cursor:pointer;position:relative}
.m-dots button::before{content:"";position:absolute;left:0;right:0;top:21px;height:1px;background:rgba(244,239,227,.35)}
.m-dots button::after{content:"";position:absolute;left:0;top:21px;height:1px;width:0;background:var(--gold-hi)}
.m-dots button[aria-current="true"]::after{animation:fill 6.5s linear forwards}
@keyframes fill{to{width:100%}}
.m-scroll{position:absolute;left:50%;bottom:22px;z-index:3;transform:translateX(-50%);width:1px;height:46px;background:linear-gradient(var(--gold),transparent);animation:cue 2.4s var(--ease) infinite;transform-origin:top}

/* Prologue */
.m-prologue{padding:clamp(90px,14vh,150px) 0 clamp(60px,10vh,110px);text-align:center;position:relative}
.m-prologue .orn{display:block;width:62px;height:62px;margin:0 auto 26px;color:var(--gold)}
.m-prologue p.m-q{font-family:var(--serif);font-style:italic;font-size:clamp(1.7rem,3.6vw,2.9rem);line-height:1.25;max-width:20em;margin:0 auto 18px;color:var(--ivory)}
.m-prologue small{font-size:.7rem;letter-spacing:.42em;color:var(--mute)}
.m-stats{display:flex;justify-content:center;gap:clamp(28px,7vw,90px);margin-top:56px;flex-wrap:wrap}
.m-stats div{text-align:center}
.m-stats b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(2.4rem,5vw,3.6rem);color:var(--gold-hi);line-height:1}
.m-stats span{font-size:.66rem;letter-spacing:.32em;color:var(--mute);text-transform:uppercase}

/* Chapter index (sticky) */
.m-index{position:sticky;top:84px;z-index:30;background:rgba(11,13,8,.86);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.m-index ol{list-style:none;margin:0 auto;padding:0;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;width:min(1248px,100% - 32px)}
.m-index ol::-webkit-scrollbar{display:none}
.m-index a{display:flex;align-items:baseline;gap:10px;white-space:nowrap;padding:16px 16px;color:var(--mute);text-decoration:none;font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;border-bottom:1px solid transparent;transition:color .4s,border-color .4s;min-height:48px}
.m-index a i{font-family:var(--serif);font-style:italic;font-size:1rem;letter-spacing:0;color:var(--gold)}
.m-index a:hover,.m-index a[aria-current="true"]{color:var(--ivory);border-color:var(--gold)}

/* Chapters */
.m-ch{padding:clamp(80px,12vh,130px) 0 20px}
.m-ch-head{display:grid;grid-template-columns:auto 1fr;gap:12px 36px;align-items:end;margin-bottom:44px}
.m-ch-num{font-family:var(--serif);font-size:clamp(4.5rem,10vw,8rem);line-height:.8;color:transparent;-webkit-text-stroke:1px var(--gold);grid-row:span 2}
.m-ch-head .eyebrow{margin:0}
.m-ch-head h2{font-family:var(--serif);font-weight:400;font-size:clamp(2.2rem,4.8vw,3.8rem);line-height:1;margin:0}
.m-ch-head p{grid-column:2;margin:6px 0 0;max-width:40em;color:var(--stone);font-size:.98rem}
@media (max-width:640px){.m-ch-head{grid-template-columns:1fr}.m-ch-num{grid-row:auto}.m-ch-head p{grid-column:1}}

/* Feature spread: one large + two stacked */
.m-spread{display:grid;grid-template-columns:1.65fr 1fr;gap:14px;margin-bottom:14px}
.m-spread .stack{display:grid;grid-template-rows:1fr 1fr;gap:14px}
.m-spread.rev{grid-template-columns:1fr 1.65fr}
.m-spread.rev .big{order:2}
.m-spread .big .ph,.m-spread .stack .ph{height:100%}
.m-spread .big{min-height:clamp(320px,52vw,680px)}
@media (max-width:760px){.m-spread,.m-spread.rev{grid-template-columns:1fr}.m-spread.rev .big{order:0}.m-spread .stack{grid-template-rows:none;grid-template-columns:1fr 1fr}.m-spread .stack .ph{aspect-ratio:3/4}}

/* Justified rows */
.m-rows{display:flex;flex-wrap:wrap;gap:14px;list-style:none;margin:0;padding:0}
.m-rows::after{content:"";flex-grow:999}
.m-rows li{position:relative;flex:1 1 300px;height:auto}
.no-js .m-rows li{aspect-ratio:3/2}

/* Photo tile */
.ph{position:relative;display:block;overflow:hidden;background:#15180f;border-radius:2px;cursor:zoom-in;height:100%}
.ph img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.001);transition:transform 1.6s var(--ease),filter 1s,opacity 1.2s var(--ease);filter:saturate(.88) brightness(.94);opacity:0}
.ph img.ld{opacity:1}
.ph::before{content:"";position:absolute;inset:0;z-index:1;box-shadow:inset 0 0 0 1px rgba(230,207,143,0);transition:box-shadow .7s var(--ease),inset .7s var(--ease);pointer-events:none}
.ph::after{content:attr(data-n);position:absolute;left:14px;bottom:12px;z-index:2;font-family:var(--serif);font-style:italic;font-size:.95rem;color:var(--ivory);opacity:0;transform:translateY(8px);transition:opacity .6s,transform .6s var(--ease);text-shadow:0 2px 12px rgba(0,0,0,.7)}
.ph:hover img,.ph:focus-visible img{transform:scale(1.045);filter:saturate(1) brightness(1)}
.ph:hover::before,.ph:focus-visible::before{box-shadow:inset 0 0 0 1px rgba(230,207,143,.75);inset:10px}
.ph:hover::after,.ph:focus-visible::after{opacity:1;transform:none}
.ph .shade{position:absolute;inset:auto 0 0 0;height:40%;z-index:1;background:linear-gradient(transparent,rgba(0,0,0,.45));opacity:0;transition:opacity .6s}
.ph:hover .shade{opacity:1}

/* Interlude quote */
.m-interlude{padding:clamp(90px,14vh,140px) 0;text-align:center}
.m-interlude p{font-family:var(--serif);font-style:italic;font-size:clamp(1.6rem,3.4vw,2.6rem);line-height:1.3;max-width:22em;margin:0 auto 14px}
.m-interlude small{font-size:.68rem;letter-spacing:.4em;color:var(--mute)}
.m-rule{display:block;width:1px;height:70px;margin:0 auto 32px;background:linear-gradient(transparent,var(--gold),transparent)}

/* Closing */
.m-close{padding:clamp(100px,16vh,160px) 0;text-align:center;border-top:1px solid var(--line);margin-top:clamp(80px,12vh,120px)}
.m-close .s{font-family:var(--script);font-size:clamp(3rem,8vw,5.6rem);color:var(--gold-hi);line-height:1.1;margin:0}
.m-close p{color:var(--stone);margin:14px auto 34px;max-width:34em}
.m-close .cta{justify-content:center}

/* ===== Lightbox (theatre) ===== */
body.lb-open{overflow:hidden}
.th{position:fixed;inset:0;z-index:200;background:rgba(7,8,5,.97);display:grid;grid-template-rows:auto 1fr auto;opacity:0;transition:opacity .5s var(--ease)}
.th[hidden]{display:none}
.th.show{opacity:1}
.th-top{display:flex;align-items:center;justify-content:space-between;padding:14px clamp(14px,3vw,32px);color:var(--mute);font-size:.68rem;letter-spacing:.32em;text-transform:uppercase}
.th-top .ch{color:var(--gold-hi)}
.th-top .ct{font-family:var(--serif);font-style:italic;letter-spacing:.04em;font-size:1rem;text-transform:none;color:var(--stone)}
.th-tools{display:flex;gap:6px}
.th button{background:none;border:1px solid transparent;color:var(--gold-hi);width:48px;height:48px;border-radius:50%;cursor:pointer;display:grid;place-items:center;transition:border-color .4s,background .4s}
.th button:hover{border-color:var(--line);background:rgba(201,169,97,.08)}
.th button svg{width:22px;height:22px}
.th-stage{position:relative;display:grid;grid-template-columns:72px 1fr 72px;align-items:center;min-height:0}
.th-fig{margin:0;height:100%;display:flex;align-items:center;justify-content:center;min-height:0;padding:0 8px;position:relative}
.th-img{max-width:100%;max-height:calc(100svh - 190px);object-fit:contain;opacity:0;transform:scale(.985);transition:opacity .7s var(--ease),transform .9s var(--ease);user-select:none;-webkit-user-drag:none;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.th.ready .th-img{opacity:1;transform:none}
.th-spin{position:absolute;width:34px;height:34px;border:1px solid var(--line);border-top-color:var(--gold-hi);border-radius:50%;animation:spin 1s linear infinite}
.th.ready .th-spin{display:none}
.th-strip{display:flex;gap:6px;overflow-x:auto;padding:12px clamp(14px,3vw,32px) 16px;scrollbar-width:none;scroll-behavior:smooth}
.th-strip::-webkit-scrollbar{display:none}
.th-strip button{flex:0 0 auto;width:64px;height:44px;border-radius:2px;padding:0;overflow:hidden;opacity:.38;border:1px solid transparent;transition:opacity .4s,border-color .4s}
.th-strip button img{width:100%;height:100%;object-fit:cover;display:block}
.th-strip button[aria-current="true"]{opacity:1;border-color:var(--gold-hi)}
.th-strip button:hover{opacity:.8;background:none}
@media (max-width:640px){.th-stage{grid-template-columns:1fr}.th-prev,.th-next{position:absolute;bottom:4px;z-index:2}.th-prev{left:8px}.th-next{right:8px}.th-img{max-height:calc(100svh - 210px)}}

@media (prefers-reduced-motion:reduce){.m-slide img{transform:none!important;transition:none}.ph img{opacity:1}}
.m-slide{margin:0}
.m-slide figcaption{position:absolute;right:clamp(16px,4vw,56px);bottom:calc(clamp(48px,9vh,96px) + 56px);z-index:3;text-align:right;max-width:min(440px,60vw);opacity:0;transform:translateY(10px);transition:opacity 1.2s .6s var(--ease),transform 1.2s .6s var(--ease);text-shadow:0 2px 14px rgba(0,0,0,.85)}
.m-slide.on figcaption{opacity:1;transform:none}
.m-slide figcaption b{display:block;font-family:var(--serif);font-weight:400;font-style:italic;font-size:clamp(1.15rem,2vw,1.6rem);color:var(--ivory);line-height:1.2}
.m-slide figcaption span{display:block;margin-top:6px;font-size:.64rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-hi)}
.m-hero::after{z-index:1}
.m-slide figcaption{z-index:4}
@media (max-width:700px){.m-slide figcaption{left:16px;right:16px;text-align:left;bottom:auto;top:96px;max-width:none}}
.m-slide figcaption{padding:14px 18px;border-radius:2px;background:linear-gradient(90deg,rgba(11,13,8,0),rgba(11,13,8,.62) 35%,rgba(11,13,8,.7));backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
@media (max-width:700px){.m-slide figcaption{background:linear-gradient(90deg,rgba(11,13,8,.7),rgba(11,13,8,.55) 70%,rgba(11,13,8,0))}}
