/* Beatriz & Henrique — casamento clássico na igreja. Marfim, ouro envelhecido e verde-escuro; gravuras finas e caligrafia.
   Layout: entrada (as portas da igreja se abrem e a gente percorre a nave) → capa com arco → seções com ritmo de papelaria fina. */
:root{
  --verde:#1F3B2D; --verde2:#2C5140; --ouro:#B08D57; --ouro2:#D9BE86; --marfim:#FBF8F1; --creme:#F6F0E4; --pedra:#E9E1D2;
  --tinta:#2A2A26; --muted:#6b6a60; --linha:rgba(42,42,38,.14);
  --display:"Cormorant Garamond", Garamond, Georgia, serif;
  --script:"Pinyon Script", "Snell Roundhand", cursive;
  --sans:"Mulish", "Helvetica Neue", Arial, sans-serif;
  --top-h:70px; --wrap:min(1120px, calc(100% - 40px));
  color-scheme:light;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;overflow-x:clip}
body{background:var(--marfim);color:var(--tinta);font:300 17px/1.7 var(--sans);overflow-x:hidden;text-wrap:pretty}
[hidden]{display:none!important}
img{display:block;max-width:100%}
button,input,textarea,select{font:inherit;color:inherit}
h1,h2,h3{font-weight:400;text-wrap:balance}
a{color:inherit}
.wrap{width:var(--wrap);margin-inline:auto}
:focus-visible{outline:2px solid var(--ouro);outline-offset:3px}

.eyebrow{font:600 11.5px/1.4 var(--sans);letter-spacing:.32em;text-transform:uppercase;color:var(--ouro)}
.eyebrow--light{color:var(--ouro2)}
.h2{font:300 clamp(40px,5.4vw,70px)/1.02 var(--display);color:var(--verde);margin-top:12px;letter-spacing:-.005em}
.h2--light{color:var(--marfim)}
.lede{max-width:58ch;margin-top:18px;color:var(--muted);font-size:clamp(16.5px,1.3vw,18.5px)}
.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:2px;padding:16px 32px;font:600 12px/1 var(--sans);letter-spacing:.26em;text-transform:uppercase;cursor:pointer;text-decoration:none;transition:transform .3s ease,background .3s,box-shadow .3s}
.btn:hover{transform:translateY(-1px)}
.btn--green{background:var(--verde);color:var(--marfim)}
.btn--green:hover{background:var(--verde2)}
.btn--gold{background:var(--marfim);color:var(--verde);box-shadow:0 0 0 1px var(--ouro),0 0 0 5px rgba(251,248,241,.9),0 0 0 6px var(--ouro),0 20px 40px -18px rgba(0,0,0,.5)}
.btn--wide{width:100%}
.lnk{border:0;background:none;padding:0 0 5px;font:600 11.5px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:inherit;border-bottom:1px solid currentColor;cursor:pointer;opacity:.85;text-decoration:none}
.lnk:hover{opacity:1}

