:root{font-family:DM Sans,sans-serif;color:#49383a;background:#fff8f3;font-synthesis:none;text-rendering:optimizeLegibility;--ink:#49383a;--muted:#967f7d;--rose:#b76570;--rose-dark:#914b57;--pink:#f0d4d1;--paper:#fffdfa;--cream:#fff8f3}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:72px}body{margin:0;min-width:320px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}.topbar{height:66px;padding:0 clamp(20px,6vw,90px);display:flex;align-items:center;justify-content:space-between;background:#fff8f3e6;position:absolute;z-index:5;top:0;left:0;right:0;border-bottom:1px solid rgba(166,102,108,.12)}.brand{text-decoration:none;color:var(--ink);font-family:Playfair Display,serif;font-style:italic;font-size:18px;display:flex;align-items:center;gap:9px}.brand-mark{color:var(--rose);font-size:25px}.sound-toggle{border:1px solid #ead8d3;background:#ffffff8c;border-radius:30px;padding:8px 12px;color:#8c7271;display:flex;gap:7px;align-items:center;font-size:11px}.hero{min-height:740px;height:100svh;max-height:940px;position:relative;overflow:hidden;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 45%,#fff,#fff9f5 43%,#f8e9e4);text-align:center;padding:100px 22px 56px}.hero:before,.hero:after{content:"";position:absolute;width:330px;height:330px;border:1px solid rgba(183,101,112,.13);border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%)}.hero:after{width:440px;height:440px;border-style:dashed;opacity:.55}.hero-grain{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.18;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E");pointer-events:none}.hero-content{position:relative;z-index:1;max-width:680px}.eyebrow,.section-kicker,.date-label,.paper-top{font-size:9px;letter-spacing:.22em;color:#a78984;font-weight:700}.eyebrow{display:flex;align-items:center;justify-content:center;gap:12px}.eyebrow span{width:24px;height:1px;background:#d9b5b1}.hero-heart{width:68px;height:68px;border:1px solid #e8c9c5;border-radius:50%;display:grid;place-items:center;color:var(--rose);margin:35px auto 16px;box-shadow:0 0 0 8px #e8c9c526}.script{font-family:Caveat,cursive;font-weight:500}.hero-script{font-size:25px;color:#a56b70;margin:0 0 7px}.hero h1,h2,h3{font-family:Playfair Display,serif;font-weight:500;letter-spacing:-.04em}.hero h1{font-size:clamp(65px,11vw,112px);line-height:.94;margin:0;color:#4b393a}.hero h1 em,.section-wrap h2 em{font-weight:500;color:var(--rose);font-style:italic}.hero-sub{color:#907c79;line-height:1.8;font-size:14px;margin:25px 0 26px}.primary-btn{border:0;border-radius:50px;background:#a95966;color:#fff;padding:15px 23px;display:inline-flex;align-items:center;gap:18px;font-size:12px;box-shadow:0 8px 22px #b7657033;transition:.25s}.primary-btn:hover{transform:translateY(-2px);background:#914b57}.hero-foot{font-size:8px;letter-spacing:.17em;color:#b39b96;margin-top:66px;display:flex;align-items:center;justify-content:center;gap:10px}.floating{position:absolute;color:#d69ba0;font-family:Playfair Display,serif}.f1{top:24%;left:18%;font-size:28px}.f2{top:31%;right:17%;font-size:35px;transform:rotate(14deg)}.f3{bottom:19%;left:22%;font-size:28px}.hero-sticker{position:absolute;border:1px solid #e5c9c3;color:#aa7c7d;font-family:Caveat,cursive;font-size:17px;padding:9px 14px;transform:rotate(-9deg);background:#fffaf6c9}.hero-sticker svg{vertical-align:middle}.sticker-left{bottom:18%;left:8%}.sticker-right{right:9%;top:25%;transform:rotate(8deg);font-size:15px}.sticker-right span{font-size:11px}.section-wrap{max-width:1040px;margin:0 auto;padding:112px 36px}.section-kicker{margin-bottom:38px}.intro-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:center}.accent-script{font-size:26px;color:#b66c75;margin:0 0 5px}.section-wrap h2{font-size:clamp(42px,6vw,68px);line-height:1.08;margin:0 0 23px}.body-copy{max-width:450px;color:#897775;font-size:14px;line-height:1.95}.date-card{position:relative;background:#f3dfda;min-height:270px;padding:45px 25px 30px;text-align:center;transform:rotate(2deg);box-shadow:7px 12px #ead0cb}.date-flower{position:absolute;right:22px;top:12px;color:#c08083;font-size:25px}.date-label{display:block;letter-spacing:.25em}.date-card strong{display:block;font:500 70px Playfair Display,serif;color:#9d5b65;margin:22px 0 12px}.date-card strong i{font-size:22px;font-weight:400}.date-divider{font-size:12px;color:#bc8387}.date-card p{font:italic 15px Playfair Display,serif;color:#986c6b}.date-hand{display:block;font:21px Caveat,cursive;color:#ac7075;margin-top:18px}.reasons-section,.letters-section{background:#f7e9e4;padding:1px 0 40px;position:relative;overflow:hidden}.reasons-section:before,.letters-section:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(#d7aaa4 .7px,transparent .7px);background-size:18px 18px;opacity:.17;pointer-events:none}.reasons-section .section-wrap,.letters-section .section-wrap{position:relative}.section-heading{display:flex;justify-content:space-between;align-items:end}.heading-doodle{font:100px Playfair Display,serif;color:#d6a3a1;line-height:1;transform:rotate(12deg);margin:0 35px 25px}.reason-stage{max-width:530px;margin:20px auto 0;text-align:center;position:relative;padding:0 12px}.reason-card{height:300px;max-width:460px;margin:auto;background:#fffdf9;box-shadow:0 15px 45px #80575a12;position:relative;padding:38px 35px 25px;display:flex;align-items:center;justify-content:center;flex-direction:column;transform:rotate(-1deg);border:1px solid #f3e8e0}.tape{position:absolute;width:88px;height:25px;top:-11px;left:calc(50% - 44px);background:#dfb9ae88;transform:rotate(-2deg)}.card-number{position:absolute;top:25px;left:25px;color:#b68d87;font-size:10px;letter-spacing:.1em}.card-number i{font-style:normal;color:#d1bbb4}.big-heart{font-size:42px;color:#bd7b81;margin-bottom:16px}.reason-card p{font:italic 25px/1.45 Playfair Display,serif;max-width:340px;color:#655052;margin:0}.card-sign{position:absolute;bottom:20px;right:24px;font:19px Caveat,cursive;color:#b27a7c}.paper-shadow{position:absolute;width:450px;height:300px;left:50%;top:8px;transform:translate(-48%) rotate(3deg);background:#e9d4cc}.reason-controls{display:flex;justify-content:center;align-items:center;gap:24px;margin-top:30px}.round-btn{border:1px solid #d8b8b1;background:transparent;color:#986d70;width:38px;height:38px;border-radius:50%;display:grid;place-items:center}.round-btn.filled{background:#a95966;color:#fff;border-color:#a95966}.dots{display:flex;gap:8px}.dot{border:0;background:#d7b9b3;width:6px;height:6px;border-radius:10px;padding:0;transition:.2s}.dot.active{width:21px;background:#a95966}.swipe-hint{font-size:10px;color:#a78e89;margin:15px 0 0}.memories-head{display:flex;justify-content:space-between;align-items:center}.outline-icon{color:#bc8182;stroke-width:1}.memories-copy{margin-top:0;margin-bottom:35px}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:start}.photo-card{position:relative;background:#fffefa;border:0;padding:12px 12px 20px;box-shadow:0 8px 25px #704b4b12;text-align:left;cursor:pointer;transition:.25s}.photo-card:hover{transform:translateY(-6px) rotate(0)!important}.photo-1{transform:rotate(-2deg);margin-top:16px}.photo-2{transform:rotate(1.5deg)}.photo-3{transform:rotate(-1deg);margin-top:27px}.photo-placeholder{height:210px;background:linear-gradient(145deg,#f2dfd9,#ead3cf);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;color:#a67878;font-size:9px;letter-spacing:.12em}.photo-icon{width:45px;height:45px;border:1px solid #c99c98;border-radius:50%;display:grid;place-items:center}.photo-placeholder small{font-size:9px;letter-spacing:0;text-transform:none;font-style:italic}.photo-caption{padding:15px 6px 0}.photo-caption span{font-size:9px;color:#b08481;letter-spacing:.1em;text-transform:uppercase}.photo-caption strong{display:block;font:20px Playfair Display,serif;margin:6px 0;color:#604b4b}.photo-caption p{font-size:10px;color:#9a8580;line-height:1.55;margin:0}.photo-heart{position:absolute;right:19px;top:18px;color:#b56c75;font-size:19px}.letters-section{background:#f3e1dc}.letters-section .body-copy{margin-top:-3px}.envelopes{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-top:38px}.envelope{min-height:175px;border:1px solid #e8cfc8;background:#fffaf5;color:#9e666b;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;position:relative;transition:.25s;box-shadow:0 7px 16px #79595a0d}.envelope:hover{transform:translateY(-5px) rotate(-1deg);box-shadow:0 12px 25px #79595a16}.envelope svg{margin:10px 0 2px}.envelope strong{font:19px Playfair Display,serif;color:#604c4c}.envelope small{font-size:9px;color:#ad8d86}.envelope-stamp{position:absolute;right:12px;top:9px;font-size:13px;color:#c58c8c}.little-joy{padding-top:80px;padding-bottom:80px}.joy-card{text-align:center;position:relative;background:#f2ded9;padding:55px 25px 48px;max-width:700px;margin:auto}.joy-spark{font-size:25px;color:#b56c75}.joy-card .script{font-size:24px;color:#ad7276;margin:8px 0}.joy-card h2{font-size:34px;line-height:1.3;max-width:520px;margin:0 auto 25px}.text-btn{display:inline-flex;align-items:center;gap:9px;border:0;border-bottom:1px solid #be9290;background:none;padding:8px 0;color:#976267;font-size:11px}.letter-final{padding-top:30px}.final-paper{max-width:700px;margin:0 auto;position:relative;background:#fffefa;padding:58px clamp(28px,7vw,76px) 48px;box-shadow:0 15px 50px #754f4f10;border:1px solid #f2e8e0}.final-paper:before{content:"";position:absolute;top:10px;right:10px;bottom:10px;left:10px;border:1px solid #f0e3dc;pointer-events:none}.paper-top{display:block;text-align:center;margin-bottom:45px;font-size:8px}.final-paper>.script{margin-left:8px}.final-paper h2{font-size:45px!important;margin-bottom:25px!important}.letter-body{font:15px/1.95 Playfair Display,serif;color:#786463}.letter-body p{margin:0 0 14px}.letter-sign{display:flex;align-items:center;justify-content:flex-end;gap:10px;color:#ae6772;margin-top:35px}.letter-sign .script{font-size:25px}.paper-seal{position:absolute;bottom:-22px;left:calc(50% - 23px);width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:#ae6570;color:#fff;font-size:22px;box-shadow:0 4px 12px #aa6b7133}.ending{background:#49383a;color:#fff4ef;text-align:center;position:relative;padding:80px 20px 30px;overflow:hidden}.ending:before,.ending:after{content:"♡";position:absolute;color:#ffffff0c;font:250px Playfair Display,serif;top:-25px;left:4%;transform:rotate(-20deg)}.ending:after{left:auto;right:5%;top:80px;transform:rotate(18deg)}.ending-inner{position:relative;z-index:1;max-width:600px;margin:auto;min-height:340px}.ending-heart{font-size:40px;color:#e6aeb0}.ending-inner .script{font-size:24px;color:#e8b5b4;margin:12px 0}.ending h2{font:italic 56px Playfair Display,serif;margin:0}.ending h2 span{color:#e1a3a5}.ending-inner>p:not(.script){font-size:11px;color:#d3bcb5;letter-spacing:.1em}.surprise-btn{margin-top:25px;border:1px solid #936b6d;background:transparent;color:#f6dcd6;border-radius:30px;padding:11px 17px;display:inline-flex;align-items:center;gap:8px;font-size:11px}.surprise-note{margin:17px auto 0;max-width:350px;color:#f1c6c4;font:21px Caveat,cursive}.ending footer{font-size:8px;letter-spacing:.18em;color:#a88d89;margin-top:35px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#37282bd9;display:grid;place-items:center;padding:22px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.note-modal,.photo-modal{width:min(100%,430px);background:#fffaf5;position:relative;padding:48px 35px 35px;text-align:center;box-shadow:0 25px 80px #1f121255}.note-modal:before{content:"";position:absolute;top:10px;right:10px;bottom:10px;left:10px;border:1px solid #eddbd4;pointer-events:none}.modal-close{position:absolute;right:17px;top:16px;border:0;background:transparent;color:#9d7774;padding:5px;z-index:1}.note-modal .accent-script{font-size:23px}.modal-heart{display:block;font:42px Playfair Display,serif;color:#bb737b;margin:17px 0 5px}.note-modal h3,.photo-modal h3{font-size:33px;margin:0 0 15px}.note-modal>p,.photo-modal>p{font:15px/1.8 Playfair Display,serif;color:#806b69}.modal-sign{display:block;font:21px Caveat,cursive;color:#b36f76;margin-top:20px}.photo-modal{padding:48px 20px 25px}.photo-placeholder.large{height:280px;margin-bottom:20px}.photo-modal h3{font-size:27px}.photo-modal>p{font-size:13px;margin-bottom:0}@media(max-width:700px){.topbar{height:58px;padding:0 18px}.brand{font-size:16px}.sound-toggle{padding:7px 9px}.sound-toggle span{font-size:0}.sound-toggle svg{width:17px}.hero{min-height:720px;max-height:900px;padding-top:80px}.hero:before{width:270px;height:270px}.hero:after{width:350px;height:350px}.hero h1{font-size:clamp(65px,18vw,93px)}.hero-script{font-size:23px}.hero-sub{font-size:13px}.hero-foot{margin-top:58px;font-size:7px}.f1{left:7%;top:24%}.f2{right:7%;top:31%}.f3{left:10%;bottom:16%}.sticker-left{left:5%;bottom:10%;font-size:14px}.sticker-right{right:5%;top:17%}.section-wrap{padding:78px 23px}.section-kicker{font-size:8px;margin-bottom:28px}.intro-grid{grid-template-columns:1fr;gap:40px}.section-wrap h2{font-size:48px}.date-card{max-width:380px;width:90%;margin:0 auto;min-height:245px}.date-card strong{font-size:62px}.section-heading{align-items:center}.heading-doodle{font-size:66px;margin:0 5px 22px}.reason-card{height:290px;padding:35px 23px}.reason-card p{font-size:22px}.paper-shadow{width:calc(100% - 45px);height:290px}.photo-grid{grid-template-columns:1fr 1fr;gap:17px}.photo-card{padding:9px 9px 15px}.photo-3{grid-column:1/3;width:72%;justify-self:center;margin-top:2px}.photo-placeholder{height:155px}.photo-3 .photo-placeholder{height:185px}.photo-caption strong{font-size:17px}.photo-caption p{font-size:9px}.envelopes{grid-template-columns:1fr 1fr;gap:12px}.envelope{min-height:150px}.envelope strong{font-size:17px}.joy-card{padding:45px 20px}.joy-card h2{font-size:28px}.final-paper{padding:48px 28px 42px}.final-paper h2{font-size:39px!important}.letter-body{font-size:14px}.ending h2{font-size:43px}.ending{padding-top:68px}.ending-inner{min-height:325px}}@media(max-width:380px){.hero h1{font-size:62px}.hero-sticker{font-size:13px}.section-wrap{padding-left:18px;padding-right:18px}.section-wrap h2{font-size:43px}.photo-grid{gap:11px}.photo-placeholder{height:135px}.reason-card p{font-size:20px}.envelope strong{font-size:15px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
