:root{--paper:#f7eee7;--ink:#57454b;--muted:#8e7b80;--red:#9b697c;--line:#c6a9ac4d;--section-space:96px;--content-width:1000px;--display:'Bodoni Moda',Didot,'Times New Roman',serif;--reading:'Libre Baskerville',Baskerville,Georgia,serif;--ui:'DM Sans',Arial,sans-serif}body{font-family:var(--ui);font-size:14px;color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{font-family:var(--display);font-weight:400;font-synthesis:none}h2{letter-spacing:-1.5px;line-height:1.18;text-wrap:balance}p{text-wrap:pretty}.shared-atmosphere{background:radial-gradient(ellipse at 7% 8%,#fff8eb 0%,transparent 58%),radial-gradient(ellipse at 96% 80%,#ead0d3 0%,transparent 68%),#f7eee7}.shared-atmosphere:before,.shared-atmosphere:after{opacity:.13}.top{padding:19px 30px;min-height:76px;border-bottom:1px solid var(--line);background:#f7eee7c9}.brand{font-family:var(--display);font-size:27px}.chapter-nav{gap:30px}.chapter-nav a{font-size:11px;color:#8c797e}.music{border:1px solid var(--line);padding:9px 14px;font-size:10px}.eyebrow{font:500 10px/1.7 var(--ui);letter-spacing:2.3px;color:#9b7d86}.birthday-hero{max-width:1000px;padding:94px 25px 78px}.birthday-hero .animated-birthday{font-family:var(--display);font-size:clamp(70px,8.5vw,102px);line-height:1.08;letter-spacing:-4px;margin:24px 0 8px}.birthday-hero .animated-birthday .welcome-name{font-family:var(--display);font-weight:400;margin-left:.13em;color:var(--red)}.welcome-halo{opacity:.28;width:350px;height:210px;top:82px;animation-duration:20s}.welcome-name:after{display:none}.welcome-heart-line{width:155px;height:32px;opacity:.65;margin-bottom:19px}.birthday-hero .hero-whisper{font-family:var(--reading);font-size:15px;font-style:italic;line-height:1.8;margin-bottom:15px;letter-spacing:-.15px;color:#957380}.welcome-note{font-family:var(--ui);font-size:13px;line-height:1.9;max-width:365px;color:var(--muted);margin-bottom:26px}.welcome-scroll{font-size:11px;gap:21px;border-bottom-color:#c7a2b0;padding-bottom:7px}.letter{max-width:710px;margin:0 auto;padding:50px 55px 44px;border:1px solid var(--line);border-radius:2px;background:#fffaf459;box-shadow:0 8px 40px #a27e8b05}.letter:before{display:none}.letter>.eyebrow{margin-bottom:24px!important}.letter h2{font-family:var(--display);font-size:37px;font-weight:400;font-style:normal;line-height:1.22;color:var(--ink);letter-spacing:-1.25px;margin:0 0 29px;max-width:530px}.letter p{font-family:var(--reading);font-size:13.5px;line-height:2.05;font-style:normal;font-weight:400;color:#806b72;margin:0 0 20px}.signature{font-family:var(--reading);font-style:italic;font-size:16px;line-height:1.7;margin-top:28px;color:#9c7384}.wishes{max-width:880px;padding:46px 28px 80px}.wishes .wishes-label{font:500 10px/1.7 var(--ui);letter-spacing:1.8px;color:var(--muted);margin:0 0 27px}.wish-grid{gap:28px;align-items:start}.wish{padding-top:19px}.wish .number{font:400 14px/1.5 var(--display);color:#b2929e}.wish h3{font:400 23px/1.2 var(--display);letter-spacing:-.5px;margin:11px 0 12px;min-height:28px;color:var(--ink)}.wish p{font-size:12px;line-height:1.85;margin:0;color:var(--muted)}.memories,.flower-garden,.cosmic-love,.special-letters,.cake-section,.final-bouquet,.keepsake-section{padding-left:30px;padding-right:30px}.memories,.special-letters,.final-bouquet,.keepsake-section{max-width:1000px}.memories h2,.flower-garden h2,.special-letters h2,.cake-section h2,.cosmic-love h2,.final-bouquet h2,.keepsake-section h2{font:400 clamp(33px,4.5vw,44px)/1.2 var(--display);letter-spacing:-1.3px;margin:18px auto 22px;max-width:650px;color:var(--ink)}.section-note{font:400 13px/1.85 var(--ui);max-width:390px;color:var(--muted);margin-bottom:32px}.primary{font:500 12px/1.45 var(--ui);letter-spacing:.1px;min-height:46px;min-width:220px;padding:14px 26px;border-radius:3px;background:var(--red);border:1px solid transparent;box-shadow:none}.primary:hover{background:#8b5b6e;transform:translateY(-1px)}.gift-button{animation-duration:5s;filter:drop-shadow(0 8px 10px #b28a9a16)}.gift-invitation,.gallery-dedication{font:italic 16px/1.7 var(--reading);max-width:340px;color:#9b7a88;margin:17px auto}.gift-reveal>.eyebrow{font-size:9px;letter-spacing:1.5px}.gift-gallery .memory-grid{height:430px;max-width:820px}.gift-gallery .memory-card{width:275px;margin-left:-137.5px;transform:translateX(calc(var(--card-offset)*87%)) scale(var(--card-scale)) rotateY(calc(var(--card-offset)*-12deg))}.memory-front,.memory-back{border-radius:2px;border:1px solid var(--line);box-shadow:0 6px 25px #9672800b}.memory-front{padding:13px 13px 24px;background:#fcf5ee}.memory-caption{font-family:var(--display);font-size:24px;font-style:normal;line-height:1.2;letter-spacing:-.5px;margin-top:17px}.memory-back{padding:27px 26px;background:#f1e4e4}.memory-back p{font:400 13px/1.9 var(--reading);color:#806a74}.memory-back .note-heart{font-size:23px;margin-bottom:18px;opacity:.7}.memory-back small{font:500 8px/1.6 var(--ui);letter-spacing:1.3px;margin-top:20px}.gallery-controls{gap:24px}.gallery-controls button{width:42px;height:42px;border-radius:50%;font-size:17px}.gallery-tip{font-size:10px;line-height:1.8;margin-top:16px;color:#a08a92}.garden-stage{max-width:820px;height:335px!important;border:1px solid var(--line);border-radius:120px 120px 3px 3px;margin-top:35px;box-shadow:none;backdrop-filter:none}.garden-touch-hint{font:italic 16px var(--reading);top:32px;color:#b0909b}.garden-flower{filter:drop-shadow(0 3px 7px #a97e8c12)}.garden-message{font:italic 16px/1.6 var(--reading);min-height:30px;margin-top:22px;color:#9f7a89}.flower-garden{padding-bottom:63px}.cosmic-love{padding-top:0}.cosmic-love:before{width:42px;margin-bottom:60px;border-color:var(--line)}.cosmic-love>p{font:400 13px/1.85 var(--ui);color:var(--muted)}.particle-stage{max-width:820px;height:360px;margin:30px auto 25px;border-radius:3px;border:1px solid var(--line);backdrop-filter:none;box-shadow:none}.cosmic-button{border-radius:3px;min-height:44px;font-size:11px;padding:13px 25px;min-width:230px}.cosmic-love .cosmic-note{font:italic 15px/1.8 var(--reading);max-width:420px;margin:13px auto 0}.love-message-button{font-size:10px;color:var(--muted);margin-top:5px;padding:10px 15px}.envelope-grid{max-width:830px;gap:28px;align-items:start;margin-top:38px}.paper-envelope{height:137px;border-radius:2px;box-shadow:0 5px 16px #9b75830a}.envelope-flap{height:84px}.envelope-seal{width:29px;height:29px;font-size:16px}.envelope-caption{font:400 23px/1.25 var(--display);letter-spacing:-.6px;margin:21px 0 11px;min-height:29px}.envelope-status{font:500 8px/1.6 var(--ui);letter-spacing:1.2px}.letters-progress{font:400 11px/1.7 var(--ui);letter-spacing:0;color:var(--muted);margin-top:28px}.secret-finale{border-radius:2px;padding:30px;max-width:580px;background:#fff6f140}.secret-finale .finale-heart{font-size:31px;animation-duration:4s;opacity:.65}.secret-finale h3{font:400 31px/1.2 var(--display);letter-spacing:-.8px}.secret-finale p{font:400 12px/1.9 var(--reading);max-width:440px;margin:auto}.special-dialog{padding:47px 38px 34px;border-radius:3px;max-width:520px;background:#f9eee8}.special-dialog h3{font:400 35px/1.15 var(--display);letter-spacing:-1px;margin:24px 0}.special-dialog p{font:400 14px/1.95 var(--reading);color:#876d79;margin:0 0 28px}.special-dialog .eyebrow{font-size:9px}.cake-section .cake{margin-top:65px;margin-bottom:20px;transform:scale(.8)}.cake-section p{font:400 13px/1.9 var(--ui);color:var(--muted)}.cake-section .primary{min-width:240px}.bouquet-next{margin-top:28px;font-size:11px;text-decoration-thickness:1px;color:var(--muted)}.final-bouquet,.keepsake-section{padding-top:96px;padding-bottom:96px}.bouquet-layout{grid-template-columns:1fr 1fr;gap:55px;max-width:900px;margin:35px auto 0}.bouquet-art{max-width:400px}.bouquet-note{background:#fff8f02b;border:1px solid var(--line);border-radius:2px;padding:33px;min-height:300px}.bouquet-note-heart{font-size:23px;opacity:.65}.bouquet-note h3{font:400 31px/1.2 var(--display);letter-spacing:-1px;min-height:38px;margin:20px 0}.bouquet-note>p:not(.bouquet-progress){font:400 13px/1.9 var(--reading);color:#89717b;max-width:310px;margin-bottom:15px}.bouquet-note .bouquet-progress{font:400 10px/1.6 var(--ui);letter-spacing:.3px;color:var(--muted)}.bouquet-note .bouquet-complete{font:italic 14px/1.8 var(--reading)!important;padding-top:20px}.flower-index{font-family:var(--display);font-size:12px;color:#9d7e89;background:#fff8eea1}.keepsake-layout{max-width:850px;grid-template-columns:.95fr 1.05fr;gap:64px;margin-top:42px}.keepsake-preview{padding:0}.keepsake-preview canvas{transform:none;border-radius:2px;box-shadow:0 12px 34px #9575810d;border-color:var(--line)}.keepsake-controls{gap:11px}.keepsake-controls label,.keepsake-controls legend{font:500 12px/1.6 var(--ui)}.keepsake-photo-options{gap:6px}.keepsake-photo-options button{font:400 10px/1.5 var(--ui);padding:9px 11px;border-radius:3px;min-height:36px}.keepsake-controls input,.keepsake-controls textarea{font:400 13px/1.9 var(--ui);border-radius:2px;border-color:var(--line);background:#fff9f154;padding:12px 14px;margin-bottom:9px}.keepsake-controls .primary{width:100%;align-self:stretch;margin-top:5px}.keepsake-help,.keepsake-status{font:400 10px/1.75 var(--ui);max-width:310px;color:var(--muted)}.final-restart{padding-bottom:32px}.relock{font-size:11px;color:var(--muted);text-underline-offset:5px}.end{padding:27px 22px;font:400 9px/1.7 var(--ui);letter-spacing:1.5px}.welcome-pause{font-size:9px;color:#b099a1;margin-top:10px}.opening-brand{font-family:var(--display);font-size:25px}.opening-overline{font-family:var(--reading);font-style:italic;font-size:17px;line-height:1.7}.opening-seed{padding-top:70px}.seed-heart{width:140px;height:140px;margin:38px auto 58px;animation-duration:3.8s}.seed-pointer{font-size:29px;left:calc(50% - 143px);top:55%}.seed-pointer span{font-family:var(--reading);font-size:13px;top:38px}.opening-for{font-size:8px;letter-spacing:2px}.opening-footer{font-size:7px;letter-spacing:2.2px;opacity:.65}.opening-tree-scene{max-width:1060px;gap:42px}.opening-poem h2{font-family:var(--display);font-size:clamp(45px,5.5vw,72px);line-height:1.13;letter-spacing:-2px;max-width:420px}.opening-poem h2 em{font-size:1.25em}.opening-poem .opening-overline{font:500 9px/1.7 var(--ui);letter-spacing:1.7px}.opening-message{font:400 13px/2 var(--reading);max-width:330px;margin-top:25px}.opening-actions{margin-top:29px}.opening-actions .primary{border-radius:3px;min-width:225px;padding:14px 22px;font-size:11px}.opening-replay{font-size:10px;color:#a9919c}.opening-banner h1{font:400 clamp(85px,12vw,150px)/.98 var(--display);letter-spacing:-5px}.opening-banner p{font:italic 16px var(--reading)}.banner-name{font:italic 35px var(--display);letter-spacing:0}.opening-banner svg{opacity:.5;width:150px}.opening-music{font-size:9px;border-radius:3px}.opening-skip{font-size:10px}.text-love-heart .heart-ebrar{font-family:var(--display)}#love-intro .love-caption{font-family:var(--reading);font-size:16px;line-height:1.8;font-style:italic;max-width:330px}.wish-celebration{background:radial-gradient(ellipse at 30% 5%,#fff6eaf2,#f2e0e2f5)!important}.wish-celebration h2{font:400 clamp(37px,5.5vw,56px)/1.18 var(--display);letter-spacing:-1.8px;max-width:640px}.wish-celebration #wish-celebration-message{font:400 12px/2 var(--reading);max-width:400px;margin-bottom:22px}.wish-birthday{font:italic 23px/1.6 var(--display);margin:0 0 28px}.wish-last-line{font:italic 13px/1.8 var(--reading);color:var(--muted)}.wish-light{width:86px;height:105px}.wish-close{width:34px;height:34px;border-radius:3px;font-size:22px}.wish-ring{opacity:.35}.wish-celebration .eyebrow{font-size:9px;letter-spacing:2px}@media(min-width:701px) and (max-width:1000px){.opening-tree-scene{padding-left:45px;padding-right:45px;gap:25px}.opening-tree-art{max-width:370px}.opening-poem h2{font-size:52px}.opening-message{font-size:12px}.envelope-grid{gap:18px}.paper-envelope{height:123px}.envelope-caption{font-size:21px}.bouquet-layout{gap:30px}.keepsake-layout{gap:42px}}@media(max-width:700px){:root{--section-space:72px}.top{padding:15px 19px;gap:12px;min-height:66px}.brand{font-size:24px}.chapter-nav{gap:15px}.chapter-nav a{font-size:10px}.music{font-size:0;padding:8px 10px;min-width:32px;border-radius:3px}.music:after{font-size:15px}.birthday-hero{padding:65px 22px 57px}.birthday-hero .animated-birthday{font-size:clamp(62px,14.5vw,83px);line-height:1.12;letter-spacing:-2.8px;margin-top:25px}.birthday-hero .animated-birthday .welcome-name{display:block;margin:0;font-size:1.12em}.birthday-hero .hero-whisper{font-size:13px;line-height:1.9;max-width:290px;margin:0 auto 16px}.welcome-note{font-size:12px;max-width:280px}.welcome-halo{width:260px;height:240px;top:65px}.welcome-heart-line{width:135px;height:27px;margin-top:8px}.welcome-scroll{font-size:10px}.letter{margin:0 19px;padding:34px 27px 31px}.letter>.eyebrow{font-size:9px;margin-bottom:23px!important}.letter h2{font-size:31px;letter-spacing:-1.1px;margin-bottom:25px;max-width:320px}.letter p{font-size:12px;line-height:2.08;margin-bottom:19px}.signature{font-size:14px;margin-top:25px}.wishes{padding:35px 25px 58px}.wishes .wishes-label{font-size:9px}.wish-grid{grid-template-columns:1fr;gap:22px}.wish{padding-top:17px;grid-template-columns:30px 1fr;column-gap:14px}.wish h3{font-size:23px;min-height:0;margin:0 0 8px}.wish .number{font-size:13px;margin-top:5px}.wish p{font-size:12px;line-height:1.85}.memories,.flower-garden,.cosmic-love,.special-letters,.cake-section,.final-bouquet,.keepsake-section{padding-left:21px;padding-right:21px}.memories h2,.flower-garden h2,.special-letters h2,.cake-section h2,.cosmic-love h2,.final-bouquet h2,.keepsake-section h2{font-size:32px;line-height:1.22;letter-spacing:-1.1px;margin-top:16px;margin-bottom:20px}.section-note{font-size:12px;line-height:1.9;max-width:300px;margin-bottom:28px}.eyebrow{font-size:9px;letter-spacing:2px}.gift-invitation,.gallery-dedication{font-size:14px;line-height:1.7;max-width:280px}.gift-gallery .memory-grid{height:417px}.gift-gallery .memory-card{width:245px;margin-left:-122.5px;transform:translateX(calc(var(--card-offset)*87%)) scale(var(--card-scale)) rotateY(calc(var(--card-offset)*-10deg))}.gift-gallery .memory-inner,.gift-gallery .memory-card{min-height:380px}.gift-gallery .memory-photo{height:290px}.memory-caption{font-size:23px}.memory-back p{font-size:12px;line-height:1.85}.memory-back{padding:25px 24px}.gallery-tip{font-size:9px;max-width:280px;margin-left:auto;margin-right:auto}.garden-stage{height:300px!important;border-radius:105px 105px 3px 3px;margin-top:26px}.garden-touch-hint{font-size:13px;max-width:230px;line-height:1.7;margin:auto;top:27px}.garden-message{font-size:14px;line-height:1.85;max-width:290px;margin-top:20px}.flower-garden{padding-bottom:49px}.cosmic-love:before{margin-bottom:48px}.particle-stage{height:300px}.cosmic-love>p{font-size:12px;max-width:280px;margin-left:auto;margin-right:auto}.cosmic-love .cosmic-note{font-size:13px;line-height:1.8;max-width:290px}.cosmic-button{font-size:10px;min-width:225px}.love-message-button{font-size:10px}.envelope-grid{grid-template-columns:1fr;max-width:270px;gap:35px;margin-top:35px}.paper-envelope{height:135px}.envelope-caption{font-size:24px;min-height:0;margin:19px 0 9px}.letters-progress{font-size:10px}.special-dialog{padding:44px 28px 29px}.special-dialog h3{font-size:31px;letter-spacing:-1px}.special-dialog p{font-size:12px;line-height:2}.secret-finale{padding:28px 24px}.secret-finale h3{font-size:27px}.secret-finale p{font-size:11px;line-height:2}.cake-section p{font-size:12px}.cake-section .primary{min-width:230px}.primary{font-size:11px;min-height:45px;min-width:215px}.final-bouquet,.keepsake-section{padding-top:72px;padding-bottom:72px}.bouquet-layout{grid-template-columns:1fr;gap:13px;margin-top:24px}.bouquet-art{max-width:330px}.bouquet-note{max-width:360px;min-height:260px;padding:28px 25px}.bouquet-note h3{font-size:29px;min-height:0}.bouquet-note>p:not(.bouquet-progress){font-size:12px;line-height:1.95}.bouquet-note .bouquet-complete{font-size:12px!important}.keepsake-layout{grid-template-columns:1fr;max-width:345px;gap:35px;margin-top:33px}.keepsake-preview{padding:0 17px}.keepsake-controls label,.keepsake-controls legend{font-size:11px}.keepsake-photo-options button{font-size:9px;padding:9px 10px}.keepsake-controls input,.keepsake-controls textarea{font-size:12px}.keepsake-help,.keepsake-status{font-size:10px}.opening-tree-scene{display:flex;flex-direction:column-reverse;padding:60px 25px 78px;gap:3px}.opening-tree-art{width:min(74vw,315px)}.opening-poem h2{font-size:35px;letter-spacing:-1.4px;line-height:1.18;margin-top:15px}.opening-poem h2 em{font-size:1.14em}.opening-poem .opening-overline{font-size:8px}.opening-message{font-size:11px;line-height:1.9;max-width:300px;margin:18px auto 22px}.opening-actions{margin-top:22px}.opening-actions .primary{font-size:10px;min-width:220px}.opening-overline{font-size:15px}.seed-pointer span{font-size:12px}.opening-banner h1{font-size:clamp(74px,17vw,113px);letter-spacing:-3px;line-height:1}.opening-banner p{font-size:14px}.banner-name{font-size:30px}.opening-music{font-size:9px}.opening-footer{font-size:6px;letter-spacing:1.5px}#love-intro .love-caption{font-size:13px;max-width:280px}.wish-celebration-content{padding-left:25px;padding-right:25px}.wish-celebration h2{font-size:37px;line-height:1.17;letter-spacing:-1.3px}.wish-celebration #wish-celebration-message{font-size:11px;line-height:1.95;max-width:300px}.wish-birthday{font-size:22px}.wish-last-line{font-size:11px;max-width:280px}.wish-celebration .primary{min-width:240px}.wish-light{width:75px;height:95px}.end{font-size:8px;letter-spacing:1.2px}}@media(max-width:370px){.chapter-nav{gap:10px}.top{padding-left:14px;padding-right:14px;gap:10px}.letter{margin-left:15px;margin-right:15px;padding-left:23px;padding-right:23px}.letter h2{font-size:28px}.birthday-hero .animated-birthday{font-size:60px}.keepsake-photo-options button{font-size:8px}}@media(prefers-reduced-motion:reduce){.gift-button{animation:none}.birthday-hero .hero-whisper,.birthday-hero .welcome-note,.birthday-hero .welcome-scroll{opacity:1}.welcome-halo{animation:none}}

@media(min-width:701px){.birthday-hero .animated-birthday .welcome-name{margin-left:.22em}}

/* Keep the wishes balanced without their former number labels. */
.wish h3{margin-top:0}
@media(max-width:700px){.wish{display:block}.wish h3{margin-top:0}}
