:root{--paper:#fbf7f2;--ink:#59434c;--muted:#9a8188;--red:#a65d79;--line:#eadde0;--section-space:100px;--content-width:1040px}html{scroll-behavior:smooth;scroll-padding-top:100px}body{font-size:14px;line-height:1.7}body:before{opacity:.12}button,a,input{-webkit-tap-highlight-color:transparent}button{line-height:1.4}button:focus-visible,a:focus-visible{outline:2px solid var(--red);outline-offset:5px}h1,h2,h3,p{overflow-wrap:break-word}h2{line-height:1.12;letter-spacing:-1px}.eyebrow{font-size:9px;line-height:1.7;letter-spacing:2px;color:var(--red)}.top{max-width:var(--content-width);margin:auto;padding:20px 24px;gap:22px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fbf7f2f0;backdrop-filter:blur(15px);z-index:25;min-height:76px}.brand{font-size:26px;white-space:nowrap}.chapter-nav{display:flex;gap:26px;align-items:center;margin:auto}.chapter-nav a{color:var(--muted);text-decoration:none;font-size:11px;letter-spacing:.3px;transition:color .2s}.chapter-nav a:hover,.chapter-nav a[aria-current=true]{color:var(--red)}.music{font-size:10px;padding:9px 13px;white-space:nowrap;border-color:var(--line)}.primary{border-radius:30px;padding:15px 27px;width:auto;min-width:220px;max-width:100%;font-size:12px;background:var(--red);letter-spacing:.2px;box-shadow:none}.primary:hover{background:#914b67;transform:translateY(-2px)}#surprise{animation:arrive .9s ease}.birthday-hero{min-height:0;background:none;padding:78px 24px 66px;display:block;text-align:center;max-width:var(--content-width);margin:auto}.birthday-hero .animated-birthday{font-size:clamp(66px,9vw,104px);line-height:.95;margin:25px 0 22px;letter-spacing:-3px}.birthday-hero .animated-birthday em{display:inline;font-size:inherit;opacity:1;animation:none;margin-left:.15em;color:var(--red);font-weight:400;text-shadow:none}.hero-whisper{opacity:1;animation:none;font:italic 24px 'Bodoni Moda',Georgia,serif;line-height:1.5;margin:0 0 14px;color:var(--red)}.welcome-note{font-size:12px;line-height:1.9;color:var(--muted);margin:0 auto 23px;max-width:360px}.welcome-scroll{display:inline-flex;gap:18px;align-items:center;text-decoration:none;color:var(--red);font-size:10px;padding:8px 0;border-bottom:1px solid #d9b9c7}.welcome-scroll span{font-size:16px}.letter{max-width:700px;margin:0 auto;padding:46px 58px;background:#fffdfa;border:1px solid var(--line);border-radius:5px;box-shadow:0 12px 40px #6a465207}.letter:before{font-size:25px;right:25px;top:23px;opacity:.65}.letter h2{font-size:38px;margin:17px 0 25px}.letter p{font-size:13px;line-height:2.05;margin:0 0 17px;color:#8b757d}.signature{font-size:27px;margin-top:25px}.wishes{max-width:850px;padding:45px 24px 72px;margin:auto}.wishes .wishes-label{font:10px 'DM Sans',sans-serif;letter-spacing:1.6px;text-transform:uppercase;color:var(--muted);margin:0 0 25px}.wish-grid{gap:28px}.wish{padding:20px 0 0;border-color:var(--line)}.wish .number{font-size:17px;color:#bd94a4}.wish h3{font-size:24px;margin:9px 0}.wish p{font-size:11px;line-height:1.85;margin:0}.memories,.flower-garden,.special-letters,.cake-section,.cosmic-love{padding:var(--section-space) 24px;text-align:center}.memories,.special-letters{max-width:var(--content-width);margin:auto;border-top:1px solid var(--line)}.memories h2,.flower-garden h2,.special-letters h2,.cake-section h2,.cosmic-love h2{font-size:clamp(35px,5vw,49px);margin:15px auto 20px;font-weight:400;max-width:720px;line-height:1.13}.section-note{max-width:410px;font-size:12px;line-height:1.9;margin:0 auto 34px;color:var(--muted)}.gift-reveal{padding:8px 0 0}.gift-button{transform:scale(.86);margin-bottom:8px;filter:drop-shadow(0 12px 14px #9d667e20)}.gift-invitation,.gallery-dedication{font-size:21px;line-height:1.5;margin:15px auto;color:var(--red)}.gift-reveal>.eyebrow{font-size:8px;letter-spacing:1.5px}.gift-gallery{padding-top:0;overflow:hidden}.gift-gallery .memory-grid{height:437px;margin-top:28px;max-width:800px;isolation:isolate;transform-style:flat}.gift-gallery .memory-card{width:280px;margin-left:-140px;transform-style:flat;opacity:1;filter:brightness(var(--card-brightness,1));transform:translateX(calc(var(--card-offset)*85%)) scale(var(--card-scale)) rotateY(calc(var(--card-offset)*-18deg))}.gift-gallery .memory-card:not(.current-card){opacity:.55}.memory-front,.memory-back{border-radius:4px;border-color:var(--line);box-shadow:0 12px 30px #76556412}.memory-back{background:#f4e9ee;padding:27px;overflow:auto}.memory-back p{font-size:21px;line-height:1.5}.memory-back small{font-size:8px;letter-spacing:1.3px}.memory-caption{font-size:23px;line-height:1.15;margin-top:18px}.gallery-controls{gap:22px;margin:0 auto}.gallery-controls button{width:40px;height:40px;background:transparent;border-color:#d9c3cd}.gallery-controls span{font-size:9px;letter-spacing:2px}.gallery-tip{font-size:10px;margin-top:15px;color:var(--muted)}.flower-garden{background:#f2ede9;padding-bottom:65px;border-top:1px solid var(--line)}.garden-stage{max-width:850px;height:350px!important;border-radius:140px 140px 12px 12px;border:1px solid #e1cfd9;background:radial-gradient(ellipse at 50% 100%,#354442,#2a3440 52%,#242936);margin:35px auto 26px}.garden-touch-hint{font-size:19px;color:#d9c9d3;top:32px}.garden-flower{filter:drop-shadow(0 0 8px #e9cee633)}.garden-message{font-size:21px;min-height:32px;margin:20px auto 0;color:var(--red)}.cosmic-love{background:#f2ede9;color:var(--ink);padding-top:15px;padding-bottom:var(--section-space)}.cosmic-love:before{content:'';display:block;width:50px;border-top:1px solid #d9c3cd;margin:0 auto 55px}.cosmic-love .eyebrow{color:var(--red)}.cosmic-love h2{color:var(--ink);font-size:37px}.cosmic-love>p{color:var(--muted);font-size:12px}.particle-stage{max-width:850px;height:390px;border-radius:12px;background:radial-gradient(ellipse at 50% 60%,#243446,#232735 75%);margin:30px auto 25px;border:1px solid #d9c7d3;overflow:hidden}.particle-name{font-size:42px;color:#d7e6f2}.particle-pool{opacity:.55;bottom:30px}.cosmic-button{background:transparent;border:1px solid #bd96a7;color:var(--red);font-size:11px;padding:13px 24px;min-width:200px;border-radius:30px}.cosmic-button:hover{background:#eadde4}.love-message-button{border:0;background:none;color:var(--red);font-size:10px;padding:14px 18px;text-decoration:underline;text-underline-offset:5px;display:block;margin:0 auto}.cosmic-love .cosmic-note{font-size:19px;min-height:25px;margin:8px auto 0;color:var(--muted)}.special-letters{border-top:0}.envelope-grid{max-width:850px;margin:42px auto 30px;gap:28px}.envelope-button{padding:5px}.paper-envelope{height:145px;background:#ecdce4;border-color:#d7b9c7;box-shadow:0 7px 20px #7655640a}.envelope-flap{background:#f7edf1}.envelope-seal{width:34px;height:34px;font-size:20px}.envelope-caption{font-size:24px;line-height:1.2;margin:19px 0 8px}.envelope-status{font-size:8px;letter-spacing:1px}.letters-progress{font-size:10px;letter-spacing:.5px;margin:25px 0 0}.secret-finale{border-radius:6px;background:#f7eef2;border-color:#e1cbd5;padding:30px;max-width:580px}.secret-finale h3{font-size:32px;line-height:1.15}.secret-finale p{font-size:12px;line-height:1.9}.special-dialog{border-radius:9px;border-color:var(--line);background:var(--paper);padding:50px 35px 35px}.special-dialog h3{font-size:35px;line-height:1.15}.special-dialog p{font-size:24px;line-height:1.6}.special-dialog::backdrop{background:#49303e66;backdrop-filter:blur(6px)}.cake-section{background:#f3e9ec;border-top:1px solid #e7d5dd}.cake-section p{font-size:12px;line-height:1.9}.cake{transform:scale(.85);margin:65px auto 18px;box-shadow:0 8px 0 #c99f8a}.relock{font-size:10px;margin-top:23px;text-underline-offset:4px}.end{padding:25px 24px;font-size:9px;letter-spacing:1px;background:#fbf7f2;border-top:1px solid var(--line)}.petal{opacity:.5;font-size:15px!important}.opening-banner{background:radial-gradient(ellipse at 25% 0,#cc829f,#ab567b 60%,#84415f)}.opening-scene{background:radial-gradient(ellipse at 30% 5%,#fff8e7,transparent 55%),radial-gradient(ellipse at 70% 90%,#f4dadd,transparent 60%),#f9ebdf}.opening-poem .opening-overline{font-size:9px;letter-spacing:1.6px}.opening-poem h2{font-size:clamp(46px,6vw,78px)}.opening-message{font-size:21px}.opening-actions .primary{background:var(--red)}.opening-tree-scene{max-width:1120px;gap:45px}.opening-footer{font-size:7px;letter-spacing:2px}.opening-for{font-size:8px}.opening-overline{font-size:22px}.opening-seed .opening-overline{margin-bottom:0}#love-intro .skip-intro{font-size:10px}body.opening-active>.top{display:none}@media(max-width:800px){:root{--section-space:76px}.top{padding:17px 20px;gap:15px;min-height:68px}.chapter-nav{gap:20px}.letter{margin:0 25px;padding:38px}.gift-gallery .memory-grid{height:420px}.gift-gallery .memory-card{width:265px;margin-left:-132.5px}.envelope-grid{gap:12px}.paper-envelope{height:120px}.envelope-caption{font-size:21px}.opening-tree-scene{gap:0}.opening-poem h2{font-size:38px}}@media(max-width:600px){:root{--section-space:64px}html{scroll-padding-top:84px}.top{padding:14px 16px;gap:12px}.brand{font-size:23px}.chapter-nav{gap:13px}.chapter-nav a{font-size:10px}.music{font-size:0;padding:8px 9px;min-width:30px;line-height:1.2}.music:after{content:'♫';font-size:16px}.music[aria-pressed=true]:after{color:var(--red)}.birthday-hero{padding:60px 22px 48px}.birthday-hero .animated-birthday{font-size:66px;letter-spacing:-2px}.birthday-hero .animated-birthday em{display:block;margin:.04em 0 0}.hero-whisper{font-size:22px}.welcome-note{font-size:11px}.letter{margin:0 19px;padding:31px 25px}.letter h2{font-size:32px}.letter p{font-size:12px;line-height:2}.letter:before{right:18px;top:20px}.signature{font-size:25px}.wishes{padding:35px 25px 48px;max-width:450px}.wishes-label{font-size:9px!important}.wish-grid{grid-template-columns:1fr;gap:19px}.wish{padding-top:15px;text-align:left;display:grid;grid-template-columns:34px 1fr;column-gap:9px}.wish .number{grid-row:span 2;margin-top:6px}.wish h3{font-size:23px;margin:0 0 4px}.wish p{font-size:11px}.memories,.flower-garden,.special-letters,.cake-section,.cosmic-love{padding-left:20px;padding-right:20px}.memories h2,.flower-garden h2,.special-letters h2,.cake-section h2{font-size:35px}.section-note{font-size:11px;max-width:310px;margin-bottom:25px}.eyebrow{font-size:8px;letter-spacing:1.7px}.gift-reveal{padding-top:0}.gift-invitation,.gallery-dedication{font-size:20px}.gift-gallery .memory-grid{height:407px;overflow:visible}.gift-gallery .memory-card{width:245px;margin-left:-122.5px;transform:translateX(calc(var(--card-offset)*85%)) scale(var(--card-scale)) rotateY(calc(var(--card-offset)*-16deg))}.gift-gallery .memory-inner,.gift-gallery .memory-card{min-height:380px}.gift-gallery .memory-photo{height:290px}.memory-back p{font-size:20px}.garden-stage{height:315px!important;border-radius:115px 115px 10px 10px;margin-top:27px}.garden-touch-hint{font-size:17px;top:28px}.garden-message{font-size:19px;max-width:290px;line-height:1.4}.flower-garden{padding-bottom:45px}.cosmic-love{padding-top:0}.cosmic-love:before{margin-bottom:45px}.cosmic-love h2{font-size:32px}.particle-stage{height:330px;margin:25px auto 23px}.particle-name{font-size:37px}.particle-pool{width:155px;bottom:26px}.cosmic-love .cosmic-note{font-size:17px;max-width:300px;line-height:1.5}.envelope-grid{grid-template-columns:1fr;max-width:280px;gap:30px;margin-top:32px}.paper-envelope{height:142px}.envelope-caption{font-size:25px}.letters-progress{font-size:10px}.secret-finale{padding:27px 22px}.secret-finale h3{font-size:30px}.special-dialog{padding:43px 25px 27px}.special-dialog h3{font-size:31px}.special-dialog p{font-size:22px}.cake-section p{font-size:11px}.primary{min-width:210px;font-size:11px}.opening-poem .opening-overline{font-size:8px}.opening-poem h2{font-size:36px}.opening-message{font-size:18px}.opening-actions .primary{min-width:215px}.opening-skip{bottom:38px}.opening-tree-art{width:min(76vw,330px)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-whisper{opacity:1}.petal{display:none}}
