:root{--paper-color: #f5f3ed;--paper-texture: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='.075'/%3E%3C/svg%3E");font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;color:#080808;background-color:var(--paper-color);background-image:var(--paper-texture);font-synthesis:none;text-rendering:geometricPrecision}*{box-sizing:border-box}html{min-width:320px;background-color:var(--paper-color);background-image:var(--paper-texture);scrollbar-gutter:stable}body{margin:0;min-width:320px;min-height:100vh;overflow-x:clip;background-color:var(--paper-color);background-image:var(--paper-texture)}body.viewer-open,body.intro-locked{overflow:hidden}button{color:inherit;font:inherit}button:focus-visible{outline:2px solid #111;outline-offset:5px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.photo-media{display:block}.photo-media--fallback{position:relative;overflow:hidden;aspect-ratio:var(--media-ratio);border:1px solid rgba(8,8,8,.12);background:#e8e5dd}.photo-media--fallback:after{content:"";position:absolute;top:50%;left:-12%;width:124%;height:1px;background:#0808082e;transform:rotate(-24deg)}.loading-screen{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background-color:var(--paper-color);background-image:var(--paper-texture);opacity:1;transition:opacity .44s cubic-bezier(.22,1,.36,1)}.loading-screen--exit{opacity:0;pointer-events:none}.loading-progress{position:relative;width:min(280px,56vw);padding-top:20px}.loading-progress__number{position:absolute;top:0;right:0;font-size:11px;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:.04em}.loading-progress__track{display:block;width:100%;height:1px;overflow:hidden;background:#08080824}.loading-progress__track i{display:block;width:100%;height:1px;background:#080808;transform:scaleX(0);transform-origin:left center;transition:transform .12s linear}.home{position:relative;min-height:100vh;isolation:isolate}.home:not(.home--ready){pointer-events:none}.home[aria-hidden=true]{visibility:hidden}.memory-traces{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}.memory-trace{position:absolute;overflow:visible;fill:none;stroke:#08080814;stroke-width:1;vector-effect:non-scaling-stroke}.memory-trace path:not(.memory-trace__tick){stroke-dasharray:1800;stroke-dashoffset:1800;transition:stroke-dashoffset .85s cubic-bezier(.22,1,.36,1)}.memory-trace circle,.memory-trace__tick{opacity:0;transition:opacity .52s .22s ease}.memory-trace--hero{top:0;left:0;width:100%;height:100vh}.memory-traces--active .memory-trace--hero path{stroke-dashoffset:0}.memory-traces--active .memory-trace--hero circle{opacity:1}.memory-trace--fragment{width:min(520px,44vw);opacity:0;transform:translateY(12px);transition:opacity .62s ease,transform .62s cubic-bezier(.22,1,.36,1)}.memory-trace--fragment-a{top:34%;right:4%}.memory-trace--fragment-b{top:63%;left:2%}.memory-trace--fragment-c{top:86%;right:11%}.memory-trace--visible{opacity:1;transform:translateY(0)}.memory-trace--visible path{stroke-dashoffset:0!important}.memory-trace--visible circle,.memory-trace--visible .memory-trace__tick{opacity:1}.title-anchor{position:sticky;top:50vh;z-index:1;height:0;display:grid;place-items:center;pointer-events:none}.title-anchor h1{position:relative;width:max-content;max-width:94vw;margin:0;color:#050505;font-size:clamp(7.5rem,15.2vw,14.5rem);font-weight:950;line-height:.78;letter-spacing:.08em;text-indent:.08em;opacity:0;transform:translateY(-45%);white-space:nowrap}.home--scatter .title-anchor h1{animation:title-in .9s .14s cubic-bezier(.22,1,.36,1) forwards}.home--ready .title-anchor h1{opacity:1;transform:translateY(-50%)}.photo-canvas{position:relative;z-index:2;height:var(--desktop-height);overflow:clip}.memory-photo{position:absolute;left:var(--desktop-x);top:var(--desktop-y);z-index:var(--layer);width:var(--desktop-width);aspect-ratio:var(--ratio);display:block;margin:0;padding:0;overflow:visible;border:0;border-radius:0;background:transparent;opacity:0;transform:translateY(22px);transition:opacity .62s ease,transform .62s cubic-bezier(.2,.72,.2,1);appearance:none}.memory-photo:disabled{color:inherit}.home-photo-media{width:100%;height:100%;object-fit:contain;-webkit-user-select:none;user-select:none}.memory-photo--visible{opacity:1;transform:translateY(0)}.memory-photo--intro{opacity:0;transform:translate(calc(50vw - var(--desktop-x) - var(--desktop-width) / 2),calc(50vh - var(--desktop-y) - 50%));transition:none}.home--scatter .memory-photo--intro{animation:scatter-photo 1.25s var(--intro-delay) cubic-bezier(.18,.68,.22,1) forwards}.home--ready .memory-photo--intro{opacity:1;transform:translate(0)}.intro-stack{position:fixed;top:50%;left:50%;z-index:7;width:min(267px,18.542vw);aspect-ratio:4 / 3;opacity:0;transform:translate(-50%,calc(-50% + 8px));transition:opacity .3s ease,transform .3s cubic-bezier(.22,1,.36,1);pointer-events:none}.home--stack-enter .intro-stack,.home--stack-cycle .intro-stack{opacity:1;transform:translate(-50%,-50%)}.home--scatter .intro-stack{opacity:0;transform:translate(-50%,calc(-50% - 3px));transition-duration:.18s}.intro-stack__card{position:absolute;top:50%;left:50%;z-index:var(--stack-layer);width:100%;opacity:0;transform:translate(calc(-50% + var(--stack-x)),calc(-50% + var(--stack-y)));transition:opacity .15s linear,transform .15s cubic-bezier(.22,1,.36,1)}.intro-stack__card--visible{opacity:1}.intro-stack__card--leaving{opacity:0;transform:translate(calc(-50% + var(--stack-x)),calc(-50% + var(--stack-y) - 6px))}.intro-stack__media{width:100%;height:auto;object-fit:contain;-webkit-user-select:none;user-select:none}.scroll-hint{position:fixed;right:26px;bottom:22px;z-index:8;margin:0;color:#111;font-size:11px;font-weight:500;letter-spacing:.16em;opacity:0;writing-mode:vertical-rl}.home--ready .scroll-hint{animation:hint-in .5s ease forwards}.viewer{position:fixed;inset:0;z-index:100;overflow:hidden;background-color:var(--paper-color);background-image:var(--paper-texture)}.viewer-traces{position:absolute;inset:0;pointer-events:none}.viewer-traces i{position:absolute;width:16px;height:16px;opacity:.08}.viewer-traces i:before,.viewer-traces i:after{content:"";position:absolute;background:#080808}.viewer-traces i:before{top:7.5px;left:0;width:16px;height:1px}.viewer-traces i:after{top:0;left:7.5px;width:1px;height:16px}.viewer-traces i:first-child{top:9%;right:7%}.viewer-traces i:last-child{right:12%;bottom:11%;transform:scale(.72)}.thumbnail-rail{position:absolute;inset:0 auto 0 0;z-index:4;width:104px;overflow:visible;pointer-events:none}.thumbnail{position:absolute;top:48vh;left:8px;z-index:var(--thumb-layer);width:58px;height:72px;display:grid;place-items:center;margin:0;padding:3px;border:0;background:transparent;opacity:var(--thumb-opacity);transform:translateY(calc(-50% + var(--thumb-y))) translate(var(--thumb-x)) scale(var(--thumb-scale));transform-origin:left center;transition:transform .52s cubic-bezier(.22,1,.36,1),opacity .52s cubic-bezier(.22,1,.36,1);pointer-events:auto}.thumbnail:after{content:"";position:absolute;inset:0;border:1px solid transparent;pointer-events:none}.thumbnail--active:after{border-color:#111}.thumbnail-media{width:min(48px,calc(66px * var(--media-ratio)));height:auto;max-height:66px;aspect-ratio:var(--media-ratio);object-fit:contain}.viewer-stage{--viewer-shift: clamp(56px, 10vh, 96px);position:absolute;inset:22px 34px 66px 112px;overflow:hidden;touch-action:pan-y}.viewer-transition{position:absolute;inset:0}.viewer-photo-frame{position:absolute;top:50%;left:50%;width:min(78vw,calc(100vw - 230px),calc((100vh - 118px) * var(--viewer-ratio)));aspect-ratio:var(--viewer-ratio);transform:translate(-50%,-50%)}.viewer-photo-media{width:100%;height:100%;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none}.viewer-transition--next .viewer-photo-frame--leaving{animation:viewer-next-out .52s cubic-bezier(.22,1,.36,1) both}.viewer-transition--next .viewer-photo-frame--entering{animation:viewer-next-in .52s cubic-bezier(.22,1,.36,1) both}.viewer-transition--previous .viewer-photo-frame--leaving{animation:viewer-previous-out .52s cubic-bezier(.22,1,.36,1) both}.viewer-transition--previous .viewer-photo-frame--entering{animation:viewer-previous-in .52s cubic-bezier(.22,1,.36,1) both}.viewer-zone{position:absolute;top:0;bottom:0;z-index:5;width:50%;padding:0;border:0;background:transparent}.viewer-zone--previous{left:0}.viewer-zone--next{right:0}.back-button{position:absolute;left:50%;bottom:23px;z-index:6;padding:7px 15px;border:0;background:transparent;font-size:13px;font-weight:600;letter-spacing:.22em;transform:translate(-50%)}.back-button:after{content:"";position:absolute;right:16px;bottom:3px;left:15px;height:1px;background:#111;transform:scaleX(0);transform-origin:right;transition:transform .22s ease}.back-button:hover:after{transform:scaleX(1);transform-origin:left}.music-toggle{position:fixed;left:22px;bottom:20px;z-index:180;width:34px;height:34px;display:grid;place-items:center;padding:0;border:1px solid rgba(8,8,8,.38);border-radius:50%;background:color-mix(in srgb,var(--paper-color) 82%,transparent);opacity:.62;transition:opacity .18s ease,transform .18s ease}.music-toggle span{display:block;font-family:Georgia,serif;font-size:19px;line-height:1;transform:translateY(-1px)}.music-toggle:hover,.music-toggle:focus-visible,.music-toggle--playing{opacity:1}.music-toggle--playing span{animation:music-beat 1.25s ease-in-out infinite}.custom-cursor{position:fixed;top:0;left:0;z-index:999;width:30px;height:30px;margin:-15px 0 0 -15px;opacity:0;pointer-events:none;transition:opacity .12s ease;will-change:transform}.custom-cursor--visible{opacity:1}.custom-cursor i{position:absolute;top:50%;left:50%;display:block;width:22px;height:1.5px;background:#050505;transform:translate(-50%,-50%);transition:width .17s ease,transform .17s ease}.custom-cursor i:last-child{transform:translate(-50%,-50%) rotate(90deg)}.custom-cursor--active i:first-child{width:27px;transform:translate(-50%,-50%) rotate(45deg)}.custom-cursor--active i:last-child{width:27px;transform:translate(-50%,-50%) rotate(135deg)}::view-transition-old(memory-photo),::view-transition-new(memory-photo){animation-duration:.43s;animation-timing-function:cubic-bezier(.2,.72,.2,1);object-fit:contain}@keyframes scatter-photo{0%{opacity:1;transform:translate(calc(50vw - var(--desktop-x) - var(--desktop-width) / 2),calc(50vh - var(--desktop-y) - 50%))}to{opacity:1;transform:translate(0)}}@keyframes title-in{to{opacity:1;transform:translateY(-50%)}}@keyframes hint-in{to{opacity:.52}}@keyframes music-beat{0%,to{transform:translateY(-1px) scale(1)}50%{transform:translateY(-1px) scale(1.16)}}@keyframes viewer-next-out{0%{opacity:1;transform:translate(-50%,-50%) translateY(0)}to{opacity:0;transform:translate(-50%,-50%) translateY(calc(-1 * var(--viewer-shift)))}}@keyframes viewer-next-in{0%{opacity:0;transform:translate(-50%,-50%) translateY(var(--viewer-shift))}to{opacity:1;transform:translate(-50%,-50%) translateY(0)}}@keyframes viewer-previous-out{0%{opacity:1;transform:translate(-50%,-50%) translateY(0)}to{opacity:0;transform:translate(-50%,-50%) translateY(var(--viewer-shift))}}@keyframes viewer-previous-in{0%{opacity:0;transform:translate(-50%,-50%) translateY(calc(-1 * var(--viewer-shift)))}to{opacity:1;transform:translate(-50%,-50%) translateY(0)}}@media(hover:hover)and (pointer:fine){html,body,button,a{cursor:none!important}.home--ready .memory-photo:hover{z-index:9;transform:scale(1.025)}}@media(max-width:700px),(pointer:coarse){.music-toggle{left:12px;bottom:12px;width:32px;height:32px}.title-anchor h1{max-width:88vw;font-size:25vw;line-height:.82}.photo-canvas{height:var(--mobile-height)}.memory-photo{left:var(--mobile-x);top:var(--mobile-y);width:var(--mobile-width)}.memory-photo--intro{transform:translate(calc(50vw - var(--mobile-x) - var(--mobile-width) / 2),calc(50vh - var(--mobile-y) - 50%))}.home--scatter .memory-photo--intro{animation-name:scatter-photo-mobile}.intro-stack{width:43vw}.memory-trace--fragment{width:68vw}.scroll-hint{right:12px;bottom:15px;font-size:9px}.thumbnail-rail{display:none}.viewer-stage{inset:12px 10px 62px}.viewer-photo-frame{width:min(calc(100vw - 24px),calc((100vh - 98px) * var(--viewer-ratio)))}.viewer-traces i:first-child{top:7%;right:6%;transform:scale(.7)}.viewer-traces i:last-child{right:8%;bottom:9%;transform:scale(.55)}.back-button{bottom:18px}.viewer-transition--next .viewer-photo-frame--leaving{animation-name:viewer-mobile-next-out}.viewer-transition--next .viewer-photo-frame--entering{animation-name:viewer-mobile-next-in}.viewer-transition--previous .viewer-photo-frame--leaving{animation-name:viewer-mobile-previous-out}.viewer-transition--previous .viewer-photo-frame--entering{animation-name:viewer-mobile-previous-in}}@keyframes scatter-photo-mobile{0%{opacity:1;transform:translate(calc(50vw - var(--mobile-x) - var(--mobile-width) / 2),calc(50vh - var(--mobile-y) - 50%))}to{opacity:1;transform:translate(0)}}@keyframes viewer-mobile-next-out{0%{opacity:1;transform:translate(-50%,-50%) translate(0)}to{opacity:0;transform:translate(-50%,-50%) translate(calc(-1 * var(--viewer-shift)))}}@keyframes viewer-mobile-next-in{0%{opacity:0;transform:translate(-50%,-50%) translate(var(--viewer-shift))}to{opacity:1;transform:translate(-50%,-50%) translate(0)}}@keyframes viewer-mobile-previous-out{0%{opacity:1;transform:translate(-50%,-50%) translate(0)}to{opacity:0;transform:translate(-50%,-50%) translate(var(--viewer-shift))}}@keyframes viewer-mobile-previous-in{0%{opacity:0;transform:translate(-50%,-50%) translate(calc(-1 * var(--viewer-shift)))}to{opacity:1;transform:translate(-50%,-50%) translate(0)}}@media(prefers-reduced-motion:reduce){.loading-screen{transition-duration:.1s}.loading-progress__track i,.memory-photo,.memory-trace,.memory-trace path,.memory-trace circle,.memory-trace__tick,.thumbnail,.back-button:after{transition:none!important}.home--ready .memory-photo,.home--ready .memory-photo--intro,.home--ready .scroll-hint{opacity:1;transform:none;animation:none}.home--ready .title-anchor h1{opacity:1;transform:translateY(-50%);animation:none}.memory-trace path{stroke-dashoffset:0!important}.memory-trace circle,.memory-trace__tick,.memory-trace--fragment{opacity:1;transform:none}.viewer-photo-frame--leaving{display:none}.viewer-photo-frame--entering{opacity:1;transform:translate(-50%,-50%);animation:none!important}.music-toggle--playing span{animation:none}}
