@import url('https://fonts.googleapis.com/css2?family=Allura&family=Cormorant+Garamond:wght@400;500;600;700&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{--rose:#cf7b9d;--rose-deep:#a9567b;--rose-light:#f4dce8;--blush:#fbeef3;--cream:#fffbf7;--ink:#805d73;--wine:#8c4c70;--gold:#c79b50;--gold-light:#efcf8c;--lavender:#d5c2ea;--green:#80a28a;--shadow:0 18px 48px rgba(160,93,132,.14);--body-font:'DM Sans',Arial,sans-serif;--title-font:'Cormorant Garamond',Georgia,serif;--script-font:'Allura','Brush Script MT',cursive}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{background:#f6e3ed;color:var(--ink);font-family:var(--body-font);-webkit-font-smoothing:antialiased;min-width:320px;margin:0}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #a176c4;outline-offset:3px}.svg-symbols{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}img{display:block;max-width:100%}.site-shell{width:min(100%,480px);background:var(--cream);box-shadow:0 0 80px rgba(103,51,81,.19);z-index:1;isolation:isolate;min-height:100vh}.desktop-glow{position:fixed;inset:0;background:radial-gradient(ellipse at 12% 38%,rgba(250,189,217,.9),transparent 30%),radial-gradient(ellipse at 88% 67%,rgba(210,185,234,.65),transparent 34%),linear-gradient(130deg,#fcf5f6,#f5e6ed 55%,#fff8ef);pointer-events:none}.desktop-decoration{position:fixed;width:min(33vw,490px);top:5%;left:-5%;opacity:.67;transform:rotate(-9deg);pointer-events:none}.desktop-decoration-right{left:auto;right:-4%;top:auto;bottom:0;transform:scaleX(-1) rotate(-10deg)}.scroll-progress{position:fixed;z-index:100;top:0;left:0;right:0;height:3px;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,#db91ad,#eac374,#ab95d8);pointer-events:none}.eyebrow{font:600 10px/1.6 var(--body-font);text-transform:uppercase;letter-spacing:3.2px;color:var(--rose-deep)}.section-small-icon{color:var(--gold);font:400 28px var(--title-font);display:block;margin-bottom:9px}.section-title{font:500 clamp(48px,12vw,64px)/.91 var(--title-font);letter-spacing:-1.8px;color:var(--wine);margin:13px auto 23px}.section-title em{font:400 1.09em/1 var(--script-font);letter-spacing:0;color:var(--rose)}.section-title-sm{font-size:54px}.body-copy{font-size:13px;line-height:2.05;color:#947b89;letter-spacing:.06px;max-width:340px;margin:16px auto}.primary-button{background:linear-gradient(115deg,#bb6b91,#cf8caa);color:#fff;border:1px solid #b86e91;border-radius:999px;min-height:49px;padding:12px 24px;font-size:12px;font-weight:600;letter-spacing:.45px;box-shadow:0 10px 25px rgba(170,88,130,.22),inset 0 1px 1px #ffffff65;transition:transform .25s ease,box-shadow .25s ease}.primary-button:hover{transform:translateY(-2px);box-shadow:0 13px 30px rgba(170,88,130,.33)}.outline-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;border:1px solid #d9a0b9;color:var(--wine);background:#fff9fb;border-radius:999px;padding:12px 24px;font-size:12px;font-weight:600;box-shadow:0 8px 25px rgba(171,105,143,.09);transition:transform .2s ease,background .2s ease}.outline-button:hover{background:#ffe6f0;transform:translateY(-2px)}.mini-icon{height:15px;width:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
/* Opening cover */
.cover-screen{position:fixed;inset:0;z-index:110;overflow-y:auto;overscroll-behavior:contain;background:#fbe2eb;display:flex;justify-content:center;align-items:stretch;transition:opacity .95s cubic-bezier(.22,1,.36,1),visibility .95s}.cover-screen.is-leaving{opacity:0;visibility:hidden;pointer-events:none}.cover-scene{position:relative;width:min(100%,480px);min-height:max(780px,100svh);background:radial-gradient(ellipse at 50% 31%,#fffefa 2%,#ffedf5 49%,#f2c8df 100%);overflow:hidden;box-shadow:0 0 100px #ad63894d;display:flex;justify-content:center;align-items:center;padding:35px 22px 36px;isolation:isolate}.cover-scene:before,.cover-scene:after{position:absolute;content:"";inset:9px;border:1px solid rgba(206,152,117,.35);border-radius:230px 230px 35px 35px;pointer-events:none}.cover-scene:after{inset:15px;border-color:#ffffffb9}.cover-shine{position:absolute;left:50%;top:4%;width:400px;height:450px;transform:translateX(-50%);background:radial-gradient(ellipse,#fffefa 8%,#ffebf552 57%,transparent 71%);pointer-events:none}.cover-top-flowers{position:absolute;top:-19px;left:-35px;width:234px;height:202px;z-index:2;background:url('../images/floral-corner.svg') center/contain no-repeat;transform:rotate(-12deg);filter:drop-shadow(0 8px 10px #d68ea63b)}.cover-top-flowers-right{left:auto;right:-40px;transform:scaleX(-1) rotate(-13deg)}.cover-content{width:100%;padding:32px 0 14px}.cover-crown{width:75px;height:56px;object-fit:contain;filter:drop-shadow(0 4px 4px #cfb07855);margin-bottom:14px}.cover-script{font:400 55px/.93 var(--script-font);color:#b36d8c;margin:9px 0 16px}.cover-photo-frame{width:202px;height:211px;padding:9px;position:relative;z-index:1;border-radius:48% 48% 44% 44%;background:linear-gradient(145deg,#fff9ea,#dfb967 42%,#fff3cf 65%,#bc895c);box-shadow:0 14px 33px #ab7d9660,0 0 0 7px #fff9f39a;transform:rotate(-2deg)}.cover-photo-frame:after{content:"";position:absolute;inset:-19px;border:1px dashed #d5ac72a8;border-radius:50%;pointer-events:none}.cover-photo-frame img{width:100%;height:100%;border-radius:46% 46% 42% 42%;object-fit:cover;object-position:center 36%;border:3px solid #fff9ea}.cover-name{font:400 69px/.91 var(--script-font);white-space:nowrap;color:#a76a7c;letter-spacing:-.5px;margin:18px 0 2px;filter:drop-shadow(0 2px 0 #fff)}.cover-age{font:600 12px/1.4 var(--title-font);letter-spacing:3.8px;text-transform:uppercase;color:#a27885}.cover-rule{font:24px var(--title-font);margin:8px 0 18px;color:var(--gold)}.guest-to{display:flex;flex-direction:column;align-items:center;gap:7px;background:#ffffffa8;border:1px solid #f1d2db;border-radius:15px;padding:13px 30px;margin-bottom:18px;min-width:230px;max-width:100%}.guest-to span{font-size:8px;letter-spacing:2px;color:#ac8497}.guest-to strong{font:500 21px var(--title-font);color:#81536f;max-width:100%;overflow-wrap:anywhere}.cover-open-button{position:relative;z-index:2;min-width:225px;letter-spacing:1.2px;animation:cta-pulse 2.9s ease-in-out infinite}.cover-instruction{font-size:9px;letter-spacing:.8px;color:#a88693;margin-top:14px}.cover-castle{position:absolute;left:50%;bottom:-64px;width:380px;opacity:.49;transform:translateX(-50%);pointer-events:none;z-index:0}.cover-bottom-clouds{position:absolute;height:84px;left:-20%;right:-20%;bottom:-43px;border-radius:50%;background:#fffefad4;filter:blur(16px);pointer-events:none}
/* Hero */
.hero{background:#fae3ee;min-height:820px}.hero-sky{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 17%,#fffefa 2%,#fff4f8 28%,#f7cadd 63%,#f1c4dd 100%)}.hero-sky:after{content:"";position:absolute;inset:0;opacity:.36;background-image:radial-gradient(#fff 1.7px,transparent 2px);background-size:39px 48px;mask-image:linear-gradient(#000,transparent 92%)}.hero-halo{position:absolute;top:80px;left:50%;width:360px;height:450px;transform:translateX(-50%);background:radial-gradient(ellipse,#fffdf9c4,transparent 71%)}.hero-floral{position:absolute;z-index:2;top:-22px;left:-38px;width:186px;height:170px;background:url('../images/floral-corner.svg') center/contain no-repeat;filter:drop-shadow(0 4px 7px #ca79a33a);animation:floral-sway 7s ease-in-out infinite alternate;transform-origin:top left}.hero-floral-right{left:auto;right:-42px;transform:scaleX(-1);animation:floral-sway-r 8s ease-in-out infinite alternate;transform-origin:top right}.hero-top{margin-top:26px;position:relative;z-index:4}.hero-top .eyebrow{font-size:9px;color:#a67c8c;letter-spacing:2.7px}.royal-rule{display:flex;justify-content:center;gap:12px;color:var(--gold);font-size:12px;opacity:.9}.invited-copy{font:500 34px/1.1 var(--title-font);color:#925575;margin-top:13px;letter-spacing:1px}.tiny-script{font:400 37px/1 var(--script-font);color:#d58da9;margin-top:0}.portrait-stage{z-index:4;width:220px;height:248px;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 18px 24px #ab719a39)}.portrait-ring{position:relative;width:210px;height:226px;padding:9px;z-index:2;border-radius:48% 48% 43% 43%;background:linear-gradient(115deg,#b58c52,#ffeabe 22%,#bd935e 52%,#ffebc3 83%,#d2a55f);box-shadow:0 0 0 6px #fffaf1a6,inset 0 0 0 2px #fff4cc}.portrait-ring:before,.portrait-ring:after{content:"";position:absolute;pointer-events:none;border-radius:50%;inset:-15px;border:1px solid #e4c78fa8}.portrait-ring:after{inset:-20px;border:1px dashed #e5c98b70}.portrait-inner{width:100%;height:100%;overflow:hidden;border-radius:46% 46% 40% 40%;background:#fff6fa;border:4px solid #fff6eb}.portrait-inner img{width:100%;height:100%;object-fit:cover;object-position:center 38%}.hero-crown{width:88px;position:absolute;z-index:4;top:-36px;left:50%;transform:translateX(-50%) rotate(-3deg);filter:drop-shadow(0 5px 4px #d2b27a88)}.portrait-star{position:absolute;color:#fff9df;text-shadow:0 0 10px #eac36e;font-size:24px;z-index:4}.portrait-star-a{top:35px;left:-29px}.portrait-star-b{top:68px;right:-34px;font-size:32px}.portrait-star-c{bottom:18px;left:-31px;font-size:18px}.age-pill{font:500 9px/1.3 var(--body-font);letter-spacing:1.3px;color:#bc6e8f;text-transform:uppercase}.age-pill span{color:var(--gold);margin:0 6px}.hero-name{position:relative;z-index:5;font:400 clamp(74px,17vw,93px)/.9 var(--script-font);white-space:nowrap;color:#a75e80;letter-spacing:-2.4px;text-shadow:0 2px 1px #fff9fc,0 5px 23px #fff7fa}.hero-birthday{font:600 15px/1.1 var(--title-font);color:#8c6476;letter-spacing:4.5px;text-transform:uppercase;margin-top:4px}.ornamental-divider{font:18px var(--title-font);color:var(--gold);letter-spacing:14px;padding-left:14px}.ornamental-divider span{font-size:12px}.hero-date{font:600 17px/1.3 var(--title-font);color:#855e70}.hero-time{font:500 10px var(--body-font);letter-spacing:1.2px;color:#b58094;margin-top:6px}.hero-castle{position:absolute;z-index:1;width:430px;max-width:none;bottom:-25px;left:50%;transform:translateX(-50%);opacity:.57;filter:saturate(.75)}.hero-scroll-note{position:relative;z-index:4;display:flex;align-items:center;flex-direction:column;gap:8px}.hero-scroll-note span{font-size:8px;letter-spacing:2.6px;color:#aa839a}.hero-scroll-note i{height:27px;width:1px;background:linear-gradient(#c999ac,transparent);animation:scroll-down 2s ease-in-out infinite}.butterfly{position:absolute;width:72px;z-index:3;animation:butterfly-drift 6s ease-in-out infinite alternate}.butterfly-left{left:-20px;top:41%;transform:rotate(-23deg)}.butterfly-right{right:-15px;top:33%;width:52px;animation-delay:-3s}.sparkle-field{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:2}.sparkle{position:absolute;animation:twinkle 2.8s ease-in-out infinite alternate;color:#fffdf5;filter:drop-shadow(0 0 5px #fff);font-size:13px}.wave-divider{height:47px;position:absolute;z-index:6;bottom:-1px;left:0;right:0}.wave-cream{background:var(--cream);clip-path:polygon(0 62%,8% 55%,16% 59%,25% 47%,35% 53%,46% 41%,56% 49%,66% 39%,76% 48%,86% 38%,100% 51%,100% 100%,0 100%)}
/* Content sections */
.invitation-section{background:radial-gradient(ellipse at 50% 35%,#fff 0%,#fffbf7 70%);min-height:560px}.invitation-section:after{content:"✧";position:absolute;font-size:70px;left:-18px;bottom:46px;color:#f2e0e5}.invitation-monogram{margin:37px auto 0;display:flex;flex-direction:column;align-items:center;gap:3px}.invitation-monogram img{width:67px;height:51px;object-fit:contain;opacity:.7}.child-script{font:400 56px/.82 var(--script-font);color:var(--rose-deep)}.invitation-monogram small{font-size:8px;letter-spacing:2.5px;color:#b39b9f;margin-top:11px}.countdown-section{background:linear-gradient(150deg,#fbe6ee,#f6dce9 45%,#e9daf2)}.countdown-section:before{content:"";position:absolute;inset:12px;border:1px solid #fff9fbbf;pointer-events:none}.section-frame{padding:25px 9px 27px;border-radius:180px 180px 22px 22px;border:1px solid #fefcff91;background:linear-gradient(#ffffff62,#fff8fb60);box-shadow:0 13px 35px #d291b420}.countdown-grid{max-width:362px;margin-inline:auto}.countdown-tile{border-radius:17px 17px 13px 13px;min-width:0;background:#fffbfce8;border:1px solid #fff;box-shadow:0 7px 18px rgba(170,102,141,.1);padding:16px 2px 14px;display:flex;align-items:center;flex-direction:column;gap:8px}.countdown-tile strong{font:600 38px/1 var(--title-font);color:#9b5979;font-variant-numeric:tabular-nums}.countdown-tile small{font-size:8px;letter-spacing:1px;color:#b48699;font-weight:700}.countdown-footer{font:400 28px var(--script-font);color:#a46c85;margin-top:25px}.details-section{background:#fffbf8;overflow:hidden}.details-section:before,.details-section:after{content:"";position:absolute;width:178px;height:158px;background:url('../images/floral-corner.svg') center/contain no-repeat;opacity:.34;pointer-events:none}.details-section:before{top:-53px;left:-73px;transform:rotate(-30deg)}.details-section:after{bottom:-50px;right:-65px;transform:scaleX(-1) rotate(-12deg)}.event-card{position:relative;border-radius:190px 190px 22px 22px;background:linear-gradient(152deg,#fffefb,#fff6f6);border:1px solid #e9cda2;box-shadow:var(--shadow);margin-top:42px;padding:8px;overflow:hidden}.event-card-inner{border-radius:180px 180px 17px 17px;border:1px solid #f0d8b0;padding:54px 16px 39px;background:radial-gradient(ellipse at 50% 10%,#fff 3%,transparent 80%)}.card-edge{position:absolute;height:12px;left:25px;right:25px;border:1px solid #edcfa8;opacity:.6}.card-edge-top{top:20px;border-radius:100% 100% 0 0;border-bottom:0}.card-edge-bottom{bottom:13px;border-radius:0 0 20px 20px;border-top:0}.event-icon{font-size:35px;color:var(--gold);margin-bottom:8px}.event-title{font:500 38px/.9 var(--title-font);color:#905a74;margin-bottom:17px}.event-date-value{font:600 18px var(--title-font);color:#a56b85}.card-hairline{width:67px;height:1px;margin:23px auto;background:linear-gradient(90deg,transparent,#d5b177,transparent)}.event-detail{font-size:12px;color:#815e72;margin:11px auto}.event-detail .mini-icon{color:var(--gold);height:16px;width:16px}.event-address{font:400 11px/1.9 var(--body-font);color:#a18a97;max-width:260px;margin:3px auto 0}.dress-code{display:flex;align-items:center;gap:17px;margin:24px auto 0;padding:17px 21px;border-radius:12px;border:1px dashed #e8c6d7;max-width:340px;text-align:left;background:#fff6f9}.dress-icon{width:48px;height:48px;display:grid;place-items:center;flex:none;border-radius:50%;background:#f7deeb;color:#a66b8a;font-size:30px}.dress-code .eyebrow{font-size:8px}.dress-code p{font-size:12px;margin-top:3px;color:#866a79}.timeline-section{background:linear-gradient(145deg,#f5ecf6,#fff8f8 60%,#fff5ee)}.timeline{max-width:335px;margin-left:auto;margin-right:auto;position:relative}.timeline:before{content:"";position:absolute;left:27px;top:20px;bottom:26px;width:1px;background:linear-gradient(#d8b5bd,#cfaa7f,#e6c8d8)}.timeline-item{display:flex;align-items:flex-start;gap:18px;position:relative;margin:0 0 26px}.timeline-item:last-child{margin-bottom:0}.timeline-icon{flex:none;width:54px;height:54px;display:grid;place-items:center;z-index:1;border-radius:50%;background:linear-gradient(145deg,#fff,#f7deeb);border:1px solid #e3bcce;box-shadow:0 6px 18px #d8acbe4d;color:#c19e66;font-size:25px}.timeline-info{padding-top:2px}.timeline-info time{font-size:10px;letter-spacing:2px;color:#bd7a99;font-weight:700}.timeline-info h3{font:600 25px/1.05 var(--title-font);color:#83546f;margin-top:5px}.timeline-info p{color:#9d8391;font-size:11px;line-height:1.8;margin-top:4px}.gallery-section{background:#fffaf7}.gallery-grid{align-items:stretch}.gallery-item{position:relative;overflow:hidden;border-radius:110px 110px 15px 15px;background:#f4dce7;border:5px solid #fff;outline:1px solid #eacdd9;box-shadow:0 8px 24px rgba(182,119,153,.14);aspect-ratio:3/4;transition:transform .3s ease,box-shadow .3s ease}.gallery-item:nth-child(2),.gallery-item:nth-child(3){border-radius:16px 110px 16px 16px}.gallery-item:nth-child(3){border-radius:110px 16px 16px 16px}.gallery-item:hover{transform:translateY(-4px);box-shadow:0 15px 30px rgba(182,119,153,.24)}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.gallery-item[data-svg="true"] img{object-fit:contain;background:linear-gradient(155deg,#f4e6f8,#ffeaf1);padding:12px}.gallery-item:hover img{transform:scale(1.05)}.gallery-label{position:absolute;z-index:1;bottom:8px;left:8px;right:8px;background:#fff9f2df;border:1px solid #fff;border-radius:100px;padding:7px 6px;font:500 17px/1 var(--script-font);color:#9d6880;text-align:center}.gallery-hint{font:500 10px var(--body-font);letter-spacing:1px;color:#b58b9f}.location-section{background:linear-gradient(#fff7fa,#fae8ef)}.map-card{background:#fffdfc;border:1px solid #eedce5;padding:11px 11px 26px;border-radius:18px;box-shadow:var(--shadow)}.map-topline{display:flex;justify-content:center;align-items:center;gap:7px;padding:13px 6px;font-size:9px;letter-spacing:2.1px;font-weight:600;color:#a7748c}.map-topline .mini-icon{color:#c69a5f}.map-frame{height:225px;border-radius:10px;overflow:hidden;background:linear-gradient(125deg,#eddfeb,#e5ebde);position:relative}.map-frame:after{content:"Map requires an internet connection";position:absolute;inset:auto 0 12px;display:block;text-align:center;font-size:9px;letter-spacing:.4px;color:#6d6b74;pointer-events:none;opacity:.55}.map-frame iframe{position:relative;z-index:1;width:100%;height:100%;border:0}.map-card-bottom{padding:24px 10px 0}.map-card-bottom h3{font:600 31px var(--title-font);color:#895a75}.map-card-bottom p{font-size:11px;line-height:1.7;color:#a08798;max-width:275px;margin:5px auto}.rsvp-section{background:#fffaf7}.form-card{max-width:380px;margin-left:auto;margin-right:auto;background:#fff;border:1px solid #f0dde4;border-radius:18px;box-shadow:0 14px 40px rgba(172,107,143,.09);padding:25px;text-align:left}.field-label{font-size:11px;color:#8f6579;font-weight:600;display:block;letter-spacing:.2px;margin-bottom:9px}.field-label span{font-weight:400;color:#baa2af}.form-card input,.form-card select,.form-card textarea{display:block;width:100%;color:#855970;font-size:12px;border:1px solid #eedce5;background:#fffafa;border-radius:11px;min-height:47px;padding:13px 14px;outline:none;transition:border-color .2s,box-shadow .2s}.form-card textarea{min-height:108px;resize:vertical}.form-card input:focus,.form-card select:focus,.form-card textarea:focus{border-color:#cb83a2;box-shadow:0 0 0 3px #f3d7e6}.form-card input::placeholder,.form-card textarea::placeholder{color:#b9a9b0}.form-card .mt-5{margin-top:20px}.form-note{font-size:10px;line-height:1.6;color:#ba9aa9;text-align:center;margin-top:13px}.form-note.is-success{color:#5a9a6a}.form-note.is-error{color:#c75173}.wishes-section{background:linear-gradient(165deg,#fffaf7,#fcf0f4)}.wish-card{background:#fff;border:1px solid #efdde6;border-radius:15px;padding:20px 20px 18px;position:relative;box-shadow:0 8px 23px #c58da00e}.wish-card:after{content:"❞";position:absolute;right:16px;top:12px;font:56px var(--title-font);color:#f1dae6}.wish-card-top{display:flex;align-items:center;gap:11px;margin-bottom:12px}.wish-avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;flex:none;background:#f7dfe9;color:#a86e88;font:600 19px var(--title-font)}.wish-card-name{font-size:12px;font-weight:700;color:#915d77}.wish-card-status{font-size:9px;color:#b296a4;margin-top:4px}.wish-card p{font:400 12px/1.9 var(--body-font);color:#927e88;position:relative;z-index:1;white-space:pre-wrap;overflow-wrap:anywhere}.wishes-empty{font-size:12px;color:#a6889b;text-align:center;padding:24px}.gift-section{background:linear-gradient(165deg,#f8e1ec,#f1dbea 69%,#f9e9e9);overflow:hidden}.gift-section:before{content:"";inset:15px;position:absolute;border:1px solid #fffcf77c;pointer-events:none}.gift-art{width:210px;height:150px;margin:0 auto 7px;filter:drop-shadow(0 12px 17px #bf8fb15b)}.gift-art img{width:100%;height:100%;object-fit:contain}.gift-section .body-copy{max-width:300px}.footer-section{background:radial-gradient(ellipse at 50% 30%,#fff 0%,#fff6f8 52%,#f3d7e6 100%);overflow:hidden}.footer-section:after,.footer-section:before{content:"";position:absolute;width:180px;height:180px;background:url('../images/floral-corner.svg') center/contain no-repeat;opacity:.58;bottom:-45px;pointer-events:none}.footer-section:before{left:-60px;transform:rotate(-12deg)}.footer-section:after{right:-60px;transform:scaleX(-1) rotate(-12deg)}.footer-crown{height:69px;width:100px;object-fit:contain}.footer-heading{font:500 56px/.8 var(--title-font);color:#89536e;margin-top:17px}.footer-heading em{font:400 62px/1.15 var(--script-font);color:#bd7999}.family-signature{font:400 41px/1.2 var(--script-font);color:var(--rose-deep)}.footer-button{font-size:10px;min-height:43px;padding:10px 15px}.footer-credit{font-size:8px;letter-spacing:1.6px;color:#b997a9;position:relative;z-index:2}
/* Floating controls */
.bottom-nav{position:fixed;z-index:80;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,480px);display:flex;justify-content:space-around;align-items:center;padding:11px 14px calc(10px + env(safe-area-inset-bottom));min-height:69px;background:#fffdfcef;box-shadow:0 -6px 27px rgba(151,83,121,.1);border-top:1px solid #efd9e4;backdrop-filter:blur(16px)}.nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#b39aa8;min-width:50px;transition:color .2s,transform .2s}.nav-item span{font-size:20px;line-height:20px}.nav-item svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round;stroke-linecap:round}.nav-item small{font-size:8px;letter-spacing:.2px}.nav-item:hover,.nav-item.is-active{color:#b76389;transform:translateY(-2px)}.music-button{position:fixed;z-index:81;bottom:87px;right:max(calc((100vw - 460px)/2 + 15px),16px);height:43px;width:43px;border-radius:50%;border:1px solid #e6bacb;display:flex;align-items:center;justify-content:center;background:#fffaf7f5;color:#b76590;box-shadow:0 5px 17px #c887a456;transition:transform .2s}.music-button:hover{transform:scale(1.07)}.music-button svg{height:20px;width:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.music-button.is-playing{background:#c47fa1;color:#fff;animation:music-orbit 5s linear infinite}.music-signal{position:absolute;width:6px;height:6px;background:#e8bf6b;border-radius:50%;top:1px;right:0;opacity:0}.music-button.is-playing .music-signal{opacity:1}
/* Modals */
.modal-overlay{position:fixed;z-index:130;inset:0;background:#51344799;backdrop-filter:blur(6px);display:grid;place-items:center;padding:22px}.modal-overlay[hidden]{display:none!important}.modal-sheet{position:relative;width:min(100%,400px);max-height:calc(100svh - 44px);overflow:auto;text-align:center;background:#fffbf9;border:1px solid #eac99c;border-radius:26px;padding:38px 23px 28px;box-shadow:0 24px 100px #38223275;outline:none}.modal-sheet:after{content:"";position:absolute;inset:8px;border:1px solid #e8d2af9c;border-radius:20px;pointer-events:none}.modal-close{position:absolute;z-index:2;top:13px;right:13px;height:34px;width:34px;display:grid;place-items:center;border:1px solid #edcbd9;border-radius:50%;color:#a9768e;background:#fffbf9}.modal-close svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.modal-heading-icon{font-size:35px;color:var(--gold)}.modal-sheet .body-copy{margin:10px auto}.bank-card{position:relative;border:1px solid #edcfaa;background:linear-gradient(125deg,#fff9f5,#f4deed);border-radius:14px;padding:24px 16px;display:flex;flex-direction:column;align-items:center;gap:10px}.bank-card small{font-size:10px;letter-spacing:2px;color:#a8798e}.bank-card strong{font:600 25px var(--title-font);letter-spacing:2px;color:#8d5e76}.bank-card span{font-size:11px;color:#a68798}.copy-button{display:flex;align-items:center;gap:8px;border:1px solid #b87593;border-radius:50px;padding:10px 15px;color:#fff;background:#c485a4;font-size:10px;margin-top:6px}.copy-button svg{height:14px;width:14px;stroke:currentColor;fill:none;stroke-width:1.7}.demo-warning{font-size:9px;line-height:1.6;color:#b7617b;margin:10px 5px 0}.gift-shipping{margin-top:20px;border-top:1px solid #edcfe0;padding-top:14px;text-align:left;color:#946f81;font-size:11px}.gift-shipping p{font-size:11px;margin-top:5px}.gallery-modal-content{max-width:min(90vw,500px);width:100%;max-height:90svh;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;outline:none}.gallery-modal-content img{max-height:75svh;object-fit:contain;max-width:100%;border:6px solid #fffdfb;border-radius:11px;background:#f6e4eb;box-shadow:0 10px 50px #432c45a3}.gallery-modal-content p{font:400 31px var(--script-font);color:#fffaf2;text-align:center;margin-top:8px}.gallery-close{right:0;top:-42px}.toast{position:fixed;z-index:200;left:50%;bottom:100px;transform:translate(-50%,15px);width:max-content;max-width:calc(100vw - 40px);padding:12px 18px;border-radius:12px;background:#8d5773;color:#fff;font-size:12px;box-shadow:0 12px 30px #3a24394d;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;text-align:center}.toast.is-visible{opacity:1;transform:translate(-50%,0)}
/* Motion */
.reveal,.reveal-fade{opacity:0;transform:translateY(28px);transition:opacity .85s cubic-bezier(.22,1,.36,1),transform .85s cubic-bezier(.22,1,.36,1)}.reveal-fade{transform:translateY(13px)}.reveal.is-visible,.reveal-fade.is-visible{opacity:1;transform:translateY(0)}@keyframes floral-sway{from{transform:rotate(-8deg)}to{transform:rotate(3deg)}}@keyframes floral-sway-r{from{transform:scaleX(-1) rotate(-8deg)}to{transform:scaleX(-1) rotate(4deg)}}@keyframes butterfly-drift{from{translate:-4px 4px;rotate:-10deg}to{translate:12px -21px;rotate:10deg}}@keyframes twinkle{from{opacity:.18;transform:scale(.65) rotate(5deg)}to{opacity:.92;transform:scale(1.2) rotate(55deg)}}@keyframes scroll-down{50%{transform:translateY(6px);opacity:.5}}@keyframes cta-pulse{50%{box-shadow:0 10px 25px rgba(170,88,130,.35),0 0 0 7px rgba(220,160,193,.13)}}@keyframes music-orbit{to{transform:rotate(360deg)}}
@media (min-width:481px){.site-shell{border-inline:1px solid #ffffff70}.cover-scene{border-inline:1px solid #ffffff70}.bottom-nav{border-radius:18px 18px 0 0}.music-button{right:calc((100vw - 480px)/2 + 19px)}}
@media (max-width:375px){.hero-floral{width:145px}.hero-floral-right{width:150px}.cover-top-flowers{width:170px;top:-15px}.cover-script{font-size:45px}.cover-name{font-size:61px}.cover-scene{min-height:max(700px,100svh)}.hero-name{font-size:73px}.hero-birthday{font-size:13px;letter-spacing:3.3px}.countdown-tile strong{font-size:32px}.section-title{font-size:50px}.form-card{padding:19px}}
@media (max-height:790px){.cover-scene{align-items:flex-start;min-height:760px}.cover-content{padding-top:20px}.cover-crown{height:45px}.cover-script{margin-bottom:10px}.cover-photo-frame{width:178px;height:184px}.cover-name{margin-top:14px;font-size:61px}.cover-rule{margin:5px 0 10px}.guest-to{padding:10px 20px;margin-bottom:14px}.cover-castle{bottom:-88px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal,.reveal-fade{opacity:1;transform:none;transition:none}.hero-floral,.butterfly,.sparkle,.hero-scroll-note i,.cover-open-button,.music-button.is-playing{animation:none!important}.cover-screen{transition:none}}
