/* Dani & Beto — casamento retrô numa capelinha de Las Vegas.
   Noite no deserto, tubo de neon rosa e turquesa (anos 50–60), lâmpadas de marquise, feltro de cassino e cromado.
   Layout: entrada (o letreiro acende com o nome do convidado e gira: no verso, o convite) → capa →
   marquise da contagem, cartas de baralho, fichas de cassino, letreiro "lugar reservado" e o caça-níquel. */
:root{
  --noite:#0B0A24; --noite2:#141139; --indigo:#231A4F; --violeta:#3A2A6B;
  --rosa:#FF3EA5; --rosa-esc:#C21D78; --turq:#2EE6D6; --turq2:#2EC4B6; --turq-esc:#13867E; --mostarda:#F4B63F; --lamp:#FFD36B;
  --creme:#FFF4E2; --papel:#FFFBF3; --tinta:#1B1A47; --muted:#5E5A7A; --linha:rgba(27,26,71,.14);
  --feltro:#0F5A53; --feltro-esc:#093B37;
  --script:"Yellowtail", "Brush Script MT", cursive;
  --neon:"Neonderthaw", "Yellowtail", cursive;
  --tube:"Tilt Neon", "Trebuchet MS", sans-serif;
  --block:"Bungee", "Arial Black", sans-serif;
  --sans:"Work Sans", "Helvetica Neue", Arial, sans-serif;
  --top-h:70px; --wrap:min(1120px, calc(100% - 40px));
  --glow-p:0 0 .04em #fff, 0 0 .1em #ff8ccc, 0 0 .22em var(--rosa), 0 0 .5em var(--rosa), 0 0 1em rgba(255,62,165,.55);
  --glow-t:0 0 .04em #fff, 0 0 .1em #9ffcf3, 0 0 .22em var(--turq), 0 0 .5em var(--turq), 0 0 1em rgba(46,230,214,.5);
  --atom:radial-gradient(circle at 50% 50%,rgba(255,62,165,.10) 0 2px,transparent 2.5px) 0 0/46px 46px,radial-gradient(circle at 50% 50%,rgba(46,196,182,.12) 0 1.5px,transparent 2px) 23px 23px/46px 46px;
  color-scheme:light;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;overflow-x:clip}
body{background:var(--creme);color:var(--tinta);font:400 17px/1.65 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}
.nw{white-space:nowrap}
:focus-visible{outline:2px solid var(--rosa);outline-offset:3px}

