/* The first two chapters form one scroll-led sequence; later chapters retain their original layout. */
body:has(.memory-opening){overflow-x:clip}
.hero.chapter{padding:0 0 clamp(70px,8vw,120px);overflow:visible}
.world.chapter{overflow:visible}
.memory-opening{height:340svh;position:relative;background:#e9e5dd}
.opening-stage{position:sticky;top:72px;height:calc(100svh - 72px);min-height:500px;overflow:hidden;isolation:isolate;perspective:1600px;background:#e9e5dd}
.opening-atmosphere{position:absolute;inset:0;pointer-events:none}
.opening-atmosphere--dark{background:radial-gradient(ellipse at 54% 42%,#713c31 0,#421a21 43%,#120d15 78%),linear-gradient(180deg,#130d14,#aa4b25)}
.opening-atmosphere--light{background:linear-gradient(180deg,#e9e5dd 0%,#f5f2ec 62%,#e5e0d5 100%);opacity:0}
.opening-heading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;z-index:2;pointer-events:none;overflow:hidden}
.opening-heading .eyebrow{margin:0 0 clamp(18px,3vh,36px);color:#f6e9d9;text-shadow:0 2px 20px #000}
.hero .opening-title{font-family:"Noto Sans SC","Microsoft YaHei",sans-serif;font-weight:900;font-size:clamp(84px,22vw,340px);line-height:1;letter-spacing:-.075em;white-space:nowrap;margin:0;padding-right:.075em;color:#fff7ed;text-shadow:0 12px 50px #0005;transform-origin:center}
.opening-heading>p{font:clamp(20px,4.5vw,78px)/1 Impact,"Arial Narrow",sans-serif;letter-spacing:.12em;color:#fff7ed;margin:clamp(20px,3vh,40px) 0 0;padding-left:.12em}
.opening-heading__year{position:absolute;bottom:7%;font:clamp(32px,5.5vw,90px)/1 Impact,"Arial Narrow",sans-serif;letter-spacing:.5em;color:#f6ece6;opacity:.36;padding-left:.5em}
.opening-editorial{position:absolute;left:50%;top:0;z-index:3;width:100%;display:flex;flex-direction:column;align-items:center;gap:0;pointer-events:none;opacity:0;color:#101215;transform:translate3d(-50%,55vh,0);--chromatic-offset:0px}
.opening-editorial span{display:block;white-space:nowrap;text-align:center;font:clamp(94px,17.4vw,300px)/.88 Impact,"Arial Narrow","Noto Sans SC",sans-serif;letter-spacing:-.035em;text-shadow:calc(-1 * var(--chromatic-offset)) 0 #ea4b32,var(--chromatic-offset) 0 #19b4d9}
.opening-scroll-cue{position:absolute;bottom:26px;right:clamp(20px,4vw,70px);font:11px/1.3 Georgia,serif;letter-spacing:.2em;color:#efdfc6;z-index:5}
.poster-fold{position:absolute;left:50%;top:13%;z-index:4;width:min(43vw,520px,54svh);aspect-ratio:2480/3508;margin:0;opacity:1;transform:translateX(-50%);transform-style:preserve-3d;pointer-events:none;filter:drop-shadow(0 24px 36px #1118)}
.poster-fold__fallback{display:block;width:100%;height:auto;aspect-ratio:2480/3508;object-fit:contain}
.poster-fold__panel{position:absolute;left:0;top:0;width:100%;height:25%;display:none;transform-origin:center top;transform-style:preserve-3d;backface-visibility:visible}
.poster-fold__panel .poster-fold__panel{top:100%;height:100%}
.poster-fold__art{position:absolute;inset:0;display:block;background-image:url('../assets/memory-ransom/memory-ransom-poster.png');background-repeat:no-repeat;background-size:100% 400%;backface-visibility:hidden;box-shadow:0 10px 18px #17110c77;border-bottom:1px solid #f4dca755}
.poster-fold__art::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#fff5df20,#100a1644);pointer-events:none}
.memory-motion-ready .poster-fold{opacity:0;transform:translate3d(-50%,-17vh,0)}
.memory-motion-ready .poster-fold__fallback{display:none}
.memory-motion-ready .poster-fold__panel{display:block}
.hero .chapter-inner{padding-inline:clamp(22px,5vw,86px)}
.hero .idea-copy{margin:clamp(80px,10vw,150px) auto clamp(50px,7vw,95px);text-align:center}
.concept-scroll{height:190svh;position:relative}
.concept-gallery{position:sticky;top:72px;height:calc(100svh - 72px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:clamp(8px,1.3vw,20px);padding:clamp(8px,1.6vw,22px) 0;overflow:hidden;align-items:stretch}
.concept-card{min-width:0;min-height:0;overflow:hidden;background:#322a23;box-shadow:0 20px 50px #0005;transform-origin:center}
.concept-card img{width:100%;height:100%;object-fit:cover}
.hero .image-note{margin-top:48px}
.world .chapter-inner{max-width:1600px}
.world .world-intro{margin-bottom:clamp(70px,8vw,125px)}
.world .world-band{grid-template-columns:minmax(0,1fr);gap:clamp(28px,3.5vw,52px);align-items:start;min-height:0;max-height:none;padding:clamp(58px,7vw,100px) 0}
.world .world-band-copy{display:flex;align-items:end;justify-content:space-between;gap:30px}
.world .world-band-copy h3{margin:0}
.world .world-band-copy .small-copy{text-align:right;white-space:normal;max-width:35ch}
.world .world-band .image-triptych{gap:clamp(10px,1.4vw,22px)}
.world .world-band .image-triptych figure{min-width:0;transform-origin:center bottom}
.world .world-band .image-triptych img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.world-band-copy{transform-origin:left bottom}
.currency-scroll{height:185svh;position:relative;margin-top:clamp(70px,9vw,130px)}
.currency-showcase{position:sticky;top:72px;height:calc(100svh - 72px);min-height:500px;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:clamp(32px,6vh,76px);padding:clamp(28px,5vw,72px) clamp(24px,5vw,80px);overflow:hidden;isolation:isolate;background:radial-gradient(circle at 50% 48%,#433424 0,#27241e 42%,#191b19 82%);border-block:1px solid #c8a06b33}
.currency-showcase:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#191b1955,transparent 25%,transparent 75%,#191b1955)}
.currency-word{position:relative;z-index:4;width:100%;font:clamp(33px,6.7vw,106px)/1.05 Georgia,serif;letter-spacing:-.065em;white-space:nowrap;color:#f5e7cb;text-shadow:0 8px 25px #000b;text-align:center;margin:0;pointer-events:none}
.currency-word span{color:#cf8f48;padding-inline:.02em}
.currency-medias{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:clamp(12px,1.8vw,28px)}
.currency-card{position:relative;min-width:0;margin:0;transform-origin:center bottom;will-change:transform,opacity}
.currency-card__inner{height:100%;display:flex;flex-direction:column;background:#201c19;box-shadow:0 22px 60px #0009;overflow:hidden;border:1px solid #c8a06b33;transition:border-color .35s ease,transform .35s ease}
@media(hover:hover) and (pointer:fine){.currency-card:hover .currency-card__inner{border-color:var(--gold);transform:translateY(-6px)}}
.currency-card img{width:100%;aspect-ratio:16/9;object-fit:cover}
.currency-card__caption{min-height:96px;padding:16px 18px 18px;border-top:1px solid #c8a06b44}
.currency-card h4{font-size:clamp(14px,1.2vw,18px);font-weight:500;margin:0 0 5px;color:#e9d6b8}
.currency-card p{font-size:clamp(11px,.85vw,13px);line-height:1.5;color:#bcb2a2}
.memory-motion-ready .opening-heading,.memory-motion-ready .opening-editorial,.memory-motion-ready .poster-fold,.memory-motion-ready .concept-card,.memory-motion-ready .world-band-copy,.memory-motion-ready .world-band figure,.memory-motion-ready .currency-word,.memory-motion-ready .currency-card{will-change:transform,opacity}
@media(max-width:950px){
  .world .world-band{gap:30px;padding:55px 0}
  .world-band-copy{gap:20px}
  .world-band-copy .small-copy{text-align:right}
  .currency-showcase{gap:35px}
}
@media(max-width:650px){
  .site-mark{font-size:10px;letter-spacing:.09em;white-space:nowrap}
  .site-mark span{display:none}
  .site-back{font-size:10px;white-space:nowrap}
  .opening-stage,.concept-gallery,.currency-showcase{top:60px;height:calc(100svh - 60px)}
  .opening-stage,.currency-showcase{min-height:0}
  .memory-opening{height:300svh}
  .hero .opening-title{font-size:clamp(64px,18vw,110px);letter-spacing:-.08em}
  .opening-heading>p{letter-spacing:.22em;padding-left:.22em}
  .opening-editorial span{font-size:clamp(65px,20vw,120px)}
  .poster-fold{width:min(78vw,50svh,520px)}
  .opening-scroll-cue{right:20px;bottom:18px;font-size:9px}
  .hero .chapter-inner{padding-inline:20px}
  .concept-scroll{height:200svh}
  .concept-gallery{grid-template-columns:1fr;grid-template-rows:repeat(4,minmax(0,1fr));gap:8px}
  .world-band-copy h3{font-size:22px}
  .world-band-copy .small-copy{font-size:12px;line-height:1.55}
  .world .world-band .image-triptych{grid-template-columns:1fr;overflow:visible}
  .world .world-band .image-triptych figure{aspect-ratio:auto}
  .world .world-band .image-triptych img{aspect-ratio:16/9;object-fit:cover}
  .currency-scroll{height:190svh;margin-inline:-20px}
  .currency-showcase{gap:30px;padding:24px 0 24px 20px}
  .currency-word{font-size:clamp(29px,7.7vw,48px);letter-spacing:-.06em;padding-right:20px}
  .currency-medias{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(220px,72vw);overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;padding:0 20px 20px 0;scrollbar-color:var(--gold) transparent}
  .currency-card{scroll-snap-align:center}
  .currency-card img{aspect-ratio:1.65}
  .currency-card__caption{min-height:86px;padding:11px 13px 13px}
  .currency-card h4{font-size:14px;margin-bottom:4px}
  .currency-card p{font-size:11px;line-height:1.45}
}
@media(prefers-reduced-motion:reduce){
  .memory-opening,.concept-scroll,.currency-scroll{height:auto}
  .opening-stage,.concept-gallery,.currency-showcase{position:relative;top:auto;height:auto;min-height:80svh}
  .opening-stage{display:flex;flex-direction:column;gap:30px;padding:70px 20px;background:#2b1920}
  .opening-heading{position:relative;inset:auto}
  .hero .opening-title{font-size:clamp(55px,12vw,150px)}
  .opening-editorial,.opening-atmosphere--light{display:none}
  .poster-fold,.memory-motion-ready .poster-fold{position:relative;left:auto;top:auto;width:min(78vw,520px);opacity:1;transform:none}
  .poster-fold__fallback,.memory-motion-ready .poster-fold__fallback{display:block}
  .poster-fold__panel,.memory-motion-ready .poster-fold__panel{display:none}
  .opening-scroll-cue{display:none}
  .concept-gallery{min-height:0;overflow:visible}
  .currency-showcase{min-height:680px}
  .currency-card__inner{transform:none!important;transition:none}
}

/* Long chapters keep a quiet chapter marker in view while their content passes underneath. */
.character.chapter,.script.chapter,.production.chapter,.making.chapter,.final.chapter{overflow:visible}
.character .chapter-inner>.eyebrow,.script .chapter-inner>.eyebrow,.final .chapter-inner>.eyebrow{position:sticky;top:72px;z-index:9;display:table;width:max-content;max-width:100%;padding:10px 15px;margin-left:-15px;background:#171817e8;border:1px solid #c8a06b44;backdrop-filter:blur(14px)}
@media(max-width:650px){.character .chapter-inner>.eyebrow,.script .chapter-inner>.eyebrow,.final .chapter-inner>.eyebrow{top:60px;margin-left:0;font-size:10px}}
@media(prefers-reduced-motion:reduce){.character .chapter-inner>.eyebrow,.script .chapter-inner>.eyebrow,.final .chapter-inner>.eyebrow{position:relative;top:auto}}
