:root{--cream:#faf6ef;--pink:#f1d6d8;--rose:#a74d66;--ink:#544840;--muted:#92877e;--line:#e6ddd2;--serif:'Playfair Display',Georgia,serif;--sans:'Be Vietnam Pro',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:13px;line-height:1.8}body:before{content:'';position:fixed;inset:0;pointer-events:none;z-index:20;opacity:.14;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' 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='%23847764' opacity='.22' filter='url(%23n)' d='M0 0h160v160H0z'/%3E%3C/svg%3E")}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{color:inherit}button{cursor:pointer}a{text-decoration:none}button{border:none}button:focus-visible,a:focus-visible{outline:2px solid var(--rose);outline-offset:5px}input:focus-visible{outline:2px solid #c98c9a;outline-offset:6px}[hidden]{display:none!important}.svg-library{position:absolute;width:0;height:0;overflow:hidden}.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}.site-header{height:100px;display:flex;align-items:center;justify-content:space-between;margin:0 6%;border-bottom:1px solid var(--line);position:relative;z-index:2}.wordmark{font-family:var(--serif);font-size:29px;letter-spacing:-1px;display:flex;align-items:center;gap:10px;font-weight:500}.wordmark svg{width:31px;height:31px;color:#e5b1bb}.brand-dot{margin-left:-9px;color:var(--rose)}.header-note,.eyebrow{font-size:10px;letter-spacing:2.3px;font-weight:500}.header-note{color:#9a8a7e}.music-button{display:flex;align-items:center;gap:10px;background:transparent;font-size:11px}.music-bars{display:flex;align-items:center;gap:3px;height:20px}.music-bars i{display:block;width:2px;background:#af7c84;height:8px}.music-bars i:nth-child(2){height:15px}.music-bars i:nth-child(3){height:11px}.music-button[aria-pressed=true] i{animation:equalizer .8s infinite alternate}.music-button[aria-pressed=true] i:nth-child(2){animation-delay:.2s}.music-button[aria-pressed=true] i:nth-child(3){animation-delay:.5s}@keyframes equalizer{to{height:4px}}.lock-layout{min-height:650px;max-width:1200px;margin:0 auto;padding:70px 40px 60px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:70px}.eyebrow{color:#aa777f;display:inline-block}.lock-copy{position:relative}.lock-copy>.eyebrow{display:flex;align-items:center;gap:12px}.lock-copy>.eyebrow>span{width:24px;height:1px;background:#ba8993}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.2}h1{font-size:68px;letter-spacing:-2px;margin:22px 0 27px}h1 em,h2 em{font-weight:400;color:var(--rose)}.lock-copy p{font-size:13px;line-height:2.1;color:#918277}.title-heart{width:38px;height:38px;color:#b97689;margin-left:22px;transform:rotate(15deg)}.hand-note{font-family:var(--serif);font-size:16px;font-style:italic;color:#a6847c;margin-top:32px}.hand-note span{font-size:36px;display:inline-block;transform:rotate(16deg);margin-left:18px}.tiny-flower{position:absolute;font-size:41px;color:#cfabb1;top:80px;right:6px}.lock-art{position:relative;padding:35px 0}.password-card{position:relative;z-index:2;background:#fffdf8;border:1px solid #e7ded3;padding:36px 36px 22px;text-align:center;box-shadow:0 18px 55px #8165530c;transform:rotate(2deg);max-width:414px;margin:auto}.password-card>*{transform:rotate(-2deg)}.card-tape{position:absolute;top:-13px;left:calc(50% - 43px);width:86px;height:27px;background:#e3c9ba88;transform:rotate(-8deg);clip-path:polygon(3% 0,98% 5%,96% 96%,0 100%)}.letter-icon{font-family:var(--serif);font-size:39px;line-height:1;color:#b27a83;margin:0 0 23px}.password-card .eyebrow{font-size:8px;letter-spacing:1.8px}.password-card h2{font-size:26px;margin:15px -10px}.password-card>p{font-size:10px;color:var(--muted)}.pin-wrap{position:relative;width:230px;margin:30px auto 0}#pin{width:100%;border:0;border-bottom:1px solid #dcc7c7;background:transparent;color:var(--rose);font-size:27px;letter-spacing:17px;text-align:center;padding:10px 0 13px 17px;border-radius:0}#pin::placeholder{color:#c6a2a7;letter-spacing:6px;font-size:24px}.password-card .pin-message{font-size:10px;margin:14px 0 24px;min-height:18px}.pin-message.error{color:#b43e60}.primary-button{display:inline-flex;justify-content:center;gap:35px;align-items:center;min-height:48px;background:var(--rose);color:#fffaf6;border-radius:4px;padding:12px 23px;font-size:11px;transition:background .2s,transform .2s}.primary-button:hover{background:#8e3e57;transform:translateY(-2px)}.primary-button>span{font-size:20px;line-height:1}.password-card .primary-button{width:100%;transform:rotate(-2deg)}.card-bottom{font-family:var(--serif);font-style:italic;font-size:12px;color:#aa9990;margin-top:22px;display:flex;align-items:center;justify-content:center;gap:6px}.card-bottom svg{width:13px;height:13px}.art-orbit{position:absolute;border:1px solid #e5d6ca;border-radius:50%;pointer-events:none;left:-20px;right:-20px;top:-6px;bottom:0;transform:rotate(-24deg)}.orbit-two{left:20px;right:-50px;top:6px;bottom:14px;transform:rotate(23deg);border-color:#e5d6ca88}.floral{position:absolute;pointer-events:none;z-index:3}.floral-lock{right:-60px;bottom:-15px;width:230px;height:280px}.sprig,.flower{position:absolute}.sprig{width:120px;height:220px}.s1{right:4px;bottom:0;transform:rotate(25deg)}.s2{right:53px;bottom:0;transform:rotate(-30deg)}.flower{color:#e6b3c0}.f1{width:115px;height:115px;right:-5px;bottom:105px;transform:rotate(12deg)}.f2{width:82px;height:82px;right:93px;bottom:73px;color:#f0d5cd;transform:rotate(-22deg)}.f3{width:63px;height:63px;right:43px;bottom:10px;color:#f3e4d6}.f4{width:58px;height:58px;right:55px;bottom:211px;color:#e9c1cc}.small-spark{position:absolute;color:#bb8b69;font-size:36px}.sparkle-one{left:0;bottom:20px}.sparkle-two{right:-40px;top:0;font-size:26px}.art-caption{position:absolute;left:17px;bottom:-25px;font-family:var(--serif);font-size:15px;font-style:italic;color:#a68e83;transform:rotate(-7deg)}.lock-footer{margin:10px 6% 0;border-top:1px solid var(--line);padding:22px 0;display:flex;align-items:center;justify-content:center;gap:27px;font-size:8px;letter-spacing:1.5px;color:#a29488}.lock-footer svg{width:21px;height:21px;color:#dec4bd}#petals{position:fixed;inset:0;z-index:21;pointer-events:none;overflow:hidden}.petal{position:absolute;top:-35px;width:12px;height:19px;border-radius:80% 0 80% 10%;background:linear-gradient(135deg,#dca4b0a0,#efcbd260);animation:petalfall linear infinite;opacity:.65}@keyframes petalfall{0%{transform:translate3d(0,-5vh,0) rotate(0)}45%{transform:translate3d(60px,45vh,0) rotate(150deg)}100%{transform:translate3d(-30px,110vh,0) rotate(370deg)}}.story-nav{display:flex;justify-content:center;gap:35px;padding:21px;font-size:10px;letter-spacing:.3px}.story-nav button{background:none;font-size:10px;color:#a28480}.story-nav a:hover{color:var(--rose)}.story-hero{position:relative;text-align:center;padding:60px 25px 74px;overflow:hidden}.story-hero h1{font-size:66px;line-height:1.23;margin:23px 0}.story-hero p{color:#96877d;font-size:12px;line-height:2}.text-link{display:inline-flex;gap:21px;font-size:11px;color:var(--rose);margin-top:27px;border-bottom:1px solid #d2a7af;padding-bottom:6px}.text-link span{font-size:17px}.hero-flower{position:absolute;width:210px;height:270px;bottom:10px;opacity:.85}.hero-flower.left{left:3%;transform:rotate(-23deg)}.hero-flower.right{right:3%;transform:rotate(21deg) scaleX(-1)}.hero-flower .sprig{bottom:0;left:50px;height:250px;width:160px}.hero-flower .flower{width:105px;height:105px;left:8px;top:70px}.hero-flower .second{width:63px;height:63px;left:117px;top:33px;color:#e9c4bc}.hero-stamp{position:absolute;right:12%;top:42px;width:82px;height:100px;border:1px solid #bd979899;outline:1px solid #bd979855;outline-offset:5px;transform:rotate(12deg);font-family:var(--serif);font-size:12px;color:#ad7b80;line-height:1.6;padding:10px 2px}.hero-stamp b{display:block;font-size:25px;font-weight:400}.hero-stamp span{font-size:10px;font-style:italic}.journey-section,.memories-section{max-width:1200px;margin:auto;padding:45px 40px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:30px}.section-heading h2,.memories-heading h2{font-size:40px;margin-top:14px;letter-spacing:-1px}.section-heading>p{font-size:11px;color:#96877d;text-align:right}.roadmap-paper{background:#fffcf7;border:1px solid var(--line);padding:22px 29px 20px;box-shadow:0 10px 30px #86705f05;position:relative}.roadmap-paper:before{content:'';position:absolute;left:calc(50% - 40px);top:-12px;width:80px;height:24px;background:#ecd8c68c;transform:rotate(-4deg)}.map-top{display:flex;justify-content:space-between;color:#a5907e;font-size:8px;letter-spacing:1.6px}.map-canvas{position:relative;height:370px;margin:20px 0 0}.route{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.route path{fill:none;stroke:#cda1a6;stroke-width:2;stroke-dasharray:4 7;stroke-linecap:round}.route .route-shadow{stroke:#f3e7e2;stroke-width:22;stroke-dasharray:none}.map-stop{position:absolute;transform:translate(-50%,-50%);background:transparent;text-align:center;padding:10px 4px;min-width:85px;z-index:1}.stop-circle{display:flex;align-items:center;justify-content:center;margin:0 auto 9px;background:#fffaf4;border:1px solid #dfc8c5;border-radius:50%;width:39px;height:39px;color:#b88687;font-size:19px;transition:transform .25s,background .25s}.map-stop:hover .stop-circle{transform:scale(1.18);background:#f7e2e5}.map-stop.current .stop-circle{background:var(--rose);color:#fff;box-shadow:0 0 0 7px #f3e0e2}.map-stop.wedding .stop-circle{background:#f1e6d5;color:#a8835e;border-color:#d3b993}.stop-year{font-size:10px;letter-spacing:1px;display:block}.stop-name{font-family:var(--serif);font-size:13px;display:block;white-space:nowrap}.current .stop-year{color:var(--rose);font-weight:600}.map-doodle{position:absolute;color:#d1b18c;font-family:var(--serif);pointer-events:none}.d1{font-size:32px;top:25%;left:39%}.d2{font-size:31px;top:13%;left:73%;transform:rotate(15deg)}.d3{font-size:30px;top:76%;left:56%;color:#cdb1b4}.map-note{position:absolute;left:2%;bottom:25px;color:#b28287;font-family:var(--serif);font-size:14px;font-style:italic;transform:rotate(-5deg)}.map-note span{font-size:28px;position:absolute;top:-28px;left:26px}.map-bottom{display:flex;justify-content:space-between;border-top:1px solid #eee4d9;padding-top:14px;font-size:9px;color:#a28b80}.map-bottom>span:first-child{display:flex;align-items:center;gap:8px}.map-bottom i{width:5px;height:5px;border-radius:50%;background:var(--rose)}.memories-section{padding-top:64px;padding-bottom:55px}.memories-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:42px}.memories-heading h2{font-size:45px;line-height:1.25}.memories-intro{padding-right:25px}.date-pill{border:1px solid #dfc7c5;border-radius:30px;padding:5px 12px;color:#a36d77;letter-spacing:1px;font-size:9px;display:inline-block}.memories-intro p{font-size:11px;color:#948279;margin:13px 0 18px}.film-strip{display:flex;gap:22px;overflow-x:auto;padding:18px 8px 27px;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#d6b9bb transparent}.memory-card{background:#fffdf9;border:1px solid #e5dcd0;flex:0 0 225px;padding:12px 12px 16px;box-shadow:0 6px 14px #6650460b;transform:rotate(-3deg);scroll-snap-align:center;text-align:left;transition:transform .25s}.memory-card:nth-child(2n){transform:rotate(3deg)}.memory-card:hover{transform:rotate(0deg) translateY(-8px)}.memory-card .memory-art{height:220px}.memory-card>span{display:block;font-size:8px;letter-spacing:1px;color:#a1847c;margin-top:13px}.memory-card h3{font-size:17px;margin-top:5px}.memory-card small{font-size:8px;color:#b09b91;display:block;margin-top:4px}.memory-art{position:relative;background:#f0e0da;overflow:hidden;width:100%}.memory-art svg{display:block;width:100%;height:100%}.gallery-note{display:flex;justify-content:space-between;gap:15px;font-family:var(--serif);font-style:italic;font-size:14px;color:#9e8079;margin-top:17px}.gallery-note span:last-child{font-family:var(--sans);font-style:normal;font-size:9px;color:#ac9b91}.letter-section{position:relative;max-width:1000px;margin:20px auto 75px;padding:30px 50px}.letter-paper{text-align:center;position:relative;padding:56px 25px;background:#f5e9e6;border:1px solid #e7d6ce}.letter-paper:before{content:'';position:absolute;inset:10px;border:1px solid #e7d6ce;pointer-events:none}.letter-paper h2{font-size:37px;margin:23px 0}.letter-paper p{font-size:12px;line-height:2.2;color:#987b76;margin:18px 0}.letter-paper .letter-sign{font-family:var(--serif);font-size:20px;font-style:italic;color:var(--rose);margin-top:27px}.letter-date{font-size:9px;color:#a38c82}.letter-floral{position:absolute;z-index:1;width:170px;height:230px;bottom:-10px;left:-27px;transform:rotate(-22deg)}.letter-floral .flower{width:100px;height:100px;top:20px;left:3px}.letter-floral .sprig{bottom:0;left:40px}.story-footer{margin:0 6%;border-top:1px solid var(--line);padding:25px 0;display:flex;align-items:center;justify-content:space-between;gap:20px}.story-footer .wordmark{font-size:22px}.story-footer .wordmark svg{width:23px;height:23px}.story-footer>span{font-size:8px;letter-spacing:1.2px;color:#aa988c}.story-footer>a:last-child{font-size:10px;color:#9b7f76}dialog{border:1px solid #e1c9c6;background:var(--cream);color:var(--ink);border-radius:6px;box-shadow:0 25px 100px #55323924;padding:0}dialog::backdrop{background:#51423c78;backdrop-filter:blur(8px)}.dialog-close{position:absolute;top:12px;right:14px;font-size:26px;line-height:30px;width:34px;height:34px;border-radius:50%;background:#fffaf0d9;color:#9b6e74;z-index:5}.memory-dialog{width:min(900px,92vw);overflow:hidden}.slideshow-journey{padding:95px 35px;text-align:center;animation:focusintro 1.8s ease-in-out forwards}.slideshow-journey h2{font-size:45px;margin:25px 0}.slideshow-journey h2 em{color:var(--rose)}.zoom-years{display:flex;gap:24px;justify-content:center;align-items:center;margin:32px 0;font-size:10px;color:#b5a399}.zoom-years b{font-size:18px;color:var(--rose);position:relative}.zoom-years b:after{content:'';position:absolute;inset:-14px;border:1px solid #d9a4af;border-radius:40%}.slideshow-journey p{color:#a38b7e;font-size:11px}@keyframes focusintro{0%,40%{opacity:1;transform:scale(.96)}100%{opacity:0;transform:scale(1.32)}}#slideshow-content{display:grid;grid-template-columns:1.1fr 1fr;min-height:520px}.slide-visual{padding:25px;display:flex;background:#e9d7d0;align-items:center;justify-content:center}.slide-visual .memory-art{height:440px;box-shadow:0 10px 25px #58433918;border:12px solid #fffdf7;transform:rotate(-3deg);animation:photozoom 6.5s ease-out both}.slide-copy{padding:65px 38px 35px;display:flex;flex-direction:column;justify-content:center}.slide-copy h2{font-size:35px;margin:20px 0}.slide-copy>p{font-size:12px;color:#9b8177;line-height:2}.sample-label{font-size:8px;color:#ac9a8c;margin-top:30px}.slide-dots{display:flex;gap:9px;margin:25px 0}.slide-dots button{width:7px;height:7px;padding:0;border-radius:50%;background:#ddc8c3}.slide-dots button.active{background:var(--rose);width:23px;border-radius:5px}.slide-controls{display:flex;align-items:center;gap:12px}.round-button{width:34px;height:34px;background:transparent;border:1px solid #dfc9c4;border-radius:50%;font-size:14px;color:var(--rose)}#slide-count{font-size:10px;letter-spacing:2px;margin-right:auto}.year-dialog{max-width:440px;width:90vw;text-align:center;padding:45px 35px}.year-icon{display:block;font-size:36px;color:#ac7b80;margin-bottom:15px}.year-dialog h2{font-size:33px;margin:20px 0}.year-dialog p{font-size:12px;color:#987b76;line-height:2}.future-note{display:block;font-family:var(--serif);font-style:italic;color:#b2948b;font-size:13px;margin:22px 0}.year-dialog .primary-button{font-size:10px}.screen-enter{animation:screenenter .8s ease both}@keyframes screenenter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes photozoom{from{transform:rotate(-3deg) scale(.97)}to{transform:rotate(-1deg) scale(1.04)}}.shake{animation:shake .35s}@keyframes shake{25%,75%{translate:-7px}50%{translate:7px}}
@media(min-width:1550px){.lock-layout{min-height:calc(100vh - 184px);max-width:1300px;gap:120px}.lock-copy h1{font-size:80px}.lock-art{padding:55px 0}.password-card{padding-top:45px;padding-bottom:30px}}
@media(max-width:1000px){.lock-layout{gap:35px;padding:60px 7%;min-height:660px}h1{font-size:57px}.password-card{padding:30px 22px 20px}.password-card h2{font-size:23px}.floral-lock{right:-35px;transform:scale(.85);transform-origin:bottom right}.hero-flower{opacity:.5}.hero-stamp{right:7%}.stop-name{font-size:11px}.map-stop{min-width:65px}.map-canvas{height:340px}.hero-flower.left{left:-60px}.hero-flower.right{right:-60px}.memories-heading h2{font-size:40px}}
@media(max-width:700px){.site-header{height:78px;margin:0 6%}.wordmark{font-size:25px}.header-note{display:none}.music-button{font-size:10px}.lock-layout{grid-template-columns:1fr;padding:43px 9% 65px;gap:15px;overflow:hidden}.lock-copy{padding-bottom:15px}.lock-copy h1{font-size:52px;line-height:1.13;margin:22px 0}.lock-copy h1 br:nth-child(2){display:none}.lock-copy p{font-size:11px}.lock-copy>.eyebrow{font-size:8px;letter-spacing:1.8px}.tiny-flower{right:15px;top:75px;font-size:31px}.title-heart{width:27px;height:27px;margin-left:10px}.hand-note{font-size:14px;margin-top:19px}.hand-note span{font-size:25px}.lock-art{padding:30px 0 20px}.password-card{max-width:370px;padding:31px 25px 22px}.password-card h2{font-size:24px}.floral-lock{right:-40px;bottom:-15px;transform:scale(.7)}.art-orbit{left:-15px;right:-15px}.orbit-two{left:0;right:-23px}.art-caption{bottom:-23px;font-size:12px}.sparkle-two{right:-15px}.sparkle-one{left:-15px}.lock-footer{gap:12px;padding:20px 0;margin-top:0}.lock-footer span{font-size:6px;letter-spacing:.8px;max-width:130px;text-align:center}.lock-footer svg{flex-shrink:0;width:18px}.story-nav{gap:20px;font-size:8px;padding:18px 6px;flex-wrap:wrap}.story-nav button{font-size:8px}.story-hero{padding:44px 20px 65px}.story-hero>.eyebrow{font-size:8px;letter-spacing:1.5px}.story-hero h1{font-size:43px;letter-spacing:-1.5px}.story-hero p{font-size:10px}.hero-stamp{display:none}.hero-flower{width:110px;height:190px;opacity:.5;bottom:-20px;transform:scale(.65)!important;transform-origin:bottom}.hero-flower.left{left:-23px}.hero-flower.right{right:-32px;transform:scale(.65) scaleX(-1)!important}.journey-section,.memories-section{padding:30px 6%}.section-heading{display:block;margin-bottom:26px}.section-heading h2{font-size:34px}.section-heading>p{text-align:left;margin-top:14px;font-size:10px}.eyebrow{font-size:8px;letter-spacing:1.6px}.roadmap-paper{padding:20px 15px 15px}.map-top{font-size:6px;letter-spacing:.7px}.map-canvas{height:510px;margin-top:25px}.route{display:none}.map-canvas:before{content:'';position:absolute;border-left:2px dashed #d8adb4;top:30px;bottom:45px;left:50%}.map-stop{left:50%!important;top:calc(5% + var(--n)*12.5%)!important;width:50%;text-align:left;padding:0 0 0 37px;transform:translateY(-50%)}.map-stop:nth-child(even){text-align:right;padding:0 37px 0 0;left:0!important}.stop-circle{position:absolute;left:-18px;top:1px;width:34px;height:34px;font-size:17px}.map-stop:nth-child(even) .stop-circle{left:auto;right:-18px}.stop-year{font-size:9px}.stop-name{font-size:13px}.map-doodle.d1{top:13%;left:14%}.map-doodle.d2{top:65%;left:79%}.map-doodle.d3{top:83%;left:13%}.map-note{left:4%;bottom:-12px;font-size:11px;transform:none}.map-note span{display:none}.map-bottom{margin-top:16px;font-size:7px;gap:12px}.map-bottom>span:last-child{text-align:right}.memories-section{padding-top:46px}.memories-heading{display:block;margin-bottom:25px}.memories-heading h2{font-size:39px}.memories-intro{margin-top:22px}.memories-intro p{font-size:10px}.film-strip{margin-right:-6vw;padding-right:25px;gap:18px}.memory-card{flex-basis:205px}.memory-card .memory-art{height:210px}.gallery-note{display:block;margin-top:15px;font-size:13px}.gallery-note span{display:block}.gallery-note span:last-child{font-size:8px;margin-top:8px}.letter-section{padding:20px 6%;margin:15px auto 30px}.letter-paper{padding:35px 20px}.letter-paper h2{font-size:28px;line-height:1.4}.letter-paper p{font-size:10px}.letter-paper p br{display:none}.letter-paper .letter-sign{font-size:18px}.letter-floral{transform:rotate(-22deg) scale(.6);transform-origin:bottom left;left:-10px;bottom:0}.story-footer{padding:20px 0;flex-wrap:wrap;justify-content:center}.story-footer>span{order:3;text-align:center;flex-basis:100%;font-size:7px}.story-footer .wordmark{font-size:22px}.story-footer>a:last-child{font-size:9px;margin-left:auto}#slideshow-content{grid-template-columns:1fr;max-height:85dvh;overflow-y:auto}.slide-visual{padding:25px 40px 20px}.slide-visual .memory-art{height:260px;width:100%;max-width:300px;border-width:9px}.slide-copy{padding:22px 27px 26px}.slide-copy h2{font-size:29px;margin:12px 0}.slide-copy>p{font-size:11px}.sample-label{margin-top:15px}.slide-dots{margin:20px 0}.zoom-years{gap:12px;flex-wrap:wrap}.slideshow-journey{padding:95px 20px}.slideshow-journey h2{font-size:35px}.zoom-years span{font-size:8px}.dialog-close{top:8px;right:8px}.year-dialog h2{font-size:29px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}#petals{display:none}}
body{overflow-x:clip} .lock-layout>*,.memories-heading>*{min-width:0}
@media(max-width:700px){.lock-copy h1{font-size:clamp(36px,10.8vw,48px);letter-spacing:-1.3px}.lock-copy h1 br:nth-child(2){display:initial}}

/* A soft invitation into the journey, with a gentle 1.8-second scroll. */
.story-hero .text-link {
  min-height: 52px;
  padding: 13px 24px;
  gap: 25px;
  background: #f1d6dc;
  color: #843e56;
  border: 1px solid #e7bdc8;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 500;
  box-shadow: 0 5px 16px #b9768910;
  transition: background .25s, box-shadow .25s, transform .25s;
  align-items: center;
}
.story-hero .text-link:hover {
  background: #ebc5d0;
  box-shadow: 0 7px 20px #b9768920;
  transform: translateY(-2px);
}
.story-hero .text-link:active { transform: translateY(0); }
html.gently-scrolling { scroll-behavior: auto !important; }
@media(prefers-reduced-motion:reduce) {
  .story-hero .text-link { transition: none; }
}

/* Follow the current stop instead of the bottom edge of the map. */
.map-stop.current .map-note {
  left: 50%;
  top: calc(100% + 17px);
  bottom: auto;
  width: 180px;
  margin: 0;
  text-align: left;
  line-height: 1.5;
  pointer-events: none;
  transform: translateX(-16%) rotate(-4deg);
}
.map-stop.current .map-note > span {
  left: 21px;
  top: -28px;
  font-size: 25px;
  line-height: 1;
}
@media(max-width:700px) {
  .map-stop.current .map-note {
    left: auto;
    right: calc(100% + 29px);
    top: 4px;
    width: 110px;
    font-size: 11px;
    text-align: right;
    white-space: normal;
    transform: none;
  }
  .map-stop.current .map-note > span { display: none; }
}

/* Real photos and videos keep their full frame in the memory viewer. */
.memory-art img { display:block; width:100%; height:100%; object-fit:cover; }
.memory-art.contain-memory { background:#171414; }
.memory-art.contain-memory img { object-fit:contain; }
.media-badge {
  position:absolute; right:9px; bottom:9px; display:block;
  padding:3px 8px; border:1px solid #fff8; border-radius:20px;
  background:#fff8f0e8; color:#843e56; font-size:8px; letter-spacing:1px;
  backdrop-filter:blur(5px);
}
.slide-visual .full-memory { background:#efe4dc; animation:memory-reveal .65s ease both; }
.slide-visual .full-memory img,.slide-visual .full-memory video {
  display:block; width:100%; height:100%; object-fit:contain;
}
.slide-visual .full-memory:has(video) { transform:none; animation:none; }
.slide-visual .contain-memory { background:#171414; }
.live-toggle {
  align-self:flex-start; margin-top:14px; padding:8px 12px;
  background:#f1d6dc; color:#843e56; border:1px solid #e7bdc8;
  border-radius:8px; font-size:10px;
}
.live-toggle:hover { background:#ebc5d0; }
#media-note { line-height:1.8; }
.slide-dots button { position:relative; }
.slide-dots button:before { content:''; position:absolute; inset:-7px -3px; }
@keyframes memory-reveal {
  from { opacity:0; transform:rotate(-2deg) scale(.97); }
  to { opacity:1; transform:rotate(-1deg) scale(1); }
}
@media(max-width:700px) {
  .slide-visual .full-memory { height:290px; }
  .slide-copy { padding-top:20px; }
  .live-toggle { font-size:10px; }
}
@media(prefers-reduced-motion:reduce) {
  .slide-visual .full-memory { animation:none; transform:none; }
}

/* A little date invitation, tucked into the same paper-and-flowers world. */
.story-nav { flex-wrap:wrap; }
.music-button[aria-pressed=true] i { animation:none; }
.music-button.is-playing i { animation:equalizer .8s infinite alternate; }
.music-button.is-playing i:nth-child(2) { animation-delay:.2s; }
.music-button.is-playing i:nth-child(3) { animation-delay:.5s; }
.invitation-section { max-width:1120px; margin:0 auto 85px; padding:0 40px; }
.invitation-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:24px; }
.invitation-handnote { font-family:var(--serif); font-size:16px; font-style:italic; color:#ad8585; }
.invitation-card { position:relative; display:grid; grid-template-columns:.8fr 1.2fr; gap:55px; padding:62px 65px; background:#f3e0e2; border:1px solid #e1c3c9; box-shadow:0 15px 40px #a26c7710; }
.invitation-card:before { content:''; position:absolute; inset:11px; border:1px solid #fff7f0bb; pointer-events:none; }
.invitation-card:after { content:''; position:absolute; width:92px; height:26px; background:#e1cbb8a6; left:calc(50% - 46px); top:-12px; transform:rotate(-5deg); }
.invitation-calendar { position:relative; align-self:center; text-align:center; padding:27px 15px; background:#fffbf5; border:1px solid #e5d7c9; transform:rotate(-4deg); box-shadow:0 10px 24px #9e697510; }
.invitation-calendar:before,.invitation-calendar:after { content:''; position:absolute; top:-8px; width:5px; height:23px; border-radius:3px; border:1px solid #b99a93; background:#d0ada7; }
.invitation-calendar:before { left:24%; }.invitation-calendar:after { right:24%; }
.invitation-calendar>span:first-child { display:block; font-size:9px; letter-spacing:3px; color:#b07780; border-bottom:1px solid #eadbd3; padding-bottom:16px; }
.invitation-calendar time { display:block; padding:12px 0 19px; }
.invitation-calendar time b { display:block; font-family:var(--serif); font-size:105px; line-height:1.3; font-weight:400; color:#a4586d; letter-spacing:-4px; }
.invitation-calendar time span { display:block; font-size:9px; letter-spacing:2px; color:#ab8784; }
.invitation-calendar>svg { display:block; width:20px; height:20px; color:#c38a98; margin:0 auto 11px; }
.invitation-calendar>span:last-child { font-family:var(--serif); font-style:italic; font-size:12px; color:#af8b80; }
.invitation-copy { position:relative; z-index:1; }
.invitation-copy h2 { font-size:41px; letter-spacing:-1px; margin:18px 0 22px; line-height:1.28; }
.invitation-copy>p { color:#987b76; font-size:12px; line-height:2; }
.invitation-checklist { list-style:none; padding:0; margin:25px 0; display:grid; gap:15px; }
.invitation-checklist li { display:flex; align-items:center; gap:13px; color:#8f6370; line-height:1.9; font-size:12px; }
.invitation-checklist li>span:first-child { font-size:25px; line-height:1; width:23px; text-align:center; color:#ba8493; flex-shrink:0; }
.invitation-checklist svg { width:23px; height:23px; color:#ba8493; flex-shrink:0; }
.invitation-checklist strong { font-weight:500; color:#83485d; }
.invitation-sign { border-top:1px solid #dfc1c6; padding-top:22px; font-family:var(--serif); font-style:italic; font-size:17px; color:#a4697a; }
.invitation-floral { position:absolute; width:180px; height:230px; left:-38px; bottom:-30px; z-index:1; pointer-events:none; transform:rotate(-18deg); }
.invitation-floral .sprig { width:110px; height:210px; bottom:0; left:35px; }
.invitation-floral .flower { width:91px; height:91px; left:0; top:37px; color:#e5b0c0; }
.invitation-floral .second { width:58px; height:58px; left:85px; top:123px; color:#f7e9dc; }
@media(max-width:1000px) {
  .invitation-card { gap:35px; padding:45px 40px; }
  .invitation-copy h2 { font-size:35px; }
  .invitation-sign { font-size:15px; }
}
@media(max-width:700px) {
  .story-nav { gap:13px 20px; }
  .music-button { max-width:165px; }
  .music-bars { flex-shrink:0; }
  .invitation-section { padding:0 6%; margin:10px auto 55px; }
  .invitation-heading { align-items:start; margin-bottom:23px; }
  .invitation-handnote { font-size:12px; max-width:110px; text-align:right; }
  .invitation-card { grid-template-columns:1fr; gap:34px; padding:36px 27px 31px; }
  .invitation-calendar { width:190px; padding:22px 15px; margin:0 auto; }
  .invitation-calendar time { padding:7px 0 12px; }
  .invitation-calendar time b { font-size:85px; }
  .invitation-calendar>span:first-child { font-size:8px; padding-bottom:12px; }
  .invitation-calendar time span { font-size:8px; }
  .invitation-calendar>span:last-child { font-size:10px; }
  .invitation-copy h2 { font-size:34px; margin-top:14px; }
  .invitation-copy>p,.invitation-checklist li { font-size:11px; }
  .invitation-checklist { gap:17px; margin:22px 0; }
  .invitation-sign { font-size:15px; line-height:1.8; }
  .invitation-floral { left:-20px; bottom:auto; top:110px; transform:rotate(-18deg) scale(.65); transform-origin:bottom left; }
}