/* =================== ENTRADA =================== */
.stage{position:fixed;inset:0;z-index:100;overflow:hidden;background:#2b261f}
.nave{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform-origin:50% 55%;will-change:transform,clip-path}
.nave__glow{position:absolute;inset:0;pointer-events:none;background:radial-gradient(60% 70% at 50% 45%,rgba(255,226,170,.55),rgba(255,226,170,0) 70%);mix-blend-mode:soft-light;opacity:0}
.front{position:absolute;inset:0;will-change:transform}
.facade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.doors{position:absolute;inset:0;perspective:1500px}
.leaf{position:absolute;background-repeat:no-repeat;backface-visibility:hidden;--a:0}
.leaf::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,calc(var(--a)*.5)),rgba(0,0,0,calc(var(--a)*.15)))}
.leaf--l{transform-origin:0 50%}
.leaf--r{transform-origin:100% 50%}
.leaf--r::after{background:linear-gradient(270deg,rgba(0,0,0,calc(var(--a)*.5)),rgba(0,0,0,calc(var(--a)*.15)))}
.tag{position:absolute;left:0;top:0;z-index:3;width:var(--tw,240px);transform-origin:50% 0}
.tag__ribbon{position:absolute;left:50%;top:-34px;width:2px;height:40px;margin-left:-1px;background:linear-gradient(var(--ouro2),var(--ouro))}
.tag__card{position:relative;background:var(--marfim) url(img/papel.webp) center/300px;padding:22px 16px 18px;text-align:center;box-shadow:0 24px 40px -16px rgba(0,0,0,.55);outline:1px solid var(--ouro);outline-offset:-8px}
.tag__k{font:600 9.5px/1.4 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--ouro)}
.tag__name{font:400 clamp(38px,4.4vw,58px)/1.05 var(--script);color:var(--verde);margin:8px 0 6px;word-break:break-word}
.tag__from{font:italic 400 17px var(--display);color:var(--muted)}
.vows{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 20px;color:var(--marfim);pointer-events:none;opacity:0}
.vows__k{font:600 11.5px var(--sans);letter-spacing:.32em;text-transform:uppercase;color:var(--ouro2);text-shadow:0 2px 14px rgba(0,0,0,.6)}
.vows__names{font:400 clamp(70px,11vw,160px)/1 var(--script);display:flex;flex-direction:column;align-items:center;margin:14px 0 10px;text-shadow:0 4px 40px rgba(0,0,0,.55)}
.vows__names i{font:italic 300 .4em var(--display);color:var(--ouro2);margin:-.1em 0}
.vows__date{font:italic 400 clamp(20px,2.4vw,28px) var(--display);text-shadow:0 2px 14px rgba(0,0,0,.6)}
.stage__cta{position:absolute;left:0;right:0;bottom:max(26px,4vh);z-index:6;display:flex;flex-direction:column;align-items:center;gap:12px;animation:in 1.2s .8s backwards}
.stage__hint{font:italic 400 18px var(--display);color:rgba(251,248,241,.92);text-shadow:0 1px 8px rgba(0,0,0,.6);animation:breathe 2.6s ease-in-out infinite}
@keyframes breathe{50%{opacity:.45}}
@keyframes in{from{opacity:0;transform:translateY(14px)}}

/* =================== CABEÇALHO =================== */
.top{position:fixed;top:0;left:0;right:0;z-index:50;height:var(--top-h);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 clamp(16px,3vw,40px);background:rgba(251,248,241,.88);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--linha);transform:translateY(-110%);transition:transform .6s cubic-bezier(.2,.9,.2,1)}
body.is-open .top{transform:none}
.top__mono{font:400 30px/1 var(--script);text-decoration:none;color:var(--verde)}
.top__mono i{font:italic 300 .6em var(--display);color:var(--ouro);margin:0 4px}
.top__nav{display:flex;gap:26px}
.top__nav a{font:600 11px var(--sans);letter-spacing:.22em;text-transform:uppercase;text-decoration:none;opacity:.8}
.top__nav a:hover{opacity:1}
.top__cta{font:600 11px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;text-decoration:none;padding:12px 16px;background:var(--verde);color:var(--marfim)}
@media (max-width:980px){.top__nav{display:none}.top__cta{padding:10px 12px;font-size:10px}}

