:root{--cream:#fff9f8;--pink:#fae1e8;--rose:#d7819b;--rose-dark:#ab5572;--ink:#6c4654;--muted:#957783;--paper:#fffefc;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:75px}body{margin:0;color:var(--ink);background:var(--cream);font-family:var(--sans);font-size:15px;line-height:1.65;overflow-x:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #9e5978;outline-offset:5px}::selection{background:#efc6d3;color:#713d52}.grain{position:fixed;inset:0;pointer-events:none;z-index:50;opacity:.2;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='.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E")}.floating-hearts{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:1}.floating-hearts span{position:absolute;color:#df9eb2;opacity:.18;font-family:var(--serif);font-size:32px;animation:float 12s ease-in-out infinite}.floating-hearts span:nth-child(1){top:13%;left:4%}.floating-hearts span:nth-child(2){top:64%;left:91%;animation-delay:-4s;font-size:22px}.floating-hearts span:nth-child(3){top:39%;left:9%;animation-delay:-6s}.floating-hearts span:nth-child(4){top:82%;left:5%;animation-delay:-7s;font-size:20px}.floating-hearts span:nth-child(5){top:12%;right:5%;animation-delay:-9s}.floating-hearts span:nth-child(6){top:48%;right:15%;animation-delay:-1s;font-size:18px}@keyframes float{0%,100%{transform:translate3d(0,0,0) rotate(-9deg)}50%{transform:translate3d(15px,-26px,0) rotate(13deg)}}.site-header{position:absolute;top:0;left:0;width:100%;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:25px clamp(22px,6vw,95px);gap:20px}.brand{font:italic 27px var(--serif);font-weight:500;letter-spacing:1px;color:var(--rose-dark);white-space:nowrap}.brand span{font-size:18px;color:var(--rose);padding:0 2px}.header-note{font-size:10px;text-transform:uppercase;letter-spacing:2.8px;color:#bd9aa5}.site-nav{display:flex;gap:22px}.site-nav a{font-size:12px;color:#9b7081;transition:color .2s}.site-nav a:hover{color:var(--rose-dark)}.menu-button{display:none}.hero{min-height:760px;min-height:100svh;position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:5%;padding:140px clamp(24px,9vw,160px) 115px;background:radial-gradient(ellipse at 75% 46%,#fbd7e4 0%,#fff1f4 35%,transparent 62%),linear-gradient(135deg,#fffaf8 0%,#fff2f5 100%);overflow:hidden}.hero:before{content:"";position:absolute;inset:24px;opacity:.6;border:1px solid #eac9d4;border-radius:8px;pointer-events:none}.hero-copy{z-index:2;padding:10px 0}.eyebrow{margin:0 0 23px;font-size:10px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--rose-dark)}.sparkle{color:var(--rose);margin:0 8px;font-size:16px}.hero h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-1.7px;color:#78495e}.hero h1{font-size:clamp(58px,6.3vw,112px);line-height:1.06;margin:0 0 30px;max-width:650px}.hero h1 em,h2 em{font-weight:400;color:var(--rose-dark)}.title-heart{display:inline-block;color:var(--rose);font-size:.48em;vertical-align:top;transform:translate(9px,-1px)}.hero-description{color:#8e6d7a;font-size:clamp(14px,1.25vw,17px);line-height:2;margin:0 0 34px}.primary-button{background:var(--rose);color:white;border-radius:100px;padding:17px 25px 17px 32px;display:inline-flex;align-items:center;gap:40px;box-shadow:0 14px 28px #ce7e9940;font-size:13px;font-weight:700;transition:transform .25s,box-shadow .25s,background .25s}.primary-button:hover{transform:translateY(-3px);background:#c97592;box-shadow:0 18px 30px #ce7e9950}.primary-button span{font-size:18px;font-weight:400}.hero-footnote{font-size:11px;letter-spacing:1.8px;margin:30px 0 0;color:#b78e9c}.hero-footnote span{padding:0 12px}.hero-visual{position:relative;width:min(100%,545px);justify-self:center;aspect-ratio:1/1.07;z-index:2;display:grid;place-items:center}.visual-ring{position:absolute;width:105%;height:97%;border-radius:50% 50% 47% 53%;border:1px solid #e8b8c8;transform:rotate(17deg)}.visual-ring:after{content:"";position:absolute;inset:15px;border-radius:50%;border:1px dashed #e2a9bc}.hero-polaroid{background:#fffefa;padding:13px 13px 32px;width:82%;box-shadow:0 24px 60px #b7698240;transform:rotate(5deg);position:relative;z-index:1}.hero-polaroid img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.hero-polaroid>span{display:block;text-align:center;font:italic 18px var(--serif);margin-top:13px;color:#b17b8c}.visual-sticker{position:absolute;z-index:2;color:#cc7b99}.sticker-top{font-size:92px;top:-12%;right:-8%;transform:rotate(-18deg)}.sticker-bottom{font-size:110px;bottom:-10%;left:-12%;transform:rotate(-16deg)}.visual-tag{position:absolute;z-index:4;bottom:12%;right:-5%;transform:rotate(-9deg);background:#e7a7bc;color:white;border-radius:100px;font:italic 18px var(--serif);padding:14px 25px;box-shadow:0 9px 20px #bc7a9230}.visual-tag span{margin-left:9px}.hero-ornament{position:absolute;font-family:var(--serif);font-size:120px;color:#eecad5;opacity:.65}.flower-left{bottom:3%;left:3%;transform:rotate(15deg)}.scroll-cue{position:absolute;bottom:55px;left:50%;transform:translateX(-50%);z-index:3;font-size:10px;letter-spacing:2.6px;text-transform:uppercase;color:#b78b9c;display:flex;align-items:center;gap:19px}.scroll-cue span{font-size:20px;animation:bounce 2.3s infinite}@keyframes bounce{50%{transform:translateY(6px)}}.section{position:relative;padding:120px 24px;isolation:isolate}.section-heading{text-align:center;max-width:680px;margin:0 auto 65px}.section-heading .eyebrow{margin-bottom:19px}.section-heading h2,.surprise-content h2{font-size:clamp(42px,5vw,75px);line-height:1.18;margin:0 0 26px}.section-heading>p:last-child{font-size:15px;line-height:1.9;color:var(--muted);max-width:535px;margin:0 auto}.moments{background:#fff9f7;padding-bottom:125px}.moments:before{content:"";position:absolute;top:20px;right:0;width:260px;height:290px;background:#fae8e9;filter:blur(100px);z-index:-1}.photo-wall{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:40px 30px;align-items:start}.photo-card{border:0;cursor:zoom-in;appearance:none;background:#fff;padding:12px 12px 16px;box-shadow:0 14px 40px #82536b23;min-width:0;transition:transform .3s,box-shadow .3s;text-align:left}.photo-card:hover{transform:rotate(0deg) translateY(-10px) scale(1.03)!important;box-shadow:0 25px 45px #82536b32}.photo-card-1{grid-column:1/span 2;transform:rotate(-6deg);margin-top:20px}.photo-card-2{grid-column:3/span 2;transform:rotate(4deg);margin-top:65px}.photo-card-3{grid-column:5/span 2;transform:rotate(-4deg)}.photo-card-4{grid-column:2/span 2;transform:rotate(5deg);margin-top:12px}.photo-card-5{grid-column:4/span 2;transform:rotate(-5deg);margin-top:20px}.photo-image{display:block;overflow:hidden;background:#f0dde2}.photo-image img{display:block;width:100%;height:290px;object-fit:cover;transition:transform .5s}.photo-card:hover .photo-image img{transform:scale(1.05)}.photo-card-2 .photo-image img,.photo-card-3 .photo-image img,.photo-card-5 .photo-image img{object-position:center 38%}.photo-caption{padding:13px 4px 3px;display:flex;justify-content:space-between;align-items:center;font:italic clamp(13px,1.4vw,18px) var(--serif);color:#975d76;gap:7px}.photo-caption span{color:#d594a8}.moments-outro{text-align:center;font:italic 22px var(--serif);color:#956d7d;margin:70px 0 21px}.moments-outro span{color:var(--rose)}.text-link{width:max-content;max-width:100%;display:flex;align-items:center;gap:18px;margin:35px auto 0;border-bottom:1px solid #d9a8b9;padding-bottom:8px;color:#a7637c;font-size:13px;font-weight:600;transition:gap .3s}.text-link:hover{gap:27px}.text-link span{font-size:20px}.letter-section{background:radial-gradient(circle at 50% 54%,#f9d9e5,#fff2f5 56%,#fff8f8 100%);min-height:850px;text-align:center}.letter-decoration{position:absolute;top:75px;right:15%;color:#e3b4c6;font-size:90px;opacity:.7}.envelope-scene{display:flex;flex-direction:column;align-items:center;gap:27px;margin:20px auto 25px;perspective:1100px}.envelope{position:relative;display:block;width:min(340px,80vw);height:220px;background:none;border:0;cursor:pointer;filter:drop-shadow(0 20px 20px #b8728b42);transition:transform .35s;isolation:isolate}.envelope:hover{transform:translateY(-7px)}.envelope-back{position:absolute;inset:0;background:#d88ba7;border-radius:8px}.envelope-paper-preview{position:absolute;left:10%;top:14px;width:80%;height:160px;background:#fffefa;padding-top:35px;font:italic 24px var(--serif);color:#b67c92;transition:transform .75s;z-index:1;box-shadow:0 4px 12px #b5748d20}.envelope-front{position:absolute;inset:0;background:#ebb0c3;clip-path:polygon(0 0,50% 47%,100% 0,100% 100%,0 100%);z-index:3;border-radius:0 0 8px 8px}.envelope-front:after{content:"";position:absolute;inset:0;background:#e9a9be;clip-path:polygon(0 100%,50% 42%,100% 100%)}.envelope-flap{position:absolute;inset:0;background:#f3c6d4;clip-path:polygon(0 0,100% 0,50% 56%);transform-origin:top;z-index:4;transition:transform .7s,z-index .1s .35s}.wax-seal{position:absolute;z-index:5;left:50%;top:45%;transform:translate(-50%,-50%);display:grid;place-items:center;border-radius:100%;width:51px;height:51px;background:#bc6f89;color:white;font:30px var(--serif);box-shadow:0 3px 9px #a4547040;transition:opacity .2s}.envelope.open .envelope-flap{transform:rotateX(180deg);z-index:0}.envelope.open .envelope-paper-preview{transform:translateY(-96px)}.envelope.open .wax-seal{opacity:0}.envelope-hint,.tap-hint{font-size:12px;letter-spacing:1px;color:#b07e8f}.letter-paper{max-width:630px;position:relative;background:#fffefa;box-shadow:0 15px 45px #ad70832a;margin:40px auto;padding:45px clamp(26px,6vw,60px);text-align:left;animation:paperIn .7s both}.letter-paper[hidden],.surprise-message[hidden]{display:none!important}@keyframes paperIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.paper-top{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #efdce2;padding-bottom:15px;color:#bc90a0;font-size:10px;letter-spacing:1.5px;text-transform:uppercase}.paper-top span:last-child{font-size:25px;line-height:1}.letter-paper h3{font:italic 38px var(--serif);margin:26px 0 21px;color:#a5657e}.letter-paper p{font:17px/2 var(--serif);color:#785968;margin:0 0 20px}.letter-signature{text-align:right;font:italic 24px var(--serif);color:#b66e89;margin-top:38px}.letter-signature span{color:#e2a0b4;margin-left:8px}.time-section{background:#fffaf8}.time-frame{max-width:930px;margin:auto;border:1px solid #e9cdd7;border-radius:12px;padding:55px 32px 40px;background:linear-gradient(145deg,#fff,#fff3f5);box-shadow:0 15px 50px #ae6b8820;position:relative;overflow:hidden}.time-frame:before,.time-frame:after{content:'✿';font-family:var(--serif);position:absolute;color:#f2d0dd;font-size:155px;line-height:1}.time-frame:before{left:-30px;top:-35px}.time-frame:after{right:-25px;bottom:-45px}.frame-stamp{font-size:11px;color:#b08092;text-align:center;letter-spacing:2px;text-transform:uppercase;position:relative;z-index:1}.frame-stamp strong{display:block;margin-top:8px;font:italic 25px var(--serif);color:#9f6980;letter-spacing:1px}.timer{display:flex;align-items:center;justify-content:center;gap:12px;margin:37px auto;position:relative;z-index:1}.timer-cell{min-width:118px;min-height:132px;border:1px solid #f0dce3;background:#fffefd;border-radius:16px;box-shadow:0 7px 22px #b66e8b12;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}.timer-cell>span{font:400 clamp(31px,5vw,57px)/1 var(--serif);font-variant-numeric:tabular-nums;color:#a9617b}.timer-cell small{font-size:11px;text-transform:uppercase;color:#ad8996;letter-spacing:1.4px}.timer-colon{font:36px var(--serif);color:#d4a5b4;align-self:center;margin-top:-22px}.timer-bottom{text-align:center;color:#ae8593;font:italic 17px var(--serif);position:relative;z-index:1}.timer-bottom span{color:#cc9bad;margin:0 13px}.surprise-section{min-height:780px;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 51%,#f8d0df 0%,#fce6ed 35%,#fff4f5 73%,#fff9f8 100%);overflow:hidden;text-align:center}.surprise-aura{position:absolute;width:min(720px,90vw);aspect-ratio:1;border:1px solid #eac8d4;border-radius:50%;box-shadow:0 0 0 48px #f8dbe53b,0 0 0 100px #f8dbe52e;pointer-events:none}.surprise-content{z-index:1;max-width:710px}.surprise-content h2{margin-bottom:20px}.surprise-intro{font-size:15px;color:#9a7583}.surprise-button{display:grid;place-items:center;position:relative;border:0;background:transparent;width:175px;height:175px;margin:36px auto 0;cursor:pointer;transition:transform .3s}.surprise-button:hover{transform:scale(1.07)}.heart-core{font-size:135px;line-height:1;color:#d77a99;text-shadow:0 16px 27px #bd728c50;animation:heartbeat 2.4s infinite}.heart-pulse{position:absolute;inset:17px;border-radius:50%;border:1px solid #dd9eb2;animation:ring 2.4s infinite;pointer-events:none}@keyframes heartbeat{0%,100%{transform:scale(1)}20%{transform:scale(1.08)}35%{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes ring{0%{transform:scale(.8);opacity:.8}75%,100%{transform:scale(1.65);opacity:0}}.surprise-message{animation:paperIn .7s both;margin:5px auto 20px;padding:20px 20px 0}.quote{font:italic clamp(20px,3.2vw,35px)/1.55 var(--serif);color:#8f516b;margin:0 auto 10px;max-width:630px}.quote-credit{font-size:12px;color:#ac8290}.quote-divider{font:20px var(--serif);color:#c17d96;margin:25px}.surprise-message h3{font:italic clamp(36px,5vw,62px)/1.2 var(--serif);color:#a15a74;margin:15px 0}.final-subtitle{font-size:15px;color:#a07384}.heart-burst{position:fixed;inset:0;z-index:80;pointer-events:none;overflow:hidden}.burst-heart{position:absolute;bottom:-40px;animation:burstUp var(--duration) ease-out both;color:#d77a99;font-size:var(--size)}@keyframes burstUp{0%{opacity:0;transform:translate3d(0,0,0) rotate(0)}15%{opacity:1}85%{opacity:1}100%{opacity:0;transform:translate3d(var(--drift),-100vh,0) rotate(var(--rotation))}}.footer{background:#fff8f8;border-top:1px solid #f1dbe2;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:27px clamp(24px,8vw,120px);font-size:12px;color:#ab7c8e}.footer a{font-size:11px;letter-spacing:.5px}.footer a:hover{color:var(--rose-dark)}.lightbox{border:0;border-radius:20px;padding:14px;background:#fff9f8;box-shadow:0 20px 110px #351f2a70;max-width:min(94vw,1000px);max-height:95vh;overflow:visible}.lightbox::backdrop{background:#34242dbd;backdrop-filter:blur(8px)}.lightbox-inner{display:flex;align-items:center;gap:12px;position:relative}.lightbox figure{margin:0;text-align:center;min-width:0}.lightbox figure img{display:block;max-width:min(75vw,750px);max-height:74vh;object-fit:contain;border-radius:6px}.lightbox figcaption{font:italic 20px var(--serif);margin-top:11px;color:#a56680}.lightbox button{border:0;background:#f6e0e8;color:#a65b78;border-radius:50%;width:36px;height:36px;flex:none;cursor:pointer;font-size:20px;display:grid;place-items:center}.lightbox-close{position:absolute;right:-22px;top:-22px;z-index:2;background:#fff!important;width:42px!important;height:42px!important;font-size:30px!important}.reveal{opacity:0;transform:translateY(26px);transition:opacity .75s ease,transform .75s ease}.reveal.visible{opacity:1;transform:translateY(0)}.hero .reveal{transition-delay:.2s}.photo-card.reveal.visible{transition:opacity .75s ease,transform .6s ease,box-shadow .3s ease}.photo-card-1.reveal.visible{transform:rotate(-6deg)}.photo-card-2.reveal.visible{transform:rotate(4deg)}.photo-card-3.reveal.visible{transform:rotate(-4deg)}.photo-card-4.reveal.visible{transform:rotate(5deg)}.photo-card-5.reveal.visible{transform:rotate(-5deg)}
@media(max-width:1050px){.header-note{display:none}.site-header{padding:22px 35px}.hero{padding:145px 55px 115px;gap:4%;min-height:720px}.hero h1{font-size:clamp(55px,6.7vw,82px)}.hero-visual{width:100%}.photo-wall{gap:30px 22px}.photo-image img{height:250px}.timer-cell{min-width:105px}.site-nav{gap:13px}}
@media(max-width:760px){html{scroll-padding-top:65px}.site-header{padding:16px 24px}.brand{font-size:26px}.menu-button{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;width:44px;height:44px;background:#ffffffcc;border:1px solid #efd6df;border-radius:50%;cursor:pointer;z-index:21}.menu-button span{height:1.5px;width:17px;background:#ab637d;transition:transform .2s}.menu-button[aria-expanded=true] span:first-child{transform:translateY(3.3px) rotate(45deg)}.menu-button[aria-expanded=true] span:last-child{transform:translateY(-3.3px) rotate(-45deg)}.site-nav{display:none;position:absolute;right:20px;top:73px;flex-direction:column;background:#fffaf9;padding:18px 25px;gap:14px;border:1px solid #f3dae2;border-radius:18px;box-shadow:0 15px 30px #9257752b}.site-nav.open{display:flex}.site-nav a{font-size:14px}.hero{grid-template-columns:1fr;gap:0;text-align:center;min-height:0;padding:113px 24px 85px}.hero:before{inset:12px}.hero-copy{order:0;padding:0}.hero h1{font-size:clamp(51px,11vw,80px);margin-bottom:19px;letter-spacing:-1.9px}.hero-description{margin-bottom:25px;font-size:14px}.hero-footnote{margin:17px 0 0}.hero-visual{order:1;margin:33px auto 25px;width:min(80%,370px);aspect-ratio:1.2}.hero-polaroid{padding:9px 9px 22px;width:79%}.hero-polaroid>span{font-size:14px;margin-top:8px}.visual-sticker.sticker-top{font-size:58px;right:-4%;top:-6%}.visual-sticker.sticker-bottom{font-size:70px}.visual-tag{font-size:13px;padding:9px 15px;bottom:-1%;right:1%}.scroll-cue{bottom:32px;font-size:9px}.flower-left{font-size:62px;bottom:0}.section{padding:80px 20px}.section-heading{margin-bottom:48px}.section-heading h2,.surprise-content h2{font-size:clamp(41px,8.8vw,62px)}.section-heading>p:last-child{font-size:14px}.photo-wall{max-width:575px;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 18px;padding:0 8px}.photo-card{padding:8px 8px 12px}.photo-card-1{grid-column:1;grid-row:1;margin-top:0}.photo-card-2{grid-column:2;grid-row:1;margin-top:34px}.photo-card-3{grid-column:1;grid-row:2;margin-top:5px}.photo-card-4{grid-column:2;grid-row:2;margin-top:35px}.photo-card-5{grid-column:1/span 2;grid-row:3;width:52%;justify-self:center;margin-top:15px}.photo-image img{height:210px}.photo-card-5 .photo-image img{height:250px}.photo-caption{font-size:13px;padding:10px 1px 0}.moments-outro{font-size:19px;margin-top:60px}.letter-section{min-height:0}.envelope{height:200px;width:300px}.letter-paper{padding:35px 27px}.letter-paper p{font-size:16px}.time-frame{padding:40px 15px 30px}.timer{gap:5px}.timer-cell{min-width:0;flex:1;min-height:95px;border-radius:10px;gap:7px}.timer-cell>span{font-size:clamp(26px,6vw,40px)}.timer-cell small{font-size:9px;letter-spacing:.3px}.timer-colon{font-size:21px;margin-top:-15px}.timer-bottom{font-size:14px}.timer-bottom span{margin:0 4px}.surprise-section{min-height:690px}.surprise-aura{width:80vw;box-shadow:0 0 0 35px #f8dbe53b,0 0 0 70px #f8dbe52e}.footer{padding:25px 20px}.lightbox{padding:10px}.lightbox-inner{gap:5px}.lightbox figure img{max-width:72vw;max-height:72vh}.lightbox button{width:28px;height:28px}.lightbox-close{right:-8px;top:-18px}}
@media(max-width:380px){.hero{padding-top:105px}.hero h1{font-size:50px}.photo-wall{gap:20px 11px}.photo-image img{height:173px}.photo-caption{font-size:11px}.photo-card-5 .photo-image img{height:205px}.time-frame{padding-left:10px;padding-right:10px}.timer-cell>span{font-size:25px}.timer-cell small{font-size:8px}.letter-paper h3{font-size:31px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}.floating-hearts,.heart-burst{display:none}}
