:root{--bg:#180b20;--bg-soft:#23102b;--ink:#fff4f1;--muted:#d7b8ca;--pink:#ff9cc4;--pink-soft:#ffd2df;--gold:#ecd09f;--stroke:rgba(255,214,228,.17);--serif:'Playfair Display',Georgia,serif;--script:'Great Vibes',cursive;--sans:'DM Sans',system-ui,sans-serif;scroll-behavior:smooth}
*{box-sizing:border-box}html{scroll-padding-top:90px}body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--bg);font-size:15px;line-height:1.7;overflow-x:hidden}body:before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 12% 8%,rgba(158,52,106,.19),transparent 38%),radial-gradient(ellipse at 90% 30%,rgba(97,39,89,.14),transparent 35%),linear-gradient(145deg,#1d0b22,#130b1a 72%)}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:4px}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}.shell{max-width:1180px;width:calc(100% - 60px);margin:0 auto}.ambient-stars{position:fixed;inset:0;pointer-events:none;z-index:-1;background-image:radial-gradient(1px 1px at 8% 16%,#fff7 98%,transparent),radial-gradient(2px 2px at 77% 30%,#fff7 98%,transparent),radial-gradient(1px 1px at 24% 67%,#fff8 98%,transparent),radial-gradient(2px 2px at 90% 83%,#fff6 98%,transparent),radial-gradient(1px 1px at 56% 53%,#fff5 98%,transparent),radial-gradient(1px 1px at 41% 12%,#fff8 98%,transparent),radial-gradient(1px 1px at 68% 80%,#fff7 98%,transparent);background-size:550px 440px;opacity:.45}.floating-hearts{position:fixed;inset:0;pointer-events:none;z-index:3;overflow:hidden}.floating-heart{position:absolute;bottom:-40px;color:#ffaccd;filter:drop-shadow(0 0 8px #f799c488);animation:heart-rise linear forwards}@keyframes heart-rise{0%{transform:translate3d(0,0,0) rotate(-16deg)}50%{transform:translate3d(35px,-52vh,0) rotate(20deg)}100%{transform:translate3d(-20px,-108vh,0) rotate(-15deg);opacity:0}}
.topbar{height:90px;position:relative;z-index:8;border-bottom:1px solid rgba(255,255,255,.055);background:rgba(20,8,27,.68);backdrop-filter:blur(20px)}.nav-layout{height:100%;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font-family:var(--serif);font-size:20px;letter-spacing:.01em;white-space:nowrap}.brand-heart{font-family:var(--sans);color:var(--pink);font-size:24px;margin:0 5px}.topbar nav{display:flex;align-items:center;gap:35px}.topbar nav a{font-size:13px;color:#e9cbd7;transition:color .2s}.topbar nav a:hover{color:white}.nav-music{color:var(--ink);background:rgba(255,255,255,.05);border:1px solid var(--stroke);padding:9px 16px;border-radius:50px;display:flex;align-items:center;gap:12px;font-size:12px}.music-bars{display:flex;align-items:center;gap:3px;height:15px}.music-bars i{display:block;width:2px;height:6px;background:var(--pink);border-radius:2px}.music-bars i:nth-child(2){height:13px}.music-bars i:nth-child(3){height:9px}.nav-music[aria-pressed=true] i{animation:music-bars .75s infinite alternate}.nav-music[aria-pressed=true] i:nth-child(2){animation-delay:.2s}.nav-music[aria-pressed=true] i:nth-child(3){animation-delay:.45s}@keyframes music-bars{to{height:3px}}
.hero{min-height:720px;padding:105px 0 108px;display:grid;grid-template-columns:1.03fr .97fr;align-items:center;gap:60px}.hero-copy{position:relative;z-index:2}.eyebrow,.section-kicker{font-size:10px;text-transform:uppercase;letter-spacing:.3em;color:var(--gold);font-weight:700}.eyebrow{display:flex;align-items:center;gap:14px;letter-spacing:.17em;white-space:nowrap}.eyebrow-line{width:25px;height:1px;background:var(--gold);opacity:.6}.script-overline{font-family:var(--script);color:#ffa5c5;font-size:42px;line-height:1;margin:22px 0 6px;transform:rotate(-3deg);transform-origin:left}.hero h1{font-family:var(--serif);font-weight:500;font-size:clamp(50px,5.2vw,78px);line-height:1.16;letter-spacing:-.055em;margin:6px 0 19px;max-width:670px;text-wrap:balance}.divider-heart{display:flex;align-items:center;gap:12px;color:var(--pink);font-size:14px;margin:22px 0}.divider-heart span{width:48px;height:1px;background:linear-gradient(90deg,transparent,#e7b9c0)}.divider-heart span:last-child{transform:rotate(180deg)}.hero-description{font-size:15px;color:#e5cad5;max-width:555px;line-height:1.95}.couple-sign{color:#cdaabb;font-size:14px;margin:16px 0 26px}.couple-sign strong{font-family:var(--script);font-size:29px;font-weight:400;color:#ffb3d2;margin-left:5px}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:22px;border:1px solid #ffc6d7;color:#351323;background:linear-gradient(120deg,#ffb2c8,#ffdcda);padding:14px 25px;font-weight:700;border-radius:9px;font-size:13px;box-shadow:0 12px 40px rgba(243,112,154,.18);transition:transform .25s,box-shadow .25s}.btn-primary:hover{transform:translateY(-3px);box-shadow:0 14px 50px #ee649b47}.btn-primary span{font-size:21px;line-height:1}.hero-stats{display:flex;align-items:center;gap:30px;margin-top:35px}.hero-stats div:not(.stats-divider){display:flex;align-items:center;gap:11px}.hero-stats strong{font-family:var(--serif);font-size:32px;color:var(--pink-soft);font-weight:500;line-height:1}.hero-stats span{font-size:11px;color:#a88a9c;text-transform:uppercase;letter-spacing:.12em;max-width:100px;line-height:1.6}.stats-divider{height:36px;width:1px;background:var(--stroke)}
.hero-art{position:relative;min-height:510px;isolation:isolate}.hero-glow{position:absolute;width:430px;height:430px;top:32px;left:48px;border-radius:50%;filter:blur(50px);z-index:-1;background:radial-gradient(circle,rgba(193,78,128,.34),rgba(93,39,81,.13) 50%,transparent 73%)}.orbit{position:absolute;border:1px solid rgba(240,189,212,.10);border-radius:50%;pointer-events:none}.orbit-one{width:455px;height:455px;inset:20px auto auto 23px}.orbit-two{width:360px;height:360px;inset:68px auto auto 70px;border-style:dashed}.photo-stack{position:absolute;inset:0}.hero-polaroid{position:absolute;background:#fff4e9;padding:11px 11px 13px;width:248px;box-shadow:0 20px 65px #08020cc4;transition:transform .4s}.hero-polaroid-image{width:100%;aspect-ratio:1/1.12;overflow:hidden;background:#f6ccd8}.hero-polaroid-image img{height:100%;width:100%;object-fit:cover}.polaroid-caption{font-family:var(--script);font-size:25px;display:block;color:#7a3e62;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;padding-top:12px;line-height:1.1}.hero-polaroid-0{left:10px;top:91px;transform:rotate(-13deg);z-index:1}.hero-polaroid-1{right:8px;top:30px;transform:rotate(13deg);z-index:2}.hero-polaroid-2{left:122px;top:160px;transform:rotate(1deg);z-index:3}.hero-polaroid-0:hover{transform:rotate(-9deg) translateY(-8px)}.hero-polaroid-1:hover{transform:rotate(9deg) translateY(-8px)}.hero-polaroid-2:hover{transform:rotate(0deg) translateY(-8px)}.empty-image{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(145deg,#f2c1ce,#bc759f 90%);position:relative;color:#fff0e8;overflow:hidden}.empty-image:before{content:'';width:190px;height:190px;border:1px solid #fff8;border-radius:50%;position:absolute}.empty-image:after{content:'✧';position:absolute;right:23px;top:19px;font-size:28px;opacity:.8}.empty-image span{font-size:79px;line-height:1;text-shadow:0 9px 16px #70344f24}.empty-image small{font-family:var(--script);font-size:25px}.heart-bubble{position:absolute;color:#ffb4d1;filter:drop-shadow(0 5px 9px #e86c9d52);font-size:35px}.heart-bubble-one{left:90px;top:20px;transform:rotate(-14deg)}.heart-bubble-two{right:15px;bottom:95px;transform:rotate(13deg);font-size:50px}.hero-art-script{position:absolute;right:24px;bottom:-11px;font-family:var(--script);font-size:36px;color:#f4a6bd;transform:rotate(-9deg)}
.marquee-band{overflow:hidden;height:57px;border-top:1px solid #e7b9c32b;border-bottom:1px solid #e7b9c32b;background:rgba(255,155,191,.055);display:flex;align-items:center}.marquee-inner{white-space:nowrap;min-width:max-content;animation:marquee 42s linear infinite;letter-spacing:.3em;color:#b986a6;font-size:12px;word-spacing:20px}@keyframes marquee{to{transform:translateX(-40%)}}
.section{padding:122px 0}.section-heading{text-align:center;max-width:750px;margin:0 auto 60px}.section-heading h2,.letter-paper h2,.promise-card h2{font-family:var(--serif);font-weight:500;letter-spacing:-.045em;font-size:clamp(34px,4vw,53px);line-height:1.24;margin:15px 0 14px}.section-heading>p:last-child{color:#cbaabc;font-size:15px}.story-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px}.story-card{background:linear-gradient(150deg,#351b39a8,#211128b8);border:1px solid #ffc5d029;min-height:302px;border-radius:13px;padding:36px 31px;position:relative;overflow:hidden}.story-card:after{content:'';position:absolute;width:180px;height:180px;right:-110px;bottom:-120px;background:radial-gradient(circle,#f68cb62e,transparent 70%)}.story-number{position:absolute;right:24px;top:20px;font-family:var(--serif);font-size:50px;opacity:.095}.story-icon{color:var(--gold);font-size:39px;line-height:1.1;margin-bottom:20px}.story-card h3{font-size:21px;letter-spacing:-.02em;font-family:var(--serif);font-weight:500;margin-bottom:14px}.story-card p{color:#d3b6c4;font-size:13px;line-height:1.85}.story-dot{height:5px;width:5px;border-radius:50%;background:var(--pink);position:absolute;bottom:23px;left:31px;box-shadow:10px 0 0 #d196ac,20px 0 0 #8b5875}
.letter-wrap{background:linear-gradient(135deg,#2a122e,#391831 55%,#271028);border-top:1px solid #f8b2cf12;border-bottom:1px solid #f8b2cf12;position:relative;overflow:hidden}.letter-wrap:before{content:'♡';font-family:var(--serif);font-size:700px;position:absolute;left:-170px;top:-360px;color:#f6afc40b;line-height:1}.letter-layout{display:grid;grid-template-columns:.37fr .63fr;gap:80px;align-items:center}.letter-aside{text-align:center}.handwritten{font-family:var(--script);font-size:57px;color:#f4adc5}.letter-aside-icon{font-family:var(--serif);font-size:120px;color:#ff9bb7;line-height:1.2;text-shadow:0 0 90px #ec6da75c;animation:beat 3s ease-in-out infinite}.letter-aside p{font-family:var(--serif);font-size:23px;max-width:265px;margin:15px auto;color:#e8c4d4;font-style:italic;line-height:1.5}.letter-line-art{font-size:20px;color:var(--gold);margin-top:30px}.letter-paper{padding:50px 55px 75px;background:linear-gradient(145deg,#fff7ef,#f9e8e0);color:#503546;border:1px solid #fff8;box-shadow:0 35px 70px #10071383;position:relative;transform:rotate(1deg)}.paper-top{font-size:10px;color:#a7808c;letter-spacing:.25em;display:flex;justify-content:space-between;align-items:center;padding-bottom:16px;border-bottom:1px solid #dfbdc1}.paper-top span{font-size:20px;color:#b76582}.letter-paper h2{font-size:clamp(29px,3.2vw,43px);color:#753e5b;margin:27px 0}.letter-text{font-size:15px;line-height:2;color:#745160;overflow-wrap:anywhere}.letter-signature{font-family:var(--script);color:#9b5876;font-size:33px;margin:30px 0 0}.paper-seal{position:absolute;border-radius:50%;width:77px;height:77px;display:grid;place-items:center;font-size:27px;right:32px;bottom:-35px;background:linear-gradient(135deg,#8e2b57,#c25c84);color:#ffdadf;box-shadow:0 12px 26px #3911257d;transform:rotate(-18deg);border:5px double #e29aab}
.reasons-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}.reason-card{min-height:226px;border:1px solid #efb2d02c;background:radial-gradient(circle at 70% 0,#9e467b2c,transparent 65%),#27132e;border-radius:15px;padding:27px 24px;position:relative;overflow:hidden}.reason-decoration{font-size:23px;color:#f0a7c8;margin-bottom:32px}.reason-card span{display:block;color:#d0a1b8;font-size:10px;letter-spacing:.21em;text-transform:uppercase}.reason-card p{font-family:var(--serif);font-size:18px;line-height:1.5;margin-top:12px}.reason-card:nth-child(even){transform:translateY(17px)}
.gallery-section{background:#210e29;position:relative}.gallery-section:before{content:'';position:absolute;width:650px;height:500px;left:-300px;top:110px;background:radial-gradient(ellipse,#b3508b28,transparent 70%);pointer-events:none}.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}.gallery-card{min-width:0}.gallery-frame{padding:10px;background:linear-gradient(140deg,#fff8ed,#f3e3dc);border-radius:4px;box-shadow:0 12px 24px #15091865;transform:rotate(-1.5deg);transition:transform .35s}.gallery-card:nth-child(2n) .gallery-frame{transform:rotate(2deg)}.gallery-card:nth-child(3n) .gallery-frame{transform:rotate(-2.5deg)}.gallery-card:hover .gallery-frame,.gallery-card:nth-child(2n):hover .gallery-frame,.gallery-card:nth-child(3n):hover .gallery-frame{transform:rotate(0) translateY(-6px)}.gallery-empty,.gallery-open{aspect-ratio:1/1.1;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;border:0}.gallery-empty{background:linear-gradient(145deg,#5c2c57,#a85d80 65%,#d6879e);color:#fbe3e8;text-align:center;position:relative;overflow:hidden}.gallery-card:nth-child(3n) .gallery-empty{background:linear-gradient(145deg,#693961,#bf7897,#e2aab4)}.gallery-card:nth-child(4n) .gallery-empty{background:linear-gradient(145deg,#442a56,#9a5784,#cd87a2)}.gallery-empty:before{content:'';width:135px;height:135px;border-radius:50%;border:1px solid #ffffff3a;position:absolute}.gallery-empty-heart{font-size:65px;font-family:var(--serif);z-index:1}.gallery-empty>span:last-child{font-family:var(--script);font-size:29px;line-height:1.06;margin-top:2px;z-index:1}.gallery-open{padding:0;position:relative;overflow:hidden;background:#91607d}.gallery-open img{height:100%;width:100%;object-fit:cover;transition:transform .35s}.gallery-open:hover img{transform:scale(1.08)}.zoom-indicator{position:absolute;right:11px;top:8px;background:#2a142cba;color:white;width:32px;height:32px;border-radius:50%;display:grid;place-items:center}.gallery-caption{display:flex;gap:9px;align-items:center;padding:20px 1px 0;font-family:var(--script);font-size:25px;color:#f3b6d0;line-height:1.1}.gallery-caption .gallery-num{font-family:var(--sans);font-size:10px;letter-spacing:.09em;color:#ad829b;align-self:flex-start;margin-top:7px}.gallery-caption>span:nth-child(2){flex:1;overflow-wrap:anywhere}.gallery-caption>span:last-child{font-family:var(--serif);font-size:15px;align-self:flex-start;margin-top:4px}.gallery-footnote{text-align:center;color:#c99aaf;font-family:var(--serif);font-style:italic;margin:55px 0 0;font-size:17px}
.promise{padding-top:138px;padding-bottom:138px}.promise-card{max-width:960px;text-align:center;margin:auto;padding:79px 100px 65px;position:relative;border:1px solid #f5adcb49;background:linear-gradient(135deg,#3a1a3e,#25132c);border-radius:18px;box-shadow:0 22px 80px #110b1e70}.promise-card:before,.promise-card:after{content:'♡';position:absolute;font-size:95px;line-height:1;color:#c8709521;font-family:var(--serif)}.promise-card:before{left:20px;top:4px}.promise-card:after{right:20px;bottom:-4px}.promise-stars{color:var(--gold);font-size:19px;margin-bottom:22px}.promise-card h2{max-width:650px;margin:18px auto 20px}.promise-card>p:not(.section-kicker){color:#d9b8ca;font-size:15px;line-height:2;max-width:700px;margin:auto}.promise-script{font-family:var(--script);display:block;font-size:47px;color:#ffafcc;margin-top:35px}
.footer{text-align:center;padding:20px 25px 0;position:relative;overflow:hidden}.footer-hearts{color:#ed97bc;font-size:24px;letter-spacing:.4em}.footer h2{font-family:var(--script);font-weight:400;font-size:65px;color:#fbb1cb;margin:15px 0 4px}.footer>p{font-family:var(--serif);font-size:18px;color:#e2b7c7;max-width:650px;margin:auto}.footer-end{margin-top:92px;border-top:1px solid var(--stroke);font-size:11px;letter-spacing:.14em;color:#ad7e9b;padding:21px 0 25px}
.music-floating{position:fixed;bottom:24px;right:26px;z-index:15;display:flex;align-items:center;gap:12px;background:#24132fe8;padding:7px 16px 7px 7px;border-radius:60px;border:1px solid #f7c6d74f;box-shadow:0 10px 30px #1005189e;backdrop-filter:blur(15px);max-width:245px}.music-round{width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center;border:0;border-radius:50%;background:linear-gradient(140deg,#fbb1ce,#e6a5a8);color:#422036;font-weight:900;font-size:25px}.is-playing .music-round{box-shadow:0 0 0 5px #f9b0d81c;animation:soft-pulse 1.7s infinite alternate}@keyframes soft-pulse{to{box-shadow:0 0 0 11px #f9b0d805}}.music-label{min-width:0;max-width:170px;overflow:hidden}.music-label small{display:block;font-size:8px;letter-spacing:.11em;color:#c39cb5}.music-label strong{display:block;font-size:12px;color:#fbe5ed;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.lightbox{position:fixed;z-index:30;inset:0;background:rgba(10,3,18,.92);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px}.lightbox[hidden]{display:none}.lightbox img{object-fit:contain;max-height:80vh;width:auto;border:9px solid #fff7ef;box-shadow:0 20px 55px #000b}.lightbox p{font-family:var(--script);font-size:33px;color:#ffc2d6;margin-top:14px}.lightbox-close{position:absolute;right:26px;top:18px;background:transparent;border:0;color:white;font-size:48px;line-height:1}
.intro{position:fixed;inset:0;background:radial-gradient(circle at 50% 43%,#562548,#210d2a 49%,#160a1e);z-index:80;display:grid;place-items:center;padding:25px;overflow:auto;transition:opacity .5s,visibility .5s}.intro[hidden]{display:none}.intro-leaving{opacity:0;visibility:hidden}.intro:before{content:'♡';position:absolute;top:-210px;left:-180px;font-family:var(--serif);font-size:700px;color:#ffd0e00b;pointer-events:none}.intro-spark{position:absolute;color:#e9b4ce;font-size:50px;opacity:.65;animation:twinkle 3s ease-in-out infinite alternate}.intro-spark-a{left:15%;top:15%}.intro-spark-b{right:13%;bottom:14%;font-size:32px;animation-delay:1.5s}@keyframes twinkle{to{transform:scale(.75) rotate(20deg);opacity:.15}}.intro-card{max-width:570px;text-align:center;z-index:1;padding:26px 22px}.intro-deco{font-size:24px;color:var(--gold);letter-spacing:.28em}.envelope{width:160px;height:106px;margin:35px auto 40px;position:relative;border:2px solid #ffe3dc;border-radius:5px;background:linear-gradient(145deg,#f7cfce,#d88eaa);box-shadow:0 20px 60px #c16b9b4f;transform:rotate(-7deg);animation:envelope-float 3s ease-in-out infinite alternate}@keyframes envelope-float{to{transform:translateY(-10px) rotate(-3deg)}}.envelope:before{content:'';position:absolute;inset:0;clip-path:polygon(0 0,50% 57%,100% 0);background:linear-gradient(#ffe0d9,#f6c0c6);filter:drop-shadow(0 2px 2px #a7607744)}.envelope-seal{position:absolute;z-index:2;border-radius:50%;height:36px;width:36px;display:grid;place-items:center;top:41px;left:calc(50% - 18px);background:#a94970;color:#ffdae4;box-shadow:0 3px 9px #57253f60}.intro-card h2{font-family:var(--serif);font-weight:500;font-size:clamp(37px,5vw,59px);line-height:1.2;letter-spacing:-.04em;margin:18px 0}.intro-card h2 em{font-style:italic;color:#ffadce}.intro-card>p{color:#dcb8cc;font-size:15px;max-width:430px;margin:0 auto 28px}.intro-card .btn-primary{min-width:260px}.intro-card small{display:block;color:#a585a0;margin:20px auto;font-size:11px;max-width:310px}.no-js .intro{display:none}.js .reveal{opacity:0;translate:0 25px;transition:opacity .75s ease,translate .75s ease}.js .reveal.visible{opacity:1;translate:0 0}
@media(max-width:1050px){.hero{gap:0}.hero h1{font-size:54px}.hero-polaroid{width:207px}.hero-polaroid-1{right:-10px}.hero-polaroid-2{left:88px}.hero-polaroid-0{left:0}.hero-art{min-height:440px}.orbit-one{height:390px;width:390px}.orbit-two{height:300px;width:300px}.hero-glow{width:350px;height:350px}.letter-layout{gap:30px}.gallery-grid{gap:15px}.gallery-caption{font-size:22px}.reasons-grid{gap:12px}.reason-card{padding:23px 18px}}
@media(max-width:790px){.shell{width:calc(100% - 36px)}.topbar{height:74px}.topbar nav{display:none}.brand{font-size:18px}.nav-music{padding:8px 12px}.hero{padding:64px 0 90px;grid-template-columns:1fr;gap:30px;min-height:unset}.hero-copy{text-align:center}.eyebrow{justify-content:center;white-space:normal}.script-overline{transform:none}.hero h1{margin-left:auto;margin-right:auto;font-size:clamp(47px,9vw,70px)}.divider-heart{justify-content:center}.hero-description{margin:0 auto}.hero-stats{justify-content:center}.hero-art{min-height:515px;width:min(550px,100%);margin:auto}.hero-polaroid{width:min(47%,238px)}.hero-polaroid-0{left:7%;top:92px}.hero-polaroid-1{right:7%;top:20px}.hero-polaroid-2{left:28%;top:155px}.orbit-one{inset:40px auto auto 50%;transform:translateX(-50%)}.orbit-two{inset:80px auto auto 50%;transform:translateX(-50%)}.hero-glow{left:50%;transform:translateX(-50%)}.hero-art-script{right:15%;bottom:2px}.section{padding:92px 0}.story-grid{grid-template-columns:1fr;max-width:560px;margin:auto}.story-card{min-height:unset}.letter-layout{grid-template-columns:1fr;gap:36px}.letter-aside-icon{font-size:75px}.handwritten{font-size:48px}.letter-aside p{font-size:19px}.reasons-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.promise-card{padding:70px 35px}.music-floating{right:13px;bottom:12px}.footer h2{font-size:54px}}
@media(max-width:480px){.topbar .nav-music #musicTopText{display:none}.nav-music{width:43px;height:43px;justify-content:center;padding:0}.hero{padding-top:59px}.hero h1{font-size:45px}.script-overline{font-size:36px}.hero-description{font-size:14px}.hero-stats{gap:21px}.hero-art{min-height:370px}.hero-polaroid{width:48%;padding:7px 7px 11px}.hero-polaroid-0{left:3%;top:85px}.hero-polaroid-1{right:3%;top:20px}.hero-polaroid-2{left:26%;top:132px}.polaroid-caption{font-size:21px;padding-top:8px}.hero-glow{height:300px;width:300px;top:20px}.orbit-one{width:290px;height:290px;top:32px}.orbit-two{width:220px;height:220px;top:67px}.heart-bubble-one{top:20px;left:20px}.heart-bubble-two{bottom:20px;right:24px}.hero-art-script{bottom:-7px;right:7%;font-size:28px}.section-heading{margin-bottom:42px}.section-heading h2,.promise-card h2{font-size:36px}.section-kicker{font-size:9px}.letter-paper{padding:30px 23px 54px;transform:none}.letter-paper h2{font-size:33px}.letter-text{font-size:14px}.letter-signature{font-size:27px}.paper-seal{height:58px;width:58px;right:15px;bottom:-22px}.reasons-grid{gap:10px}.reason-card{padding:19px 16px;min-height:205px}.reason-card p{font-size:16px}.gallery-grid{gap:18px 13px}.gallery-frame{padding:6px}.gallery-caption{font-size:21px;gap:6px}.gallery-caption .gallery-num{font-size:9px}.gallery-empty-heart{font-size:50px}.gallery-empty>span:last-child{font-size:24px}.gallery-footnote{font-size:15px}.promise-card{padding:55px 22px 42px}.promise-script{font-size:39px}.footer h2{font-size:47px}.footer>p{font-size:16px}.intro-card h2{font-size:41px}.music-label{max-width:119px}.music-floating{padding-right:10px}.music-round{height:43px;width:43px;flex-basis:43px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.js .reveal{opacity:1;translate:0 0}}

/* Abertura isolada: nenhuma área do site aparece ou rola antes do clique. */
.js.intro-locked{overflow:hidden;touch-action:none}
.js.intro-locked .topbar,.js.intro-locked main,.js.intro-locked .footer,.js.intro-locked .music-floating{visibility:hidden}
.js.intro-locked #intro{position:fixed;inset:0;width:100%;height:100vh;height:100dvh;z-index:100;touch-action:pan-y;overscroll-behavior:contain}

/* Preserve o recorte da data na primeira foto, sem alterar o tamanho dos quadros. */
.hero-polaroid-image img.first-photo,.gallery-open img.first-photo{object-position:center top}

/* Correção da frase decorativa abaixo das fotos em telas pequenas.
   A altura acompanha a largura do celular, reservando espaço para
   a última polaroid e para a frase sem encobrir nenhuma das duas. */
@media (min-width: 481px) and (max-width: 790px) {
  .hero-art { min-height: 560px; }
  .hero-art-script {
    right: 8%;
    bottom: 16px;
    z-index: 4;
    white-space: nowrap;
  }
}
@media (max-width: 480px) {
  .hero-art {
    min-height: clamp(410px, calc(230px + 54vw), 500px);
  }
  .hero-art-script {
    right: 7%;
    bottom: 12px;
    font-size: clamp(24px, 7vw, 28px);
    line-height: 1.3;
    z-index: 4;
    white-space: nowrap;
  }
  .heart-bubble-two {
    top: 285px;
    right: 22px;
    bottom: auto;
    font-size: 42px;
    line-height: 1;
  }
}
