@font-face{font-family:Editorial Serif;src:url('assets/fonts/CormorantGaramond-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
:root{--paper:#fff9f0;--blue:#244d40;--dusty:#b6c7ba;--gold:#efbfaa;--serif:'Editorial Serif',Georgia,serif;--script:'Editorial Serif',Georgia,serif;--sans:'Segoe UI',Arial,sans-serif;--ink:#33292b;--line:#244d4028}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#19372e;color:var(--blue);font:23px/1.4 var(--serif);-webkit-font-smoothing:antialiased}body.is-sealed{overflow:hidden}[hidden]{display:none!important}button,input,select,textarea{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,a:focus-visible,textarea:focus-visible{outline:3px solid var(--gold);outline-offset:5px}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 60px #0003;overflow:clip}svg{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
/* Carta em papel manteiga com bordas vinho; a abertura preserva o gesto de desatar o laço. */
.envelope{position:relative;height:100svh;min-height:460px;max-height:1100px;overflow:hidden;isolation:isolate;perspective:1000px;background:var(--blue)}.paper-back{position:absolute;inset:20px 18px;background:var(--paper);border:1px solid #efbfaa;box-shadow:0 8px 30px #22091055}.paper-back:after{content:'';position:absolute;inset:12px;border:1px solid var(--line)}.envelope-side{position:absolute;inset:20px 18px;background:var(--paper);filter:drop-shadow(0 0 3px #44172130)}.envelope-side.left{clip-path:polygon(0 0,53% 69%,0 100%);background:linear-gradient(115deg,#eadbbc,var(--paper) 60%)}.envelope-side.right{clip-path:polygon(100% 0,47% 69%,100% 100%);background:linear-gradient(-115deg,#eadbbc,var(--paper) 60%)}.envelope-flap{position:absolute;inset:20px 18px 31%;transform-origin:center top;clip-path:polygon(0 0,100% 0,50% 100%);background:linear-gradient(125deg,var(--paper),#f5e8cb);filter:drop-shadow(0 8px 5px #44172125);z-index:1;backface-visibility:hidden}.envelope-flap:after{content:'';position:absolute;inset:12px;border:1px solid var(--line)}.envelope-crest{position:absolute;width:63%;max-width:295px;top:12%;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:58px/1 var(--serif);letter-spacing:-4px;padding:0 0 10px}.monogram .monogram-divider{font-size:16px;color:var(--blue);padding:0 14px;font-style:normal;letter-spacing:0}.envelope-kicker{position:absolute;top:8%;width:100%;text-align:center;font:12px/1.4 var(--sans);letter-spacing:1.5px;text-transform:uppercase;z-index:3;color:var(--blue);padding:0 35px}.envelope-names{position:absolute;top:46%;left:35px;right:35px;text-align:center;font:31px/1.3 var(--serif);font-style:italic;z-index:3;color:var(--blue);border-top:1px solid var(--line);padding-top:18px}.ribbon-band{position:absolute;top:63%;height:27px;left:18px;right:18px;z-index:3;background:linear-gradient(var(--blue),#8b354c 40%,var(--blue));box-shadow:0 4px 7px #4a122333;transform:translateY(-50%)}.ribbon-button{position:absolute;z-index:4;left:50%;top:62%;width:88%;border:0;background:none;padding:0;transform:translate(-50%,-31%);filter:drop-shadow(0 7px 6px #441a2c40)}.ribbon-button img{width:100%;max-height:35svh;object-fit:contain}.ribbon-button:hover{filter:drop-shadow(0 9px 9px #441a2c50) brightness(1.04)}.ribbon-button:focus-visible{outline-color:var(--blue);outline-offset:3px}.open-instruction{position:absolute;z-index:5;bottom:8%;width:100%;text-align:center;font:13px/1.5 var(--sans);letter-spacing:1px;text-transform:uppercase;pointer-events:none;color:var(--blue)}.open-instruction svg{width:23px;height:26px;margin:0 auto 8px;display:block}.cover-demo{position:absolute;bottom:3.5%;left:0;right:0;text-align:center;font:12px var(--sans);color:#6f4a50}.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}}
/* Tipografia editorial, retrato em preto e branco e seções com blocos de tinta. */
main{background:var(--paper)}.paper-section{position:relative;text-align:center;padding:52px 30px}.invitation-intro{padding:32px 0 38px}.crest{position:relative;width:135px;height:135px;margin:auto}.crest img{width:100%}.crest .monogram{font-size:36px;letter-spacing:-2px;padding-bottom:7px}.crest .monogram-divider{font-size:12px;padding:0 9px}.opening-quote{font-size:22px;line-height:1.4;max-width:360px;padding:0 22px;margin:24px auto 32px;font-style:italic}.portrait-wrap{display:flex;flex-direction:column-reverse;position:relative;margin:0 26px;overflow:hidden}.portrait{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 35%;border-radius:200px 200px 0 0}.couple-names{position:static;color:var(--blue);text-align:center;font:clamp(54px,16vw,75px)/1 var(--serif);letter-spacing:-2px;overflow-wrap:anywhere;padding:0 4px 26px}.couple-names span{display:block}.couple-names em{font:29px/1.4 var(--serif);display:block;margin:2px 0;font-style:italic;letter-spacing:0}.invitation-message{font-size:25px;line-height:1.35;padding:0 30px;max-width:460px;margin:30px auto 0}.invitation-message.secondary{font-size:22px;margin:19px auto 0;max-width:390px;color:#526b5c}.wedding-date{display:grid;grid-template-columns:1fr 1fr;gap:0 15px;margin:0 26px;padding:35px 0 40px;border-top:1px solid var(--blue);border-bottom:1px solid var(--blue);align-items:center}.date-day{grid-column:1;grid-row:1/3;font-size:144px;line-height:1;letter-spacing:-6px;border-right:1px solid var(--line);padding-right:16px}.date-month{grid-column:2;grid-row:1;font:38px/1.1 var(--serif);text-align:left;text-transform:capitalize;align-self:end;padding-bottom:4px}.date-year{grid-column:2;grid-row:2;font:34px/1.15 var(--serif);font-style:italic;text-align:left;align-self:start}.weekday,.city,.quick-actions,.touch-hint{grid-column:1/-1}.weekday{font:14px/1.5 var(--sans);letter-spacing:1px;text-transform:uppercase;margin-top:24px}.city{font:12px/1.5 var(--sans);letter-spacing:1px;text-transform:uppercase;margin-top:9px;color:#526b5c}.quick-actions{display:flex;gap:24px;justify-content:center;margin:27px auto 0}.icon-action{display:inline-flex;align-items:center;flex-direction:column;border:0;background:none;gap:12px;padding:8px 4px;font:14px/1.3 var(--sans);min-width:100px;max-width:170px}.icon-disc{display:grid;place-items:center;width:68px;height:68px;border-radius:0;color:var(--blue);background:transparent;border:1px solid currentColor}.icon-disc svg{width:30px;height:30px;stroke-width:1.4}.icon-action:hover .icon-disc{background:var(--blue);color:var(--paper)}.touch-hint{font:12px/1.4 var(--sans);color:#526b5c;margin-top:22px}.script-title{font:46px/1.1 var(--serif);font-style:italic;color:var(--blue);margin-bottom:25px}.location{padding:52px 30px;min-height:0;text-align:left}.location+.location{border-top:1px solid var(--line)}.location .script-title{font:14px/1.5 var(--sans);text-transform:uppercase;letter-spacing:2px;margin-bottom:23px}.venue{font:35px/1.1 var(--serif);max-width:355px}.event-time{font:19px/1.4 var(--sans);margin-top:19px}.location address{font:22px/1.35 var(--serif);margin:15px 0 0;font-style:normal;white-space:pre-line}.venue-detail{font-size:21px;color:#526b5c;margin-top:13px;line-height:1.3}.location-actions{margin-top:25px;display:flex;align-items:center;gap:18px}.location-actions .icon-action{align-items:flex-start;max-width:160px;min-width:0}.small-link{background:none;border:0;border-bottom:1px solid currentColor;padding:11px 2px;font:14px/1.35 var(--sans);min-height:44px}.gifts{background:var(--blue);color:var(--paper);padding:48px 30px}.gifts .script-title{color:var(--gold);font-size:51px}.gifts h3{font-size:29px;line-height:1.2;margin:0 auto 22px;max-width:330px}.gifts>p{font-size:22px;margin:0 auto 23px;max-width:345px}.gifts .icon-action{margin:4px auto}.gifts .icon-disc{color:var(--paper);border-color:var(--gold)}.gifts .icon-action:hover .icon-disc{background:var(--gold);color:var(--blue)}.dress{background:var(--gold);color:var(--blue);padding:42px 30px}.dress .script-title{font-size:39px;margin-bottom:18px}.dress-type{font:14px/1.5 var(--sans);letter-spacing:1px;text-transform:uppercase;margin-bottom:17px}.dress>p:last-child{font-size:22px;max-width:330px;margin:auto}.countdown-section{padding:44px 24px}.countdown-section .script-title{font-size:36px;margin-bottom:27px}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.countdown>div{border-top:1px solid var(--blue);padding-top:15px;min-width:0}.countdown strong{display:block;font-size:39px;font-weight:400;line-height:1.1}.countdown span{font:12px/1.4 var(--sans);text-transform:uppercase;letter-spacing:.5px}.countdown-section>p{font-size:20px;margin-top:18px}.countdown-section>p:empty{display:none}.gallery{padding:24px 26px 30px;text-align:center}.gallery .script-title{font-size:45px;margin-bottom:24px}.gallery-grid{display:flex;flex-direction:column;gap:24px}.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%}.gallery-grid figcaption{font:24px/1.3 var(--serif);font-style:italic;margin:18px auto 5px}.gallery-note{font:12px/1.4 var(--sans);color:#526b5c;margin:12px 0}.closing{padding:30px 30px 37px}.tiny-crest{width:90px;height:90px;margin:0 auto 18px}.closing>p{font-size:24px;font-style:italic}.closing .closing-names{font:32px/1.2 var(--serif);margin-top:20px}footer{text-align:center;padding:23px 22px 30px;background:var(--blue);color:var(--paper);font:12px/1.6 var(--sans)}footer p{margin:6px 0}footer .small-link{font-size:12px;margin-top:12px}.button{border:1px solid var(--blue);background:var(--blue);color:var(--paper);padding:14px 19px;border-radius:0;font:14px/1.4 var(--sans);min-height:48px}.music-button{background:none;border:0;display:flex;align-items:center;justify-content:center;gap:9px;margin:0 auto 22px;font:14px var(--sans);padding:8px;min-height:44px}.music-button svg{width:22px;height:22px}.music-button[aria-pressed=true]{color:var(--dusty)}
dialog{border:1px solid var(--blue);background:var(--paper);color:var(--blue);padding:40px 24px 28px;width:calc(100% - 32px);max-width:410px;max-height:90svh;overflow:auto;border-radius:0;text-align:center;font:23px/1.35 var(--serif)}dialog::backdrop{background:#32131dcc;backdrop-filter:blur(3px)}dialog h2{font-weight:400;font-size:32px;margin:10px 0 18px}dialog h2.script-title{font-size:36px;line-height:1.15;margin:10px 0 18px}.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:14px/1.6 var(--sans);text-align:left;background:#eadbbc;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:14px var(--sans);margin:17px 0 7px}#rsvp-form input,#rsvp-form select{width:100%;background:var(--paper);border:1px solid var(--blue);color:var(--blue);padding:12px 10px;border-radius:0;font:16px var(--sans);min-height:46px}.form-note{font:12px/1.6 var(--sans);margin-top:17px}.noscript{position:fixed;bottom:0;left:0;right:0;padding:22px;background:var(--paper);z-index:20;text-align:center;font:16px var(--sans)}[data-copy]{white-space:pre-line}
@media(max-width:360px){.paper-section{padding-left:23px;padding-right:23px}.invitation-intro{padding-left:0;padding-right:0}.envelope-kicker{font-size:12px;letter-spacing:.8px}.envelope-crest{top:15%;width:65%}.envelope-names{font-size:27px;top:44%}.couple-names{font-size:57px}.portrait-wrap{margin:0 20px}.date-day{font-size:124px}.date-month{font-size:31px}.date-year{font-size:29px}.weekday{font-size:13px;letter-spacing:0}.quick-actions{gap:17px}.venue{font-size:32px}.location-actions{gap:12px}.location-actions .icon-action{font-size:13px}.countdown strong{font-size:33px}.script-title{font-size:40px}.countdown-section .script-title{font-size:32px}}
@media(max-height:680px){.envelope-crest{width:48%;top:10%}.envelope-kicker{top:6%;font-size:12px}.envelope-names{top:39%;font-size:26px;padding-top:12px}.ribbon-band{top:61%}.ribbon-button{top:60%;width:82%}.ribbon-button img{max-height:33svh}.open-instruction{bottom:8%;font-size:12px}.open-instruction svg{height:20px;margin-bottom:5px}.cover-demo{bottom:4%;font-size:11px}}
@media(min-width:700px){.envelope-crest{width:61%}.couple-names{font-size:78px}}
.couple-names:focus{outline:none}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

@font-face{font-family:Jardim Script;src:url('assets/fonts/GreatVibes-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
:root{--script:'Jardim Script',cursive;--ink:#244d40;--line:#244d4028}
.envelope-names{background:var(--paper);border-radius:28px;padding:9px 20px!important;width:max-content;max-width:calc(100% - 42px);left:50%!important;right:auto!important;transform:translateX(-50%);box-shadow:0 3px 8px #173b2817}
body{background:#19372e}.envelope{background:var(--blue)}.paper-back{inset:0;border:0;background:var(--blue);box-shadow:none}.paper-back:after{inset:0;border:0;background:var(--flowers) center 95%/140% no-repeat;opacity:.13}.envelope-side{inset:0;background:linear-gradient(135deg,#244d40,#315f4f);filter:drop-shadow(0 0 3px #10291c40)}.envelope-side.left{background:linear-gradient(115deg,#244d40,#315f4f)}.envelope-side.right{background:linear-gradient(-115deg,#244d40,#315f4f)}.envelope-flap{inset:0 0 30%;background:linear-gradient(110deg,#fff9f0,#f8ebdf);filter:drop-shadow(0 9px 7px #102b1f55)}.envelope-flap:after{inset:14px;border:0}.envelope-crest{width:65%;max-width:305px;top:11%}.envelope-kicker{top:7%;font-size:12px;letter-spacing:1px;color:var(--blue)}.envelope-names{top:44%;font:38px/1.2 var(--script);border:0;padding:0}.ribbon-band{left:0;right:0;background:linear-gradient(#dba18b,#f0c4b1 40%,#dba18b);height:23px;box-shadow:0 4px 9px #0e302355;top:62%}.ribbon-button{top:61%;width:88%}.ribbon-button img{max-height:36svh}.open-instruction{color:var(--paper);bottom:7%}.open-instruction svg{color:var(--gold)}.cover-demo{color:var(--paper);bottom:2.3%;font-size:11px}.monogram{font-size:54px;letter-spacing:1px;padding-bottom:0}.monogram .monogram-divider{font-size:15px;color:var(--blue);padding:0 12px}
.invitation-intro{padding:31px 0 35px;background:radial-gradient(ellipse at 100% 25%,#b6c7ba3b,transparent 60%),var(--paper)}.crest{width:150px;height:150px}.crest .monogram{font-size:33px;padding:0;letter-spacing:1px}.opening-quote{font:22px/1.4 var(--serif);font-style:normal;margin:23px auto 28px}.portrait-wrap{display:flex;flex-direction:column;margin:0 22px;overflow:visible;align-items:center}.portrait{width:100%;aspect-ratio:1;object-fit:cover;object-position:center 34%;border-radius:50%;border:7px solid var(--paper);outline:1px solid var(--dusty)}.couple-names{position:static;margin-top:27px;padding:0 12px;font:clamp(56px,17vw,77px)/1.05 var(--script);letter-spacing:0}.couple-names span{display:block}.couple-names em{font:30px/1.3 var(--serif);font-style:italic;margin:5px 0}.invitation-message{font-size:24px;margin-top:28px}.invitation-message.secondary{color:#526b5c;font-size:21px}.wedding-date{display:block;margin:0;padding:37px 25px 43px;background:var(--blue);color:var(--paper);border:0;border-radius:110px 110px 0 0}.date-day{grid-column:auto;border:1px solid var(--dusty);border-radius:50%;width:128px;height:128px;display:grid;place-items:center;margin:0 auto 18px;padding:0;line-height:1;font-size:95px;letter-spacing:-3px;color:var(--gold)}.date-month{text-align:center;padding:0;font:52px/1.1 var(--script);text-transform:none}.date-year{text-align:center;font:26px/1.3 var(--serif);margin-top:11px}.weekday{font-size:14px;margin-top:23px}.city{color:var(--paper);font-size:12px}.quick-actions{gap:32px;margin-top:24px}.icon-disc{width:66px;height:66px;border-radius:50%;border-color:var(--dusty);color:inherit;background:transparent}.wedding-date .icon-disc{color:var(--paper)}.icon-action:hover .icon-disc{background:var(--gold);color:var(--blue)}.touch-hint{color:var(--paper);opacity:.8}.script-title{font:51px/1.15 var(--script);color:var(--blue);font-style:normal}.location{text-align:center;padding:42px 28px;position:relative}.location .script-title{font:48px/1.1 var(--script);text-transform:none;letter-spacing:0;margin:0 0 24px}.venue{font:29px/1.2 var(--serif);max-width:340px;margin:auto}.event-time{color:#526b5c;font-size:16px}.location address{font-size:21px;max-width:340px;margin:17px auto 0}.venue-detail{font-size:20px;color:#526b5c}.location-actions{flex-direction:column;gap:10px;margin-top:20px}.location-actions .icon-action{align-items:center;max-width:180px}.small-link{font-size:13px}.gifts{background:#eaf0e9;color:var(--blue);border-radius:100px 100px 0 0;padding:46px 29px 36px}.gifts .script-title{color:var(--blue);font-size:54px}.gifts h3{font-size:26px}.gifts>p{font-size:22px}.gifts .icon-disc{color:var(--blue);border-color:var(--blue)}.dress{background:var(--gold);padding:37px 27px}.dress .script-title{font:43px/1.15 var(--script)}.dress-type{font-size:13px}.dress>p:last-child{font-size:21px}.countdown-section{padding:38px 25px 43px}.countdown-section .script-title{font:43px/1.1 var(--script);margin-bottom:25px}.countdown{gap:7px}.countdown>div{border:0;background:#eaf0e9;border-radius:40px 40px 12px 12px;padding:18px 0 15px}.countdown strong{font-size:38px}.countdown span{font-size:11px;letter-spacing:0}.gallery{padding:15px 22px 27px}.gallery .script-title{font:58px/1.1 var(--script);margin-bottom:27px}.gallery-button img{border-radius:16px;aspect-ratio:4/5}.gallery-grid figcaption{font:31px/1.3 var(--script);font-style:normal}.gallery-note{color:#526b5c}.closing .closing-names{font:39px/1.2 var(--script)}.button{border-radius:28px;padding:13px 20px}.music-button{font-size:13px}dialog{border-radius:24px;border:1px solid var(--blue)}dialog::backdrop{background:#153025cc}dialog h2.script-title{font:42px/1.15 var(--script)}dialog pre{background:#eaf0e9;border-radius:10px}#rsvp-form input,#rsvp-form select{border-radius:8px;background:var(--paper)}
@media(max-width:360px){.envelope-crest{top:14%;width:65%}.envelope-names{top:43%;font-size:33px}.couple-names{font-size:59px}.portrait-wrap{margin:0 22px}.date-month{font-size:47px}.date-day{font-size:89px}.venue{font-size:27px}.location .script-title{font-size:44px}.location-actions .icon-action{font-size:14px}.countdown strong{font-size:32px}.countdown-section .script-title{font-size:37px}.gifts .script-title{font-size:49px}}
@media(max-height:680px){.envelope-crest{width:48%;top:10%}.envelope-kicker{top:5%;font-size:12px}.envelope-names{top:40%;font-size:30px;padding:0}.ribbon-button{top:60%;width:82%}.ribbon-band{top:61%}.open-instruction{bottom:6%;font-size:12px}.cover-demo{bottom:2%;font-size:10px}}
