/* One final presentation layer, loaded after the existing design. */
[hidden]{display:none!important}
.motion-paused *, .motion-paused *::before,.motion-paused *::after{animation:none!important}
.cinematic-reveal,.memory-pack-card{opacity:1;transform:none}
.cinematic-reveal[data-reveal=true]{animation:chapter-soft-arrive .6s ease both}
@keyframes chapter-soft-arrive{from{opacity:.6;translate:0 10px}to{opacity:1;translate:0 0}}

/* Opening: the continue button stays in a fixed, separate control area. */
.opening-active{overflow:hidden}
html:has(.memory-opening:not(.done)){overflow:hidden}
.memory-opening,.memory-opening[data-opening-stage]{display:block!important;inset:0;height:100dvh;padding:0!important;overflow:clip!important;gap:0;opacity:1}
.memory-opening.done{opacity:0!important;transition:opacity .5s;pointer-events:none!important}
.memory-opening .opening-start-gate{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;width:min(700px,calc(100vw - 40px));max-height:calc(100dvh - 130px);overflow:auto;padding:clamp(22px,5vh,54px) clamp(22px,4vw,52px)}
.memory-opening .opening-start-gate h2{font-size:clamp(30px,5vw,57px);line-height:1.12}
.memory-opening .opening-start-text{font:clamp(15px,1.4vw,18px)/1.75 var(--body);margin:16px auto 24px;color:#755d6c}
.memory-opening .opening-start{background:linear-gradient(135deg,#bd7195,#915b7c);color:#fff;font:700 15px var(--body);min-height:50px;padding:14px 28px;border-radius:16px}
.memory-opening .opening-navigation{position:absolute;z-index:20;bottom:max(16px,env(safe-area-inset-bottom));left:50%;translate:-50% 0;display:flex;justify-content:center;width:calc(100% - 24px);pointer-events:none}
.memory-opening .opening-continue{pointer-events:auto;min-height:48px;margin:0;padding:12px 24px;border:1px solid #ceabc0;background:#fffaf7f5;color:#6b455e;box-shadow:0 8px 26px #17111633;font:700 14px var(--body);border-radius:16px}
.memory-opening .opening-past-cinema{inset:0;padding:22px 32px 88px;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);grid-template-rows:minmax(0,1fr);gap:42px;align-items:center;opacity:1;visibility:visible}
.memory-opening .opening-past-visual{min-width:0;position:relative;inset:auto;height:100%;min-height:0;padding:0!important;display:grid;place-items:center}
.memory-opening .opening-past-visual img{animation:none!important;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 24px 80px #0007;border:1px solid #fff3;border-radius:8px;background:transparent;transform:none}
.memory-opening .opening-past-copy,.memory-opening .opening-past-cinema[data-media-shape] .opening-past-copy{position:relative;top:auto;right:auto;bottom:auto;transform:none;width:100%;margin:0;padding:26px;text-align:left;background:#322330a6;border-radius:22px;align-self:center}
.memory-opening .opening-past-kicker{font:700 10px/1.7 var(--body);color:#d9b8cb;letter-spacing:.18em}
.memory-opening .opening-past-title,.memory-opening .opening-past-cinema[data-media-shape] .opening-past-title{font:clamp(31px,4vw,58px)/1.1 var(--display);color:#fff6ee;margin:16px 0 24px}
.memory-opening .opening-past-memory{font:11px/1.6 var(--body);color:#cbaebf;text-transform:none;margin:0 0 14px}
.memory-opening .opening-past-line,.memory-opening .opening-past-cinema[data-media-shape] .opening-past-line{font:clamp(18px,2vw,25px)/1.65 var(--note);color:#f1dbe7;margin:0}
.memory-opening .opening-past-count{color:#dcc2d0}.memory-opening .opening-past-progress{width:100%}
.memory-opening .opening-past-cinema[data-media-shape=landscape]{grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr)}
.memory-opening .opening-past-cinema.is-closing .opening-past-visual{opacity:.22;transition:opacity 1.6s}
.memory-opening .opening-past-closing{position:absolute;left:50%;top:50%;translate:-50% -50%;width:min(780px,90vw);margin:0;text-align:center}
.memory-opening .opening-past-closing p{font:clamp(27px,4vw,52px)/1.4 var(--display);color:#fff5ee}
.memory-opening .opening-letter{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)!important;animation:none!important;display:flex;flex-direction:column;margin:0;width:min(740px,calc(100vw - 30px));height:auto;max-height:calc(100dvh - 30px)!important;padding:28px 34px 20px;overflow:hidden;opacity:1;visibility:visible}
.memory-opening .opening-letter-scroll{min-height:0;overflow:auto;flex:1}
.memory-opening .opening-letter h1{font:clamp(29px,4vw,48px)/1.15 var(--display);color:#5d4153;margin:12px auto 18px}
.memory-opening .opening-copy{font:16px/1.75 var(--body);color:#725765;margin:0}
.memory-opening .opening-note{font:18px/1.65 var(--note);color:#8d6279;margin:18px auto}
.memory-opening .opening-letter-actions{flex-shrink:0;padding:14px 0 0;background:#fff9f6;box-shadow:none}
.memory-opening .opening-enter{margin:0;background:linear-gradient(130deg,#bf7498,#925f80);color:#fff;font:700 15px var(--body);padding:14px 26px;border-radius:16px;min-height:50px}
.memory-opening .opening-ready{font:11px/1.5 var(--body);margin:10px 0 0;color:#96768b}

/* Finale film. Warm dark screen, full original photos, readable captions. */
.film-ending{--film-ink:#f8eee5;--film-muted:#dcc1cb;background:radial-gradient(ellipse at 40% 40%,#5e3c50,#281d2a 55%,#17121b)!important;color:var(--film-ink);padding:34px 42px 90px!important;overflow-y:auto!important;scrollbar-width:thin}
.film-ending:before,.film-ending:after{display:none!important}
.film-ending>.dialog-close{position:fixed!important;top:16px;right:18px;z-index:30;background:#fff1!important;border-color:#fff4;color:#fff8ef!important;min-height:44px;width:44px;height:44px;box-shadow:none!important}
.film-ending>*[hidden]{display:none!important}
.film-light{position:absolute;inset:0;pointer-events:none;background:conic-gradient(from 220deg at 50% 110%,#fff0 0 25%,#deb59e12 29%,#fff0 34% 63%,#c8a2cd0d 68%,#fff0 74%);opacity:.7;animation:film-light-breathe 12s ease-in-out infinite alternate}
@keyframes film-light-breathe{to{opacity:.3;transform:scale(1.1)}}
.film-grain{position:fixed;inset:0;pointer-events:none;opacity:.1;background-image:radial-gradient(#fff 0.5px,transparent 0.7px);background-size:5px 7px;mix-blend-mode:soft-light}
.film-ending .closure-memory-layer{opacity:.23!important;transition:opacity 2s!important;z-index:1;pointer-events:none}
.film-ending .closure-memory{opacity:.3!important;filter:none;animation:none!important;box-shadow:0 18px 45px #0005}
.film-ending .closure-reel{grid-template-rows:minmax(0,1fr);position:relative;z-index:5;width:min(1260px,100%);min-height:0;height:calc(100dvh - 124px);display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr);gap:clamp(24px,4vw,64px);align-items:center}
.film-ending .closure-reel-frame{padding:0;min-height:0;height:100%;max-height:none;background:transparent;border:0;border-radius:0;box-shadow:none;overflow:hidden;display:grid;place-items:center}
.film-ending .closure-reel-frame:before{display:none}
.film-ending .closure-reel-frame img,.film-ending .closure-reel-frame video{display:block;animation:none!important;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;background:transparent;border:1px solid #fff3;border-radius:5px;box-shadow:0 24px 70px #0005}
.film-ending .closure-reel-copy{padding:20px 0;max-width:470px;min-width:0;text-align:left;opacity:1}
.film-ending .closure-reel-title{font:clamp(31px,3.9vw,60px)/1.13 var(--display)!important;color:#fff1e5!important;margin:14px 0 24px!important}
.film-ending .closure-reel-kicker{font:700 10px/1.7 var(--body)!important;color:#d5b4c4!important;letter-spacing:.2em}
.film-ending .closure-reel-meta{font:12px/1.6 var(--body)!important;color:#cbaebc!important;text-transform:none;letter-spacing:.03em}
.film-ending .closure-reel-line{font:clamp(20px,2.2vw,29px)/1.6 var(--note)!important;color:#f3dce6!important}
.film-ending .closure-reel-index{background:#211725bf;color:#f6e0e9;bottom:12px;right:12px;border:1px solid #fff3;z-index:8}
.film-ending .closure-reel-progress{width:100%;background:#fff2}.film-ending .closure-reel-progress i{background:linear-gradient(90deg,#be83a5,#f1d3af);transition:width .12s linear}
.film-ending .closure-video-mark{background:#322537bf;color:#fff}
.film-controls{position:fixed;z-index:25;bottom:max(16px,env(safe-area-inset-bottom));left:50%;translate:-50% 0;width:min(850px,calc(100% - 32px));display:flex;align-items:center;justify-content:center;gap:12px;padding:10px 14px;border:1px solid #fff2;border-radius:18px;background:#231a2be8;backdrop-filter:blur(16px)}
.film-controls button{min-height:42px;padding:10px 15px;background:#fff1;color:#f9e9e3;border-color:#fff3;font:13px var(--body)}
.film-ending .film-time{margin-right:auto;color:#d5b8c9;font:12px/1.4 var(--body);font-variant-numeric:tabular-nums}
.film-ending .closure-before h2{color:#fff1e5}.film-ending .closure-copy{color:#e1c8d2}
.film-ending .closure-embrace{height:calc(100dvh - 124px);min-height:0;max-width:100%;width:100%}
.film-ending .closure-embrace-art{max-height:60dvh;width:min(620px,80vw);filter:drop-shadow(0 20px 45px #0003)!important}
.film-ending .closure-embrace-line{background:#322333aa;color:#f3dce6!important;border-radius:16px;font-size:24px!important}
.film-ending.is-credits,.film-ending.is-finished{background:radial-gradient(ellipse at 50% 45%,#fffaf2,#f0e0e7 62%,#c7b3ca)!important;transition:background 2s}
.film-ending.is-credits .film-light,.film-ending.is-finished .film-light{background:radial-gradient(ellipse at 50% 30%,#fff5da8c,transparent 68%);opacity:1}
.film-ending.is-credits .closure-memory-layer,.film-ending.is-finished .closure-memory-layer{opacity:.44!important}
.film-ending.is-credits .closure-memory,.film-ending.is-finished .closure-memory{opacity:.3!important;transform:none!important}
.film-credits{position:relative;z-index:6;width:min(800px,94vw);margin:auto;text-align:center;padding:30px 36px;background:radial-gradient(ellipse,#fffaf2df,#fff8f080 70%,transparent);border-radius:30px}
.film-ending .film-credits-kicker{color:#a1748b;font:700 10px/1.8 var(--body);letter-spacing:.18em}
.film-credits h2{font:clamp(44px,7vw,88px)/1.1 var(--display);color:#5d4054;margin:20px 0 28px}
.film-ending .film-thanks p{font:clamp(17px,1.6vw,21px)/1.85 var(--body);color:#76596c;margin:12px auto;max-width:620px;text-wrap:pretty}
.film-ending .film-signature{font:18px/1.6 var(--note);color:#a0788d;margin:28px 0 18px}
.film-credit-line{display:block;width:calc(40% + var(--credit-progress,0)*35%);height:1px;background:linear-gradient(90deg,transparent,#b2829b,transparent);margin:auto;transition:width .2s}
.film-ending .closure-finished{width:min(800px,94vw);min-height:0;padding:34px;background:radial-gradient(ellipse,#fffaf2ee,#fffaf28c 70%,transparent);border:0}
.film-ending .closure-finished h2{font:clamp(40px,6vw,76px)/1.2 var(--display);color:#5b4052;text-shadow:none;max-width:720px;margin:20px 0}
.film-ending .closure-finished-copy{font:24px/1.5 var(--note)!important;color:#886279!important;margin:10px 0!important;text-shadow:none}
.film-ending .closure-final-line{font:13px/1.7 var(--body)!important;color:#96758b!important;letter-spacing:.08em;margin:18px 0 30px!important}
.film-end-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:18px 0 0}
.film-end-actions .btn{min-height:48px}
.finale-watch-ending{display:block;margin:24px auto 12px;min-height:52px}

/* Chapter reading rhythm: consistent secondary hierarchy and generous gutters. */
#sceneRoot main{--reading-width:1120px;--reading-gap:clamp(28px,4vw,56px)}
#sceneRoot :is(.emotional-chapter-bridge,.page-whisper,.author-story-chapters,.author-unsaid,.author-notes,.memory-pack-shelf,.story-credits){max-width:var(--reading-width);width:calc(100% - 32px);margin:var(--reading-gap) auto;padding:clamp(20px,3vw,34px);box-sizing:border-box}
#sceneRoot .emotional-chapter-bridge{background:#fffaf2b8;border-radius:20px;box-shadow:none;border-color:#d8bdc744;animation:none;opacity:1}
#sceneRoot .emotional-chapter-bridge::before,#sceneRoot .emotional-chapter-bridge::after{display:none}
#sceneRoot .emotional-chapter-bridge h2{font:clamp(24px,2.5vw,34px)/1.3 var(--display);margin:8px 0 12px}
#sceneRoot :is(.emotional-chapter-bridge>p:not(.kicker),.author-story-intro,.author-unsaid-intro,.author-notes-intro){font:16px/1.85 var(--body);color:#806575;max-width:66ch}
#sceneRoot .page-whisper{width:min(760px,calc(100% - 40px));padding:16px 24px 16px 50px;border:0;border-left:2px solid #c895ac;border-radius:0;background:#fffaf37a;box-shadow:none;margin-block:28px}
#sceneRoot :is(.author-story-chapters,.author-unsaid,.author-notes){border-radius:22px;box-shadow:none;background:#fffaf4a3;border:1px solid #d6bcca66}
#sceneRoot :is(.author-story-heading,.author-unsaid-heading){text-align:left;margin:0 0 26px;max-width:none}
#sceneRoot :is(.author-story-heading h2,.author-unsaid-heading h2,.author-notes h2,.memory-pack-heading h2,.story-credits h2){font:clamp(25px,3vw,38px)/1.3 var(--display);max-width:28ch;letter-spacing:-.02em;margin:12px 0 18px;color:#624859}
#sceneRoot :is(.author-story-card p,.author-unsaid-copy p){font:15px/1.9 var(--body);color:#765e6e}
#sceneRoot .author-story-grid{gap:20px}#sceneRoot .author-story-card{padding:24px;border-radius:16px;min-height:0;box-shadow:none}
#sceneRoot .author-story-card h3{font-size:27px;line-height:1.3}
#sceneRoot .author-unsaid-card{border-radius:16px;margin-left:0;box-shadow:none;padding:22px 24px}
#sceneRoot .author-unsaid-copy h3{font-size:24px;line-height:1.35}
#sceneRoot .author-story-whisper,#sceneRoot .author-unsaid-after{font:17px/1.65 var(--note);color:#a2778d}
#sceneRoot .emotional-cover{float:right;width:clamp(170px,24vw,270px);aspect-ratio:4/3;margin:0 0 18px 28px;transform:none;box-shadow:none}
#sceneRoot .emotional-cover img{object-fit:contain;background:#efe5e7}
#sceneRoot .chapter-reading-footer{position:relative;width:min(1120px,calc(100% - 32px));margin:52px auto 24px;padding:24px 0 12px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid #c5a1b644;z-index:5}
.chapter-reading-footer>span{font:11px var(--body);letter-spacing:.1em;color:#99798c}
.chapter-reading-footer a{font:14px var(--body);color:#82516f;border:1px solid #c7a5b65e;background:#fff9f3e8;border-radius:14px;padding:14px 20px;min-height:46px;text-decoration:none;position:static!important;display:inline-flex!important;margin:0!important;width:auto!important;opacity:1!important}
.chapter-reading-footer .chapter-reading-next{background:#97617e;color:#fff9f3}
#sceneRoot main{padding-bottom:130px}
@media(max-width:760px){
 .memory-opening .opening-past-cinema,.memory-opening .opening-past-cinema[data-media-shape=landscape]{padding:16px 14px 80px;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:14px}
 .memory-opening .opening-past-copy,.memory-opening .opening-past-cinema[data-media-shape] .opening-past-copy{padding:14px 16px;text-align:center;max-height:32dvh;overflow:auto}
 .memory-opening .opening-past-title,.memory-opening .opening-past-cinema[data-media-shape] .opening-past-title{font-size:27px;margin:8px 0 12px}
 .memory-opening .opening-past-line,.memory-opening .opening-past-cinema[data-media-shape] .opening-past-line{font-size:18px;line-height:1.5}
 .memory-opening .opening-past-memory{font-size:10px;margin-bottom:6px}
 .memory-opening .opening-letter{padding:24px 20px 18px}.memory-opening .opening-letter h1{font-size:30px}.memory-opening .opening-copy{font-size:15px}
 .film-ending{padding:60px 16px 90px!important}
 .film-ending .closure-reel{height:calc(100dvh - 170px);grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:16px}
 .film-ending .closure-reel-frame{min-height:0;max-height:none;height:100%}
 .film-ending .closure-reel-copy{max-width:none;text-align:center;padding:0;max-height:30dvh;overflow:auto}
 .film-ending .closure-reel-title{font-size:28px!important;margin:8px 0 12px!important}
 .film-ending .closure-reel-line{font-size:20px!important;line-height:1.5!important}
 .film-ending .closure-reel-progress{margin:14px 0 0}.film-ending .closure-reel-meta{margin-bottom:8px!important}
 .film-controls{gap:6px;padding:8px}.film-controls button{font-size:11px;padding:9px 10px}.film-ending .film-time{font-size:10px;max-width:100px}
 .film-credits{width:100%;padding:22px 16px}.film-credits h2{font-size:46px;margin:18px 0}.film-ending .film-thanks p{font-size:15px;line-height:1.7}
 .film-ending .closure-finished{padding:22px 15px}.film-ending .closure-finished h2{font-size:40px}.film-end-actions .btn{width:100%}
 #sceneRoot .emotional-cover{float:none;width:100%;aspect-ratio:16/10;margin:0 0 20px}
 #sceneRoot :is(.emotional-chapter-bridge,.author-story-chapters,.author-unsaid,.author-notes,.memory-pack-shelf,.story-credits){width:calc(100% - 24px);padding:22px 18px}
 #sceneRoot .author-story-grid{grid-template-columns:1fr}#sceneRoot .author-story-card{padding:22px 18px}
 #sceneRoot .chapter-reading-footer{gap:12px;margin-top:34px;padding-bottom:20px}#sceneRoot .chapter-reading-footer>span{order:-1;flex-basis:100%;text-align:center}
 .chapter-reading-footer a{padding:12px 14px;font-size:12px;flex:1;justify-content:center}
}
@media(max-height:650px) and (min-width:761px){.memory-opening .opening-start-gate{padding:18px 30px}.memory-opening .opening-start-heart{width:50px;height:50px;font-size:30px;margin-bottom:10px}.memory-opening .opening-past-title{font-size:36px}.film-ending .closure-reel-title{font-size:36px!important}.film-credits{padding:14px 28px}.film-credits h2{font-size:46px;margin:14px 0}.film-ending .film-thanks p{font-size:16px;margin:8px 0}}
@media(prefers-reduced-motion:reduce){.film-light,.cinematic-reveal[data-reveal=true]{animation:none!important}}
.film-ending.is-credits .film-thanks p{animation:film-thank-arrive 1.6s ease calc(var(--credit-order)*1.8s) both}
.film-ending.is-finished .closure-finished{animation:film-final-arrive 2.2s ease both}
@keyframes film-thank-arrive{from{opacity:.25;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes film-final-arrive{from{opacity:.5;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.film-ending.is-credits .film-thanks p,.film-ending.is-finished .closure-finished{animation:none!important}}
/* Keep image sizing independent from its intrinsic aspect ratio in grid tracks. */
.film-ending .closure-reel-frame{min-width:0;height:calc(100dvh - 124px);max-height:calc(100dvh - 124px)}
.film-ending .closure-reel-frame img,.film-ending .closure-reel-frame video{min-width:0;min-height:0;height:100%;max-height:calc(100dvh - 124px);width:100%}
@media(max-width:760px){.film-ending .closure-reel-frame{height:100%;max-height:calc(100dvh - 370px)}.film-ending .closure-reel-frame img,.film-ending .closure-reel-frame video{height:100%;max-height:calc(100dvh - 370px)}}
/* Compact global controls. On phones all ten actions remain visible. */
.music-dock summary::before{display:none!important}
.music-dock:not([open]){width:auto!important;min-width:0;max-width:calc(100vw - 32px)!important}
.music-dock:not([open]) .music-summary-eq{display:none}
.music-dock:not([open])>summary{grid-template-columns:24px 1fr;padding:10px 14px;font-size:12px!important}
.music-dock:not([open]) .music-summary-mark{width:24px;height:24px}
.music-summary-mark .odyssey-icon{width:16px;height:16px}
.settings-audio #cueToggle{margin:12px 8px;padding:11px 16px;border:1px solid #d2b3c3;border-radius:12px;background:#fffaf4;color:#80576d;font:13px var(--body)}
.film-ending{border-radius:0!important}
.film-ending.is-credits>.dialog-close,.film-ending.is-finished>.dialog-close{background:#fff8!important;color:#715266!important;border-color:#b88da777}
@media(max-width:760px){
 .memory-dock{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));width:calc(100vw - 16px);max-width:none;height:auto;padding:6px;gap:2px;bottom:max(8px,env(safe-area-inset-bottom));overflow:visible!important}
 .memory-dock-button{min-width:0;width:100%;height:40px;padding:3px;font-size:11px}.memory-dock-button>span{font-size:19px}.memory-dock-button small{font-size:9px}
 .experience-tools,.music-dock:not([open]){display:none!important}
 .music-dock[open]{bottom:112px!important;max-height:calc(100dvh - 134px)}
}
