:root {--paper:#f9f4ef;--paper2:#f4e9e5;--ink:#57424a;--muted:#867780;--rose:#a87584;--pink:#e7b9bb;--deep:#6d4555;--purple:#7a6079;--hair:#e7d9d4;--display:'Playfair Display',Georgia,serif;--hand:'Caveat','Segoe Print',cursive;--sans:'DM Sans',Arial,sans-serif;--mono:'DM Mono',monospace;scroll-behavior:smooth}
*{box-sizing:border-box}
html{scroll-padding-top:95px}
body{margin:0;min-width:320px;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.modal-open{overflow:hidden}a{text-decoration:none;color:inherit}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--rose);outline-offset:5px}img{max-width:100%;display:block}
::selection{background:#eabfc4;color:#533440}
.content-width{width:min(1200px,calc(100% - 104px));margin-inline:auto}
.site-grain{position:fixed;inset:0;z-index:15;pointer-events:none;opacity:.12;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='.91' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.3'/%3E%3C/svg%3E")}
.progress{position:fixed;top:0;left:0;height:3px;width:100%;background:#bf8795;transform:scaleX(0);transform-origin:left;z-index:100}
.corner-flower{position:absolute;pointer-events:none}.corner-flower--top{right:4vw;top:100px;font-size:20px;color:#c7a4ad;transform:rotate(28deg)}
.nav-wrap{position:relative;z-index:20;border-bottom:1px solid #eee0dd}.nav{min-height:96px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-family:var(--display);font-style:italic;font-size:20px;letter-spacing:-.7px;white-space:nowrap}.brand-flower{font-style:normal;font-family:var(--sans);font-size:21px;color:#b7798a;margin-right:5px}.brand-period{color:#cb8096}.nav-links{display:flex;gap:35px;font-size:11px;letter-spacing:.06em;color:#776970}.nav-links a:hover{color:var(--rose)}.nav-pill{font-size:11px;font-weight:700;letter-spacing:.07em;border:1px solid #d8bcc4;border-radius:999px;padding:12px 20px;color:var(--deep);display:flex;gap:26px;align-items:center;transition:.25s}.nav-pill:hover{background:#f3dadd}
.hero{min-height:740px;display:grid;grid-template-columns:1.08fr .92fr;align-items:center;gap:4vw;position:relative;padding-block:84px 115px}.hero-copy{position:relative;z-index:2}.eyebrow,.section-number,.quote-tiny{font:10px var(--mono);letter-spacing:.17em;color:var(--rose);font-weight:500}.hero-intro{display:flex;align-items:center;gap:12px}.hero-intro .line{width:34px;height:1px;background:#bd8797}.tiny-heart{font-size:19px;line-height:0}.little-stamp{display:inline-block;margin-top:24px;border:1px dashed #cb9da8;color:#986d7b;padding:7px 15px;font-family:var(--hand);font-size:21px;transform:rotate(-4deg);border-radius:3px}.little-stamp span{color:#c88296;font-size:14px}
h1,h2,p{margin-top:0}.hero h1{font:400 clamp(57px,5.3vw,88px)/1.13 var(--display);letter-spacing:-.06em;margin:24px 0 29px}.hero h1 em,.section h2 em,.quote-content h2 em,.letter-head h2 em,.final-section h2 em{font-weight:400;color:#b17e91}.hero h1 .period{color:#ce8e9d}.hero-description{font-size:14px;line-height:1.95;color:#87747e;max-width:430px;margin-bottom:33px}.hero-description strong{font-weight:600;color:#6f525f}.hero-actions{display:flex;align-items:center;gap:27px;flex-wrap:wrap}.primary-btn{border:0;background:var(--deep);color:#fff8f5;padding:17px 23px;display:inline-flex;align-items:center;gap:35px;justify-content:space-between;letter-spacing:.015em;font-size:12px;font-weight:600;border-radius:4px;box-shadow:0 9px 20px #70495816;transition:transform .25s,background .25s}.primary-btn:hover{transform:translateY(-3px);background:#8b6171}.primary-btn span{font-size:18px;font-weight:400}.text-button{border:0;background:transparent;font-size:12px;color:var(--deep);padding:11px 0;border-bottom:1px solid #cba5b1}.text-button span{padding-left:5px;font-size:17px}.hero-side-note{display:flex;align-items:center;gap:12px;font-family:var(--hand);font-size:21px;line-height:1.05;color:#ae8b94;margin-top:60px;transform:rotate(-7deg);width:max-content}.hero-side-note strong{font-weight:600}.hero-side-note .star{font:29px var(--sans);color:#c79da7}
.hero-art{height:650px;position:relative;display:flex;align-items:center;justify-content:center;margin-top:14px}.big-polaroid{position:relative;background:#fffdf9;padding:15px 15px 13px;width:min(100%,390px);box-shadow:0 25px 50px #6749572c;transform:rotate(7deg);z-index:2;transition:transform .45s}.big-polaroid:hover{transform:rotate(3deg) translateY(-5px)}.big-polaroid img{width:100%;aspect-ratio:4/5;object-fit:cover;filter:saturate(.83)}.big-polaroid figcaption{font:25px var(--hand);text-align:center;color:#72565b;margin:11px 0 1px}.big-polaroid figcaption span{color:#b7798a}.tape{position:absolute;z-index:3;width:116px;height:39px;background:#eacdc5b5;top:-21px;left:calc(50% - 58px);transform:rotate(-5deg);clip-path:polygon(3% 0,100% 0,97% 100%,0 100%)}.photo-shadow{position:absolute;width:385px;height:520px;border:2px solid #d9b2bc;transform:rotate(-6deg) translate(-23px,0);border-radius:2px}.mini-label{position:absolute;z-index:4;bottom:53px;left:-34px;width:123px;height:126px;border-radius:100%;background:#ead0d2;color:#704d5e;display:flex;align-items:center;justify-content:center;flex-direction:column;transform:rotate(-14deg);border:4px double #f9ede9;box-shadow:0 6px 20px #66495820;font-family:var(--mono);letter-spacing:.1em;font-size:11px;gap:4px}.mini-label b{font:47px var(--display);line-height:.8;font-weight:400}.mini-label small{font-size:8px}.art-spark{position:absolute;color:#b78d99;font-size:32px}.art-spark--a{top:67px;left:20px}.art-spark--b{top:20px;right:34px;color:#e1bdc4;font-size:48px}.art-spark--c{bottom:72px;right:-20px;font-size:57px}.doodle-loop{position:absolute;right:-26px;top:124px;color:#cb9baa;transform:rotate(35deg)}.curve-caption{position:absolute;right:-35px;bottom:63px;color:#ab8590;font:23px var(--hand);transform:rotate(-10deg)}.scroll-cue{position:absolute;bottom:42px;left:0;display:flex;align-items:center;gap:15px;font:9px var(--mono);letter-spacing:.17em;color:#a19094}.scroll-line{width:54px;height:1px;background:#c59fa8}
.little-band{background:#e7cfcb;overflow:hidden;border-block:1px solid #e0c4bf}.band-inner{min-height:59px;display:flex;justify-content:center;align-items:center;gap:28px;white-space:nowrap;min-width:max-content;padding:0 30px;font:21px var(--hand);color:#7b5a63}.band-inner i{font-style:normal;font:13px var(--sans);color:#b17f8e}
.section{padding-top:127px;padding-bottom:139px}.section-heading,.reasons-heading{display:flex;justify-content:space-between;align-items:end;gap:65px;margin-bottom:52px}.section-heading h2,.reasons-heading h2{font:400 clamp(44px,4.35vw,68px)/1.23 var(--display);letter-spacing:-.055em;margin:22px 0 0}.section-heading p,.reasons-heading p{width:295px;flex-shrink:0;font-size:13px;line-height:2;color:#907d84;margin-bottom:8px}.memories-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:25px;padding-top:18px}.memory{margin:0;transform:translateY(0);transition:transform .3s}.memory:nth-child(1){rotate:-3deg}.memory:nth-child(2){rotate:2deg;margin-top:26px}.memory:nth-child(3){rotate:-2deg;margin-top:5px}.memory:nth-child(4){rotate:3deg;margin-top:29px}.memory:hover{translate:0 -9px}.memory-image{position:relative;background:#f4e9e3;padding:11px 11px 0;box-shadow:0 7px 26px #6749570e}.memory-image img{width:100%;aspect-ratio:4/5;object-fit:cover;filter:saturate(.85);background:#e8c5c7}.memory-no{position:absolute;right:20px;top:20px;background:#f7efe9c9;border-radius:50%;width:29px;height:29px;display:grid;place-items:center;font:10px var(--mono);color:#795963}.memory figcaption{padding:17px 5px;display:flex;flex-direction:column;gap:7px}.memory figcaption>span{font:17px var(--display);color:#604851}.memory figcaption small{font:18px var(--hand);color:#ad8590}.album-footnote{text-align:center;margin:67px auto 0;color:#ab8d96;font:22px var(--hand)}.album-footnote span{margin-left:6px}
.quote-section{min-height:390px;display:grid;place-items:center;background:#f0dfdc;position:relative;overflow:hidden;padding:80px 24px}.quote-content{text-align:center;position:relative;z-index:2}.quote-tiny{font-size:10px;color:#a87c88}.quote-asterisk{display:block;margin:12px auto 7px;color:#a87987;font-size:26px}.quote-content h2{font:400 clamp(28px,3vw,45px)/1.53 var(--display);letter-spacing:-.027em;margin:0 0 25px}.quote-sign{font:23px var(--hand);color:#aa7c89}.quote-shape{position:absolute;color:#dfbdbf;font-size:330px;line-height:1;opacity:.48}.quote-shape--left{left:-115px;bottom:-150px;transform:rotate(26deg)}.quote-shape--right{right:-120px;top:-180px;transform:rotate(50deg)}
.reasons-section{padding-bottom:162px}.reasons-heading{margin-bottom:47px}.reasons-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}.reason-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:space-between;min-height:304px;padding:21px 18px 24px;border:1px solid #e9c9ce;border-radius:8px;background:#edced2;color:#815562;text-align:center;overflow:hidden;transition:transform .3s,box-shadow .3s}.reason-card:hover{transform:translateY(-5px);box-shadow:0 13px 25px #74526413}.reason-card--peach{background:#eed8cf;border-color:#f0d1c7;color:#a16e67}.reason-card--lilac{background:#ded3df;border-color:#dacee0;color:#7d657f}.reason-card--ivory{background:#eee3d9;border-color:#e9d9ce;color:#95777a}.reason-top{width:100%;display:flex;justify-content:space-between;font:10px var(--mono);letter-spacing:.09em}.reason-top span:last-child{font:18px var(--sans)}.reason-symbol{font-family:var(--display);font-size:100px;line-height:1;opacity:.78;margin-top:10px;transition:transform .5s,opacity .3s}.reason-label{font:20px var(--hand);transition:opacity .2s}.reason-label span{font-size:18px}.reason-back{position:absolute;inset:49px 15px 40px;display:flex;align-items:center;justify-content:center;font:23px/1.45 var(--display);opacity:0;transform:translateY(15px);transition:.35s;pointer-events:none}.reason-card.is-flipped .reason-symbol{transform:scale(.3) rotate(80deg);opacity:0}.reason-card.is-flipped .reason-label{opacity:0}.reason-card.is-flipped .reason-back{transform:translateY(0);opacity:1}
.letter-section{position:relative;background:var(--deep);color:#f8ecea;overflow:hidden;padding:120px 0 132px;isolation:isolate}.letter-section:before{content:'';position:absolute;width:700px;height:650px;border-radius:50%;background:#815868;filter:blur(150px);right:-260px;top:-260px;z-index:-1;opacity:.6}.letter-section:after{content:'';position:absolute;width:550px;height:550px;border-radius:50%;background:#925d6a;filter:blur(180px);left:-320px;bottom:-400px;z-index:-1;opacity:.6}.letter-inner{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:50px}.section-number--light{color:#ebbdc6}.letter-head h2{font:400 clamp(45px,4.4vw,68px)/1.22 var(--display);letter-spacing:-.052em;margin:26px 0 23px}.letter-head h2 em{color:#eebfc5}.letter-head p{font-size:13px;color:#e0c7ce;line-height:2;max-width:350px}.envelope-stage{min-height:385px;position:relative;display:flex;justify-content:center;align-items:center;flex-direction:column}.envelope-glow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:380px;height:260px;background:#c08495;opacity:.24;border-radius:100%;filter:blur(80px)}.envelope-button{display:block;width:315px;height:222px;position:relative;border:0;background:none;filter:drop-shadow(0 25px 22px #35222d6b);transition:transform .35s;z-index:2}.envelope-button:hover{transform:translateY(-12px) rotate(-2deg)}.envelope-base{position:absolute;inset:0;background:#e9b8b6;border-radius:5px;clip-path:polygon(0 0,50% 44%,100% 0,100% 100%,0 100%);z-index:2}.envelope-front{position:absolute;inset:0;background:#f3d0ca;border-radius:5px;clip-path:polygon(0 0,50% 58%,100% 0,100% 100%,0 100%);z-index:5}.envelope-front:after{content:'';position:absolute;inset:0;background:#eebfb9;clip-path:polygon(0 100%,50% 42%,100% 100%)}.envelope-top{position:absolute;inset:0;background:#d9a4a5;clip-path:polygon(0 0,50% 55%,100% 0);z-index:3}.paper-in-envelope{position:absolute;width:255px;height:165px;top:-68px;left:30px;background:#fff8ef;border-radius:2px;box-shadow:0 -3px 10px #704e4b12;z-index:4;display:flex;flex-direction:column;justify-content:center;gap:9px;align-items:center;font:24px var(--hand);color:#9d7180;transform:translateY(30px);transition:transform .45s}.paper-in-envelope span:last-child{font:26px var(--display)}.envelope-button:hover .paper-in-envelope{transform:translateY(-5px)}.heart-seal{position:absolute;z-index:8;top:110px;left:134px;background:#ae6e80;color:#fff1ee;border-radius:50%;height:47px;width:47px;display:grid;place-items:center;font-size:23px;box-shadow:0 4px 8px #ab7585a8}.envelope-caption{background:none;border:0;color:#e8cbd0;font:19px var(--hand);margin-top:40px;z-index:2}.envelope-caption span{font:17px var(--sans);margin-left:12px}.letter-stars{position:absolute;left:44%;top:12%;color:#bb8d9f;font-size:30px;letter-spacing:105px;opacity:.65;white-space:nowrap}.letter-stars span{font-size:17px}
.final-section{text-align:center;padding-top:143px;position:relative;min-height:675px}.final-ornament{font-size:47px;color:#d4aeb8;margin-bottom:24px}.final-section h2{font:400 clamp(32px,3.5vw,53px)/1.39 var(--display);letter-spacing:-.035em;margin:29px 0 16px}.final-section p{font:23px var(--hand);color:#a5848f;margin-bottom:34px}.last-btn{margin:0 auto}.surprise-message{opacity:0;transform:translateY(12px);transition:.5s ease;max-width:660px;margin:29px auto 0;padding:21px 29px;background:#f2dfdd;color:#875c6b;font:21px/1.5 var(--display);border:1px solid #e9c8c9;border-radius:5px}.surprise-message.shown{opacity:1;transform:translateY(0)}.surprise-message>span:first-child,.surprise-message>span:last-child{color:#c68d9a;margin:0 10px}.final-small-heart{color:#cd9ba8;font-size:15px;margin-top:55px}footer{border-top:1px solid #e9d8d6;display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:99px;margin-top:36px;text-align:left;font:10px var(--mono);color:#a08a91;letter-spacing:.04em}footer a:hover{color:var(--deep)}
.modal[hidden]{display:none}.modal{position:fixed;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .27s;padding:16px}.modal.shown{opacity:1}.modal-backdrop{position:absolute;inset:0;background:#332530b5;backdrop-filter:blur(9px)}.letter-paper{position:relative;z-index:1;width:min(600px,100%);max-height:min(88vh,830px);overflow:auto;background:#fffaf2;color:#684d59;padding:48px clamp(26px,5vw,58px) 35px;box-shadow:0 20px 100px #26141e5e;border-radius:3px;transform:translateY(22px) scale(.97);transition:transform .35s;scrollbar-width:thin}.modal.shown .letter-paper{transform:translateY(0) scale(1)}.letter-paper:before{content:'';position:absolute;inset:10px;pointer-events:none;border:1px solid #e9dcd1}.modal-close{position:absolute;right:24px;top:19px;border:0;background:transparent;color:#a78191;font-size:30px;z-index:2}.paper-top{font:10px var(--mono);letter-spacing:.11em;display:flex;justify-content:space-between;color:#b58b98;margin-top:8px}.paper-divider{height:1px;background:#eadcd7;margin:21px 0 33px}.letter-to{font:23px var(--hand);color:#a97989;margin:0 0 12px}.letter-paper h2{font:400 37px/1.25 var(--display);letter-spacing:-.04em;margin:0 0 23px}.letter-paper h2 em{color:#b37e90;font-weight:400}.letter-paragraphs p{font:13px/2 var(--sans);color:#786670;margin-bottom:18px}.letter-sign{text-align:right;font:25px var(--hand);color:#a77486;margin:22px 0 38px}.paper-bottom{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #e8d9d4;padding-top:17px;font:18px var(--hand);color:#ac8991}.paper-bottom span{font:17px var(--sans)}
.heart-canvas{position:fixed;z-index:600;inset:0;pointer-events:none}.fly-heart{position:absolute;font-size:22px;color:#d58da2;text-shadow:0 1px 0 white;animation:heartsFly 1.9s ease-out forwards;line-height:1}@keyframes heartsFly{from{opacity:1;transform:translate(0,0) rotate(0)}to{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(var(--rotation)) scale(.3)}}
.reveal{opacity:0;translate:0 22px;transition:opacity .8s,translate .8s}.reveal.visible{opacity:1;translate:0 0}.memories-grid .memory:nth-child(2),.reasons-grid .reason-card:nth-child(2){transition-delay:.08s}.memories-grid .memory:nth-child(3),.reasons-grid .reason-card:nth-child(3){transition-delay:.16s}.memories-grid .memory:nth-child(4),.reasons-grid .reason-card:nth-child(4){transition-delay:.24s}
@media (max-width:1100px){.content-width{width:min(1100px,calc(100% - 70px))}.hero{gap:10px}.hero h1{font-size:clamp(57px,6vw,76px)}.hero-art{transform:scale(.91);transform-origin:center}.memories-grid{gap:14px}.section-heading p,.reasons-heading p{width:235px}}
@media (max-width:760px){.content-width{width:calc(100% - 44px)}.nav{min-height:72px}.brand{font-size:18px}.nav-links{display:none}.nav-pill{padding:10px 13px;gap:10px}.hero{display:flex;flex-direction:column;gap:0;padding-top:47px;padding-bottom:75px;min-height:0}.hero-copy{width:100%}.hero-intro{font-size:8px;letter-spacing:.13em}.little-stamp{margin-top:19px;font-size:18px;padding:5px 12px}.hero h1{font-size:clamp(51px,10.3vw,78px);line-height:1.13;margin:20px 0}.hero-description{font-size:13px;line-height:1.85;margin-bottom:25px}.hero-actions{gap:22px}.primary-btn{padding:15px 18px;gap:22px;font-size:11px}.hero-side-note{display:none}.hero-art{height:510px;margin-top:32px;transform:none;width:100%}.big-polaroid{width:min(74%,310px);padding:12px 12px 10px}.big-polaroid figcaption{font-size:20px}.photo-shadow{width:70%;height:410px;transform:rotate(-6deg) translate(-10px,0)}.mini-label{left:0;bottom:30px;width:100px;height:100px;font-size:9px}.mini-label b{font-size:34px}.art-spark--a{left:15px;top:35px}.art-spark--b{right:10px;top:14px}.art-spark--c{right:7px;bottom:64px}.curve-caption{right:0;bottom:7px;font-size:20px}.doodle-loop{display:none}.scroll-cue{left:0;bottom:28px;font-size:8px}.section{padding-top:82px;padding-bottom:92px}.section-heading,.reasons-heading{display:block;margin-bottom:29px}.section-heading h2,.reasons-heading h2{font-size:clamp(40px,8vw,56px);margin-top:16px}.section-heading p,.reasons-heading p{font-size:12px;line-height:1.85;margin-top:19px;width:min(100%,450px)}.memories-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 17px}.memory:nth-child(2){margin-top:24px}.memory:nth-child(3){margin-top:10px}.memory:nth-child(4){margin-top:34px}.memory figcaption>span{font-size:15px}.memory figcaption small{font-size:17px}.memory figcaption{gap:4px;padding:11px 4px 17px}.memory-image{padding:8px 8px 0}.memory-no{top:16px;right:14px;width:25px;height:25px;font-size:9px}.album-footnote{font-size:19px;margin-top:46px}.quote-section{min-height:320px;padding:73px 20px}.quote-content h2{font-size:clamp(26px,5.4vw,37px);line-height:1.5}.quote-tiny{font-size:8px;letter-spacing:.09em}.quote-shape{font-size:200px}.reasons-grid{grid-template-columns:repeat(2,1fr);gap:12px}.reason-card{min-height:238px;padding:15px 11px 20px}.reason-symbol{font-size:77px}.reason-label{font-size:17px}.reason-back{font-size:19px;inset:35px 8px 27px}.reason-top{font-size:9px}.letter-section{padding:82px 0 82px}.letter-inner{display:flex;flex-direction:column;gap:27px;align-items:stretch}.letter-head h2{font-size:clamp(43px,8.6vw,62px);margin:20px 0 16px}.letter-head p{font-size:12px}.envelope-stage{min-height:320px}.envelope-button{transform:scale(.9)}.envelope-button:hover{transform:scale(.9) translateY(-8px)}.envelope-caption{margin-top:10px}.final-section{padding-top:85px;min-height:0}.final-section h2{font-size:clamp(29px,5.8vw,43px)}.final-small-heart{margin-top:65px}footer{min-height:96px;flex-wrap:wrap;justify-content:center;text-align:center;gap:8px 16px;padding:26px 0}.letter-paper{padding-top:48px}}
@media (max-width:390px){.content-width{width:calc(100% - 34px)}.brand{font-size:16px}.nav-pill{font-size:10px}.hero h1{font-size:49px}.hero-art{height:460px}.big-polaroid{width:77%}.photo-shadow{height:365px}.mini-label{left:-3px;bottom:30px;width:90px;height:90px}.memory figcaption>span{font-size:13px}.reason-card{min-height:230px}.reason-back{font-size:17px}.letter-paper h2{font-size:30px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{opacity:1;translate:0 0}}
