:root{--paper:#f2e9df;--paper-light:#faf6f0;--ink:#2c2623;--muted:#81756e;--rose:#a55055;--rose-dark:#71383d;--line:rgba(68,50,44,.15);--serif:"Noto Serif SC",serif;--sans:"DM Sans",sans-serif;--ease:cubic-bezier(.16,1,.3,1)}
html.is-loading,html.is-loading body{overflow:hidden}.page-loader{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:28px;background:#f2e9df;color:var(--ink);transition:opacity .85s var(--ease),visibility .85s var(--ease)}.page-loader:before{content:"";position:absolute;inset:0;opacity:.24;background:radial-gradient(circle at 22% 18%,rgba(165,80,85,.16),transparent 32%),radial-gradient(circle at 78% 82%,rgba(113,56,61,.12),transparent 30%);pointer-events:none}.page-loader.is-leaving{opacity:0;visibility:hidden}.loader-inner{position:relative;width:min(440px,88vw);text-align:center}.loader-kicker{margin:0 0 42px;color:var(--rose);font:500 9px var(--sans);letter-spacing:.26em}.loader-mark{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px}.loader-mark i{height:1px;background:var(--line);transform:scaleX(0);animation:loader-line 1.2s var(--ease) forwards}.loader-mark i:first-child{transform-origin:right}.loader-mark i:last-child{transform-origin:left}.loader-mark span{font:500 clamp(32px,8vw,48px)/1.35 var(--serif);letter-spacing:-.06em}.loader-status{min-height:24px;margin:40px 0 16px;color:var(--muted);font:400 13px var(--serif)}.loader-track{height:1px;overflow:hidden;background:var(--line)}.loader-track i{display:block;width:100%;height:100%;background:var(--rose);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}.loader-percent{margin:13px 0 0;color:var(--rose);font:500 9px var(--sans);letter-spacing:.18em}.loader-enter{margin-top:28px;border:1px solid rgba(113,56,61,.24);border-radius:99px;background:var(--rose-dark);color:var(--paper-light);padding:13px 22px;cursor:pointer;font:500 11px var(--sans);letter-spacing:.08em;transition:transform .3s var(--ease),background-color .3s var(--ease)}.loader-enter:hover{background:var(--ink);transform:translateY(-2px)}.loader-enter:active{transform:scale(.98)}.loader-enter[hidden]{display:none}@keyframes loader-line{to{transform:scaleX(1)}}
*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);overflow-x:hidden}.grain{position:fixed;inset:0;pointer-events:none;z-index:8;opacity:.19;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E")}.floating-nav{position:fixed;z-index:6;top:20px;left:50%;transform:translateX(-50%);width:min(92%,1120px);display:flex;align-items:center;justify-content:space-between;padding:10px 12px 10px 20px;border-radius:99px;background:rgba(242,233,223,.78);border:1px solid rgba(255,255,255,.6);box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 12px 38px rgba(75,54,47,.08);backdrop-filter:blur(16px)}.monogram{font:600 13px var(--serif);letter-spacing:.16em;color:var(--ink);text-decoration:none}.monogram span{color:var(--rose);margin:0 4px}.nav-date{font-size:10px;letter-spacing:.24em;color:var(--muted)}.sound-toggle{display:flex;align-items:center;gap:9px;border:0;background:#e5d8cc;color:var(--ink);border-radius:99px;padding:9px 13px;cursor:pointer;font:500 10px var(--sans);letter-spacing:.12em}.sound-bars{display:flex;align-items:center;gap:2px;height:10px}.sound-bars i{display:block;width:1px;height:4px;background:var(--rose-dark);transition:transform .6s var(--ease)}.sound-bars i:nth-child(2){height:8px}.sound-toggle[aria-pressed="true"] .sound-bars i{animation:sound .9s var(--ease) infinite alternate}.sound-toggle[aria-pressed="true"] .sound-bars i:nth-child(2){animation-delay:.22s}.sound-toggle[aria-pressed="true"] .sound-bars i:nth-child(3){animation-delay:.44s}@keyframes sound{to{transform:scaleY(1.9)}}
.hero{position:relative;min-height:100dvh;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:7vw;padding:150px max(7vw,28px) 90px;max-width:1500px;margin:auto}.hero-copy{padding-left:4vw}.eyebrow{font:500 10px var(--sans);letter-spacing:.25em;color:var(--rose);margin:0 0 25px}.hero h1,.section-heading h2,.finale h2{font-family:var(--serif);font-weight:500;letter-spacing:-.055em;line-height:1.28;margin:0}.hero h1{font-size:clamp(46px,5vw,78px)}.hero h1 em{font-style:normal;color:var(--rose)}.intro{max-width:455px;margin:36px 0;color:var(--muted);font:400 15px/2 var(--serif)}.primary-cta,.yes-button{display:inline-flex;align-items:center;gap:20px;text-decoration:none;border:0;background:var(--ink);color:var(--paper-light);border-radius:99px;padding:8px 8px 8px 24px;font:500 12px var(--sans);letter-spacing:.08em;cursor:pointer;transition:transform .7s var(--ease),background .7s var(--ease)}.primary-cta:hover,.yes-button:hover{transform:translateY(-3px);background:var(--rose-dark)}.primary-cta:active,.yes-button:active{transform:scale(.98)}.primary-cta i,.yes-button i{display:grid;place-items:center;width:39px;height:39px;border-radius:50%;background:rgba(255,255,255,.12);font-style:normal;font-size:16px;transition:transform .7s var(--ease)}.primary-cta:hover i{transform:translateY(3px)}.hero-art{position:relative;min-height:590px;display:grid;place-items:center}.moon-card{position:relative;z-index:2;width:min(360px,75vw);aspect-ratio:.72;background:#302926;color:#f4ece2;border-radius:180px 180px 24px 24px;padding:42px 38px;box-shadow:0 42px 80px rgba(61,43,38,.19),inset 0 1px rgba(255,255,255,.1);transform:rotate(2.5deg)}.tiny-caption{font-size:8px;letter-spacing:.3em;color:#c4b8ae}.moon{width:170px;height:170px;margin:48px auto 42px;border-radius:50%;background:radial-gradient(circle at 35% 32%,#fffaf1 0 7%,transparent 8%),radial-gradient(circle at 65% 68%,rgba(122,96,80,.14) 0 8%,transparent 9%),#e9d8c6;box-shadow:inset -25px -15px 40px rgba(91,59,48,.16),0 0 55px rgba(231,203,173,.1);animation:float 6s var(--ease) infinite alternate}.moon-card p{font:400 15px/1.9 var(--serif);margin:0}.card-sign{position:absolute;right:28px;bottom:28px;color:#aa9b90;font:italic 11px Georgia,serif}.orbit{position:absolute;border:1px solid rgba(120,77,69,.19);border-radius:50%}.orbit-one{width:510px;height:510px;animation:rotate 30s linear infinite}.orbit-two{width:410px;height:560px;transform:rotate(60deg);border-style:dashed}.stamp{position:absolute;z-index:3;right:3%;bottom:12%;width:85px;height:85px;border:1px solid var(--rose);border-radius:50%;display:grid;place-items:center;text-align:center;color:var(--rose);font:500 8px/1.6 var(--sans);letter-spacing:.18em;transform:rotate(12deg);background:var(--paper)}@keyframes float{to{transform:translateY(-12px) rotate(-1deg)}}@keyframes rotate{to{transform:rotate(360deg)}}.scroll-note{position:absolute;bottom:24px;left:max(7vw,28px);font-size:9px;letter-spacing:.2em;color:var(--muted);display:flex;gap:12px;align-items:center}.scroll-note span{display:block;width:48px;height:1px;background:var(--line)}
.promise-strip{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0;transform:rotate(-1deg);background:#e9ddd2}.marquee{width:max-content;display:flex;align-items:center;gap:34px;animation:marquee 28s linear infinite;color:#71635c;font:400 11px var(--serif);letter-spacing:.16em}.marquee i{width:4px;height:4px;border-radius:50%;background:var(--rose)}@keyframes marquee{to{transform:translateX(-33.333%)}}
.story{padding:150px max(7vw,28px);max-width:1400px;margin:auto}.section-heading{margin-left:8vw;max-width:760px}.section-heading h2,.finale h2{font-size:clamp(34px,4vw,60px)}.chapters{display:grid;grid-template-columns:1.1fr .8fr;gap:110px 7vw;margin-top:110px}.chapter-large{grid-row:span 2}.chapter-offset{margin-top:160px}.photo-frame{position:relative;overflow:hidden;background:#d9c9b9;box-shadow:0 30px 75px rgba(69,50,43,.12),inset 0 1px rgba(255,255,255,.55)}.photo-frame img,.family-image img{width:100%;height:100%;display:block;object-fit:cover;transition:transform 1.2s var(--ease)}.photo-frame:hover img,.family-image:hover img{transform:scale(1.025)}.chapter-large .photo-frame{aspect-ratio:.8;border-radius:220px 220px 22px 22px}.chapter-offset .photo-frame{aspect-ratio:.86;border-radius:20px}.chapter-copy{display:grid;grid-template-columns:52px 1fr;gap:18px;margin-top:27px}.chapter-copy>span{font-size:10px;letter-spacing:.16em;color:var(--rose);padding-top:8px}.chapter-copy h3{font:500 25px var(--serif);margin:0 0 10px}.chapter-copy p{font:400 13px/1.9 var(--serif);color:var(--muted);margin:0;max-width:470px}.chapter-wide{grid-column:2;margin-top:30px}.baby-frame{aspect-ratio:.8;border-radius:180px 180px 18px 18px}.chapter-future{position:relative;grid-column:1/-1;min-height:75dvh;margin-top:45px;overflow:hidden;border-radius:28px;background:#d9c3ad}.family-image{position:absolute;inset:0}.family-image:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(45,36,31,.72),rgba(45,36,31,.04) 62%)}.family-caption{position:relative;z-index:1;align-self:end;padding:64px;color:#f5ede4}.family-caption .chapter-copy{max-width:480px}.family-caption .chapter-copy>span{color:#d9a6a2}.family-caption .chapter-copy h3{font-size:36px}.family-caption .chapter-copy p{color:#e2d6cc}
.letter-section{position:relative;background:#352d29;color:#eee4da;padding:160px max(7vw,28px);display:grid;grid-template-columns:minmax(0,760px) 1fr;gap:8vw;align-items:center}.letter-shell{padding:8px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:8px;transform:rotate(-1deg)}.letter{background:#eee4d8;color:var(--ink);padding:clamp(38px,7vw,90px);box-shadow:inset 0 1px rgba(255,255,255,.7)}.letter-meta{display:flex;justify-content:space-between;border-bottom:1px solid rgba(75,58,50,.18);padding-bottom:18px;margin-bottom:55px;font-size:9px;letter-spacing:.2em;color:var(--muted)}.letter p{font:400 15px/2.25 var(--serif);color:#574b45;margin:0 0 22px}.letter .letter-lead{font-size:20px;color:var(--ink)}.signature{text-align:right;margin-top:50px;color:var(--rose);font:500 22px var(--serif)}.side-note>span{display:inline-block;border:1px solid rgba(255,255,255,.16);border-radius:99px;padding:8px 13px;font-size:8px;letter-spacing:.2em}.side-note p{font:400 22px/1.9 var(--serif);color:#cfc1b5;margin-top:30px}
.finale{min-height:85dvh;padding:140px max(7vw,28px);display:grid;grid-template-columns:1fr .85fr;align-items:center;gap:8vw;max-width:1350px;margin:auto}.finale-copy{padding-left:5vw}.finale h2{margin-bottom:42px}.yes-button{background:var(--rose-dark)}.answer{font:400 13px var(--serif);color:var(--rose);margin-top:22px;opacity:0;transform:translateY(12px);transition:opacity .8s var(--ease),transform .8s var(--ease)}.answer.show{opacity:1;transform:translateY(0)}.rings{position:relative;min-height:420px;display:grid;place-items:center}.rings i{position:absolute;border:1px solid rgba(113,56,61,.25);border-radius:50%;width:310px;height:310px}.rings i:nth-child(2){width:220px;height:220px;border-style:dashed;animation:rotate 22s linear infinite}.rings span{font:300 100px var(--serif);color:var(--rose)}footer{display:flex;justify-content:space-between;align-items:center;padding:30px max(7vw,28px);border-top:1px solid var(--line);font-size:8px;letter-spacing:.18em;color:var(--muted)}.reveal{opacity:0;transform:translateY(44px);filter:blur(5px);transition:opacity 1.1s var(--ease) var(--delay,0s),transform 1.1s var(--ease) var(--delay,0s),filter 1.1s var(--ease) var(--delay,0s)}.reveal.visible{opacity:1;transform:translateY(0);filter:blur(0)}.petal{position:fixed;z-index:7;width:9px;height:14px;border-radius:80% 0 80% 0;background:#b86368;pointer-events:none;animation:petal 2.8s var(--ease) forwards}@keyframes petal{0%{opacity:0;transform:translate3d(0,-10vh,0) rotate(0)}15%{opacity:.8}100%{opacity:0;transform:translate3d(var(--drift),110vh,0) rotate(520deg)}}
@media(max-width:767px){.floating-nav{top:12px}.nav-date{display:none}.hero{grid-template-columns:1fr;padding:120px 20px 70px}.hero-copy{padding-left:0}.hero h1{font-size:43px}.hero-art{min-height:500px}.moon-card{width:280px;padding:32px 28px}.moon{width:135px;height:135px;margin:42px auto}.orbit-one{width:340px;height:340px}.orbit-two{width:280px;height:390px}.stamp{right:0}.scroll-note{display:none}.story{padding:100px 20px}.section-heading{margin-left:0}.chapters{grid-template-columns:1fr;gap:90px;margin-top:70px}.chapter-large,.chapter-offset,.chapter-wide{grid-column:1;grid-row:auto;margin-top:0}.chapter-large .photo-frame,.baby-frame{border-radius:180px 180px 18px 18px}.chapter-future{grid-column:1;min-height:68dvh;margin:0;border-radius:20px}.family-image:after{background:linear-gradient(0deg,rgba(45,36,31,.8),rgba(45,36,31,.02) 70%)}.family-caption{padding:30px 24px}.family-caption .chapter-copy h3{font-size:28px}.letter-section{grid-template-columns:1fr;padding:100px 20px}.side-note{padding:0 14px}.finale{grid-template-columns:1fr;padding:100px 20px}.finale-copy{padding-left:0}.rings{min-height:300px;order:-1}.rings i{width:240px;height:240px}.rings i:nth-child(2){width:170px;height:170px}footer{gap:16px;padding:24px 20px}footer p{text-align:center}}
.page-spread{min-height:100dvh;padding:150px max(7vw,28px)}.memory-index{display:grid;grid-template-columns:.85fr 1.15fr;grid-template-rows:1fr auto;gap:70px 9vw;align-items:center;max-width:1400px;margin:auto}.index-intro h2,.ordinary-heading h2,.future-title h2{font:500 clamp(34px,4vw,61px)/1.42 var(--serif);letter-spacing:-.05em;margin:0}.index-line{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.index-line li{position:relative;left:0;display:grid;grid-template-columns:86px 1fr;align-items:center;gap:24px;padding:26px 0;border-bottom:1px solid var(--line);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:left .7s var(--ease),color .7s var(--ease)}.index-line li:hover,.index-line li:active,.index-line li.is-active{left:10px;color:var(--rose-dark)}.index-line li:focus-visible{outline:1px solid rgba(165,80,85,.45);outline-offset:7px}.index-line time{font:500 11px var(--sans);letter-spacing:.18em;color:var(--rose)}.index-line span{font:400 clamp(17px,2vw,24px) var(--serif)}.index-foot{grid-column:2;margin:0;color:var(--muted);font:400 13px/2 var(--serif);max-width:550px}.ordinary-days{background:#e9ddd2}.ordinary-heading{max-width:850px;margin:0 0 90px 8vw}.day-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr);gap:7vw;align-items:end;max-width:1240px;margin:auto}.day-photo{margin:0}.day-photo-main{padding:8px;border:1px solid rgba(88,63,53,.1);border-radius:34px;background:rgba(255,255,255,.22);box-shadow:inset 0 1px rgba(255,255,255,.62),0 34px 80px rgba(74,53,45,.09)}.day-photo img{display:block;width:100%;aspect-ratio:1.5;object-fit:cover;border-radius:26px}.day-photo figcaption{display:flex;gap:22px;padding:18px 12px 10px;color:var(--muted);font:400 12px var(--serif)}.day-photo figcaption span{color:var(--rose);font-family:var(--sans);letter-spacing:.15em}.day-notes blockquote{margin:0 0 56px;font:400 clamp(24px,2.6vw,38px)/1.65 var(--serif);letter-spacing:-.03em}.day-notes dl{margin:0;border-top:1px solid var(--line)}.day-notes dl div{display:grid;grid-template-columns:64px 1fr;gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}.day-notes dt{font:500 10px var(--sans);letter-spacing:.14em;color:var(--rose)}.day-notes dd{margin:0;color:var(--muted);font:400 12px/1.8 var(--serif)}.future-list{position:relative;background:var(--paper-light);overflow:hidden}.future-title{max-width:840px;margin:0 0 100px 7vw}.wish-list{max-width:1120px;margin:auto;border-top:1px solid var(--line)}.wish-list article{position:relative;left:0;display:grid;grid-template-columns:70px minmax(210px,.75fr) 1fr;gap:32px;align-items:start;padding:34px 0;border-bottom:1px solid var(--line);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:left .7s var(--ease),color .7s var(--ease)}.wish-list article:hover,.wish-list article:active,.wish-list article.is-active{left:12px;color:var(--rose-dark)}.wish-list article:focus-visible{outline:1px solid rgba(165,80,85,.45);outline-offset:7px}.wish-list span{padding-top:7px;color:var(--rose);font:500 10px var(--sans);letter-spacing:.16em}.wish-list h3{margin:0;font:500 24px var(--serif);transition:color .7s var(--ease)}.wish-list p{margin:0;color:var(--muted);font:400 13px/1.95 var(--serif);max-width:510px;transition:color .7s var(--ease)}.wish-list article:hover h3,.wish-list article:hover p,.wish-list article:active h3,.wish-list article:active p,.wish-list article.is-active h3,.wish-list article.is-active p{color:var(--rose-dark)}.future-seal{width:190px;height:190px;margin:90px 8vw 0 auto;border:1px solid rgba(165,80,85,.35);border-radius:50%;display:grid;place-items:center;text-align:center;color:var(--rose);font:500 8px var(--sans);letter-spacing:.22em;transform:rotate(-8deg)}
@media(max-width:767px){.page-spread{min-height:auto;padding:110px 20px}.memory-index{grid-template-columns:1fr;grid-template-rows:auto;gap:60px}.index-foot{grid-column:1}.index-line li{grid-template-columns:68px 1fr}.ordinary-heading,.future-title{margin:0 0 65px}.day-grid{grid-template-columns:1fr;gap:60px}.day-photo img{aspect-ratio:1.08}.day-notes blockquote{margin-bottom:38px}.wish-list article{grid-template-columns:44px 1fr;gap:16px}.wish-list article p{grid-column:2}.future-seal{margin:70px auto 0}}
.baby-chapter{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.55fr);gap:6vw;align-items:end;margin-top:20px}.baby-chapter .baby-frame{aspect-ratio:1.35;border-radius:28px 220px 28px 28px}.baby-chapter .baby-frame img{object-position:center 42%}.baby-chapter .chapter-copy{margin-bottom:42px}.index-photos{grid-column:1/-1;display:grid;grid-template-columns:1.05fr .78fr 1.15fr;gap:22px;align-items:end;margin-top:8px}.index-photos figure{position:relative;margin:0;overflow:hidden;background:#d8c8ba}.index-photos figure:nth-child(1){aspect-ratio:1.18;border-radius:140px 18px 18px 18px}.index-photos figure:nth-child(2){aspect-ratio:.78;border-radius:18px}.index-photos figure:nth-child(3){aspect-ratio:1.05;border-radius:18px 140px 18px 18px}.index-photos img{width:100%;height:100%;display:block;object-fit:cover;transition:transform 1s var(--ease)}.index-photos figure:hover img{transform:scale(1.035)}.index-photos figcaption{position:absolute;left:16px;bottom:14px;padding:7px 10px;background:rgba(242,233,223,.84);border-radius:99px;color:var(--ink);font:500 8px var(--sans);letter-spacing:.16em}.future-photo{max-width:1120px;margin:86px auto 0;padding:8px;border-radius:36px;background:rgba(111,76,62,.06);box-shadow:inset 0 1px rgba(255,255,255,.7)}.future-photo img{width:100%;aspect-ratio:1.72;display:block;object-fit:cover;border-radius:28px}.future-photo figcaption{padding:17px 12px 9px;color:var(--muted);font:400 12px var(--serif)}.future-list .future-seal{margin:-82px 6vw 0 auto;background:rgba(250,246,240,.92);position:relative}
@media(max-width:767px){.index-photos{grid-template-columns:1fr 1fr;gap:12px}.index-photos figure:nth-child(1){grid-column:1/-1;aspect-ratio:1.35;border-radius:100px 16px 16px 16px}.index-photos figure:nth-child(2),.index-photos figure:nth-child(3){aspect-ratio:.82;border-radius:16px}.baby-chapter{grid-column:1;display:block;margin-top:0}.baby-chapter .baby-frame{aspect-ratio:.86;border-radius:180px 180px 18px 18px}.baby-chapter .chapter-copy{margin-bottom:0}.future-photo{margin-top:60px}.future-photo img{aspect-ratio:1.05}.future-list .future-seal{margin:48px auto 0}}
.travel-book{background:#e4d8cd}.travel-page{min-height:100dvh;padding:145px max(7vw,28px);max-width:1400px;margin:auto}.travel-cover{display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.travel-cover h2{max-width:850px;margin:0;font:500 clamp(48px,7vw,104px)/1.18 var(--serif);letter-spacing:-.065em}.travel-cover>p:not(.eyebrow){max-width:520px;margin:45px 0 70px 32vw;color:var(--muted);font:400 15px/2 var(--serif)}.travel-cover>span{align-self:flex-end;border-top:1px solid var(--line);padding-top:14px;color:var(--rose);font:500 9px var(--sans);letter-spacing:.18em}.travel-page-photo{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.55fr);gap:7vw;align-items:center}.travel-page-photo figure{margin:0;padding:8px;border-radius:38px;background:rgba(255,255,255,.26);box-shadow:inset 0 1px rgba(255,255,255,.72),0 38px 90px rgba(72,49,41,.11)}.travel-page-photo figure img{width:100%;height:min(68dvh,760px);display:block;object-fit:cover;border-radius:30px}.travel-page-reverse{grid-template-columns:minmax(300px,.55fr) minmax(0,1.25fr)}.travel-page-reverse figure{grid-column:2}.travel-page-reverse .travel-copy{grid-column:1;grid-row:1}.travel-copy time{display:block;margin-bottom:22px;color:var(--rose);font:500 10px var(--sans);letter-spacing:.2em}.travel-copy h3{margin:0 0 24px;font:500 clamp(40px,5vw,72px)/1.15 var(--serif);letter-spacing:-.055em}.travel-copy p{max-width:440px;margin:0 0 36px;color:var(--muted);font:400 14px/2 var(--serif)}.place-tags{display:flex;flex-wrap:wrap;gap:9px}.place-tags span{padding:8px 12px;border:1px solid var(--line);border-radius:99px;color:#6e6058;font:500 9px var(--sans);letter-spacing:.1em}.travel-page-family figure img{aspect-ratio:1.5;height:auto}.travel-page:nth-child(even){background:rgba(250,246,240,.3)}
@media(max-width:767px){.travel-page{min-height:auto;padding:110px 20px}.travel-cover{min-height:88dvh}.travel-cover h2{font-size:52px}.travel-cover>p:not(.eyebrow){margin:38px 0 62px}.travel-page-photo,.travel-page-reverse{grid-template-columns:1fr;gap:48px}.travel-page-reverse figure,.travel-page-reverse .travel-copy{grid-column:1;grid-row:auto}.travel-page-photo figure img{height:auto;aspect-ratio:1.06}.travel-copy h3{font-size:44px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none;filter:none}}
.index-photos-single{grid-template-columns:1fr}.index-photos-single figure:nth-child(1){aspect-ratio:1.9;border-radius:28px 180px 28px 28px}.index-photos-single img{object-position:center 48%}

/* Narrative order: family milestones -> journeys -> present life -> future. */
.memory-index{grid-template-rows:auto auto;align-content:center}

/* Interactive family travel gallery. */
.place-gallery-figure{position:relative;overflow:hidden}.place-gallery-figure:after{content:"";position:absolute;z-index:1;top:8px;bottom:58px;left:-42%;width:34%;border-radius:30px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.34),transparent);opacity:0;pointer-events:none;transform:translate3d(0,0,0)}.place-gallery-figure.is-switching:after{opacity:1;animation:gallery-shimmer 1.5s var(--ease) infinite}.place-gallery-figure img{opacity:1;transform:scale(1)}.place-gallery-figure img.is-fading-out{animation:gallery-fade-out .78s cubic-bezier(.45,0,.2,1) both}.place-gallery-figure img.is-fading-in{animation:gallery-fade-in 1.4s cubic-bezier(.4,0,.2,1) both}.place-gallery-figure.has-error{border-color:rgba(165,80,85,.28)}.place-gallery-figure figcaption{position:relative;z-index:2;min-height:50px;padding:15px 14px 8px;color:var(--muted);font:400 11px/1.7 var(--serif);letter-spacing:.02em}.place-switcher button{appearance:none;padding:8px 12px;border:1px solid var(--line);border-radius:99px;background:transparent;color:#6e6058;cursor:pointer;font:500 9px var(--sans);letter-spacing:.1em;transition:color .22s ease,border-color .22s ease,background-color .22s ease,transform .16s ease}.place-switcher button:hover,.place-switcher button:focus-visible{border-color:rgba(165,80,85,.55);color:var(--rose-dark);outline:none}.place-switcher button:focus-visible{box-shadow:0 0 0 3px rgba(165,80,85,.12)}.place-switcher button[aria-pressed="true"]{border-color:var(--rose);background:rgba(165,80,85,.09);color:var(--rose-dark)}.place-switcher button:disabled{cursor:wait;opacity:.58}.place-switcher button:active{transform:translateY(1px) scale(.98)}@keyframes gallery-shimmer{to{transform:translate3d(430%,0,0)}}@keyframes gallery-fade-out{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.988)}}@keyframes gallery-fade-in{from{opacity:0;transform:scale(.988)}to{opacity:1;transform:scale(1)}}
.place-switcher button{position:relative;overflow:hidden;background:rgba(255,255,255,.3)}.place-switcher button:before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(90deg,rgba(165,80,85,.14),rgba(113,56,61,.26));pointer-events:none;transform:scaleX(0);transform-origin:left}.place-switcher button[aria-pressed="true"]{background:rgba(255,255,255,.52)}.place-switcher.is-auto-playing button[aria-pressed="true"]:before{animation:gallery-countdown 1.5s linear forwards}@keyframes gallery-countdown{to{transform:scaleX(1)}}
.place-switcher.is-auto-playing.is-manual-hold button[aria-pressed="true"]:before{animation-duration:4s}
.story-timeline{display:flex;flex-direction:column;gap:clamp(90px,10vw,150px);margin-top:105px}
.story-timeline .milestone{position:relative;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.68fr);gap:7vw;align-items:center;padding-top:54px}
.story-timeline .milestone:before{content:"";position:absolute;inset:0 0 auto;height:1px;background:var(--line)}
.story-timeline .milestone .photo-frame{aspect-ratio:1.32;border-radius:28px}
.story-timeline .milestone .chapter-copy{margin:0}
.story-timeline .milestone-meeting{grid-template-columns:minmax(280px,.72fr) minmax(0,1.15fr)}
.meeting-card{position:relative;min-height:520px;overflow:hidden;border:1px solid rgba(165,80,85,.18);border-radius:220px 220px 28px 28px;background:radial-gradient(circle at 50% 35%,rgba(255,255,255,.9),rgba(248,232,220,.54) 34%,transparent 68%),linear-gradient(145deg,#ead8cb,#f7eee6);box-shadow:0 30px 75px rgba(69,50,43,.1),inset 0 1px rgba(255,255,255,.65);display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--rose-dark)}
.meeting-card:before,.meeting-card:after{content:"";position:absolute;border:1px solid rgba(165,80,85,.18);border-radius:50%}
.meeting-card:before{width:300px;height:300px}
.meeting-card:after{width:370px;height:370px}
.meeting-card span,.meeting-card small{position:relative;z-index:1;font:500 9px var(--sans);letter-spacing:.28em}
.meeting-card strong{position:relative;z-index:1;font:400 clamp(90px,10vw,150px)/.9 var(--serif);letter-spacing:-.08em;margin:20px 0 24px}
.meeting-card small{letter-spacing:.2em;color:var(--muted)}
.story-timeline .milestone-start .photo-frame{aspect-ratio:1.08;border-radius:220px 220px 28px 28px}
.story-timeline .milestone-reverse .photo-frame{grid-column:2;grid-row:1;aspect-ratio:1.18}
.story-timeline .milestone-reverse .chapter-copy{grid-column:1;grid-row:1}
.story-timeline .milestone-baby .photo-frame{aspect-ratio:1.45;border-radius:28px 200px 28px 28px}
.story-timeline .milestone-baby .photo-frame img{object-position:center 42%}
.day-photo-pair{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(180px,.55fr);gap:22px;align-items:end}
.day-photo-pair .day-photo-main img{aspect-ratio:1.24}
.day-photo-small{margin:0 0 34px;padding:7px;border:1px solid rgba(88,63,53,.1);border-radius:30px;background:rgba(255,255,255,.2);box-shadow:inset 0 1px rgba(255,255,255,.62),0 26px 64px rgba(74,53,45,.08)}
.day-photo-small img{aspect-ratio:.82;border-radius:23px}
.day-photo-small figcaption{display:block;line-height:1.8}
.day-photo-small figcaption span{display:block;margin-bottom:5px}

@media(max-width:767px){.story-timeline{gap:82px;margin-top:70px}.story-timeline .milestone,.story-timeline .milestone-meeting{grid-template-columns:1fr;gap:26px;padding-top:34px}.meeting-card{min-height:390px;border-radius:160px 160px 20px 20px}.meeting-card:before{width:230px;height:230px}.meeting-card:after{width:290px;height:290px}.story-timeline .milestone .photo-frame,.story-timeline .milestone-reverse .photo-frame,.story-timeline .milestone-baby .photo-frame{grid-column:1;grid-row:auto;aspect-ratio:1.06;border-radius:22px}.story-timeline .milestone-start .photo-frame{aspect-ratio:.9;border-radius:160px 160px 20px 20px}.story-timeline .milestone-reverse .chapter-copy{grid-column:1;grid-row:auto}.story-timeline .milestone .chapter-copy{margin:0}.day-photo-pair{grid-template-columns:1fr;gap:18px}.day-photo-pair .day-photo-main img,.day-photo-small img{aspect-ratio:1.08}.day-photo-small{margin:0}.day-photo-small figcaption{display:flex}.day-photo-small figcaption span{display:inline;margin:0}}

/* Exact dates need a little more room in the timeline index. */
.index-line li{grid-template-columns:105px 1fr}
@media(max-width:767px){.index-line li{grid-template-columns:90px 1fr;gap:14px}}

/* Touch/WebView fallback: animate layout offset instead of transformed grid items. */
.index-line li{left:auto;margin-left:0;transition:margin-left .7s var(--ease),color .7s var(--ease)}
.index-line li:hover,.index-line li:active,.index-line li.is-active{left:auto;margin-left:10px;color:#71383d}
.wish-list article{left:auto;margin-left:0;transition:margin-left .7s var(--ease),color .7s var(--ease)}
.wish-list article:hover,.wish-list article:active,.wish-list article.is-active{left:auto;margin-left:12px;color:#71383d}
.wish-list article:hover h3,.wish-list article:hover p,.wish-list article:active h3,.wish-list article:active p,.wish-list article.is-active h3,.wish-list article.is-active p{color:#71383d}
