/* Valentina & Arthur — casamento industrial numa antiga tecelagem da Mooca (São Paulo).
   Tijolo, aço, concreto, latão e luz âmbar de lâmpada de filamento.
   Layout: entrada (a porta de enrolar sobe, as lâmpadas acendem, o convite desce num fio) → capa no salão →
   relógio de luz, eletroduto, caixotes, relógio de ponto e o quadro de força que acende o letreiro. */
:root{
  --carvao:#191816; --grafite:#2B2C2E; --aco:#4A4D52; --concreto:#8E8A84; --cimento:#D8D2C8; --cal:#F2EDE5; --papel:#FBF8F2;
  --tijolo:#9A4A30; --tijolo-esc:#6E3424; --latao:#C29A4E; --latao-esc:#8E6E33; --ambar:#FFB65C; --musgo:#4F5B3A;
  --tinta:#232220; --muted:#6A655E; --linha:rgba(35,34,32,.14);
  --display:"DM Serif Display", Georgia, serif;
  --label:"Big Shoulders Display", "Arial Narrow", sans-serif;
  --stencil:"Big Shoulders Stencil Display", "Big Shoulders Display", "Arial Narrow", sans-serif;
  --sans:"Manrope", "Helvetica Neue", Arial, sans-serif;
  --top-h:70px; --wrap:min(1120px, calc(100% - 40px));
  --concreto-tx:radial-gradient(circle at 20% 30%,rgba(0,0,0,.035) 0 1px,transparent 1.5px) 0 0/7px 7px,radial-gradient(circle at 70% 60%,rgba(255,255,255,.4) 0 1px,transparent 1.5px) 0 0/11px 11px;
  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 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(--tijolo);outline-offset:3px}

