:root{--paper:#f8f3e9;--ink:#452b2d;--muted:#846f6c;--red:#a63848;--pink:#f0d9d6;--line:#dfd3c9;--script:'Segoe Print','Bradley Hand',cursive;--serif:Georgia,'Times New Roman',serif;--sans:'Segoe UI',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;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='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23877565' opacity='.045' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:wait;opacity:.55}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #7a5556;outline-offset:5px}button{color:inherit}p{line-height:1.8}h1,h2,p,figure{margin:0}em{font-weight:400;color:var(--red)}.top-strip{background:var(--red);color:#fff7ed;text-align:center;font-size:11px;letter-spacing:1.7px;padding:10px 16px}.top-strip span{margin-left:13px}.page-shell{max-width:1200px;margin:auto;padding:0 54px}.site-header{height:104px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{font-family:var(--serif);font-size:36px;font-style:italic;letter-spacing:-3px;position:relative}.wordmark>span:first-child{font-size:25px;margin:0 5px}.logo-heart{font-size:13px;position:absolute;right:-14px;top:1px;color:var(--red)}nav{display:flex;gap:38px;font-size:12px}nav a{padding:12px 0}nav a:hover{color:var(--red)}nav span{margin-left:5px;color:var(--red)}.header-note{font-family:var(--script);font-size:12px;transform:rotate(-3deg);color:var(--muted)}.hero{display:grid;grid-template-columns:1fr 1fr;gap:48px;padding:66px 0 54px;align-items:center}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:650;display:flex;align-items:center;gap:12px}.tiny-heart{color:var(--red);font-size:13px}.short-rule{width:28px;height:1px;background:var(--red);display:inline-block}.hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(62px,6.8vw,86px);letter-spacing:-4px;line-height:1.03;margin:26px 0 25px;position:relative}.hero h1 em{white-space:nowrap}.title-heart{position:absolute;left:335px;top:73px;color:var(--red);font-family:var(--script);font-size:62px;transform:rotate(17deg)}.hero-description{font-size:14px;color:#7c6462;line-height:1.9}.hero-description strong{font-weight:600;color:var(--ink)}.primary-link{display:inline-flex;align-items:center;justify-content:center;gap:36px;background:var(--red);border:1px solid var(--red);color:#fff6ed;padding:16px 23px;border-radius:4px;font-size:12px;transition:background .2s,transform .2s}.hero .primary-link{margin-top:28px}.primary-link:hover{background:#8e2e3d;transform:translateY(-2px)}.primary-link span{font-size:15px}.signed-note{font-family:var(--script);font-size:12px;color:var(--muted);margin:17px 0 0 5px}.signed-note span{font-size:25px;margin-left:8px}.memories{position:relative;padding:26px 8px 0;min-width:0}.photo-label{font-family:var(--script);display:block;text-align:right;font-size:15px;transform:rotate(5deg);margin:0 16px 23px 0}.photo-doodle{position:absolute;left:-12px;top:4px;font-size:49px;color:var(--red);transform:rotate(-18deg)}.photo-stack{position:relative;margin:0 8px 0 12px;transform:rotate(3deg)}.back-photo{position:absolute;inset:8px;background:#efe3d4;border:1px solid #d8c6b6;box-shadow:0 4px 12px #4b32221a}.back-one{transform:rotate(-10deg)}.back-two{transform:rotate(-5deg);background:#e9c9c6}.polaroid{position:relative;background:#fffcf5;padding:12px 12px 0;box-shadow:0 8px 24px #4b322223;border:1px solid #e8dfd1}.tape{position:absolute;z-index:4;top:-19px;left:35%;width:115px;height:34px;background:#d7bb8b80;transform:rotate(-8deg);clip-path:polygon(2% 0,98% 5%,96% 26%,100% 45%,97% 65%,99% 100%,0 96%,3% 74%,0 51%,4% 30%)}.slideshow{position:relative;height:365px;overflow:hidden;background:#e9e3da;touch-action:pan-y}.slide-stage,.slide{position:absolute;inset:0}.slide{width:100%;height:100%;object-fit:contain;background:#e9e3da;transition:transform .65s cubic-bezier(.25,.8,.25,1),opacity .65s;will-change:transform;opacity:0}.slide.current{opacity:1;transform:translateX(0)}.photo-loading{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--serif);padding:30px;text-align:center}.photo-loading[hidden]{display:none}.photo-arrow{position:absolute;z-index:3;top:45%;background:#fffaf0e8;border:1px solid #fff9;color:var(--ink);height:44px;width:38px;border-radius:3px;opacity:0;transition:opacity .2s}.slideshow:hover .photo-arrow,.slideshow:focus-within .photo-arrow{opacity:1}.prev{left:8px}.next{right:8px}.photo-number{position:absolute;bottom:12px;right:12px;color:#fff;background:#34252580;padding:5px 8px;border-radius:2px;font-size:10px;letter-spacing:2px}.polaroid figcaption{font-family:var(--script);font-size:12px;display:flex;align-items:center;justify-content:space-between;min-height:62px;padding:5px 10px;gap:10px}.caption-heart{font-size:30px;color:var(--red)}.slideshow-controls{display:flex;align-items:center;justify-content:center;gap:25px;margin-top:30px}.slide-dots{display:flex;gap:7px}.slide-dots i{width:5px;height:5px;border-radius:50%;background:#d9c7be}.slide-dots i.active{background:var(--red)}#autoplay{background:none;border:0;font-size:11px;color:var(--muted);padding:10px}#autoplay span{margin-left:4px}.photo-footnote{text-align:center;font-size:10px;letter-spacing:.5px;color:var(--muted);margin-top:3px}.love-ribbon{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:19px 0;display:flex;justify-content:space-around;align-items:center;gap:16px;white-space:nowrap;overflow:hidden;color:var(--red);font-size:9px;letter-spacing:2px}.love-ribbon span:nth-child(even){font-size:18px}.love-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px;padding:73px 0 70px;align-items:center}.section-intro h2{font-family:var(--serif);font-weight:400;font-size:38px;line-height:1.17;letter-spacing:-1px;margin:18px 0}.section-intro p{color:var(--muted);font-size:13px}.handwritten{font-family:var(--script)}.intro-note{display:block;color:var(--red);font-size:12px;margin-top:20px;transform:rotate(-4deg)}.intro-note span{font-size:30px;margin-left:8px}.love-panel{background:#fffcf5;border:1px solid var(--line);border-radius:7px;padding:25px 28px;box-shadow:0 4px 0 #e7ddd35c}.panel-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.panel-top .eyebrow{font-size:9px;letter-spacing:1.5px}.together-tag{font-family:var(--script);font-size:10px;color:var(--red);border:1px solid #e6c5c6;border-radius:20px;padding:4px 10px;background:#fbefeb}.love-action{display:flex;align-items:center;gap:26px;padding:26px 0}.love-button{position:relative;flex:0 0 94px;width:94px;height:94px;background:#f4dfdd;color:var(--red);border-radius:50%;border:1px solid #edcece;box-shadow:0 0 0 7px #faf0ea;transition:transform .15s,background .15s;touch-action:manipulation}.love-button>span{font-size:49px;display:block;transform:translateY(-2px)}.love-button:hover{transform:scale(1.06);background:#f0cecd}.love-button:active{transform:scale(.91)}.daily-number{font-family:var(--serif);font-size:45px;line-height:1.1;letter-spacing:-2px}.goal-denominator{font-size:23px;color:#a28c84;letter-spacing:-1px}.love-action p{font-size:11px;color:var(--muted);margin-top:3px}.tap-hint{display:block;font-family:var(--script);color:var(--red);font-size:10px;margin-top:5px}.progress-track{height:7px;background:#efe4dc;border-radius:20px;overflow:hidden}.progress-track>div{height:100%;width:0;background:var(--red);border-radius:20px;transition:width .3s}.progress-labels{display:flex;justify-content:space-between;gap:10px;font-size:9px;color:var(--muted);margin-top:10px}.progress-labels>span:last-child{font-size:8px;letter-spacing:1px;white-space:nowrap}.counter-footer{border-top:1px dashed var(--line);margin-top:23px;padding-top:17px;display:flex;align-items:center;justify-content:space-between;gap:10px}.counter-footer>div{display:flex;align-items:center;gap:7px}.total-heart{font-size:22px;color:var(--red)}.counter-footer strong{font-family:var(--serif);font-size:20px;font-weight:400}.counter-footer div>span:last-child{font-size:9px;color:var(--muted)}.saved-status{font-size:9px;color:#6e8064;white-space:nowrap}.pending-status{font-size:11px;color:var(--red);margin-top:10px}.daily-message{border-top:1px dashed var(--line);padding-top:16px;margin-top:16px}.daily-message>span{font-size:9px;color:var(--red);letter-spacing:1px}.daily-message p{font-family:var(--serif);font-size:15px;margin-top:8px}.notes-section{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding:10px 0 64px;border-bottom:1px solid var(--line)}.note-card{position:relative;background:#eddad4;padding:34px 33px 27px;transform:rotate(-2deg);box-shadow:2px 7px 12px #5937280b;border-radius:2px;align-self:start;margin-top:15px}.note-pin{position:absolute;top:-15px;left:48%;font-size:25px;color:var(--red);transform:rotate(20deg)}.note-card .eyebrow{font-size:9px;letter-spacing:1.5px}.note-card h2{font-family:var(--serif);font-size:29px;font-weight:400;letter-spacing:-.6px;line-height:1.2;margin:20px 0}.note-card h2 em{font-size:26px;color:var(--ink)}.note-text{font-family:var(--script);font-size:16px;line-height:1.85;min-height:105px;max-width:310px}.note-button{background:none;border:0;border-bottom:1px solid #ae7678;padding:10px 0;font-size:11px;color:var(--red);display:flex;gap:25px}.note-doodle{position:absolute;right:25px;bottom:21px;color:var(--red);font-family:var(--script);font-size:46px;transform:rotate(15deg)}.letter{padding:10px 10px 0 0;position:relative}.letter .eyebrow{font-size:9px}.letter h2{font-family:var(--script);color:var(--red);font-size:28px;font-weight:400;margin:20px 0 12px}.letter>p{font-size:12px;line-height:1.9;color:#786360;margin-bottom:13px;max-width:400px}.letter-signature{font-family:var(--script);font-size:11px;line-height:1.8;padding-top:4px}.letter-signature>span:first-child{font-size:26px;color:var(--red)}.signature-heart{font-size:29px;color:var(--red);margin-left:12px}.letter-stamp{position:absolute;right:5px;bottom:0;border:1px dashed #c69693;outline:1px solid #dfc3ba;outline-offset:4px;padding:8px;font-size:6px;text-align:center;letter-spacing:1.1px;color:var(--red);transform:rotate(11deg);line-height:1.7}.letter-stamp b{font-size:28px;font-weight:400;line-height:1.1}.closing{text-align:center;padding:49px 0}.closing>span{font-size:32px;color:var(--red)}.closing p{font-family:var(--serif);font-size:29px;line-height:1.3;margin:12px 0 20px;letter-spacing:-.5px}.closing small{font-size:8px;letter-spacing:2px;color:var(--muted)}footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;padding:22px 0 28px;font-size:9px;color:var(--muted)}footer span span{color:var(--red);margin:0 6px}.heart-effects{position:fixed;inset:0;pointer-events:none;z-index:100;overflow:hidden}.floating-heart{position:absolute;animation:float-heart 1.3s ease-out forwards;font-size:24px;pointer-events:none}.falling-heart{position:absolute;top:-50px;animation:rain-heart var(--duration) linear forwards;animation-delay:var(--delay);font-size:var(--size)}@keyframes float-heart{from{opacity:1;transform:translate(-50%,-50%) scale(.5)}to{opacity:0;transform:translate(calc(-50% + var(--drift)),-150px) rotate(25deg) scale(1.3)}}@keyframes rain-heart{to{transform:translate(var(--drift),110vh) rotate(320deg)}}dialog{border:1px solid #e4c6c4;border-radius:9px;background:var(--paper);color:var(--ink);max-width:480px;width:calc(100% - 36px);padding:36px;text-align:center;box-shadow:0 20px 90px #37232630}dialog::backdrop{background:#32232470;backdrop-filter:blur(5px)}.dialog-close{position:absolute;right:12px;top:10px;border:0;background:none;width:40px;height:40px;font-size:28px}.celebration-art{font-size:45px;display:block;margin:3px 0 20px}dialog .eyebrow{justify-content:center;font-size:8px}dialog h2{font-family:var(--serif);font-weight:400;font-size:43px;line-height:1.1;margin:19px 0}dialog p{font-size:13px;color:var(--muted);margin-bottom:24px}.noscript{padding:20px;text-align:center}
@media(min-width:1450px){.page-shell{max-width:1280px}.hero{gap:90px}.slideshow{height:410px}}
@media(max-width:1000px){.page-shell{padding:0 32px}.hero{gap:26px}.hero h1{font-size:68px}.title-heart{left:265px;font-size:43px}.slideshow{height:330px}.header-note{display:none}.love-section{gap:30px}.love-panel{padding:22px}.notes-section{gap:40px}.love-ribbon>span:last-child{display:none}.counter-footer{flex-wrap:wrap}.photo-arrow{opacity:1}}
@media(max-width:700px){.top-strip{font-size:8px;letter-spacing:1px;padding:10px}.page-shell{padding:0 24px}.site-header{height:80px}.wordmark{font-size:32px}nav{gap:22px;font-size:11px}.hero{grid-template-columns:1fr;gap:28px;padding:38px 0 35px}.hero h1{font-size:72px;letter-spacing:-3.5px;margin-top:22px;max-width:350px}.hero-copy{padding:0 4px}.title-heart{left:275px;top:65px;font-size:53px}.eyebrow{font-size:9px;letter-spacing:1.5px}.hero-description{font-size:13px}.hero .primary-link{margin-top:23px}.signed-note{font-size:11px}.memories{max-width:450px;width:100%;margin:0 auto;padding:8px 8px 0}.photo-label{font-size:13px;margin-bottom:20px}.photo-doodle{left:3px;top:-3px;font-size:36px}.slideshow{height:350px;height:clamp(270px,90vw,410px)}.polaroid{padding:10px 10px 0}.polaroid figcaption{font-size:11px;min-height:58px;padding:5px}.photo-footnote{font-size:9px}.slideshow-controls{margin-top:24px}.love-ribbon{padding:13px 0;font-size:8px;letter-spacing:1.1px;justify-content:space-between;gap:15px}.love-ribbon>span:nth-child(n+5){display:none}.love-section{grid-template-columns:1fr;gap:28px;padding:40px 0 44px}.section-intro h2{font-size:35px;margin:15px 0}.section-intro p{font-size:12px}.intro-note{margin-top:12px;font-size:11px}.love-panel{padding:22px 20px}.love-action{gap:25px;padding:27px 0}.daily-number{font-size:45px}.counter-footer>div{gap:6px}.counter-footer div>span:last-child{font-size:9px}.counter-footer{gap:7px}.saved-status{font-size:9px}.notes-section{grid-template-columns:1fr;gap:42px;padding:0 0 35px}.note-card{margin:10px 4px 0;padding:30px}.note-card h2{font-size:29px}.note-text{min-height:100px;font-size:16px}.letter{padding:0 5px}.letter>p{font-size:13px;max-width:none}.letter-stamp{right:14px;bottom:3px}.closing{padding:36px 0}.closing p{font-size:27px}footer{flex-direction:column;align-items:center;gap:10px;font-size:8px;padding:20px 0}.photo-arrow{height:44px;width:34px}.progress-labels{font-size:8px}.panel-top .eyebrow{font-size:8px}dialog{padding:30px 23px}}
@media(max-width:360px){.page-shell{padding:0 18px}.hero h1{font-size:64px}.title-heart{left:245px;font-size:40px}.love-action{gap:18px}.love-button{flex-basis:80px;width:80px;height:80px}.counter-footer div>span:last-child{font-size:8px}}
.love-action{position:relative;padding-top:110px}
.day-one{margin-top:7px;font-size:11px;color:var(--muted)}
.day-one time{color:var(--red)}
.love-cue{position:absolute;top:10px;left:0;width:100%;height:96px;pointer-events:none;color:#db243c}
.love-cue svg{display:block;width:180px;height:96px;overflow:visible}
.love-cue path{fill:none;stroke:currentColor;stroke-width:8;stroke-linecap:round;stroke-linejoin:round}
.love-cue>span{position:absolute;left:100px;top:53px;font-family:var(--script);font-size:13px;transform:rotate(-5deg);white-space:nowrap}
@media(max-width:360px){.love-cue svg{width:154px;height:82px}.love-cue>span{left:83px;font-size:12px}.love-action{padding-top:100px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.floating-heart,.falling-heart{display:none}}
