@font-face{font-family:Great Vibes;src:url('assets/fonts/GreatVibes-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Cormorant Garamond;src:url('assets/fonts/CormorantGaramond-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
:root{--paper:#fbfcfd;--blue:#243958;--dusty:#698fa9;--gold:#ad8b57;--serif:'Cormorant Garamond',Georgia,serif;--script:'Great Vibes',cursive;--sans:'Segoe UI',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#dfe5eb;color:var(--blue);font:22px/1.35 var(--serif);-webkit-font-smoothing:antialiased}body.is-sealed{overflow:hidden}[hidden]{display:none!important}button,input,select{font:inherit}button{color:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:6px}a{color:inherit}img{display:block;max-width:100%;height:auto}p,h1,h2,h3{margin:0;font-weight:400}.icon-library{position:absolute;width:0;height:0;overflow:hidden}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.invitation-shell{max-width:480px;min-height:100svh;margin:auto;background:var(--paper);box-shadow:0 0 65px #28395020;overflow:clip}svg{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
/* A primeira tela é um envelope. As dobras permanecem separadas para animar a abertura. */
.envelope{position:relative;height:100svh;min-height:460px;max-height:1100px;overflow:hidden;isolation:isolate;perspective:1000px;background:#f7f9fb}.paper-back{position:absolute;inset:0;background:radial-gradient(ellipse at 5% 5%,#dce8ef80,transparent 42%),radial-gradient(ellipse at 97% 70%,#e7edf15c,transparent 50%),repeating-linear-gradient(101deg,#fdfdfc 0px,#fdfdfc 2px,#f8f9f9 3px,#fdfdfc 4px)}.paper-back:after{content:'';position:absolute;inset:0;background-image:var(--flowers, url('assets/guirlanda-azul.webp'));background-size:145%;background-position:center center;opacity:.028}.envelope-side{position:absolute;inset:0;background:linear-gradient(140deg,#fdfefd,#eef2f5 90%);filter:drop-shadow(0 0 4px #1a2e4925)}.envelope-side.left{clip-path:polygon(0 0,54% 68%,0 100%)}.envelope-side.right{clip-path:polygon(100% 0,46% 68%,100% 100%);background:linear-gradient(-140deg,#fdfefd,#eef2f5)}.envelope-flap{position:absolute;inset:0 0 28%;transform-origin:center top;clip-path:polygon(0 0,100% 0,50% 100%);background:linear-gradient(112deg,#ffffff,#f2f5f7 70%,#e6edf1);filter:drop-shadow(0 8px 6px #2b3d5526);z-index:1;backface-visibility:hidden}.envelope-flap:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(120deg,#ffffff15 0px,#ffffff15 2px,#e5e9ec20 3px,#ffffff15 4px)}.envelope-crest{position:absolute;width:58%;max-width:285px;top:14%;left:50%;transform:translateX(-50%);z-index:2}.envelope-crest img{width:100%}.monogram{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:52px/1 var(--serif);letter-spacing:3px;padding:0 0 4px 8px}.monogram .monogram-divider{font-size:24px;color:var(--gold);padding:0 10px;font-style:normal}.envelope-kicker{position:absolute;top:8%;width:100%;text-align:center;font-size:17px;font-style:italic;z-index:3;color:#758299}.ribbon-band{position:absolute;top:62%;height:41px;left:0;right:0;z-index:3;background:linear-gradient(#152b52,#214d82 30%,#152b52 80%,#0e2245);box-shadow:0 6px 10px #152b521f;transform:translateY(-50%)}.ribbon-button{position:absolute;z-index:4;left:50%;top:61%;width:91%;border:0;background:none;padding:0;transform:translate(-50%,-31%);filter:drop-shadow(0 9px 8px #132b5533)}.ribbon-button img{width:100%;max-height:44svh;object-fit:contain}.ribbon-button:hover{filter:drop-shadow(0 9px 12px #132b5555) brightness(1.03)}.ribbon-button:focus-visible{outline-offset:2px;border-radius:15px}.open-instruction{position:absolute;z-index:5;bottom:7.5%;width:100%;text-align:center;font-size:15px;line-height:1.2;letter-spacing:1px;text-transform:uppercase;pointer-events:none}.open-instruction svg{width:23px;height:26px;margin:0 auto 8px;display:block;color:var(--gold)}.envelope-names{position:absolute;top:49%;left:0;right:0;text-align:center;font:30px/1.3 var(--script);z-index:3;color:#5e7087}.cover-demo{position:absolute;bottom:2%;left:0;right:0;text-align:center;font:9px var(--sans);letter-spacing:1px;color:#6e7c8d}.envelope.is-opening .ribbon-button{animation:untie .65s ease-in forwards}.envelope.is-opening .ribbon-band{animation:slide-band .6s ease-in forwards}.envelope.is-opening .envelope-flap{animation:lift-flap .8s .16s ease-in-out forwards}.envelope.is-opening .envelope-crest,.envelope.is-opening .envelope-names,.envelope.is-opening .open-instruction,.envelope.is-opening .envelope-kicker{animation:fade-away .35s ease-in forwards}.envelope.is-opening{animation:fade-away .35s .85s ease-in forwards}@keyframes untie{to{transform:translate(-50%,10%) scale(1.15);opacity:0}}@keyframes slide-band{to{transform:translateX(110%);opacity:0}}@keyframes lift-flap{to{transform:rotateX(160deg)}}@keyframes fade-away{to{opacity:0}}
/* O convite aberto mantém o formato de papelaria vertical também no desktop. */
main{background:radial-gradient(ellipse 240px 300px at 100% 35%,#deebf275,transparent),radial-gradient(ellipse 280px 430px at 0% 67%,#e0ecf45e,transparent),var(--paper)}.paper-section{position:relative;text-align:center;padding:48px 32px}.invitation-intro{padding:37px 0 20px}.crest{position:relative;width:180px;height:180px;margin:auto}.crest img{width:100%}.crest .monogram{font-size:39px;letter-spacing:2px}.crest .monogram-divider{font-size:18px;padding:0 8px}.opening-quote{font-size:21px;line-height:1.4;max-width:360px;padding:0 30px;margin:24px auto 26px}.portrait-wrap{position:relative;isolation:isolate;overflow:hidden;margin-top:12px}.portrait{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center 32%;mask-image:linear-gradient(transparent,#000 12%,#000 86%,transparent)}.portrait-wrap:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#13233b54 57%,transparent);z-index:1;pointer-events:none}.couple-names{position:absolute;bottom:9%;left:0;right:0;z-index:2;color:white;text-align:center;font:clamp(64px,19vw,83px)/.98 var(--script);text-shadow:0 2px 13px #0c1a30b0;overflow-wrap:anywhere;padding:10px 25px}.couple-names span{display:block}.couple-names em{font:45px/1.15 var(--script);display:block;margin:4px 0;font-style:normal}.invitation-message{font-size:25px;line-height:1.3;padding:0 30px;max-width:460px;margin:20px auto}.invitation-message.secondary{font-size:23px;margin:27px auto 0;max-width:390px}.wedding-date{padding:26px 25px 49px}.date-day{font-size:160px;line-height:.95;color:#96b3c5;letter-spacing:-8px;padding-right:8px}.date-month{position:relative;font:82px/1.1 var(--script);margin-top:-34px;color:var(--blue);z-index:1}.date-year{font-size:46px;line-height:1;color:var(--gold);margin-top:4px}.weekday{font-size:18px;text-transform:uppercase;letter-spacing:1px;margin-top:38px}.weekday:before,.weekday:after{content:'♥';color:var(--gold);font-size:10px;padding:0 12px;vertical-align:middle}.city{font-size:14px;text-transform:uppercase;letter-spacing:2px;margin-top:9px;color:#687b91}.quick-actions{display:flex;gap:43px;justify-content:center;margin:32px auto 0}.icon-action{display:inline-flex;align-items:center;flex-direction:column;border:0;background:none;gap:12px;padding:8px 5px;font-size:15px;line-height:1.2;text-transform:uppercase;letter-spacing:.5px;min-width:105px;max-width:170px}.icon-disc{display:grid;place-items:center;width:74px;height:74px;border-radius:50%;color:#fff;background:linear-gradient(135deg,#81a8c0,#537d9a);border:1px solid #49718f;outline:1px dotted #ffffffb8;outline-offset:-5px;box-shadow:0 3px 6px #23445d19}.icon-disc svg{width:34px;height:34px;stroke-width:1.6}.icon-action:hover .icon-disc{filter:brightness(1.08)}.touch-hint{font:9px var(--sans);letter-spacing:.3px;color:#758597;margin-top:23px}.script-title{font:58px/1.25 var(--script);color:var(--gold);margin-bottom:30px}.location{padding-top:66px;padding-bottom:56px;min-height:465px}.location .script-title{font-size:67px;margin-bottom:29px}.venue{font-size:23px;text-transform:uppercase;line-height:1.25;max-width:330px;margin:auto}.event-time{font-size:22px;margin-top:12px;color:var(--gold)}address{font-size:21px;font-style:normal;line-height:1.3;max-width:320px;margin:16px auto 0;white-space:pre-line}.venue-detail{font-size:18px;color:#65758a;margin-top:14px;line-height:1.25}.location-actions{margin-top:23px;display:flex;align-items:center;flex-direction:column;gap:8px}.small-link{background:none;border:0;border-bottom:1px solid #8ba1b863;padding:10px 4px;font:12px var(--sans);min-height:40px}.floral-left:before,.floral-right:before{content:'';position:absolute;width:205px;height:205px;background:var(--flowers, url('assets/guirlanda-azul.webp')) center/contain no-repeat;pointer-events:none;opacity:.78;z-index:0}.floral-left:before{left:-127px;top:-15px;transform:rotate(30deg)}.floral-right:before{right:-126px;top:0;transform:rotate(20deg)}.paper-section>p,.paper-section>h2,.paper-section>h3,.paper-section>div,.paper-section>button{position:relative}.gifts{padding-top:65px;padding-bottom:35px}.gifts h3{font-size:25px;line-height:1.3;margin:0 auto 22px;max-width:320px}.gifts>p{font-size:22px;margin:0 auto 25px;max-width:345px}.gifts .icon-action{margin:4px auto}.dress{padding-top:45px;padding-bottom:20px}.dress .script-title{font-size:46px;margin-bottom:15px}.dress-type{font-size:20px;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:17px}.dress>p:last-child{font-size:20px;max-width:330px;margin:auto;color:#56697f}.countdown-section{padding-top:55px;padding-bottom:50px}.countdown-section .script-title{font-size:46px;margin-bottom:30px}.countdown{display:flex;justify-content:center;gap:24px}.countdown>div{min-width:46px}.countdown strong{display:block;font-size:35px;font-weight:400;color:var(--gold);line-height:1.1}.countdown span{font-size:17px}.countdown-section>p{font-size:18px;margin-top:18px}.countdown-section>p:empty{display:none}.gallery{padding-top:0;text-align:center;position:relative}.gallery .script-title{margin:0 auto -13px;font-size:67px;position:relative;z-index:1}.gallery-grid{display:flex;flex-direction:column;gap:20px}.gallery-grid figure{margin:0}.gallery-button{border:0;background:none;padding:0;width:100%;display:block}.gallery-button img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 35%;mask-image:linear-gradient(transparent,#000 13%,#000 87%,transparent)}.gallery-grid figcaption{font:30px var(--script);color:var(--gold);margin:5px auto 10px}.gallery-note{font:9px var(--sans);color:#758597;margin:5px 20px}.closing{padding:35px 30px 37px}.tiny-crest{width:84px;height:84px;margin:0 auto 17px}.closing>p{font-size:23px;font-style:italic}.closing .closing-names{font:35px/1.2 var(--script);margin-top:20px;font-style:normal}footer{text-align:center;padding:15px 20px 28px;border-top:1px solid #e7edf0;color:#66778c;font:10px/1.6 var(--sans)}footer p{margin:6px 0}footer .small-link{font-size:10px;margin-top:9px}.button{border:0;background:var(--blue);color:var(--paper);padding:14px 20px;border-radius:2px;font:13px var(--sans);min-height:48px}.pix-label{font-size:18px;margin-top:25px}.pix-key{font-size:20px;overflow-wrap:anywhere;margin-top:10px}.music-button{background:none;border:0;display:flex;align-items:center;justify-content:center;gap:9px;margin:0 auto 14px;font:12px var(--sans);padding:8px;min-height:44px}.music-button svg{width:22px;height:22px}.music-button[aria-pressed=true]{color:var(--gold)}
dialog{border:1px solid #d7e3ec;background:var(--paper);color:var(--blue);padding:40px 26px 30px;width:calc(100% - 32px);max-width:410px;max-height:90svh;overflow:auto;border-radius:3px;text-align:center;font:21px/1.35 var(--serif)}dialog::backdrop{background:#15283dd1;backdrop-filter:blur(3px)}dialog h2{font-weight:400;font-size:31px;margin:9px 0 18px}dialog h2.script-title{font-size:42px;line-height:1.2;margin:10px 0 16px}.dialog-close{position:absolute;right:4px;top:3px;border:0;background:none;width:44px;height:44px;font:28px var(--sans)}dialog pre{white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.6 var(--sans);text-align:left;background:#e9f0f5;padding:16px;margin:18px 0}dialog .button{margin-top:19px}.lightbox-image{display:block;max-height:60svh;object-fit:contain;margin:20px auto 0}#rsvp-form{text-align:left;margin-top:22px}#rsvp-form label{display:block;font:12px var(--sans);margin:17px 0 7px}#rsvp-form input,#rsvp-form select{width:100%;background:white;border:1px solid #bfcfdd;color:var(--blue);padding:12px 10px;border-radius:2px;font:16px var(--sans);min-height:46px}#rsvp-form .button{width:100%;margin-top:24px}.form-note{font:10px/1.6 var(--sans);margin-top:16px;color:#63768a}.noscript{position:fixed;bottom:0;left:0;right:0;padding:22px;background:#fff;z-index:20;text-align:center;font:16px var(--sans)}
@media(max-width:360px){.paper-section{padding-left:24px;padding-right:24px}.invitation-intro{padding-left:0;padding-right:0}.envelope-crest{width:61%;top:13%}.monogram{font-size:43px;letter-spacing:1px}.envelope-kicker{font-size:15px}.envelope-names{font-size:27px;top:48%}.opening-quote{font-size:20px;padding:0 24px}.invitation-message{font-size:23px;padding:0 24px}.invitation-message.secondary{font-size:21px}.date-month{font-size:70px}.weekday{font-size:16px}.weekday:before,.weekday:after{padding:0 6px}.quick-actions{gap:28px}.location .script-title{font-size:59px}.venue{font-size:21px}address{font-size:20px}.countdown-section .script-title{font-size:41px}.countdown{gap:17px}.countdown strong{font-size:32px}.script-title{font-size:53px}}
.envelope-names{top:44%}
@media(max-height:680px){.envelope-crest{width:45%;top:11%}.envelope-kicker{top:5%;font-size:15px}.envelope-names{top:38%;font-size:27px}.ribbon-band{top:59%}.ribbon-button{top:58%;width:85%}.open-instruction{bottom:6.5%;font-size:12px}.open-instruction svg{height:20px;margin-bottom:5px}.cover-demo{bottom:1.5%;font-size:8px}}
@media(min-width:700px){.envelope{min-height:700px}.envelope-crest{width:60%}.envelope-kicker{font-size:19px}.open-instruction{font-size:17px}.couple-names{font-size:89px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

[data-copy]{white-space:pre-line}