.h2{font:400 clamp(38px,5vw,64px)/1.04 var(--display);color:var(--tinta);letter-spacing:-.01em}
.h2--light{color:var(--cal)}
.lede{max-width:58ch;margin-top:18px;color:var(--muted);font-size:clamp(16.5px,1.3vw,18.5px);font-weight:300}
.lede--light{color:rgba(242,237,229,.78)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;border:0;border-radius:4px;padding:16px 30px;font:800 15px/1 var(--label);letter-spacing:.2em;text-transform:uppercase;cursor:pointer;text-decoration:none;transition:transform .3s ease,background .3s,box-shadow .3s}
.btn:hover{transform:translateY(-2px)}
.btn--amber{background:var(--ambar);color:var(--carvao);box-shadow:0 0 0 1px rgba(0,0,0,.08) inset,0 14px 34px -14px rgba(255,150,60,.7)}
.btn--amber:hover{background:#ffc67a}
.btn--wide{width:100%}
.lnk{position:relative;border:0;background:none;padding:0 0 5px;font:800 13px/1 var(--label);letter-spacing:.2em;text-transform:uppercase;color:inherit;border-bottom:1px solid currentColor;cursor:pointer;opacity:.85}
.lnk:hover{opacity:1}
.lnk::after{content:"";position:absolute;inset:-13px -6px -9px}

/* =================== ENTRADA =================== */
.stage{position:fixed;inset:0;z-index:100;overflow:hidden;background:#0d0c0b}
.stage__int{position:absolute;inset:0;width:100%;height:100%;display:block}
.stage__haze{position:absolute;inset:0;pointer-events:none;opacity:0;mix-blend-mode:screen;background:radial-gradient(60% 50% at 50% 38%,rgba(255,170,80,.22),transparent 70%),linear-gradient(180deg,rgba(255,180,90,.06),transparent 50%)}
.stage__bulbs{position:absolute;inset:0;pointer-events:none;z-index:2;mix-blend-mode:screen}
.hb{position:absolute;top:0;width:calc(var(--h) * .374);margin-left:calc(var(--h) * -.187);height:calc(var(--cord) + var(--h));transform-origin:50% 0;will-change:transform}
.hb__cord{position:absolute;left:50%;top:0;width:2px;margin-left:-1px;height:calc(var(--cord) + 4px);background:linear-gradient(90deg,#050505,#2a2724 60%,#080808)}
.hb__b{position:absolute;left:0;right:0;top:var(--cord);height:var(--h)}
.hb__b img{position:absolute;left:50%;top:0;height:100%;width:auto;max-width:none;translate:-50% 0}
.hb__on{opacity:0}
.ext{position:absolute;inset:0;z-index:3;will-change:transform}
.ext__box{position:absolute}
.ext__wall{position:absolute;inset:0;background:url(img/fachada.webp) 0 0/100% 100% no-repeat}
.ext__door{position:absolute;overflow:hidden}
.door{position:absolute;inset:0;background-image:url(img/fachada.webp);background-repeat:no-repeat;will-change:transform;box-shadow:0 10px 16px rgba(0,0,0,.6)}
.door__light{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.6),transparent 16%)}
.door__paint{position:absolute;left:50%;top:47%;translate:-50% -50%;display:flex;flex-direction:column;align-items:center;text-align:center;color:#F1E7D4;mix-blend-mode:hard-light;animation:in 1.2s .3s backwards}
.door__for{font:800 clamp(15px,1.5vw,22px)/1 var(--stencil);letter-spacing:.42em;text-transform:uppercase;padding-left:.42em;opacity:.86;text-shadow:0 0 1px rgba(241,231,212,.6)}
.door__name{font:400 clamp(58px,9.4vw,150px)/1.02 var(--display);font-style:italic;white-space:nowrap;margin-top:.12em;text-shadow:0 0 1px rgba(241,231,212,.5),0 2px 0 rgba(0,0,0,.25);animation:nameIn 1.5s .5s cubic-bezier(.2,.9,.2,1) backwards}
.card{position:absolute;left:50%;top:50%;z-index:6;width:min(540px,88vw);height:min(80svh,680px);pointer-events:none;opacity:0;transform-origin:50% -40px}
.card__wire{position:absolute;left:50%;bottom:calc(100% + 18px);width:2px;margin-left:-1px;height:110vh;background:linear-gradient(90deg,#050505,#3a3632,#0a0a0a)}
.card__clip{position:absolute;left:50%;top:-22px;width:70px;height:36px;margin-left:-35px;z-index:2;border-radius:3px 3px 9px 9px;background:linear-gradient(180deg,#e8c77d,#b88e45 45%,#8a6a31);box-shadow:0 6px 10px -4px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.45)}
.card__clip::before{content:"";position:absolute;left:14px;right:14px;top:-16px;height:22px;border:3px solid #a58040;border-bottom:0;border-radius:12px 12px 0 0}
.card__paper{position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 0%,#fbf7ef,#efe7d9);border-radius:3px;box-shadow:0 40px 80px -30px rgba(0,0,0,.85),0 0 0 1px rgba(0,0,0,.05);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:9% 8%;gap:clamp(6px,1.4vh,14px)}
.card__paper::before{content:"";position:absolute;inset:14px;border:1px solid rgba(154,74,48,.35);pointer-events:none}
.card__paper::after{content:"";position:absolute;inset:19px;border:1px solid rgba(154,74,48,.18);pointer-events:none}
.card__hi{display:flex;flex-direction:column;align-items:center;font:800 clamp(13px,1.4vw,15px)/1 var(--label);letter-spacing:.32em;text-transform:uppercase;color:var(--latao-esc)}
.card__hi b{display:block;font:400 clamp(46px,6.6vw,74px)/1.05 var(--display);font-style:italic;letter-spacing:0;text-transform:none;color:var(--tijolo);margin-top:8px}
.card__p{font:300 clamp(16px,2vw,19px)/1.45 var(--sans);color:var(--tinta);max-width:30ch}
.card__names{display:flex;flex-direction:column;align-items:center;font:400 clamp(40px,6.4vw,70px)/1.02 var(--display);color:var(--carvao);margin:2px 0}
.card__names i{color:var(--latao);padding:0 .06em}
.card__names [data-n]{white-space:nowrap}
.card__date{font:800 clamp(13px,1.5vw,15px)/1.3 var(--label);letter-spacing:.24em;text-transform:uppercase;color:var(--tijolo)}
.card__sig{font:400 clamp(19px,2.3vw,24px)/1.2 var(--display);font-style:italic;color:var(--tinta)}
.stage__cta{position:absolute;left:0;right:0;bottom:max(24px,4.5vh);z-index:7;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:0 16px;animation:in 1.2s .9s 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(10,10,12,.7),transparent 75%);pointer-events:none}
.stage__hint{font:700 14px/1 var(--label);letter-spacing:.3em;text-transform:uppercase;color:#f1e7d4;text-shadow:0 1px 10px rgba(0,0,0,.7);animation:breathe 2.6s ease-in-out infinite}
@keyframes breathe{50%{opacity:.45}}
@keyframes in{from{opacity:0;transform:translateY(14px)}}
@keyframes nameIn{from{opacity:0;transform:translateY(18px) scale(.94);filter:blur(5px)}}

/* =================== 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(25,24,22,.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.06);color:var(--cal);transform:translateY(-110%);transition:transform .6s cubic-bezier(.2,.9,.2,1)}
body.is-open .top{transform:none}
.top__mono{position:relative;font:400 28px/1 var(--display);text-decoration:none}
.top__mono i{color:var(--latao);margin:0 3px}
.top__nav{display:flex;gap:28px}
.top__nav a{font:700 14px var(--label);letter-spacing:.22em;text-transform:uppercase;text-decoration:none;opacity:.8}
.top__nav a:hover{opacity:1;color:var(--ambar)}
.top__cta{position:relative;font:800 13px/1 var(--label);letter-spacing:.18em;text-transform:uppercase;text-decoration:none;padding:12px 16px;border-radius:4px;background:var(--ambar);color:var(--carvao)}
.top__cta::after,.top__mono::after{content:"";position:absolute;inset:-8px -4px}
@media (max-width:900px){.top__nav{display:none}.top__cta{padding:11px 12px;font-size:12px}.top{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(25,24,22,.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(--carvao);color:var(--cal)}
.hero__bg{position:absolute;inset:0}
.hero__bg img{width:100%;height:100%;object-fit:cover;object-position:50% 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(18,16,14,.86) 0%,rgba(18,16,14,.6) 30%,rgba(18,16,14,.05) 56%),linear-gradient(0deg,rgba(18,16,14,.55),transparent 30%)}
.hero__in{position:relative;z-index:2;width:var(--wrap);margin-inline:auto}
.hero__date{font:800 15px/1.4 var(--label);letter-spacing:.26em;text-transform:uppercase;color:var(--ambar)}
.hero__names{font:400 clamp(72px,10.4vw,156px)/.94 var(--display);display:flex;flex-direction:column;align-items:flex-start;margin:14px 0 22px;letter-spacing:-.015em;color:#f6efe2}
.hero__names > span{white-space:nowrap}
.hero__names i{font-size:.62em;line-height:1;color:var(--latao);padding-left:.35em;margin:-.02em 0}
.hero__sub{font:300 clamp(18px,1.8vw,22px)/1.45 var(--sans);color:rgba(246,239,226,.88);max-width:27ch;margin-bottom:28px}
.hero .btn--amber{animation:breatheBtn 3.2s ease-in-out 2.5s infinite}
@keyframes breatheBtn{0%,100%{box-shadow:0 0 0 0 rgba(255,182,92,.5)}50%{box-shadow:0 0 0 12px rgba(255,182,92,0)}}

/* =================== HISTÓRIA + RELÓGIO DE LUZ =================== */
.story{padding:clamp(90px,12vw,160px) 0 clamp(70px,9vw,110px);background:var(--concreto-tx),var(--cal)}
.story__grid{display:grid;grid-template-columns:1.35fr .65fr;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(300px,100%);aspect-ratio:.72;border-radius:999px 999px 6px 6px;overflow:hidden;background:radial-gradient(70% 60% at 50% 55%,#2a2420,#121110);box-shadow:inset 0 0 0 10px #232426,inset 0 0 0 12px #3b3d40,0 30px 60px -30px rgba(0,0,0,.6)}
.story__art::before{content:"";position:absolute;inset:12px;border-radius:inherit;background:linear-gradient(90deg,transparent 49.4%,#232426 49.4% 50.6%,transparent 50.6%),linear-gradient(0deg,transparent 64%,#232426 64% 65.4%,transparent 65.4%);z-index:2;pointer-events:none}
.story__bulb{position:absolute;left:50%;top:0;height:78%;width:auto;max-width:none;translate:-50% 0;mix-blend-mode:screen}
.story__bulb--on{opacity:0}
.meter{position:relative;margin-top:clamp(60px,8vw,100px);border-radius:12px;padding:clamp(24px,3.4vw,42px);color:var(--cal);background:linear-gradient(160deg,#4b4e53,#2e3033 55%,#25272a);box-shadow:0 40px 70px -40px rgba(0,0,0,.7),inset 0 1px 0 rgba(255,255,255,.12),inset 0 0 0 1px rgba(0,0,0,.4)}
.meter__screws i{position:absolute;width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#d9d6cf,#6b6a66);box-shadow:0 1px 1px rgba(0,0,0,.5)}
.meter__screws i::after{content:"";position:absolute;left:2px;right:2px;top:5px;height:2px;background:rgba(0,0,0,.45);rotate:30deg}
.meter__screws i:nth-child(1){left:12px;top:12px}.meter__screws i:nth-child(2){right:12px;top:12px}.meter__screws i:nth-child(3){left:12px;bottom:12px}.meter__screws i:nth-child(4){right:12px;bottom:12px}
.meter__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 20px;padding:0 10px}
.meter__ttl{font:800 clamp(22px,2.4vw,30px)/1 var(--label);letter-spacing:.14em;text-transform:uppercase;color:var(--ambar)}
.meter__day{font:700 14px/1.3 var(--label);letter-spacing:.2em;text-transform:uppercase;color:rgba(242,237,229,.75)}
.meter__glass{position:relative;margin-top:18px;border-radius:8px;padding:clamp(16px,2.4vw,26px) clamp(10px,2vw,24px) 14px;background:linear-gradient(180deg,#151514,#1e1d1b);box-shadow:inset 0 2px 10px rgba(0,0,0,.8),inset 0 0 0 1px rgba(255,255,255,.05)}
.meter__glass::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(115deg,rgba(255,255,255,.07) 0 22%,transparent 22% 60%,rgba(255,255,255,.04) 60% 64%,transparent 64%);pointer-events:none}
.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:10px;min-width:0}
.count__cell > span{font:700 13px var(--label);letter-spacing:.3em;text-transform:uppercase;color:rgba(242,237,229,.6)}
.drums{display:flex;gap:4px;font:800 clamp(44px,6.2vw,84px)/1 var(--label);color:#f4eee2}
.drum{display:block;height:1.3em;width:.66em;overflow:hidden;border-radius:4px;background:linear-gradient(180deg,#050505,#2a2826 30%,#3a3734 50%,#2a2826 70%,#050505);box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
.drum__s{display:block;transition:transform .7s cubic-bezier(.3,1.35,.5,1);will-change:transform}
.drum__s b{display:block;height:1.3em;line-height:1.3em;text-align:center;font-weight:800;font-variant-numeric:tabular-nums}
.meter__disc{margin:18px auto 0;width:min(320px,70%);height:10px;border-radius:999px;overflow:hidden;background:linear-gradient(180deg,#9a9a96,#e5e4df 40%,#86857f);box-shadow:inset 0 0 0 1px rgba(0,0,0,.4)}
.meter__disc i{display:block;height:100%;width:100%;background:linear-gradient(90deg,transparent 0 46%,#1a1a1a 46% 54%,transparent 54%) 0 0/50% 100%;animation:disc 2.4s linear infinite}
@keyframes disc{to{background-position:100% 0}}
.meter__facts{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:22px;padding:0 10px}
.meter__facts li{font-size:14.5px;color:rgba(242,237,229,.78);min-width:0}
.meter__facts b{display:block;font:800 30px/1.1 var(--label);color:var(--ambar);letter-spacing:.02em}
@media (max-width:700px){.story__grid{grid-template-columns:1fr}.story__art{width:190px;order:-1}.count{grid-template-columns:repeat(2,1fr);row-gap:20px}.meter__facts{grid-template-columns:1fr 1fr}}

/* =================== PROGRAMAÇÃO (eletroduto) =================== */
.prog{padding:clamp(80px,10vw,150px) 0;background:radial-gradient(70% 50% at 50% 0%,rgba(255,182,92,.08),transparent 70%),var(--concreto-tx),linear-gradient(180deg,#1d1c1a,#141312);color:var(--cal);overflow:hidden}
.circuit{position:relative;margin-top:clamp(50px,7vw,90px);padding-bottom:10px}
.circuit__pipe{position:absolute;left:50%;top:-20px;bottom:0;width:16px;margin-left:-8px;border-radius:8px;background:repeating-linear-gradient(180deg,transparent 0 220px,rgba(0,0,0,.35) 220px 224px,rgba(255,255,255,.2) 224px 226px,transparent 226px 260px),linear-gradient(90deg,#55585c,#b9bbbd 40%,#7c7f83 70%,#45484c);box-shadow:0 0 0 1px rgba(0,0,0,.4),0 20px 40px -10px rgba(0,0,0,.5)}
.circuit__flow{position:absolute;left:5px;right:5px;top:4px;bottom:4px;border-radius:4px;transform-origin:50% 0;transform:scaleY(0);background:linear-gradient(180deg,#ffd9a0,#ffb65c);box-shadow:0 0 14px 2px rgba(255,170,80,.75)}
.stop{position:relative;display:flex;margin-bottom:clamp(40px,6vw,70px)}
.stop:last-child{margin-bottom:0}
.stop--r{justify-content:flex-start;padding-left:calc(50% + 58px)}
.stop--l{justify-content:flex-end;padding-right:calc(50% + 58px)}
.stop__node{position:absolute;left:50%;top:18px;width:62px;height:62px;margin-left:-31px;border-radius:10px;background:linear-gradient(160deg,#4b4e53,#26282b);box-shadow:0 0 0 1px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.15),0 12px 24px -10px rgba(0,0,0,.7);isolation:isolate;overflow:hidden;transition:box-shadow .5s}
.stop__node img{position:absolute;left:50%;top:-14px;height:96px;width:auto;max-width:none;translate:-50% 0;mix-blend-mode:screen;transition:opacity .5s}
.stop__on{opacity:0}
.stop.is-on .stop__on{opacity:1}
.stop.is-on .stop__node{box-shadow:0 0 0 1px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.15),0 0 40px 6px rgba(255,170,80,.35)}
.plate{position:relative;width:min(480px,100%);padding:28px 34px 26px;border-radius:6px;background:linear-gradient(160deg,#36383b,#28292b 60%,#222325);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),inset 0 0 0 1px rgba(0,0,0,.4),0 26px 50px -24px rgba(0,0,0,.8);transition:box-shadow .6s}
.plate__rivets i{position:absolute;width:8px;height:8px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#c9c6bf,#55534f)}
.plate__rivets i:nth-child(1){left:10px;top:10px}.plate__rivets i:nth-child(2){right:10px;top:10px}.plate__rivets i:nth-child(3){left:10px;bottom:10px}.plate__rivets i:nth-child(4){right:10px;bottom:10px}
.stop.is-on .plate{box-shadow:inset 0 1px 0 rgba(255,255,255,.08),inset 0 0 0 1px rgba(255,182,92,.32),0 26px 60px -24px rgba(255,150,60,.35)}
.plate__when{display:flex;align-items:baseline;gap:12px;font:700 14px/1 var(--label);letter-spacing:.24em;text-transform:uppercase;color:rgba(242,237,229,.6)}
.plate__when b{font:800 34px/1 var(--label);letter-spacing:.02em;color:var(--ambar)}
.plate h3{font:400 clamp(28px,2.8vw,36px)/1.08 var(--display);margin:10px 0 10px;color:#f6efe2}
.plate__txt{font-size:15.5px;font-weight:300;color:rgba(242,237,229,.8)}
.plate__dress{margin-top:10px;font:700 13.5px var(--label);letter-spacing:.18em;text-transform:uppercase;color:var(--latao)}
.plate .lnk{margin-top:16px;color:var(--ambar)}
.stop--main .plate{background:linear-gradient(160deg,#d8b46b,#c29a4e 45%,#a37e3a);color:var(--carvao)}
.stop--main .plate h3{color:var(--carvao)}
.stop--main .plate__txt{color:rgba(25,24,22,.82)}
.stop--main .plate__when{color:rgba(25,24,22,.6)}
.stop--main .plate__when b,.stop--main .plate .lnk{color:var(--tijolo-esc)}
.stop--main .plate__rivets i{background:radial-gradient(circle at 35% 35%,#f4e2b8,#7a5c25)}
@media (max-width:760px){
  .circuit__pipe{left:24px;margin-left:-8px}
  .stop--r,.stop--l{justify-content:flex-start;padding:0 0 0 70px}
  .stop__node{left:24px;width:52px;height:52px;margin-left:-26px}
  .stop__node img{height:80px;top:-12px}
  .plate{padding:24px 22px 22px}
}

/* =================== TRAJE =================== */
.dress{padding:clamp(80px,10vw,140px) 0;background:var(--concreto-tx),var(--cal)}
.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:28px}
.dress__tips li::before{content:"";position:absolute;left:0;top:.45em;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#ffe2b0,var(--ambar) 45%,#c9772e);box-shadow:0 0 10px rgba(255,170,80,.55)}
.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:block;width:100%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.35),transparent 46%),radial-gradient(circle at 70% 80%,rgba(0,0,0,.25),transparent 55%),var(--c);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15),0 16px 26px -16px rgba(0,0,0,.6);transition:transform .45s cubic-bezier(.3,1.6,.5,1)}
.sw i::after{content:"";position:absolute;left:50%;top:9%;width:9%;aspect-ratio:1;translate:-50% 0;border-radius:50%;background:radial-gradient(circle at 35% 35%,#e3ded6,#77746e);box-shadow:0 1px 1px rgba(0,0,0,.5)}
.sw:hover i,.sw:active i{transform:translateY(-6px) rotate(-8deg)}
.sw span{font:800 14px/1.1 var(--label);letter-spacing:.2em;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 8px;max-width:400px;margin-inline:auto}.sw{width:calc(33.3% - 8px);min-width:0}.sw i{max-width:84px}}

/* =================== MAPA =================== */
.mapsec{padding:clamp(80px,10vw,140px) 0;background:var(--concreto-tx),#E7E0D5}
.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:6px;border:1px solid var(--linha);z-index:1;background:#d6d2ca}
.map .leaflet-tile-pane{filter:grayscale(.75) sepia(.18) contrast(.96) brightness(1.02)}
.leaflet-container{font-family:var(--sans)}
.pin{position:relative;width:46px;height:64px;transform-origin:50% 0;transition:transform .35s cubic-bezier(.3,1.6,.5,1)}
.pin::before{content:"";position:absolute;left:50%;top:-10px;width:2px;height:14px;margin-left:-1px;background:#111}
.pin__g{position:absolute;left:3px;top:4px;width:40px;height:40px;border-radius:50%;overflow:hidden;background:#000;box-shadow:0 0 0 2px var(--latao),0 8px 14px -4px rgba(0,0,0,.55)}
.pin img{position:absolute;left:50%;top:-14px;height:66px;width:auto;max-width:none;translate:-50% 0}
.pin > span:not(.pin__g){position:absolute;left:50%;top:38px;width:22px;height:22px;margin-left:-11px;border-radius:50%;display:grid;place-items:center;background:var(--carvao);color:var(--ambar);font:800 13px var(--label);box-shadow:0 0 0 2px var(--cal)}
.pin.is-on{transform:scale(1.25) rotate(-6deg)}
.places{list-style:none;display:grid;gap:12px}
.place{background:var(--papel);border:1px solid var(--linha);border-radius:6px;padding:18px;cursor:pointer;transition:border-color .3s,box-shadow .3s}
.place.is-on{border-color:var(--tijolo);box-shadow:0 18px 30px -24px rgba(0,0,0,.6)}
.place__day{display:flex;align-items:center;gap:10px;font:800 14px/1 var(--label);letter-spacing:.2em;text-transform:uppercase;color:var(--tijolo)}
.place__day b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--carvao);color:var(--ambar);letter-spacing:0;font-size:13px}
.place h3{font:400 24px/1.1 var(--display);margin:8px 0 2px}
.place p{font-size:14.5px;color:var(--muted)}
.place__go{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.place__go a{position:relative;font:800 12px var(--label);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;padding:8px 12px;border:1px solid rgba(35,34,32,.22);border-radius:4px}
.place__go a::after{content:"";position:absolute;inset:-6px -3px}
.place__go a:hover{background:var(--carvao);color:var(--cal)}
.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:700 13px var(--label);letter-spacing:.24em;text-transform:uppercase;color:var(--tijolo)}
}

/* =================== VIAGEM =================== */
.trip{padding:clamp(80px,10vw,140px) 0;background:var(--concreto-tx),var(--cal)}
.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:96px;width:auto;margin-bottom:16px;object-fit:contain;max-width:100%}
.trip__item h3{font:400 26px/1.1 var(--display);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 (caixotes) =================== */
.gifts{padding:clamp(80px,10vw,140px) 0;background:radial-gradient(80% 60% at 50% 0%,rgba(255,182,92,.1),transparent 70%),var(--concreto-tx),linear-gradient(180deg,#24221f,#171614);color:var(--cal)}
.crates{margin-top:56px;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2.6vw,34px) clamp(14px,2.2vw,28px)}
.crate{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;transition:transform .45s cubic-bezier(.3,1.6,.5,1)}
.crate:hover{transform:translateY(-8px)}
.crate__box{position:relative;display:block;width:100%;aspect-ratio:1/.8;border-radius:3px;background:repeating-linear-gradient(180deg,transparent 0 calc(25% - 3px),rgba(30,18,8,.55) calc(25% - 3px) 25%),repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0 3px,transparent 3px 17px),linear-gradient(95deg,#b88d5c,#a77a4b 40%,#946a3f 70%,#a4794b);box-shadow:inset 0 0 0 9px rgba(110,74,40,.9),inset 0 0 0 10px rgba(0,0,0,.25),0 24px 30px -18px rgba(0,0,0,.8)}
.crate__box::before{content:"";position:absolute;inset:9px;background:linear-gradient(to top right,transparent calc(50% - 6px),rgba(110,74,40,.75) calc(50% - 6px) calc(50% + 6px),transparent calc(50% + 6px));opacity:.55;pointer-events:none}
.crate__box::after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at 14px 14px,#3a352e 2.5px,transparent 3.5px),radial-gradient(circle at calc(100% - 14px) 14px,#3a352e 2.5px,transparent 3.5px),radial-gradient(circle at 14px calc(100% - 14px),#3a352e 2.5px,transparent 3.5px),radial-gradient(circle at calc(100% - 14px) calc(100% - 14px),#3a352e 2.5px,transparent 3.5px);pointer-events:none}
.crate__lid{position:absolute;left:-5px;right:-5px;top:-12px;height:16px;border-radius:3px;background:linear-gradient(180deg,#b38a5a,#7d5833);box-shadow:0 4px 6px -2px rgba(0,0,0,.6);transform-origin:8% 100%;z-index:2}
.crate.is-open .crate__lid{animation:lid .7s cubic-bezier(.3,1.5,.5,1)}
@keyframes lid{40%{transform:translateY(-16px) rotate(-12deg)}}
.crate__k{position:absolute;left:0;right:0;top:15%;z-index:1;font:800 clamp(18px,2vw,26px)/1 var(--stencil);letter-spacing:.14em;text-transform:uppercase;color:rgba(35,22,12,.78);mix-blend-mode:multiply}
.crate__il{position:absolute;left:50%;bottom:13%;z-index:1;width:auto;height:46%;max-width:72%;object-fit:contain;translate:-50% 0;mix-blend-mode:multiply;opacity:.9}
.crate__il--bulb{mix-blend-mode:normal;opacity:1;height:58%;bottom:8%;filter:drop-shadow(0 0 12px rgba(255,170,80,.6));border-radius:30%}
.crate__tag{position:relative;display:block;margin-top:-10px;width:92%;background:var(--papel);color:var(--tinta);border-radius:3px;padding:16px 12px 12px;box-shadow:0 12px 20px -12px rgba(0,0,0,.8);rotate:-1.2deg}
.crate:nth-child(even) .crate__tag{rotate:1.2deg}
.crate__tag::before{content:"";position:absolute;top:6px;left:50%;width:8px;height:8px;margin-left:-4px;border-radius:50%;background:#171614;box-shadow:0 0 0 2px #d8d2c8}
.crate__tag h3{font:400 19px/1.15 var(--display);margin:4px 0 4px}
.crate__tag p{font-size:13px;line-height:1.38;color:var(--muted)}
.crate__price{display:inline-block;margin-top:8px;font:800 17px/1 var(--label);letter-spacing:.06em;color:var(--tijolo)}
@media (max-width:760px){.crates{grid-template-columns:repeat(2,1fr);row-gap:34px}.crate__tag h3{font-size:17px}.crate__tag p{font-size:12.5px}}

/* 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(18,16,14,.7);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:8px;padding:36px 28px 28px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}
.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}
.pix__il.is-bulb{height:110px;border-radius:40%;background:#111}
.pix__title{font:400 26px/1.1 var(--display);color:var(--tinta)}
.pix__amount{font:800 34px var(--label);color:var(--tijolo)}
.pix__val{display:flex;align-items:center;gap:8px;font:800 30px var(--label);color:var(--tijolo)}
.pix__val input{width:140px;border:0;border-bottom:1px solid var(--tijolo);background:none;text-align:center;font:inherit;outline:0}
.pix__qr{width:190px;height:190px;background:#fff;padding:10px;border-radius:4px}
.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;background:var(--concreto-tx),var(--cimento);display:grid;place-items:center;overflow:hidden}
.rsvp__card{position:relative;width:min(620px,100%);background:var(--papel);border-radius:6px;padding:clamp(40px,6vw,64px) clamp(24px,5vw,56px);box-shadow:0 40px 80px -40px rgba(0,0,0,.5);border:1px solid var(--linha)}
.rsvp__card::before{content:"";position:absolute;left:0;right:0;top:0;height:10px;border-radius:6px 6px 0 0;background:repeating-linear-gradient(-45deg,#1c1b19 0 10px,var(--ambar) 10px 20px);opacity:.9}
.rsvp__form,.rsvp__done{position:relative;display:flex;flex-direction:column;gap:20px}
.rsvp__form .h2{font-size:clamp(36px,4.6vw,54px)}
.rsvp__deadline{color:var(--muted);margin-top:-8px}
.fld{display:flex;flex-direction:column;gap:4px;font:800 13px/1.2 var(--label);letter-spacing:.18em;text-transform:uppercase;color:var(--tijolo)}
.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(35,34,32,.3);background:transparent;outline:0;border-radius:0;resize:vertical}
.fld input:focus,.fld textarea:focus,.fld select:focus{border-color:var(--tijolo)}
fieldset{border:0}
legend{font:800 13px/1.2 var(--label);letter-spacing:.18em;text-transform:uppercase;color:var(--tijolo);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(35,34,32,.3);border-radius:4px;cursor:pointer;font:400 19px var(--display);transition:all .3s}
.choice input:checked + span{background:var(--carvao);color:var(--ambar);border-color:var(--carvao)}
.choice input:focus-visible + span,.chips input:focus-visible + span{outline:2px solid var(--tijolo);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(35,34,32,.26);border-radius:4px;cursor:pointer;font-size:14.5px;transition:all .25s}
.chips input:checked + span{background:rgba(255,182,92,.22);border-color:var(--latao)}
.stepper{display:flex;align-items:center;border:1px solid rgba(35,34,32,.3);border-radius:4px;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:800 26px var(--label);color:var(--tinta)}
.rsvp__err{color:#a23b2a;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 do ponto (resumo da resposta) */
.ticket{position:relative;align-self:stretch;max-width:440px;margin:0 auto;width:100%;text-align:left;background:#f1ebdf;border-radius:4px;padding:22px 20px 18px;box-shadow:0 10px 20px -14px rgba(0,0,0,.5);background-image:repeating-linear-gradient(180deg,transparent 0 27px,rgba(154,74,48,.12) 27px 28px)}
.ticket::before,.ticket::after{content:"";position:absolute;left:0;right:0;height:8px;background:radial-gradient(circle at 6px 0,transparent 4px,#f1ebdf 4.5px) 0 0/12px 8px repeat-x}
.ticket::before{top:-8px;transform:scaleY(-1)}
.ticket::after{bottom:-8px}
.ticket__stamp{display:inline-block;margin-bottom:10px;padding:5px 10px;border:2px solid #B23A2A;border-radius:3px;font:800 15px/1 var(--stencil);letter-spacing:.16em;color:#B23A2A;rotate:-3deg;opacity:.88}
.ticket__body{font-size:14.5px;line-height:1.55;white-space:pre-line;color:var(--tinta)}
/* o relógio de ponto */
.clock{position:fixed;inset:0;z-index:90;display:grid;place-items:center;background:rgba(18,16,14,.86);visibility:hidden;opacity:0;pointer-events:none}
.clock.is-on{visibility:visible}
.clock__box{position:relative;z-index:2;width:220px;height:270px;margin-top:150px;border-radius:16px 16px 10px 10px;background:linear-gradient(160deg,#5a5d62,#35373b 55%,#2a2c2f);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 30px 60px -20px rgba(0,0,0,.8)}
.clock__slot{position:absolute;left:46px;right:46px;top:-6px;height:14px;border-radius:4px;background:#0b0b0a;box-shadow:inset 0 2px 4px rgba(0,0,0,.9),0 1px 0 rgba(255,255,255,.12)}
.clock__face{position:absolute;left:50%;top:44px;width:132px;height:132px;margin-left:-66px;border-radius:50%;background:repeating-conic-gradient(from -1deg,#1b1b1a 0 2deg,transparent 2deg 30deg),radial-gradient(circle,#f6f1e6 62%,#d8d2c4 63%);box-shadow:0 0 0 6px #c9a052,0 0 0 8px #6b5226,inset 0 2px 6px rgba(0,0,0,.3)}
.clock__face::after{content:"";position:absolute;inset:14px;border-radius:50%;background:#f6f1e6}
.clock__face b{position:absolute;left:50%;top:50%;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--tijolo);z-index:3}
.clock__h,.clock__m{position:absolute;left:50%;bottom:50%;z-index:2;transform-origin:50% 100%;border-radius:3px;background:#1b1b1a}
.clock__h{width:5px;height:32px;margin-left:-2.5px}
.clock__m{width:3px;height:48px;margin-left:-1.5px}
.clock__lever{position:absolute;right:-30px;top:120px;width:44px;height:12px;border-radius:6px;transform-origin:0 50%;background:linear-gradient(180deg,#e9c77f,#9c7a3a)}
.clock__lever::after{content:"";position:absolute;right:-8px;top:-6px;width:22px;height:22px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#d65a3a,#7a2a18)}
.clock__card{position:absolute;left:50%;top:50%;z-index:1;width:124px;height:196px;margin:-230px 0 0 -62px;border-radius:3px;background:repeating-linear-gradient(180deg,transparent 0 22px,rgba(154,74,48,.25) 22px 23px),#efe6d3;box-shadow:0 10px 20px -8px rgba(0,0,0,.6);padding:14px 10px}
.clock__card i{display:block;height:6px;margin:8px 4px;border-radius:3px;background:rgba(35,34,32,.25)}
.clock__card span{position:absolute;left:6px;right:6px;top:84px;padding:6px 2px;border:2px solid #B23A2A;border-radius:3px;font:800 12px/1.2 var(--stencil);letter-spacing:.08em;text-align:center;color:#B23A2A;rotate:-6deg}

/* =================== FIM: o quadro de força =================== */
.end{position:relative;min-height:100svh;overflow:hidden;color:var(--cal);background:#0d0c0b;display:flex;flex-direction:column;justify-content:center;padding:calc(var(--top-h) + 30px) 16px 80px}
.end__bg{position:absolute;inset:0}
.end__bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.end__lit{opacity:0;transition:opacity 1.2s ease}
.end__bg::after{content:"";position:absolute;inset:0;background:radial-gradient(70% 60% at 50% 45%,rgba(13,12,11,.35),rgba(13,12,11,.82) 80%),linear-gradient(180deg,rgba(13,12,11,.6),rgba(13,12,11,.2) 40%,rgba(13,12,11,.85));transition:opacity 1.2s}
.end.is-party .end__bg::after{opacity:.62}
.end__in{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;gap:18px}
.sign{position:relative;filter:drop-shadow(0 30px 40px rgba(0,0,0,.6))}
.sign canvas{display:block;max-width:100%}
.end__big{font:400 clamp(48px,7.6vw,110px)/.98 var(--display);color:#f6efe2;transition:text-shadow 1s}
.end.is-party .end__big{text-shadow:0 0 30px rgba(255,170,80,.55),0 0 80px rgba(255,140,50,.3)}
.end__hint{font:700 14px/1.3 var(--label);letter-spacing:.28em;text-transform:uppercase;color:var(--ambar);animation:breathe 2.6s ease-in-out infinite}
.end.is-party .end__hint{animation:none;opacity:0}
.panel{position:relative;display:flex;align-items:flex-end;gap:clamp(8px,1.6vw,16px);padding:20px clamp(14px,2.4vw,26px) 16px;border-radius:10px;background:linear-gradient(160deg,#55585d,#35383c 55%,#2b2d30);box-shadow:inset 0 1px 0 rgba(255,255,255,.16),inset 0 0 0 1px rgba(0,0,0,.45),0 30px 50px -24px rgba(0,0,0,.85)}
.panel::before{content:"";position:absolute;left:10px;right:10px;top:50%;height:22px;margin-top:-30px;border-radius:3px;background:linear-gradient(180deg,#8f9296,#c4c6c8 40%,#808387);box-shadow:inset 0 0 0 1px rgba(0,0,0,.3);z-index:0}
.brk{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:10px;border:0;background:none;cursor:pointer;padding:0;color:inherit;-webkit-tap-highlight-color:transparent}
.brk__body{position:relative;display:block;width:clamp(44px,5.4vw,54px);height:clamp(78px,9vw,92px);border-radius:6px;background:linear-gradient(180deg,#f1eee7,#d9d4ca);box-shadow:inset 0 -3px 0 rgba(0,0,0,.12),0 6px 10px -4px rgba(0,0,0,.6)}
.brk__body::before{content:"";position:absolute;left:50%;top:18%;bottom:18%;width:44%;margin-left:-22%;border-radius:4px;background:#2a2826;box-shadow:inset 0 2px 4px rgba(0,0,0,.8)}
.brk__body::after{content:"";position:absolute;left:50%;top:7%;width:8px;height:8px;margin-left:-4px;border-radius:50%;background:#5a1d12;transition:background .25s,box-shadow .25s}
.brk__lever{position:absolute;left:50%;width:30%;height:32%;margin-left:-15%;bottom:21%;border-radius:3px;background:linear-gradient(180deg,#3c3a37,#1e1d1b);box-shadow:inset 0 1px 0 rgba(255,255,255,.15);transition:bottom .16s cubic-bezier(.5,1.8,.5,1),background .2s}
.brk[aria-checked="true"] .brk__lever{bottom:47%;background:linear-gradient(180deg,#ffd18a,#e8963d)}
.brk[aria-checked="true"] .brk__body::after{background:#ffb65c;box-shadow:0 0 10px 2px rgba(255,170,80,.8)}
.brk.is-clack .brk__body{animation:clack .18s ease}
@keyframes clack{50%{transform:translateY(2px)}}
.brk__lbl{display:block;min-width:36px;padding:4px 8px 3px;border-radius:2px;background:#111;color:#f3efe6;font:800 14px/1 var(--label);letter-spacing:.14em;text-transform:uppercase;box-shadow:0 1px 0 rgba(255,255,255,.12),inset 0 -1px 0 rgba(255,255,255,.08);text-shadow:0 1px 0 rgba(255,255,255,.25)}
.brk--main .brk__body{width:clamp(62px,7.6vw,76px);background:linear-gradient(180deg,#c95b3a,#9a4a30)}
.brk--main .brk__lever{width:40%;margin-left:-20%}
.brk:focus-visible{outline:2px solid var(--ambar);outline-offset:6px;border-radius:6px}
.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(242,237,229,.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(25,24,22,.92);color:var(--cal);padding:8px 12px;border-radius:999px;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)}
.sparks{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(--carvao);color:var(--cal);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}}

/* ---------- 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:8px;background:rgba(255,182,92,.07);padding:20px 18px 18px;display:flex;flex-direction:column;gap:14px;min-width:0}
.person legend{font:400 24px/1 var(--display);font-style:italic;letter-spacing:0;text-transform:none;color:var(--tijolo);padding:0 8px;margin:0 0 0 -6px}
.p-restr input{position:absolute;opacity:0;pointer-events:none}
.p-lbl{width:100%;font:800 13px/1.2 var(--label);letter-spacing:.18em;text-transform:uppercase;color:var(--tijolo);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(--carvao);color:var(--ambar);border-color:var(--carvao)}
.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:22px;min-width:32px}
.lead{border-top:1px dashed rgba(35,34,32,.25);padding-top:16px}
.lead summary{cursor:pointer;list-style:none;font:400 17px/1.4 var(--display);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:4px;background:var(--ambar);color:var(--carvao);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:8px;background:rgba(255,182,92,.07)}
.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(--tijolo);flex:none}
.rsvp__mesa{position:relative;text-align:center;padding-bottom:24px;margin-bottom:28px;border-bottom:1px dashed rgba(35,34,32,.25)}
.rsvp__mesas{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 34px;margin-top:8px}
.rsvp__mn{font:400 clamp(38px,5.6vw,54px)/1.05 var(--display);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:800 15px/1.2 var(--label);letter-spacing:.24em;text-transform:uppercase;color:var(--tijolo)}
.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:8px;box-shadow:0 0 0 6px rgba(255,182,92,.2)}
.rsvp__qri svg{width:100%;height:100%;display:block}
.rsvp__qr--top{padding-bottom:24px;margin-bottom:26px;border-bottom:1px dashed rgba(35,34,32,.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:8px;background:#f1ebdf;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:800 13px/1.2 var(--label);letter-spacing:.22em;text-transform:uppercase;color:var(--tijolo)}
.rsvp__card .ccard__n{font:400 26px/1.15 var(--display);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:800 12.5px/1 var(--label);letter-spacing:.18em;text-transform:uppercase;text-decoration:none;color:var(--tinta);border:1px solid rgba(35,34,32,.3);border-radius:4px;padding:12px 15px}
.ccard__a a:first-child{background:var(--ambar);border-color:var(--ambar)}
.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:700px){
  .hero{align-items:flex-start;padding-top:calc(var(--top-h) + 34px)}
  .hero__veil{background:linear-gradient(180deg,rgba(18,16,14,.88) 0%,rgba(18,16,14,.72) 34%,rgba(18,16,14,.1) 58%,rgba(18,16,14,.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:13px;letter-spacing:.2em}
  .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}
  .meter__head{flex-direction:column;align-items:center;text-align:center}
  .meter__facts{text-align:center}
  .plate{text-align:left}
  .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:17px;padding:12px 6px}
  .dress__tips{text-align:left}
}
@media (max-width:520px){.choice span{white-space:nowrap;font-size:clamp(15px,4.4vw,17px);padding:12px 4px}}
@media (max-width:400px){.btn{letter-spacing:.16em;padding-inline:22px;font-size:14px}.modal__box{padding-inline:20px}.brk__lbl{font-size:12.5px;padding-inline:6px}}
