/* Local motion study: warm light, layered photographs, moving film, quiet reveals. */
.hero{position:relative}.hero-copy{position:relative;z-index:2}.hero-art{perspective:1200px;--tilt-x:0deg;--tilt-y:0deg;--drift-x:0px;--drift-y:0px}.film-frame{transform:rotateX(var(--tilt-x)) rotateY(var(--tilt-y));transition:transform 1s cubic-bezier(.2,.7,.2,1);transform-origin:50% 65%;will-change:auto}.polaroid{translate:var(--drift-x) var(--drift-y);transition:translate 1.2s cubic-bezier(.2,.7,.2,1)}.sound-card{translate:calc(var(--drift-x) * -.5) calc(var(--drift-y) * -.5);transition:translate 1.3s cubic-bezier(.2,.7,.2,1)}
.memory-light{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1}.memory-light:before{content:"";position:absolute;inset:-50% -40%;background:linear-gradient(115deg,transparent 32%,#ffe9b800 38%,#ffe9b828 43%,#fff1d520 49%,transparent 57%);transform:translateX(-19%);animation:sunlight-drift 23s ease-in-out infinite;mix-blend-mode:screen}.light-dust{position:absolute;width:3px;height:3px;background:#fff1c7;box-shadow:0 0 8px #fff1c766;border-radius:50%;opacity:0;animation:dust-drift 13s ease-in-out infinite;left:var(--x);top:var(--y);animation-delay:var(--delay)}.light-dust:nth-child(3n){width:2px;height:2px}.film-vignette{z-index:2}.film-top,.film-caption,.film-ticks{z-index:3}.chapter-progress{position:absolute;left:24px;right:24px;bottom:5px;display:flex;gap:7px;height:2px;z-index:3}.chapter-progress i{flex:1;background:#fffcf730;overflow:hidden}.chapter-progress i:after{content:"";display:block;height:100%;background:#fffcf7a6;transform:translateX(-100%);animation:chapter-line 24s linear infinite}.chapter-progress i:nth-child(2):after{animation-delay:-16s}.chapter-progress i:nth-child(3):after{animation-delay:-8s}
.circle-play{position:relative;isolation:isolate}.circle-play:after{content:"";position:absolute;inset:-1px;border:1px solid #fff3d466;border-radius:50%;z-index:-1;animation:play-breathe 4.5s ease-out infinite;pointer-events:none}.cover-play{transition:background .35s,scale .45s,box-shadow .45s}.film-cover:hover .cover-play{scale:1.12;box-shadow:0 0 0 12px #fffcf711}.film-cover img{transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}.film-cover:hover img{transform:scale(1.065)}.film-cover:before{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(110deg,transparent 35%,#fff6d818 48%,transparent 62%);transform:translateX(-110%);transition:transform 1.1s;pointer-events:none}.film-cover:hover:before{transform:translateX(110%)}
.intro{padding-bottom:55px}.memory-ribbon{overflow:hidden;position:relative;padding:32px 0 63px;margin:0 auto;background:var(--paper);isolation:isolate}.ribbon-heading{display:flex;align-items:center;justify-content:center;gap:16px;color:var(--muted);font-size:11px;letter-spacing:3px;margin-bottom:29px}.ribbon-heading:before,.ribbon-heading:after{content:"";width:43px;height:1px;background:var(--rule)}.ribbon-window{overflow:hidden;position:relative;padding:17px 0 30px;mask-image:linear-gradient(90deg,transparent,black 10%,black 90%,transparent)}.ribbon-track{display:flex;width:max-content;animation:memory-drift 65s linear infinite}.ribbon-group{display:flex;align-items:center;gap:27px;padding-right:27px}.ribbon-photo{margin:0;width:222px;flex-shrink:0;padding:9px 9px 14px;background:var(--ivory);box-shadow:0 7px 19px #48403312;transform:rotate(-3deg);border:1px solid #e9e3d7}.ribbon-photo:nth-child(2n){transform:rotate(3deg) translateY(10px)}.ribbon-photo:nth-child(3n){transform:rotate(-1deg) translateY(-8px)}.ribbon-photo img{aspect-ratio:1.55;object-fit:cover}.ribbon-photo figcaption{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding:0 3px;font:13px/1.5 var(--serif);color:var(--ink);gap:10px}.ribbon-photo small{font:italic 11px Georgia,serif;color:var(--muted)}.ribbon-window:hover .ribbon-track{animation-play-state:paused}.ribbon-bottom{text-align:center;display:flex;align-items:center;justify-content:center;gap:14px;margin-top:5px}.ribbon-bottom>span{font-size:11px;color:var(--muted);letter-spacing:1px}.ribbon-pause{background:transparent;display:flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--rule);border-radius:30px;min-height:32px;padding:4px 12px;font-size:11px;color:var(--sage)}.ribbon-pause:hover{background:#edf0e7}
.entry{transition:background .5s}.entry:hover{background:#f0ede4}.entry-art{transform-origin:center;transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}.entry:hover .entry-art{transform:rotate(35deg) scale(1.04)}.entry .text-link span,.button>span{transition:transform .3s}.entry:hover .text-link span,.button:hover>span{transform:translate(3px,-3px)}.timeline{position:relative}.timeline i{animation:timeline-light 7s ease-in-out infinite;position:relative;overflow:hidden}.timeline i:nth-child(2){animation-delay:1.1s}.timeline i:nth-child(3){animation-delay:2.2s}.timeline i:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent,#fffff044,transparent);transform:translateX(-110%);animation:timeline-shimmer 7s ease-in-out infinite}.timeline i:nth-child(2):after{animation-delay:1.1s}.timeline i:nth-child(3):after{animation-delay:2.2s}.steps{position:relative}.steps:before{content:"";position:absolute;top:42px;bottom:30px;left:14px;width:1px;background:linear-gradient(#bdc9b0,#bdc9b033)}.step-no{background:#edf0e7;position:relative;z-index:1;padding-bottom:5px;align-self:flex-start}.material-tags span{transition:transform .4s,background .4s}.material-tags span:hover{transform:translateY(-3px);background:var(--ivory)}
.voice-picture{animation:album-breathe 15s ease-in-out infinite;isolation:isolate}.voice-picture:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 25%,#fff0be18 47%,transparent 72%);z-index:1;pointer-events:none;animation:album-light 16s ease-in-out infinite}.voice-picture img{transform:scale(1.001)}.closing-orbit{animation:orbit-breathe 22s ease-in-out infinite}.closing-orbit:before{content:"";position:absolute;top:42%;left:8px;width:9px;height:9px;border-radius:50%;background:#b2bea0;box-shadow:0 0 0 9px #b2bea014}.closing-flower{animation:flower-turn 45s linear infinite}.hero h1 em:after{transform-origin:left;animation:ink-line 1.8s cubic-bezier(.2,.7,.2,1) both}.reveal-ready .reveal-item{opacity:0;transform:translateY(24px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform 1.1s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}.reveal-ready .reveal-item.is-revealed{opacity:1;transform:translateY(0)}.reveal-ready .reveal-item.voice-picture{transform:rotate(-2deg) translateY(24px);animation-play-state:paused}.reveal-ready .reveal-item.voice-picture.is-revealed{transform:rotate(-2deg);animation-play-state:running}.film-dialog[open]{animation:dialog-arrive .35s cubic-bezier(.2,.7,.2,1)}
.paused [data-ambient],.paused [data-ambient] *,.paused [data-ambient]:before,.paused [data-ambient]:after,.paused [data-ambient] *:before,.paused [data-ambient] *:after,.motion-out,.motion-out *,.motion-out:before,.motion-out:after,.motion-out *:before,.motion-out *:after,.page-hidden [data-ambient],.page-hidden [data-ambient] *,.page-hidden [data-ambient]:before,.page-hidden [data-ambient] *:before,.page-hidden [data-ambient] *:after{animation-play-state:paused!important}.paused .film-frame{transform:none}.paused .polaroid,.paused .sound-card{translate:0 0}
@keyframes sunlight-drift{0%,100%{transform:translateX(-19%);opacity:.2}50%{transform:translateX(17%);opacity:.8}}@keyframes dust-drift{0%,100%{transform:translate3d(0,15px,0);opacity:0}25%{opacity:.5}70%{opacity:.25}90%{transform:translate3d(12px,-42px,0);opacity:0}}@keyframes chapter-line{0%{transform:translateX(-100%)}33%,100%{transform:translateX(0)}}@keyframes play-breathe{0%{transform:scale(1);opacity:.4}80%,100%{transform:scale(1.5);opacity:0}}@keyframes memory-drift{to{transform:translateX(-50%)}}@keyframes timeline-light{0%,100%{opacity:.7}30%,55%{opacity:1}}@keyframes timeline-shimmer{0%,20%{transform:translateX(-110%)}60%,100%{transform:translateX(110%)}}@keyframes album-breathe{0%,100%{rotate:0deg;translate:0 0}50%{rotate:.6deg;translate:0 -5px}}@keyframes album-light{0%,100%{opacity:.1;transform:translateX(-10%)}50%{opacity:.65;transform:translateX(10%)}}@keyframes orbit-breathe{0%,100%{rotate:0deg;scale:1}50%{rotate:12deg;scale:1.02}}@keyframes flower-turn{to{transform:rotate(360deg)}}@keyframes ink-line{from{scale:0 1;opacity:0}to{scale:1 1;opacity:1}}@keyframes dialog-arrive{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
@media(max-width:800px){.ribbon-photo{width:190px}.ribbon-group{gap:20px;padding-right:20px}.memory-ribbon{padding-top:20px;padding-bottom:48px}.hero-art{--tilt-x:0deg!important;--tilt-y:0deg!important;--drift-x:0px!important;--drift-y:0px!important}.voice-picture{animation:none}.intro{padding-bottom:37px}}
@media(max-width:520px){.ribbon-photo{width:160px;padding:7px 7px 12px}.ribbon-photo figcaption{font-size:12px}.ribbon-photo small{font-size:10px}.ribbon-group{gap:17px;padding-right:17px}.ribbon-track{animation-duration:80s}.ribbon-heading{font-size:9px;letter-spacing:2px;margin-bottom:15px}.ribbon-bottom{flex-direction:column;gap:10px}.ribbon-bottom>span{font-size:10px}.memory-ribbon{padding-bottom:39px}.memory-light:before{animation:none;opacity:.35}.light-dust:nth-child(n+5){display:none}.circle-play:after{animation:none}.closing-orbit,.closing-flower,.voice-picture:before{animation:none}.reveal-ready .reveal-item{transform:translateY(15px)}.chapter-progress{left:15px;right:15px}.steps:before{left:12px}.film-dialog[open]{animation-duration:.2s}}
@media(prefers-reduced-motion:reduce){.reveal-ready .reveal-item{opacity:1!important;transform:none!important}.reveal-ready .reveal-item.voice-picture{transform:rotate(-2deg)!important}.film-frame{transform:none!important}.polaroid,.sound-card{translate:0 0!important}.light-dust{display:none}.ribbon-track{transform:translateX(0)!important}.ribbon-pause{display:none}}
