/* Paloma & Ramón — fiesta mexicana em San Miguel de Allende.
   Creme de papel de algodão, rosa mexicano, cempasúchil, açafrão, verde e azul de talavera.
   Layout: papel picado balançando sobre a praça → cempasúchil cai e abre caminho → convite numa moldura de azulejos →
   capa no pátio da hacienda → azulejos da contagem, casas coloridas da rua, rebozo, mapa, lotería, RSVP → a piñata. */
:root{
  --cal:#FBF3E4; --cal2:#F5E9D3; --cal3:#E8D8BC; --papel:#FFF9EE;
  --rosa:#D6336C; --rosa-esc:#A91F55; --cemp:#F08A12; --cemp-esc:#C96A06; --acafrao:#F2C14E; --verde:#1E8A6E; --verde-esc:#14644F;
  --cobalto:#1F3E8C; --cobalto-esc:#142A63; --terra:#C4572E; --turquesa:#24A6B8;
  --tinta:#2B1D2A; --muted:#6F5B66; --linha:rgba(43,29,42,.14);
  --display:"Yeseva One", "Didot", Georgia, serif;
  --script:"Pinyon Script", "Snell Roundhand", cursive;
  --sans:"Outfit", "Helvetica Neue", Arial, sans-serif;
  --top-h:70px; --wrap:min(1140px, 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(--cal);color:var(--tinta);font:400 18px/1.6 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}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:2px solid var(--cobalto);outline-offset:3px}

/* ---------- tipografia ---------- */
.h2{font:400 clamp(38px,5vw,66px)/1.06 var(--display);color:var(--tinta);letter-spacing:-.005em}
.h2 em{font-style:normal;color:var(--rosa)}
.lede{max-width:58ch;margin-top:20px;color:var(--muted);font-size:clamp(17px,1.3vw,19px)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;padding:16px 30px;font:500 13px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;cursor:pointer;text-decoration:none;transition:transform .3s ease, box-shadow .3s ease, background .3s}
.btn--pink{background:var(--rosa);color:#fff;box-shadow:0 12px 26px -12px rgba(169,31,85,.8), inset 0 0 0 1px rgba(255,255,255,.14)}
.btn--pink:hover{background:var(--rosa-esc);transform:translateY(-1px)}
.btn--wide{width:100%}
.btn:active{transform:scale(.98)}
.lnk{position:relative;border:0;background:none;padding:0 0 6px;font:500 12px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--rosa);border-bottom:2px solid var(--acafrao);cursor:pointer}
.lnk::after{content:"";position:absolute;inset:-13px -6px}
.lnk:hover{border-color:var(--rosa)}

