:root{--olive:#505f32;--olive-dark:#354326;--olive-soft:#79835a;--cream:#f8f6ef;--ivory:#f0ead8;--white:#fffefa;--ink:#3c4630;--muted:#777866;--line:#e3e2d6;--radius:3px;--sans:'Cormorant',Georgia,serif;--serif:'Cormorant',Georgia,serif;--script:'Cormorant',Georgia,serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.63;-webkit-font-smoothing:antialiased}img,svg{max-width:100%}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #bdab75;outline-offset:3px}h1,h2,h3,p{margin-top:0}h2{font:400 clamp(33px,3.8vw,51px)/1.2 var(--serif);letter-spacing:-.035em;margin-bottom:22px}h2 em{color:var(--olive-soft);font-style:italic}h3{font-family:var(--serif)}.shell{max-width:1160px;margin-inline:auto;padding-inline:30px}.section{padding-block:110px}.eyebrow{font-size:10px;letter-spacing:.29em;font-weight:700;color:var(--ivory);line-height:1.8}.eyebrow.olive{color:var(--olive-soft)}.hidden{display:none!important}.skip{position:absolute;top:-60px;left:8px;background:#fff;padding:10px;z-index:100}.skip:focus{top:6px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:15px;min-height:54px;padding:13px 23px;border:1px solid transparent;border-radius:2px;font-size:11px;letter-spacing:.06em;font-weight:700;text-decoration:none;transition:transform .2s ease,background .2s ease,color .2s ease;line-height:1.3}.btn:hover{transform:translateY(-2px)}.btn-light{background:var(--ivory);color:var(--olive-dark)}.btn-light:hover{background:#fff}.btn-ghost{border-color:#dddac4a8;color:var(--ivory);background:#ffffff08}.btn-ghost:hover{background:#ffffff16}.btn-dark{background:var(--olive);color:white}.btn-dark:hover{background:var(--olive-dark)}.btn-outline{border-color:var(--olive);color:var(--olive)}.btn-outline:hover{background:var(--olive);color:white}.full{width:100%}
.site-header{height:76px;background:var(--olive-dark);color:var(--ivory);position:relative;z-index:5}.nav{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font:italic 32px/.8 var(--serif);text-decoration:none;white-space:nowrap;letter-spacing:-.11em}.brand span{font-size:18px;padding-inline:4px;letter-spacing:0}.nav-links{display:flex;align-items:center;gap:34px}.nav-links a{font-size:11px;text-decoration:none;letter-spacing:.06em;color:#f3eddcbd;transition:color .2s}.nav-links a:hover{color:white}.nav-cta{font-size:10px;text-transform:uppercase;letter-spacing:.1em;text-decoration:none;border-bottom:1px solid #e1d7b8;padding:8px 0;white-space:nowrap}.nav-cta span{padding-left:8px}
.hero{min-height:780px;height:min(865px,calc(100svh - 76px));position:relative;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 70% 10%,#718044 0,transparent 48%),radial-gradient(circle at 7% 74%,#677440 0,transparent 40%),linear-gradient(125deg,#53663a,#4b5b31 45%,#384827);color:var(--ivory);text-align:center;overflow:hidden;isolation:isolate}.hero:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(83deg,transparent 0 3px,#fff1 3.5px 4px);opacity:.17;z-index:-1}.hero-frame{position:absolute;inset:28px;border:1px solid #efead02f;pointer-events:none}.hero-rose{position:absolute;width:470px;height:590px;top:7%;left:calc(50% - 235px);opacity:.13;pointer-events:none}.hero-content{position:relative;padding-top:15px;padding-bottom:20px;z-index:1}.hero-eyebrow{font-size:11px;margin-bottom:7px}.hero-pretitle{font-family:var(--serif);font-style:italic;font-size:22px;letter-spacing:.17em;margin:0 0 -18px;color:#f2eddbb5}.hero h1{font:400 clamp(84px,12vw,160px)/1.2 var(--script);margin:0;text-shadow:0 1px 9px #2a391521;letter-spacing:.025em}.hero-and{font-size:.55em;vertical-align:.07em;margin:0 -.07em}.hero-divider{display:flex;align-items:center;justify-content:center;gap:15px;margin:-4px auto 22px;color:#ebdec4b8}.hero-divider>span:not(.diamond){width:70px;height:1px;background:#d9d3b491}.hero-divider .diamond{font-size:19px}.hero-description{font:400 clamp(17px,2vw,23px)/1.75 var(--serif);margin-bottom:30px;color:#fff4e4d6}.hero-date{font:400 clamp(28px,3.8vw,44px)/1.2 var(--serif);letter-spacing:.08em;margin-bottom:4px}.hero-date span{font-size:.49em;vertical-align:.21em}.hero-time{font-size:13px;letter-spacing:.23em;margin-bottom:40px}.hero-buttons{display:flex;justify-content:center;flex-wrap:wrap;gap:13px}.hero-scroll{position:absolute;bottom:44px;left:0;right:0;font-size:9px;letter-spacing:.22em;color:#efe8d7ba}.hero-scroll span{padding-left:8px;font-size:18px;vertical-align:-2px}
.intro{display:grid;grid-template-columns:45% 55%;align-items:center;gap:25px}.intro-art{height:355px;border:1px solid #ddddca;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle at center,#fffdf4,#f4f2e9);position:relative;overflow:hidden}.intro-art:before,.intro-art:after{content:"";position:absolute;border:1px solid #bcbca5;border-radius:50%;width:350px;height:350px;opacity:.4}.intro-art:before{transform:translate(-75px,-90px)}.intro-art:after{transform:translate(115px,115px)}.intro-symbol{font:400 53px var(--script);color:var(--olive);z-index:1}.intro-symbol i{font:italic 28px var(--serif);padding:0 7px}.small-rule{width:55px;height:1px;background:#aeb392;margin:25px 0 15px;z-index:1}.intro-date{font:12px var(--serif);letter-spacing:.18em;color:var(--olive-soft);z-index:1}.intro-text{padding:30px clamp(20px,5vw,75px)}.intro-text p:not(.eyebrow):not(.handwritten){color:var(--muted);font-size:14px;line-height:2}.handwritten{font:32px var(--script);color:var(--olive);margin:20px 0 0}.countdown-wrap{background:#eaece1;border-block:1px solid #e2e4d8}.countdown-inner{min-height:208px;display:flex;align-items:center;justify-content:space-between;gap:35px}.countdown-inner h2{font-size:clamp(26px,3vw,37px);margin:7px 0 0}.countdown{display:flex;align-items:center;gap:9px}.countdown>div{min-width:74px;text-align:center}.countdown strong{font:400 clamp(26px,3.3vw,43px)/1.2 var(--serif);display:block;font-variant-numeric:tabular-nums}.countdown span{font-size:9px;letter-spacing:.15em;color:var(--muted)}.countdown b{font:24px var(--serif);opacity:.4;margin-top:-23px}
.centered{text-align:center}.section-heading{max-width:640px;margin:0 auto 50px}.section-heading p:last-child{color:var(--muted);font-size:14px}.event-grid{display:grid;grid-template-columns:1fr 1fr;gap:27px}.event-card{text-align:center;padding:46px 26px 44px;border:1px solid #dde0cd;background:#fffef9;position:relative;display:flex;flex-direction:column;align-items:center;min-height:415px}.event-card:after{content:"";position:absolute;inset:9px;border:1px solid #d7dacc78;pointer-events:none}.event-icon{color:#7b865c;height:66px}.event-number{font-size:10px;letter-spacing:.2em;color:var(--olive-soft);font-weight:700;margin:0 0 13px}.event-card h3{font:400 clamp(22px,2.4vw,29px)/1.4 var(--serif);margin:0 0 16px;min-height:82px}.event-time{font-weight:700;font-size:12px;color:var(--olive);margin-bottom:9px}.event-address{color:var(--muted);font-size:12px;margin-bottom:21px}.text-link{border:0;background:none;color:var(--olive);font-size:11px;font-weight:700;text-decoration:none;border-bottom:1px solid currentColor;padding:0 0 5px;letter-spacing:.04em;display:inline-flex;align-items:center;gap:10px}.text-link:hover{color:#8b9968}.event-card .text-link{margin-top:auto}
.rsvp-section{background:linear-gradient(115deg,#46552f,#5e6d3d 65%,#44532e);color:var(--ivory);position:relative}.rsvp-section:before{content:"";position:absolute;inset:0;background-image:url('/assets/rose.svg');background-size:550px;background-repeat:no-repeat;background-position:6% 48%;opacity:.06;pointer-events:none}.rsvp-grid{position:relative;display:grid;grid-template-columns:.91fr 1.09fr;gap:8%;align-items:start}.rsvp-intro{padding:75px 0 0}.rsvp-intro h2{font-size:clamp(39px,4.5vw,62px);line-height:1.25;margin:22px 0 27px;color:#fff8e6}.rsvp-intro h2 em{color:#e7d8ae}.rsvp-intro>p:not(.eyebrow){max-width:390px;font-size:14px;line-height:2;color:#e9eadcde}.rsvp-ornament{font:30px var(--script);letter-spacing:.1em;opacity:.55;margin-top:50px}.form-card{background:var(--white);padding:40px;color:var(--ink);box-shadow:0 25px 60px #27331f20}.card-kicker{font-size:10px;font-weight:700;letter-spacing:.21em;color:var(--olive-soft);margin-bottom:9px}.form-card h3{font:400 29px/1.4 var(--serif);margin-bottom:30px}.field{margin:0 0 19px;border:0;padding:0;min-width:0}.field label,.field legend{display:block;font-weight:700;font-size:12px;margin-bottom:8px}.field label span,.field legend span,.required{color:#b26b5f}.field label small{font-weight:400;color:var(--muted)}.field>input:not([type=checkbox]),.field select,.field textarea{width:100%;border:1px solid #dbded2;background:#fbfbf6;color:var(--ink);border-radius:2px;padding:12px 14px;font-size:13px;min-height:46px;outline-offset:1px}.field textarea{resize:vertical;min-height:90px}.field input::placeholder,.field textarea::placeholder{color:#a7ab9e}.field>input:focus,.field select:focus,.field textarea:focus{border-color:#899670}.helper{display:block;font-size:11px;line-height:1.6;color:#8a8f81;margin-top:6px}.radio-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.radio-option{display:flex;align-items:center;gap:12px;padding:13px 12px;border:1px solid #daddd1;cursor:pointer;min-height:70px;font-size:12px}.radio-option:has(input:checked){border-color:var(--olive);background:#f2f5e9}.radio-option input{accent-color:var(--olive)}.radio-option strong{display:block;line-height:1.4;font-size:12px}.radio-option small{display:block;font-size:10px;color:var(--muted);line-height:1.5;padding-top:3px}.companions-fields{margin-bottom:4px}.edit-toggle{font-size:12px;margin:8px 0 14px}.edit-toggle input,.privacy-check input{accent-color:var(--olive)}.privacy-check{display:flex;gap:10px;align-items:flex-start;font-size:11px;color:#757b70;line-height:1.6;margin:16px 0 20px;cursor:pointer}.privacy-check input{margin-top:3px;flex-shrink:0}.form-status{font-size:12px;line-height:1.6;margin:0 0 12px;min-height:0}.form-status:not(:empty){padding:10px 12px;background:#fff4e8;color:#8a4e26}.form-status.ok{background:#e7f1e5;color:#365c39}.form-note{font-size:10px;color:#8e9289;text-align:center;margin:14px 0 0}.honeypot{position:absolute!important;left:-9999px!important;opacity:0;pointer-events:none}.success{text-align:center;padding:15px 0}.success-icon{display:grid;place-items:center;margin:0 auto 23px;width:66px;height:66px;border-radius:50%;background:#eaf0e2;color:var(--olive);font-size:35px}.success h3{margin-bottom:12px}.success>p:not(.card-kicker){font-size:14px;color:var(--muted)}.confirmation-code{background:#f4f5ed;padding:19px 10px;margin:25px 0;display:flex;flex-direction:column;align-items:center;gap:12px}.confirmation-code span{font-size:9px;letter-spacing:.12em}.confirmation-code strong{font-size:16px;letter-spacing:.15em;overflow-wrap:anywhere}
.gifts{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:center}.gifts-left{max-width:465px}.gifts-left h2{font-size:clamp(40px,4.2vw,58px)}.gifts-left>p:not(.eyebrow){font-size:14px;color:var(--muted);line-height:2}.gift-note{border-top:1px solid #d9dccc;margin-top:32px;padding-top:24px;display:flex;align-items:center;gap:17px}.gift-note>span{font-size:35px;color:var(--olive-soft)}.gift-note p{font:25px var(--script);color:var(--olive);margin:0}.pix-card{border:1px solid #e2e4d8;background:#fffefa;box-shadow:0 18px 35px #1d2e1209;padding:29px 33px 31px;text-align:center;max-width:465px;width:100%;margin-left:auto}.pix-card-header{display:flex;align-items:center;gap:15px;text-align:left;border-bottom:1px solid #e8e8db;padding-bottom:18px;margin-bottom:16px}.pix-card-header .pix-mark{font-size:33px;color:var(--olive-soft)}.pix-card-header p{font-size:9px;font-weight:700;letter-spacing:.17em;color:var(--olive-soft);margin:0}.pix-card-header h3{font:400 20px var(--serif);margin:0}.qr-image{display:block;width:235px;height:235px;object-fit:contain;margin:0 auto;image-rendering:auto}.qr-hint{font-size:11px;color:var(--muted);margin:4px 0 23px}.pix-label{display:block;text-align:left;font-size:9px;color:var(--olive-soft);letter-spacing:.16em;font-weight:700;margin-bottom:6px}.pix-key-box{border:1px solid #dcded1;display:flex;align-items:center;text-align:left;margin-bottom:11px;background:#fafbf6}.pix-key-box input{width:100%;min-width:0;border:0;background:transparent;font-size:12px;padding:14px 10px;color:var(--ink)}.pix-key-box button{border:0;border-left:1px solid #dedfd7;background:none;padding:13px;font-size:11px;color:var(--olive);font-weight:700}.pix-card .btn{min-height:45px}.copy-feedback{min-height:18px;color:var(--olive);font-size:11px;margin-top:6px}.pix-disclaimer{font-size:10px;color:#8e9288;margin:5px 0 0}.invite-strip{background:#e9eadf;border-block:1px solid #e0e3d5}.invite-strip-inner{display:flex;gap:25px;align-items:center;justify-content:space-between;padding-block:60px}.invite-strip h2{font-size:33px;margin:8px 0}.invite-strip p:last-child{font-size:13px;color:var(--muted);margin:0}.footer{text-align:center;background:var(--olive-dark);color:var(--ivory);padding:48px 25px 34px}.footer-monogram{font:47px var(--script);margin-bottom:13px}.footer-monogram span{font:italic 22px var(--serif)}.footer>p:not(.footer-monogram){font-size:10px;letter-spacing:.1em;color:#eee9d3c6;margin:5px 0}.footer-top{display:inline-block;text-decoration:none;border-bottom:1px solid #e5dec1a1;margin-top:27px;font-size:10px;letter-spacing:.13em}
@media(max-width:900px){.shell{padding-inline:25px}.nav-links{gap:18px}.nav-cta{display:none}.hero{min-height:720px}.intro{grid-template-columns:40% 60%}.intro-text{padding:20px}.intro-art{height:300px}.countdown-inner{align-items:flex-start;flex-direction:column;justify-content:center;padding-block:33px}.rsvp-grid{gap:35px;grid-template-columns:.85fr 1.15fr}.rsvp-intro h2{font-size:39px}.form-card{padding:26px}.gifts{gap:5%}.pix-card{padding:26px}}
@media(max-width:670px){.shell{padding-inline:20px}.section{padding-block:71px}.site-header{height:64px}.brand{font-size:27px}.nav{gap:14px}.nav-links{gap:14px}.nav-links a{font-size:10px}.hero{height:auto;min-height:690px;padding-block:80px 95px}.hero-frame{inset:14px}.hero-rose{width:370px;left:calc(50% - 185px);top:13%;opacity:.12}.hero-eyebrow{font-size:9px;line-height:2.1;max-width:290px;margin-inline:auto}.hero-pretitle{font-size:17px;margin:13px 0 -6px}.hero h1{font-size:clamp(65px,13vw,105px);line-height:1.38}.hero-divider{margin:-8px auto 16px}.hero-description{font-size:17px;margin-bottom:27px}.desktop-only{display:none}.hero-date{font-size:31px}.hero-date span{font-size:.43em}.hero-time{font-size:11px;margin-bottom:29px}.hero-buttons{flex-direction:column;align-items:stretch;max-width:320px;margin-inline:auto}.hero-scroll{bottom:28px}.intro{grid-template-columns:1fr;gap:25px}.intro-art{height:250px}.intro-text{padding:8px 3px}.intro-text h2{font-size:38px}.countdown-inner{gap:21px}.countdown-inner h2{font-size:31px}.countdown{gap:5px;width:100%;justify-content:center}.countdown>div{min-width:57px}.countdown strong{font-size:34px}.countdown span{font-size:8px}.event-grid{grid-template-columns:1fr;gap:16px}.event-card{min-height:375px}.event-card h3{min-height:0}.rsvp-grid{grid-template-columns:1fr}.rsvp-intro{padding:0}.rsvp-intro h2{font-size:41px}.rsvp-ornament{display:none}.form-card{padding:25px 22px}.radio-grid{gap:8px}.radio-option{padding:10px 7px;gap:7px}.radio-option strong{font-size:11px}.radio-option small{font-size:9px}.gifts{grid-template-columns:1fr;gap:30px}.gifts-left h2{font-size:41px}.pix-card{max-width:none}.invite-strip-inner{align-items:flex-start;flex-direction:column;padding-block:47px}.invite-strip h2{font-size:29px}}
@media(max-width:365px){.nav-links{gap:9px}.nav-links a{font-size:9px}.hero h1{font-size:65px}.countdown>div{min-width:48px}.countdown strong{font-size:29px}.countdown span{font-size:7px}.form-card{padding:22px 17px}.radio-option{min-height:84px}.qr-image{width:210px;height:210px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn{transition:none}}


/* ------------------------------------------------------------
   Movimento do convite — discreto, progressivo e acessível.
   Os componentes seguem visíveis quando JavaScript está desligado.
   ------------------------------------------------------------ */
@keyframes wedding-rise {
  from { opacity: 0; transform: translate3d(0, 26px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}
@keyframes wedding-blossom {
  from { opacity: 0; transform: translate3d(0, 16px, 0) scale(.965); }
  to { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
}
@keyframes wedding-rose-drift {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(-1deg); }
  50% { transform: translate3d(0, -16px, 0) rotate(1deg); }
}
@keyframes wedding-shimmer {
  0%, 100% { opacity: .18; transform: translate3d(0, 0, 0) rotate(0deg) scale(.88); }
  50% { opacity: .54; transform: translate3d(5px, -13px, 0) rotate(14deg) scale(1.12); }
}
@keyframes wedding-scroll-hint {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(5px); }
}
@keyframes wedding-success-pop {
  from { opacity: 0; transform: scale(.72) rotate(-12deg); }
  to { opacity: 1; transform: scale(1) rotate(0); }
}
@keyframes wedding-count-tick {
  0% { opacity: .48; transform: translateY(4px); }
  100% { opacity: 1; transform: translateY(0); }
}

/* Entrada cinematográfica, mas curta, da capa. */
.motion-enabled .hero-eyebrow,
.motion-enabled .hero-pretitle,
.motion-enabled .hero h1,
.motion-enabled .hero-divider,
.motion-enabled .hero-description,
.motion-enabled .hero-date,
.motion-enabled .hero-time,
.motion-enabled .hero-buttons,
.motion-enabled .hero-scroll {
  animation: wedding-rise .85s cubic-bezier(.16, 1, .3, 1) both;
}
.motion-enabled .hero-eyebrow { animation-delay: .08s; }
.motion-enabled .hero-pretitle { animation-delay: .18s; }
.motion-enabled .hero h1 { animation-name: wedding-blossom; animation-delay: .28s; animation-duration: 1.15s; }
.motion-enabled .hero-divider { animation-delay: .48s; }
.motion-enabled .hero-description { animation-delay: .57s; }
.motion-enabled .hero-date { animation-delay: .69s; }
.motion-enabled .hero-time { animation-delay: .76s; }
.motion-enabled .hero-buttons { animation-delay: .88s; }
.motion-enabled .hero-scroll { animation-delay: 1.2s; }
.motion-enabled .hero-rose { animation: wedding-rose-drift 13s ease-in-out infinite; }
.motion-enabled .hero-scroll span { display: inline-block; animation: wedding-scroll-hint 1.9s ease-in-out infinite; }

/* Pequenos pontos de luz, em harmonia com os detalhes do convite. */
.hero-glimmers { position: absolute; inset: 0; pointer-events: none; overflow: hidden; z-index: 0; }
.hero-glimmers span { position: absolute; color: #e6dab5; line-height: 1; font-size: 21px; opacity: .28; }
.hero-glimmers span:nth-child(1) { top: 22%; left: 17%; font-size: 17px; }
.hero-glimmers span:nth-child(2) { top: 35%; right: 14%; font-size: 13px; }
.hero-glimmers span:nth-child(3) { bottom: 28%; left: 11%; font-size: 13px; }
.hero-glimmers span:nth-child(4) { bottom: 20%; right: 17%; font-size: 16px; }
.hero-glimmers span:nth-child(5) { top: 13%; right: 28%; font-size: 11px; }
.motion-enabled .hero-glimmers span { animation: wedding-shimmer 7.5s ease-in-out infinite; }
.motion-enabled .hero-glimmers span:nth-child(2) { animation-delay: -3s; }
.motion-enabled .hero-glimmers span:nth-child(3) { animation-delay: -5.5s; }
.motion-enabled .hero-glimmers span:nth-child(4) { animation-delay: -1.5s; }
.motion-enabled .hero-glimmers span:nth-child(5) { animation-delay: -4.3s; }

/* Revelação no scroll: a classe só é adicionada a elementos fora da tela. */
.motion-reveal { opacity: 0; transform: translate3d(0, 26px, 0); transition: opacity .85s cubic-bezier(.2,.7,.25,1), transform .9s cubic-bezier(.16,1,.3,1); transition-delay: var(--reveal-delay, 0ms); }
.motion-reveal.motion-from-left { transform: translate3d(-31px, 12px, 0); }
.motion-reveal.motion-from-right { transform: translate3d(31px, 12px, 0); }
.motion-reveal.motion-visible { opacity: 1; transform: translate3d(0, 0, 0); }

/* Microinterações delicadas nos elementos clicáveis. */
.event-card, .pix-card { transition: box-shadow .38s ease, transform .38s cubic-bezier(.16,1,.3,1), border-color .38s ease; }
.event-icon svg { transition: transform .4s cubic-bezier(.16,1,.3,1); }
.btn, .nav-cta, .text-link, .pix-key-box button, .footer-top { transition-duration: .28s; transition-timing-function: cubic-bezier(.16,1,.3,1); }
.btn > span, .nav-cta > span, .text-link > span { display: inline-block; transition: transform .28s ease; }
.radio-option, .field input, .field select, .field textarea, .pix-key-box button { transition: background .25s ease, border-color .25s ease, box-shadow .25s ease; }
.field>input:focus, .field select:focus, .field textarea:focus { box-shadow: 0 0 0 3px rgba(121, 131, 90, .11); }
@media (hover:hover) and (pointer:fine) {
  .event-card:hover { transform: translateY(-6px); border-color: #c3c9af; box-shadow: 0 20px 42px rgba(46, 59, 33, .09); }
  .event-card:hover .event-icon svg { transform: translateY(-3px); }
  .pix-card:hover { transform: translateY(-4px); box-shadow: 0 23px 47px rgba(46, 59, 33, .10); }
  .btn:hover > span, .nav-cta:hover > span, .text-link:hover > span { transform: translate(3px, -2px); }
  .pix-key-box button:hover { background: #f0f3e7; }
}
/* Animação apenas após o envio bem-sucedido do RSVP. */
.motion-enabled .success:not(.hidden) { animation: wedding-rise .55s cubic-bezier(.16,1,.3,1) both; }
.motion-enabled .success:not(.hidden) .success-icon { animation: wedding-success-pop .6s .13s cubic-bezier(.16,1,.3,1) both; }
.motion-enabled .countdown strong.is-ticking { animation: wedding-count-tick .3s ease-out; }

@media (max-width: 670px) {
  .hero-glimmers span:nth-child(3), .hero-glimmers span:nth-child(5) { display: none; }
  .hero-glimmers span:nth-child(1) { left: 8%; }
  .hero-glimmers span:nth-child(2) { right: 7%; }
  .hero-glimmers span:nth-child(4) { right: 8%; }
  .motion-reveal.motion-from-left, .motion-reveal.motion-from-right { transform: translate3d(0, 22px, 0); }
  .motion-reveal.motion-visible { transform: translate3d(0, 0, 0); }
}
/* Respeita acessibilidade e preferência de menos movimento. */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .motion-enabled .hero-eyebrow, .motion-enabled .hero-pretitle,
  .motion-enabled .hero h1, .motion-enabled .hero-divider,
  .motion-enabled .hero-description, .motion-enabled .hero-date,
  .motion-enabled .hero-time, .motion-enabled .hero-buttons,
  .motion-enabled .hero-scroll, .motion-enabled .hero-rose,
  .motion-enabled .hero-scroll span, .motion-enabled .hero-glimmers span,
  .motion-enabled .success:not(.hidden),
  .motion-enabled .success:not(.hidden) .success-icon,
  .motion-enabled .countdown strong.is-ticking { animation: none !important; }
  .motion-reveal, .motion-reveal.motion-from-left, .motion-reveal.motion-from-right { opacity: 1 !important; transform: none !important; transition: none !important; }
  .event-card, .pix-card, .event-icon svg, .btn, .nav-cta,
  .text-link, .btn > span, .nav-cta > span, .text-link > span,
  .radio-option, .field input, .field select, .field textarea,
  .pix-key-box button, .footer-top { transition: none !important; }
  .event-card:hover, .pix-card:hover, .btn:hover,
  .btn:hover > span, .nav-cta:hover > span, .text-link:hover > span { transform: none !important; }
}


/* Tipografia fiel ao PDF original: Cormorant e artes estáticas derivadas do convite.
   As imagens de assinatura e data preservam a caligrafia sem distribuir a
   fonte comercial Majestic Love embutida no PDF. */
.brand { display: inline-flex; align-items: center; justify-content: center; min-width: 70px; }
.brand img { display: block; width: auto; height: 50px; }
.hero h1 { display: flex; align-items: center; justify-content: center; margin: 2px auto 2px; width: 100%; }
.hero h1 img { display: block; width: min(95%, 870px); height: auto; object-fit: contain; }
.hero-date, .hero-time { display: flex; justify-content: center; align-items: center; }
.hero-date { margin: 2px 0 4px; }
.hero-date img { display: block; width: min(93%, 685px); height: auto; }
.hero-time { margin-bottom: 34px; }
.hero-time img { display: block; width: min(65%, 410px); height: auto; }
.intro-symbol { display: flex; align-items: center; justify-content: center; }
.intro-symbol img { display: block; width: 110px; height: auto; filter: brightness(0) saturate(100%) invert(29%) sepia(17%) saturate(1260%) hue-rotate(44deg) brightness(95%); }
.footer-monogram img { display: block; width: 97px; height: auto; margin: auto; }
.handwritten { font-family: var(--serif); font-style: italic; font-size: 34px; line-height: 1.3; }
.hero-pretitle { font-style: italic; }
.hero-eyebrow { font-size: 14px; font-weight: 400; }
.hero-description { font-size: clamp(21px,2.3vw,27px); line-height: 1.35; }
.eyebrow, .nav-links a, .nav-cta, .btn, .event-number,
.pix-label, .pix-card-header p, .footer>p:not(.footer-monogram),
.footer-top, .countdown span, .hero-scroll, .field label { font-family: var(--serif); }
.eyebrow { font-size: 13px; font-weight: 500; letter-spacing: .23em; }
.nav-links a { font-size: 14px; }
.nav-cta { font-size: 14px; }
.btn { font-size: 15px; font-weight: 600; letter-spacing: .03em; }
.intro-text p:not(.eyebrow):not(.handwritten),
.section-heading p:last-child, .gift-copy, .rsvp-intro p:not(.eyebrow) { font-size: 18px; }
.field input, .field select, .field textarea { font-size: 17px; }
@media (max-width: 670px) {
  .brand img { height: 39px; }
  .nav-links a { font-size: 13px; }
  .hero { min-height: 690px; padding-block: 72px 91px; }
  .hero h1 img { width: min(100%, 530px); }
  .hero-date img { width: 100%; }
  .hero-time img { width: min(77%, 410px); }
  .hero-eyebrow { font-size: 12px; }
  .hero-description { font-size: 19px; }
  .eyebrow { font-size: 12px; }
  .btn { font-size: 15px; }
}
@media(max-width:365px){
  .nav-links a {font-size:12px;}
}

/* Tipografia definitiva após carregamento */

body {
    font-size: 20px;
}

/* Parágrafos */
.intro-text p:not(.eyebrow):not(.handwritten),
.section-heading p:last-child,
.rsvp-intro > p:not(.eyebrow),
.gifts-left > p:not(.eyebrow) {
    font-size: 21px;
    line-height: 1.75;
}

/* Títulos */
.section h2,
.countdown-inner h2 {
    font-size: clamp(40px, 4.5vw, 60px);
}

/* Locais */
.event-card h3 {
    font-size: clamp(28px, 3vw, 35px);
}

.event-address,
.event-time {
    font-size: 17px;
}

/* Navegação e botões */
.nav-links a {
    font-size: 16px;
}

.btn {
    font-size: 17px;
}

/* Celular */
@media (max-width: 670px) {
    .section h2 {
        font-size: 38px;
    }

    .nav-links a {
        font-size: 13px;
    }

    .btn {
        font-size: 16px;
    }
}

/* Perguntas do formulário RSVP */
.field label,
.field legend {
    font-size: 17px;
    font-weight: 600;
    line-height: 1.5;
    margin-bottom: 10px;
}

/* Ajuste para dispositivos móveis */
@media (max-width: 670px) {
    .field label,
    .field legend {
        font-size: 16px;
    }
}

/* Ajuste adicional: textos auxiliares e checkboxes do RSVP. */
.form-card .helper {
  font-size: 15px;
  line-height: 1.55;
  color: #555e49;
}

.form-card .edit-toggle,
.form-card .privacy-check {
  font-size: 16px;
  line-height: 1.5;
  color: #4c563f;
}

.form-card .edit-toggle label {
  display: inline-flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
}

.form-card .edit-toggle input[type="checkbox"],
.form-card .privacy-check input[type="checkbox"] {
  width: 19px;
  height: 19px;
  min-width: 19px;
  flex-shrink: 0;
  margin: 2px 0 0;
  accent-color: var(--olive);
}

@media (max-width: 670px) {
  .form-card .helper { font-size: 14px; }
  .form-card .edit-toggle,
  .form-card .privacy-check { font-size: 15px; }
}

/* Opcoes de presenca: texto principal e descricao maiores, com espaco para quebras. */
.form-card .radio-option {
  font-size: 16px;
  gap: 12px;
  padding: 16px 14px;
  min-height: 90px;
  line-height: 1.45;
}
.form-card .radio-option > span {
  flex: 1 1 auto;
  min-width: 0;
}
.form-card .radio-option strong {
  font-size: 17px;
  line-height: 1.3;
  font-weight: 600;
}
.form-card .radio-option small {
  font-size: 14px;
  line-height: 1.4;
  color: #596351;
}
@media (max-width: 670px) {
  .form-card .radio-option {
    font-size: 15px;
    padding: 15px 10px;
    min-height: 100px;
    gap: 9px;
  }
  .form-card .radio-option strong { font-size: 16px; }
  .form-card .radio-option small { font-size: 14px; }
}
@media (max-width: 400px) {
  .form-card .radio-grid { grid-template-columns: minmax(0, 1fr); }
  .form-card .radio-option { min-height: 76px; padding: 13px 14px; }
}

