@font-face{font-family:Geist;src:url(geist.woff2) format('woff2');font-weight:100 900;font-display:swap}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:#cbe9fa;color:#33241f;font-family:Geist,Arial,sans-serif;font-size:16px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #bf303e;outline-offset:6px}button{border:0}.paper-noise{position:fixed;inset:0;pointer-events:none;z-index:5;opacity:.035;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' opacity='.7' filter='url(%23n)'/%3E%3C/svg%3E")}header{max-width:1440px;margin:auto;height:100px;display:flex;align-items:center;justify-content:space-between;padding:0 6%;border-bottom:1px solid #33241f22}.wordmark{font-size:35px;font-weight:700;letter-spacing:-3px}.heart{color:#4b281e;font-size:24px;padding:0 4px}nav{display:flex;gap:36px;font-size:14px}.music-open{background:transparent;font-size:14px}.music-open:hover,nav a:hover{color:#4b281e}main{overflow:hidden;max-width:100%}.hero{min-height:720px;max-width:1440px;margin:auto;padding:94px 6% 90px;display:grid;grid-template-columns:1.2fr 1fr;align-items:center;position:relative;gap:50px;background-image:radial-gradient(#4b281e20 1.4px,transparent 1.4px);background-size:26px 26px}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:600;margin:0 0 25px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(48px,5.6vw,83px);line-height:1.05;letter-spacing:-5px;font-weight:500;margin-bottom:28px;max-width:1120px}em{font-family:Georgia,serif;font-weight:400;color:#4b281e;letter-spacing:-.045em}h1 em{white-space:nowrap}.intro{line-height:1.7;color:#59534e;font-size:16px;margin-bottom:30px}.intro strong{font-weight:400}.button{display:inline-flex;align-items:center;justify-content:center;gap:26px;border-radius:4px;padding:18px 25px;font-size:14px;transition:transform .25s,background .25s;line-height:1.3}.button:hover{transform:translateY(-3px)}.button span{font-size:20px}.red{background:#4b281e;color:#fff8ed}.red:hover{background:#30190f}.signed{margin:30px 0 0;font-size:13px;color:#77716b}.signed span{font-family:Georgia,serif;font-style:italic;color:#4b281e;font-size:22px;margin-left:8px}.hero-art{position:relative;margin:0 22px 0 0}.photo-frame{background:#fffdf8;padding:13px 13px 19px;transform:rotate(6deg);box-shadow:0 12px 35px #30231925;transition:transform .7s}.photo-frame:hover{transform:rotate(2deg) scale(1.02)}.photo-frame img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover}.photo-caption{display:flex;justify-content:space-between;align-items:center;margin:17px 5px 0;font-size:11px}.photo-caption span:first-child{font:italic 21px Georgia,serif}.side-note{position:absolute;left:-42px;bottom:-40px;transform:rotate(-7deg);font:italic 20px/1.2 Georgia,serif;background:#cbe9fa;padding:12px}.round-seal{position:absolute;right:-35px;top:-35px;border:1px solid #4b281e;background:#cbe9fa;border-radius:50%;width:105px;height:105px;display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:10px;letter-spacing:1px;line-height:1.2;color:#4b281e;transform:rotate(14deg)}.round-seal b{font-size:28px}.scroll-note{position:absolute;bottom:30px;left:6%;font-size:12px;color:#77716b}.scroll-note span{margin-left:15px}.marquee{background:#4b281e;color:#fff8ed;padding:21px 0;transform:rotate(-2deg) scale(1.02);font-family:Georgia,serif;font-style:italic;font-size:27px;overflow:hidden}.marquee div{white-space:nowrap;animation:marquee 35s linear infinite;display:inline-block}.marquee i{font-style:normal;margin:0 40px;font-size:21px}@keyframes marquee{to{transform:translateX(-50%)}}.section{padding:130px 6%;max-width:1440px;margin:auto}.section-top{text-align:center;margin-bottom:55px}h2{font-size:clamp(40px,4.8vw,64px);line-height:1.07;letter-spacing:-3px;font-weight:500;margin-bottom:25px}.section-top>p:last-child{color:#746c66;line-height:1.7}.reasons-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-flow:dense;gap:0;border:1px solid #33241f33}.reason{padding:34px 32px 30px;min-height:330px;display:flex;flex-direction:column;background:#eee8de}.reason-number{font-size:13px;margin-bottom:32px;color:#827b73}.reason h3{font-size:29px;font-weight:500;line-height:1.15;letter-spacing:-1px}.reason p{font-size:15px;line-height:1.8;max-width:280px}.tiny-script{font:italic 20px Georgia,serif;display:block;margin-top:auto;padding-top:20px;color:#4b281e}.cherry{background:#4b281e;color:#fff8ed}.cherry .reason-number,.cherry .tiny-script{color:#fff8edbb}.dotted{background-color:#cbe9fa;background-image:radial-gradient(#4b281e25 1.5px,transparent 1.5px);background-size:20px 20px}.letter-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;border-top:1px solid #33241f22}.letter-heading>p{line-height:1.7;color:#746c66}.letter-heading .eyebrow{color:#33241f}.heart-outline{font-size:120px;color:#4b281e;transform:rotate(-15deg);line-height:1.4}.letter{background:#fffdfa;border:1px solid #ddd3c7;padding:50px 50px 40px;box-shadow:8px 8px 0 #e7dfd3;position:relative}.letter:before{content:'';position:absolute;width:110px;height:27px;background:#4b281e33;top:-13px;left:40%;transform:rotate(-4deg)}.letter-date{font-size:12px;color:#958476;display:block;text-align:right;margin-bottom:30px}.letter h3{font:italic 30px Georgia,serif;color:#4b281e;margin-bottom:25px}.letter p{font-size:16px;line-height:1.9;color:#514b45;margin-bottom:22px}.letter p em{letter-spacing:0}.letter .letter-last{font-weight:600;color:#4b281e}.letter-sign{font-size:14px;margin-top:35px}.letter-sign strong{display:block;font:italic 36px Georgia,serif;color:#4b281e;margin:10px 0 20px}.letter-sign span{font-size:12px;color:#7c736b;display:block;line-height:1.6}.playlist-note{text-align:center;background:#33241f;color:#cbe9fa;max-width:none;position:relative}.playlist-note h2{font-size:clamp(48px,6.5vw,88px);margin:20px 0}.playlist-note h2 em{color:#d9b99c}.playlist-note p{line-height:1.8;color:#e3d9ce}.cream{background:#cbe9fa;color:#33241f;margin-top:18px}.handwritten{display:block;font:italic 22px Georgia,serif;color:#d9b99c;margin-top:34px;transform:rotate(-5deg)}.ending{text-align:center;background-image:radial-gradient(#4b281e30 1.5px,transparent 1.5px);background-size:26px 26px}.ending h2{font-size:clamp(62px,8vw,100px)}.ending>p{line-height:1.8}.ending>.button{margin:15px 0 20px}.love-reveal{color:#4b281e;padding:18px;max-width:600px;margin:0 auto 20px;background:#cbe9fa}.back-top{display:block;font-size:13px;margin-top:26px;text-decoration:underline;text-underline-offset:5px}footer{border-top:1px solid #33241f22;display:flex;justify-content:space-between;padding:30px 6% 90px;font-size:12px;color:#746c66}footer b{color:#4b281e;margin:0 6px}.back-button{position:fixed;bottom:22px;left:24px;z-index:8;border:1px solid #c8bbb0;border-radius:30px;padding:12px 19px;background:#fffdf8;box-shadow:0 3px 12px #0001;font-size:14px;display:flex;gap:10px;align-items:center}.back-button:hover{background:#eae1d5}dialog{position:fixed;inset:auto 25px 85px auto;border:1px solid #cfc3b7;background:#fffdf8;padding:25px;width:min(390px,calc(100% - 32px));max-height:calc(100dvh - 110px);overflow:auto;box-shadow:0 20px 80px #0003;z-index:20;margin:0;border-radius:6px}dialog::backdrop{background:#33241f33}.dialog-top{display:flex;justify-content:space-between;align-items:start}.dialog-top .eyebrow{margin-bottom:18px}.dialog-top button{background:none;font-size:26px;line-height:1}.dialog-top~h2{font-size:30px;letter-spacing:-1px;margin-bottom:9px}dialog>p{font-size:13px;color:#766b62;line-height:1.6}#player-container{min-height:180px}#player-container iframe{width:100%;aspect-ratio:16/9;border:0;display:block}.player-note{margin:12px 0}.player-status{color:#4b281e}dialog>a{font-size:13px;text-decoration:underline}body.music-active .music-open{color:#4b281e}.playlist-note .music-open{color:#33241f}body.music-active header .music-open:before{content:'● ';color:#4b281e}
@media(min-width:1600px){.hero{min-height:820px}}@media(max-width:900px){.hero{gap:30px;padding-top:65px;min-height:650px}h1{letter-spacing:-3px}.hero-art{margin-right:12px}.round-seal{width:85px;height:85px;font-size:9px;right:-20px}.reason{padding:25px 22px}.reason h3{font-size:25px}.letter-section{gap:35px;grid-template-columns:.7fr 1.3fr}.letter{padding:32px}.section{padding-top:95px;padding-bottom:95px}}@media(max-width:640px){header{height:78px;padding:0 6%}.wordmark{font-size:30px}nav{gap:18px;font-size:12px}.music-open span{display:none}header>.music-open{font-size:23px}html{scroll-padding-top:25px}.hero{display:flex;flex-direction:column;align-items:stretch;padding:50px 7% 75px;gap:55px;min-height:auto}.hero .eyebrow{font-size:10px;letter-spacing:1.7px;margin-bottom:23px}h1{font-size:clamp(46px,11.3vw,70px);letter-spacing:-2.7px}.intro{font-size:15px}.hero-art{width:82%;align-self:center;margin:0 0 20px}.round-seal{top:-20px;right:-30px}.side-note{font-size:17px;left:-25px;bottom:-30px}.photo-caption span:first-child{font-size:18px}.scroll-note{bottom:20px;left:7%}.section{padding:85px 7%}.section-top{margin-bottom:35px}h2{letter-spacing:-2px}.eyebrow{font-size:10px;line-height:1.8;letter-spacing:1.5px}.section-top>p:last-child{font-size:14px}.reasons-grid{grid-template-columns:1fr}.reason{min-height:270px;padding:28px}.reason h3 br{display:none}.reason h3{font-size:29px}.reason p{max-width:none}.reason-number{margin-bottom:22px}.letter-section{display:block}.letter-heading{margin-bottom:40px}.heart-outline{display:none}.letter{padding:32px 25px;box-shadow:5px 5px 0 #e7dfd3}.letter h3{font-size:27px}.letter p{font-size:15px}.playlist-note h2{font-size:50px}.playlist-note p{font-size:14px}.ending h2{font-size:64px}.ending>p{font-size:15px}footer{flex-wrap:wrap;gap:20px;padding:25px 7% 85px}footer span:nth-child(2){order:3;width:100%}.back-button{bottom:16px;left:16px;padding:11px 17px}dialog{right:16px;bottom:75px}.marquee{font-size:23px;padding:18px 0}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.marquee div{animation:none}*,*:before,*:after{transition:none!important;animation:none!important}}

