:root{--wine:#641a32;--wine-dark:#441021;--cream:#faf5ec;--paper:#fffaf3;--pink:#f2d9dc;--rose:#d596a2;--ink:#4e2933;--muted:#816770;--line:#dfcdd0;--gold:#d7b778;--serif:Georgia,'Times New Roman',serif;--sans:'Avenir Next',Avenir,'Segoe UI',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.7}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 #bb815a;outline-offset:6px}button{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.1;letter-spacing:-.035em}em{font-weight:400}h2{font-size:clamp(36px,4.3vw,60px)}.eyebrow{font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:.2em;line-height:1.5}.handwritten{font:italic 24px var(--serif);letter-spacing:-.03em}.section-wrap{max-width:1200px;margin:auto;padding-left:64px;padding-right:64px}.skip-link{position:fixed;top:-80px;left:16px;z-index:100;background:var(--cream);padding:12px}.skip-link:focus{top:12px}.reading-progress{height:3px;width:0;background:var(--rose);position:fixed;top:0;left:0;z-index:70}.site-header{height:84px;display:flex;align-items:center;justify-content:space-between;padding:0 5.1%;background:var(--cream);border-bottom:1px solid #e6d9d6;gap:24px}.wordmark{display:flex;align-items:center;font:italic 44px var(--serif);line-height:1}.tiny-heart{font-style:normal;font-size:26px;margin-left:3px}.wordmark-text{font:10px var(--sans);letter-spacing:.11em;margin-left:18px;border-left:1px solid var(--line);padding-left:18px}.site-header nav{display:flex;gap:33px;font-size:12px}.site-header nav a{position:relative;padding:12px 0}.site-header nav a:after{content:'';position:absolute;height:1px;width:0;bottom:5px;left:0;background:var(--wine);transition:width .25s}.site-header nav a:hover:after{width:100%}.music-toggle{border:1px solid var(--line);background:transparent;border-radius:50px;padding:10px 16px;display:flex;align-items:center;gap:9px;font-size:10px;min-height:42px}.music-bars{display:flex;align-items:center;gap:3px;height:13px}.music-bars i{display:block;background:var(--wine);width:2px;height:5px}.music-bars i:nth-child(2){height:12px}.music-toggle[aria-pressed=true] i{animation:sound .8s ease-in-out infinite alternate}.music-toggle[aria-pressed=true] i:nth-child(2){animation-delay:.3s}.music-toggle[aria-pressed=true] i:nth-child(3){animation-delay:.5s}.hero{min-height:670px;background:var(--wine);color:var(--cream);display:grid;grid-template-columns:1.08fr 1fr;position:relative;isolation:isolate;overflow:hidden;padding:93px max(6.5%,calc((100vw - 1044px)/2)) 96px;column-gap:28px}.hero:before{content:'';position:absolute;width:850px;height:850px;border:1px solid #d7b77816;border-radius:50%;right:-260px;top:-120px;z-index:-1}.hero:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 75% 50%,#a4414f50,transparent 55%);z-index:-1}.hero-grain{position:absolute;inset:0;opacity:.035;pointer-events:none;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='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.7' filter='url(%23n)'/%3E%3C/svg%3E")}.hero-copy{z-index:3;align-self:center;animation:arrive .9s both}.hero .eyebrow{display:flex;gap:10px;align-items:center;color:#e6c7c5;font-size:9px}.hero .eyebrow span{width:24px;height:1px;background:var(--rose)}h1{font-size:clamp(53px,6vw,84px);margin-top:25px;line-height:1.08;letter-spacing:-.055em}h1 em{color:#efc6c9}.hero-description{font-size:13px;line-height:1.9;margin-top:27px;color:#e4cbd0}.button{border:0;border-radius:3px;display:inline-flex;align-items:center;justify-content:space-between;gap:30px;min-height:49px;padding:13px 23px;font-size:11px;font-weight:500;letter-spacing:.025em;transition:transform .25s,box-shadow .25s,background .25s}.button:hover{transform:translateY(-3px);box-shadow:0 8px 20px #40172519}.button span{font-size:20px;line-height:1}.cream{background:var(--cream);color:var(--wine);margin-top:31px}.wine{background:var(--wine);color:var(--cream)}.hero-footnote{font:italic 12px var(--serif);color:#dbb4bd;margin-top:18px}.hero-art{position:relative;align-self:center;min-height:410px;display:flex;align-items:center;justify-content:center;animation:arrive 1.2s .15s both}.orbit{position:absolute;width:360px;height:360px;border:1px solid #e8c3b31c;border-radius:50%}.hero-note{position:absolute;top:-10px;right:0;transform:rotate(7deg);font-size:21px;color:#e4c0bd;line-height:1.3;z-index:5}.hero-note svg{position:absolute;width:70px;right:30px;top:50px;fill:none;stroke:#d5acac;stroke-width:1}.envelope{position:relative;width:330px;height:220px;border:0;background:none;transform:rotate(-8deg);filter:drop-shadow(0 25px 25px #27040a60);animation:float 6s ease-in-out infinite;z-index:2;perspective:1000px}.envelope-back{position:absolute;inset:0;background:#8a3347;border-radius:3px}.envelope-front{position:absolute;inset:0;background:linear-gradient(150deg,#a14659,#7c253b);clip-path:polygon(0 0,50% 52%,100% 0,100% 100%,0 100%);z-index:3}.envelope-front:after{content:'';position:absolute;inset:0;background:#943549;clip-path:polygon(0 100%,50% 45%,100% 100%)}.envelope-flap{position:absolute;inset:0;background:linear-gradient(#b05b68,#8c3044);clip-path:polygon(0 0,100% 0,50% 53%);transform-origin:top;transition:transform .7s;z-index:4;filter:drop-shadow(0 3px 2px #43111e)}.envelope-letter{position:absolute;left:7%;top:5%;width:86%;height:85%;background:#f9ecda;z-index:2;padding:24px 13px;display:flex;align-items:center;flex-direction:column;color:var(--wine);transition:transform .6s;box-shadow:0 0 4px #0002}.envelope-letter span{font:italic 15px var(--serif)}.envelope-letter strong{font:italic 29px var(--serif);margin:12px 0}.envelope-letter small{font-size:8px;letter-spacing:.08em}.wax-seal{position:absolute;z-index:6;width:55px;height:55px;border-radius:46% 52% 48% 44%;background:radial-gradient(circle at 35% 30%,#edce8d,#ba8e49 60%,#d1ad68);border:3px double #e2bc75;color:#76552e;font:italic 30px var(--serif);display:grid;place-items:center;left:calc(50% - 27px);top:calc(50% - 10px);box-shadow:2px 5px 6px #38101d5c;transition:transform .3s}.envelope:hover .wax-seal{transform:scale(1.08)}.envelope-caption{position:absolute;bottom:22px;font-size:9px;letter-spacing:.1em;color:#d9adb7}.stamp{position:absolute;right:-20px;bottom:37px;font-size:7px;letter-spacing:.15em;text-align:center;line-height:1.4;transform:rotate(13deg);border:1px dashed #d5acac88;outline:4px solid #d5acac12;padding:8px 9px;color:#ddb4bd}.stamp b{font:27px var(--serif)}.hero-spark{position:absolute;color:#cba572;animation:twinkle 4s infinite}.spark-one{font-size:34px;left:52%;top:64px}.spark-two{font-size:22px;right:6%;bottom:130px;animation-delay:1s}.hero-bottom{position:absolute;bottom:24px;left:5.1%;right:5.1%;display:flex;justify-content:space-between;align-items:center;font-size:8px;letter-spacing:.16em;color:#dab7c0;border-top:1px solid #c3909f35;padding-top:19px}.hero-bottom a span{padding-left:15px}.intro{display:grid;grid-template-columns:1fr 1fr;gap:100px;padding-top:100px;padding-bottom:65px}.intro h2{margin-top:22px}.intro-content{padding-top:34px;font-size:14px;color:var(--muted);max-width:350px}.mini-note{display:flex;gap:20px;margin-top:29px;align-items:center;font:italic 21px/1.35 var(--serif);color:var(--wine)}.mini-note span{font-size:45px;color:#ac707e}.counter-section{display:grid;grid-template-columns:1.65fr 1fr;gap:22px;padding-top:18px;padding-bottom:95px}.counter-card{background:#f0e4de;border:1px solid #e7d7d0;padding:28px 35px;text-align:center}.counter-top{display:flex;align-items:center;justify-content:space-between;color:var(--muted)}.counter-top>span:last-child{font-size:25px}.counter-top .eyebrow{font-size:8px}.counter-card h2{font-size:35px;margin-top:17px}.counter-date{font-size:8px;letter-spacing:.17em;margin-top:13px;color:var(--muted)}.counter{display:flex;align-items:center;justify-content:center;gap:21px;margin:27px 0 17px;font-variant-numeric:tabular-nums}.counter div{display:flex;flex-direction:column;min-width:46px}.counter strong{font:38px var(--serif);letter-spacing:-.05em}.counter div span{font-size:9px;color:var(--muted);margin-top:8px}.counter-colon{font:24px var(--serif);align-self:flex-start;opacity:.4}.counter-caption{font:italic 13px var(--serif);color:var(--muted);margin-top:17px}.birthday-card{position:relative;padding:35px 29px;background:var(--pink);border:1px solid #e9c7cc;overflow:hidden}.birthday-card .eyebrow{font-size:8px}.birthday-card h3{font-size:62px;line-height:.8;margin-top:30px}.birthday-card h3>span{font-size:19px;vertical-align:super;letter-spacing:0}.birthday-card h3 em{font-size:29px;line-height:1.5}.birthday-card>p:not(.eyebrow){font-size:10px;line-height:1.8;color:var(--muted);margin-top:12px}.birthday-footer{display:flex;justify-content:space-between;gap:8px;border-top:1px solid #cd9ca659;margin-top:24px;padding-top:12px;font-size:8px;letter-spacing:.06em}.birthday-star{position:absolute;right:26px;top:66px;font-size:94px;color:#ba76862b;animation:slowspin 50s linear infinite}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:35px;margin-bottom:50px}.section-heading h2{margin-top:20px}.section-heading>p{font-size:12px;color:var(--muted);line-height:1.8;max-width:260px}.story-section{padding-top:15px;padding-bottom:100px}.timeline{display:grid;grid-template-columns:1fr 1fr;column-gap:55px;margin:0 0 70px}.timeline-card{padding:30px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:42px 1fr;gap:17px;position:relative}.timeline-icon{font:26px var(--serif);color:#aa737f;background:#f0e4e0;width:40px;height:40px;display:grid;place-items:center;border-radius:50%}.timeline-card.featured .timeline-icon{background:var(--wine);color:var(--cream)}.timeline-date{font-size:9px;letter-spacing:.13em;color:var(--muted)}.timeline-card h3{font-size:23px;line-height:1.25;margin:9px 0 11px;letter-spacing:-.02em}.timeline-card p{font-size:12px;color:var(--muted);line-height:1.9}.timeline-tag{display:inline-block;margin-top:17px;font-size:8px;border:1px solid #dfc8ce;padding:2px 9px;border-radius:20px;color:#87505f}.timeline-card.featured .timeline-tag{background:var(--pink);border-color:var(--pink)}.date-keepsake{display:grid;grid-template-columns:.85fr 1.15fr;background:#e9d1cd;position:relative;padding:32px;gap:43px;min-height:330px}.keepsake-art{container-type:inline-size;background:var(--wine);position:relative;min-height:285px;transform:rotate(-4deg);border:10px solid #fff8ed;border-bottom-width:36px;box-shadow:0 7px 15px #66372920;overflow:visible}.keepsake-art:after{content:'the best date ever ♡';position:absolute;bottom:-29px;color:var(--wine);font:italic 12px var(--serif);left:0;right:0;text-align:center}.heart-drawing{font:clamp(96px,48cqw,175px)/1 var(--serif);color:#ebbdc4;position:absolute;left:5%;bottom:8px;transform:rotate(-13deg);animation:heartbeat 5s infinite}.moon{position:absolute;top:5px;right:23px;font:60px var(--serif);color:#dcbf8b;transform:rotate(-25deg)}.tulip-bouquet{position:absolute;width:clamp(90px,36cqw,132px);height:auto;right:4%;bottom:8px;overflow:visible;transform-origin:52% 88%;animation:bouquet-sway 7s ease-in-out infinite}@keyframes bouquet-sway{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}.keepsake-spark{position:absolute;left:28px;top:21px;color:#dcbf8b;font-size:21px}.keepsake-copy{align-self:center;padding-bottom:20px}.keepsake-copy h3{font-size:37px;margin:19px 0}.keepsake-copy>p:not(.eyebrow){font-size:12px;color:#795b63;max-width:330px}.keepsake-copy .handwritten{display:block;margin-top:22px;font-size:20px}.keepsake-date{position:absolute;bottom:15px;right:22px;font-size:8px;letter-spacing:.15em}.reasons-section{padding:90px 0;background:#f3e6e3;border-top:1px solid #e9d9d5;border-bottom:1px solid #e9d9d5}.reason-feature{background:var(--paper);border:1px solid #e6d4cf;padding:25px 35px 36px;position:relative;overflow:hidden;text-align:center}.reason-feature-top{display:flex;justify-content:space-between;font-size:8px;letter-spacing:.18em;color:var(--muted)}.reason-feature-top span:last-child{font-size:24px;line-height:1}.reason-display{position:relative;z-index:1;min-height:145px;padding-top:20px}.reason-display>span{font-size:10px;letter-spacing:.15em;color:#a16c79}.reason-display p{font:italic clamp(24px,3.2vw,39px)/1.5 var(--serif);margin:14px auto;max-width:90%;overflow-wrap:anywhere}.reason-feature .button{position:relative;z-index:1}.reason-decoration{position:absolute;font:260px var(--serif);right:3px;bottom:-56px;color:#ead2d646;transform:rotate(-20deg);pointer-events:none}.reasons-toolbar{display:flex;align-items:center;justify-content:space-between;margin:38px 0 20px;border-bottom:1px solid #ddc5ca;padding-bottom:15px;gap:12px}.reasons-toolbar p{font-size:9px;letter-spacing:.14em}.text-button{font-size:10px;border:0;background:transparent;padding:10px 0 10px 15px}.text-button span{margin-left:12px}.reasons-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;list-style:none;padding:0;margin:0;counter-reset:reasons}.reason-card{display:flex;gap:14px;align-items:center;background:#fff9f175;min-height:95px;border:1px solid #e3cfd1;padding:17px;transition:transform .3s,background .3s}.reason-card:hover{transform:translateY(-4px);background:var(--paper)}.reason-card>span{font:italic 24px var(--serif);color:#b98a94;min-width:30px}.reason-card p{font-size:11px;line-height:1.7;overflow-wrap:anywhere}.reason-card[hidden]{display:none}.reasons-ending{text-align:center;font:20px/1.8 var(--serif);margin-top:55px;color:var(--muted)}.reasons-ending em{font-size:33px;color:var(--wine)}.reasons-ending>span{display:block;font-size:32px;color:#b88793;margin-top:20px}.letter-section{padding-top:110px;padding-bottom:110px;display:grid;grid-template-columns:1fr 1fr;gap:85px;align-items:center}.letter-intro h2{margin:21px 0}.letter-intro>p:not(.eyebrow){font-size:12px;color:var(--muted);max-width:260px}.letter-intro .handwritten{display:block;color:#a27780;margin-top:32px}.letter-preview{padding:45px 35px 35px;background:var(--paper);border:1px solid #e5d8cc;box-shadow:5px 6px 0 #e9ded4;position:relative;transform:rotate(2deg)}.letter-preview .eyebrow{font-size:8px}.letter-preview h3{font-size:29px;margin-top:32px}.letter-postmark{position:absolute;top:23px;right:22px;border:1px solid #b7808b;border-radius:50%;width:76px;height:76px;display:grid;place-content:center;text-align:center;font-size:6px;letter-spacing:.1em;transform:rotate(-15deg);line-height:1.9;color:#a46b79}.letter-lines{display:flex;flex-direction:column;gap:14px;margin:25px 0}.letter-lines i{display:block;height:1px;background:#e2d6ce;width:95%}.letter-lines i:last-child{width:60%}.letter-preview .button{margin-top:5px}.letter-preview-signature{display:block;font-size:16px;margin-top:24px;color:#a27780}footer{background:var(--wine-dark);color:var(--cream);text-align:center;padding:52px 5.1% 21px}.footer-heart{display:block;font:40px var(--serif);color:#e1aeb9;animation:heartbeat 5s infinite}footer>p{font-size:10px;color:#ddbdc5;margin-top:16px}footer h2{font-size:clamp(34px,4vw,52px);margin:20px 0 55px}footer h2 em{color:#e8bfc6}.footer-bottom{border-top:1px solid #c3909f35;padding-top:21px;display:flex;justify-content:space-between;gap:12px;font-size:7px;letter-spacing:.14em;color:#cdaab5}dialog{width:min(650px,calc(100% - 30px));max-height:88vh;padding:0;border:1px solid #dac6b4;background:var(--cream);color:var(--ink);box-shadow:0 25px 100px #17020b50;overscroll-behavior:contain}dialog::backdrop{background:#260a18ac;backdrop-filter:blur(7px)}dialog[open]{animation:arrive .4s both}.dialog-close{position:sticky;float:right;right:12px;top:12px;background:var(--wine);color:var(--cream);border:0;width:36px;height:36px;border-radius:50%;font-size:24px;z-index:1;line-height:1}.dialog-paper{padding:60px 60px 45px;background:repeating-linear-gradient(transparent 0,transparent 31px,#c6ac9c0d 32px)}.dialog-paper h2{font-size:40px;margin:22px 0 30px}.dialog-paper p{font-size:14px;line-height:1.95;margin-bottom:19px}.dialog-paper .letter-signature{font-size:22px;color:var(--wine);margin-top:30px}#heart-particles{position:fixed;inset:0;pointer-events:none;z-index:80;overflow:hidden}.heart-particle{position:absolute;color:#c57a8d;font-size:20px;animation:heartfly 1.7s ease-out forwards}.reveal{opacity:1}.js-motion .reveal{opacity:0;transform:translateY(22px);transition:opacity .75s,transform .75s}.js-motion .reveal.visible{opacity:1;transform:translateY(0)}.reason-changing{animation:reasonIn .45s both}.noscript-note{background:var(--pink);text-align:center;padding:20px}.footer-bottom a:hover{text-decoration:underline}
@keyframes arrive{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%,100%{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-9px) rotate(-6deg)}}@keyframes twinkle{0%,100%{opacity:.5;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}@keyframes slowspin{to{transform:rotate(360deg)}}@keyframes heartbeat{0%,75%,100%{transform:scale(1)}80%{transform:scale(1.05)}90%{transform:scale(1)}}@keyframes sound{to{height:13px}}@keyframes reasonIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes heartfly{from{opacity:.9;transform:translate(0,0) rotate(0)}to{opacity:0;transform:translate(var(--drift),-180px) rotate(var(--turn))}}
@media(min-width:1500px){.hero{padding-left:calc((100vw - 1072px)/2);padding-right:calc((100vw - 1072px)/2)}}
@media(max-width:1000px){.section-wrap{padding-left:40px;padding-right:40px}.wordmark-text{display:none}.hero{padding-left:6%;padding-right:6%;min-height:620px}.envelope{width:290px;height:196px}.hero-art{min-height:380px}.hero-note{font-size:19px;right:6px;top:5px}.stamp{right:-6px}.intro{gap:50px}.counter{gap:12px}.counter-section{grid-template-columns:1.5fr 1fr}.counter-card{padding:25px}.counter strong{font-size:34px}.letter-section{gap:45px}.date-keepsake{gap:30px}.keepsake-copy h3{font-size:32px}.reason-card{padding:13px;gap:9px}.timeline{column-gap:30px}.orbit{width:300px;height:300px}}
@media(max-width:700px){html{scroll-padding-top:30px}.site-header{height:72px;padding:0 22px;gap:12px}.wordmark{font-size:36px}.tiny-heart{font-size:20px}.site-header nav{gap:18px;font-size:10px}.music-toggle{padding:8px 10px;min-height:36px}.music-label{display:none}.hero{display:flex;flex-direction:column;padding:58px 26px 90px;min-height:915px;text-align:center}.hero-copy{width:100%}.hero .eyebrow{justify-content:center;font-size:8px}h1{font-size:clamp(49px,10vw,69px);margin-top:24px}.hero-description{font-size:12px;margin-top:23px}.hero-description br{display:none}.hero .button{margin-top:24px}.hero-footnote{font-size:11px;margin-top:17px}.hero-art{width:100%;max-width:380px;margin:39px auto 0;min-height:325px}.hero-note{font-size:17px;top:0;right:2px}.hero-note svg{width:52px;right:4px;top:35px}.envelope{width:270px;height:182px}.envelope-caption{bottom:11px;font-size:8px}.orbit{width:270px;height:270px}.stamp{bottom:27px;right:7px;font-size:6px}.hero-bottom{bottom:20px;left:24px;right:24px;font-size:7px;gap:12px}.hero-bottom>span:last-child{display:none}.spark-one{left:8%;top:43px;font-size:21px}.spark-two{right:8%;bottom:138px}.section-wrap{padding-left:25px;padding-right:25px}.intro{grid-template-columns:1fr;gap:25px;padding-top:65px;padding-bottom:35px}.intro h2{margin-top:18px;font-size:43px}.intro-content{padding-top:0;max-width:100%;font-size:13px}.mini-note{margin-top:22px;font-size:20px}.counter-section{grid-template-columns:1fr;padding-top:15px;padding-bottom:65px;gap:17px}.counter-card{padding:23px 20px 26px}.counter-top .eyebrow{font-size:7px}.counter-card h2{font-size:31px;margin-top:18px}.counter{gap:15px;margin-top:25px}.counter div{min-width:43px}.counter strong{font-size:34px}.counter-date{font-size:7px}.counter-caption{font-size:12px}.birthday-card{padding:29px}.birthday-card h3{font-size:58px;margin-top:26px}.birthday-star{right:30px;font-size:120px;top:45px}.birthday-card h3 em{font-size:30px}.birthday-card>p:not(.eyebrow){font-size:12px}.birthday-footer{margin-top:24px;font-size:9px}.section-heading{display:block;margin-bottom:30px}.section-heading h2{font-size:39px}.section-heading>p{font-size:12px;margin-top:22px}.story-section{padding-bottom:65px}.timeline{grid-template-columns:1fr;margin-bottom:30px}.timeline-card{padding:25px 0;gap:17px}.timeline-card h3{font-size:23px}.timeline-card p{font-size:12px}.timeline-date{font-size:9px}.date-keepsake{grid-template-columns:1fr;gap:31px;padding:30px 25px 43px}.keepsake-art{width:100%;max-width:310px;margin:auto;min-height:270px}.keepsake-copy h3{font-size:36px}.keepsake-copy{padding-bottom:0}.keepsake-copy>p:not(.eyebrow){max-width:100%}.reasons-section{padding:65px 0}.reason-feature{padding:20px 15px 29px}.reason-display{min-height:155px;padding-top:23px}.reason-display p{font-size:25px;max-width:100%;line-height:1.5}.reason-feature .button{font-size:10px;gap:20px}.reasons-grid{grid-template-columns:1fr 1fr;gap:9px}.reason-card{display:block;min-height:115px;padding:13px}.reason-card>span{font-size:21px;display:block;margin-bottom:8px}.reason-card p{font-size:11px}.reasons-toolbar{margin-top:25px}.reasons-toolbar p{font-size:8px}.text-button{font-size:9px}.reasons-ending{font-size:18px;margin-top:36px}.reasons-ending em{font-size:28px}.letter-section{grid-template-columns:1fr;gap:35px;padding-top:65px;padding-bottom:75px}.letter-intro h2{font-size:42px}.letter-intro .handwritten{margin-top:20px}.letter-preview{padding:38px 26px 30px}.letter-preview h3{font-size:31px}.letter-preview .eyebrow{font-size:7px}.letter-postmark{right:18px;top:17px;width:65px;height:65px;font-size:5px}.letter-preview h3{margin-top:38px}.footer-bottom{flex-direction:column;align-items:center;font-size:7px;gap:12px}footer{padding-top:40px}footer h2{font-size:38px;max-width:300px;margin:19px auto 40px}.dialog-paper{padding:50px 27px 30px}.dialog-paper h2{font-size:33px}.dialog-paper p{font-size:13px}.letter-signature{font-size:20px!important}}
@media(max-width:360px){.site-header{padding:0 15px}.site-header nav{gap:13px}.hero{padding-left:20px;padding-right:20px}.counter{gap:9px}.counter strong{font-size:30px}.counter div{min-width:38px}.counter-date{letter-spacing:.1em}.reasons-grid{grid-template-columns:1fr}.reason-card{display:flex;min-height:85px}.reason-card>span{margin:0}.hero-art{min-height:310px}.envelope{width:245px;height:170px}.stamp{right:0}.hero-note{right:0;font-size:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js-motion .reveal{opacity:1;transform:none}.heart-particle{display:none}}
/* Keep the illustrated flower stem inside its keepsake frame. */


/* Local song player in the same compact streaming-player style. */
.song-panel{position:fixed;z-index:65;top:96px;right:5.1%;width:min(370px,calc(100vw - 32px));background:var(--paper);border:1px solid var(--line);padding:22px;box-shadow:0 16px 55px #35102240;border-radius:5px;max-height:calc(100dvh - 112px);overflow:auto;animation:arrive .3s both}
.song-panel[hidden]{display:none}.song-panel-heading{display:flex;justify-content:space-between;gap:10px;align-items:center}.song-panel-heading .eyebrow{font-size:8px}.song-close{background:transparent;border:1px solid var(--line);border-radius:50%;font-size:23px;width:32px;height:32px;line-height:1;flex-shrink:0}.song-panel h2{font-size:31px;margin:14px 0 10px}.song-artist{font-size:10px;color:var(--muted);margin-bottom:20px}.song-panel iframe{display:block;border:0;border-radius:12px;background:#24101b}.song-hint{font:italic 12px/1.7 var(--serif);color:var(--muted);margin:14px 0}.song-links{display:flex;justify-content:space-between;gap:10px;font-size:9px}.song-links a{text-decoration:underline;text-underline-offset:3px}.music-toggle[aria-expanded=true]{background:var(--pink);border-color:#d6b0ba}
@media(max-width:700px){.song-panel{top:82px;right:16px;max-height:calc(100dvh - 98px)}}

.local-player{background:linear-gradient(135deg,#352027,#21191c 65%);color:#fff;border-radius:12px;padding:17px 17px 13px;font-family:var(--sans);box-shadow:0 5px 14px #240d1415}
.track-details{display:flex;gap:12px;align-items:center}.track-cover{flex:0 0 64px;height:64px;background:radial-gradient(ellipse at 25% 15%,#bc7f70,#824552 70%);border-radius:5px;box-shadow:0 4px 12px #0004;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fbe9da;overflow:hidden}.track-cover span{font:italic 10px var(--serif);line-height:1.1}.track-cover b{font:36px/.9 var(--serif);font-weight:400}.track-cover small{font-size:5px;letter-spacing:.14em;margin-top:3px}.track-info{flex:1;min-width:0}.track-title{font-size:12px;font-weight:650;line-height:1.45;letter-spacing:-.015em}.track-artist{font-size:10px;color:#c5b8bd;margin-top:2px}.track-dedication{font-size:6px;letter-spacing:.14em;color:#aa959f;display:block;margin-top:7px}.track-wave{font-size:23px;line-height:1;transform:rotate(-20deg);color:#f4e7ec;align-self:flex-start}.track-progress{display:flex;gap:9px;align-items:center;margin-top:16px;font-size:8px;color:#c8bac0;font-variant-numeric:tabular-nums}.track-progress>span{min-width:23px}.track-progress>span:last-child{text-align:right}.track-progress input{flex:1;min-width:0;height:4px;border:0;border-radius:20px;margin:8px 0;appearance:none;-webkit-appearance:none;background:linear-gradient(to right,#f9e8ee var(--played,0%),#74646b var(--played,0%));cursor:pointer}.track-progress input::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:10px;height:10px;border-radius:50%;background:#fff;border:0}.track-progress input::-moz-range-thumb{width:10px;height:10px;border-radius:50%;background:#fff;border:0}.track-progress input:disabled{opacity:.5;cursor:default}.track-controls{display:flex;justify-content:center;align-items:center;gap:36px;margin-top:5px}.track-controls button{display:grid;place-items:center;padding:0;border:0}.track-play{width:42px;height:42px;border-radius:50%;background:#1ed760;color:#102016;font-size:21px;transition:transform .2s,background .2s}.track-play:hover{transform:scale(1.07);background:#41e37c}.track-play .play-symbol{display:block;line-height:1;transform:translateX(1px)}.track-play:disabled{opacity:.6;cursor:wait}.track-icon{width:30px;height:30px;background:transparent;color:#c7b8be;font-size:24px;line-height:1}.track-icon[aria-pressed=true]{color:#1ed760}.track-icon svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.track-icon[aria-pressed=true] .volume-waves{opacity:.25}.song-status{font-size:10px;line-height:1.6;color:#f1cad4;margin:12px 0 0}.song-status[hidden]{display:none}.music-toggle[data-playing=true] .music-bars i{animation:sound .8s ease-in-out infinite alternate}.music-toggle[data-playing=true] .music-bars i:nth-child(2){animation-delay:.3s}.music-toggle[data-playing=true] .music-bars i:nth-child(3){animation-delay:.5s}
@media(prefers-reduced-motion:reduce){.music-toggle[data-playing=true] .music-bars i{animation:none}}

/* The seal, flap, and note open in order before the full letter appears. */
.envelope{--letter-lift:-126px}.envelope-flap{transform:rotateX(0deg);transform-origin:50% 0;backface-visibility:visible;transition:transform .65s cubic-bezier(.4,0,.2,1),z-index 0s .3s}.envelope-letter{transform:translateY(0);transition:transform .55s cubic-bezier(.22,.61,.36,1)}.envelope .wax-seal{transition:opacity .18s .45s,transform .25s .45s}.envelope.is-opening{animation-play-state:paused;cursor:default}.envelope.is-opening .envelope-flap{transform:rotateX(-180deg);z-index:1}.envelope.is-opening .envelope-letter{transform:translateY(var(--letter-lift));transition-delay:.3s}.envelope.is-opening .wax-seal{opacity:0;transform:scale(.82);transition:opacity .18s,transform .18s}.hero-note{transition:opacity .25s .45s}.hero-art:has(.envelope.is-opening) .hero-note{opacity:0;transition-delay:0s}.envelope:disabled{color:inherit;opacity:1}.envelope:disabled .wax-seal{transform:scale(.82)}
@media(max-width:700px){.envelope{--letter-lift:-105px}}
@media(prefers-reduced-motion:reduce){.envelope-flap,.envelope-letter,.envelope .wax-seal,.hero-note{transition:none!important}}
