/* A quiet short film: anticipation, a remembered day, a changed composition, a held last shot. */
.ending-reflection{max-width:760px;margin:38px auto 42px;text-align:center}
.ending-reflection .eyebrow{font-size:11px;letter-spacing:.2em;color:var(--muted)}
.ending-reflection h2{font-size:clamp(25px,3.1vw,39px);line-height:1.65;font-weight:400;color:#eed9d8;letter-spacing:.05em;margin:16px 0 24px;text-wrap:balance}
.ending-reflection #reflection-words{white-space:pre-line;font-size:16px;line-height:2.1;color:#c9c1d1;margin:0}
.highlight-reel{max-width:960px;margin:0 auto 48px}
.reel-heading{margin-bottom:12px}.reel-heading h2{font-size:15px;color:#c2b4c8}.reel-heading>span{font-size:13px}
.reel-frame{background:#111729;border:1px solid #8b6d8066;border-radius:14px;min-height:0;isolation:isolate}
.reel-art{aspect-ratio:16/9;overflow:hidden;position:relative}
.reel-art svg{width:100%;height:100%;display:block;filter:none;transform:none!important;animation:none!important}
.reel-art:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(transparent 37%,#11172944 62%,#111729ed)}
.reel-caption{position:absolute;inset:auto 0 0;padding:36px 32px 30px;background:transparent;text-align:center;pointer-events:none}
.reel-caption time{font-size:12px;letter-spacing:.12em;color:#d8b8be}
.reel-caption h3{font-size:13px;line-height:1.6;letter-spacing:.08em;color:#c0b1c3;margin:7px 0 12px}
.reel-caption #reel-text{font:400 clamp(18px,2.4vw,27px)/1.9 "Yu Mincho","Hiragino Mincho ProN",serif;color:#fff2e8;letter-spacing:.065em;text-shadow:0 2px 16px #0d122a;margin:0;text-wrap:balance}
#reel-text span{display:block;animation:film-line 1.2s calc(var(--line)*.65s) both}
.film-camera{transform-origin:center;animation:film-camera var(--shot-duration,8s) ease-in-out both}
.film-person{animation:film-breathe 5.2s ease-in-out infinite;transform-origin:center bottom}
.film-steam{animation:film-steam 4s ease-in-out infinite}.film-clouds{animation:film-cloud 18s ease-in-out infinite alternate}
.film-dust{animation:film-dust 12s ease-in-out infinite alternate}.film-curtain{transform-origin:90px 20px;animation:film-curtain 9s ease-in-out infinite alternate}
.film-rain{animation:film-rain 2.6s linear infinite}.film-message{animation:film-light 5s ease-in-out infinite alternate}
.film-keepsake{transform-origin:400px 240px;animation:film-keepsake var(--shot-duration,10s) ease-out both}
.film-lamplight{animation:film-light 7s ease-in-out infinite alternate}
.reel-frame:not(.playing) *, .reel-frame:not(.playing) *:after{animation-play-state:paused!important}
.reel-frame[data-shot="still"] .film-steam{display:none}.reel-frame[data-shot="return"] .film-camera{animation-name:film-return}
.reel-progress{margin-top:12px;gap:7px}.reel-progress span{height:2px}
.reel-controls{gap:14px;flex-wrap:wrap}.reel-controls .compact{font-size:14px;min-width:126px}.reel-controls .quiet{font-size:13px;min-height:44px}.reel-controls #reel-music{font-size:13px;color:#d2b7c4;margin-left:auto;min-height:44px}.reel-controls #reel-skip{margin-left:0}
.reel-record{margin-top:12px;border-top:1px solid #ffffff0d;padding-top:10px;color:#aba6bc;font-size:13px;line-height:1.9}
.reel-record summary{cursor:pointer;width:fit-content}.reel-record p{font-size:14px;line-height:1.9;margin:8px 0;overflow-wrap:anywhere}.reel-record strong{font-weight:400;color:#dcc5cc}.reel-note{font-size:12px;text-align:left;line-height:1.8;margin:10px 0;color:#9693ad}
.ending-letter{max-width:680px;margin:68px auto 76px;text-align:center;animation:film-letter 2s ease-out both}.ending-letter h2{font:400 27px/1.7 "Yu Mincho",serif;color:#edd4d5;letter-spacing:.08em;margin:0 0 24px}.ending-letter p{font:400 17px/2.2 "Yu Mincho",serif;color:#d6cbd5;letter-spacing:.04em}.ending-letter span{display:block}.ending-letter:after{content:"";display:block;width:1px;height:65px;background:linear-gradient(#d4a3b5,transparent);margin:38px auto 0}
@keyframes film-camera{from{transform:scale(1) translateY(0)}to{transform:scale(1.065) translateY(-4px)}}
@keyframes film-return{from{transform:scale(1.04)}to{transform:scale(1)}}
@keyframes film-line{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes film-breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-1.6px)}}
@keyframes film-steam{0%{opacity:0;transform:translateY(2px)}45%{opacity:.45}100%{opacity:0;transform:translateY(-10px)}}
@keyframes film-cloud{to{transform:translateX(20px)}}@keyframes film-dust{to{transform:translate(8px,-9px)}}
@keyframes film-curtain{to{transform:skewX(-1.5deg)}}@keyframes film-rain{to{transform:translate(-40px,130px)}}
@keyframes film-light{to{opacity:.75}}@keyframes film-keepsake{from{transform:translateY(4px) rotate(-.7deg)}to{transform:translateY(0) rotate(0)}}
@keyframes film-letter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){.ending-reflection{margin:30px auto 32px}.ending-reflection h2{font-size:25px}.ending-reflection #reflection-words{font-size:15px}.reel-art{aspect-ratio:4/4.2}.reel-art svg{position:absolute;inset:0;width:100%;height:70%;object-fit:cover}.reel-art:after{background:linear-gradient(transparent 18%,#11172922 35%,#111729 68%)}.reel-caption{padding:20px 14px 26px}.reel-caption #reel-text{font-size:19px;letter-spacing:.025em}.reel-caption h3{margin-bottom:12px}.reel-controls{gap:6px 14px}.reel-controls .quiet{font-size:13px}.reel-controls #reel-music{margin-left:0}.reel-controls #reel-skip{margin-left:auto}.ending-letter{margin:50px auto}.ending-letter h2{font-size:24px}.ending-letter p{font-size:16px}.reel-note{font-size:12px}}
@media(prefers-reduced-motion:reduce){.highlight-reel *,.ending-letter{animation:none!important;transition:none!important}.reel-art svg{transform:none!important}}

.reel-frame:not(.playing) #reel-text span{opacity:1;transform:none;animation:none}

.film-arriving,.film-departing{position:absolute;inset:0}.film-arriving{animation:film-dissolve-in 1.15s ease-in-out both}.film-departing{animation:film-dissolve-out 1.15s ease-in-out both}.film-departing *{animation-play-state:paused!important}.reel-frame:not(.playing) .film-departing{display:none}.reel-frame:not(.playing) .film-arriving{animation:none;opacity:1}
@keyframes film-dissolve-in{from{opacity:0}to{opacity:1}}@keyframes film-dissolve-out{from{opacity:1}to{opacity:0}}
@media(prefers-reduced-motion:reduce){.film-arriving{animation:none!important;opacity:1}.film-departing{display:none}}
