/* FOR LIZA — Blush & Champagne, completely self-contained */
:root{--bg:#fff8f6;--paper:#fffdfa;--ink:#45313c;--text:#655360;--dust:#af7b91;--rose:#bf718d;--berry:#96576f;--gold:#b89b6d;--line:#e8d7d9;--serif:Georgia,'Times New Roman',serif;--sans:ui-sans-serif,system-ui,-apple-system,'Segoe UI',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;color:var(--ink);background:var(--bg);font:400 16px/1.65 var(--sans);overflow-x:hidden;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--berry);outline-offset:4px}::selection{background:#eed0dd;color:#513749}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.read-progress{position:fixed;z-index:200;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,#d8ad9e,#a95b7c,#eac4b3);transition:width .1s linear}.grain{pointer-events:none;position:fixed;inset:0;z-index:90;opacity:.12;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.73' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.2'/%3E%3C/svg%3E")}.header{z-index:100;position:absolute;top:0;left:0;right:0;padding:22px clamp(20px,5vw,82px);display:flex;align-items:center;gap:38px;justify-content:space-between}.brand{display:flex;align-items:center;gap:11px;flex-shrink:0}.brand-glyph{font:italic 46px/.9 var(--serif);color:#a45c79;letter-spacing:-7px}.brand-glyph span{font:18px var(--serif);letter-spacing:0;position:relative;left:-6px;top:-15px;color:#c18b9e}.brand-words{font-size:11px;letter-spacing:.23em;font-weight:700;line-height:1.6;white-space:nowrap}.brand-words small{display:block;font-size:8px;letter-spacing:.31em;color:var(--dust)}.nav-links{display:flex;gap:28px;align-items:center;margin:auto}.nav-links a{font-size:12px;color:#795d69;transition:color .2s}.nav-links a:hover{color:var(--berry)}.toolbar{display:flex;align-items:center;gap:14px}.language-switch{display:flex;align-items:center;border:1px solid #e3cad1;border-radius:100px;padding:4px;background:#fffaf8d9;font-size:12px}.language-switch button{border:0;background:transparent;color:#8d7380;padding:6px 10px;font-weight:600;border-radius:30px;letter-spacing:.05em;transition:.25s}.language-switch button.active{color:white;background:var(--berry);box-shadow:0 2px 8px #ab6b8f33}.language-switch span{color:#cbacb4}.music-toggle{border:1px solid #ddbfc8;border-radius:100px;background:#fffaf8df;color:#86576e;padding:8px 12px;display:flex;align-items:center;gap:7px;white-space:nowrap;font-size:11px;box-shadow:0 8px 28px #ca9ba924;transition:.3s}.music-toggle:hover{background:#fff}.music-icon{font-size:17px}.music-bars{display:none;height:12px;align-items:end;gap:2px}.music-bars i{width:2px;background:var(--berry);height:6px;animation:bar .8s ease-in-out infinite alternate}.music-bars i:nth-child(2){height:11px;animation-delay:.3s}.music-bars i:nth-child(3){height:8px;animation-delay:.15s}.music-toggle.playing .music-bars{display:flex}.music-toggle.playing{background:#fae5ec;border-color:#d99bb2}
.hero{position:relative;min-height:max(800px,100svh);display:flex;flex-direction:column;justify-content:center;overflow:hidden;background:radial-gradient(ellipse 55% 65% at 85% 52%,#f7d8df 0%,#fbedea 64%,transparent 100%),linear-gradient(115deg,#fffaf7 8%,#fff5ef 48%,#f7e2e8 100%)}.hero:before{content:'';position:absolute;pointer-events:none;width:700px;height:700px;left:-360px;top:-360px;border:1px solid #eecbd755;border-radius:50%;box-shadow:0 0 0 100px #e9bdca12,0 0 0 205px #e9bdca08}.hero-glow{position:absolute;width:52vw;height:52vw;min-width:560px;min-height:560px;right:0;top:7%;background:radial-gradient(circle,#fff0e9a0,transparent 68%);filter:blur(25px)}.hero-canvas{position:relative;z-index:2;margin:auto;display:grid;grid-template-columns:1.08fr .92fr;width:min(1440px,100%);padding:135px clamp(26px,7vw,120px) 100px;align-items:center;gap:0}.hero-copy{z-index:2;max-width:720px}.overline,.section-overline{font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:#9c7180;font-weight:700;display:block}.hero-pre{font:italic clamp(22px,2.6vw,34px)/1.3 var(--serif);color:#835b69;margin:36px 0 0}.hero-name{font:400 clamp(105px,13.1vw,205px)/.95 var(--serif);letter-spacing:-.08em;color:#ae6c84;margin:0 0 17px -10px;text-shadow:0 4px 10px #bc728618}.hero-headline{font:400 clamp(28px,3.1vw,53px)/1.18 var(--serif);letter-spacing:-.045em;max-width:700px;margin:0}.hero-headline span,.hero-headline em,.display-title span,.display-title em{display:block}.hero-headline em,.display-title em{font-weight:400;color:var(--rose);font-style:italic}.hero-description{max-width:545px;color:#735c65;font-size:15px;line-height:1.9;margin:25px 0 28px}.btn{display:inline-flex;align-items:center;gap:18px;justify-content:center;border:0;padding:14px 24px;border-radius:100px;transition:transform .25s,background .25s,box-shadow .25s;font-size:13px;font-weight:600}.btn:hover{transform:translateY(-2px)}.btn.primary{color:#fff;background:#a7627d;box-shadow:0 12px 25px #a7627d38}.btn.primary:hover{background:#914c66;box-shadow:0 16px 28px #a7627d47}.hero-cta span:last-child{font-size:20px;font-weight:400}.hero-art{width:100%;min-height:660px;position:relative;display:flex;align-items:center;justify-content:center;transform:translateX(28px)}.art-halo{position:absolute;width:min(90%,600px);aspect-ratio:1;border-radius:50%;border:1px solid #cf98aa7c;box-shadow:0 0 0 27px #fff6f270,0 0 0 70px #fffaf92e,0 0 0 108px #fff5f214;transform:translate(4%,0)}.bouquet{position:relative;z-index:2;width:min(118%,780px);filter:drop-shadow(0 20px 30px #ac79851e);animation:float 8s ease-in-out infinite}.art-stamp{position:absolute;z-index:5;bottom:60px;left:13%;width:94px;height:94px;display:grid;place-items:center;background:#fffaf4eb;border:1px solid #edc9d1;border-radius:50%;font:italic 23px var(--serif);color:#b66e84;transform:rotate(-12deg);box-shadow:0 8px 25px #97697622}.art-stamp span{position:absolute;top:17px;font-size:12px}.art-caption{position:absolute;bottom:0;right:6%;font:italic 15px var(--serif);color:#9d6f81;transform:rotate(-5deg)}.scroll-cue{position:absolute;bottom:32px;left:clamp(26px,7vw,120px);z-index:3;display:flex;align-items:center;gap:11px;font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:#9c7584}.scroll-line{height:1px;width:47px;background:#b88c9b}.fade-up{animation:up 1.1s cubic-bezier(.2,.7,.1,1) both}.hero-pre{animation-delay:.1s}.hero-name{animation-delay:.22s}.hero-headline{animation-delay:.36s}.hero-description{animation-delay:.52s}.hero-cta{animation-delay:.65s}.floating-petals{position:fixed;z-index:60;inset:0;pointer-events:none;overflow:hidden}.petal{position:absolute;top:-20px;background:#d99caf88;border-radius:65% 0 70% 35%;transform:rotate(20deg);animation:petal-fall var(--dur) linear infinite;animation-delay:var(--delay);opacity:var(--op)}
.section{position:relative;padding:clamp(100px,11vw,170px) 25px}.section-inner{width:min(1170px,100%);margin:auto;position:relative}.story{background:#fffdfb}.story-layout{display:grid;grid-template-columns:.32fr 1fr;gap:60px}.chapter-info{display:flex;flex-direction:column;align-items:start}.section-index{font:italic 60px var(--serif);color:#e6c2cf;line-height:.9;margin-bottom:30px}.small-heart{color:#dfaebd;font:70px var(--serif);margin-top:100px}.display-title{font:400 clamp(42px,5.35vw,73px)/1.16 var(--serif);letter-spacing:-.048em;margin:0 0 24px}.body-strong{font:400 clamp(19px,2vw,25px)/1.75 var(--serif);color:#725d65;max-width:730px}.pullquote{border-left:1px solid #dbaeba;margin-top:62px;padding:5px 0 7px 34px;max-width:680px}.pullquote p{font:italic clamp(25px,3.25vw,42px)/1.42 var(--serif);letter-spacing:-.02em;color:#ae6985;margin:0}.pullquote small{font-size:13px;color:#92717d;display:block;margin-top:20px}.quote-mark{font:68px/1 var(--serif);color:#e7c4cd;display:block}.reasons{background:linear-gradient(150deg,#f9eef0,#fff7f3 65%,#fffdf9)}.center{text-align:center}.reasons .display-title,.letter-section .display-title,.final-section .display-title{margin:22px auto 0}.section-subtitle{text-align:center;color:#866e78;font-size:15px;margin:22px auto 52px}.reason-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:21px}.reason-card{position:relative;min-height:260px;background:#fffefaee;border:1px solid #ecdade;box-shadow:0 15px 42px #a5728120;padding:36px 30px 50px;transition:transform .35s,box-shadow .35s;overflow:hidden}.reason-card:hover{transform:translateY(-8px);box-shadow:0 22px 45px #a5728130}.reason-card:before{content:'';position:absolute;inset:8px;border:1px solid #f0e0e4;pointer-events:none}.reason-symbol{color:#c98da2;font:42px var(--serif)}.reason-card h3{font:400 30px/1.25 var(--serif);margin:16px 0 10px}.reason-card p{font-size:14px;color:#75616a;line-height:1.8;max-width:255px}.reason-no{position:absolute;bottom:14px;right:25px;font:italic 18px var(--serif);color:#d8bbc5}.distance{background:#fffaf7;overflow:hidden}.distance-layout{display:grid;grid-template-columns:1.12fr .88fr;align-items:center;gap:50px}.distance-copy .display-title{margin:30px 0 26px;font-size:clamp(39px,4.8vw,65px)}.distance-copy>p{max-width:590px;color:#745f6a;font-size:17px;line-height:1.9}.distance-promise{font:italic clamp(22px,2.5vw,30px)/1.5 var(--serif);border-left:2px solid #c990a4;padding-left:21px;margin-top:28px;color:#a6637d;max-width:620px}.distance-visual{position:relative;aspect-ratio:1/1.1;display:grid;place-items:center}.distance-visual:before{content:'';position:absolute;inset:6%;border-radius:50%;background:radial-gradient(circle,#f7e5e1,#f7e7e8 50%,#fff7f400 75%)}.orbit{position:absolute;border:1px solid #ddb5c3;border-radius:50%;opacity:.8}.orbit-one{width:72%;aspect-ratio:1}.orbit-two{width:91%;aspect-ratio:1;border-color:#ecd3da}.distance-arc{position:absolute;width:76%;top:25%}.distance-arc svg{width:100%;overflow:visible}.map-pin{position:absolute;top:55%;display:flex;flex-direction:column;gap:14px;align-items:center;z-index:2}.map-pin.left{left:12%}.map-pin.right{right:12%}.pin-circle{display:grid;place-items:center;width:75px;height:75px;border-radius:50%;font:italic 29px var(--serif);background:#fffdf9;color:#a6697d;box-shadow:0 7px 25px #aa7b8f25;border:1px solid #e2c6ce}.map-pin small{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#94747f}.distance-heart{font-size:29px;color:#c97f9c;position:absolute;top:21%;animation:beat 3s ease-in-out infinite}.map-caption{position:absolute;bottom:13%;font:italic 19px var(--serif);color:#a77687;text-align:center}.letter-section{background:linear-gradient(#f8e7eb,#fdf5f0)}.letter-layout{text-align:center}.letter-layout .display-title{max-width:850px}.envelope-area{display:flex;flex-direction:column;align-items:center;margin:48px 0 0;gap:38px}.envelope{position:relative;width:min(350px,82vw);height:205px;filter:drop-shadow(0 26px 25px #986a7a39);perspective:500px}.envelope-body{position:absolute;inset:0;border-radius:4px 4px 8px 8px;background:linear-gradient(155deg,#fff6f0,#eac2c9);box-shadow:inset 0 0 0 1px #dfafb9}.envelope-body:after{content:'';position:absolute;inset:0;background:linear-gradient(32deg,transparent 49.5%,#fff4f0 50%) left / 50% 100% no-repeat,linear-gradient(-32deg,transparent 49.5%,#f8dedb 50%) right / 50% 100% no-repeat}.envelope-flap{position:absolute;z-index:2;left:0;right:0;top:0;height:130px;clip-path:polygon(0 0,100% 0,50% 100%);background:#e7b9c2;transform-origin:50% 0;transition:transform .6s ease}.envelope.open .envelope-flap{transform:rotateX(180deg);z-index:0}.wax-seal{position:absolute;left:50%;top:51%;transform:translate(-50%,-50%);z-index:3;border-radius:50%;width:65px;height:65px;background:#ab637f;box-shadow:0 4px 15px #a2527244, inset 0 0 0 3px #bd8096,inset 0 0 0 5px #a25874;color:#fff5ed;display:grid;place-items:center;font:italic 18px var(--serif);transition:.4s}.envelope.open .wax-seal{opacity:0;transform:translate(-50%,-45%) scale(.5)}.letter-button{min-width:205px}.letter-body{max-width:820px;margin:60px auto 0;animation:up .65s ease both}.letter-page{position:relative;background:#fffefa;border:1px solid #e8d7d2;padding:clamp(35px,6vw,75px);box-shadow:0 30px 70px #ab7d8c2c;text-align:left}.letter-page:before{content:'';position:absolute;inset:15px;border:1px solid #f0e5e0;pointer-events:none}.letter-side{letter-spacing:.17em;text-transform:uppercase;text-align:center;color:#a67f87;font-size:10px;margin-bottom:33px}.letter-salute{font:italic 34px var(--serif);color:#a26480;margin-bottom:22px}.letter-page p{font:400 clamp(18px,1.8vw,22px)/1.85 var(--serif);color:#5e4d57;max-width:none;margin:0 0 25px}.letter-page .letter-strong{color:#a7637d;font:italic clamp(25px,3vw,35px)/1.5 var(--serif);margin:38px 0 0}.letter-page .letter-sign{text-align:right;font-style:italic;color:#ad7388;margin:22px 0 0}.voice-section{background:linear-gradient(115deg,#fffdfb,#f7e6e8)}.voice-layout{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.voice-layout>div>p{font-size:16px;color:#836b76}.voice-layout .display-title{font-size:clamp(38px,4.3vw,61px);margin:25px 0}.voice-note{background:#fffaf7;border:1px solid #eedbe0;padding:clamp(34px,5vw,57px);transform:rotate(2deg);box-shadow:0 22px 40px #a4768925;position:relative}.voice-note:before{content:'';position:absolute;inset:12px;border:1px solid #f1dfe2;pointer-events:none}.voice-note p{font:italic clamp(21px,2.3vw,29px)/1.7 var(--serif);color:#936179;margin:20px 0}.handwritten-heart{font:50px var(--serif);color:#ce9caf}.signature-mark{font:italic 29px var(--serif);text-align:right;color:#b78497}.voice-play{margin-top:20px;background:#a8667e;color:#fff}
.final-section{min-height:820px;display:flex;align-items:center;background:radial-gradient(ellipse at 50% 46%,#fffdf8,#f4dce6 67%,#ebcbd9);text-align:center;overflow:hidden}.final-glow{position:absolute;width:470px;height:470px;border-radius:50%;background:#fff9f69a;filter:blur(40px);left:50%;top:50%;transform:translate(-50%,-50%)}.final-inner{max-width:880px}.final-star{font:54px var(--serif);color:#bd8598;margin:20px 0}.final-section .display-title{margin:10px auto 24px}.final-inner>p{font-size:16px;color:#865d71}.heart-button{width:110px;height:110px;margin:33px auto 0;display:grid;place-items:center;border:1px solid #d9a3b7;background:#fff9f6eb;border-radius:50%;box-shadow:0 0 0 15px #fff7f783,0 0 0 30px #ffffff57,0 13px 35px #bf81943b;transition:.4s}.heart-button:hover{transform:scale(1.08)}.heart-shape{color:#b66182;font:70px/1 var(--serif);animation:beat 3s infinite}.heart-button.open .heart-shape{animation:none}.final-secret{max-width:750px;margin:35px auto 0;background:#fff9f5ed;padding:38px 35px;border:1px solid #efd8df;box-shadow:0 18px 50px #ad7d9028;animation:up .8s ease both}.final-secret h3{font:italic clamp(30px,4vw,48px)/1.25 var(--serif);color:#ab6a84;margin:0 0 14px}.final-secret p{font:400 clamp(18px,2vw,23px)/1.7 var(--serif);color:#6c5360;margin:12px 0}.final-secret strong{display:block;font:italic clamp(26px,3.1vw,37px)/1.3 var(--serif);color:#a55a78;margin-top:32px}.final-signature{font:italic 21px var(--serif);color:#966478;margin-top:23px}.footer-symbol{font:28px var(--serif);color:#be839b}footer{display:flex;align-items:center;justify-content:center;gap:16px;background:#fff9f5;color:#977b84;font-size:11px;letter-spacing:.13em;padding:33px 25px}footer a{margin-left:auto;font-size:22px;color:#a56780}
.reveal{opacity:0;transform:translateY(30px);transition:opacity 1s ease,transform 1s cubic-bezier(.18,.6,.2,1)}.reveal.visible{opacity:1;transform:none}[hidden]{display:none!important}
@keyframes up{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-18px) rotate(1deg)}}@keyframes beat{0%,100%{transform:scale(1)}40%{transform:scale(1.12)}}@keyframes bar{to{height:3px}}@keyframes petal-fall{from{transform:translate3d(0,-20px,0) rotate(0deg)}to{transform:translate3d(var(--drift),105vh,0) rotate(480deg)}}
@media(max-width:1100px){.nav-links{display:none}.hero-canvas{padding-inline:6vw}.hero-art{transform:translateX(0);min-height:550px}.art-caption{bottom:10px}.hero-name{font-size:clamp(95px,12vw,165px)}.hero-headline{font-size:clamp(29px,3.5vw,46px)}.distance-layout{gap:25px}.voice-layout{gap:35px}}
@media(max-width:760px){.header{position:absolute;padding:18px 18px;gap:10px}.brand-words{font-size:9px}.brand-glyph{font-size:38px}.music-toggle{padding:8px 9px}.music-label{display:none}.music-toggle .music-icon{font-size:19px}.toolbar{gap:7px}.language-switch{padding:3px}.language-switch button{padding:6px 8px;font-size:11px}.hero{min-height:970px;min-height:100svh}.hero-canvas{display:flex;flex-direction:column;justify-content:flex-start;gap:0;padding:118px 25px 80px}.hero-copy{width:100%;text-align:center}.hero .overline{font-size:9px}.hero-pre{margin:20px 0 0;font-size:23px}.hero-name{font-size:clamp(94px,24vw,145px);margin:0 0 10px -8px}.hero-headline{font-size:clamp(29px,7.5vw,44px);line-height:1.18}.hero-description{font-size:13px;line-height:1.65;margin:17px auto 21px;max-width:500px}.hero-cta{padding:12px 20px}.hero-art{width:100%;min-height:0;height:320px;max-width:460px;transform:none;margin-top:5px}.bouquet{width:360px;max-width:100%;height:auto;max-height:100%;object-fit:contain;filter:drop-shadow(0 8px 10px #ac79851e)}.art-halo{width:260px}.art-stamp{width:56px;height:56px;font-size:14px;bottom:18px;left:8%}.art-stamp span{font-size:8px;top:9px}.art-caption{bottom:0;right:0;font-size:11px}.scroll-cue{bottom:25px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:8px}.scroll-line{width:22px}.section{padding:90px 24px}.story-layout{display:block}.chapter-info{flex-direction:row;gap:12px;align-items:center;margin-bottom:28px}.section-index{font-size:30px;margin:0}.small-heart{display:none}.display-title{font-size:clamp(37px,9.5vw,56px)}.body-strong{font-size:19px}.pullquote{margin-top:35px}.pullquote p{font-size:29px}.reason-grid{grid-template-columns:1fr;gap:12px}.reason-card{min-height:0;padding:26px 28px 25px}.reason-symbol{font-size:30px}.reason-card h3{font-size:27px;margin:7px 0}.reason-card p{margin:6px 0 0}.distance-layout{display:flex;flex-direction:column}.distance-copy .display-title{font-size:clamp(38px,9vw,55px)}.distance-visual{width:min(430px,100%);aspect-ratio:1/1;align-self:center}.letter-page{padding:34px 30px}.letter-page p{font-size:18px}.voice-layout{grid-template-columns:1fr;gap:25px}.voice-note{transform:none}.final-section{min-height:750px}.footer-symbol{font-size:22px}footer{gap:6px;font-size:9px;text-align:center}footer a{margin-left:5px}}
@media(max-width:390px){.hero-canvas{padding-inline:16px;padding-top:106px}.hero-name{font-size:89px}.hero-description{font-size:12px}.hero-art{height:270px}.scroll-cue{font-size:7px}.hero{min-height:860px}.brand-words small{display:none}.music-toggle{min-width:39px;justify-content:center}.letter-page{padding:28px 20px}.letter-page:before{inset:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001s!important;transition-duration:.001s!important}.reveal{opacity:1;transform:none}.floating-petals{display:none}}

/* V3 — personal moments and soundtrack selection */
.soundtrack-panel{display:flex;align-items:center;gap:14px;margin-top:22px;flex-wrap:wrap;justify-content:flex-start}
.soundtrack-heading{font-size:10px;color:#a5657d;letter-spacing:.12em;font-weight:700;line-height:1.45;display:flex;align-items:center;gap:7px}
.soundtrack-heading>span[aria-hidden]{font-size:21px;color:#c17c99}.soundtrack-heading small{display:none}
.soundtrack-options{display:flex;gap:5px;border:1px solid #e8cfd8;border-radius:100px;padding:4px;background:#fffaf8d9;box-shadow:0 6px 20px #9c6c8520}
.soundtrack-choice{border:0;background:transparent;color:#8c6378;font-size:11px;font-weight:600;border-radius:100px;padding:8px 12px;transition:background .25s,color .25s}
.soundtrack-choice.active{background:#b77792;color:white;box-shadow:0 3px 12px #9c597733}
.photos{background:linear-gradient(165deg,#fffefa,#fff5f2 65%,#fff9f5);overflow:hidden;padding-bottom:145px}
.photos .display-title{max-width:890px;margin:15px auto 0}
.photos .section-subtitle{margin-bottom:54px}
.photo-composition{position:relative;width:min(960px,100%);height:655px;margin:0 auto;display:flex;gap:7%;align-items:flex-start;justify-content:center}
.photo-composition:before{content:'';position:absolute;width:52%;aspect-ratio:1;border-radius:50%;left:27%;top:10%;background:radial-gradient(circle,#ecc9d4b9,transparent 69%);filter:blur(30px);pointer-events:none}
.photo-card{position:relative;display:block;width:42%;margin:0;background:#fffdfa;padding:11px 11px 21px;border:1px solid #f2e5e0;box-shadow:0 25px 58px #ad829431;transform:rotate(-4deg);z-index:1}
.photo-card img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;background:#f5e4e7}
.photo-card figcaption{display:flex;justify-content:space-between;align-items:center;padding:12px 9px 0;color:#a16b82;font:italic 21px var(--serif)}
.photo-number{font:500 11px var(--sans);letter-spacing:.2em;color:#c7a6b0}
.photo-card-second{margin-top:96px;transform:rotate(5deg)}
.photo-heart{position:absolute;left:49%;top:44%;z-index:4;transform:translate(-50%,-50%) rotate(-12deg);font:100px var(--serif);color:#fff8f5;text-shadow:0 2px 14px #be7d975e;pointer-events:none}
@media(max-width:1100px){.soundtrack-panel{max-width:560px}}
@media(max-width:760px){.soundtrack-panel{justify-content:center;gap:7px;margin:13px auto 0}.soundtrack-heading{font-size:9px}.soundtrack-options{gap:0}.soundtrack-choice{font-size:10px;padding:7px 9px}.photos{padding-bottom:85px}.photo-composition{height:auto;min-height:375px;gap:1%;align-items:flex-start}.photo-card{width:49%;padding:6px 6px 14px}.photo-card-second{margin-top:60px}.photo-card figcaption{font-size:16px;padding:9px 5px 0}.photo-heart{font-size:60px;top:47%}.photos .section-subtitle{margin-bottom:38px}}
@media(max-width:390px){.soundtrack-panel{display:block}.soundtrack-heading{justify-content:center;margin-bottom:5px}.soundtrack-options{width:max-content;max-width:100%;margin:auto}}


/* V5 · clean background music control, invisible legal streaming widget */
.hidden-stream-host{position:fixed!important;left:-10000px!important;top:0!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important;z-index:-1!important;clip-path:inset(50%)}
.hidden-stream-host iframe{display:block;width:240px;height:135px;border:0}
.music-notice{position:fixed;right:20px;top:84px;z-index:110;max-width:min(340px,calc(100vw - 40px));padding:12px 16px;border:1px solid #eccbd4;border-radius:15px;box-shadow:0 15px 45px #80556722;background:#fffcfbf7;color:#79506a;font-size:12px;line-height:1.5}
.music-notice[hidden]{display:none!important}
@media (max-width:760px){.music-notice{right:12px;top:67px;font-size:11px}}
/* Romantic declaration — cinematic typography, no lengthy paragraphs */
.devotion-section{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(155deg,#fffcf9 3%,#fbe8e9 45%,#fff9f3 100%);padding:125px 26px 140px;text-align:center}
.devotion-section:before,.devotion-section:after{content:'✧';position:absolute;font:italic 160px/1 var(--serif);color:rgba(185,112,146,.12);z-index:-1;pointer-events:none}
.devotion-section:before{top:9%;left:7%;transform:rotate(20deg)}
.devotion-section:after{bottom:4%;right:6%;transform:rotate(-19deg)}
.devotion-glow{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 20%,#fffdfa 4%,transparent 70%);z-index:-1}
.devotion-inner{max-width:870px;margin:auto;position:relative}
.devotion-flower{display:block;margin:9px auto 13px;font:46px/1 var(--serif);color:#b57991}
.devotion-question{font:400 clamp(39px,5.4vw,76px)/1.13 var(--serif);color:#6d4055;letter-spacing:-.025em;margin:15px auto 21px;max-width:850px}
.devotion-answer{font:italic 500 clamp(83px,12vw,174px)/1 var(--serif);color:#a45579;margin:10px auto 3px;letter-spacing:-.04em}
.devotion-notany{font:italic clamp(25px,3.5vw,40px)/1.25 var(--serif);color:#896679;margin:6px 0 28px}
.devotion-rule{height:36px;display:flex;align-items:center;justify-content:center;gap:19px;color:#b77b96;margin:27px auto}
.devotion-rule:before,.devotion-rule:after{content:'';width:82px;height:1px;background:#dfbcc9}
.devotion-promise{font:500 clamp(22px,2.6vw,30px)/1.5 var(--serif);color:#764960;max-width:710px;margin:27px auto 18px}
.devotion-closer{font:400 clamp(19px,2vw,24px)/1.65 var(--serif);color:#916b7f;max-width:675px;margin:0 auto}
@media (max-width:760px){.devotion-section{padding:98px 22px 105px}.devotion-question{font-size:clamp(37px,9vw,54px)}.devotion-answer{font-size:100px}.devotion-notany{font-size:27px}.devotion-promise{font-size:24px}.devotion-closer{font-size:20px}}

/* V6: story quote without a redundant preceding paragraph */
.story-text>.pullquote{margin-top:32px}
@media(max-width:760px){.story-text>.pullquote{margin-top:22px}}

/* V7 · Refined art direction and a single emotional finale */
.art-caption,.photo-card figcaption{display:none!important}
.photo-card{padding-bottom:11px}
.photo-card img{border-radius:2px}
@media(max-width:760px){.photo-card{padding-bottom:6px}}
.distance-copy .distance-promise{margin-top:28px}
.final-section{background:radial-gradient(ellipse at 50% 38%, #fffefd 0%,#fae9eb 49%,#f1d8e0 100%)}
.final-secret{max-width:790px;padding:48px 50px 46px;border-radius:10px;background:linear-gradient(180deg,#fffdfbee,#fff8f6f4);box-shadow:0 24px 70px #aa7e9340}
.final-secret-ornament{font-size:30px;display:block;color:#bf8ca2;margin-bottom:16px}
.final-secret h3{font-size:clamp(30px,4.2vw,50px);line-height:1.2;margin-bottom:29px}
.final-secret .secret-question{font:500 clamp(22px,2.9vw,30px)/1.35 var(--serif);color:#745065;margin-top:17px}
.final-secret .secret-emphasis{font:italic 600 clamp(33px,5.4vw,59px)/1.23 var(--serif);color:#a4577c;margin:20px 0 25px}
.final-secret .secret-promise{font:400 clamp(19px,2.5vw,25px)/1.6 var(--serif);color:#765365}
.final-secret .secret-devotion{font:400 clamp(18px,2.1vw,22px)/1.65 var(--serif);color:#8c6677}
.final-secret .secret-lifetime{font:italic 500 clamp(22px,2.8vw,29px)/1.45 var(--serif);color:#9b5372;margin-top:28px}
.final-wish-divider{display:flex;gap:25px;align-items:center;justify-content:center;color:#c68ba2;margin:34px 0 18px;font-size:19px}
.final-wish-divider:before,.final-wish-divider:after{content:'';height:1px;width:63px;background:#e7cbd2}
.final-secret .final-birthday{font:400 clamp(18px,2.3vw,24px)/1.5 var(--serif);color:#805b6c}
.final-secret strong{margin-top:18px}
@media(max-width:760px){.final-secret{padding:34px 22px}.final-secret h3{margin-bottom:20px}.final-secret .secret-emphasis{margin:16px 0}.final-wish-divider{margin:23px 0 14px}}

/* V9 – a softer, more adult final letter flow */
.final-secret .gentle-affirmation{font-size:clamp(26px,3.5vw,42px);margin:8px 0 25px;line-height:1.35}
.final-secret .secret-question{font-size:clamp(19px,2.5vw,25px);margin:8px 0 10px}
.final-secret .secret-devotion{font-size:clamp(18px,2.1vw,23px);color:#775265}
.final-secret .secret-lifetime{margin-top:22px}
.letter-page .letter-strong{letter-spacing:.01em}
@media(max-width:760px){.final-secret .gentle-affirmation{font-size:clamp(26px,7vw,34px)}}

/* V10 — intimate photos inside the letter and the final wish */
.letter-photo-verse{display:flex;flex-direction:column;gap:3px;align-items:center;margin:33px auto 27px;text-align:center;font:400 clamp(19px,2.1vw,25px)/1.4 var(--serif);color:#916479}
.letter-photo-verse em{font-size:clamp(23px,2.6vw,32px);color:#aa6481}
.integrated-photo{position:relative;padding:11px 11px 20px;border:1px solid #e7ccd4;background:#fffefa;box-shadow:0 22px 60px #87576930;width:min(340px,73%);margin-top:28px;margin-bottom:8px}
.integrated-photo img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;display:block;background:#f2dce4}
.photo-in-letter{margin-left:6%;margin-right:auto;transform:rotate(-4deg)}
.photo-in-final{margin-left:auto;margin-right:5%;transform:rotate(5deg);width:min(330px,64%);margin-top:53px}
.final-secret .secret-devotion{font-size:clamp(21px,2.5vw,30px);line-height:1.55;color:#7e516a;margin:22px auto 24px;max-width:650px}
.distance-copy .display-title{max-width:680px;font-size:clamp(37px,5vw,70px)}
@media (max-width:760px){.integrated-photo{width:77%;padding:8px 8px 14px}.photo-in-letter{margin-left:3%}.photo-in-final{width:72%;margin-right:4%}.letter-photo-verse{margin-top:24px}.final-secret .secret-devotion{font-size:22px}}
