@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500&family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400;1,500&display=swap";:root{font-family:DM Sans,system-ui,sans-serif;color:#795461;background:#fffafb;--rose:#aa536f;--muted:#846873;--line:#edced8;--serif:"Cormorant Garamond",Georgia,serif;font-synthesis:none;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #aa536f;outline-offset:6px}p{line-height:1.85}h1,h2,h3,p{margin-top:0}button{color:var(--rose)}.page{overflow:hidden;background:#fffafb}.eyebrow{display:block;text-transform:uppercase;font-size:10px;letter-spacing:.24em;color:var(--rose)}.cover{min-height:100svh;display:grid;place-items:center;padding:65px 25px;background:radial-gradient(ellipse at 50% 35%,#fffefd 15%,#fff1f5 65%,#f9e0e9);position:relative;overflow:hidden}.cover:before{content:"";position:absolute;inset:18px;border:1px solid #ebcad5;border-radius:160px 160px 12px 12px;pointer-events:none}.cover__content{position:relative;text-align:center;width:min(570px,100%);z-index:2}.cover p{font:400 clamp(31px,5vw,52px)/1.15 var(--serif);margin:25px 0 32px}.cover button{border:1px solid #e5b7c7;background:#f6d7e3;border-radius:40px;padding:17px 28px;display:inline-flex;gap:28px;align-items:center;box-shadow:0 8px 24px #c9789220;transition:transform .3s,background .3s}.cover button:hover{transform:translateY(-3px);background:#f2c7d8}.cover-caption{display:block;font-size:11px;color:var(--muted);margin-top:22px;letter-spacing:.04em}.envelope{position:relative;width:190px;height:116px;margin:0 auto 42px;background:#f7dce6;border:1px solid #e8b8ca;border-radius:6px;box-shadow:0 16px 35px #c9789225;transform:rotate(-7deg);animation:float 6s ease-in-out infinite}.envelope:before{content:"";position:absolute;inset:0;background:#fff5f8;clip-path:polygon(0 0,100% 0,50% 66%)}.envelope span{position:absolute;top:-21px;left:15px;right:15px;background:#fffdfb;height:35px;padding:8px;font:italic 15px var(--serif);border:1px solid #eed9df;z-index:-1}.envelope b{position:absolute;top:46px;left:75px;background:#efb7cc;border:3px double #fff0f6;border-radius:50%;width:40px;height:40px;display:grid;place-items:center;font-size:23px;font-weight:400}.hero{min-height:100svh;position:relative;display:grid;place-items:center;padding:120px 25px 105px;text-align:center;background:radial-gradient(ellipse at 50% 50%,#fffdfc 25%,#fff0f5 80%)}.brand{position:absolute;top:31px;left:5vw;font:italic 20px var(--serif);color:var(--rose)}.hero__content{position:relative;z-index:1;width:min(860px,100%)}.hero h1{font:400 clamp(38px,6.5vw,76px)/1.1 var(--serif);margin:30px 0 0}.hero h1 em{display:block;font-size:clamp(85px,14vw,156px);font-weight:400;color:#bb6a86;line-height:1.05}.hero__content>p{max-width:470px;margin:10px auto 0;font-size:14px;color:var(--muted)}.scroll{position:absolute;bottom:25px;display:grid;justify-items:center;gap:10px;text-decoration:none;font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:var(--rose)}.scroll span{height:27px;width:1px;background:#d494ab}.ambient{display:none}.bouquet{height:195px;width:260px;position:relative;margin:5px auto 0}.flower{position:absolute;bottom:12px;left:125px;width:1px;height:150px;transform-origin:bottom;animation:sway 7s ease-in-out infinite}.flower--0{rotate:-32deg;height:125px}.flower--1{rotate:-16deg;height:168px;animation-delay:-2s}.flower--2{height:185px;animation-delay:-4s}.flower--3{rotate:19deg;height:155px;animation-delay:-1s}.flower--4{rotate:37deg;height:112px;animation-delay:-3s}.stem{position:absolute;inset:22px 0 0;width:2px;background:#a6b69b}.stem i{position:absolute;width:28px;height:13px;border-radius:100% 0;background:#c8d4b9;top:40%;left:0;rotate:-25deg}.stem i+i{top:65%;left:-27px;rotate:30deg;scale:-1 1}.blossom{position:absolute;top:0;left:0;width:1px;height:1px}.blossom span{position:absolute;left:-13px;top:-34px;width:26px;height:35px;transform-origin:50% 100%;border-radius:65% 65% 45% 45%;background:linear-gradient(#f8dbe6,#e8a3bd);border:1px solid #fff4f780}.flower:nth-child(2n) .blossom span{background:linear-gradient(#fffafc,#f0c7d8)}.blossom b{position:absolute;width:16px;height:16px;background:#f3dcaa;border:3px dotted #e3bd88;border-radius:50%;left:-8px;top:-8px}.pad{padding:110px max(6vw,24px)}.note{background:#fffdfb;text-align:center;border-block:1px solid #f3e4e8}.note>div{max-width:790px;margin:auto}.number{display:block;font:38px var(--serif);color:#c67b97;margin-bottom:20px}.note p{font:400 clamp(28px,4vw,44px)/1.4 var(--serif);margin:28px 0 0}.reasons{background:#fff3f7}.heading{text-align:center;margin-bottom:45px}.heading h2{font:400 clamp(35px,5vw,56px) var(--serif);margin:15px 0}.reason-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1100px;margin:auto}.reason-grid article{background:#fffcfd;border:1px solid #f0dce4;padding:36px 30px;text-align:center;border-radius:100px 100px 18px 18px;box-shadow:0 12px 35px #c9789209}.reason-grid article>span:not(.card-icon){font-size:9px;text-transform:uppercase;letter-spacing:.16em;color:var(--rose)}.card-icon{display:block;font:55px var(--serif);color:#cc8ba5;margin-bottom:23px}.reason-grid h3{font:34px var(--serif);margin:22px 0 12px}.reason-grid p{font-size:13px;color:var(--muted);margin:0}.letter{background:repeating-linear-gradient(90deg,#fff9fb 0px 38px,#fff2f6 38px 39px)}.paper{position:relative;width:min(730px,100%);margin:auto;background:#fffefd;border:1px solid #efdee4;padding:70px clamp(25px,7vw,80px) 50px;box-shadow:0 20px 65px #bf7b9514;border-radius:5px;outline:1px solid #f1e1e6;outline-offset:-12px}.paper-seal{position:absolute;top:-25px;left:calc(50% - 25px);display:grid;place-items:center;background:#f4cddd;border:4px double #fff4f8;border-radius:50%;width:50px;height:50px;font-size:26px;color:var(--rose)}.paper h2{font:italic 36px var(--serif);margin-bottom:30px}.paper>p{font:400 clamp(19px,2.1vw,23px)/1.8 var(--serif);margin:24px 0}.signature{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin-top:35px;padding-top:25px;font-size:11px}.signature strong{font:italic 40px var(--serif);color:var(--rose)}.wish{background:radial-gradient(ellipse,#fffdfc,#fce7ef);text-align:center}.wish>div{max-width:800px;margin:auto}.wish blockquote{font:italic clamp(32px,5vw,57px)/1.25 var(--serif);margin:28px 0}.divider{display:flex;align-items:center;gap:20px;max-width:200px;margin:40px auto;color:#c47d97}.divider:before,.divider:after{content:"";height:1px;background:var(--line);flex:1}.wish p{font-size:13px}.wish strong{font:italic 38px var(--serif);color:var(--rose)}footer{background:#fffafb;color:var(--muted);text-align:center;font-size:10px;letter-spacing:.15em;padding:25px;border-top:1px solid #f0dce4}.petals{position:fixed;inset:0;pointer-events:none;z-index:8}.music-toggle{position:fixed;right:20px;top:20px;z-index:20;display:flex;align-items:center;gap:8px;padding:8px 13px 8px 8px;border:1px solid #e8c6d4;border-radius:30px;background:#fffafbf2;box-shadow:0 3px 15px #c9789212}.music-toggle>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#fce6ee}.music-toggle small{font-size:9px}.playing{animation:pulse 3s infinite}@keyframes float{50%{transform:translateY(-7px) rotate(-3deg)}}@keyframes sway{50%{transform:rotate(4deg)}}@keyframes pulse{50%{box-shadow:0 0 0 5px #efbfd230}}.rose-head{position:absolute;width:94px;height:94px;left:-47px;top:-38px;overflow:visible}.flower--0 .rose-head,.flower--4 .rose-head{width:76px;height:76px;left:-38px;top:-30px}.stem{background:linear-gradient(90deg,#8ea28c,#bacab0);width:3px}.stem i{background:linear-gradient(150deg,#d8e0c8,#93ad91);border-bottom:1px solid #a5b69a}.flower{animation:rose-sway 9s ease-in-out infinite;will-change:transform}.envelope{animation:envelope-drift 7s ease-in-out infinite}@keyframes rose-sway{0%,to{transform:rotate(-1.5deg)}50%{transform:rotate(1.5deg)}}@keyframes envelope-drift{0%,to{transform:translateY(0) rotate(-7deg)}50%{transform:translateY(-7px) rotate(-3deg)}}@media(max-width:700px){.pad{padding:75px 24px}.reason-grid{grid-template-columns:1fr;max-width:380px;gap:18px}.reason-grid article{border-radius:60px 60px 18px 18px;padding:25px 30px}.card-icon{margin-bottom:12px}.brand{font-size:16px;left:20px;top:29px}.hero{padding-top:110px}.hero__content>p{font-size:13px}.letter{padding-inline:18px}.music-toggle{right:12px;top:18px}.paper h2{font-size:29px}.cover:before{inset:10px}.cover p{font-size:36px}.bouquet{scale:.9;margin-bottom:-12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}.music-toggle{min-height:44px;top:max(20px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right))}.cover .envelope-trigger{display:block;width:220px;height:165px;padding:35px 15px 14px;margin:10px auto 28px;border:0;border-radius:8px;background:transparent;box-shadow:none;perspective:800px}.cover .envelope-trigger:hover{background:transparent;transform:none}.opening-envelope{display:block;position:relative;width:190px;height:116px;background:#f3cedd;border:1px solid #e8b8ca;border-radius:6px;box-shadow:0 16px 35px #c9789225;transform:rotate(-7deg);perspective:700px}.envelope-paper{position:absolute;top:-18px;left:14px;right:14px;height:125px;background:#fffdfb;border:1px solid #eed9df;border-radius:3px;z-index:1;padding:8px 5px;color:var(--rose)}.envelope-paper em{display:block;font:italic 14px var(--serif)}.envelope-paper strong{display:block;margin-top:14px;font:400 22px/1.1 var(--serif)}.envelope-front{position:absolute;inset:0;background:linear-gradient(145deg,#f8dce7,#f4cddd);clip-path:polygon(0 0,50% 64%,100% 0,100% 100%,0 100%);z-index:3;border-radius:5px}.envelope-flap{position:absolute;inset:0;background:#fff1f6;clip-path:polygon(0 0,100% 0,50% 65%);transform-origin:50% 0;z-index:4;backface-visibility:visible}.envelope-seal{position:absolute;top:46px;left:75px;width:40px;height:40px;display:grid;place-items:center;font:26px var(--serif);background:#efb7cc;border:3px double #fff0f6;border-radius:50%;z-index:5}.cover button:disabled{cursor:default}.hero h1:focus{outline:none}.memories{background:#fffafc}.memories .heading>p{font-size:13px;color:var(--muted)}.memory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;max-width:1100px;margin:auto}.memory{position:relative;margin:0;padding:14px 14px 24px;background:#fffefd;border:1px solid #f0dce4;box-shadow:0 14px 35px #bf7b9512;border-radius:4px}.memory:before{content:"";position:absolute;width:76px;height:24px;top:-10px;left:calc(50% - 38px);background:#f2cbdcaa;transform:rotate(-5deg);z-index:1}.memory-photo{aspect-ratio:4/5;background:#fcecf2;overflow:hidden}.memory-photo img{display:block;width:100%;height:100%;object-fit:cover}.memory-placeholder{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px;background:radial-gradient(ellipse,snow,#f9e3ec)}.memory-placeholder>span{font:60px var(--serif);color:#c1849c}.memory-placeholder p{font:italic 25px var(--serif);margin:15px 0}.memory-placeholder small{font-size:10px;color:var(--muted)}.memory figcaption{padding:25px 10px 0}.memory h3{font:italic 29px var(--serif);margin:12px 0}.memory figcaption p{font-size:13px}.letter-intro{font-size:13px!important;color:var(--muted)}.letter-chapter p{font:400 clamp(19px,2.1vw,23px)/1.85 var(--serif);margin:0 0 22px;overflow-wrap:break-word}.letter-pause{text-align:center;color:#c1849c;font-size:22px;margin:35px 0}.letter-chapter:first-child p:first-child:first-letter{font-size:2em;color:var(--rose)}@media(max-width:700px){.memory-grid{grid-template-columns:1fr;max-width:380px;gap:35px}.letter-chapter p{font-size:20px;line-height:1.8}}.music-error{position:fixed;top:70px;right:14px;max-width:260px;padding:12px 16px;background:#fff5f8;border:1px solid #e8c6d4;border-radius:14px;z-index:21;font-size:12px}@media(max-width:700px){.music-toggle{top:auto;bottom:max(18px,env(safe-area-inset-bottom));box-shadow:0 4px 22px #c9789230}.music-error{top:auto;bottom:74px}}
