:root{color:#382831;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--paper:#f8f4ee;--ink:#382831;--plum:#5b3347;--rose:#bd817b;--gold:#a88858;--line:#d9cdbd;--serif:"Playfair Display",Georgia,serif;--sans:"DM Sans",Arial,sans-serif;font-optical-sizing:auto;background:#f8f4ee;font-family:DM Sans,sans-serif;font-weight:400}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{background:var(--paper);min-width:320px;margin:0}a{color:inherit}a:focus-visible{outline:2px solid var(--plum);outline-offset:5px}.skip-link{z-index:20;background:var(--ink);color:var(--paper);padding:12px 18px;position:fixed;top:10px;left:10px;transform:translateY(-160%)}.skip-link:focus{transform:none}.site-header{border-bottom:1px solid var(--line);z-index:2;justify-content:space-between;align-items:center;height:86px;padding:0 7.2%;display:flex;position:relative}.wordmark{font:500 17px var(--serif);letter-spacing:.03em;white-space:nowrap;text-decoration:none}.wordmark span{font:12px var(--sans);color:var(--gold);margin-left:7px}.site-header nav{gap:42px;display:flex}.site-header nav a,.header-age{letter-spacing:.15em;text-transform:uppercase;font-size:10px;text-decoration:none}.site-header nav a{color:#76676c;transition:color .2s}.site-header nav a:hover,.back-top:hover{color:var(--rose)}.header-age{color:var(--plum);border:1px solid var(--gold);padding:11px 16px}.hero{grid-template-columns:1fr 1fr;align-items:center;min-height:min(780px,100svh - 86px);padding:52px 13% 82px;display:grid;position:relative;overflow:hidden}.hero-copy{z-index:1;padding-bottom:25px;position:relative}.eyebrow{text-transform:uppercase;color:var(--gold);letter-spacing:.23em;font-size:9px;font-weight:600}.hero .eyebrow{align-items:center;gap:13px;display:flex}.hero .eyebrow span{background:var(--gold);width:25px;height:1px}h1,h2,h3,p{margin-top:0}.hero h1{font:400 clamp(48px,6.2vw,83px)/1.08 var(--serif);letter-spacing:-.045em;color:var(--plum);margin:33px 0 22px}.hero h1 span{display:block}.hero-deck{font:14px/1.9 var(--sans);color:#796970}.round-link{text-transform:uppercase;letter-spacing:.14em;color:var(--plum);border-bottom:1px solid var(--gold);align-items:center;gap:28px;margin-top:30px;padding:0 0 11px;font-size:9px;text-decoration:none;display:inline-flex}.round-link span:last-child{color:var(--gold);font-size:17px}.hero-signature{font:italic 15px var(--serif);color:#8b747c;margin-top:30px}.hero-signature span{color:var(--rose);font-size:19px}.hero-visual{justify-self:end;width:min(100%,390px);margin:0 12px 10px 0;position:relative}.portrait-frame{z-index:1;background:#eee4d8;padding:15px 15px 48px;position:relative;transform:rotate(2deg);box-shadow:0 20px 45px #614c3b1b}.portrait-art{background:linear-gradient(#eadbc9 0%,#dfc5b5 55%,#c6a39b 100%);height:clamp(340px,42vw,500px);position:relative;overflow:hidden}.portrait-sun{aspect-ratio:1;background:#f2e4c4;border-radius:50%;width:32%;position:absolute;top:17%;left:34%;box-shadow:0 0 55px #f3e5cb9c}.portrait-hill{border-radius:50%;width:140%;height:70%;position:absolute;bottom:-29%}.portrait-hill--back{background:#ac8880;left:-40%;transform:rotate(-17deg)}.portrait-hill--front{background:#876a70;bottom:-40%;right:-45%;transform:rotate(17deg)}.portrait-placeholder{letter-spacing:.2em;text-transform:uppercase;text-align:center;color:#614c52;font-size:10px;line-height:1.8;position:absolute;top:45%;left:0;right:0}.frame-caption{text-align:center;font:italic 13px var(--serif);color:#6f5961;position:absolute;bottom:13px;left:0;right:0}.hero-orbit{border:1px solid #c7ad85a1;border-radius:50%;width:116%;height:68%;position:absolute;top:17%;left:-8%;transform:rotate(-38deg)}.hero-orbit--two{border-color:#ceb99570;width:128%;height:75%;top:14%;left:-14%;transform:rotate(42deg)}.hero-star{z-index:2;color:var(--gold);font-size:34px;position:absolute;top:8%;right:-14%}.vertical-note{writing-mode:vertical-rl;text-transform:uppercase;letter-spacing:.22em;color:#8d7773;font-size:8px;position:absolute;top:43%;right:-14%}.hero-bottom{border-top:1px solid var(--line);color:#978985;letter-spacing:.18em;justify-content:space-between;padding-top:12px;font-size:8px;display:flex;position:absolute;bottom:25px;left:7.2%;right:7.2%}.section-pad{padding:120px max(10%,50vw - 560px)}.story{background:#eee6dc;grid-template-columns:1fr 2fr;gap:60px;min-height:590px;display:grid;position:relative;overflow:hidden}.section-kicker{color:var(--gold);text-transform:uppercase;letter-spacing:.18em;align-items:center;gap:16px;font-size:9px;display:flex}.story-body{max-width:590px}.story-body .eyebrow{margin-bottom:26px}.story h2,.memories h2,.birthday-note h2{font:400 clamp(42px,5.4vw,68px)/1.15 var(--serif);letter-spacing:-.035em;color:var(--plum);margin-bottom:26px}.story h2 em,.memories h2 em,.birthday-note h2 em{color:var(--rose);font-weight:400}.story-copy{max-width:450px;font:15px/2 var(--sans);color:#75656a}.story-small{font:italic 17px var(--serif);color:#826d71;margin-top:30px}.story-small span{color:var(--plum)}.story-flower{color:#b7957450;font-size:200px;position:absolute;bottom:-83px;right:3%}.memories{padding-top:116px;padding-bottom:130px}.memories-heading{text-align:center;max-width:610px;margin:0 auto 54px}.memories-heading .section-kicker{justify-content:center;margin-bottom:45px}.memories-heading .eyebrow{margin-bottom:15px}.memories h2{margin-bottom:15px;font-size:clamp(38px,4.6vw,58px)}.memories-heading>p:last-child{font:13px/1.8 var(--sans);color:#86777a}.memory-grid{grid-template-columns:repeat(3,1fr);gap:30px;display:grid}.memory-card{min-width:0}.memory-card:nth-child(2){margin-top:50px}.memory-photo{text-align:center;background:#e8dcd1;place-content:center;height:320px;display:grid;position:relative;overflow:hidden}.memory-card--1 .memory-photo{background:linear-gradient(150deg,#e9d9c9,#d1b8a9)}.memory-card--2 .memory-photo{background:linear-gradient(145deg,#d8d8cd,#b4b5a8)}.memory-card--3 .memory-photo{background:linear-gradient(150deg,#e5d3d0,#c7a6a5)}.memory-plus{color:#806d66;font:300 36px var(--sans)}.memory-hint{color:#776867;text-transform:uppercase;letter-spacing:.17em;font-size:8px}.memory-card h3{font:400 22px var(--serif);color:var(--plum);margin:20px 0 5px}.memory-card p{font:11px var(--sans);color:#978785}.birthday-note{color:var(--paper);text-align:center;background:#5b3347;padding-top:115px;padding-bottom:110px;position:relative;overflow:hidden}.birthday-note .section-kicker{color:#dfc59a;justify-content:center;margin-bottom:48px}.birthday-note .section-kicker span:first-child,.birthday-note .eyebrow{color:#d8b98c}.birthday-note h2{color:#fff8ef;margin:18px 0 22px}.birthday-note h2 em{color:#e2b8ae}.note-copy{font:14px/2 var(--sans);color:#eadfdd;max-width:510px;margin:0 auto}.note-signoff{font:italic 17px var(--serif);color:#eadfdd;margin:30px 0 0}.note-signoff span{color:#fff8ef}.note-star,.note-heart{color:#d2b68455;position:absolute}.note-star{font-size:155px;top:10%;left:7%}.note-heart{font-size:70px;bottom:7%;right:9%}.site-footer{background:#f2ece4;justify-content:space-between;align-items:center;min-height:100px;padding:22px 7.2%;display:flex}.site-footer p,.back-top{color:#887a78;font-size:10px}.site-footer p{margin:0}.back-top{text-decoration:none}.is-visible{visibility:visible}@media (width<=900px){.site-header{height:76px;padding:0 5%}.site-header nav{gap:20px}.site-header nav a{font-size:9px}.hero{grid-template-columns:1.05fr .95fr;padding:48px 8% 82px}.hero-visual{width:88%;margin-right:12px}.portrait-art{height:390px}.section-pad{padding:90px 8%}.memory-grid{gap:18px}.memory-photo{height:260px}.story{grid-template-columns:.65fr 1.5fr;gap:35px}}@media (width<=620px){html{scroll-padding-top:70px}.site-header{height:68px;padding:0 20px}.wordmark{font-size:15px}.site-header nav{display:none}.header-age{padding:9px 11px;font-size:8px}.hero{flex-direction:column;align-items:stretch;min-height:auto;padding:54px 26px 74px;display:flex}.hero-copy{padding-bottom:0}.hero h1{margin:25px 0 16px;font-size:clamp(48px,13vw,70px)}.hero-deck{font-size:12px}.round-link{margin-top:23px}.hero-signature{margin:20px 0 27px}.hero-visual{align-self:center;width:75%;max-width:310px;margin:5px 16px 26px 0}.portrait-frame{padding:10px 10px 40px}.portrait-art{height:clamp(280px,89vw,390px)}.frame-caption{font-size:12px;bottom:10px}.hero-star{font-size:27px;right:-13%}.vertical-note{font-size:7px;right:-15%}.hero-bottom{font-size:6px;bottom:20px;left:26px;right:26px}.section-pad{padding:76px 26px}.story{min-height:0;display:block}.story .section-kicker{margin-bottom:48px}.story h2{font-size:48px}.story-copy{font-size:13px}.story-flower{font-size:150px;bottom:-65px;right:-4%}.memories-heading{margin-bottom:34px}.memories-heading .section-kicker{margin-bottom:36px}.memory-grid{grid-template-columns:1fr;gap:30px}.memory-card:nth-child(2){margin-top:0}.memory-photo{height:clamp(260px,82vw,370px)}.memory-card h3{margin-top:14px;font-size:21px}.birthday-note{padding-top:82px;padding-bottom:78px}.birthday-note .section-kicker{margin-bottom:38px}.birthday-note h2{font-size:46px}.note-copy{font-size:12px}.note-star{font-size:100px;top:4%;left:-8%}.note-heart{font-size:50px;bottom:3%;right:4%}.site-footer{flex-wrap:wrap;gap:14px;padding:24px 22px}.site-footer p{text-align:center;order:3;width:100%}.back-top{font-size:9px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}#app{width:100%;max-width:none;min-height:100svh;text-align:initial;border:0;margin:0;display:block}.royal-invitation{color:#35252e;background:radial-gradient(at 15% 18%,#875467 0%,#0000 35%),radial-gradient(at 92% 86%,#573149 0%,#0000 37%),#3f2534;place-items:center;min-height:100svh;padding:clamp(18px,4vw,54px);display:grid;overflow:hidden}.invitation-paper{text-align:center;isolation:isolate;background:radial-gradient(at 50% 14%,#fffdf6 0%,#f3ebdd 72%,#efe4d3 100%);flex-direction:column;align-items:center;width:min(100%,850px);min-height:min(800px,100svh - 64px);padding:40px 48px 26px;display:flex;position:relative;box-shadow:0 24px 80px #21101c66}.invitation-paper:before,.invitation-paper:after{content:"";pointer-events:none;z-index:-1;border:1px solid #c9a66b;position:absolute;inset:10px}.invitation-paper:after{border-color:#c9a66b66;inset:15px}.invitation-frame{pointer-events:none;border:1px solid #6d263f22;position:absolute;inset:25px}.invitation-topline{color:#90785d;font:500 8px/1 var(--sans,Arial,sans-serif);letter-spacing:.2em;justify-content:space-between;align-items:center;display:flex;position:absolute;top:44px;left:58px;right:58px}.topline-star{color:#bd9c65;font-size:13px}.invitation-crest{color:#a88450;width:54px;height:48px;margin-top:56px}.invitation-crest svg{fill:currentColor;width:100%;height:100%}.invitation-kicker{color:#9c7751;text-transform:uppercase;font:500 9px/1.4 var(--sans,Arial,sans-serif);letter-spacing:.28em;margin:17px 0 0}.invitation-paper h1{color:#6d263f;font:400 clamp(39px,6.1vw,68px)/1.07 var(--serif,Georgia,serif);letter-spacing:-.035em;margin:14px 0 0}.invitation-paper h1 em{color:#9c6874;font-weight:400}.invitation-rule{color:#b3945d;align-items:center;gap:12px;width:min(260px,68%);margin:18px auto 0;display:flex}.invitation-rule span{background:#c9a66b8c;flex:1;height:1px}.invitation-rule b{font-size:13px;font-weight:400}.invitation-address{color:#7d665b;font:italic 16px var(--serif,Georgia,serif);margin:13px 0 0}.invitation-address span{color:#6d263f}.invitation-copy{color:#74665f;max-width:390px;font:13px/1.8 var(--sans,Arial,sans-serif);margin:10px 0 0}.invitation-date{color:#8a735b;font:500 9px/1.5 var(--sans,Arial,sans-serif);letter-spacing:.15em;text-transform:uppercase;margin:16px 0 0}.invitation-date span{color:#6d263f;font:400 20px/1.4 var(--serif,Georgia,serif);letter-spacing:.02em;text-transform:none;margin-top:5px;display:block}.wax-seal{color:#efd5a0;background:radial-gradient(circle at 35% 30%,#aa5264,#76253e 70%);border-radius:48% 52%;place-items:center;width:56px;height:56px;margin:13px 0 12px;display:grid;position:relative;transform:rotate(-6deg);box-shadow:0 4px 6px #3d1b2b40,inset 0 0 0 2px #c17d7f,inset 0 0 0 4px #7d2a43}.wax-seal span{font:italic 23px var(--serif,Georgia,serif);text-shadow:0 1px 2px #3b1225}.wax-seal i{color:#e4c78d;font:normal 8px var(--sans,Arial,sans-serif);position:absolute;top:5px;right:5px}.enter-button{color:#fff9ed;cursor:pointer;min-width:210px;min-height:46px;font:500 9px/1 var(--sans,Arial,sans-serif);letter-spacing:.2em;text-transform:uppercase;background:#6d263f;border:1px solid #c9a66b;justify-content:center;align-items:center;gap:19px;padding:0 21px;transition:background-color .26s,transform .26s,box-shadow .26s;display:inline-flex}.enter-button:hover{background:#542032;transform:translateY(-1px);box-shadow:0 5px 18px #6d263f33}.enter-button:focus-visible{outline-offset:4px;outline:3px solid #a77f48}.enter-arrow{color:#e5cd9d;font-size:16px;transition:transform .26s}.enter-button:hover .enter-arrow{transform:translate(4px)}.entry-status{color:#826b57;min-height:18px;font:italic 12px var(--serif,Georgia,serif);margin:8px 0 0}.invitation-footer{color:#9a8468;width:calc(100% - 36px);font:500 7px/1.2 var(--sans,Arial,sans-serif);letter-spacing:.19em;border-top:1px solid #c9a66b66;justify-content:space-between;margin-top:auto;padding-top:11px;display:flex}.invitation-paper .skip-link{z-index:4}#celebration[hidden],#invitation[hidden]{display:none!important}@media (width<=600px){.royal-invitation{min-height:100svh;padding:12px}.invitation-paper{min-height:calc(100svh - 24px);padding:30px 27px 22px}.invitation-paper:before{inset:7px}.invitation-paper:after{inset:12px}.invitation-frame{inset:19px}.invitation-topline{letter-spacing:.13em;font-size:6px;top:33px;left:33px;right:33px}.topline-star{font-size:10px}.invitation-crest{width:44px;height:39px;margin-top:70px}.invitation-kicker{margin-top:14px;font-size:8px}.invitation-paper h1{margin-top:13px;font-size:clamp(38px,11vw,56px)}.invitation-rule{margin-top:15px}.invitation-address{font-size:15px}.invitation-copy{max-width:330px;font-size:12px;line-height:1.7}.invitation-date{margin-top:12px}.invitation-date span{font-size:18px}.wax-seal{width:50px;height:50px;margin:12px 0}.enter-button{min-width:205px;min-height:48px}.invitation-footer{width:calc(100% - 28px);font-size:6px}}@media (height<=700px) and (width>=601px){.royal-invitation{padding:18px}.invitation-paper{min-height:calc(100svh - 36px);padding-top:24px;padding-bottom:18px}.invitation-crest{width:42px;height:38px;margin-top:33px}.invitation-kicker{margin-top:10px}.invitation-paper h1{margin-top:8px;font-size:52px}.invitation-rule{margin-top:10px}.invitation-copy{margin-top:6px}.invitation-date{margin-top:9px}.wax-seal{width:45px;height:45px;margin:8px 0}.enter-button{min-height:40px}.entry-status{min-height:11px;margin-top:4px}}@media (prefers-reduced-motion:reduce){.royal-invitation *,#celebration *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}:root{--paper:#f3ebdd;--burgundy:#6d263f;--lavender:#c9b5d9;--champagne:#c9a66b;--ink:#24202a;--serif:"Cormorant Garamond","DM Serif Display",Georgia,serif;--sans:"Manrope","DM Sans",Arial,sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}#celebration[hidden]{display:none!important}html{scroll-padding-top:90px}body{background:var(--paper);color:var(--ink);font-family:var(--sans)}.chapter-header{z-index:12;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f3ebdded;border-bottom:1px solid #c9a66b66;justify-content:space-between;align-items:center;gap:30px;height:74px;padding:0 clamp(18px,5vw,72px);display:flex;position:sticky;top:0}.chapter-header .wordmark,.celebration-footer>a:first-child{font:500 17px var(--serif);color:var(--burgundy);white-space:nowrap;text-decoration:none}.wordmark span,.celebration-footer span{color:var(--champagne)}.chapter-nav{align-items:center;gap:clamp(12px,2.1vw,30px);display:flex}.chapter-nav a{color:#806b67;font:500 8px var(--sans);letter-spacing:.08em;white-space:nowrap;padding:12px 0;text-decoration:none;transition:color .26s}.chapter-nav a:hover,.chapter-nav a:first-child{color:var(--burgundy)}.chapter-nav a span{text-transform:uppercase;margin-left:3px}.skip-link{z-index:20}.chapter{scroll-margin-top:74px;position:relative;overflow:hidden}.chapter-number{color:#a48151;font:500 8px var(--sans);letter-spacing:.17em;text-transform:uppercase}.eyebrow{color:#a48151;font:500 9px var(--sans);letter-spacing:.21em;text-transform:uppercase}.chapter h2,.chapter h1{font-family:var(--serif);letter-spacing:-.035em;font-weight:400}.chapter h2 em,.chapter h1 em{color:#ad7880;font-weight:400}.text-link,.back-to-top{color:var(--burgundy);text-transform:uppercase;font:500 9px var(--sans);letter-spacing:.15em;border-bottom:1px solid var(--champagne);align-items:center;gap:22px;padding:0 0 10px;text-decoration:none;display:inline-flex}.text-link span{color:var(--champagne);font-size:16px}.hero-chapter{background:radial-gradient(at 80% 53%,#e5d6d2 0%,#0000 42%),linear-gradient(115deg,#f8f4ec,#f1e7d9);grid-template-columns:1fr 1fr;align-items:center;gap:30px;min-height:min(770px,100svh - 74px);padding:80px max(8%,50vw - 620px) 86px;display:grid}.hero-chapter-copy{z-index:2;position:relative}.hero-chapter-copy .eyebrow{align-items:center;gap:12px;display:flex}.hero-chapter-copy .eyebrow span{background:var(--champagne);width:24px;height:1px}.hero-chapter-copy .chapter-number{margin:38px 0 24px}.hero-chapter h1{color:var(--burgundy);margin:0 0 22px;font-size:clamp(66px,9vw,126px);line-height:.9}.hero-chapter h1 em{font-size:clamp(55px,7.4vw,98px)}.hero-chapter-message{color:#76656b;max-width:370px;font:14px/1.9 var(--sans);margin:0 0 28px}.castle-scene{isolation:isolate;place-items:end center;height:min(520px,68vw);min-height:350px;display:grid;position:relative}.castle-scene:after{content:"";z-index:-1;filter:blur(12px);background:#7d53611b;border-radius:50%;width:90%;height:30px;position:absolute;bottom:32px}.castle-sun{aspect-ratio:1;background:radial-gradient(circle,#faeac7 0%,#f3dfc288 60%,#0000 72%);border-radius:50%;width:220px;position:absolute;top:6%;right:12%}.scene-star{color:#bb9760;position:absolute}.scene-star--a{font-size:22px;top:17%;right:13%}.scene-star--b{font-size:15px;top:32%;left:20%}.castle-drawing{filter:drop-shadow(0 15px 17px #55334519);width:min(100%,590px);height:95%;overflow:visible}.castle-line{fill:none;stroke:#7d4f5e;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.castle-fill{fill:#c8a8a3}.scene-caption{writing-mode:vertical-rl;color:#8b7670;font:italic 12px var(--serif);position:absolute;top:50%;right:-15px}.hero-bottom{color:#998879;font:500 7px var(--sans);letter-spacing:.17em;border-top:1px solid #c9a66b5c;justify-content:space-between;padding-top:11px;display:flex;position:absolute;bottom:23px;left:7%;right:7%}.story-chapter{background:#fbf8f2;padding:110px max(8%,50vw - 580px) 130px}.section-heading{text-align:center;max-width:680px;margin:0 auto 85px}.section-heading .chapter-number{margin-bottom:28px}.section-heading .eyebrow{margin-bottom:15px}.section-heading h2{color:var(--burgundy);margin:0 0 18px;font-size:clamp(48px,6vw,76px);line-height:.99}.section-heading>p:last-child{color:#786a6a;max-width:540px;font:13px/1.8 var(--sans);margin:0 auto}.timeline-block{max-width:990px;margin:0 auto 105px}.section-kicker{color:#9a7954;font:500 9px var(--sans);letter-spacing:.18em;text-transform:uppercase;align-items:center;gap:14px;display:flex}.section-kicker span:first-child{color:#bb9b6d}.timeline-list{grid-template-columns:repeat(4,1fr);gap:28px;margin:35px 0 0;padding:0;display:grid;position:relative}.timeline-list:before{content:"";background:#c9a66b91;height:1px;position:absolute;top:6px;left:7px;right:7px}.timeline-entry{padding:25px 6px 0 0;position:relative}.timeline-dot{background:var(--paper);width:12px;height:12px;box-shadow:inset 0 0 0 3px var(--paper);border:1px solid #b58f55;border-radius:50%;position:absolute;top:0;left:0}.timeline-dot:after{content:"";background:#b58f55;border-radius:50%;position:absolute;inset:3px}.timeline-date{color:#a37d52;font:500 8px var(--sans);letter-spacing:.1em;text-transform:uppercase;margin:0 0 10px}.timeline-entry h3{color:var(--burgundy);font:400 20px var(--serif);margin:0 0 7px}.timeline-entry p:last-child{color:#827776;font:11px/1.7 var(--sans);margin:0}.gallery-block{max-width:1100px;margin:auto}.gallery-intro{justify-content:space-between;align-items:center;gap:30px;margin-bottom:25px;display:flex}.gallery-intro>p{color:#827776;max-width:380px;font:11px/1.7 var(--sans);text-align:right;margin:0}.photo-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.photo-card{min-width:0;margin:0}.photo-placeholder,.photo-card img{aspect-ratio:4/5;object-fit:cover;color:#8f7774;background:linear-gradient(155deg,#e8ddd0,#d9c5bd);flex-direction:column;justify-content:center;align-items:center;gap:9px;width:100%;display:flex}.photo-card--2 .photo-placeholder,.photo-card--2 img{background:linear-gradient(155deg,#e8e0d6,#cecbbd)}.photo-card--3 .photo-placeholder,.photo-card--3 img{background:linear-gradient(155deg,#ead9d7,#d2b8b5)}.photo-card--0 .photo-placeholder,.photo-card--0 img{background:linear-gradient(155deg,#eee5d9,#d8c6b1)}.photo-placeholder span{font:italic 33px var(--serif);color:#ad8c70}.photo-card:nth-child(4n+2){padding-top:24px}.photo-card:nth-child(4n+3){padding-top:48px}.photo-card:nth-child(4n+4){padding-top:16px}.photo-card figcaption{flex-direction:column;gap:5px;padding:10px 2px 0;display:flex}.photo-card figcaption span:first-child{color:var(--burgundy);font:400 15px var(--serif)}.photo-card figcaption span:last-child{color:#978984;font:9px var(--sans)}.letter-chapter{min-height:760px;color:var(--paper);background:radial-gradient(at 50% 40%,#543344,#302431 80%);place-items:center;padding:100px 20px 120px;display:grid}.letter-side{writing-mode:vertical-rl;color:#dbc290;font:500 7px var(--sans);letter-spacing:.2em;align-items:center;gap:14px;display:flex;position:absolute;top:50%;left:35px;transform:translateY(-50%)}.letter-side-star{font-size:18px}.letter-wrap{z-index:1;text-align:center;width:min(100%,750px);position:relative}.letter-wrap>.chapter-number{color:#d5b77e;margin-bottom:18px}.letter-wrap>.eyebrow{color:#d1b481}.letter-paper{color:#44363a;text-align:left;background:radial-gradient(at 50% 10%,#fffdf5,#f1e6d4);margin-top:37px;padding:60px clamp(26px,8vw,95px) 55px;position:relative;box-shadow:0 22px 70px #160f1966}.letter-paper:before{content:"";pointer-events:none;border:1px solid #c9a66b88;position:absolute;inset:12px}.letter-flourish{text-align:center;color:#b0925e;font-size:20px;display:block}.letter-paper h2{text-align:center;color:var(--burgundy);margin:13px 0 27px;font-size:clamp(40px,5.2vw,60px)}.letter-salutation{color:#6d263f;font:italic 19px var(--serif)}.letter-paragraph{color:#62565a;font:13px/2 var(--sans)}.letter-signoff{text-align:right;color:#795d62;font:italic 17px var(--serif);margin:25px 0 0}.finale-chapter{text-align:center;min-height:850px;color:var(--paper);background:radial-gradient(at 50% 30%,#695679,#3b3049 70%,#292431);padding:110px 24px 90px}.finale-copy{z-index:1;position:relative}.finale-copy .chapter-number{color:#dac48f}.finale-copy .eyebrow{color:#d6bf8e}.finale-chapter h2{color:#fff9ed;margin:13px 0;font-size:clamp(45px,6vw,70px)}.finale-intro{color:#ded0d5;font:13px var(--sans)}.cake-wrap{width:min(100%,440px);min-height:385px;margin:35px auto 0;position:relative}.cake-scene{width:320px;max-width:100%;height:275px;margin:0 auto;position:relative}.cake-plate{background:linear-gradient(#e7d8bf,#b79771);border-radius:50%;height:21px;position:absolute;bottom:16px;left:5%;right:5%;box-shadow:0 8px 17px #20182966}.cake-layer{z-index:1;border-radius:12px 12px 17px 17px;position:absolute;left:16%;right:16%;box-shadow:inset 0 -8px #6d263f17,0 7px 12px #20182920}.cake-layer--bottom{background:linear-gradient(90deg,#d3a3a2,#efd0c0 50%,#d49da2);height:78px;bottom:39px}.cake-layer--top{background:linear-gradient(90deg,#ecd8c8,#fff0dc 48%,#e5cbb8);height:68px;bottom:110px;left:22%;right:22%}.cake-top{z-index:2;background:#f8e8d2;border-radius:50%;height:21px;position:absolute;bottom:168px;left:22%;right:22%;box-shadow:0 3px #c9978c}.cake-candle{z-index:4;cursor:pointer;background:0 0;border:0;width:44px;height:124px;padding:0;position:absolute;top:32px}.cake-candle:first-of-type{left:22%}.cake-candle:nth-of-type(2){left:calc(50% - 22px)}.cake-candle:nth-of-type(3){right:22%}.candle-flame{filter:drop-shadow(0 0 7px #f2c97d99);background:radial-gradient(at 60% 70%,#fff2ba 0 27%,#e6a85e 30% 65%,#c76c5e 70%);border-radius:70% 30% 60% 40%;width:14px;height:22px;transition:opacity .26s,transform .26s;position:absolute;top:0;left:15px;transform:rotate(45deg)}.candle-wick{background:#514148;width:2px;height:9px;position:absolute;top:20px;left:21px}.candle-stick{background:repeating-linear-gradient(135deg,#f8eee2 0 5px,#bf7881 5px 9px);border-radius:3px;width:12px;height:58px;position:absolute;top:27px;left:16px}.cake-candle.is-out .candle-flame{opacity:0;transform:translateY(-14px)scale(.2)}.candle-help{color:#ddd1d5;font:italic 12px var(--serif);margin:0 0 14px}.cake-wrap>.secondary-button{color:#f4e7cf;border-color:#d5bc88}.birthday-message{z-index:1;color:#3f3040;background:#f3ebdd;border:1px solid #d2bd8e99;max-width:490px;margin:22px auto 0;padding:23px 25px;position:relative}.birthday-message .eyebrow{color:#9c794e;margin:0 0 9px;font-size:7px}.birthday-message>p:last-child{font:italic 17px/1.7 var(--serif);margin:0}.message-ornament{color:#b79561;margin-bottom:10px;display:block}.finale-status{color:#e0d2da;min-height:20px;font:italic 12px var(--serif);margin:14px 0 0}.confetti-layer{z-index:3;pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti-piece{background:var(--confetti-color);width:7px;height:13px;animation:2.21s ease-out forwards confetti-fall;position:absolute;top:48%;left:50%}.back-to-top{color:#f0dbb0;border-color:#c9a66b;margin-top:33px}.celebration-footer{background:#f3ebdd;justify-content:space-between;align-items:center;gap:18px;min-height:92px;padding:20px clamp(18px,5vw,72px);display:flex}.celebration-footer>a:first-child{font-size:15px}.celebration-footer>a:last-child{color:#806b67;font:500 8px var(--sans);letter-spacing:.1em;text-transform:uppercase;text-decoration:none}.celebration-footer p{color:#8b7c78;font:italic 12px var(--serif);margin:0}@keyframes confetti-fall{0%{opacity:1;transform:translate(0,0)rotate(0)}to{transform:translate3d(var(--confetti-x),220px,0) rotate(var(--confetti-turn));opacity:0}}.cake-candle:focus-visible{outline-offset:3px;outline:3px solid #a48151}@media (width<=900px){.chapter-header{gap:15px;padding:0 20px}.chapter-header .wordmark{font-size:14px}.chapter-nav{gap:12px}.chapter-nav a{font-size:7px}.chapter-nav a span{margin-left:2px}.hero-chapter{gap:8px;padding:60px 7% 75px}.castle-scene{min-height:300px}.story-chapter{padding-left:7%;padding-right:7%}.photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.photo-card:nth-child(3n){padding-top:34px}.letter-side{left:16px}.letter-wrap{max-width:680px}}@media (width<=620px){html{scroll-padding-top:112px}.chapter-header{flex-direction:column;gap:4px;height:auto;min-height:82px;padding:9px 12px 8px;display:flex}.chapter-header .wordmark{font-size:13px}.chapter-nav{grid-template-columns:repeat(5,minmax(47px,1fr));gap:2px;width:100%;display:grid}.chapter-nav a{text-align:center;letter-spacing:0;padding:9px 2px;font-size:7px}.chapter-nav a span{margin:4px 0 0;font-size:6px;display:block}.chapter{scroll-margin-top:105px}.hero-chapter{grid-template-columns:1fr;align-content:start;gap:0;min-height:720px;padding:58px 26px 69px}.hero-chapter-copy .chapter-number{margin:27px 0 17px}.hero-chapter h1{font-size:76px}.hero-chapter h1 em{font-size:61px}.hero-chapter-message{font-size:12px}.castle-scene{width:min(100%,370px);height:330px;min-height:0;margin:18px auto 0}.scene-caption{font-size:10px;right:0}.hero-bottom{font-size:6px;bottom:17px;left:25px;right:25px}.story-chapter{padding:78px 24px 90px}.section-heading{margin-bottom:62px}.section-heading h2{font-size:52px}.timeline-block{margin-bottom:75px}.timeline-list{margin:25px 0 0;padding:0 0 0 22px;display:block}.timeline-list:before{width:1px;height:auto;inset:5px auto 5px 5px}.timeline-entry{padding:0 0 30px 18px}.timeline-dot{top:2px;left:-22px}.timeline-entry h3{font-size:19px}.gallery-intro{display:block}.gallery-intro .section-kicker{margin-bottom:10px}.gallery-intro>p{text-align:left}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 11px}.photo-card:nth-child(3n),.photo-card:nth-child(4n+2),.photo-card:nth-child(4n+3),.photo-card:nth-child(4n+4){padding-top:0}.photo-card:nth-child(4n+2){padding-top:17px}.photo-card:nth-child(4n+3){padding-top:29px}.photo-placeholder,.photo-card img{aspect-ratio:3/4}.photo-card figcaption span:first-child{font-size:13px}.photo-card figcaption span:last-child{font-size:8px}.letter-chapter{min-height:0;padding:82px 20px 90px}.letter-side{display:none}.letter-wrap>.chapter-number{font-size:7px}.letter-paper{margin-top:28px;padding:38px 28px 36px}.letter-paper h2{font-size:43px}.letter-paragraph{font-size:12px}.finale-chapter{min-height:810px;padding:80px 20px 75px}.finale-chapter h2{font-size:48px}.cake-wrap{min-height:375px;margin-top:27px}.cake-scene{width:min(320px,100%);height:260px}.cake-layer--bottom{bottom:34px}.cake-layer--top{bottom:103px}.cake-top{bottom:161px}.cake-candle{top:25px}.cake-candle:first-of-type{left:22%}.cake-candle:nth-of-type(2){left:calc(50% - 22px)}.cake-candle:nth-of-type(3){right:22%}.birthday-message{padding:20px 17px}.birthday-message>p:last-child{font-size:15px}.celebration-footer{flex-wrap:wrap;justify-content:center;padding:20px}.celebration-footer>a:first-child{text-align:center;width:100%}.celebration-footer p{text-align:center;order:3;width:100%}.celebration-footer>a:last-child{font-size:7px}}@media (prefers-reduced-motion:reduce){.chapter-nav a,.candle-flame{transition:none}.confetti-piece{animation:none;display:none}}.hero-chapter{color:#f4ead8;background:radial-gradient(at 80% 52%,#986c7599,#0000 38%),radial-gradient(at 11% 10%,#a67e473f,#0000 32%),linear-gradient(122deg,#4b1d31 0%,#6d263f 54%,#482739 100%)}.hero-chapter-copy .eyebrow,.hero-chapter-copy .chapter-number{color:#e2c995}.hero-chapter-copy .eyebrow span{background:#d2b276}.hero-chapter h1{color:#fbf1df}.hero-chapter h1 em{color:#dfbd82}.hero-chapter-message{color:#e4d3cd}.hero-chapter .text-link{color:#fff1d5;border-color:#d6b87f}.hero-chapter .text-link span{color:#dfc388}.castle-scene:after{background:#1e0d1c55}.castle-sun{background:radial-gradient(circle,#f4dca7 0%,#d7b47a66 54%,#0000 73%)}.castle-fill{fill:#87576a;stroke:#d4bd8e;stroke-width:1.8px;stroke-linejoin:round}.castle-line{stroke:#ead5a9;stroke-width:1.4px}.castle-window{fill:#e5c88d}.scene-star{color:#f1d99e}.scene-caption{color:#e3cfae}.hero-bottom{color:#e2cfa8;border-color:#d2b27666}.chapter-pause{text-align:center;justify-content:center;align-items:center;gap:18px;min-height:104px;padding:22px 20px;display:flex}.chapter-pause p{max-width:520px;font:italic 16px/1.5 var(--serif);margin:0}.chapter-pause span{color:#bf9b62;font-size:12px}.chapter-pause--archive{color:#634456;background:linear-gradient(90deg,#d6c2a4,#eee0c7,#d6c2a4)}.chapter-pause--library{color:#f4e8d6;background:linear-gradient(90deg,#36273a,#624558,#36273a)}.chapter-pause--garden{color:#fff0df;background:linear-gradient(90deg,#788266,#c17a6e,#788266)}.chapter-pause--night{color:#f1e9fa;background:linear-gradient(90deg,#403448,#725f80,#403448)}.story-chapter{background:radial-gradient(at 0 35%,#c39d6336,#0000 35%),linear-gradient(#e9ddc9 0%,#f1e7d7 52%,#e8dccb 100%);padding-top:94px;padding-bottom:110px}.story-opener{color:#fbf2e3;text-align:center;background:radial-gradient(at 50% 110%,#98634f 0%,#0000 48%),linear-gradient(120deg,#4b293c,#6d354c 52%,#4b293c);max-width:970px;margin:0 auto 72px;padding:66px 38px 62px;position:relative;overflow:hidden;box-shadow:0 23px 50px #49334629}.story-opener:before,.story-opener:after{content:"";pointer-events:none;border:1px solid #d5b87b66;border-radius:50%;width:190px;height:190px;position:absolute}.story-opener:before{top:-115px;left:-115px}.story-opener:after{bottom:-115px;right:-115px}.story-opener .chapter-number,.story-opener .eyebrow{color:#dfc58d}.story-opener h2{color:#fff7e9;font:400 clamp(45px, 6vw, 72px)/.98 var(--serif);letter-spacing:-.035em;margin:10px 0 16px}.story-opener h2 em{color:#e5bd9e}.story-opener>p:last-of-type{color:#eee0d7;max-width:560px;font:12px/1.85 var(--sans);margin:auto}.opener-ornament{color:#d6b98166;font-size:52px;position:absolute;top:50%;right:11%}.memory-map-wrap{background:radial-gradient(at 16% 85%,#d5b87b36,#0000 30%),radial-gradient(at 90% 20%,#cba3a14d,#0000 35%),repeating-linear-gradient(7deg,#fff0 0 20px,#967e5c08 21px 22px),#f6edde;max-width:1080px;margin:0 auto 77px;padding:25px 34px 31px;box-shadow:inset 0 0 45px #9a79521a,0 17px 34px #3a2c3215}.memory-map-heading{justify-content:center;align-items:center;gap:13px;display:flex}.memory-map-heading .eyebrow{color:#805044;margin:0 0 4px}.memory-map-heading p:last-child{color:#887871;font:italic 12px var(--serif);margin:0}.map-compass{color:#a77c4d;border:1px solid #b68c57;border-radius:50%;place-items:center;width:38px;height:38px;font-size:17px;display:grid}.memory-map{max-width:940px;height:270px;margin:4px auto 0;position:relative}.map-route{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.map-route path:first-child{fill:none;stroke:#c7a86f;stroke-width:7px;stroke-linecap:round;opacity:.28}.map-route path:last-child{fill:none;stroke:#a77f55;stroke-width:1.5px;stroke-dasharray:3 8;stroke-linecap:round}.map-stop{color:#533545;background:#fffaf1e8;align-items:center;gap:10px;width:205px;min-height:54px;padding:8px 11px;text-decoration:none;transition:transform .26s,box-shadow .26s;display:flex;position:absolute;box-shadow:0 5px 16px #6e4a3d18}.map-stop:hover{transform:translateY(-3px)rotate(-1deg);box-shadow:0 10px 20px #6e4a3d2b}.map-stop:focus-visible{outline-offset:4px;outline:2px solid #6d263f}.map-stop--1{top:63%;left:1%;transform:rotate(-3deg)}.map-stop--2{top:18%;left:28%;transform:rotate(2deg)}.map-stop--3{top:32%;left:52%;transform:rotate(-2deg)}.map-stop--4{top:47%;right:0;transform:rotate(3deg)}.map-stop--1:hover,.map-stop--2:hover,.map-stop--3:hover,.map-stop--4:hover{transform:translateY(-3px)rotate(0)}.map-stop-number{color:#9b7048;width:29px;height:29px;font:italic 13px var(--serif);border:1px solid #c5a369;border-radius:50%;flex:none;place-items:center;display:grid}.map-stop-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.map-stop-copy strong{color:#563346;font:400 15px var(--serif)}.map-stop-copy small{color:#9b8578;font:7px var(--sans);letter-spacing:.06em}.album-stack{gap:48px;max-width:1130px;margin:auto;display:grid}.album-spread{min-height:675px;padding:52px clamp(26px,6vw,76px) 38px;scroll-margin-top:100px;position:relative;overflow:hidden;box-shadow:0 23px 55px #382b3220}.album-heading{z-index:1;margin-bottom:25px;position:relative}.album-index{color:#a0815d;font:500 7px var(--sans);letter-spacing:.2em;margin:0 0 13px}.album-index span{color:#c59a5d;margin:0 5px}.album-label{color:#a37c54;font:italic 14px var(--serif);margin:0 0 5px}.album-heading h3{font:400 clamp(31px, 4.2vw, 50px)/1 var(--serif);letter-spacing:-.025em;margin:0}.album-date{color:#988279;font:7px var(--sans);letter-spacing:.13em;text-transform:uppercase;margin:10px 0 0}.album-layout{gap:14px;min-height:380px;display:grid}.album-photo{flex-direction:column;min-width:0;min-height:0;margin:0;display:flex}.album-photo-inner{flex:1;min-height:120px;padding:7px;position:relative}.album-photo img,.photo-placeholder{text-align:center;object-fit:var(--photo-fit,cover);object-position:var(--photo-position,50% 50%);place-content:center;width:100%;height:100%;min-height:145px;display:grid}.album-photo figcaption{flex-direction:column;gap:3px;padding:7px 2px 0;display:flex}.album-photo figcaption span:first-child{font:italic 13px var(--serif)}.album-photo figcaption span:last-child{font:8px var(--sans)}.photo-placeholder{color:#947c6d;gap:8px}.photo-placeholder span{font:italic 29px var(--serif)}.photo-placeholder small{font:500 7px var(--sans);letter-spacing:.14em;text-transform:uppercase}.album-interlude{text-align:center;justify-content:center;align-items:center;gap:13px;max-width:530px;margin:28px auto 20px;display:flex}.album-interlude span{color:#bd9b67;flex:none;font-size:17px}.album-interlude p{font:italic 14px/1.65 var(--serif);margin:0}.spread-next{color:#72505b;font:500 7px var(--sans);letter-spacing:.16em;text-transform:uppercase;justify-content:flex-end;align-items:center;gap:16px;text-decoration:none;display:flex}.spread-next span{color:#b68f5d;font-size:15px}.album-spread--childhood{color:#533f3b;background:radial-gradient(at 10% 80%,#d4b99466,#0000 35%),linear-gradient(133deg,#ead7bb,#f4e7d2 52%,#e4cfb2)}.album-spread--childhood:before{content:"";pointer-events:none;border:1px solid #a9825866;position:absolute;inset:16px}.album-layout--childhood{grid-template-rows:180px 180px;grid-template-columns:1.3fr .78fr .78fr}.album-layout--childhood .album-photo:first-child{grid-row:1/3}.album-spread--childhood .album-photo-inner{background:#fff8e9;padding:9px;box-shadow:0 7px 16px #654a321c}.album-spread--childhood .photo-placeholder{background:linear-gradient(150deg,#d6b996,#c9a99c)}.album-spread--childhood .album-photo figcaption span:first-child{color:#624649}.album-spread--childhood .album-photo figcaption span:last-child{color:#92796e}.album-spread--childhood .album-interlude p{color:#735c50}.album-spread--growing-up{color:#382b45;background:radial-gradient(at 90% 8%,#fff5df7a,#0000 36%),linear-gradient(135deg,#cbbbd7,#e0d4e7 56%,#b8a9ce)}.album-spread--growing-up:after{content:"";pointer-events:none;border:1px solid #6d567d2b;border-radius:50%;width:340px;height:340px;position:absolute;bottom:-130px;right:-80px;box-shadow:0 0 0 25px #fff0,0 0 0 26px #6d567d1a,0 0 0 54px #fff0,0 0 0 55px #6d567d12}.album-layout--growing-up{grid-template-rows:180px 180px;grid-template-columns:1.05fr .9fr .9fr}.album-layout--growing-up .album-photo:first-child{grid-row:1/3}.album-layout--growing-up .album-photo:nth-child(2){grid-column:2/4}.album-spread--growing-up .album-photo-inner{background:#e9e0ef;padding:5px;box-shadow:0 10px 18px #42314d29}.album-spread--growing-up .photo-placeholder{background:linear-gradient(145deg,#d8c4d0,#a99cbd)}.album-spread--growing-up .album-photo figcaption span:first-child{color:#44334b}.album-spread--growing-up .album-photo figcaption span:last-child{color:#6e6078}.album-spread--growing-up .album-interlude p{color:#4f4057}.album-spread--portraits{color:#fff3df;background:radial-gradient(at 97% 4%,#e6c48172,#0000 29%),radial-gradient(at 5% 92%,#567a5848,#0000 35%),linear-gradient(120deg,#a96063,#c87c73 48%,#8e5b69)}.album-spread--portraits:before{content:"";background:#355b4545;border-radius:50%;width:280px;height:420px;position:absolute;top:210px;left:-170px;transform:rotate(28deg)}.album-spread--portraits .album-index,.album-spread--portraits .album-label{color:#f1d39f}.album-spread--portraits .album-heading h3{color:#fff5e4}.album-spread--portraits .album-date{color:#f0d7ca}.album-layout--portraits{grid-template-rows:180px 180px;grid-template-columns:1.1fr .9fr .9fr}.album-layout--portraits .album-photo:first-child{grid-row:1/3}.album-layout--portraits .album-photo:nth-child(4){grid-column:2/4}.album-spread--portraits .album-photo-inner{background:#f4e5d3;padding:5px}.album-spread--portraits .album-photo:first-child .album-photo-inner{border-radius:95px 95px 4px 4px}.album-spread--portraits .album-photo:first-child .photo-placeholder,.album-spread--portraits .album-photo:first-child img{border-radius:85px 85px 1px 1px}.album-spread--portraits .photo-placeholder{background:linear-gradient(160deg,#e7bda0,#b57a7c)}.album-spread--portraits .album-photo figcaption span:first-child{color:#fff1dd}.album-spread--portraits .album-photo figcaption span:last-child{color:#f2d7ca}.album-spread--portraits .album-interlude p,.album-spread--portraits .spread-next{color:#fff1dc}.album-spread--keepsakes{color:#f6ecdc;background:radial-gradient(circle at 78% 24%,#f1dfb352 0 2px,#0000 3px),radial-gradient(circle at 15% 71%,#ded0f055 0 2px,#0000 3px),radial-gradient(at 50% 120%,#56496b,#0000 65%),linear-gradient(135deg,#29283b,#3a344e)}.album-spread--keepsakes:before{content:"";border:1px solid #ded0f044;border-radius:50%;width:220px;height:220px;position:absolute;top:-130px;right:7%;box-shadow:0 0 0 22px #fff0,0 0 0 23px #ded0f022,0 0 0 48px #fff0,0 0 0 49px #ded0f014}.album-spread--keepsakes .album-index,.album-spread--keepsakes .album-label{color:#e3c793}.album-spread--keepsakes .album-heading h3{color:#fff8eb}.album-spread--keepsakes .album-date{color:#c6b6c4}.album-layout--keepsakes{grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;gap:15px;min-height:315px}.album-spread--keepsakes .album-photo-inner{background:#f4ead9;min-height:215px;padding:8px 8px 23px;box-shadow:0 11px 25px #100d193d}.album-spread--keepsakes .album-photo:first-child{transform:rotate(-3deg)translateY(10px)}.album-spread--keepsakes .album-photo:nth-child(2){transform:rotate(2deg)translateY(-9px)}.album-spread--keepsakes .album-photo:nth-child(3){transform:rotate(-1deg)translateY(8px)}.album-spread--keepsakes .album-photo:nth-child(4){transform:rotate(3deg)translateY(-7px)}.album-spread--keepsakes .photo-placeholder{background:linear-gradient(150deg,#c4b8cd,#817894)}.album-spread--keepsakes .album-photo figcaption span:first-child{color:#463a53}.album-spread--keepsakes .album-photo figcaption span:last-child{color:#706778}.album-spread--keepsakes .album-interlude p{color:#e8dced}.album-spread--keepsakes .spread-next{color:#ecd9b0}.letter-chapter{background:radial-gradient(#775369 0%,#3b293f 54%,#24202a 100%)}.letter-chapter:before,.letter-chapter:after{content:"";background:linear-gradient(#0000,#d2b77a8c,#0000);width:1px;position:absolute;top:11%;bottom:11%}.letter-chapter:before{left:7%}.letter-chapter:after{right:7%}.letter-paper{background:radial-gradient(at 50% 4%,#fffdf8,#f0e2cb 82%);box-shadow:0 25px 75px #110d1b91,inset 0 0 34px #a9886040}.letter-paper:before{border:1px solid #b8965e99;inset:13px}.letter-paper:after{content:"";pointer-events:none;border:1px dashed #b8965e55;position:absolute;inset:20px}.letter-flourish{font-size:28px}.finale-chapter{background:radial-gradient(circle at 12% 18%,#e5d4fbab 0 1px,#0000 2px),radial-gradient(circle at 77% 12%,#f1dfbcba 0 1.5px,#0000 2.5px),radial-gradient(circle at 88% 42%,#e5d4fb99 0 1px,#0000 2px),radial-gradient(circle at 26% 61%,#f1dfbc88 0 1px,#0000 2px),radial-gradient(at 50% 34%,#70628c,#40364f 67%,#272431)}.finale-chapter:before{content:"";background:radial-gradient(circle at 35% 35%,#fff4d8,#e8d5aa 60%,#d2bb9499);border-radius:50%;width:112px;height:112px;position:absolute;top:7%;right:13%;box-shadow:0 0 55px #e6d0a944}.finale-chapter:after{content:"";border-top:1px solid #d9c9ef55;border-right:1px solid #d9c9ef55;border-radius:0 90% 0 0;width:180px;height:145px;position:absolute;top:16%;left:12%;transform:rotate(16deg)}.cake-sparkle{color:#f2d99d;opacity:.8;position:absolute}.cake-sparkle--one{font-size:29px;top:21%;left:3%}.cake-sparkle--two{font-size:19px;top:43%;right:5%}.cake-wrap{z-index:1}.cake-layer--bottom{background:linear-gradient(90deg,#b87c8a,#e5b1aa 50%,#b87584)}.cake-layer--top{background:linear-gradient(90deg,#e5c4b0,#fff1d8 50%,#d9b49d)}.cake-top{background:#fff0d7}.cake-plate{background:linear-gradient(#efdeb9,#bf9a62)}.birthday-message{border:1px solid #d5b982;box-shadow:0 13px 40px #1e1a2a55}.message-ornament{font-size:19px}@media (width<=900px){.map-stop{width:190px}.album-spread{padding-left:35px;padding-right:35px}.album-layout{grid-template-rows:160px 160px;min-height:340px}.album-layout--keepsakes{min-height:280px}.album-spread--keepsakes .album-photo-inner{min-height:180px}}@media (width<=620px){.hero-chapter{background:radial-gradient(at 50% 74%,#95637199,#0000 44%),linear-gradient(155deg,#4b1d31,#6d263f 60%,#482739)}.story-chapter{background:linear-gradient(#e9ddc9,#f0e4d4 56%,#e3d4c5);padding-top:58px}.story-opener{margin-bottom:44px;padding:47px 25px 43px}.story-opener h2{font-size:49px}.opener-ornament{font-size:32px;top:auto;bottom:12%;right:6%}.memory-map-wrap{margin-bottom:44px;padding:20px 15px 22px}.memory-map{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 9px;height:auto;margin-top:20px;display:grid}.map-route{display:none}.map-stop,.map-stop--1,.map-stop--2,.map-stop--3,.map-stop--4{gap:7px;width:auto;min-height:76px;padding:9px 7px;position:relative;inset:auto;transform:none}.map-stop:hover{transform:translateY(-2px)}.map-stop-number{width:24px;height:24px;font-size:11px}.map-stop-copy strong{font-size:12px;line-height:1.05}.map-stop-copy small{font-size:6px}.album-stack{gap:27px}.album-spread{min-height:0;padding:35px 20px 27px}.album-heading{margin-bottom:19px}.album-heading h3{font-size:34px}.album-layout{grid-template-rows:auto;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 9px;min-height:0}.album-layout--childhood .album-photo:first-child,.album-layout--growing-up .album-photo:first-child,.album-layout--portraits .album-photo:first-child{grid-area:auto/1/auto/3}.album-layout--growing-up .album-photo:nth-child(2),.album-layout--portraits .album-photo:nth-child(4){grid-column:auto}.album-layout--childhood .album-photo:first-child .album-photo-inner,.album-layout--growing-up .album-photo:first-child .album-photo-inner,.album-layout--portraits .album-photo:first-child .album-photo-inner{min-height:255px}.album-photo-inner{min-height:145px;padding:5px}.album-photo img,.photo-placeholder{min-height:125px}.album-spread--childhood .album-layout--childhood .album-photo:first-child .photo-placeholder,.album-spread--childhood .album-layout--childhood .album-photo:first-child img,.album-spread--growing-up .album-layout--growing-up .album-photo:first-child .photo-placeholder,.album-spread--growing-up .album-layout--growing-up .album-photo:first-child img,.album-spread--portraits .album-layout--portraits .album-photo:first-child .photo-placeholder,.album-spread--portraits .album-layout--portraits .album-photo:first-child img{min-height:255px}.album-photo figcaption span:first-child{font-size:12px}.album-photo figcaption span:last-child{font-size:7px}.album-layout--keepsakes{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 12px;min-height:0;padding:8px 4px;display:grid}.album-spread--keepsakes .album-photo-inner{min-height:185px;padding:6px 6px 18px}.album-spread--keepsakes .album-photo:nth-child(n){transform:rotate(0)}.album-spread--keepsakes .album-photo:first-child{transform:rotate(-2deg)}.album-spread--keepsakes .album-photo:nth-child(2){transform:rotate(2deg)}.album-spread--keepsakes .album-photo:nth-child(3){transform:rotate(1deg)}.album-spread--keepsakes .album-photo:nth-child(4){transform:rotate(-2deg)}.album-interlude{margin:24px auto 17px}.album-interlude p{font-size:13px}.spread-next{font-size:6px}.letter-chapter:before{left:4%}.letter-chapter:after{right:4%}.finale-chapter{background:radial-gradient(circle at 85% 10%,#e5d4fbab 0 1px,#0000 2px),radial-gradient(circle at 12% 25%,#f1dfbcba 0 1px,#0000 2.5px),radial-gradient(at 50% 35%,#70628c,#40364f 67%,#272431)}.finale-chapter:before{width:65px;height:65px;top:6%;right:8%}.finale-chapter:after{width:90px;height:80px;top:10%;left:4%}.cake-sparkle--one{font-size:20px;top:25%;left:0}.cake-sparkle--two{font-size:15px;top:43%;right:0}}@media (prefers-reduced-motion:reduce){.map-stop{transition:none}}.fairy-cameo{z-index:11;color:#e7cd91;opacity:0;pointer-events:none;width:58px;height:70px;position:fixed;top:clamp(90px,12vh,130px);right:-43px}.fairy-cameo svg,.cupid-cameo svg{width:100%;height:100%;display:block;overflow:visible}.fairy-cameo svg{filter:drop-shadow(0 2px 5px #3a263024);stroke-width:1.05px}.cupid-cameo{color:#b99558;opacity:0;pointer-events:none;width:43px;height:48px;margin:5px auto 13px;display:block}.cupid-cameo.is-flying{z-index:11;margin:0;position:fixed;bottom:clamp(18px,6vh,52px);left:-48px}.cupid-cameo svg{filter:drop-shadow(0 2px 4px #251b1c20);stroke-width:1.05px}.fairy-cameo.is-static,.cupid-cameo.is-static{opacity:.8}.finale-constellation{width:min(100%,184px);height:52px;margin:-5px auto 3px;display:block;overflow:visible}.constellation-link{fill:none;stroke:#e5cc8c;stroke-width:1.2px;stroke-dasharray:1;stroke-dashoffset:1px;stroke-linecap:round}.constellation-star{fill:#f4dda0;opacity:0;transform-box:fill-box;transform-origin:50%;filter:drop-shadow(0 0 3px #f4dda088);transform:scale(.65)}@media (width<=620px){.fairy-cameo{width:54px;height:66px;top:90px;right:-43px}.cupid-cameo{width:36px;height:41px;margin:3px auto 10px}.cupid-cameo.is-flying{left:-42px}.finale-constellation{width:158px;height:46px;margin:-4px auto 3px}}@media (prefers-reduced-motion:reduce){.fairy-cameo,.cupid-cameo{opacity:.8}}.chapter-header{gap:clamp(12px,2vw,28px)}.chapter-nav{gap:clamp(6px,.8vw,12px)}.chapter-nav a{color:#fff6e7;letter-spacing:.04em;background:#6d263f;border:1px solid #bd9b67;align-items:center;gap:6px;min-height:38px;padding:0 10px;font-size:9px;font-weight:600;display:inline-flex}.chapter-nav a:first-child{color:#f3dba7;background:#4b1d31}.chapter-nav a:hover{color:#fff8e9;background:#8b3b55}.chapter-nav a:focus-visible{outline-offset:3px;outline:3px solid #a48151}.chapter-nav a span{text-transform:none;margin:0}.page-turn-link{color:#fff7e9;min-height:48px;font:600 10px/1.3 var(--sans);letter-spacing:.08em;background:#6d263f;border:1px solid #c9a66b;justify-content:space-between;align-items:center;gap:17px;padding:8px 17px;text-decoration:none;transition:background-color .234s,box-shadow .234s,transform .234s;display:inline-flex;box-shadow:0 5px 15px #30202a1a}.page-turn-link:hover{background:#4b1d31;transform:translateY(-2px);box-shadow:0 9px 20px #30202a30}.page-turn-link:focus-visible{outline-offset:4px;outline:3px solid #a48151}.page-turn-mark{color:#ecd49d;width:35px;height:31px;transform-style:preserve-3d;flex:none;overflow:visible}.page-turn-shape{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round}.page-turn-target{fill:none;stroke:none;visibility:hidden}.text-link.page-turn-link{color:#54283c;background:#f3ebdd;min-width:218px}.text-link.page-turn-link:hover{background:#fff8eb}.text-link.page-turn-link .page-turn-mark{color:#91683f}.memory-map-actions{justify-content:flex-end;margin:22px 5px 0;display:flex}.memory-letter-link{min-width:235px}.page-turn-label{font:inherit;letter-spacing:.08em;font-size:10px}.text-link.page-turn-link .page-turn-label{color:#54283c;font-size:10px}.spread-next.page-turn-link .page-turn-label{color:inherit;font-size:10px}.album-photo-inner{overflow:hidden}.album-stack{gap:64px}.spread-next.page-turn-link{min-width:220px;margin:24px 0 0 auto}.album-spread--portraits .spread-next.page-turn-link{color:#652e43;background:#fff3df}.album-spread--portraits .spread-next.page-turn-link .page-turn-mark{color:#91683f}.album-spread--keepsakes .spread-next.page-turn-link{color:#342c43;background:#ded0f0}.album-spread--keepsakes .spread-next.page-turn-link .page-turn-mark{color:#684d7a}@media (width<=900px){.chapter-header{gap:10px}.chapter-nav{gap:5px}.chapter-nav a{padding:0 7px;font-size:8px}.album-stack{gap:52px}}@media (width<=620px){.chapter-header{gap:4px}.chapter-nav{gap:3px}.chapter-nav a{flex-direction:column;gap:3px;min-width:0;min-height:45px;padding:5px 1px;font-size:8px}.chapter-nav a span{font-size:7px;line-height:1.1}.page-turn-link{gap:12px;min-height:48px;padding:8px 12px;font-size:9px}.page-turn-mark{width:32px;height:29px}.text-link.page-turn-link{min-width:208px}.memory-map-actions{justify-content:center;margin:20px 0 0}.memory-letter-link{width:100%;min-width:0}.album-stack{gap:38px}.spread-next.page-turn-link{width:100%;min-width:0;margin-top:20px}}@media (prefers-reduced-motion:reduce){.page-turn-link{transition:none}.page-turn-mark{transform:none!important}}.music-controls[hidden],.chapter-header .music-controls[hidden]{display:none!important}.chapter-header .music-controls{flex:none;align-items:center;gap:6px;margin-left:auto;display:flex}.music-controls-label{color:#846d58;font:600 7px/1 var(--sans);letter-spacing:.13em;white-space:nowrap;margin-right:3px}.music-controls-label span{color:#9c7751;margin-right:4px;font-size:13px}.music-control-button{color:#542c3d;cursor:pointer;min-width:52px;min-height:34px;font:600 7px/1 var(--sans);letter-spacing:.09em;text-transform:uppercase;background:#fffaf0;border:1px solid #9c7c55;padding:0 9px}.music-control-button:hover{background:#f0e2cd}.music-control-button:focus-visible{outline-offset:2px;outline:3px solid #6d263f}.music-control-button:disabled{color:#806e69;cursor:default;opacity:.72}.visually-hidden{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}@media (width<=900px) and (width>=621px){.chapter-header{flex-wrap:wrap;row-gap:6px;height:auto;min-height:74px;padding-top:8px;padding-bottom:8px}.chapter-header .chapter-nav{flex:1 0 100%;order:3;justify-content:space-between}.chapter-header .music-controls{order:2}.chapter{scroll-margin-top:105px}html{scroll-padding-top:112px}}@media (width<=620px){.chapter-header .chapter-nav{order:1}.chapter-header .music-controls{order:2;margin:2px 0 0}.music-controls-label{display:none}}