/* =================== CAPA =================== */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;padding:calc(var(--top-h) + 40px) 0 70px;background:var(--marfim) url(img/papel.webp) center/420px}
.hero::before{content:"";position:absolute;inset:18px;border:1px solid rgba(176,141,87,.45);pointer-events:none}
.hero::after{content:"";position:absolute;inset:24px;border:1px solid rgba(176,141,87,.25);pointer-events:none}
.hero__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,6vw,90px);align-items:center;position:relative;z-index:1}
.hero__grid > *{min-width:0}
.hero__names{font:400 clamp(76px,10vw,150px)/.95 var(--script);color:var(--verde);display:flex;flex-direction:column;margin:20px 0 22px}
.hero__names i{font:italic 300 .42em var(--display);color:var(--ouro);padding-left:1.4em;margin:-.15em 0}
.hero__sub{font:italic 400 clamp(20px,1.9vw,25px)/1.45 var(--display);color:var(--muted);max-width:32ch;margin-bottom:32px}
.hero__btns{display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.arch{position:relative;justify-self:center;width:min(440px,100%);aspect-ratio:3/4;border-radius:999px 999px 4px 4px;overflow:hidden;box-shadow:0 0 0 1px var(--ouro),0 0 0 8px var(--marfim),0 0 0 9px rgba(176,141,87,.5),0 40px 70px -30px rgba(31,59,45,.5)}
.arch img{width:100%;height:100%;object-fit:cover;object-position:46% 50%;animation:slow 24s ease-in-out infinite alternate}
@keyframes slow{to{transform:scale(1.08)}}
@media (max-width:800px){.hero__grid{grid-template-columns:1fr}.arch{width:min(320px,80%);order:-1}}

/* =================== CONTAGEM =================== */
.bells{padding:clamp(80px,10vw,130px) 0;background:var(--verde);color:var(--marfim);text-align:center}
.bells__sino{width:96px;margin:0 auto 18px;transform-origin:50% 8%;animation:ring 3.2s ease-in-out infinite}
@keyframes ring{0%,60%,100%{transform:rotate(0)}66%{transform:rotate(14deg)}74%{transform:rotate(-11deg)}82%{transform:rotate(7deg)}90%{transform:rotate(-3deg)}}
.count{display:grid;grid-template-columns:repeat(4,1fr);max-width:860px;margin:18px auto 0}
.count > div{padding:10px 6px;border-right:1px solid rgba(217,190,134,.25)}
.count > div:last-child{border-right:0}
.count b{display:block;font:300 clamp(52px,7vw,96px)/1 var(--display);color:var(--marfim);font-variant-numeric:lining-nums tabular-nums}
.count span{font:600 10.5px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--ouro2)}
.bells__foot{margin-top:22px;font:italic 400 clamp(22px,2.4vw,28px) var(--display);color:var(--ouro2)}
@media (max-width:600px){.count{grid-template-columns:repeat(2,1fr);row-gap:18px}.count > div:nth-child(2){border-right:0}}

