/* Approved editorial direction. Functional forms remain in style.css. */
@font-face{font-family:'Boda Bodoni';src:url('/assets/fonts/bodoni.ttf') format('truetype');font-weight:400 900;font-style:normal;font-display:swap}
@font-face{font-family:'Boda Bodoni';src:url('/assets/fonts/bodoni-italic.ttf') format('truetype');font-weight:400 900;font-style:italic;font-display:swap}
@font-face{font-family:'Boda Sans';src:url('/assets/fonts/dm-sans.ttf') format('truetype');font-weight:100 1000;font-style:normal;font-display:swap}
:root{--lilac:#ede5f5;--plum:#421b48;--deep:#36153c;--ink:#421b48;--gold:#af8d39;--lightgold:#dfc887;--body:'Boda Sans',sans-serif;--serif:'Boda Bodoni',Georgia,serif}
body{background:#ded2e8;font-family:var(--body)}main{max-width:540px;background:var(--lilac)}h1,h2,h3,.btn{font-optical-sizing:auto}h2{font-size:clamp(43px,11.8vw,67px);letter-spacing:-.07em;line-height:.98;font-weight:500}h2 i{font-weight:400}.section{padding:55px 26px 95px}.eyebrow{font-size:10px;letter-spacing:.22em;gap:15px;margin-bottom:24px;color:var(--gold);line-height:1.5}.eyebrow:after{flex:1;width:auto}.micro{font-size:10px;letter-spacing:.19em}.btn{font-size:20px;min-height:50px;padding:12px 20px}.btn .icon{width:22px;height:22px}.flower{pointer-events:none;z-index:1;animation:none;filter:none}.flower img{width:100%;height:auto;object-fit:contain;filter:none;transform-origin:50% 85%;animation:petal-drift 9s ease-in-out infinite alternate}.flower:nth-child(2n) img{animation-delay:-4s}@keyframes petal-drift{from{transform:rotate(-1.4deg) translateY(0)}to{transform:rotate(1.6deg) translateY(-5px)}}.section>h2,.section>p{position:relative;z-index:2}.motion .reveal{transform:translateY(28px);transition-duration:1s}.hero-photo{clip-path:none;isolation:isolate;overflow:visible;padding-bottom:28px;background:var(--lilac)}.hero-photo>img{width:100%;height:auto;aspect-ratio:832/1280;object-fit:contain;clip-path:none}.hero-photo:after{content:'';position:absolute;left:-1%;right:-1%;bottom:25px;height:30px;background:var(--lilac);clip-path:polygon(0 35%,2% 48%,4% 39%,6% 58%,8% 48%,10% 67%,12% 61%,14% 78%,16% 69%,18% 75%,20% 83%,22% 78%,24% 81%,26% 72%,28% 77%,30% 67%,32% 74%,34% 64%,36% 72%,38% 66%,40% 79%,42% 69%,44% 73%,46% 60%,48% 66%,50% 57%,52% 66%,54% 58%,56% 68%,58% 60%,60% 76%,62% 66%,64% 78%,66% 70%,68% 85%,70% 75%,72% 82%,74% 72%,76% 79%,78% 63%,80% 72%,82% 61%,84% 66%,86% 50%,88% 58%,90% 44%,92% 53%,94% 35%,96% 42%,98% 25%,100% 35%,100% 100%,0 100%);z-index:3}.hero-names{left:6%;right:4%;bottom:20%;font-size:clamp(61px,18vw,97px);line-height:.87;letter-spacing:-.075em;font-weight:400;text-shadow:0 2px 20px #20142166}.hero-names .second{font-size:.85em;padding-left:0;white-space:nowrap}.hero-names i{color:var(--lightgold);margin-right:-.09em}.date-section{padding-top:22px;padding-bottom:45px;min-height:0}.date-section h2{font-size:clamp(42px,11.6vw,64px);letter-spacing:-.075em}.date-display{margin-top:32px;gap:13px}.date-day{font-size:clamp(100px,29vw,155px);line-height:.85;font-weight:400}.date-month{font-size:clamp(22px,6.5vw,36px);padding-left:13px;line-height:1.02}.date-time{max-width:75%;font-size:13px;letter-spacing:.23em;margin-top:24px;padding-top:17px}.date-section .flower{right:-60px;top:40px;width:170px;opacity:1}.welcome{padding-top:38px;padding-bottom:105px}.welcome .eyebrow{justify-content:flex-start;text-align:left;max-width:100px;line-height:1.9;font-size:9px;letter-spacing:.23em}.welcome p:not(.eyebrow):not(.gratitude){font-size:15px;line-height:1.7;max-width:36ch;text-wrap:pretty}.welcome p+p{margin-top:14px}.welcome .gratitude{font-size:11px;line-height:1.9;letter-spacing:.28em;margin-top:35px}.celebration{padding-top:30px}.celebration h2{max-width:100%;font-size:clamp(47px,12.7vw,70px);line-height:.86;padding-bottom:14px}.celebration>.flower{width:135px;right:2px;top:-20px}.venue-card{display:grid;grid-template-columns:1fr .82fr;gap:20px 10px;margin-top:35px;padding:20px 16px;background:#fffcf7;border:0;border-radius:0;box-shadow:0 12px 22px #46244916}.venue-info{min-width:0;z-index:2}.venue-card h3{font-size:26px;line-height:1.04;letter-spacing:-.06em}.venue-card .floor{font-size:19px;margin-top:6px}.venue-card .address{font-size:13px;line-height:1.5}.venue-time{font:19px/1.4 var(--serif);margin:18px 0}.venue-time:before{content:'';display:block;width:25px;height:1px;background:var(--gold);margin-bottom:13px}.venue-info .micro{font-size:8px;line-height:1.9;letter-spacing:.18em;margin-top:25px}.venue-card .map{width:100%;height:100%;min-height:220px;aspect-ratio:auto;margin:0;overflow:hidden;border-radius:0}.venue-card .map iframe{width:100%;height:100%;min-height:220px}.venue-card>.btn{grid-column:1/-1;border-radius:8px;margin:0;font-size:22px;min-height:49px}.timeline-section{padding-top:35px;padding-bottom:100px}.timeline-section h2{font-size:clamp(43px,11.5vw,63px);margin-bottom:40px}.timeline{border:0;border-radius:0;padding:0 0 0 19px;background:none;position:relative}.timeline:before{content:'';position:absolute;left:3px;top:38px;bottom:38px;width:1px;background:var(--gold)}.timeline li{display:grid;grid-template-columns:38px 88px 1fr;gap:11px;min-height:88px;position:relative}.timeline li:after{content:'';position:absolute;left:-19px;top:calc(50% - 3px);width:7px;height:7px;background:var(--gold);border-radius:50%}.timeline li:not(:last-child):before{display:none}.timeline-icon{width:38px;height:38px}.timeline time{font:25px/1 var(--serif);letter-spacing:-.075em;white-space:nowrap}.timeline li>div{position:relative;padding-left:8px}.timeline li>div:before{content:'';position:absolute;top:12px;left:-8px;width:9px;height:1px;background:var(--gold)}.timeline h3{font-size:19px;line-height:1.2;letter-spacing:-.04em}.timeline .micro{font:8px/1.55 var(--body);letter-spacing:.12em;margin-top:5px;text-transform:uppercase}.dress{padding-top:35px;padding-bottom:100px;min-height:680px}.dress h2{font-size:clamp(49px,13vw,70px);max-width:65%}.dress .dress-note{font-size:17px;line-height:1.5;max-width:65%;margin-top:34px}.dress .flower{width:135px;right:85px;top:80px;z-index:1}.dress .attire{position:absolute;width:120px;height:auto;object-fit:contain;right:12px;top:220px;z-index:1}.swatches{gap:12px;margin-top:15px;max-width:68%}.swatch{font:19px/1.3 var(--serif);gap:9px}.swatch>span{width:20px;height:20px;flex:none;border:1px solid var(--gold);border-radius:50%}.swatch p{color:var(--ink);font:inherit}.swatch small{font:11px/1.4 var(--body);display:block;margin-top:3px}.gift{padding-top:20px;padding-bottom:115px}.gift h2{max-width:90%;font-size:clamp(46px,12vw,65px)}.gift-layout{grid-template-columns:1fr 1.3fr;gap:24px;margin-top:50px;align-items:center}.gift-copy{font-size:10px;letter-spacing:.17em;line-height:2}.gift-card{border-radius:65px;padding:65px 14px 36px;min-height:220px;gap:18px}.gift-card .flower{width:110px;right:-25px;top:-110px;z-index:0}.gift-card .gift-icon{width:40px;height:40px;position:relative;z-index:2}.gift-card p{font:11px/1.9 var(--body);position:relative;z-index:2}.gallery-section{padding-top:25px;padding-bottom:100px}.gallery-section h2{font-size:clamp(47px,12vw,66px)}.gallery-section>p:not(.eyebrow){font-size:14px;margin-top:25px}.gallery-section>.btn{display:flex;width:max-content;max-width:100%;margin-left:auto}.gallery-strip{margin-top:40px;margin-bottom:40px}.empty-gallery{background:#ffffff2b;padding:40px 24px;margin:38px 0;border:1px solid #af8d3944}.music-section{padding-top:35px;padding-bottom:170px}.music-section h2{font-size:clamp(44px,11.8vw,65px)}.music-section>p:not(.eyebrow){font-size:14px;max-width:90%;margin-top:25px;margin-bottom:28px}.music-section .wave{position:absolute;right:28px;top:53px;width:85px;opacity:.85;height:35px}.music-section .flower{width:130px;right:-27px;bottom:-5px}.music-section>.btn{font-size:17px;gap:12px;position:relative;z-index:3}.rsvp{padding:55px 28px 95px;border-radius:36px 36px 0 0;background:radial-gradient(ellipse at 25% 0,#51264f,var(--deep) 70%)}.rsvp>.eyebrow{display:none}.rsvp h2{font-size:clamp(36px,10.3vw,55px);line-height:1.1;color:var(--lightgold)}.rsvp>p{font-size:14px;margin:14px auto 20px}.rsvp>p.adults{font-size:13px;line-height:1.8;margin:0 auto 30px;max-width:38ch}.rsvp .form-field{margin-bottom:19px}.rsvp .form-field label{font-size:14px}.rsvp .form-field input,.rsvp .form-field select{min-height:54px;font-size:16px;border-radius:10px}.rsvp .btn.gold{min-height:54px;font-size:21px}.rsvp .hint{font-size:11px;line-height:1.6;margin-top:18px}.signoff{padding-top:55px}.signoff h3{font-size:30px;margin:15px 0}.signoff .micro{font:10px var(--body)}.triforce{display:block;width:28px;height:auto;margin:24px auto;line-height:normal;letter-spacing:normal;color:var(--gold)}.rsvp>.flower{right:-22px;bottom:0;width:145px}.music-toggle{left:max(14px,calc(50% - 253px));width:52px;height:52px;padding:0;border:0;background:transparent;box-shadow:0 5px 20px #3519371f}.music-toggle img{width:100%;height:100%}.music-toggle[aria-pressed=false] .music-on,.music-toggle[aria-pressed=true] .music-off{display:none}
/* Envelope pieces share the same image coordinates and retain their proportions. */
.envelope-page{padding:38px 24px 30px;min-height:100svh;display:flex;overflow:hidden;isolation:isolate}.envelope-page h1.names{font-size:clamp(43px,13.7vw,72px);margin:0 0 0 40px;line-height:.94;letter-spacing:-.065em;text-align:left;align-self:center;z-index:3}.names b{color:var(--gold)}.envelope-page .small-title{font-size:10px;letter-spacing:.25em;margin-top:22px;margin-left:44px;color:var(--gold)}.small-title:before,.small-title:after{width:28px}.envelope-page .invitation-title{font-size:clamp(29px,8vw,43px);text-align:center;align-self:flex-end;margin:30px 0 25px;letter-spacing:-.06em;line-height:1.05;z-index:3;font-weight:400}.envelope-page>.flower.left{width:220px;left:-81px;top:108px;z-index:0;transform:none}.envelope-page>.flower.right{width:130px;right:-40px;bottom:30px;z-index:1;transform:none}.envelope-stage{width:78%;max-width:320px;aspect-ratio: .65;perspective:1000px;margin:0 0 32px 10px;z-index:2;isolation:isolate}.inside-card{inset:5% 5%;font:25px/1.3 var(--serif);border:1px solid #d6bd85;background:linear-gradient(150deg,#fffcf8,#f5eef6);box-shadow:0 12px 30px #35193722;z-index:0;opacity:0;transform:translateY(0) scale(.97)}.flap{top:0;bottom:0;width:50%;border:0;box-shadow:none;border-radius:0!important;background-image:url('/assets/design/envelope/sobre-papel.png');background-size:200% 100%;background-repeat:no-repeat;backface-visibility:hidden;z-index:3;transition:none}.flap.left{left:0;background-position:left center;transform-origin:0 50%}.flap.right{right:0;background-position:right center;transform-origin:100% 50%}.envelope-label{top:64%;left:10px;right:10px;z-index:5;transition:none}.envelope-label strong{font:italic clamp(22px,6.3vw,33px)/1.05 var(--serif);letter-spacing:-.05em;text-wrap:balance;overflow-wrap:anywhere}.envelope-label p{font:10px/1.8 var(--body);letter-spacing:.14em;max-width:23ch;margin-top:12px}.envelope-label p:before{content:'';display:block;width:28px;height:1px;background:var(--gold);margin:0 auto 10px}.ribbon-half{top:29%;height:39%;width:70%;background:url('/assets/design/envelope/cinta-champan.png') no-repeat;background-size:200% 100%;box-shadow:none;transition:none;transform:none!important;z-index:7}.ribbon-half.left{left:-20%;background-position:left center}.ribbon-half.right{right:-20%;background-position:right center}.seal{top:39%;left:calc(50% - 17px);width:34px;height:34px;z-index:8;border:0;border-radius:0;background:none;font-size:0;display:block;padding:0;box-shadow:none;transition:none;transform:none}.seal img{width:100%;height:100%;filter:drop-shadow(0 2px 2px #56381455)}.envelope-page>.btn{font-size:17px;letter-spacing:.03em;min-height:47px;margin:0;z-index:5}.envelope-page>#envelope-status{margin-top:12px;font:11px var(--body)}.opening .seal{animation:seal-release .85s ease forwards;opacity:1;transform:none}.opening .ribbon-half.left{animation:ribbon-left 1.15s .7s cubic-bezier(.4,0,.6,1) forwards;opacity:1}.opening .ribbon-half.right{animation:ribbon-right 1.15s .7s cubic-bezier(.4,0,.6,1) forwards;opacity:1}.opening .flap.left{animation:flap-left 1.3s 1.6s var(--ease) forwards;transform:none}.opening .flap.right{animation:flap-right 1.3s 1.6s var(--ease) forwards;transform:none}.opening .envelope-label{animation:label-release .4s 1.5s forwards;opacity:1}.opening .inside-card{animation:card-reveal 1.1s 2.15s var(--ease) forwards}.opening>#open-envelope{opacity:.65}.envelope-page.leaving{opacity:0;transition:opacity .5s ease}
@keyframes seal-release{0%{filter:brightness(1);opacity:1}40%{filter:brightness(1.8) drop-shadow(0 0 12px #ffe4a2);opacity:1;scale:1.12}100%{filter:brightness(2) drop-shadow(0 0 22px #ffe4a2);opacity:0;scale:1.25}}
@keyframes ribbon-left{30%{translate:-10px 5px;rotate:-4deg;opacity:1}100%{translate:-170px 100px;rotate:-28deg;opacity:0}}
@keyframes ribbon-right{30%{translate:10px 5px;rotate:4deg;opacity:1}100%{translate:170px 100px;rotate:28deg;opacity:0}}
@keyframes flap-left{to{transform:rotateY(-145deg)}}@keyframes flap-right{to{transform:rotateY(145deg)}}@keyframes label-release{to{opacity:0}}@keyframes card-reveal{0%{opacity:0;transform:translateY(0) scale(.97)}30%{opacity:1}100%{opacity:1;transform:translateY(-25px) scale(1.02)}}
@media(min-width:480px){.section{padding-left:36px;padding-right:36px}.timeline li{grid-template-columns:44px 112px 1fr;gap:15px;min-height:98px}.timeline-icon{width:44px;height:44px}.timeline time{font-size:33px}.timeline h3{font-size:23px}.timeline .micro{font-size:9px}.date-section .flower{width:205px;right:-65px}.dress .flower{width:160px;right:125px}.dress .attire{width:145px;right:24px}.dress{min-height:710px}.envelope-page>.flower.left{width:275px;left:-65px;top:120px}.envelope-page>.flower.right{width:160px;right:-25px}.envelope-page .invitation-title{margin-right:25px}.envelope-label p{font-size:12px}.envelope-label strong{font-size:34px}}
@media(max-width:359px){.section{padding-left:20px;padding-right:20px}.timeline{padding-left:14px}.timeline li{grid-template-columns:34px 74px 1fr;gap:7px}.timeline li:after{left:-14px}.timeline time{font-size:22px}.timeline h3{font-size:17px}.timeline-icon{width:34px;height:34px}.timeline .micro{font-size:7px}.dress .flower{right:65px;width:115px}.dress .attire{right:8px;width:102px}.gift-layout{gap:17px}.rsvp{padding-left:22px;padding-right:22px}.music-section>.btn{font-size:15px}.envelope-page{padding-left:15px;padding-right:15px}.envelope-label p{font-size:9px}}
@media(prefers-reduced-motion:reduce){.flower img,.opening .seal,.opening .ribbon-half,.opening .flap,.opening .envelope-label,.opening .inside-card{animation:none!important}.motion .reveal{opacity:1;transform:none}.envelope-page.leaving{transition:none}}
/* Clear legacy decorative layers and preserve the original asset aspect ratios. */
.envelope-stage{aspect-ratio:2/3}.envelope-stage:before,.envelope-stage:after,.seal:before,.seal:after{display:none}.envelope-page .small-title{margin-bottom:0}.envelope-page>.flower.right{left:auto;top:auto;opacity:1}.envelope-page>.flower.left{opacity:1}.envelope-page .seal{top:40%;left:calc(50% - 17px);width:34px;height:34px;display:block;padding:0;background:none;border:0;border-radius:0;box-shadow:none;font-size:0}.ribbon-half{top:23%;height:62.222%;width:70%}.envelope-label{top:62%}.envelope-stage .inside-card{border-radius:0}.dress>.flower{opacity:1}.music-section .wave{margin-top:0}