.h2{font:400 clamp(44px,5.6vw,74px)/1.02 var(--script);color:var(--tinta);letter-spacing:.005em;padding-bottom:.06em}
.h2--light{color:var(--creme);text-shadow:0 0 22px rgba(255,62,165,.35)}
.lede{max-width:58ch;margin-top:16px;color:var(--muted);font-size:clamp(16.5px,1.3vw,18.5px);font-weight:300}
.lede--light{color:rgba(255,244,226,.8)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;border:0;border-radius:999px;padding:16px 30px;font:400 14px/1 var(--block);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;text-decoration:none;transition:transform .3s ease,background .3s,box-shadow .3s}
.btn:hover{transform:translateY(-2px)}
.btn--neon{background:var(--rosa);color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,.18) inset,0 0 18px rgba(255,62,165,.55),0 14px 34px -14px rgba(255,62,165,.9)}
.btn--neon:hover{background:#ff5bb3;box-shadow:0 0 0 2px rgba(255,255,255,.25) inset,0 0 28px rgba(255,62,165,.8),0 14px 34px -14px rgba(255,62,165,.9)}
.btn--wide{width:100%}
.lnk{position:relative;border:0;background:none;padding:0 0 5px;font:400 12.5px/1 var(--block);letter-spacing:.14em;text-transform:uppercase;color:inherit;border-bottom:2px solid currentColor;cursor:pointer;opacity:.9}
.lnk:hover{opacity:1}
.lnk::after{content:"";position:absolute;inset:-13px -6px -9px}

/* neon: tubos acesos e apagados */
.neon-p,.neon-t{transition:color .2s}
@keyframes flickOn{0%{opacity:.15}8%{opacity:1}12%{opacity:.2}22%{opacity:1}28%{opacity:.4}40%,100%{opacity:1}}
@keyframes buzz{0%,92%,100%{opacity:1}93%{opacity:.55}95%{opacity:1}96.5%{opacity:.7}}
@keyframes chase{0%{opacity:1}33.3%,100%{opacity:.12}}
@keyframes breathe{50%{opacity:.45}}
@keyframes in{from{opacity:0;transform:translateY(14px)}}

/* =================== ENTRADA =================== */
.stage{position:fixed;inset:0;z-index:100;overflow:hidden;background:var(--noite)}
.world{position:absolute;inset:0;will-change:transform}
.world__bg{position:absolute;inset:0}
.world__bg img{width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.world__stars{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}
.world__dim{position:absolute;inset:0;background:radial-gradient(70% 60% at 50% 50%,rgba(11,10,36,.55),rgba(7,6,22,.95));opacity:.18;pointer-events:none}
.pylon{position:absolute;inset:0;pointer-events:none}
.pylon__burst{position:absolute;overflow:visible;stroke:#c9fff8;stroke-width:3;stroke-linecap:round;fill:#c9fff8;filter:drop-shadow(0 0 3px var(--turq)) drop-shadow(0 0 9px var(--turq));opacity:.22;transition:opacity .4s}
.pylon__burst line{animation:buzz 5s infinite}
.pylon__pole{position:absolute}
.pylon__pole i{position:absolute;top:0;bottom:0;width:14px;background:linear-gradient(90deg,#3a3d55,#c7cbe0 45%,#6c7090 70%,#2a2c40);box-shadow:0 0 0 1px rgba(0,0,0,.5)}
.pylon__pole i:first-child{left:0}.pylon__pole i:last-child{right:0}
.pylon__arrow{position:absolute;overflow:visible;filter:drop-shadow(0 10px 18px rgba(0,0,0,.6))}
.arrow__body{fill:#17123d;stroke:var(--rosa);stroke-width:2.5;stroke-linejoin:round}
.arrow__tube{fill:none;stroke:#ffd6ec;stroke-width:4;stroke-linecap:round;opacity:.2;transition:opacity .3s}
.arrow__bulbs circle{fill:#5a4a2c;transition:fill .3s}
.stage.lit .arrow__tube{opacity:1;filter:drop-shadow(0 0 3px var(--rosa)) drop-shadow(0 0 8px var(--rosa))}
.stage.lit .arrow__bulbs circle{fill:#fff1c2;animation:chase .9s steps(1) infinite;animation-delay:calc(var(--k) * -.3s);filter:drop-shadow(0 0 3px #ffd36b)}
.stage.lit .pylon__burst{opacity:1}
.flip{position:absolute;left:50%;top:50%;width:min(520px,88vw);height:min(84svh,690px);perspective:1900px;container-type:inline-size;transform-origin:50% 50%}
.flip__in{position:absolute;inset:0;transform-style:preserve-3d}
.sign,.invite{position:absolute;inset:0;border-radius:30px;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden}
.invite{transform:rotateY(180deg)}
.flip__in.is-back .sign,.flip__in:not(.is-back) .invite{visibility:hidden}
.pcard.is-up .pcard__back,.pcard:not(.is-up) .pcard__front{visibility:hidden}
/* frente: o letreiro */
.sign{background:radial-gradient(90% 70% at 50% 40%,#2a2063,#120e33 70%);box-shadow:0 0 0 9px #e9e4f5,0 0 0 13px var(--rosa-esc),0 0 0 15px #5d1340,0 40px 80px -30px rgba(0,0,0,.9);border:0}
.sign::before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(120deg,rgba(255,255,255,.07),transparent 35%);pointer-events:none}
.sign__bulbs{position:absolute;inset:0;z-index:1}
.sign__bulbs i,.marquee__bulbs i,.vacancy__bulbs i,.slot__bulbs i{position:absolute;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:radial-gradient(circle at 38% 35%,#8c7a55,#4b3d22 70%);box-shadow:inset 0 0 0 1px rgba(0,0,0,.35)}
.sign__bulbs i::after,.marquee__bulbs i::after,.vacancy__bulbs i::after,.slot__bulbs i::after{content:"";position:absolute;inset:-1px;border-radius:50%;background:radial-gradient(circle at 40% 38%,#fff,#ffe9a8 45%,#ffbf3f);box-shadow:0 0 8px 2px rgba(255,205,90,.75);opacity:0}
.sign.bulbs-on .sign__bulbs i::after,.marquee.on .marquee__bulbs i::after,.vacancy.is-lit .vacancy__bulbs i::after,.slot__bulbs i::after{opacity:1;animation:chase 1.2s steps(1) infinite;animation-delay:calc(var(--k) * -.4s)}
.sign__board{position:absolute;inset:9% 9%;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:2.5cqw}
.sign__for{font:400 9cqw/1 var(--tube);letter-spacing:.1em;text-transform:lowercase;color:rgba(160,250,240,.16);text-shadow:0 1px 0 rgba(0,0,0,.5)}
.sign__for.on{color:#e6fffc;text-shadow:var(--glow-t);animation:flickOn .7s both}
.sign__name{font:400 23cqw/1.12 var(--neon);color:rgba(255,190,225,.15);white-space:nowrap;padding:.08em .06em .14em;max-width:100%}
.sign__name .wd{display:inline-block;white-space:nowrap}
.sign__name .l{display:inline-block;color:rgba(255,170,215,.16);text-shadow:0 1px 0 rgba(0,0,0,.5)}
.sign__name .l.on{color:#fff2fa;text-shadow:var(--glow-p);animation:flickOn .6s both}
.sign.all-on .sign__name .l.on{animation:buzz 6s 1s infinite}
.sign.all-on .sign__name .l.on:nth-child(3n){animation-delay:2.7s}
.sign__heart{width:13cqw;height:auto;fill:none;stroke:rgba(255,170,215,.18);stroke-width:4;stroke-linejoin:round;transition:stroke .2s}
.sign.all-on .sign__heart{stroke:#ffe0f0;filter:drop-shadow(0 0 2px var(--rosa)) drop-shadow(0 0 8px var(--rosa));animation:flickOn .8s both}
.sign__open{font:400 5.2cqw/1.2 var(--tube);letter-spacing:.18em;text-transform:uppercase;color:rgba(255,226,150,.16)}
.sign.all-on .sign__open{color:#fff3c9;text-shadow:0 0 .1em #fff,0 0 .3em var(--lamp),0 0 .7em #f4a63f;animation:blink 2.6s 1s steps(1) infinite}
@keyframes blink{0%,60%{opacity:1}61%,74%{opacity:.18}75%,100%{opacity:1}}
/* verso: o convite */
.invite{background:radial-gradient(circle at 20% 15%,rgba(255,255,255,.5) 0 1px,transparent 1.5px) 0 0/53px 61px,radial-gradient(circle at 70% 60%,rgba(255,255,255,.35) 0 1px,transparent 1.5px) 0 0/37px 43px,radial-gradient(100% 80% at 50% 30%,#2a2063,#100c2e 75%);box-shadow:0 40px 80px -30px rgba(0,0,0,.9)}
.invite__tube{position:absolute;inset:0;overflow:visible;fill:none;stroke:#d8fffb;stroke-width:3.5;filter:drop-shadow(0 0 2px var(--turq)) drop-shadow(0 0 8px var(--turq));opacity:0}
.invite__in{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:9% 9%;gap:clamp(6px,1.5vh,14px);color:var(--creme)}
.invite__hi{display:flex;flex-direction:column;align-items:center;font:400 clamp(14px,1.6vw,17px)/1 var(--tube);letter-spacing:.28em;text-transform:uppercase;color:var(--turq);text-shadow:0 0 10px rgba(46,230,214,.6)}
.invite__hi b{display:block;font:400 clamp(48px,7vw,74px)/1.15 var(--neon);letter-spacing:0;text-transform:none;color:#fff2fa;text-shadow:var(--glow-p);margin-top:4px;padding:0 .08em}
.invite__p{font:300 clamp(16px,2vw,18.5px)/1.45 var(--sans);color:rgba(255,244,226,.88);max-width:30ch}
.invite__names{display:flex;flex-direction:column;align-items:center;font:400 clamp(54px,8vw,84px)/1.08 var(--neon);color:#fff2fa;text-shadow:var(--glow-p);margin:0}
.invite__names i{font-family:var(--script);font-size:.6em;color:var(--lamp);text-shadow:0 0 12px rgba(255,211,107,.6);padding:0 .08em}
.invite__names [data-n]{white-space:nowrap;padding:0 .06em}
.invite__date{font:400 clamp(11.5px,1.4vw,13.5px)/1.5 var(--block);letter-spacing:.12em;text-transform:uppercase;color:var(--lamp)}
.invite__sig{font:400 clamp(22px,2.6vw,27px)/1.2 var(--script);color:var(--creme)}
.stage__cta{position:absolute;left:0;right:0;bottom:max(22px,4vh);z-index:7;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:0 16px;animation:in 1.2s 1.6s backwards}
.stage__cta::before{content:"";position:absolute;left:-10vw;right:-10vw;bottom:-6vh;height:190%;z-index:-1;background:radial-gradient(55% 60% at 50% 80%,rgba(8,7,26,.75),transparent 75%);pointer-events:none}
.stage__hint{font:400 15px/1 var(--tube);letter-spacing:.24em;text-transform:uppercase;color:#e6fffc;text-shadow:0 0 10px rgba(46,230,214,.7);animation:breathe 2.6s ease-in-out infinite}

/* =================== 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(11,10,36,.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,62,165,.25);color:var(--creme);transform:translateY(-110%);transition:transform .6s cubic-bezier(.2,.9,.2,1)}
body.is-open .top{transform:none}
.top__mono{position:relative;font:400 36px/1 var(--neon);text-decoration:none;color:#fff2fa;text-shadow:0 0 6px var(--rosa),0 0 16px rgba(255,62,165,.6);padding:0 4px}
.top__mono i{font-family:var(--script);font-size:.62em;color:var(--lamp);margin:0 4px;text-shadow:none}
.top__nav{display:flex;gap:28px}
.top__nav a{font:400 15px var(--tube);letter-spacing:.18em;text-transform:uppercase;text-decoration:none;opacity:.85;transition:color .25s,text-shadow .25s}
.top__nav a:hover{opacity:1;color:#e6fffc;text-shadow:var(--glow-t)}
.top__cta{position:relative;font:400 12px/1 var(--block);letter-spacing:.1em;text-transform:uppercase;text-decoration:none;padding:12px 16px;border-radius:999px;background:var(--rosa);color:#fff;box-shadow:0 0 14px rgba(255,62,165,.5)}
.top__cta::after,.top__mono::after{content:"";position:absolute;inset:-8px -4px}
@media (max-width:900px){.top__nav{display:none}.top__cta{padding:12px 13px;font-size:11px}.top{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(11,10,36,.97)}}

/* =================== CAPA =================== */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;padding:calc(var(--top-h) + 30px) 0 60px;background:var(--noite);color:var(--creme)}
.hero__bg{position:absolute;inset:0}
.hero__bg img{width:100%;height:100%;object-fit:cover;object-position:60% 50%;animation:drift 30s ease-in-out infinite alternate}
@keyframes drift{to{transform:scale(1.06)}}
.hero__veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,10,36,.9) 0%,rgba(11,10,36,.66) 30%,rgba(11,10,36,.04) 54%),linear-gradient(0deg,rgba(11,10,36,.6),transparent 30%)}
.hero__in{position:relative;z-index:2;width:var(--wrap);margin-inline:auto}
.hero__date{font:400 13.5px/1.5 var(--block);letter-spacing:.14em;text-transform:uppercase;color:var(--turq);text-shadow:0 0 12px rgba(46,230,214,.5)}
.hero__names{font:400 clamp(92px,12vw,176px)/1 var(--neon);display:flex;flex-direction:column;align-items:flex-start;margin:6px 0 16px;color:#fff2fa;text-shadow:var(--glow-p)}
.hero__names > span{white-space:nowrap;padding:0 .08em}
.hero__names i{font-family:var(--script);font-size:.42em;line-height:1;color:var(--lamp);text-shadow:0 0 14px rgba(255,211,107,.55);padding-left:.6em;margin:-.12em 0 -.06em}
.hero__sub{font:300 clamp(18px,1.8vw,21px)/1.45 var(--sans);color:rgba(255,244,226,.9);max-width:30ch;margin-bottom:28px}
.hero .btn--neon{animation:breatheBtn 3.2s ease-in-out 2.5s infinite}
@keyframes breatheBtn{0%,100%{box-shadow:0 0 0 0 rgba(255,62,165,.55),0 0 18px rgba(255,62,165,.55)}50%{box-shadow:0 0 0 12px rgba(255,62,165,0),0 0 18px rgba(255,62,165,.55)}}

/* =================== HISTÓRIA + MARQUISE =================== */
.story{padding:clamp(90px,12vw,160px) 0 clamp(70px,9vw,110px);background:var(--atom),var(--creme)}
.story__grid{display:grid;grid-template-columns:1.3fr .7fr;gap:clamp(30px,6vw,90px);align-items:center}
.story__grid > *{min-width:0}
.story__txt .lede + .lede{margin-top:14px}
.story__art{position:relative;justify-self:center;width:min(320px,100%);aspect-ratio:.86;border-radius:22px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(80% 70% at 50% 45%,#231b58,#0f0c2b 75%);box-shadow:0 0 0 8px #e9e4f5,0 0 0 10px rgba(27,26,71,.25),0 30px 60px -30px rgba(11,10,36,.8)}
.story__art::before{content:"";position:absolute;inset:0;border-radius:inherit;background:repeating-linear-gradient(0deg,transparent 0 30px,rgba(255,255,255,.025) 30px 31px),repeating-linear-gradient(90deg,transparent 0 62px,rgba(255,255,255,.02) 62px 63px)}
.story__heart{position:absolute;left:12%;right:12%;top:12%;width:76%;height:auto;overflow:visible}
.tube{fill:none;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke:rgba(255,170,215,.18)}
.story__art.on .tube--p{stroke:#ffe3f2;filter:drop-shadow(0 0 3px var(--rosa)) drop-shadow(0 0 12px var(--rosa));animation:flickOn 1.1s .2s both,buzz 7s 2s infinite}
.story__ini{position:relative;margin-top:-14%;font:400 clamp(44px,5vw,58px)/1 var(--tube);color:rgba(160,250,240,.16);letter-spacing:.04em}
.story__ini i{font-style:normal;margin:0 .12em}
.story__art.on .story__ini{color:#e6fffc;text-shadow:var(--glow-t);animation:flickOn 1s .9s both}
.story__since{position:absolute;bottom:9%;left:0;right:0;text-align:center;font:400 13px/1 var(--tube);letter-spacing:.24em;text-transform:uppercase;color:rgba(255,226,150,.2)}
.story__art.on .story__since{color:#fff3c9;text-shadow:0 0 8px rgba(255,211,107,.8);transition:color .4s 1.6s,text-shadow .4s 1.6s}
.marquee{position:relative;margin-top:clamp(60px,8vw,100px);border-radius:18px;padding:clamp(30px,3.6vw,44px) clamp(28px,3.6vw,48px);text-align:center;background:linear-gradient(180deg,#e2307f,#b81c6b 60%,#931556);box-shadow:inset 0 2px 0 rgba(255,255,255,.3),inset 0 0 0 2px rgba(0,0,0,.2),0 40px 70px -40px rgba(120,10,70,.75)}
.marquee__bulbs{position:absolute;inset:0;pointer-events:none}
.marquee__ttl{position:relative;font:400 clamp(34px,3.8vw,48px)/1 var(--script);color:#fff;text-shadow:0 2px 0 rgba(0,0,0,.2);margin-bottom:14px}
.marquee__board{position:relative;border-radius:8px;padding:clamp(16px,2.2vw,26px) clamp(10px,2vw,26px) 14px;background:linear-gradient(180deg,#fffdf2,#f6efd9);box-shadow:inset 0 0 22px rgba(255,214,120,.55),inset 0 0 0 3px #1b1a47,0 0 30px rgba(255,230,170,.55)}
.marquee__day{position:relative;margin-top:16px;font:400 13px/1.4 var(--block);letter-spacing:.14em;text-transform:uppercase;color:#fff}
.count{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(8px,2vw,24px)}
.count__cell{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0}
.count__cell > span{font:400 12px var(--block);letter-spacing:.16em;text-transform:uppercase;color:var(--rosa-esc)}
.tiles{display:flex;gap:4px;font:400 clamp(40px,5.4vw,74px)/1 var(--block);color:var(--tinta);perspective:300px}
.tile{display:block;width:.86em;height:1.12em;line-height:1.12em;text-align:center;border-radius:3px;background:linear-gradient(180deg,#fff,#efe8d4);box-shadow:0 2px 0 rgba(27,26,71,.18),inset 0 0 0 1px rgba(27,26,71,.08)}
.tile b{display:block;font-weight:400;font-variant-numeric:tabular-nums;transform-origin:50% 0}
.tile b.drop{animation:drop .55s cubic-bezier(.3,1.5,.5,1)}
@keyframes drop{from{transform:translateY(-35%) rotateX(70deg);opacity:0}}
.facts{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:26px;text-align:center}
.facts li{font-size:14.5px;color:var(--muted);min-width:0}
.facts b{display:block;font:400 28px/1.15 var(--block);color:var(--rosa);letter-spacing:.02em}
@media (max-width:700px){.story__grid{grid-template-columns:1fr}.story__art{width:200px;order:-1}.count{grid-template-columns:repeat(2,1fr);row-gap:18px}.facts{grid-template-columns:1fr 1fr;row-gap:18px}}

/* =================== PROGRAMAÇÃO (cartas) =================== */
.prog{padding:clamp(80px,10vw,150px) 0;color:var(--creme);overflow:hidden;background:radial-gradient(70% 60% at 50% 40%,rgba(255,255,255,.07),transparent 70%),repeating-radial-gradient(circle at 30% 30%,rgba(0,0,0,.05) 0 1px,transparent 1px 3px),linear-gradient(180deg,var(--feltro),var(--feltro-esc));box-shadow:inset 0 30px 60px -30px rgba(0,0,0,.5),inset 0 -30px 60px -30px rgba(0,0,0,.5)}
.deck{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2.2vw,28px);margin-top:clamp(44px,6vw,70px);align-items:start}
.pcard{min-width:0}
.pcard__hov{perspective:1300px;transition:transform .45s cubic-bezier(.3,1.6,.5,1)}
.pcard:nth-child(odd) .pcard__hov{rotate:-1.5deg}.pcard:nth-child(even) .pcard__hov{rotate:1.5deg;margin-top:22px}
.pcard__hov:hover{transform:translateY(-10px);rotate:none}
.pcard__in{position:relative;transform-style:preserve-3d}
.pcard__face{border-radius:14px;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.pcard__front{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;min-height:420px;padding:52px 24px 50px;background:radial-gradient(120% 80% at 50% 0%,#fffefb,#fbf3e3);color:var(--tinta);box-shadow:0 26px 40px -22px rgba(0,0,0,.85),inset 0 0 0 1px rgba(0,0,0,.06)}
.pcard__front::before{content:"";position:absolute;inset:9px;border:1px solid rgba(27,26,71,.12);border-radius:9px;pointer-events:none}
.pcard__back{position:absolute;inset:0;transform:rotateY(180deg);display:grid;place-items:center;background:repeating-linear-gradient(45deg,transparent 0 14px,rgba(255,62,165,.55) 14px 16px),repeating-linear-gradient(-45deg,transparent 0 14px,rgba(46,230,214,.45) 14px 16px),#1a1446;box-shadow:0 26px 40px -22px rgba(0,0,0,.85),inset 0 0 0 9px #fbf3e3,inset 0 0 0 11px var(--rosa)}
.pcard__mono{display:grid;place-items:center;width:52%;aspect-ratio:1;border-radius:50%;background:#14103a;box-shadow:0 0 0 4px #fbf3e3,0 0 0 6px var(--turq2);font:400 clamp(38px,4vw,52px)/1 var(--neon);color:#fff2fa;text-shadow:var(--glow-p);white-space:nowrap}
.pcard__mono i{font:400 .5em var(--script);color:var(--lamp);text-shadow:none;margin:0 .06em}
.pcard__c{position:absolute;display:flex;flex-direction:column;align-items:center;font:400 22px/1 var(--sans);font-weight:600}
.pcard__c b{font:400 22px/1 var(--block)}
.pcard__c--tl{left:16px;top:16px}.pcard__c--br{right:16px;bottom:16px;transform:rotate(180deg)}
.is-red .pcard__c,.is-red .pcard__suit{color:var(--rosa-esc)}.is-black .pcard__c,.is-black .pcard__suit{color:var(--tinta)}
.pcard__suit{position:absolute;left:50%;top:55%;translate:-50% -50%;font-size:190px;line-height:1;opacity:.055;pointer-events:none}
.pcard__when{position:relative;display:flex;flex-direction:column;align-items:center;font:400 13px/1 var(--tube);letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.pcard__when b{font:400 36px/1.05 var(--block);letter-spacing:.01em;color:var(--tinta);margin-bottom:6px}
.is-red .pcard__when b{color:var(--rosa-esc)}
.pcard h3{position:relative;font:400 32px/1.05 var(--script);margin:12px 0 10px;color:var(--tinta)}
.pcard__txt{position:relative;font-size:14.5px;line-height:1.5;color:var(--muted)}
.pcard__dress{position:relative;margin-top:12px;font:400 12px/1.4 var(--block);letter-spacing:.08em;text-transform:uppercase;color:var(--turq-esc)}
.pcard .lnk{margin-top:16px;color:var(--rosa-esc)}
.pcard--main .pcard__front{box-shadow:0 0 0 3px var(--rosa),0 0 30px rgba(255,62,165,.55),0 26px 40px -22px rgba(0,0,0,.85)}
@media (max-width:1000px) and (min-width:761px){.deck{grid-template-columns:repeat(2,1fr);max-width:640px}.pcard:nth-child(even) .pcard__hov{margin-top:0}}
@media (max-width:760px){
  .deck{grid-template-columns:1fr;max-width:350px;gap:26px}
  .pcard:nth-child(even) .pcard__hov{margin-top:0}
  .pcard .pcard__hov{rotate:none!important}
  .pcard__front{min-height:0;padding:50px 26px 48px}
}

/* =================== TRAJE =================== */
.dress{padding:clamp(80px,10vw,140px) 0;background:var(--atom),var(--creme)}
.dress__grid{display:grid;grid-template-columns:1.1fr .9fr;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:16px}
.dress__tips li{position:relative;padding-left:30px}
.dress__tips li::before{content:"★";position:absolute;left:0;top:-.05em;font-size:19px;color:var(--rosa);text-shadow:0 0 8px rgba(255,62,165,.5)}
.swatches{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.sw{display:flex;flex-direction:column;align-items:center;gap:12px}
.sw i{position:relative;display:grid;place-items:center;width:100%;aspect-ratio:.72;border-radius:14px;background:radial-gradient(80% 70% at 50% 40%,#231b58,#0f0c2b 80%);box-shadow:0 0 0 4px #e9e4f5,0 16px 26px -16px rgba(11,10,36,.8);transition:transform .45s cubic-bezier(.3,1.6,.5,1)}
.sw b{display:block;width:56%;aspect-ratio:.5;border-radius:999px;border:4px solid color-mix(in srgb,var(--c) 30%,#2a2550);transition:border-color .2s,box-shadow .2s}
.sw.on b{border-color:color-mix(in srgb,var(--c) 70%,#fff);box-shadow:0 0 6px var(--c),0 0 18px var(--c),inset 0 0 8px var(--c);animation:flickOn .8s both}
.sw:hover i,.sw:active i{transform:translateY(-6px) rotate(-4deg)}
.sw span{font:400 14px/1.2 var(--tube);letter-spacing:.06em;white-space:nowrap;text-transform:uppercase;color:var(--muted);text-align:center}
@media (max-width:800px){.dress__grid{grid-template-columns:1fr}}
@media (max-width:700px){.swatches{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 10px;max-width:400px;margin-inline:auto}.sw{width:calc(33.3% - 10px);min-width:0}.sw i{max-width:88px}}

/* =================== MAPA =================== */
.mapsec{padding:clamp(80px,10vw,140px) 0;color:var(--creme);background:radial-gradient(60% 50% at 80% 0%,rgba(255,62,165,.16),transparent 70%),radial-gradient(50% 40% at 0% 100%,rgba(46,230,214,.12),transparent 70%),linear-gradient(180deg,var(--noite2),var(--noite))}
.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);border-radius:16px;z-index:1;background:#1a1840;box-shadow:0 0 0 2px rgba(255,62,165,.5),0 0 30px rgba(255,62,165,.25)}
.map .leaflet-tile-pane{filter:invert(1) hue-rotate(200deg) brightness(.82) contrast(.9) saturate(.5)}
.leaflet-container{font-family:var(--sans)}
.leaflet-control-attribution{background:rgba(11,10,36,.7)!important;color:#bbb!important}.leaflet-control-attribution a{color:#ddd!important}
.pin{position:relative;width:52px;height:52px;transition:transform .35s cubic-bezier(.3,1.6,.5,1)}
.pin__g{position:absolute;inset:0;border-radius:50%;display:grid;place-items:center;background:#14103a;box-shadow:0 0 0 3px #ffd6ec,0 0 0 5px var(--rosa),0 0 18px var(--rosa),0 8px 14px -4px rgba(0,0,0,.6)}
.leaflet-container .pin img{width:32px!important;height:32px!important;max-width:32px!important;object-fit:contain}
.pin__n{position:absolute;right:-6px;top:-6px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--turq2);color:var(--noite);font:400 12px var(--block);box-shadow:0 0 0 2px var(--noite)}
.pin.is-on{transform:scale(1.25) rotate(-6deg)}
.places{list-style:none;display:grid;gap:12px}
.place{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:18px;cursor:pointer;transition:border-color .3s,box-shadow .3s,background .3s}
.place.is-on{border-color:var(--turq);background:rgba(46,230,214,.08);box-shadow:0 0 0 1px var(--turq),0 0 24px rgba(46,230,214,.25)}
.place__day{display:flex;align-items:center;gap:10px;font:400 15px/1 var(--tube);letter-spacing:.16em;text-transform:uppercase;color:var(--turq)}
.place__day b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--rosa);color:#fff;letter-spacing:0;font:400 12px var(--block)}
.place h3{font:400 30px/1.1 var(--script);margin:8px 0 2px;color:#fff}
.place p{font-size:14.5px;color:rgba(255,244,226,.72)}
.place__go{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.place__go a{position:relative;font:400 11px var(--block);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;padding:9px 12px;border:1px solid rgba(255,255,255,.3);border-radius:999px;color:#fff}
.place__go a::after{content:"";position:absolute;inset:-6px -3px}
.place__go a:hover{background:var(--rosa);border-color:var(--rosa)}
.places__hint{display:none}
.map.is-in .pin{animation:pinIn .9s cubic-bezier(.3,1.6,.5,1) backwards}
.map.is-in .leaflet-marker-icon:nth-of-type(2) .pin{animation-delay:.12s}
.map.is-in .leaflet-marker-icon:nth-of-type(3) .pin{animation-delay:.24s}
.map.is-in .leaflet-marker-icon:nth-of-type(4) .pin{animation-delay:.36s}
@keyframes pinIn{from{transform:translateY(-50px) rotate(18deg);opacity:0}}
@media (max-width:900px){
  .mapsec__grid{grid-template-columns:1fr;width:100%;gap:14px}
  .mapbox{padding:0 16px}
  .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 13px var(--tube);letter-spacing:.2em;text-transform:uppercase;color:var(--turq)}
}

/* =================== VIAGEM =================== */
.trip{padding:clamp(80px,10vw,140px) 0;background:var(--atom),var(--creme)}
.trip__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,36px);margin-top:46px}
.trip__item{min-width:0}
.trip__il{height:100px;width:auto;margin-bottom:16px;object-fit:contain;max-width:100%}
.trip__item h3{font:400 32px/1.1 var(--script);color:var(--tinta)}
.trip__item p{margin-top:8px;font-size:15.5px;color:var(--muted);font-weight:300}
@media (max-width:900px){.trip__grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.trip__grid{grid-template-columns:1fr}}

/* =================== PRESENTES (fichas) =================== */
.gifts{padding:clamp(80px,10vw,140px) 0;color:var(--creme);background:radial-gradient(70% 60% at 50% 40%,rgba(255,255,255,.07),transparent 70%),repeating-radial-gradient(circle at 70% 30%,rgba(0,0,0,.05) 0 1px,transparent 1px 3px),linear-gradient(180deg,var(--feltro),var(--feltro-esc));box-shadow:inset 0 30px 60px -30px rgba(0,0,0,.5)}
.chips-grid{margin-top:56px;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(30px,3.6vw,46px) clamp(14px,2.2vw,28px)}
.chip{position:relative;border:0;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;text-align:center;padding:0;color:inherit;min-width:0}
.chip__disc{display:block;width:min(150px,80%);aspect-ratio:1;perspective:600px;transition:transform .45s cubic-bezier(.3,1.6,.5,1)}
.chip:hover .chip__disc{transform:translateY(-8px)}
.chip__spin{position:relative;display:grid;place-items:center;width:100%;height:100%;border-radius:50%;background:radial-gradient(circle,transparent 61%,rgba(0,0,0,.18) 61.5% 63%,transparent 63.5%),repeating-conic-gradient(from 11deg,#fff6e6 0 14deg,transparent 14deg 45deg),var(--c);box-shadow:inset 0 0 0 3px rgba(0,0,0,.18),inset 0 -6px 0 rgba(0,0,0,.18),0 4px 0 color-mix(in srgb,var(--c) 60%,#000),0 8px 0 color-mix(in srgb,var(--c) 50%,#000),0 22px 24px -10px rgba(0,0,0,.7)}
.chip__spin::before{content:"";position:absolute;inset:7%;border-radius:50%;background:var(--c);-webkit-mask:radial-gradient(circle,transparent 66%,#000 66.5%);mask:radial-gradient(circle,transparent 66%,#000 66.5%)}
.chip__face{position:relative;display:grid;place-items:center;width:60%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 40% 35%,#fffdf6,#f3e8d2);box-shadow:0 0 0 3px #fff6e6,inset 0 0 0 2px var(--c),inset 0 0 0 5px #fffdf6,inset 0 0 0 6px color-mix(in srgb,var(--c) 50%,transparent)}
.chip__face img{width:72%;height:72%;object-fit:contain}
.chip.is-flip .chip__spin{animation:chipFlip .6s cubic-bezier(.4,1.4,.5,1)}
@keyframes chipFlip{50%{transform:translateY(-34px) rotateY(180deg)}100%{transform:rotateY(360deg)}}
.chip__k{margin-top:20px;font:400 12.5px/1 var(--tube);letter-spacing:.22em;text-transform:uppercase;color:var(--turq);text-shadow:0 0 8px rgba(46,230,214,.5)}
.chip h3{font:400 18px/1.25 var(--sans);font-weight:600;margin:8px 0 4px;color:#fff}
.chip p{font-size:13.5px;line-height:1.4;color:rgba(255,244,226,.72)}
.chip__price{margin-top:10px;display:inline-block;padding:7px 14px 6px;border-radius:999px;background:rgba(0,0,0,.28);font:400 15px/1 var(--block);letter-spacing:.04em;color:var(--lamp);box-shadow:inset 0 0 0 1px rgba(255,211,107,.35)}
@media (max-width:760px){.chips-grid{grid-template-columns:repeat(2,1fr);row-gap:40px}.chip h3{font-size:16px}.chip p{font-size:12.5px}.chip__disc{width:min(130px,84%)}}

/* 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(11,10,36,.75);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);border-radius:18px;padding:36px 28px 28px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;box-shadow:0 0 0 3px var(--rosa),0 0 40px rgba(255,62,165,.4)}
.modal__x{position:absolute;top:6px;right:6px;width:44px;height:44px;display:grid;place-items:center;line-height:1;border:0;background:none;font-size:30px;cursor:pointer;color:var(--tinta);z-index:1}
.pix__il{height:90px;width:auto;max-width:70%;object-fit:contain}
.pix__title{font:400 32px/1.1 var(--script);color:var(--tinta)}
.pix__amount{font:400 30px var(--block);color:var(--rosa-esc)}
.pix__val{display:flex;align-items:center;gap:8px;font:400 28px var(--block);color:var(--rosa-esc)}
.pix__val input{width:140px;border:0;border-bottom:2px solid var(--rosa);background:none;text-align:center;font:inherit;outline:0}
.pix__qr{width:190px;height:190px;background:#fff;padding:10px;border-radius:8px}
.pix__qr svg{width:100%;height:100%}
.pix__demo{font-size:12.5px;color:var(--muted);max-width:30ch}

/* =================== RSVP =================== */
.rsvp{position:relative;padding:clamp(80px,10vw,140px) 16px;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 20% 15%,rgba(255,255,255,.55) 0 1px,transparent 1.5px) 0 0/71px 67px,radial-gradient(circle at 70% 60%,rgba(255,255,255,.35) 0 1px,transparent 1.5px) 0 0/43px 51px,radial-gradient(60% 50% at 50% 0%,rgba(255,62,165,.2),transparent 70%),linear-gradient(180deg,var(--noite),var(--indigo))}
.rsvp__card{position:relative;width:min(620px,100%);background:var(--papel);border-radius:22px;padding:clamp(40px,6vw,64px) clamp(24px,5vw,56px);box-shadow:0 0 0 3px #ffd6ec,0 0 0 6px var(--rosa),0 0 46px rgba(255,62,165,.45),0 40px 80px -40px rgba(0,0,0,.6)}
.rsvp__form,.rsvp__done{position:relative;display:flex;flex-direction:column;gap:20px}
.rsvp__form .h2{font-size:clamp(42px,5vw,60px)}
.rsvp__deadline{color:var(--muted);margin-top:-8px}
.fld{display:flex;flex-direction:column;gap:4px;font:400 11.5px/1.3 var(--block);letter-spacing:.1em;text-transform:uppercase;color:var(--rosa-esc)}
.fld input,.fld textarea,.fld select{font:400 17px var(--sans);letter-spacing:0;text-transform:none;color:var(--tinta);padding:10px 2px;border:0;border-bottom:1px solid rgba(27,26,71,.3);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:400 11.5px/1.3 var(--block);letter-spacing:.1em;text-transform:uppercase;color:var(--rosa-esc);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:12px 10px;border:1px solid rgba(27,26,71,.3);border-radius:999px;cursor:pointer;font:400 24px/1.1 var(--script);transition:all .3s}
.choice input:checked + span{background:var(--noite);color:#fff2fa;border-color:var(--noite);text-shadow:0 0 8px var(--rosa)}
.choice input:focus-visible + span,.chips input:focus-visible + span{outline:2px solid var(--rosa);outline-offset:2px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips legend{width:100%}
.chips span{display:inline-block;padding:9px 14px;border:1px solid rgba(27,26,71,.26);border-radius:999px;cursor:pointer;font-size:14.5px;transition:all .25s}
.chips input:checked + span{background:rgba(46,196,182,.18);border-color:var(--turq2)}
.stepper{display:flex;align-items:center;border:1px solid rgba(27,26,71,.3);border-radius:999px;width:max-content}
.stepper button{width:46px;height:44px;border:0;background:none;font-size:22px;cursor:pointer;color:var(--tinta)}
.stepper output{min-width:40px;text-align:center;font:400 24px var(--block);color:var(--tinta)}
.rsvp__err{color:#b0233f;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}
.rsvp__demo{font-size:13px!important}
/* comprovante (resumo da resposta), como o tíquete do caça-níquel */
.ticket{position:relative;align-self:stretch;max-width:440px;margin:0 auto;width:100%;text-align:left;background:#fffdf6;border-radius:6px;padding:20px 20px 16px;box-shadow:0 10px 20px -14px rgba(0,0,0,.5),inset 0 0 0 1px rgba(27,26,71,.1)}
.ticket::before,.ticket::after{content:"";position:absolute;top:50%;width:16px;height:16px;margin-top:-8px;border-radius:50%;background:var(--papel);box-shadow:inset 0 0 0 1px rgba(27,26,71,.1)}
.ticket::before{left:-8px}.ticket::after{right:-8px}
.ticket__top{font:400 12.5px/1.3 var(--block);letter-spacing:.08em;color:var(--rosa-esc);padding-bottom:10px;margin-bottom:10px;border-bottom:2px dashed rgba(27,26,71,.18)}
.ticket__body{font-size:14.5px;line-height:1.55;white-space:pre-line;color:var(--tinta)}
.ticket__bar{height:26px;margin-top:14px;background:repeating-linear-gradient(90deg,var(--tinta) 0 2px,transparent 2px 4px,var(--tinta) 4px 7px,transparent 7px 9px,var(--tinta) 9px 10px,transparent 10px 13px);opacity:.75}
/* o letreiro "tem vaga → lugar reservado" */
.vacancy{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:20px;background:rgba(8,7,26,.9);visibility:hidden;opacity:0;pointer-events:none}
.vacancy.is-on{visibility:visible}
.vacancy__sign{position:relative;width:min(580px,92vw);padding:52px 30px 46px;border-radius:26px;text-align:center;background:radial-gradient(90% 80% at 50% 40%,#2a2063,#100c2e 75%);box-shadow:0 0 0 8px #e9e4f5,0 0 0 12px var(--rosa-esc),0 40px 80px -30px rgba(0,0,0,.9)}
.vacancy__bulbs{position:absolute;inset:0}
.vacancy__a{position:relative;font:400 clamp(30px,8vw,46px)/1.1 var(--tube);letter-spacing:.16em;text-transform:uppercase;color:rgba(160,250,240,.14)}
.vacancy__a.on{color:#e6fffc;text-shadow:var(--glow-t)}
.vacancy__a.dying{animation:dying .7s steps(1) both}
@keyframes dying{0%{opacity:1}15%{opacity:.2}25%{opacity:1}40%{opacity:.15}55%{opacity:.8}70%,100%{opacity:.25}}
.vacancy__b{position:relative;margin-top:10px;white-space:nowrap;font:400 clamp(40px,11vw,74px)/1.1 var(--neon);color:rgba(255,170,215,.14)}
.vacancy__b.on{color:#fff2fa;text-shadow:var(--glow-p);animation:flickOn .7s both}
.vacancy__n{position:relative;margin-top:10px;font:400 clamp(24px,6vw,32px)/1.2 var(--script);color:var(--lamp);opacity:0;transform:translateY(10px);transition:opacity .5s,transform .5s}
.vacancy__n.on{opacity:1;transform:none}

/* =================== FIM: o caça-níquel =================== */
.end{position:relative;min-height:100svh;overflow:hidden;color:var(--creme);display:flex;flex-direction:column;justify-content:center;padding:calc(var(--top-h) + 30px) 16px 90px;background:radial-gradient(circle at 20% 15%,rgba(255,255,255,.5) 0 1px,transparent 1.5px) 0 0/61px 57px,radial-gradient(circle at 70% 60%,rgba(255,255,255,.3) 0 1px,transparent 1.5px) 0 0/37px 41px,linear-gradient(180deg,var(--indigo),var(--noite) 60%)}
.end__glow{position:absolute;inset:0;background:radial-gradient(40% 35% at 50% 40%,rgba(255,62,165,.28),transparent 70%),radial-gradient(30% 30% at 50% 70%,rgba(46,230,214,.12),transparent 70%);transition:opacity 1s;opacity:.6}
.end.is-party .end__glow{opacity:1}
.end__in{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px}
.slot{position:relative;width:min(440px,calc(100vw - 96px));margin-bottom:8px}
.slot__top{position:relative;height:clamp(96px,12vw,118px);border-radius:120px 120px 14px 14px;display:grid;place-items:center;background:radial-gradient(80% 90% at 50% 100%,#2a2063,#120e33);box-shadow:0 0 0 7px #d9dcec,0 0 0 9px #8c90ad,inset 0 0 0 3px rgba(0,0,0,.4)}
.slot__bulbs{position:absolute;inset:0;border-radius:inherit}
.slot__bulbs i{width:10px;height:10px;margin:-5px 0 0 -5px}
.slot__bulbs i::after{animation-duration:1.8s!important}
.slot.is-win .slot__bulbs i::after{animation-duration:.45s!important}
.slot__ini{position:relative;font:400 clamp(46px,6vw,62px)/1 var(--neon);color:rgba(255,170,215,.16);white-space:nowrap;padding-top:14px}
.slot__ini i{font:400 .55em var(--script);margin:0 .12em}
.slot.is-win .slot__ini{color:#fff2fa;text-shadow:var(--glow-p);animation:flickOn .8s both}
.slot.is-win .slot__ini i{color:var(--lamp);text-shadow:0 0 12px rgba(255,211,107,.7)}
.slot__body{position:relative;margin-top:16px;border-radius:18px 18px 26px 26px;padding:22px 20px 18px;background:linear-gradient(90deg,#c4196e,#ff4fae 22%,#ff76c0 45%,#e2307f 70%,#a3125c);box-shadow:0 0 0 7px #d9dcec,0 0 0 9px #8c90ad,inset 0 2px 0 rgba(255,255,255,.4),0 40px 60px -30px rgba(0,0,0,.9)}
.slot__win{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:10px;border-radius:12px;background:#120e33;box-shadow:inset 0 4px 14px rgba(0,0,0,.8),0 0 0 4px #e9e4f5}
.reel{position:relative;height:clamp(118px,15vw,150px);overflow:hidden;border-radius:6px;background:linear-gradient(90deg,#e8e1cf,#fffdf6 35%,#fffdf6 65%,#e0d8c3)}
.reel::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(18,14,51,.6),transparent 30%,transparent 70%,rgba(18,14,51,.6))}
.reel__s{position:absolute;left:0;right:0;top:0;will-change:transform}
.sym{display:grid;place-items:center;height:clamp(84px,10.5vw,104px)}
.sym img{width:74%;height:74%;object-fit:contain;user-select:none;-webkit-user-drag:none}
.slot.is-spin .reel__s{filter:blur(1.2px)}
.reel.is-stop .reel__s{filter:none}
.slot__line{position:absolute;left:4px;right:4px;top:50%;height:2px;margin-top:-1px;background:var(--rosa);box-shadow:0 0 8px var(--rosa);opacity:.7;pointer-events:none}
.slot.is-win .slot__line{opacity:1;animation:blink .5s steps(1) 4}
.slot__tray{height:30px;margin:16px 14% 0;border-radius:6px 6px 16px 16px;background:linear-gradient(180deg,#5b5e78,#c7cbe0 40%,#8c90ad);box-shadow:inset 0 6px 8px rgba(0,0,0,.5)}
.slot__lever{position:absolute;right:-40px;top:calc(clamp(96px,12vw,118px) + 30px);width:36px;height:150px;border:0;background:none;cursor:grab;perspective:420px;touch-action:none;-webkit-tap-highlight-color:transparent}
.slot__lever::before{content:"";position:absolute;left:0;bottom:0;width:22px;height:46px;border-radius:0 10px 10px 0;background:linear-gradient(90deg,#8c90ad,#e3e6f3 50%,#6d7190)}
.slot__arm{position:absolute;left:4px;bottom:24px;width:10px;height:118px;border-radius:5px;transform-origin:50% 100%;background:linear-gradient(90deg,#6d7190,#f3f4fa 45%,#8c90ad)}
.slot__arm b{position:absolute;left:50%;top:-14px;width:30px;height:30px;margin-left:-15px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffd0e8,var(--rosa) 45%,#9c0f58);box-shadow:0 0 14px rgba(255,62,165,.7)}
.slot__lever:focus-visible{outline:2px solid var(--turq);outline-offset:4px;border-radius:8px}
.end__big{font:400 clamp(52px,7.4vw,104px)/1 var(--script);color:#fff;text-shadow:0 0 24px rgba(255,62,165,.5);transition:text-shadow 1s}
.end.is-party .end__big{text-shadow:var(--glow-p)}
.end__hint{max-width:34ch;font:400 16px/1.4 var(--tube);letter-spacing:.16em;text-transform:uppercase;color:#e6fffc;text-shadow:0 0 10px rgba(46,230,214,.7);animation:breathe 2.6s ease-in-out infinite}
.end.is-party .end__hint{animation:none;letter-spacing:.06em;text-transform:none;font-size:18px;color:var(--lamp);text-shadow:0 0 10px rgba(255,211,107,.6)}
.end__btn{margin-top:4px}
.end__foot{position:absolute;z-index:3;bottom:16px;left:16px;right:16px;text-align:center;font:400 11.5px var(--sans);letter-spacing:.06em;color:rgba(255,244,226,.75)}
.end__foot a{position:relative;color:#fff}
.end__foot a::after{content:"";position:absolute;inset:-14px -6px}

.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(11,10,36,.92);color:var(--creme);padding:8px 12px;border-radius:999px;box-shadow:0 0 0 1px rgba(255,62,165,.4);opacity:0;pointer-events:none;transition:opacity .4s, transform .4s}
body.is-open .demo-tag{opacity:1;pointer-events:auto}
body.at-end .demo-tag,body.tag-away .demo-tag{opacity:0;pointer-events:none}
body.tag-away .demo-tag{transform:translateY(8px)}
.coins{position:fixed;inset:0;width:100%;height:100%;z-index:130;pointer-events:none}
.toast{position:fixed;left:50%;bottom:24px;translate:-50% 220%;background:var(--noite);color:var(--creme);padding:12px 20px;border-radius:999px;font-size:14px;z-index:140;transition:translate .4s ease;visibility:hidden;box-shadow:0 0 0 1px var(--rosa)}
.toast.is-on{translate:-50% 0;visibility:visible}

.reveal-words .w{display:inline-block;overflow:hidden;vertical-align:top;padding:.12em .04em .14em;margin:-.12em -.04em -.14em}
.reveal-words .w > span{display:inline-block}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---------- confirmação por pessoa (painel Sapia v4) ---------- */
.people{display:flex;flex-direction:column;gap:14px}
.person{position:relative;border:1px solid var(--linha);border-radius:14px;background:rgba(46,196,182,.06);padding:20px 18px 18px;display:flex;flex-direction:column;gap:14px;min-width:0}
.person legend{font:400 28px/1 var(--script);letter-spacing:0;text-transform:none;color:var(--rosa-esc);padding:0 8px;margin:0 0 0 -6px}
.p-restr input{position:absolute;opacity:0;pointer-events:none}
.p-lbl{width:100%;font:400 11.5px/1.3 var(--block);letter-spacing:.1em;text-transform:uppercase;color:var(--rosa-esc);margin-bottom:2px}
.p-lbl i{font:400 13px var(--sans);font-style:normal;letter-spacing:.02em;text-transform:none;color:var(--muted)}
.p-restr span,.p-cat span{font-size:14px;padding:8px 13px}
.p-cat input:checked + span{background:var(--noite);color:#fff;border-color:var(--noite)}
.person .fld input{padding:9px 2px}
.van{gap:8px}
.van__n{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px;flex-wrap:wrap}
.stepper--sm button{width:40px;height:38px;font-size:20px}
.stepper--sm output{font-size:20px;min-width:32px}
.lead{border-top:1px dashed rgba(27,26,71,.25);padding-top:16px}
.lead summary{cursor:pointer;list-style:none;font:400 16px/1.45 var(--sans);font-weight:500;color:var(--tinta);display:flex;gap:10px;align-items:flex-start}
.lead summary::-webkit-details-marker{display:none}
.lead summary::before{content:"+";flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--rosa);color:#fff;font:700 16px/1 var(--sans);margin-top:1px}
.lead[open] summary::before{content:"–"}
.lead__b{display:flex;flex-direction:column;gap:16px;margin-top:16px;padding:18px 16px;border:1px solid var(--linha);border-radius:14px;background:rgba(46,196,182,.06)}
.lead__b .chips span{font-size:14px;padding:8px 13px}
.lead__ok{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;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__mesa{position:relative;text-align:center;padding-bottom:24px;margin-bottom:28px;border-bottom:1px dashed rgba(27,26,71,.25)}
.rsvp__mesas{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 34px;margin-top:8px}
.rsvp__mn{font:400 clamp(44px,6vw,60px)/1.05 var(--script);color:var(--tinta)}
.rsvp__mp{font:300 16px/1.45 var(--sans);color:var(--muted);margin-top:6px;max-width:32ch;text-wrap:balance}
.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}
.rsvp__qr{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}
.rsvp__card .rsvp__qe{font:400 13px/1.3 var(--block);letter-spacing:.1em;text-transform:uppercase;color:var(--rosa-esc)}
.rsvp__card .rsvp__qr p:last-child{font-size:14.5px;color:var(--muted)}
.rsvp__qri{width:172px;height:172px;background:#fff;padding:8px;border:1px solid var(--linha);border-radius:12px;box-shadow:0 0 0 6px rgba(255,62,165,.18)}
.rsvp__qri svg{width:100%;height:100%;display:block}
.rsvp__qr--top{padding-bottom:24px;margin-bottom:26px;border-bottom:1px dashed rgba(27,26,71,.25)}
.rsvp__cc{width:100%}
.rsvp__cc:empty{display:none}
.ccard{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;border:1px solid var(--linha);border-radius:14px;background:#fff6ea;padding:22px 20px;width:100%;max-width:440px;margin:0 auto}
.ccard__logo{max-width:130px;max-height:70px;object-fit:contain;margin-bottom:4px}
.rsvp__card .ccard__e{font:400 12px/1.3 var(--block);letter-spacing:.1em;text-transform:uppercase;color:var(--rosa-esc)}
.rsvp__card .ccard__n{font:400 30px/1.15 var(--script);color:var(--tinta)}
.rsvp__done .ccard__f{font-size:15.5px;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:400 11.5px/1 var(--block);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:var(--tinta);border:1px solid rgba(27,26,71,.3);border-radius:999px;padding:12px 15px}
.ccard__a a:first-child{background:var(--rosa);border-color:var(--rosa);color:#fff}
.fld select{width:100%;max-width:100%;min-width:0;text-overflow:ellipsis}
.van,.van select,.rsvp__form > *{min-width:0}

/* ===== celular ===== */
@media (max-width:760px){
  .flip{width:min(400px,88vw);height:min(78svh,660px)}
  .sign__board{justify-content:space-evenly;inset:12% 8%;gap:0}
  .sign__for{font-size:13cqw}
  .sign__name{font-size:38cqw}
  .sign__heart{width:20cqw}
  .sign__open{font-size:6.6cqw;max-width:12em}
}
@media (max-width:700px){
  .hero{align-items:flex-start;padding-top:calc(var(--top-h) + 34px)}
  .hero__bg img{object-position:64% 50%}
  .hero__veil{background:linear-gradient(180deg,rgba(11,10,36,.9) 0%,rgba(11,10,36,.72) 36%,rgba(11,10,36,.08) 60%,rgba(11,10,36,.5) 100%)}
  .hero__in{text-align:center}
  .hero__names{align-items:center}
  .hero__names i{padding-left:0}
  .hero__sub{margin-inline:auto}
  .hero__date{font-size:12px;letter-spacing:.1em}
  .story,.dress,.trip,.mapsec{padding-block:56px}
  .prog,.gifts{padding-block:64px}
  .rsvp{padding-block:56px}
  .story__txt,.dress__grid > div:first-child,.prog > .wrap:first-child,.mapsec > .wrap:first-child,.gifts > .wrap:first-child,.trip .h2{text-align:center}
  .lede{margin-inline:auto}
  .place{text-align:center}
  .place__day{justify-content:center}
  .place__go{justify-content:center}
  .trip__grid{gap:26px;margin-top:30px}
  .trip__item{display:grid;grid-template-columns:84px 1fr;column-gap:16px;align-items:start}
  .trip__il{grid-row:span 2;height:auto;width:84px;margin:0}
  .trip__item p{margin-top:2px}
  .rsvp__form > .h2,.rsvp__deadline{text-align:center}
  .choice span{font-size:21px;padding:12px 6px}
  .dress__tips{text-align:left}
  .marquee{padding-inline:18px}
}
@media (max-width:520px){.choice span{white-space:nowrap;font-size:clamp(18px,5.4vw,21px);padding:12px 4px}}
@media (max-width:400px){.btn{letter-spacing:.08em;padding-inline:22px;font-size:13px}.modal__box{padding-inline:20px}.tiles{font-size:38px}}