/* =================== HISTÓRIA =================== */
.story{padding:clamp(90px,12vw,160px) 0;background:var(--creme);text-align:center;overflow:hidden}
.aisle{position:relative;margin-top:60px;display:grid;gap:clamp(40px,6vw,70px);padding-bottom:20px}
.aisle__runner{position:absolute;left:50%;top:0;bottom:0;width:clamp(70px,9vw,120px);margin-left:calc(clamp(70px,9vw,120px) / -2);background:linear-gradient(90deg,var(--ouro) 0 2px,var(--marfim) 2px calc(100% - 2px),var(--ouro) calc(100% - 2px));box-shadow:0 0 0 6px rgba(176,141,87,.12);transform-origin:50% 0}
.aisle__petals{position:absolute;inset:0;overflow:hidden}
.petal{position:absolute;top:-20px;width:12px;height:9px;border-radius:60% 0 60% 0;background:radial-gradient(circle at 30% 30%,#fff,#f0d9d4);opacity:.95}
.mile{position:relative;width:calc(50% - clamp(55px,7vw,90px));text-align:right;justify-self:start;padding:6px 0}
.mile--r{justify-self:end;text-align:left}
.mile__y{font:400 clamp(44px,5vw,64px)/1 var(--script);color:var(--ouro)}
.mile h3{font:400 clamp(28px,3vw,36px)/1.1 var(--display);color:var(--verde);margin:6px 0 8px}
.mile p:not(.mile__y){color:var(--muted);font-size:16px}
.mile--gold h3{font-style:italic}
@media (max-width:700px){.aisle__runner{left:22px;margin-left:0;width:36px}.mile,.mile--r{width:auto;justify-self:stretch;text-align:left;padding-left:78px}}

/* =================== CERIMÔNIA E RECEPÇÃO =================== */
.venues{padding:clamp(90px,12vw,150px) 0;background:var(--verde);color:var(--marfim)}
.venues__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,3vw,36px);margin-top:50px}
.venue{position:relative;min-width:0;background:var(--marfim) url(img/papel.webp) center/420px;color:var(--tinta);text-align:center;padding:clamp(60px,6vw,80px) clamp(22px,4vw,48px) 40px;border-radius:999px 999px 4px 4px;display:flex;flex-direction:column;align-items:center;gap:8px}
.venue::before{content:"";position:absolute;inset:10px;border:1px solid rgba(176,141,87,.6);border-radius:999px 999px 2px 2px;pointer-events:none}
.venue__il{height:110px;width:auto;margin-bottom:8px}
.venue__k{font:600 11px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--ouro)}
.venue__time{font:300 clamp(56px,6vw,76px)/1 var(--display);color:var(--verde)}
.venue h3{font:italic 400 clamp(25px,2.4vw,30px)/1.15 var(--display);color:var(--verde);max-width:20ch}
.venue__addr{color:var(--muted);font-size:15.5px}
.venue__tip{font:italic 400 18px/1.4 var(--display);color:var(--ouro);max-width:30ch;margin:6px 0 10px}
.venue .lnk{color:var(--verde)}
.mapsec__grid{display:grid;grid-template-columns:1.6fr 1fr;gap:clamp(18px,3vw,36px);margin-top:clamp(30px,4vw,50px);align-items:start}
.mapsec__grid > *{min-width:0}
.map{height:min(60vh,500px);z-index:1;background:var(--pedra);outline:1px solid rgba(217,190,134,.5);outline-offset:6px}
.map .leaflet-tile-pane{filter:grayscale(.55) sepia(.25) brightness(1.03)}
.leaflet-container{font-family:var(--sans)}
.pin{width:44px;height:44px;border-radius:50%;background:var(--verde);display:grid;place-items:center;box-shadow:0 0 0 2px var(--ouro2),0 0 0 5px var(--marfim),0 10px 18px -8px rgba(0,0,0,.6);transition:transform .35s cubic-bezier(.3,1.6,.5,1)}
.pin img{width:26px;filter:brightness(0) invert(1) sepia(.6) saturate(2) hue-rotate(5deg)}
.pin.is-on{transform:scale(1.22)}
.places{list-style:none;display:grid;gap:12px}
.place{border:1px solid rgba(217,190,134,.35);padding:18px;cursor:pointer;transition:background .3s,border-color .3s}
.place.is-on{background:rgba(251,248,241,.07);border-color:var(--ouro2)}
.place__day{font:600 10.5px var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--ouro2)}
.place h3{font:italic 400 24px/1.15 var(--display);margin:6px 0 2px}
.place p{font-size:14.5px;color:rgba(251,248,241,.72)}
.place__go{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.place__go a{font:600 10.5px var(--sans);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;padding:8px 12px;border:1px solid rgba(217,190,134,.45)}
.place__go a:hover{background:var(--ouro2);color:var(--verde)}
.away{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,3vw,36px);margin-top:clamp(40px,5vw,60px);padding-top:30px;border-top:1px solid rgba(217,190,134,.25)}
.away__item{min-width:0}
.away b{font:italic 400 25px var(--display);color:var(--ouro2);font-weight:400}
.away p{color:rgba(251,248,241,.75);font-size:15.5px;margin-top:4px}
@media (max-width:900px){.venues__grid,.mapsec__grid,.away{grid-template-columns:1fr}.map{height:min(52svh,420px)}}