/* =================== ENTRADA =================== */
.stage{position:fixed;inset:0;z-index:100;overflow:hidden;background:#3a2530;will-change:opacity}
.stage__plaza{position:absolute;inset:0;transform-origin:50% 63%;will-change:transform}
.stage__plaza picture,.stage__plaza img{width:100%;height:100%}
.stage__plaza img{object-fit:cover;object-position:50% 50%}
.stage__warm{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(70% 60% at 50% 62%,rgba(255,214,150,.0),rgba(60,24,40,.38) 100%),linear-gradient(180deg,rgba(255,226,180,.18),transparent 40%)}
.stage__petals{position:absolute;inset:0;z-index:2;pointer-events:none;transform-origin:50% 63%}
.stage__petals img{position:absolute;left:0;top:0;width:60px;height:auto;will-change:transform;visibility:hidden;filter:drop-shadow(0 3px 2px rgba(60,20,0,.28))}
.stage__picado{position:absolute;inset:0;z-index:3;pointer-events:none}
.stage__dim{position:absolute;inset:0;z-index:4;background:#2a1422;opacity:0;pointer-events:none}

/* cordões de papel picado (montados pelo JS) */
.prow{position:absolute;left:0;top:0;width:100%;height:100%;will-change:transform;transform-origin:50% 0}
.prow svg{position:absolute;left:0;top:0;width:100%;overflow:visible}
.prow path{fill:none;stroke:#efe2c8;stroke-width:1.6;stroke-linecap:round;filter:drop-shadow(0 1px 1px rgba(0,0,0,.25))}
.flag{position:absolute;left:0;top:0;transform-origin:50% 2%}
.flag img{width:100%;height:auto;transform-origin:50% 0;animation:sway var(--d,3.4s) ease-in-out var(--dl,0s) infinite alternate;filter:drop-shadow(0 6px 6px rgba(40,10,30,.22))}
@keyframes sway{0%{transform:rotate(calc(var(--a,4deg) * -1)) skewX(1.5deg) scaleY(.98)}100%{transform:rotate(var(--a,4deg)) skewX(-1.5deg) scaleY(1)}}

/* cartão com o nome do convidado, pendurado no cordão mais próximo */
.note{position:absolute;z-index:8;left:50%;top:44%;width:min(500px,88vw);translate:-50% -50%;text-align:center;padding:30px 22px 24px;background:var(--papel) url(img/t-papel.webp) center/420px;box-shadow:0 26px 40px -18px rgba(40,10,30,.6),0 1px 2px rgba(0,0,0,.2);border-radius:4px;will-change:transform}
.note::before{content:"";position:absolute;inset:8px;border:1.5px solid rgba(214,51,108,.45);border-radius:2px;pointer-events:none}
.note__cord{position:absolute;left:12%;right:12%;bottom:100%;height:var(--cord,30vh);pointer-events:none;
  background:linear-gradient(90deg,transparent calc(0% + 0px),#efe2c8 0 1.6px,transparent 0) left/2px 100% no-repeat,linear-gradient(90deg,#efe2c8 0 1.6px,transparent 0) right/2px 100% no-repeat}
.note__to{font:500 11.5px var(--sans);letter-spacing:.36em;text-transform:uppercase;color:var(--rosa);margin-bottom:6px}
.note__name{font:400 clamp(56px,11vw,88px)/1.1 var(--script);color:var(--cobalto-esc);padding:0 .2em;overflow-wrap:anywhere}
.note__name.is-long{font-size:clamp(40px,7vw,58px)}
.note__sub{font:400 17px/1.4 var(--sans);color:var(--muted);margin-top:4px}

.stage__top{position:absolute;z-index:9;top:max(22px,3.6vh);left:0;right:0;text-align:center;font:500 12px var(--sans);letter-spacing:.36em;text-transform:uppercase;color:#fff;text-shadow:0 1px 8px rgba(40,10,30,.55)}
.stage__cta{position:absolute;left:0;right:0;bottom:max(26px,4.4vh);display:flex;flex-direction:column;align-items:center;gap:12px;z-index:9}
.stage__hint{font:500 11px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:#fff;text-shadow:0 1px 8px rgba(40,10,30,.7);animation:breathe 2.6s ease-in-out infinite}
@keyframes breathe{50%{opacity:.5}}
@keyframes stageIn{from{opacity:0;transform:translateY(14px)}}
.stage__cta,.stage__top{animation:stageIn 1.2s .6s backwards}

/* o convite: papel de algodão dentro de uma moldura de azulejos */
.invite{position:absolute;left:50%;top:50%;z-index:10;width:min(500px,90vw);text-align:center;opacity:0;visibility:hidden;will-change:transform,opacity}
.invite__frame{padding:clamp(18px,2.6vh,26px);background:#f6f1e6 url(img/t-talavera.webp) 0 0/clamp(52px,7.2vh,66px);border-radius:6px;box-shadow:0 50px 90px -36px rgba(30,6,20,.8),0 2px 6px rgba(20,6,14,.25), inset 0 0 0 1px rgba(20,42,99,.25)}
.invite__in{position:relative;background:var(--papel) url(img/t-papel.webp) center/480px;padding:clamp(26px,4.6vh,48px) clamp(20px,4vw,40px) clamp(22px,3.8vh,38px);border-radius:3px;box-shadow:0 0 0 3px var(--cobalto),0 0 0 5px #f6f1e6, inset 0 0 30px rgba(120,80,30,.08)}
.invite__dear{font:400 clamp(34px,min(5.6vw,5.4vh),48px)/1.15 var(--script);color:var(--cobalto-esc);padding:0 .2em}
.invite__small{font:400 clamp(15px,2vw,17px) var(--sans);color:var(--muted);margin-top:2px}
.invite__names{font:400 clamp(46px,min(9vw,8.2vh),76px)/1 var(--display);color:var(--rosa);margin:clamp(8px,1.4vh,14px) 0 clamp(6px,1.2vh,12px);display:flex;flex-direction:column;align-items:center}
.invite__names i{font:400 1.05em/1 var(--script);color:var(--cemp-esc)}
.invite__txt{font:400 clamp(16px,2.1vw,19px)/1.45 var(--sans);color:var(--tinta);max-width:30ch;margin-inline:auto}
.invite__rule{display:flex;justify-content:center;gap:10px;margin:clamp(10px,2vh,18px) 0}
.invite__rule i{width:9px;height:9px;rotate:45deg;background:var(--cemp)}
.invite__rule i:nth-child(2){background:var(--rosa)}
.invite__rule i:nth-child(3){background:var(--verde)}
.invite__date{font:500 12.5px/1.9 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--tinta)}
.invite__place{font:400 clamp(16px,2vw,18px)/1.4 var(--display);color:var(--cobalto);margin-top:8px}

/* =================== 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);padding-top:env(safe-area-inset-top,0px);background:rgba(251,243,228,.88);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transform:translateY(-110%);transition:transform .6s cubic-bezier(.2,.9,.2,1)}
body.is-open .top{transform:none}
.top::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:6px;background:linear-gradient(90deg,var(--rosa) 0 20%,var(--cemp) 20% 40%,var(--acafrao) 40% 60%,var(--verde) 60% 80%,var(--cobalto) 80%);-webkit-mask:radial-gradient(circle 4px at 50% 100%,transparent 98%,#000) 0 0/12px 100% repeat-x;mask:radial-gradient(circle 4px at 50% 100%,transparent 98%,#000) 0 0/12px 100% repeat-x}
.top__mono{font:400 28px/1 var(--display);text-decoration:none;color:var(--rosa);padding:8px 0}
.top__mono i{font:400 1.1em var(--script);color:var(--cemp-esc);margin:0 4px}
.top__nav{display:flex;gap:30px}
.top__nav a{font:500 12.5px var(--sans);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;color:var(--tinta);opacity:.8}
.top__nav a:hover{opacity:1;color:var(--rosa)}
.top__cta{font:500 12px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;text-decoration:none;padding:12px 18px;border-radius:999px;background:var(--rosa);color:#fff}
.top__cta:hover{background:var(--rosa-esc)}
@media (max-width:900px){.top__nav{display:none}.top__cta{padding:10px 14px;font-size:11px}.top{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(251,243,228,.97)}}

/* =================== CAPA =================== */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;padding:calc(var(--top-h) + 30px) 0 70px}
.hero__bg{position:absolute;inset:0}
.hero__bg img{width:100%;height:100%;object-fit:cover;object-position:60% 50%}
.hero__veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(251,243,228,.9) 0%,rgba(251,243,228,.7) 34%,rgba(251,243,228,0) 58%)}
.hero__in{position:relative;z-index:2;width:var(--wrap);margin-inline:auto}
.hero__date{font:500 13px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--cobalto)}
.hero__names{font:400 clamp(64px,8vw,124px)/.95 var(--display);display:flex;flex-direction:column;margin:16px 0 20px;width:max-content;max-width:100%;color:var(--rosa)}
.hero__names i{font:400 .9em/.9 var(--script);padding-left:.4em;color:var(--cemp-esc)}
.hero__sub{font:400 clamp(19px,1.8vw,23px)/1.4 var(--sans);color:var(--tinta);max-width:24ch;margin-bottom:30px}
.hero__down{position:absolute;z-index:2;left:50%;bottom:20px;translate:-50% 0;font:500 11px var(--sans);letter-spacing:.32em;text-transform:uppercase;text-decoration:none;color:#fff;padding-bottom:30px;text-shadow:0 1px 6px rgba(0,0,0,.45)}
.hero__down::after{content:"";position:absolute;left:50%;bottom:0;width:1px;height:24px;background:#fff;animation:drop 2s ease-in-out infinite;transform-origin:top}
@keyframes drop{0%{transform:scaleY(0)}50%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
body.names-long .hero__names{font-size:clamp(60px,8vw,118px)}
body.names-xlong .hero__names{font-size:clamp(50px,6.6vw,96px)}
body.names-long .invite__names{font-size:clamp(38px,min(7.4vw,6.8vh),60px)}
body.names-xlong .invite__names{font-size:clamp(32px,min(6.2vw,5.8vh),50px)}
@media (max-width:700px){
  .hero{align-items:flex-start;padding-top:calc(var(--top-h) + 30px)}
  .hero__veil{background:linear-gradient(180deg,rgba(251,243,228,.96) 0%,rgba(251,243,228,.88) 44%,rgba(251,243,228,.4) 60%,rgba(251,243,228,0) 74%)}
  .hero__bg img{object-position:50% 100%}
  .hero__in{text-align:center}
  .hero__names{font-size:clamp(62px,19vw,92px);margin-inline:auto;align-items:center}
  body.names-long .hero__names{font-size:clamp(48px,14vw,70px)}
  body.names-xlong .hero__names{font-size:clamp(40px,11.5vw,58px)}
  .hero__names i{padding-left:0}
  .hero__sub{font-size:19px;margin-inline:auto;margin-bottom:22px}
}

/* =================== HISTÓRIA + AZULEJOS =================== */
.story{padding:clamp(90px,12vw,160px) 0 clamp(70px,9vw,120px)}
.story__grid{display:grid;grid-template-columns:1.4fr .6fr;gap:clamp(30px,6vw,90px);align-items:center}
.story__grid > *{min-width:0}
.story__art{width:min(200px,100%);justify-self:center;rotate:-8deg}
.story__txt .lede{margin-top:18px}
.count{margin-top:clamp(60px,8vw,100px)}
.count__row{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,2vw,26px)}
.tile{aspect-ratio:1;padding:clamp(10px,1.6vw,18px);background:#f6f1e6 url(img/t-talavera.webp) center/100% 100%;border-radius:6px;box-shadow:0 22px 36px -24px rgba(20,42,99,.7), inset 0 0 0 1px rgba(20,42,99,.3);display:grid;place-items:center}
.tile:nth-child(even){background-image:url(img/t-talavera2.webp)}
.tile__in{width:74%;aspect-ratio:1;border-radius:50%;background:var(--papel);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 0 0 4px var(--cobalto),0 0 0 7px var(--papel),0 10px 20px -8px rgba(20,42,99,.5)}
.tile b{font:400 clamp(32px,4.6vw,64px)/1 var(--display);color:var(--cobalto-esc);font-variant-numeric:lining-nums tabular-nums}
.tile span{font:500 clamp(9.5px,.9vw,12px) var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--rosa);margin-top:4px}
.count__foot{text-align:center;margin-top:20px;font:400 19px var(--display);color:var(--muted)}
@media (max-width:700px){
  .story__grid{grid-template-columns:1fr;text-align:center}
  .story__art{width:110px;order:-1}
  .story__txt .lede{margin-inline:auto}
  .count__row{grid-template-columns:repeat(2,1fr);max-width:400px;margin-inline:auto;gap:14px}
  .tile b{font-size:clamp(34px,11vw,48px)}
  .tile span{font-size:10px;letter-spacing:.18em}
}

/* =================== PROGRAMAÇÃO: casas coloridas =================== */
.prog{padding:clamp(80px,10vw,140px) 0 0;background:var(--cal2);position:relative}
.street{display:grid;grid-template-columns:repeat(3,1fr);align-items:end;gap:0;margin-top:clamp(50px,6vw,80px);position:relative}
.street::after{content:"";position:absolute;left:-50vw;right:-50vw;bottom:-46px;height:46px;background:#bfb3a2 url(img/t-papel.webp) center/300px;background-blend-mode:multiply;box-shadow:inset 0 6px 0 #a8998a}
.house{position:relative;min-width:0;--c:var(--rosa);background:var(--c) url(img/t-rosa.webp) center/420px;background-blend-mode:luminosity;padding:clamp(70px,7vw,92px) clamp(20px,2.4vw,34px) clamp(30px,3vw,40px);box-shadow:inset 0 -14px 0 rgba(0,0,0,.12)}
.house::before{content:"";position:absolute;left:-6px;right:-6px;top:0;height:22px;background:var(--c);filter:brightness(.82);box-shadow:0 6px 0 rgba(255,255,255,.35)}
.house--main{padding-top:clamp(120px,11vw,150px)}
.house__sign{position:absolute;left:50%;top:clamp(30px,3vw,40px);translate:-50% 0;display:flex;align-items:center;gap:10px;white-space:nowrap}
.house__day{width:62px;aspect-ratio:1;display:grid;place-items:center;align-content:center;background:#f6f1e6 url(img/t-talavera.webp) center/100% 100%;border-radius:4px;box-shadow:0 8px 14px -8px rgba(0,0,0,.5)}
.house__day b{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--papel);font:400 24px/1 var(--display);color:var(--cobalto-esc);box-shadow:0 0 0 2px var(--cobalto)}
.house__wd{font:400 clamp(20px,1.8vw,24px)/1 var(--display);color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.25)}
.house__win{position:relative;width:min(58%,190px);aspect-ratio:.78;margin:0 auto 22px;border-radius:50% 50% 4px 4px / 32% 32% 4px 4px;background:linear-gradient(#ffe7b5,#f6cf8a);box-shadow:0 0 0 7px #f3ecdf, 0 0 0 9px rgba(0,0,0,.18), inset 0 0 22px rgba(160,90,10,.35);perspective:700px;overflow:visible}
.house__win img{position:absolute;left:50%;bottom:6%;width:78%;height:82%;object-fit:contain;translate:-50% 0}
.shutter{position:absolute;top:0;bottom:0;width:50%;background:var(--cobalto) repeating-linear-gradient(180deg,rgba(255,255,255,.12) 0 3px,transparent 3px 11px);box-shadow:inset 0 0 0 2px rgba(0,0,0,.25);z-index:2}
.shutter--l{left:0;transform-origin:0 50%;border-radius:50% 0 0 0 / 34% 0 0 0}
.shutter--r{right:0;transform-origin:100% 50%;border-radius:0 50% 0 0 / 0 34% 0 0}
.house__plaque{position:relative;background:var(--papel) url(img/t-papel.webp) center/360px;border-radius:4px;padding:clamp(20px,2.4vw,28px) clamp(18px,2vw,26px);box-shadow:0 18px 30px -20px rgba(0,0,0,.5)}
.house__plaque h3{font:400 clamp(26px,2.4vw,32px)/1.1 var(--display);color:var(--tinta)}
.house__plaque > p{margin-top:10px;color:var(--muted);font-size:16.5px}
.house__list{list-style:none;margin:16px 0 4px;display:grid;gap:6px}
.house__list li{display:flex;gap:14px;align-items:baseline;font-size:16.5px}
.house__list b{font:400 20px var(--display);min-width:58px;color:var(--rosa)}
.house__dress{font:500 13px/1.5 var(--sans)!important;letter-spacing:.06em;color:var(--cobalto)!important;margin:12px 0 16px!important}
.house--main .house__plaque{box-shadow:0 0 0 3px var(--acafrao),0 18px 30px -20px rgba(0,0,0,.5)}
@media (min-width:901px){.house:nth-child(1){margin-right:-1px}.house:nth-child(3){margin-left:-1px}}
@media (max-width:900px){
  .prog{padding-bottom:0}
  .street{grid-template-columns:1fr;max-width:520px;margin-inline:auto;gap:0}
  .house,.house--main{padding-top:110px}
  .house__win{width:min(46%,170px)}
}

/* =================== TRAJE: o rebozo =================== */
.dress{padding:clamp(130px,13vw,190px) 0 clamp(80px,10vw,140px)}
.dress__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,90px);align-items:center}
.dress__grid > *{min-width:0}
.dress__tips{list-style:none;margin-top:24px;display:grid;gap:12px;color:var(--muted);font-size:17px}
.dress__tips li{padding-left:28px;position:relative}
.dress__tips li::before{content:"";position:absolute;left:2px;top:.5em;width:12px;height:12px;border-radius:50%;background:radial-gradient(circle,var(--acafrao) 0 35%,var(--cemp) 36%)}
.rebozo{position:relative;display:flex;height:clamp(300px,34vw,420px);transform-origin:50% 0;box-shadow:0 30px 50px -30px rgba(43,29,42,.6);border-top:10px solid #3b2533}
.rebozo__s{position:relative;flex:1 1 0;background:var(--c);transition:flex-grow .5s cubic-bezier(.3,1.4,.5,1);transform-origin:50% 0}
.rebozo__s::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.16) 0 2px,transparent 2px 5px),repeating-linear-gradient(0deg,rgba(0,0,0,.08) 0 1px,transparent 1px 4px)}
.rebozo__s::after{content:"";position:absolute;left:0;right:0;top:22%;height:18px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.55) 0 4px,transparent 4px 9px);opacity:.6}
.rebozo__s i{position:absolute;left:0;right:0;top:100%;height:46px;background:repeating-linear-gradient(90deg,var(--c) 0 2px,transparent 2px 6px);-webkit-mask:linear-gradient(#000,#000 70%,transparent);mask:linear-gradient(#000,#000 70%,transparent)}
.rebozo__s:hover{flex-grow:1.8}
.rebozo__key{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 18px;margin-top:64px}
.rebozo__key li{display:flex;align-items:center;gap:8px;font:500 12px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.rebozo__key li::before{content:"";width:14px;height:14px;border-radius:50%;background:var(--c);box-shadow:0 0 0 2px #fff,0 0 0 3px var(--linha)}
.rebozo__cap{margin-top:14px;font:400 18px var(--display);color:var(--muted);text-align:center}
@media (max-width:800px){.dress__grid{grid-template-columns:1fr}.rebozo{max-width:460px;margin-inline:auto;height:260px}}
@media (max-width:700px){.dress__grid > div:first-child{text-align:center}.dress .lede{margin-inline:auto}.dress__tips{text-align:left;max-width:36ch;margin-inline:auto}.dress{padding-top:120px}}

/* =================== MAPA =================== */
.mapsec{padding:clamp(80px,10vw,140px) 0;background:var(--cal2)}
.mapsec__grid{display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(20px,3vw,40px);margin-top:44px;align-items:start}
.mapsec__grid > *{min-width:0}
.map{height:min(70vh,600px);background:var(--cal3);z-index:1;border-radius:6px;box-shadow:0 0 0 8px #f6f1e6, 0 0 0 10px var(--cobalto), 0 30px 50px -30px rgba(20,42,99,.6)}
.map .leaflet-tile-pane{filter:sepia(.25) saturate(.9) hue-rotate(-8deg) brightness(1.03)}
.leaflet-container{font-family:var(--sans)}
.pin{width:58px;height:58px;display:grid;place-items:center;border-radius:50%;background:var(--papel);box-shadow:0 0 0 3px var(--rosa),0 0 0 5px #fff,0 10px 18px -8px rgba(43,29,42,.6);transition:transform .35s cubic-bezier(.3,1.6,.5,1)}
.pin img{width:40px;height:40px;object-fit:contain;max-width:none}
.pin.is-on{transform:scale(1.25);box-shadow:0 0 0 3px var(--cemp),0 0 0 5px #fff,0 14px 24px -8px rgba(43,29,42,.7)}
.places{list-style:none;display:grid;gap:12px}
.place{background:var(--papel);border-radius:6px;border:1px solid var(--linha);border-top:6px solid var(--c,var(--rosa));padding:18px 18px 16px;cursor:pointer;transition:border-color .3s, box-shadow .3s}
.place.is-on{box-shadow:0 0 0 2px var(--c,var(--rosa)),0 18px 30px -24px rgba(43,29,42,.6)}
.place__day{font:500 11.5px var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--rosa)}
.place h3{font:400 25px/1.15 var(--display);color:var(--tinta);margin:4px 0 2px}
.place p{font-size:15.5px;color:var(--muted)}
.place__go{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.place__go a{font:500 11.5px var(--sans);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;padding:8px 12px;border-radius:999px;border:1px solid var(--linha);color:var(--cobalto)}
.place__go a:hover{background:var(--cobalto);color:#fff}
.places__hint{display:none}
@media (max-width:900px){
  .mapsec__grid{grid-template-columns:1fr;width:100%;gap:18px}
  .mapbox{padding:0 26px}
  .map{height:min(56svh,440px)}
  .places{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 7vw 10px;scroll-padding:0 7vw;scrollbar-width:none;overscroll-behavior-x:contain}
  .places::-webkit-scrollbar{display:none}
  .place{flex:none;width:84vw;max-width:400px;scroll-snap-align:center}
  .places__hint{display:block;text-align:center;font:400 17px var(--display);color:var(--muted)}
  .pin{width:46px;height:46px}
  .pin img{width:32px;height:32px}
}
@media (max-width:700px){.mapsec > .wrap:first-child{text-align:center}.mapsec .lede{margin-inline:auto}}

/* =================== VIAGEM =================== */
.trip{padding:clamp(80px,10vw,140px) 0}
.trip__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,36px);margin-top:50px}
.trip__item{padding-top:22px;min-width:0;position:relative}
.trip__item::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;border-radius:3px;background:linear-gradient(90deg,var(--rosa),var(--cemp),var(--acafrao))}
.trip__item img{height:84px;width:auto;margin-bottom:14px}
.trip__item h3{font:400 25px/1.15 var(--display);color:var(--tinta)}
.trip__item p{margin-top:8px;font-size:16.5px;color:var(--muted)}
@media (max-width:900px){.trip__grid{grid-template-columns:1fr 1fr}}
@media (max-width:700px){.trip > .wrap > .h2{text-align:center}}
@media (max-width:560px){
  .trip__grid{grid-template-columns:1fr;gap:22px;margin-top:30px}
  .trip__item{display:grid;grid-template-columns:68px 1fr;column-gap:16px;align-items:start;padding-top:20px}
  .trip__item img{grid-row:span 2;height:auto;width:68px;max-height:76px;object-fit:contain;margin:0}
  .trip__item p{margin-top:2px}
}

/* =================== PRESENTES: lotería =================== */
.gifts{padding:clamp(80px,10vw,140px) 0;background:var(--cobalto-esc);color:#e9edf7;position:relative;overflow:hidden}
.gifts::before{content:"";position:absolute;inset:0;background:url(img/t-talavera2.webp) 0 0/120px;opacity:.07;pointer-events:none}
.gifts > *{position:relative}
.gifts .h2{color:#fff}
.gifts .h2 em{color:var(--acafrao)}
.gifts .lede{color:#c6cfe6}
.gifts__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,26px);margin-top:50px}
.card{position:relative;display:flex;flex-direction:column;border:0;text-align:center;cursor:pointer;color:var(--tinta);background:var(--papel) url(img/t-papel.webp) center/360px;padding:10px;border-radius:8px;box-shadow:0 22px 30px -18px rgba(0,0,0,.55);min-width:0}
.card.is-in{transition:transform .35s cubic-bezier(.3,1.4,.5,1)}
.card.is-in:hover{transform:translateY(-6px) rotate(-1deg)}
.card:active{transform:scale(.985)}
.card__in{flex:1;display:flex;flex-direction:column;border:3px solid var(--c);border-radius:4px;padding:10px 12px 14px;position:relative}
.card__no{position:absolute;left:10px;top:8px;font:400 22px/1 var(--display);color:var(--c)}
.card__art{position:relative;height:clamp(110px,10vw,140px);margin:16px 0 8px}
.card__art img{position:absolute;inset:0 7%;width:86%;height:100%;object-fit:contain}
.card__name{font:400 clamp(17px,1.4vw,20px)/1.1 var(--display);letter-spacing:.06em;text-transform:uppercase;color:#fff;background:var(--c);padding:8px 6px 7px;margin:0 -12px;white-space:nowrap}
.card h3{font:500 15.5px/1.3 var(--sans);color:var(--tinta);margin-top:12px}
.card__d{font-size:14px;color:var(--muted);line-height:1.45;margin-top:4px;flex:1}
.card__bot{display:flex;justify-content:space-between;align-items:center;margin-top:12px;gap:8px}
.card__bot b{font:400 24px var(--display);color:var(--cobalto-esc)}
.card__bot span{font:500 10.5px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#fff;background:var(--rosa);padding:8px 11px;border-radius:999px}
@media (max-width:1000px){.gifts__grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:700px){.gifts > .wrap:first-child{text-align:center}.gifts .lede{margin-inline:auto}}
@media (max-width:560px){
  .gifts__grid{grid-template-columns:1fr;gap:14px}
  .card__in{display:grid;grid-template-columns:96px 1fr;grid-template-rows:auto auto 1fr auto;column-gap:14px;text-align:left;padding:12px 12px 12px}
  .card__no{position:static;grid-column:2;font-size:16px}
  .card__art{grid-column:1;grid-row:1/5;height:auto;margin:0;align-self:stretch;background:rgba(0,0,0,.03);border-radius:4px;padding:6px}
  .card__art img{inset:6px;width:calc(100% - 12px);height:calc(100% - 12px)}
  .card__name{grid-column:2;margin:4px 0 0;font-size:15px;padding:6px 8px 5px;justify-self:start;border-radius:2px}
  .card h3{grid-column:2;margin-top:8px}
  .card__d{grid-column:2;display:none}
  .card__bot{grid-column:2;margin-top:8px}
  .card__bot b{font-size:21px}
}

/* 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(30,16,30,.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(--papel) url(img/t-papel.webp) center/360px;padding:40px 30px 30px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;border-radius:8px;box-shadow:inset 0 0 0 8px var(--papel), inset 0 0 0 11px var(--rosa), 0 40px 80px -30px rgba(0,0,0,.5)}
.modal__x{position:absolute;top:14px;right:20px;border:0;background:none;font-size:30px;cursor:pointer;color:var(--tinta);z-index:1}
.pix__art{height:80px;width:auto}
.pix__title{font:400 26px/1.15 var(--display);color:var(--tinta)}
.pix__amount{font:400 34px var(--display);color:var(--rosa)}
.pix__val{display:flex;align-items:center;gap:8px;font:400 30px var(--display)}
.pix__val input{width:140px;border:0;border-bottom:1px solid var(--tinta);background:none;text-align:center;font:inherit;outline:0}
.pix__qr{width:190px;height:190px;background:#fff;padding:10px;box-shadow:0 0 0 1px var(--linha)}
.pix__qr svg{width:100%;height:100%}
.pix__demo{font-size:13px;color:var(--muted);max-width:30ch}

/* =================== RSVP =================== */
.rsvp{padding:clamp(90px,10vw,150px) 16px;background:var(--rosa) url(img/t-rosa.webp) center/520px;display:grid;place-items:center;position:relative}
.rsvp::before{content:"";position:absolute;inset:0;background:radial-gradient(80% 60% at 50% 40%,transparent,rgba(90,10,40,.35));pointer-events:none}
.rsvp__card{position:relative;width:min(620px,100%);background:var(--papel) url(img/t-papel.webp) center/480px;padding:clamp(56px,7vw,80px) clamp(24px,5vw,56px) clamp(36px,5vw,56px);border-radius:6px;box-shadow:0 0 0 clamp(12px,1.6vw,18px) #f6f1e6,0 0 0 calc(clamp(12px,1.6vw,18px) + 2px) var(--cobalto),0 40px 80px -30px rgba(60,0,30,.7)}
.rsvp__card::before{content:"";position:absolute;left:0;right:0;top:0;height:22px;background:url(img/t-talavera.webp) 0 0/22px;border-radius:6px 6px 0 0;opacity:.95}
.rsvp__banner{position:absolute;left:-8px;right:-8px;top:-34px;height:120px;pointer-events:none;z-index:3}
.rsvp__banner svg{position:absolute;inset:0;width:100%;height:60px;overflow:visible}
.rsvp__banner path{fill:none;stroke:#7a5a3a;stroke-width:1.5}
.rsvp__banner img{position:absolute;top:0;width:clamp(44px,8%,58px);transform-origin:50% 0;filter:drop-shadow(0 6px 5px rgba(60,0,30,.3))}
.rsvp__form,.rsvp__done{display:flex;flex-direction:column;gap:20px;position:relative}
.rsvp__form > .h2,.rsvp__deadline{text-align:center}
.rsvp__form .h2,.rsvp__done .h2{font-size:clamp(34px,4.6vw,50px)}
.rsvp__deadline{color:var(--muted);margin-top:-6px}
.rsvp__lbl{font:500 12px var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--rosa)}
.fld{display:flex;flex-direction:column;gap:6px;font:500 12px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.fld input,.fld textarea,.fld select{font:400 17px var(--sans);letter-spacing:0;text-transform:none;color:var(--tinta);padding:12px 2px;border:0;border-bottom:1.5px solid var(--cal3);background:transparent;outline:0;border-radius:0;resize:vertical}
.fld input:focus,.fld textarea:focus,.fld select:focus{border-color:var(--rosa)}
fieldset{border:0}
legend{font:500 12px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);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:15px 10px;border:1.5px solid var(--cal3);border-radius:999px;background:rgba(255,255,255,.5);cursor:pointer;font:400 19px var(--display);transition:all .3s}
.choice input:checked + span{background:var(--rosa);color:#fff;border-color:var(--rosa)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips legend{width:100%}
.chips span{display:inline-block;padding:9px 14px;border:1.5px solid var(--cal3);border-radius:999px;background:rgba(255,255,255,.5);cursor:pointer;font-size:15px;transition:all .25s}
.chips input:checked + span{background:#fde6ee;border-color:var(--rosa);color:var(--rosa-esc)}
.choice input:focus-visible + span,.chips input:focus-visible + span{outline:2px solid var(--cobalto);outline-offset:2px}
.stepper{display:flex;align-items:center;border:1.5px solid var(--cal3);border-radius:999px;width:max-content;background:rgba(255,255,255,.5)}
.stepper button{width:48px;height:46px;border:0;background:none;font-size:22px;cursor:pointer;color:var(--rosa)}
.stepper output{min-width:40px;text-align:center;font:400 26px var(--display);color:var(--tinta)}
.rsvp__err{color:var(--rosa-esc);font-size:15px}
.rsvp__err:empty{display:none}
.rsvp__done{align-items:center;text-align:center}
.rsvp__lamp{width:92px;transform-origin:50% 4%;margin-top:6px}
.rsvp__done p{color:var(--muted);max-width:40ch}
.resumo{align-self:stretch;text-align:left;background:rgba(255,255,255,.55);border:1px solid var(--linha);border-left:4px solid var(--cemp);border-radius:4px;color:var(--tinta);padding:14px 16px;font-size:15px;line-height:1.5;white-space:pre-line;max-width:440px;margin:0 auto;width:100%}
.rsvp__demo{font-size:13.5px!important;color:var(--muted)!important}
.people{display:flex;flex-direction:column;gap:14px}
.person{position:relative;border:1px solid var(--linha);border-radius:6px;background:rgba(255,255,255,.45);padding:20px 18px 18px;display:flex;flex-direction:column;gap:14px}
.person legend{font:400 21px/1 var(--display);letter-spacing:0;text-transform:none;color:var(--tinta);padding:0 8px;margin:0 0 0 -8px}
.p-restr input{position:absolute;opacity:0;pointer-events:none}
.p-lbl{width:100%;font:500 12px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.p-lbl i{font-style:normal;letter-spacing:.06em;text-transform:none;font-size:13px}
.p-restr span,.p-cat span{font-size:14px;padding:8px 12px}
.person .fld input{padding:9px 2px}
.rsvp__mesa{position:relative;text-align:center;padding-bottom:26px;margin-bottom:30px;border-bottom:1px solid var(--linha)}
.rsvp__mesas{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 34px;margin-top:10px}
.rsvp__mn{font:400 clamp(38px,6vw,54px)/1 var(--display);color:var(--cobalto-esc)}
.rsvp__mp{font:400 18px/1.4 var(--sans);color:var(--muted);margin-top:6px;max-width:30ch}
.rsvp__closed{position:relative;display:flex;flex-direction:column;gap:16px;text-align:center;align-items:center}
.rsvp__closed p:last-child{color:var(--muted);max-width:40ch}
.van{gap:8px}
.van label{font:500 12px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.van__n{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:6px}
.van__n span{font:500 12px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.stepper--sm button{width:40px;height:38px;font-size:20px}
.stepper--sm output{font-size:22px;min-width:32px}
.lead{border-top:1px solid var(--linha);padding-top:14px}
.lead summary{cursor:pointer;list-style:none;font:400 17px/1.45 var(--sans);color:var(--tinta);display:flex;gap:10px;align-items:flex-start}
.lead summary::-webkit-details-marker{display:none}
.lead summary::before{content:"+";font:400 22px/1 var(--display);color:var(--rosa)}
.lead[open] summary::before{content:"–"}
.lead__b{display:flex;flex-direction:column;gap:14px;margin-top:14px;padding:16px;border:1px solid var(--linha);border-radius:6px;background:rgba(255,255,255,.45)}
.lead__b .chips span{font-size:14px;padding:8px 12px}
.lead__ok{display:flex;gap:10px;align-items:flex-start;font-size:15px;line-height:1.45;color:var(--tinta);cursor:pointer}
.lead__ok input{width:18px;height:18px;margin-top:2px;accent-color:var(--rosa);flex:none}
.rsvp__qr{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}
.rsvp__qr p:last-child{font-size:15px;color:var(--muted)}
.rsvp__qri{width:170px;height:170px;background:#fff;padding:8px;border:1px solid var(--linha)}
.rsvp__qri svg{width:100%;height:100%;display:block}
.rsvp__qr--top{position:relative;padding-bottom:24px;margin-bottom:26px;border-bottom:1px solid var(--linha)}
.ccard{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;border:1px solid var(--linha);border-radius:6px;background:var(--papel);padding:22px 20px;width:100%;max-width:420px;margin:4px auto 0}
.ccard__logo{max-width:130px;max-height:70px;object-fit:contain;margin-bottom:4px}
.ccard__n{font:400 25px/1.15 var(--display);color:var(--tinta)}
.ccard__f{font:400 16px/1.45 var(--sans);color:var(--muted);max-width:32ch;text-wrap:balance}
.ccard__a{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:8px}
.ccard__a a{font:500 11.5px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;text-decoration:none;color:var(--rosa);border:1px solid var(--cal3);border-radius:999px;padding:10px 14px}
.ccard__a a:first-child{background:var(--rosa);color:#fff;border-color:var(--rosa)}
@media (max-width:700px){.choice span{font-size:16px;padding:14px 6px;white-space:nowrap}.person{padding:18px 14px 16px}.rsvp__card{padding-top:58px}}

/* =================== FIM: a piñata =================== */
.end{position:relative;height:100svh;min-height:640px;overflow:hidden;background:#24142a;color:#fff}
.end__bg{position:absolute;inset:0}
.end__bg picture,.end__bg img{width:100%;height:100%}
.end__bg img{object-fit:cover;object-position:50% 50%}
.end__night{position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,16,48,.82) 0%,rgba(40,18,48,.62) 45%,rgba(30,14,30,.9) 100%)}
.end__picado{position:absolute;inset:0;pointer-events:none}
.end__in{position:absolute;left:0;right:0;top:calc(var(--top-h) + 7vh);z-index:4;display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 20px;pointer-events:none}
.end__big{font:400 clamp(44px,5.6vw,80px)/1.02 var(--display);color:#fff;text-shadow:0 4px 24px rgba(20,6,30,.6)}
.end__big em{font-style:normal;color:var(--acafrao)}
.end__sig{font:400 clamp(36px,4vw,54px)/1.25 var(--script);color:#ffd9e6;padding:0 .3em}
.pinata{position:absolute;inset:0;z-index:3;touch-action:pan-y}
.pinata__cv{position:absolute;inset:0;width:100%;height:100%}
.pinata__hit{position:absolute;left:0;top:0;width:10px;height:10px;border:0;background:transparent;cursor:pointer;border-radius:50%;-webkit-tap-highlight-color:transparent}
.pinata__hit:focus-visible{outline:2px dashed var(--acafrao);outline-offset:6px}
.pinata.is-broken .pinata__hit{display:none}
body.pinata-broken .end__meter{opacity:0}
.pinata__letters span{position:absolute;left:0;top:0;font:400 64px/1 var(--display);color:var(--acafrao);text-shadow:0 4px 0 var(--rosa-esc),0 10px 20px rgba(0,0,0,.4);visibility:hidden;will-change:transform;pointer-events:none}
.pinata__letters span.amp{font:400 58px/1 var(--script);color:#ffd9e6;text-shadow:0 6px 16px rgba(0,0,0,.5)}
.end__ui{position:absolute;left:0;right:0;bottom:56px;z-index:5;display:flex;flex-direction:column;align-items:center;gap:10px;padding:0 20px;pointer-events:none;text-align:center}
.end__ui > *{pointer-events:auto}
.end__meter{display:flex;gap:7px}
.end__meter i{width:16px;height:20px;background:rgba(255,255,255,.22);clip-path:polygon(0 0,100% 0,100% 100%,50% 76%,0 100%);transition:background .3s, transform .3s}
.end__meter i.is-on{background:var(--c,var(--acafrao));transform:translateY(-3px)}
.end__hint{font:500 12px/1.6 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:#f3e3ea;text-shadow:0 1px 8px rgba(0,0,0,.6)}
.end__done{font:400 clamp(20px,2vw,24px)/1.4 var(--display);color:#fff;max-width:34ch;text-shadow:0 2px 12px rgba(0,0,0,.6)}
.end__done .lnk{color:var(--acafrao);border-color:var(--rosa);margin-left:6px;vertical-align:middle}
.end__foot{position:absolute;left:0;right:0;bottom:14px;z-index:5;text-align:center;font-size:12.5px;color:rgba(255,255,255,.62);padding:0 16px}
.end__foot a{color:#fff}
@media (max-width:700px){.end__ui{bottom:64px}.end__foot{font-size:11.5px;bottom:12px}.end__hint{letter-spacing:.16em;font-size:11px}}

.petalfx{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:110}

/* selo e toast */
.demo-tag{position:fixed;right:14px;bottom:14px;z-index:60;font:500 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--tinta);background:rgba(255,249,238,.94);padding:9px 14px;border-radius:999px;box-shadow:0 8px 20px -10px rgba(0,0,0,.35);transition:opacity .4s, transform .4s}
.demo-tag b{color:var(--rosa);font-weight:600}
body.at-end .demo-tag,body.tag-away .demo-tag{opacity:0;transform:translateY(20px);pointer-events:none}
.toast{position:fixed;left:50%;bottom:28px;z-index:130;translate:-50% 0;background:var(--tinta);color:#fff;padding:12px 18px;border-radius:999px;font-size:15px;opacity:0;transform:translateY(16px);transition:all .4s;pointer-events:none;max-width:calc(100% - 32px);text-align:center}
.toast.is-on{opacity:1;transform:none}

/* reveal por palavras */
.reveal-words .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.reveal-words .w > span{display:inline-block}

@media (prefers-reduced-motion: reduce){
  *{animation:none!important;transition:none!important}
}
