@charset "UTF-8";:root{--night:#172027;--paper:#f8f6f1;--ink:#242729;--gold:#b28a5b;--muted:#737978;--line:#dcd9d2;--serif:"Songti SC","STSong","SimSun",Georgia,serif;--sans:"PingFang SC","Microsoft YaHei",Arial,sans-serif;--ease:cubic-bezier(.22,1,.36,1)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.9 var(--sans);-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:disabled{opacity:.25;cursor:default}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:6px}h1,h2,p,figure{margin:0}h1,h2{font-family:var(--serif);font-weight:400}h2{font-size:clamp(30px,3.6vw,48px);line-height:1.6;letter-spacing:.04em}img{max-width:100%;display:block}.eyebrow{font-size:10px;letter-spacing:.22em;color:var(--gold)}.section{max-width:1240px;margin:auto;padding:110px 70px}.skip{position:fixed;top:-100px;left:20px;z-index:100;background:var(--paper);padding:10px}.skip:focus{top:10px}.masthead{position:absolute;z-index:2;top:0;left:0;width:100%;display:flex;align-items:center;justify-content:space-between;padding:25px 5%;color:var(--paper)}.masthead>a:first-child{font:25px Georgia,serif}.masthead>a:first-child span{font-size:17px;color:var(--gold)}.masthead>span{font-size:9px;letter-spacing:.22em;opacity:.6}.masthead>a:last-child{font-size:11px;letter-spacing:.08em;padding:10px 0}.masthead>a:last-child span{margin-left:15px;color:var(--gold)}.opening{height:850px;min-height:700px;height:100svh;position:relative;background:var(--night);color:var(--paper);overflow:hidden;display:flex;align-items:center;justify-content:center;text-align:center}.cover{position:absolute;width:100%;height:100%;object-fit:cover;opacity:.25}.opening-orbit{position:absolute;width:560px;height:690px;border:1px solid #b28a5b22;border-radius:50%;transform:rotate(28deg);top:12%;pointer-events:none}.opening-orbit:after{content:"";position:absolute;inset:35px;border:1px solid #b28a5b12;border-radius:50%}.opening-copy{position:relative;padding:90px 20px 60px;animation:opening 1.2s var(--ease) both}.opening .eyebrow{font-size:10px;letter-spacing:.35em;margin-bottom:28px}.hero-english{font:clamp(76px,10vw,146px)/1.1 Georgia,serif;letter-spacing:-.055em;color:#eee9df}.hero-english i{font-weight:400;color:#c5ab88}.opening h1{font-size:clamp(36px,4.3vw,60px);letter-spacing:.28em;margin:22px 0 21px;padding-left:.28em}.hero-sub{font-size:12px;color:#b8b9b5;letter-spacing:.22em}.cover-bottom{position:absolute;bottom:max(30px,env(safe-area-inset-bottom));left:5%;right:5%;display:flex;align-items:end;justify-content:space-between;font-size:8px;letter-spacing:.18em;color:#a0a6a5}.cover-bottom a{font-size:10px;letter-spacing:.12em;display:flex;flex-direction:column;gap:16px}.down{font-size:24px;color:var(--gold)}.prologue{display:grid;grid-template-columns:110px 1.3fr 1fr;gap:35px;padding-top:140px;padding-bottom:140px;align-items:center}.chapter-index{font:76px/1 Georgia,serif;color:#d8d1c4;align-self:start}.chapter-index span{display:block;font:8px var(--sans);letter-spacing:.1em;margin-top:20px;color:var(--muted)}.prologue h2{margin-top:20px}.prologue-note{padding-top:48px;font-size:13px;line-height:2.2;color:var(--muted)}.tiny-rule{display:block;width:35px;height:1px;background:var(--gold);margin-bottom:22px}.annotation{display:block;font-size:10px;color:#94958c;margin-top:22px}.memories{padding-top:0;padding-bottom:95px}.section-heading{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:22px;margin-bottom:90px}.section-heading>span:last-child{font-size:10px;color:var(--muted);letter-spacing:.12em}.timeline{position:relative}.timeline-line{position:absolute;top:0;bottom:0;left:50%;width:1px;background:var(--line)}.timeline-line>span{display:block;height:var(--progress,0%);background:var(--gold)}.memory{position:relative;display:grid;grid-template-columns:1fr 1fr;column-gap:110px;align-items:center;margin-bottom:130px}.memory:before{content:"";position:absolute;width:7px;height:7px;border:1px solid var(--gold);background:var(--paper);border-radius:50%;left:calc(50% - 4px);top:64px}.memory-copy{grid-column:2;grid-row:1;padding:24px 0}.gallery{grid-column:1;grid-row:1;min-width:0}.memory.reverse .memory-copy{grid-column:1}.memory.reverse .gallery{grid-column:2}.memory-meta{display:flex;align-items:center;gap:16px;font-size:10px;color:var(--muted);letter-spacing:.12em;margin-bottom:28px}.memory-number{font:italic 25px Georgia,serif;color:var(--gold)}.memory .eyebrow{font-size:10px;letter-spacing:.15em;margin-bottom:14px}.memory h2{font-size:clamp(27px,2.8vw,38px);line-height:1.65}.story-text{font-size:13px;line-height:2.2;color:var(--muted);margin-top:24px;max-width:290px}.story-text p+p{margin-top:15px}.photo{margin-bottom:20px}.photo-open{border:0;padding:0;display:block;width:100%;background:#e4dfd4;overflow:hidden}.photo img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform .8s var(--ease)}.photo-open:hover img{transform:scale(1.025)}.photo.portrait img,.photo.portrait .placeholder{aspect-ratio:3/4}.photo figcaption{display:flex;justify-content:space-between;gap:10px;font-size:9px;color:var(--muted);padding-top:10px;letter-spacing:.06em}.photo figcaption span:first-child{color:var(--gold);white-space:nowrap}.placeholder{position:relative;aspect-ratio:4/5;background:#e6e1d7;display:flex;align-items:center;justify-content:center;overflow:hidden;color:#8b8170}.placeholder:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#ebe7df,#d5d0c3)}.placeholder-frame{position:absolute;inset:22px;border:1px solid #a99a7e44}.placeholder-mark{font:clamp(28px,3vw,44px)/1.15 Georgia,serif;letter-spacing:-.04em;z-index:1;transform:rotate(-6deg);text-align:center}.placeholder-mark i{color:#a99a80}.placeholder-label{position:absolute;bottom:39px;left:25px;right:25px;text-align:center;font-size:8px;letter-spacing:.12em}.gallery[data-count="2"] .photo+.photo{width:64%;margin-left:auto;margin-top:-30px;position:relative;border:7px solid var(--paper);border-right:0}.gallery[data-count="3"],.gallery[data-count="4"],.gallery[data-count="5"]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.gallery[data-count="3"] .photo:first-child,.gallery[data-count="4"] .photo:first-child,.gallery[data-count="5"] .photo:first-child{grid-column:1/-1}.gallery .photo:not(:first-child) .placeholder-mark{font-size:28px}.gallery .photo:not(:first-child) .placeholder-label{font-size:7px;bottom:26px}.memory.text-only{min-height:240px}.memory.text-only .memory-copy{grid-column:1/-1;grid-row:auto;text-align:center;background:var(--paper);position:relative;padding:45px 20px}.text-only .memory-meta{justify-content:center}.text-only .story-text{margin-left:auto;margin-right:auto;max-width:390px}.timeline-end{text-align:center;font-size:8px;letter-spacing:.25em;color:var(--gold);position:relative;background:var(--paper);padding-top:10px}.memory:last-child{margin-bottom:60px}.interlude{min-height:530px;position:relative;background:#333d39;color:var(--paper);display:flex;align-items:center;justify-content:center;overflow:hidden;text-align:center}.interlude>img{position:absolute;width:100%;height:100%;object-fit:cover;opacity:.4}.interlude-art{position:absolute;inset:0;background:linear-gradient(120deg,#25332f,#606157 55%,#34453f)}.interlude-art span{position:absolute;width:36%;height:160%;background:#d7c9a22a;transform:rotate(26deg);top:-30%;left:22%;filter:blur(2px)}.interlude-art span:nth-child(2){left:65%;width:4%;background:#182e28aa}.interlude-art span:nth-child(3){left:3%;width:2%;background:#162b23aa}.interlude-copy{position:relative;padding:75px 24px}.interlude h2{font-size:clamp(28px,3.3vw,42px);margin:25px 0 16px}.interlude-copy>p:not(.eyebrow){font:clamp(14px,1.6vw,20px)/2.2 var(--serif);letter-spacing:.05em}.interlude-hint{display:block;margin-top:40px;font-size:8px;letter-spacing:.12em;opacity:.45}.present{text-align:center;padding-top:130px;padding-bottom:100px}.present h2{margin:32px 0 24px}.present>p:not(.eyebrow){color:var(--muted);font-size:12px}.present-flower{display:block;color:var(--gold);font-size:35px;margin-top:50px}.days{margin-top:40px;display:flex;justify-content:center;align-items:baseline;gap:16px;font-size:11px;color:var(--muted)}.days strong{font:50px Georgia,serif;color:var(--gold)}.letter-section{background:var(--night);color:var(--paper);text-align:center;padding:90px 24px 30px}.letter-section h2{margin:25px 0 45px;font-size:clamp(30px,3.3vw,44px)}.envelope{position:relative;display:block;margin:0 auto 28px;width:265px;height:170px;background:#e9e2d4;border:0;color:#4f514b;box-shadow:0 20px 60px #0003;transition:transform .4s var(--ease)}.envelope:hover{transform:translateY(-6px) rotate(-2deg)}.envelope-lines{position:absolute;inset:0;overflow:hidden}.envelope-lines:before{content:"";position:absolute;width:190px;height:190px;left:37px;top:-133px;border:1px solid #bbaf96;transform:rotate(45deg);background:#eee8dc}.seal{position:absolute;left:calc(50% - 16px);top:54px;display:grid;place-items:center;border-radius:50%;width:32px;height:32px;background:#9a7751;color:#e8dac5;font:italic 18px Georgia;box-shadow:0 2px 5px #0002}.envelope-to{position:absolute;bottom:22px;left:0;right:0;font:italic 17px Georgia,serif}.letter-link{background:none;border:0;border-bottom:1px solid #b28a5b80;font-size:12px;padding:12px 0;color:#d2bd9c;letter-spacing:.1em}.letter-link span{margin-left:25px}.letter-small{font-size:10px;color:#89918f;margin-top:17px}footer{margin:90px auto 0;padding-top:30px;border-top:1px solid #ffffff15;max-width:1100px}footer>span{font-size:9px;letter-spacing:.3em;color:var(--gold)}footer p{font:16px var(--serif);margin-top:12px;letter-spacing:.15em}footer a{display:inline-block;font-size:9px;color:#89918f;margin-top:28px;padding:10px}dialog{padding:0;border:0;max-width:none;max-height:none;width:100%;height:100dvh;color:var(--paper);background:#11191ff5}dialog::backdrop{background:#172027}dialog button{min-width:44px;min-height:44px;border:0;background:none}#lightbox{overflow:hidden}.lightbox-top{position:absolute;z-index:1;left:24px;right:24px;top:max(15px,env(safe-area-inset-top));display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:.2em}.lightbox-stage{height:85%;padding:80px 22px 15px;display:flex;align-items:center;justify-content:space-between;gap:12px;touch-action:pan-y}.lightbox-stage img{min-width:0;max-width:calc(100% - 112px);max-height:100%;object-fit:contain}#photo-caption,#photo-error{text-align:center;font-size:12px;padding:5px 20px;color:#c0c2bb}#photo-error{color:#d2bd9c}#letter-dialog{background:var(--paper);color:var(--ink);overflow:auto}.letter-close{position:fixed;right:max(20px,env(safe-area-inset-right));top:max(16px,env(safe-area-inset-top));z-index:1;background:var(--paper)}.letter-paper{max-width:680px;padding:90px 40px 50px;margin:auto;animation:opening .7s var(--ease) both}.letter-edition{font-size:8px;letter-spacing:.2em;margin:18px 0 30px;color:var(--muted)}.letter-paper h2{font-size:34px;margin-bottom:40px}.letter-paper>p:not(.eyebrow):not(.letter-edition){font-family:var(--serif);line-height:2.4;font-size:17px;margin-bottom:24px}.signature{text-align:right;margin:55px 0 60px;font-family:var(--serif)}.signature span{font:11px var(--sans);color:var(--muted)}.letter-bottom{border-top:1px solid var(--line);padding-top:22px;font-size:8px;letter-spacing:.22em;color:var(--gold)}.will-reveal{opacity:0;transform:translateY(20px);transition:opacity .8s var(--ease),transform .8s var(--ease)}.will-reveal.visible{opacity:1;transform:none}@keyframes opening{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@media(min-width:1400px){.section{padding-left:40px;padding-right:40px}.memory{column-gap:140px}}@media(max-width:767px){.masthead{padding:20px 24px;padding-top:max(20px,env(safe-area-inset-top))}.masthead>span{display:none}.opening{min-height:620px}.opening-orbit{width:330px;height:490px;top:18%}.opening-copy{padding-bottom:80px}.opening .eyebrow{font-size:8px;letter-spacing:.3em}.hero-english{font-size:83px}.opening h1{font-size:39px;letter-spacing:.2em;margin-top:28px}.hero-sub{font-size:10px;letter-spacing:.1em}.cover-bottom{left:24px;right:24px;bottom:max(25px,env(safe-area-inset-bottom))}.cover-bottom>span{font-size:7px}.cover-bottom>span:last-child{display:none}.cover-bottom a{font-size:9px;align-items:end;gap:10px}.section{padding:75px 25px}.prologue{grid-template-columns:54px 1fr;gap:25px;padding-top:90px;padding-bottom:80px}.chapter-index{font-size:53px}.chapter-index span{font-size:6px;line-height:1.8;margin-top:12px}.prologue h2{font-size:30px;margin-top:12px}.prologue-note{grid-column:2;padding-top:0;font-size:12px}.annotation{font-size:9px}.memories{padding-top:0;padding-left:25px;padding-right:25px}.section-heading{margin-bottom:50px;padding-top:18px;gap:10px}.section-heading .eyebrow{font-size:8px}.section-heading>span:last-child{font-size:8px}.timeline-line{left:0}.memory,.memory.reverse{display:flex;flex-direction:column;align-items:stretch;margin-bottom:65px;padding-left:22px;gap:0}.memory:before{left:-3px;top:36px}.memory-copy{padding:12px 0 28px}.memory-meta{margin-bottom:20px;font-size:9px}.memory h2{font-size:30px;line-height:1.6}.memory .eyebrow{font-size:9px;margin-bottom:9px}.story-text{max-width:none;font-size:12px;margin-top:18px}.photo img,.placeholder{aspect-ratio:4/5}.placeholder-mark{font-size:40px}.photo figcaption{font-size:8px}.gallery[data-count="2"] .photo+.photo{margin-top:-12px}.gallery[data-count="3"],.gallery[data-count="4"],.gallery[data-count="5"]{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;padding-bottom:8px}.gallery[data-count="3"] .photo,.gallery[data-count="4"] .photo,.gallery[data-count="5"] .photo{flex:0 0 88%;scroll-snap-align:start}.gallery .photo:not(:first-child) .placeholder-mark{font-size:38px}.memory.text-only .memory-copy{text-align:left;padding:25px 0}.text-only .memory-meta{justify-content:start}.text-only .story-text{margin-left:0}.timeline-end{font-size:7px;letter-spacing:.15em;padding-left:22px}.interlude{min-height:450px}.interlude-copy{padding:60px 22px}.interlude-copy>p:not(.eyebrow){font-size:13px;line-height:2.3}.interlude h2{font-size:29px}.interlude .eyebrow{font-size:8px}.present{padding-top:90px;padding-bottom:70px}.present h2{font-size:30px}.present>p:not(.eyebrow){font-size:11px}.present-flower{margin-top:35px}.letter-section{padding-top:75px;padding-bottom:max(25px,env(safe-area-inset-bottom))}.letter-section h2{font-size:30px}.letter-section .eyebrow{font-size:8px}footer{margin-top:70px}.letter-paper{padding:85px 27px 35px}.letter-paper h2{font-size:29px}.letter-paper>p:not(.eyebrow):not(.letter-edition){font-size:16px}.lightbox-stage{padding-left:6px;padding-right:6px;gap:0}.lightbox-stage img{max-width:calc(100% - 88px)}.lightbox-top{left:18px;right:18px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.will-reveal{opacity:1;transform:none}}:root{--paper:#f4f0e7;--gold:#a78b64;--ink:#33372f}.opening{background:#202821;min-height:740px}.opening:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 72% 18%,#b6a17a38,transparent 55%),linear-gradient(115deg,#0e1919aa,transparent 65%);pointer-events:none}.opening:after{content:"";position:absolute;inset:22px;border:1px solid #d8c9aa22;pointer-events:none}.opening-orbit{display:none}.cover{opacity:.65;filter:saturate(.7)}.opening-copy{padding-top:110px}.opening .eyebrow{margin-bottom:33px;letter-spacing:.42em;color:#c2b8a4}.hero-english{font-size:clamp(100px,13vw,184px);line-height:.82;letter-spacing:-.065em;max-width:850px}.hero-english i{display:block;color:#eee8dc;font-weight:400;margin-left:95px}.opening h1{font-size:clamp(30px,3vw,44px);margin:40px 0 23px;letter-spacing:.4em}.hero-sub{font-family:var(--serif);font-size:14px;color:#c9c6b9;letter-spacing:.15em}.masthead{padding:32px 5%}.masthead>a:first-child{font-style:italic}.cover-bottom{bottom:40px}.album-intro{max-width:1380px;margin:auto;padding:125px 70px 100px;display:grid;grid-template-columns:.8fr 1.5fr;gap:45px;align-items:center;min-height:850px}.album-heading{position:relative;z-index:2}.album-heading .eyebrow{font-size:8px;letter-spacing:.17em;margin-bottom:35px}.album-heading h2{font-size:clamp(32px,3.4vw,49px);line-height:1.5;letter-spacing:.01em}.album-heading h2 i{font-style:normal;color:#8b795c}.album-heading>p:not(.eyebrow){font:italic 16px/1.7 Georgia,serif;color:#8a887b;margin-top:27px}.album-heading>a{display:inline-block;font-size:11px;border-bottom:1px solid #8b795c;padding:8px 0;margin-top:36px}.album-heading>a span{margin-left:28px}.album-collage{position:relative;height:590px}.album-collage:before{content:"";position:absolute;inset:65px 40px 25px 60px;background:#ded8ca66;transform:rotate(-4deg)}.album-print{position:absolute;background:#faf7ed;padding:12px 12px 0;box-shadow:2px 7px 13px #373b2920;border:1px solid #c6bdab30}.album-print img,.print-art{width:100%;height:100%;object-fit:cover}.album-print figcaption{font:italic 12px/1.3 Georgia,serif;text-align:center;padding:12px 0 15px;color:#6d6a5b}.print-0{left:17%;top:82px;width:66%;height:405px;z-index:3;transform:rotate(-3deg)}.print-0>img,.print-0>.print-art{height:calc(100% - 44px)}.print-1{left:-7%;top:240px;width:32%;height:240px;z-index:2;transform:rotate(-8deg)}.print-1>img,.print-1>.print-art{height:calc(100% - 44px)}.print-2{right:-3%;top:0;width:34%;height:205px;z-index:4;transform:rotate(7deg)}.print-2>img,.print-2>.print-art{height:calc(100% - 44px)}.print-3{left:0;bottom:0;width:46%;height:185px;z-index:4;transform:rotate(4deg)}.print-3>img,.print-3>.print-art{height:calc(100% - 44px)}.print-art{display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;overflow:hidden;background:#aaa68f;color:#ede7d5}.print-art:before{content:"";position:absolute;width:60%;height:150%;background:#ece2bf38;transform:rotate(30deg);left:-6%;top:-25%}.print-art span{font:italic 28px Georgia,serif;position:relative;text-align:center}.print-art small{font:6px var(--sans);letter-spacing:.12em;margin-top:15px;z-index:1}.art-0{background:linear-gradient(125deg,#414d3d,#a49b7c)}.art-1{background:linear-gradient(140deg,#b7b09a,#747e67)}.art-2{background:linear-gradient(100deg,#6a6651,#c4b38b)}.art-3{background:linear-gradient(165deg,#7b8880,#343f3b)}.album-handwriting{position:absolute;right:-5px;bottom:10px;transform:rotate(-9deg);font:italic 33px/.95 Georgia,serif;color:#8b795c}.prologue{border-top:1px solid #d2cbbb;padding-top:90px;padding-bottom:100px}.chapter-index{font-style:italic}.memory{column-gap:125px;margin-bottom:165px}.memory h2{font-size:clamp(30px,3.2vw,44px)}.memory-number{font-size:38px}.memory .photo{padding:12px 12px 0;background:#faf7ed;box-shadow:2px 5px 12px #343b2615;transform:rotate(-2deg)}.memory.reverse .photo{transform:rotate(2deg)}.memory .photo figcaption{padding:12px 2px 16px}.gallery[data-count="2"] .photo+.photo{border:0;transform:rotate(7deg);margin-top:-65px;box-shadow:0 6px 15px #373b2930}.placeholder-frame{display:none}.placeholder:before{background:linear-gradient(145deg,#8b9482,#c0b99e)}.placeholder-mark{color:#f3eddc}.placeholder-mark i{color:#e6deca}.placeholder-label{color:#eee8d9}.memory:nth-child(2n) .placeholder:before{background:linear-gradient(115deg,#a99e82,#6f7964)}.text-only .memory-copy{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.letter-section{background:#202821}.envelope{transform:rotate(-5deg)}@media(max-width:767px){.opening{min-height:660px}.opening:after{inset:12px}.hero-english{font-size:110px}.hero-english i{margin-left:35px}.opening h1{font-size:33px;letter-spacing:.24em;margin-top:38px}.hero-sub{font-size:11px}.masthead{padding:27px}.cover-bottom{bottom:32px}.album-intro{display:flex;flex-direction:column;padding:70px 28px 65px;gap:38px;min-height:0;overflow:hidden}.album-heading{align-self:start}.album-heading .eyebrow{margin-bottom:20px}.album-heading h2{font-size:35px}.album-heading h2 br{display:initial}.album-heading>p:not(.eyebrow){font-size:13px;margin-top:17px}.album-heading>a{margin-top:17px}.album-collage{width:100%;height:420px}.print-0{left:15%;top:60px;width:70%;height:285px}.print-1{left:-3%;top:190px;width:34%;height:170px}.print-2{right:-1%;width:37%;height:155px}.print-3{left:3%;width:48%;height:140px}.album-print{padding:7px 7px 0}.album-print figcaption{font-size:8px;padding:9px 0}.print-art span{font-size:20px}.print-art small{font-size:5px;letter-spacing:0}.album-handwriting{font-size:26px;bottom:5px;right:0}.memory{margin-bottom:85px}.memory h2{font-size:32px}.memory .photo{padding:9px 9px 0}.memory .photo figcaption{padding-bottom:12px}.gallery[data-count="2"] .photo+.photo{margin-top:-35px}.gallery[data-count="3"],.gallery[data-count="4"],.gallery[data-count="5"]{padding:9px 6px 18px}.prologue{padding-top:65px;padding-bottom:70px}}.opening .cover{object-position:50% 36%;opacity:.78;filter:saturate(.85)}.opening:before{z-index:1;background:linear-gradient(180deg,#10191955,#10191922 24%,#10191966 57%,#101919b3)}.opening-copy,.cover-bottom{z-index:2}.opening-copy{text-shadow:0 2px 24px #0006}@media(min-width:768px){.opening .cover{object-position:50% 35%}}@media(max-width:767px)and (orientation:portrait){html{scroll-padding-top:0}.opening{height:auto;min-height:100svh;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.opening-copy{padding-top:95px;padding-bottom:110px}.masthead{padding-top:max(24px,env(safe-area-inset-top))}.cover-bottom{bottom:max(28px,env(safe-area-inset-bottom))}.album-intro{min-height:100svh;justify-content:center;padding-top:max(54px,env(safe-area-inset-top));padding-bottom:max(45px,env(safe-area-inset-bottom));gap:28px}.album-collage{flex-shrink:0;height:clamp(330px,45svh,440px)}.prologue{min-height:100svh;align-content:center;padding-top:max(65px,env(safe-area-inset-top));padding-bottom:max(65px,env(safe-area-inset-bottom))}.memories{padding-top:0;padding-bottom:0}.section-heading{margin-bottom:0;padding-bottom:24px}.memory,.memory.reverse{min-height:100svh;margin-bottom:0;justify-content:center;padding-top:40px;padding-bottom:max(45px,env(safe-area-inset-bottom))}.memory:before{top:65px}.memory-copy{padding-top:10px;padding-bottom:23px}.memory .photo img,.memory .placeholder{aspect-ratio:4/5;max-height:51svh}.memory .photo.portrait img,.memory .photo.portrait .placeholder{aspect-ratio:3/4}.memory .photo img{object-fit:cover}.memory.text-only{min-height:100svh}.memory.text-only .memory-copy{padding-top:55px;padding-bottom:55px}.timeline-end{padding-top:20px;padding-bottom:40px}.interlude{min-height:100svh}.present{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-top:max(70px,env(safe-area-inset-top));padding-bottom:max(70px,env(safe-area-inset-bottom))}.letter-section{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-top:max(65px,env(safe-area-inset-top));padding-bottom:max(25px,env(safe-area-inset-bottom))}.letter-section footer{width:100%;margin-top:55px}.envelope{flex-shrink:0}.letter-paper{padding-top:max(85px,calc(env(safe-area-inset-top) + 55px));padding-bottom:max(35px,env(safe-area-inset-bottom))}}.memory .photo.full-image img{aspect-ratio:auto;height:auto;max-height:none;object-fit:contain}.minimal-memory .memory-meta,.minimal-memory .memory-copy>.eyebrow,.minimal-memory .story-text,.minimal-memory figcaption{display:none}.minimal-memory .memory-copy h2{font-size:clamp(23px,2.5vw,34px);line-height:1.7}.minimal-memory .photo{padding-bottom:12px}.place-correction{text-decoration-thickness:1.5px;text-decoration-color:var(--ink);color:var(--muted)}.place-replacement{text-decoration:none;color:var(--gold);display:inline-block;transform:rotate(-5deg)}.minimal-memory .story-text:has(p){display:block;max-width:34em;margin-top:30px;font-size:15px;line-height:2.3;text-align:left}.minimal-memory.text-only .story-text{margin-left:auto;margin-right:auto}@media(max-width:767px){.minimal-memory .story-text:has(p){font-size:14px;margin-top:26px}.minimal-memory.text-only .story-text{margin-left:0;margin-right:0}}.after-photo{font:24px/1.8 var(--serif);text-align:center;margin:32px 0 12px;color:var(--ink);letter-spacing:.08em}.between-photos{font:22px/1.9 var(--serif);margin:28px 0;color:var(--ink);position:relative;z-index:1}.gallery[data-count="2"]:has(.between-photos) .photo+.between-photos+.photo{width:100%;margin:0;transform:rotate(2deg)}@media(max-width:767px){.between-photos{font-size:21px;margin:30px 0}}.gallery.photo-sequence[data-count] .photo{width:100%;margin:0 0 28px;transform:none}.gallery.photo-grid[data-count]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;overflow:visible;padding:0;align-items:start}.gallery.photo-grid[data-count] .photo{grid-column:auto;width:100%;margin:0;transform:none;padding:5px;min-width:0}.gallery.photo-grid[data-count] .photo img{width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain}@media(max-width:767px){.gallery.photo-grid[data-count]{gap:9px}}.photo-note{font:10px/1.8 var(--sans);color:var(--muted);margin:12px 0 0;text-align:center}.gallery.photo-sequence[data-count]{display:flex;flex-direction:column;overflow:visible;gap:0;scroll-snap-type:none;padding:0}.gallery.photo-sequence[data-count] .photo{flex:0 0 auto;grid-column:auto}.gallery.photo-grid>.photo-note{grid-column:1/-1;margin-top:0}.gallery.photo-stack[data-count]{display:flex;flex-direction:column;align-items:flex-start;overflow:visible;gap:0;padding:12px 14px 20px;scroll-snap-type:none}.gallery.photo-stack[data-count] .photo{position:relative;flex:0 0 auto;grid-column:auto;width:91%;margin:0;transform:rotate(-3deg);z-index:1;box-shadow:2px 8px 18px #24272924}.gallery.photo-stack[data-count] .photo:nth-child(2){align-self:flex-end;margin-top:-24px;transform:rotate(3deg);z-index:2;width:83%}.gallery.photo-stack[data-count] .photo:nth-child(3){margin-top:-32px;transform:rotate(-2deg);z-index:3;width:85%}.gallery.photo-stack[data-count] .photo img{max-height:none;height:auto;aspect-ratio:auto}@media(max-width:767px){.gallery.photo-stack[data-count]{padding-left:9px;padding-right:9px}.gallery.photo-stack[data-count] .photo:nth-child(2){margin-top:-16px}.gallery.photo-stack[data-count] .photo:nth-child(3){margin-top:-22px}}.memory .photo.rotate-landscape .photo-open{position:relative;aspect-ratio:16/9}.memory .photo.rotate-landscape img{position:absolute;left:50%;top:50%;width:56.25%;height:177.7778%;max-width:none;max-height:none;aspect-ratio:auto;object-fit:contain;transform:translate(-50%,-50%) rotate(-90deg)}.gallery.photo-horizontal-stack[data-count]{display:flex;flex-direction:row;align-items:flex-start;overflow:visible;gap:0;padding:15px 9px 30px;scroll-snap-type:none}.gallery.photo-horizontal-stack[data-count] .photo{position:relative;flex:0 0 55%;width:55%;min-width:0;margin:0;padding:7px;transform:rotate(-4deg);z-index:1}.gallery.photo-horizontal-stack[data-count] .photo:nth-child(2){margin-left:-10%;margin-top:45px;transform:rotate(5deg);z-index:2}.gallery.photo-horizontal-stack[data-count] .photo img{width:100%;height:auto;max-height:none;aspect-ratio:auto}@media(max-width:767px){.gallery.photo-horizontal-stack[data-count] .photo{padding:5px}.gallery.photo-horizontal-stack[data-count] .photo:nth-child(2){margin-top:30px}}.music-toggle{position:fixed;z-index:5;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));min-height:44px;padding:8px 16px;border:1px solid #b28a5b80;border-radius:24px;background:#172027ed;color:#eee8dc;font:11px/1.6 var(--sans);letter-spacing:.08em;box-shadow:0 3px 15px #0002}.music-toggle.playing{color:#d9bc91}body{--paper: #f7f0e6;--ink: #2e2522;--muted: #65564e;--gold: #946443;--line: #d8c6b4;--night: #211b1c;background:var(--paper)}.opening-copy{text-shadow:0 3px 24px #170e0dd9}.section-heading{border-top-color:#bb9b80}.memory h2{text-wrap:pretty;letter-spacing:.025em}.memory-meta{font-variant-numeric:tabular-nums}.memory .photo{background:#fffaf2;box-shadow:0 1px 3px #38261d24,0 10px 24px #38261d12}.story-text{font-size:15px;line-height:1.9}.envelope{background:#f3e6d5}.seal{background:#864e49}.letter-section .eyebrow,.opening .eyebrow{color:#e0be99}@media(max-width:767px){.memory h2{font-size:clamp(24px,6.5vw,32px);line-height:1.55}}body,#letter-dialog{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.42 .85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23745139' opacity='.16' filter='url(%23grain)' d='M0 0h160v160H0z'/%3E%3C/svg%3E");background-blend-mode:multiply}.album-next{display:block;margin-top:12px;padding:8px 0;border:0;background:none;color:var(--muted);font-size:11px;letter-spacing:.08em}.album-next[hidden]{display:none}.prologue{grid-template-columns:1.3fr 1fr}@media(max-width:767px){.prologue{grid-template-columns:1fr}.prologue-note{grid-column:1}}.letter-unlock{margin:20px auto 0}.letter-unlock label{display:block;margin-bottom:8px}.letter-unlock input,.letter-unlock button{font:inherit;padding:6px 10px}.letter-unlock input{width:min(55%,200px);margin-right:8px}.letter-unlock button{background:var(--paper);color:var(--ink);border:0}#letter-password-error{color:#e0b79a;font-size:12px}