/* =================== TRAJE =================== */
.dress{padding:clamp(90px,12vw,150px) 0;background:var(--marfim)}
.dress__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,6vw,90px);align-items:center}
.dress__grid > *{min-width:0}
.etiq{list-style:none;margin-top:28px;display:grid;gap:18px}
.etiq li{display:flex;gap:16px;align-items:center;color:var(--muted);font-size:16px}
.etiq img{width:64px;flex:none}
.etiq b{color:var(--verde);font-weight:600}
.palette{background:var(--creme);padding:clamp(26px,4vw,44px);outline:1px solid rgba(176,141,87,.5);outline-offset:-10px}
.palette__t{font:italic 400 24px var(--display);color:var(--verde);margin-bottom:16px}
.palette__t + .dots{margin-bottom:28px}
.dots{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.dots--no{grid-template-columns:repeat(2,1fr)}
.dot{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;font-size:13.5px;color:var(--muted);line-height:1.3}
.dot i{width:58px;height:58px;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 1px rgba(42,42,38,.15),0 0 0 4px var(--creme),0 0 0 5px rgba(176,141,87,.5)}
.dots--no .dot i{position:relative}
.dots--no .dot i::after{content:"";position:absolute;left:50%;top:-4px;bottom:-4px;width:1.5px;background:#a4473a;transform:rotate(45deg)}
.dot em{font:italic 400 15px var(--display);color:var(--ouro)}
@media (max-width:800px){.dress__grid{grid-template-columns:1fr}.dots{grid-template-columns:repeat(2,1fr);row-gap:20px}}

/* =================== PRESENTES =================== */
.gifts{padding:clamp(90px,12vw,150px) 0;background:var(--creme)}
.gifts__head{text-align:center;display:flex;flex-direction:column;align-items:center}
.menu{margin-top:50px;max-width:880px;background:var(--marfim) url(img/papel.webp) center/420px;padding:clamp(20px,4vw,50px);outline:1px solid rgba(176,141,87,.55);outline-offset:-12px;box-shadow:0 40px 70px -40px rgba(31,59,45,.35)}
.gift{display:grid;grid-template-columns:64px 1fr auto;gap:18px;align-items:center;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--linha);padding:20px 6px;cursor:pointer;transition:background .3s}
.gift:last-child{border-bottom:0}
.gift:hover{background:rgba(176,141,87,.07)}
.gift img{width:58px;height:58px;object-fit:contain;transition:transform .5s cubic-bezier(.3,1.5,.5,1)}
.gift:hover img{transform:rotate(-8deg) scale(1.08)}
.gift__t{min-width:0}
.gift h3{font:400 clamp(23px,2.4vw,28px)/1.15 var(--display);color:var(--verde)}
.gift__t p{font-size:14.5px;color:var(--muted)}
.gift__r{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.gift__price{font:400 26px var(--display);color:var(--ouro);white-space:nowrap}
.gift__cta{font:600 10px var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--verde);border-bottom:1px solid var(--verde);padding-bottom:3px}
@media (max-width:560px){.gift{grid-template-columns:46px 1fr;gap:12px}.gift img{width:44px;height:44px}.gift__r{grid-column:2;flex-direction:row;align-items:center;justify-content:space-between}}

/* modal Pix */
.modal{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:20px}
.modal__bg{position:absolute;inset:0;background:rgba(31,59,45,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.modal__box{position:relative;width:min(400px,100%);max-height:92svh;overflow:auto;background:var(--marfim) url(img/papel.webp) center/400px;padding:36px 28px 28px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;outline:1px solid rgba(176,141,87,.6);outline-offset:-10px}
.modal__x{position:absolute;top:12px;right:18px;border:0;background:none;font-size:30px;cursor:pointer;color:var(--verde);z-index:1}
.pix__il{height:64px;width:auto}
.pix__title{font:italic 400 28px/1.15 var(--display);color:var(--verde)}
.pix__amount{font:400 32px var(--display);color:var(--ouro)}
.pix__val{display:flex;align-items:center;gap:8px;font:400 28px var(--display);color:var(--ouro)}
.pix__val input{width:140px;border:0;border-bottom:1px solid var(--ouro);background:none;text-align:center;font:inherit;outline:0}
.pix__qr{width:190px;height:190px;background:#fff;padding:10px}
.pix__qr svg{width:100%;height:100%}
.pix__demo{font-size:12.5px;color:var(--muted);max-width:30ch}

/* =================== RSVP =================== */
.rsvp{padding:clamp(90px,12vw,150px) 16px;background:var(--marfim);display:grid;place-items:center}
.rsvp__card{position:relative;width:min(620px,100%);background:var(--creme) url(img/papel.webp) center/420px;padding:clamp(70px,8vw,90px) clamp(24px,5vw,56px) clamp(40px,6vw,60px);box-shadow:0 40px 80px -40px rgba(31,59,45,.45)}
.rsvp__card::before{content:"";position:absolute;inset:10px;border:1px solid rgba(176,141,87,.6);pointer-events:none}
.rsvp__card::after{content:"";position:absolute;inset:15px;border:1px solid rgba(176,141,87,.3);pointer-events:none}
.rsvp__sino{position:absolute;left:50%;top:-40px;width:80px;margin-left:-40px;transform-origin:50% 8%;background:var(--marfim);padding:8px;border-radius:50%;box-shadow:0 0 0 1px rgba(176,141,87,.6)}
.rsvp__form,.rsvp__done{position:relative;z-index:1;display:flex;flex-direction:column;gap:20px}
.rsvp__form{align-items:stretch}
.rsvp__form > .eyebrow,.rsvp__form > .h2,.rsvp__deadline{text-align:center}
.rsvp__form .h2{font-size:clamp(36px,4.6vw,54px)}
.rsvp__deadline{color:var(--muted);margin-top:-6px;font:italic 400 19px var(--display)}
.fld{display:flex;flex-direction:column;gap:4px;font:600 10.5px/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ouro)}
.fld input,.fld textarea,.fld select{font:400 18px var(--display);letter-spacing:0;text-transform:none;color:var(--tinta);padding:10px 2px;border:0;border-bottom:1px solid rgba(176,141,87,.5);background:transparent;outline:0;border-radius:0;resize:vertical}
.fld input:focus,.fld textarea:focus,.fld select:focus{border-color:var(--verde)}
fieldset{border:0}
legend{font:600 10.5px/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ouro);margin-bottom:10px}
.choice{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.choice legend{grid-column:1/-1}
.choice input,.chips input{position:absolute;opacity:0;pointer-events:none}
.choice span{display:block;text-align:center;padding:14px 10px;border:1px solid rgba(176,141,87,.6);cursor:pointer;font:italic 400 20px var(--display);transition:all .3s}
.choice input:checked + span{background:var(--verde);color:var(--marfim);border-color:var(--verde)}
.choice input:focus-visible + span,.chips input:focus-visible + span{outline:2px solid var(--ouro);outline-offset:2px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips legend{width:100%}
.chips span{display:inline-block;padding:9px 16px;border:1px solid rgba(176,141,87,.5);cursor:pointer;font:italic 400 18px var(--display);transition:all .25s}
.chips input:checked + span{background:rgba(31,59,45,.08);border-color:var(--verde)}
.stepper{display:flex;align-items:center;border:1px solid rgba(176,141,87,.6);width:max-content}
.stepper button{width:46px;height:44px;border:0;background:none;font-size:22px;cursor:pointer;color:var(--verde)}
.stepper output{min-width:40px;text-align:center;font:400 26px var(--display);color:var(--verde);letter-spacing:0}
#fAcomp{display:flex;flex-direction:column;gap:14px}
#fAcomp:empty{display:none}
.rsvp__err{color:#a4473a;font-size:14px}
.rsvp__err:empty{display:none}
.rsvp__done{align-items:center;text-align:center}
.rsvp__done p{color:var(--muted);max-width:40ch}
.wa-bubble{align-self:stretch;text-align:left;background:#e7f6dd;color:#1f2c34;border-radius:12px 12px 4px 12px;padding:14px 16px;font:400 14.5px/1.5 var(--sans);white-space:pre-line;max-width:440px;margin:0 auto}
.rsvp__demo{font-size:13px!important}

/* =================== FIM: chuva de arroz =================== */
.end{position:relative;min-height:100svh;display:grid;place-items:center;text-align:center;padding:120px 20px 90px;background:radial-gradient(110% 90% at 50% 30%,#2C5140 0%,#1F3B2D 55%,#152a20 100%);overflow:hidden;color:var(--marfim);cursor:pointer;-webkit-tap-highlight-color:transparent}
.end::before{content:"";position:absolute;inset:18px;border:1px solid rgba(217,190,134,.35);pointer-events:none}
.end__rice{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}
.end__in{position:relative;z-index:1;pointer-events:none}
.end__k{font:600 11.5px var(--sans);letter-spacing:.32em;text-transform:uppercase;color:var(--ouro2)}
.end__big{font:400 clamp(72px,12vw,170px)/1 var(--script);color:var(--marfim);margin:16px 0 8px}
.end__sig{font:italic 400 clamp(22px,2.4vw,30px) var(--display);color:var(--ouro2)}
.end__hint{position:absolute;z-index:3;top:calc(var(--top-h) + 24px);left:0;right:0;font:italic 400 19px var(--display);color:rgba(251,248,241,.65);pointer-events:none}
.end__foot{position:absolute;z-index:3;bottom:28px;left:16px;right:16px;font:400 11.5px var(--sans);letter-spacing:.06em;color:rgba(251,248,241,.6)}
.burst{position:fixed;inset:0;width:100%;height:100%;z-index:95;pointer-events:none}

.demo-tag{position:fixed;z-index:60;left:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px));font:400 11px var(--sans);letter-spacing:.1em;text-decoration:none;background:rgba(31,59,45,.92);color:var(--marfim);padding:8px 12px;border-radius:999px;opacity:0;pointer-events:none;transition:opacity .4s}
body.is-open .demo-tag{opacity:1;pointer-events:auto}
.toast{position:fixed;left:50%;bottom:24px;translate:-50% 220%;background:var(--verde);color:var(--marfim);padding:12px 20px;border-radius:999px;font-size:14px;z-index:140;transition:translate .4s ease;visibility:hidden}
.toast.is-on{translate:-50% 0;visibility:visible}

.reveal-words .w{display:inline-block;overflow:hidden;vertical-align:top;padding:.18em 0 .1em;margin:-.18em 0 -.1em}
.reveal-words .w > span{display:inline-block}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.vows{background:radial-gradient(60% 55% at 50% 50%,rgba(22,16,8,.55),rgba(22,16,8,0) 75%)}
.tag__name{font-size:clamp(34px,3.3vw,48px)}
.leaflet-container .pin img{width:26px!important;height:26px!important;object-fit:contain}

/* ===== revisão geral: celular ===== */
body.at-end .demo-tag{opacity:0;pointer-events:none}
.tag__name{font-size:clamp(42px,3.8vw,56px)}
@media (max-width:700px){
  .story,.dress,.gifts,.rsvp{padding-block:60px}
  .bells,.venues{padding-block:64px}
  .hero{padding-bottom:50px}
  .hero::before{inset:10px}.hero::after{inset:14px}
  .hero__names{font-size:clamp(68px,20vw,96px);margin:14px 0 18px}
  .arch{width:min(260px,72%)}
  .menu{margin-top:34px}
  .venues__grid{margin-top:34px}
}
.nave__dim{position:absolute;inset:0;background:rgba(20,14,6,.24);opacity:0;pointer-events:none}
.nave__glow{mix-blend-mode:normal;background:radial-gradient(55% 65% at 50% 45%,rgba(255,226,170,.28),rgba(255,226,170,0) 70%)}
@media (max-width:900px){.top{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(251,248,241,.97)}}

/* o altar no fim do tapete */
.aisle{--aw:min(520px,86vw)}

.altar{position:relative;z-index:1;justify-self:center;width:var(--aw);margin-top:10px;text-align:center}
.altar img{width:100%;height:auto}
.altar figcaption{font:italic 400 22px var(--display);color:var(--ouro);margin-top:10px}
@media (max-width:700px){.altar{margin-top:20px}}
