/* Camila & Renato — casamento em Paris.
   Bordô de toldo de café, rose poudré, creme de papel de carta, bleu de Paris e dourado.
   Layout: o toldo listrado se desenrola no café → o carteiro deixa uma carta (selo + carimbo) → a folha se desdobra no convite →
   capa no Trocadéro → relógio de estação, cardápio de bistrô, macarons, mapa, cartões-postais, RSVP → cadeado do amor no Sena. */
:root{
  --creme:#F6F0E6; --creme2:#EFE5D6; --creme3:#E2D4C0; --papel:#FBF7EF;
  --bordo:#8E1F2F; --bordo-esc:#6C1522; --rosa:#E9C2BC; --rosa2:#F4DFDA; --azul:#2E3E63; --azul-esc:#1D2742;
  --ouro:#C9A45C; --ouro-esc:#A3813F; --zinco:#8A8F98; --tinta:#24212B; --muted:#6C6570; --linha:rgba(36,33,43,.14);
  --display:"Playfair Display", "Times New Roman", serif;
  --script:"Parisienne", "Snell Roundhand", cursive;
  --sans:"Mulish", "Helvetica Neue", Arial, sans-serif;
  --top-h:70px; --wrap:min(1120px, calc(100% - 40px));
  color-scheme:light;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;overflow-x:clip}
body{background:var(--creme);color:var(--tinta);font:400 18px/1.6 var(--sans);overflow-x:hidden;text-wrap:pretty}
[hidden]{display:none!important}
img{display:block;max-width:100%}
button,input,textarea,select{font:inherit;color:inherit}
h1,h2,h3{font-weight:400;text-wrap:balance}
a{color:inherit}
.wrap{width:var(--wrap);margin-inline:auto}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:2px solid var(--bordo);outline-offset:3px}

/* ---------- tipografia ---------- */
.h2{font:400 clamp(38px,5.2vw,68px)/1.06 var(--display);color:var(--tinta);letter-spacing:-.01em}
.h2 em,.h2 i{font-style:italic;color:var(--bordo)}
.lede{max-width:58ch;margin-top:20px;color:var(--muted);font-size:clamp(17px,1.3vw,19px)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;padding:16px 30px;font:700 12.5px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;cursor:pointer;text-decoration:none;transition:transform .3s ease, box-shadow .3s ease, background .3s}
.btn--wine{background:var(--bordo);color:#fff;box-shadow:0 12px 26px -14px rgba(108,21,34,.9), inset 0 0 0 1px rgba(255,255,255,.14)}
.btn--wine:hover{background:var(--bordo-esc);transform:translateY(-1px)}
.btn--wide{width:100%}
.btn:active{transform:scale(.98)}
.lnk{position:relative;border:0;background:none;padding:0 0 6px;font:700 11.5px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--bordo);border-bottom:1px solid var(--ouro);cursor:pointer}
.lnk::after{content:"";position:absolute;inset:-13px -6px}
.lnk:hover{border-color:var(--bordo)}

/* =================== ENTRADA =================== */
.stage{position:fixed;inset:0;z-index:100;overflow:hidden;background:#1E2233;will-change:opacity}
.stage__photo{position:absolute;inset:0;z-index:1;will-change:transform}
.stage__photo picture,.stage__photo img{width:100%;height:100%}
.stage__photo img{object-fit:cover;object-position:50% 50%}
.stage__glow{position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;mix-blend-mode:screen;
  background:radial-gradient(90% 46% at 50% 0%,rgba(255,190,110,.5),transparent 62%),radial-gradient(70% 42% at 50% 88%,rgba(255,186,120,.28),transparent 70%)}
.stage__dim{position:absolute;inset:0;z-index:9;background:#151826;opacity:0;pointer-events:none}
.postman{position:absolute;left:0;top:0;z-index:4;width:auto;height:280px;filter:brightness(.78) saturate(.9) sepia(.14);pointer-events:none;visibility:hidden;transform-origin:50% 100%}

/* o toldo */
.awning{--ah:clamp(120px,27vh,250px);--vh:32%;--sc:14px;--sw:clamp(34px,4.4vw,66px);position:absolute;top:0;left:0;right:0;height:var(--ah);overflow:hidden;z-index:6;pointer-events:none}
.awning__roll{position:absolute;inset:0;transform:translateY(-100%);will-change:transform}
.awning__cloth{position:absolute;left:0;right:0;top:0;bottom:calc(var(--vh) - 2px);
  background:linear-gradient(180deg,rgba(0,0,0,.45),rgba(0,0,0,.05) 35%,rgba(255,255,255,.07) 75%,rgba(0,0,0,.18)),repeating-linear-gradient(90deg,var(--bordo) 0 var(--sw),#F1E6D2 var(--sw) calc(var(--sw) * 2))}
.awning__val{position:absolute;left:0;right:0;bottom:var(--sc);height:calc(var(--vh) - var(--sc));background:linear-gradient(180deg,#7A1826,var(--bordo) 30%,#831B2A);display:grid;place-items:center;box-shadow:inset 0 3px 0 rgba(0,0,0,.25), inset 0 -2px 0 var(--ouro)}
.awning__val::after{content:"";position:absolute;top:100%;left:0;right:0;height:var(--sc);background:radial-gradient(circle at 50% 0,#831B2A calc(var(--sc) - 1px),transparent var(--sc)) 0 0 / calc(var(--sc) * 2) var(--sc) repeat-x}
.awning__val span{font:italic 500 clamp(16px,2.8vh,27px)/1 var(--display);letter-spacing:.06em;color:#F4E3BE;text-shadow:0 1px 0 rgba(0,0,0,.35)}
.awning__bar{position:absolute;top:0;left:0;right:0;height:9px;background:linear-gradient(#55504a,#2a2622);box-shadow:0 2px 4px rgba(0,0,0,.4);z-index:1}
.bulbs{position:absolute;top:0;left:0;width:100%;z-index:7;pointer-events:none;opacity:0;overflow:visible}
.bulbs__wire{fill:none;stroke:#221d1a;stroke-width:1.6}
.bulb__cap{fill:#2a2420}
.bulb__glass{fill:#7a6c58;transition:fill .5s}
.bulb__glow{fill:#FFD38A;opacity:0;filter:blur(7px);transition:opacity .6s}
.bulb.is-on .bulb__glass{fill:#FFE6AE}
.bulb.is-on .bulb__glow{opacity:.55}

/* a lousa com o nome do convidado */
.board{position:absolute;left:50%;top:48%;width:min(480px,84vw);translate:-50% -50%;z-index:8;cursor:pointer}
.board__slate{position:relative;z-index:1;text-align:center;padding:26px 22px 24px;border-radius:4px;
  background:radial-gradient(60% 50% at 30% 30%,rgba(255,255,255,.07),transparent 70%),radial-gradient(50% 40% at 75% 70%,rgba(255,255,255,.05),transparent 70%),#2A2E2C;
  box-shadow:0 0 0 11px #7C5532, 0 0 0 12px #5A3B20, 0 34px 50px -22px rgba(0,0,0,.75), inset 0 0 40px rgba(0,0,0,.55)}
.board__to{font:600 11.5px var(--sans);letter-spacing:.34em;text-transform:uppercase;color:rgba(244,239,230,.72)}
.board__name{font:400 clamp(52px,12.5vw,84px)/1.08 var(--script);color:#F4EFE6;padding:4px .2em 0;overflow-wrap:anywhere;text-shadow:0 0 1px rgba(255,255,255,.7),0 0 10px rgba(255,255,255,.16)}
.board__name.is-long{font-size:clamp(38px,8.6vw,58px)}
.board__sub{font:italic 400 clamp(15px,1.6vw,18px)/1.35 var(--display);color:rgba(244,239,230,.75);margin-top:2px}
.board__leg{position:absolute;bottom:-64px;width:11px;height:96px;background:linear-gradient(90deg,#5A3B20,#8a6038,#5A3B20);border-radius:2px;z-index:0}
.board__leg--l{left:16%;rotate:7deg}
.board__leg--r{right:16%;rotate:-7deg}

/* a carta */
.letter{--lw:min(500px,88vw,56vh);position:absolute;left:50%;top:50%;width:var(--lw);height:calc(var(--lw) * 1.38);margin:calc(var(--lw) * -.69) 0 0 calc(var(--lw) / -2);z-index:12;visibility:hidden;transform-style:preserve-3d;will-change:transform;filter:drop-shadow(0 26px 34px rgba(10,10,20,.45))}
.lt{position:absolute;inset:0;transform-style:preserve-3d;perspective:1800px}
.lt__panel{position:absolute;left:0;right:0;height:33.34%;transform-style:preserve-3d}
.lt__top{top:0;transform-origin:50% 100%}
.lt__mid{top:33.33%}
.lt__bot{top:66.66%;transform-origin:50% 0}
.lt__in,.lt__out{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.lt__in{background:linear-gradient(180deg,#FCF8F0,#F6EFE2)}
.lt__in::before{content:"";position:absolute;inset:12px;border:1px solid rgba(201,164,92,.7);pointer-events:none}
.lt__top .lt__in::before{bottom:0;border-bottom:0}
.lt__mid .lt__in::before{top:0;bottom:0;border-top:0;border-bottom:0}
.lt__bot .lt__in::before{top:0;border-top:0}
.lt__top .lt__in{background:linear-gradient(180deg,#FCF8F0,#F3EADB)}
.lt__bot .lt__in{background:linear-gradient(180deg,#F1E8D9,#FBF6EE)}
.lt__out{transform:rotateX(180deg);background:#F7F1E5}
.lt__out::before{content:"";position:absolute;inset:0;padding:clamp(6px,1.6cqw,9px);background:repeating-linear-gradient(-45deg,#B3263A 0 12px,transparent 12px 20px,#2E3E63 20px 32px,transparent 32px 40px);
  -webkit-mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
.lt__addr{container-type:inline-size}
.stamp{position:absolute;right:6%;top:12%;width:17%;aspect-ratio:.8;background:#F4DFDA;padding:4px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;
  -webkit-mask:linear-gradient(#000 0 0) center / calc(100% - 7px) calc(100% - 7px) no-repeat,radial-gradient(3px at 50% 50%,#0000 96%,#000) 0 0 / 8px 8px;
  mask:linear-gradient(#000 0 0) center / calc(100% - 7px) calc(100% - 7px) no-repeat,radial-gradient(3px at 50% 50%,#0000 96%,#000) 0 0 / 8px 8px;
  box-shadow:inset 0 0 0 5px #fff}
.stamp img{height:72%;width:auto;margin-top:8%}
.stamp b{font:700 max(7px,1.6cqw)/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--bordo);margin-bottom:9%}
.postmark{position:absolute;right:13%;top:6%;width:44%;stroke:rgba(36,40,64,.72);opacity:0;transform-origin:30% 50%}
.pm__ring{font:700 9.5px var(--sans);letter-spacing:.12em;fill:rgba(36,40,64,.72);stroke:none}
.pm__date{font:700 13px var(--sans);letter-spacing:.06em;fill:rgba(36,40,64,.72);stroke:none}
.lt__avion{position:absolute;left:7%;top:13%;font:italic 600 max(10px,2.6cqw)/1 var(--display);color:#2E3E63;border:1.5px solid #2E3E63;padding:4px 8px 5px;border-radius:2px;letter-spacing:.04em}
.lt__to{position:absolute;left:9%;right:9%;bottom:12%}
.lt__para{font:600 max(9px,2.2cqw) var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--zinco)}
.lt__name{font:400 max(30px,11.5cqw)/1.05 var(--script);color:var(--azul-esc);overflow-wrap:anywhere;padding-right:.2em}
.lt__name.is-long{font-size:max(24px,8cqw)}
.lt__city{font:italic 400 max(12px,3cqw) var(--display);color:var(--muted);border-top:1px solid var(--linha);padding-top:2px;margin-top:2px;max-width:70%}

/* o convite por dentro da folha */
.invite{position:absolute;inset:0;container-type:inline-size;transform:translateZ(3px);visibility:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:7% 9%}
.invite > *{opacity:0}
.invite__dear{font:400 max(26px,8.4cqw)/1.1 var(--script);color:var(--bordo);padding:0 .2em}
.invite__dear.is-long{font-size:max(22px,6.2cqw)}
.invite__small{font:italic 400 max(13px,3.4cqw) var(--display);color:var(--muted);margin-top:2px}
.invite__names{font:400 max(38px,11.6cqw)/.98 var(--display);color:var(--tinta);margin:2.4cqw 0 1.6cqw;display:flex;flex-direction:column;align-items:center}
.invite__names i{font:400 .62em/1.1 var(--script);color:var(--ouro-esc)}
.invite__txt{font:400 max(14px,3.7cqw)/1.4 var(--display);color:var(--tinta);max-width:30ch}
.invite__rule{display:flex;justify-content:center;margin:3cqw 0}
.invite__rule i{width:8px;height:8px;rotate:45deg;background:var(--ouro);box-shadow:-22px 22px 0 -3px var(--bordo),22px -22px 0 -3px var(--bordo)}
.invite__date{font:700 max(10.5px,2.4cqw)/1.85 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--tinta)}
.invite__place{font:italic 400 max(13.5px,3.5cqw)/1.4 var(--display);color:var(--muted);margin-top:1.6cqw}

.stage__top{position:absolute;z-index:10;top:max(22px,3.6vh);left:0;right:0;text-align:center;font:700 12px var(--sans);letter-spacing:.36em;text-transform:uppercase;color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.45)}
.stage__cta{position:absolute;left:0;right:0;bottom:max(26px,4.4vh);display:flex;flex-direction:column;align-items:center;gap:12px;z-index:10}
.stage__hint{font:700 11px var(--sans);letter-spacing:.28em;text-transform:uppercase;color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.6);animation:breathe 2.6s ease-in-out infinite}
@keyframes breathe{50%{opacity:.5}}
@keyframes stageIn{from{opacity:0;transform:translateY(14px)}}
.stage__cta,.stage__top{animation:stageIn 1.2s .6s backwards}
@media (max-width:700px){
  .awning{--ah:clamp(100px,19vh,170px);--sw:30px;--sc:11px}
  .board{top:46%}
  .board__slate{padding:22px 16px 20px}
  .board__leg{height:80px;bottom:-52px}
}

/* =================== CABEÇALHO =================== */
.top{position:fixed;top:0;left:0;right:0;z-index:50;height:var(--top-h);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 clamp(16px,3vw,40px);padding-top:env(safe-area-inset-top,0px);background:rgba(246,240,230,.88);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transform:translateY(-110%);transition:transform .6s cubic-bezier(.2,.9,.2,1)}
body.is-open .top{transform:none}
.top::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:6px;background:radial-gradient(circle at 50% 0,var(--bordo) 5px,transparent 5.5px) 0 0 / 12px 6px repeat-x}
.top::before{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--bordo)}
.top__mono{font:400 30px/1 var(--display);text-decoration:none;color:var(--tinta);padding:8px 0}
.top__mono i{font:400 .9em/1 var(--script);color:var(--bordo);margin:0 4px}
.top__nav{display:flex;gap:30px}
.top__nav a{font:700 12px var(--sans);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;color:var(--tinta);opacity:.78}
.top__nav a:hover{opacity:1;color:var(--bordo)}
.top__cta{font:700 11.5px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;text-decoration:none;padding:12px 18px;background:var(--bordo);color:#fff;border-radius:999px}
.top__cta:hover{background:var(--bordo-esc)}
@media (max-width:900px){.top__nav{display:none}.top__cta{padding:11px 14px;font-size:10.5px}.top{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(246,240,230,.97)}}

/* =================== CAPA =================== */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;padding:calc(var(--top-h) + 30px) 0 70px}
.hero__bg{position:absolute;inset:0}
.hero__bg img{width:100%;height:100%;object-fit:cover;object-position:62% 50%}
.hero__veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(246,240,230,.9) 0%,rgba(246,240,230,.62) 34%,rgba(246,240,230,0) 58%)}
.hero__in{position:relative;z-index:2;width:var(--wrap);margin-inline:auto}
.hero__date{font:700 12.5px var(--sans);letter-spacing:.32em;text-transform:uppercase;color:var(--bordo)}
.hero__names{font:400 clamp(72px,10.4vw,156px)/.92 var(--display);display:flex;flex-direction:column;margin:16px 0 22px;width:max-content;max-width:100%;color:var(--tinta);letter-spacing:-.02em}
.hero__names i{font:400 .56em/1.05 var(--script);padding-left:.3em;color:var(--bordo);letter-spacing:0}
.hero__sub{font:italic 400 clamp(20px,2vw,25px)/1.35 var(--display);color:var(--muted);max-width:24ch;margin-bottom:30px}
.hero__down{position:absolute;z-index:2;left:50%;bottom:20px;translate:-50% 0;font:700 11px var(--sans);letter-spacing:.32em;text-transform:uppercase;text-decoration:none;color:#fff;padding-bottom:30px;text-shadow:0 1px 6px rgba(0,0,0,.4)}
.hero__down::after{content:"";position:absolute;left:50%;bottom:0;width:1px;height:24px;background:#fff;animation:drop 2s ease-in-out infinite;transform-origin:top}
@keyframes drop{0%{transform:scaleY(0)}50%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
@media (max-width:700px){
  .hero{align-items:flex-start;padding-top:calc(var(--top-h) + 30px)}
  .hero__veil{background:linear-gradient(180deg,rgba(246,240,230,.97) 0%,rgba(246,240,230,.9) 42%,rgba(246,240,230,.45) 58%,rgba(246,240,230,0) 72%)}
  .hero__bg img{object-position:50% 100%}
  .hero__in{text-align:center}
  .hero__names{font-size:clamp(62px,18.5vw,92px);margin-inline:auto;align-items:center}
  .hero__names i{padding-left:0}
  .hero__sub{font-size:20px;margin-inline:auto;margin-bottom:22px}
}

/* =================== HISTÓRIA + RELÓGIO =================== */
.story{padding:clamp(90px,12vw,170px) 0 clamp(70px,9vw,120px)}
.story__grid{display:grid;grid-template-columns:1.4fr .6fr;gap:clamp(30px,6vw,90px);align-items:center}
.story__grid > *{min-width:0}
.story__art{width:min(300px,100%);justify-self:center}
.story__txt .lede{margin-top:18px}
.clockbox{position:relative;margin-top:clamp(60px,8vw,100px);display:grid;grid-template-columns:auto 1fr;gap:clamp(24px,5vw,70px);align-items:center;background:var(--azul-esc);color:#EDE6DA;padding:clamp(28px,4vw,52px) clamp(22px,4.4vw,60px);border-radius:6px;box-shadow:0 30px 60px -36px rgba(29,39,66,.8)}
.clockbox::before{content:"";position:absolute;inset:8px;border:1px solid rgba(201,164,92,.45);border-radius:3px;pointer-events:none}
.clock{width:clamp(180px,22vw,260px);text-align:center}
.clock svg{width:100%;height:auto;display:block;filter:drop-shadow(0 18px 26px rgba(0,0,0,.4))}
.clock__rim{fill:none;stroke:var(--ouro);stroke-width:8}
.clock__face{fill:#F6EEDF}
.clock__n{font:400 17px var(--display);fill:var(--azul-esc)}
.clock__tk{stroke:rgba(29,39,66,.4);stroke-width:1}
.clock__tk.is-h{stroke:var(--azul-esc);stroke-width:2.4}
.clock__h{stroke:var(--azul-esc);stroke-width:6;stroke-linecap:round}
.clock__m{stroke:var(--azul-esc);stroke-width:3.6;stroke-linecap:round}
.clock__s{stroke:var(--bordo);stroke-width:1.6;stroke-linecap:round}
.clock__pin{fill:var(--ouro)}
.clock__now{margin-top:12px;font:700 11px var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--ouro)}
.clockbox__t{font:italic 400 clamp(24px,2.4vw,32px)/1.2 var(--display);color:#fff}
.count{display:grid;grid-template-columns:repeat(4,1fr);margin-top:16px}
.count > div{text-align:center;padding:6px 4px;border-left:1px solid rgba(237,230,218,.18)}
.count > div:first-child{border-left:0}
.count b{display:block;font:400 clamp(42px,5.6vw,78px)/1 var(--display);color:#fff;font-variant-numeric:lining-nums tabular-nums}
.count span{font:700 11px var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--rosa)}
.count__foot{margin-top:14px;font:italic 400 18px var(--display);color:rgba(237,230,218,.78)}
@media (max-width:800px){
  .clockbox{grid-template-columns:1fr;justify-items:center;text-align:center}
  .count__foot{max-width:30ch;margin-inline:auto}
}
@media (max-width:700px){
  .story__grid{grid-template-columns:1fr;text-align:center}
  .story__art{width:190px;order:-1}
  .story__txt .lede{margin-inline:auto}
  .count span{letter-spacing:.12em;font-size:10px}
}

/* =================== PROGRAMAÇÃO: o cardápio =================== */
.prog{padding:clamp(80px,10vw,150px) 0;background:var(--rosa2)}
.menu{position:relative;width:min(820px,100%);margin:clamp(50px,7vw,80px) auto 0;background:var(--papel);padding:clamp(56px,7vw,80px) clamp(22px,6vw,76px) clamp(36px,5vw,60px);border-radius:4px;box-shadow:0 40px 70px -40px rgba(108,21,34,.5)}
.menu::before{content:"";position:absolute;inset:12px;border:1px solid var(--ouro);pointer-events:none}
.menu::after{content:"";position:absolute;inset:17px;border:1px solid rgba(201,164,92,.45);pointer-events:none}
.menu__head{position:absolute;left:50%;top:0;translate:-50% -50%;background:var(--bordo);color:#F7E8CC;padding:8px 34px 12px;border-radius:999px;box-shadow:0 10px 20px -10px rgba(108,21,34,.8);z-index:1}
.menu__head span{font:400 clamp(32px,3.6vw,44px)/1 var(--script);white-space:nowrap}
.course{position:relative;display:grid;grid-template-columns:118px 1fr;gap:clamp(18px,3.6vw,40px);padding:clamp(28px,4vw,44px) 0;border-top:1px dashed rgba(142,31,47,.3)}
.course:first-child{border-top:0;padding-top:0}
.course__day{text-align:center;display:flex;flex-direction:column;align-items:center}
.course__day b{font:400 clamp(56px,6vw,74px)/1 var(--display);color:var(--bordo)}
.course__day span{font:700 10.5px var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-top:4px}
.course__day em{font:400 28px/1.1 var(--script);color:var(--ouro-esc);margin-top:6px;font-style:normal}
.course__body{min-width:0;padding-right:clamp(0px,14%,130px)}
.course h3{font:400 clamp(28px,3vw,38px)/1.1 var(--display);color:var(--tinta)}
.course--main h3{color:var(--bordo);font-style:italic}
.course__body > p{margin-top:10px;color:var(--muted);font-size:17px}
.course__list{list-style:none;margin:16px 0 6px;display:grid;gap:6px}
.course__list li{display:flex;align-items:baseline;gap:10px;font-size:17px}
.course__list i{flex:1;min-width:20px;border-bottom:2px dotted rgba(36,33,43,.35);translate:0 -4px}
.course__list b{font:500 21px var(--display);color:var(--bordo);white-space:nowrap}
.course__dress{font:italic 400 17.5px var(--display)!important;margin:10px 0 16px!important;color:var(--tinta)!important}
.course__art{position:absolute;right:-6px;top:clamp(28px,4vw,44px);width:clamp(84px,11vw,124px);height:auto;max-height:150px;object-fit:contain;pointer-events:none}
.course:first-child .course__art{top:0}
.course--main .course__art{width:clamp(70px,8vw,96px)}
@media (max-width:700px){
  .prog > .wrap:first-child{text-align:center}.prog .lede{margin-inline:auto}
  .course{grid-template-columns:1fr;gap:12px;text-align:center}
  .course__day{flex-direction:row;justify-content:center;gap:10px;flex-wrap:wrap}
  .course__day b{font-size:46px}
  .course__day em{margin-top:0}
  .course__body{padding-right:0}
  .course__list{text-align:left}
  .course__art{position:static;margin:4px auto 0;width:84px;order:-1;grid-row:1}
  .course:first-child .course__art{margin-top:0}
  .course--main .course__art{width:70px}
  .menu{padding-top:60px}
}

/* =================== TRAJE: macarons =================== */
.dress{padding:clamp(80px,10vw,140px) 0}
.dress__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,90px);align-items:center}
.dress__grid > *{min-width:0}
.dress__tips{list-style:none;margin-top:24px;display:grid;gap:12px;color:var(--muted);font-size:17px}
.dress__tips li{padding-left:28px;position:relative}
.dress__tips li::before{content:"";position:absolute;left:0;top:.42em;width:14px;height:10px;border-radius:50%;background:var(--rosa);box-shadow:inset 0 -3px 0 #d9a49d, 0 4px 0 -1px #f3e6d3, 0 5px 0 -1px #d9a49d}
.mbox{background:linear-gradient(160deg,#F4DFDA,#EBCBC5);padding:clamp(18px,3vw,30px);border-radius:16px;box-shadow:0 30px 50px -30px rgba(108,21,34,.6), inset 0 0 0 1px rgba(255,255,255,.5)}
.mbox__in{display:grid;grid-template-columns:repeat(5,1fr);align-items:end;gap:clamp(8px,1.4vw,14px);background:#FBF3EF;border-radius:10px;padding:clamp(16px,2.4vw,26px) clamp(10px,1.6vw,18px) clamp(10px,1.6vw,16px);box-shadow:inset 0 6px 14px rgba(108,21,34,.12)}
.mac{position:relative;border:0;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:10px;padding:0;transition:translate .35s cubic-bezier(.3,1.6,.5,1), rotate .35s cubic-bezier(.3,1.6,.5,1)}
.mac:hover{translate:0 -6px;rotate:-3deg}
.mac i{display:block;width:100%;background:var(--c)}
.mac__top{aspect-ratio:2.1;border-radius:50% 50% 14% 14% / 70% 70% 30% 30%;background:radial-gradient(70% 60% at 40% 25%,rgba(255,255,255,.45),transparent 60%),var(--c)!important;box-shadow:inset 0 -3px 0 rgba(0,0,0,.08)}
.mac__fill{height:7px;width:88%!important;background:#FBF1E2!important;border-radius:3px;box-shadow:0 0 0 1px rgba(0,0,0,.04)}
.mac__bot{aspect-ratio:2.6;border-radius:14% 14% 50% 50% / 30% 30% 70% 70%;box-shadow:inset 0 3px 0 rgba(0,0,0,.08), 0 8px 10px -6px rgba(0,0,0,.35)}
.mac__top,.mac__bot{position:relative}
.mac__top::after,.mac__bot::before{content:"";position:absolute;left:4%;right:4%;height:5px;background:radial-gradient(circle,var(--c) 1.6px,transparent 2px) 0 0/5px 5px;filter:brightness(.92)}
.mac__top::after{bottom:-3px}
.mac__bot::before{top:-3px}
.mac span{font:700 10.5px/1.25 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-align:center;min-height:2.6em}
.mac.is-on span{color:var(--bordo)}
.mbox__cap{margin-top:16px;font:italic 400 18px var(--display);color:var(--muted);text-align:center}
@media (max-width:800px){.dress__grid{grid-template-columns:1fr}.mbox{max-width:480px;margin-inline:auto}}
@media (max-width:700px){.dress__grid > div:first-child{text-align:center}.dress .lede{margin-inline:auto}.dress__tips{text-align:left;max-width:36ch;margin-inline:auto}.mac span{font-size:9px;letter-spacing:.06em}}

/* =================== MAPA =================== */
.mapsec{padding:clamp(80px,10vw,140px) 0;background:var(--creme2)}
.mapsec__grid{display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(20px,3vw,40px);margin-top:44px;align-items:start}
.mapsec__grid > *{min-width:0}
.map{height:min(70vh,600px);background:var(--creme3);border:1px solid var(--linha);z-index:1;border-radius:6px}
.map .leaflet-tile-pane{filter:sepia(.25) saturate(.7) hue-rotate(-12deg) brightness(1.04)}
.leaflet-container{font-family:var(--sans)}
.pin{width:58px;height:58px;display:grid;place-items:center;border-radius:50%;background:var(--papel);box-shadow:0 0 0 2px var(--bordo),0 10px 18px -8px rgba(36,33,43,.6);transition:transform .35s cubic-bezier(.3,1.6,.5,1)}
.pin img{width:40px;height:40px;object-fit:contain;max-width:none}
.pin.is-on{transform:scale(1.25);box-shadow:0 0 0 3px var(--ouro),0 14px 24px -8px rgba(36,33,43,.7)}
.places{list-style:none;display:grid;gap:12px}
.place{background:var(--papel);border:1px solid var(--linha);border-left:5px solid var(--bordo);padding:18px 18px 16px;cursor:pointer;border-radius:3px;transition:border-color .3s, box-shadow .3s}
.place.is-on{border-color:var(--bordo);border-left-color:var(--ouro);box-shadow:0 18px 30px -24px rgba(36,33,43,.6)}
.place__day{font:700 11px var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--zinco)}
.place h3{font:400 25px/1.15 var(--display);color:var(--tinta);margin:4px 0 2px}
.place p{font-size:15.5px;color:var(--muted)}
.place__go{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.place__go a{font:700 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;padding:8px 12px;border:1px solid var(--linha);border-radius:999px;color:var(--bordo)}
.place__go a:hover{background:var(--bordo);color:#fff}
.places__hint{display:none}
@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:italic 400 18px var(--display);color:var(--muted)}
  .pin{width:46px;height:46px}
  .pin img{width:32px;height:32px}
}
@media (max-width:700px){.mapsec > .wrap:first-child{text-align:center}.mapsec .lede{margin-inline:auto}}

/* =================== VIAGEM =================== */
.trip{padding:clamp(80px,10vw,140px) 0}
.trip__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,36px);margin-top:50px}
.trip__item{border-top:2px solid var(--bordo);padding-top:22px;min-width:0;position:relative}
.trip__item::before{content:"";position:absolute;left:0;top:-2px;width:34px;height:2px;background:var(--ouro)}
.trip__item img{height:86px;width:auto;margin-bottom:16px;max-width:100%;object-fit:contain}
.trip__item h3{font:400 26px/1.12 var(--display);color:var(--tinta)}
.trip__item p{margin-top:8px;font-size:16.5px;color:var(--muted)}
@media (max-width:900px){.trip__grid{grid-template-columns:1fr 1fr}}
@media (max-width:700px){.trip > .wrap > .h2{text-align:center}}
@media (max-width:560px){
  .trip__grid{grid-template-columns:1fr;gap:22px;margin-top:30px}
  .trip__item{display:grid;grid-template-columns:72px 1fr;column-gap:16px;align-items:start;padding-top:18px}
  .trip__item img{grid-row:span 2;height:auto;width:72px;max-height:76px;object-fit:contain;margin:0}
  .trip__item p{margin-top:2px}
}

/* =================== PRESENTES: cartões-postais =================== */
.gifts{padding:clamp(80px,10vw,140px) 0;background:var(--azul-esc);color:#ECE5DA;position:relative}
.gifts::before{content:"";position:absolute;inset:0;background:radial-gradient(70% 50% at 80% 0%,rgba(233,194,188,.12),transparent 70%);pointer-events:none}
.gifts > *{position:relative}
.gifts .h2{color:#fff}
.gifts .h2 em{color:var(--rosa)}
.gifts .lede{color:#C9CCD8}
.gifts__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:clamp(16px,2vw,26px);margin-top:50px}
.pc{position:relative;display:block;border:0;text-align:left;cursor:pointer;color:var(--tinta);background:var(--papel);padding:20px 22px 62px;border-radius:4px;min-height:230px;box-shadow:0 22px 34px -18px rgba(0,0,0,.55)}
.pc::before{content:"";position:absolute;inset:7px;border:1px solid rgba(201,164,92,.5);pointer-events:none;border-radius:2px}
.pc.is-in{transition:transform .3s ease}
.pc.is-in:hover{transform:translateY(-4px) rotate(-.8deg)}
.pc:active{transform:scale(.985)}
.pc__l{display:flex;flex-direction:column;gap:6px;min-width:0}
.pc__art{height:72px;width:auto;max-width:120px;object-fit:contain;object-position:left}
.pc h3{font:400 23px/1.15 var(--display);color:var(--tinta);margin-top:12px;padding-right:4px;text-wrap:balance}
.pc__d{font-size:15px;color:var(--muted);line-height:1.45;max-width:34ch}
.pc__r{position:absolute;top:18px;right:18px}
.pc__stamp{width:86px;aspect-ratio:.86;background:#F4DFDA;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;padding:6px;rotate:3deg;
  -webkit-mask:linear-gradient(#000 0 0) center / calc(100% - 8px) calc(100% - 8px) no-repeat,radial-gradient(3.2px at 50% 50%,#0000 96%,#000) 0 0 / 8px 8px;
  mask:linear-gradient(#000 0 0) center / calc(100% - 8px) calc(100% - 8px) no-repeat,radial-gradient(3.2px at 50% 50%,#0000 96%,#000) 0 0 / 8px 8px;
  box-shadow:inset 0 0 0 5px #fff, inset 0 0 0 6px rgba(142,31,47,.35)}
.pc__stamp b{font:500 18px/1.05 var(--display);color:var(--bordo)}
.pc__stamp span{font:700 8px/1.2 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.pc__pm{position:absolute;top:26px;right:52px;width:96px;fill:none;stroke:rgba(36,40,64,.45);stroke-width:2;rotate:-8deg;pointer-events:none}
.pc__lines{display:none}
.pc__cta{position:absolute;right:18px;bottom:16px;font:700 10.5px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#fff;background:var(--bordo);padding:9px 13px;border-radius:999px}
.pc__r{position:static}
.pc__stamp{position:absolute;top:18px;right:18px}
@media (max-width:700px){.gifts > .wrap:first-child{text-align:center}.gifts .lede{margin-inline:auto}}
@media (max-width:420px){.gifts__grid{grid-template-columns:1fr}.pc{min-height:0}.pc h3{font-size:22px}}

/* 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(29,39,66,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.modal__box{position:relative;width:min(400px,100%);max-height:92svh;overflow:auto;background:var(--papel);padding:40px 30px 30px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;border-radius:6px;box-shadow:inset 0 0 0 8px var(--papel), inset 0 0 0 9px var(--ouro), 0 40px 80px -30px rgba(0,0,0,.5)}
.modal__x{position:absolute;top:14px;right:20px;border:0;background:none;font-size:30px;cursor:pointer;color:var(--tinta);z-index:1}
.pix__art{height:80px;width:auto}
.pix__title{font:400 27px/1.15 var(--display);color:var(--tinta)}
.pix__amount{font:400 34px var(--display);color:var(--bordo)}
.pix__val{display:flex;align-items:center;gap:8px;font:400 30px var(--display)}
.pix__val input{width:140px;border:0;border-bottom:1px solid var(--tinta);background:none;text-align:center;font:inherit;outline:0}
.pix__qr{width:190px;height:190px;background:#fff;padding:10px;box-shadow:0 0 0 1px var(--linha)}
.pix__qr svg{width:100%;height:100%}
.pix__demo{font-size:13px;color:var(--muted);max-width:30ch}

/* =================== RSVP: papel de carta aérea =================== */
.rsvp{padding:clamp(80px,10vw,140px) 16px;background:var(--rosa2);display:grid;place-items:center;position:relative}
.rsvp__card{position:relative;width:min(620px,100%);background:var(--papel);padding:clamp(52px,7vw,72px) clamp(24px,5vw,56px) clamp(36px,5vw,56px);border-radius:3px;box-shadow:0 40px 80px -36px rgba(108,21,34,.55)}
.rsvp__card::before{content:"";position:absolute;inset:0;padding:10px;border-radius:3px;background:repeating-linear-gradient(-45deg,#B3263A 0 14px,transparent 14px 22px,#2E3E63 22px 36px,transparent 36px 44px);
  -webkit-mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);pointer-events:none}
.rsvp__form,.rsvp__done{display:flex;flex-direction:column;gap:20px;position:relative}
.rsvp__form > .h2,.rsvp__deadline{text-align:center}
.rsvp__form .h2,.rsvp__done .h2{font-size:clamp(34px,4.8vw,52px)}
.rsvp__deadline{color:var(--muted);margin-top:-6px}
.rsvp__lbl{font:700 11.5px var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--zinco)}
.fld{display:flex;flex-direction:column;gap:6px;font:700 11.5px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--zinco)}
.fld input,.fld textarea,.fld select{font:400 17px var(--sans);letter-spacing:0;text-transform:none;color:var(--tinta);padding:12px 2px;border:0;border-bottom:1px solid var(--creme3);background:transparent;outline:0;border-radius:0;resize:vertical}
.fld input:focus,.fld textarea:focus,.fld select:focus{border-color:var(--bordo)}
fieldset{border:0}
legend{font:700 11.5px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--zinco);margin-bottom:10px}
.choice{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.choice legend{grid-column:1/-1}
.choice input,.chips input{position:absolute;opacity:0;pointer-events:none}
.choice span{display:block;text-align:center;padding:15px 10px;border:1px solid var(--creme3);background:rgba(255,255,255,.5);cursor:pointer;font:italic 400 20px var(--display);border-radius:999px;transition:all .3s}
.choice input:checked + span{background:var(--bordo);color:#fff;border-color:var(--bordo)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips legend{width:100%}
.chips span{display:inline-block;padding:9px 14px;border:1px solid var(--creme3);background:rgba(255,255,255,.5);cursor:pointer;font-size:15px;border-radius:999px;transition:all .25s}
.chips input:checked + span{background:var(--rosa2);border-color:var(--bordo);color:var(--bordo-esc)}
.choice input:focus-visible + span,.chips input:focus-visible + span{outline:2px solid var(--bordo);outline-offset:2px}
.stepper{display:flex;align-items:center;border:1px solid var(--creme3);width:max-content;background:rgba(255,255,255,.5);border-radius:999px}
.stepper button{width:48px;height:46px;border:0;background:none;font-size:22px;cursor:pointer;color:var(--bordo)}
.stepper output{min-width:40px;text-align:center;font:400 26px var(--display);color:var(--tinta)}
.rsvp__err{color:var(--bordo);font-size:15px}
.rsvp__err:empty{display:none}
.rsvp__done{align-items:center;text-align:center}
.tower{position:relative;width:110px;height:200px}
.tower img{width:100%;height:100%;object-fit:contain}
.tower canvas{position:absolute;inset:-10px;width:calc(100% + 20px);height:calc(100% + 20px);pointer-events:none}
.rsvp__done p{color:var(--muted);max-width:40ch}
.resumo{align-self:stretch;text-align:left;background:rgba(255,255,255,.6);border:1px solid var(--linha);border-left:4px solid var(--ouro);color:var(--tinta);padding:14px 16px;font-size:15px;line-height:1.5;white-space:pre-line;max-width:440px;margin:0 auto;width:100%}
.rsvp__demo{font-size:13.5px!important;color:var(--zinco)!important}
.people{display:flex;flex-direction:column;gap:14px}
.person{position:relative;border:1px solid var(--linha);background:rgba(255,255,255,.5);padding:20px 18px 18px;display:flex;flex-direction:column;gap:14px;border-radius:4px}
.person legend{font:italic 400 22px/1 var(--display);letter-spacing:0;text-transform:none;color:var(--tinta);padding:0 8px;margin:0 0 0 -8px}
.p-restr input{position:absolute;opacity:0;pointer-events:none}
.p-lbl{width:100%;font:700 11.5px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--zinco);margin-bottom:2px}
.p-lbl i{font-style:normal;letter-spacing:.06em;text-transform:none;font-size:13px}
.p-restr span,.p-cat span{font-size:14px;padding:8px 12px}
.person .fld input{padding:9px 2px}
.rsvp__mesa{position:relative;text-align:center;padding-bottom:26px;margin-bottom:30px;border-bottom:1px solid var(--linha)}
.rsvp__mesas{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 34px;margin-top:10px}
.rsvp__mn{font:400 clamp(40px,6vw,58px)/1 var(--display);color:var(--bordo)}
.rsvp__mp{font:italic 400 18px/1.4 var(--display);color:var(--muted);margin-top:6px;max-width:30ch}
.rsvp__closed{position:relative;display:flex;flex-direction:column;gap:16px;text-align:center;align-items:center}
.rsvp__closed p:last-child{color:var(--muted);max-width:40ch}
.van{gap:8px}
.van label{font:700 11.5px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--zinco)}
.van__n{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:6px}
.van__n span{font:700 11.5px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--zinco)}
.stepper--sm button{width:40px;height:38px;font-size:20px}
.stepper--sm output{font-size:22px;min-width:32px}
.lead{border-top:1px solid var(--linha);padding-top:14px}
.lead summary{cursor:pointer;list-style:none;font:italic 400 18px/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:"+";font:400 22px/1 var(--display);color:var(--bordo)}
.lead[open] summary::before{content:"–"}
.lead__b{display:flex;flex-direction:column;gap:14px;margin-top:14px;padding:16px;border:1px solid var(--linha);background:rgba(255,255,255,.5)}
.lead__b .chips span{font-size:14px;padding:8px 12px}
.lead__ok{display:flex;gap:10px;align-items:flex-start;font-size:15px;line-height:1.45;color:var(--tinta);cursor:pointer}
.lead__ok input{width:18px;height:18px;margin-top:2px;accent-color:var(--bordo);flex:none}
.rsvp__qr{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}
.rsvp__qr p:last-child{font-size:15px;color:var(--muted)}
.rsvp__qri{width:170px;height:170px;background:#fff;padding:8px;border:1px solid var(--linha)}
.rsvp__qri svg{width:100%;height:100%;display:block}
.rsvp__qr--top{position:relative;padding-bottom:24px;margin-bottom:26px;border-bottom:1px solid var(--linha)}
.ccard{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;border:1px solid var(--linha);background:var(--creme);padding:22px 20px;width:100%;max-width:420px;margin:4px auto 0}
.ccard__logo{max-width:130px;max-height:70px;object-fit:contain;margin-bottom:4px}
.ccard__n{font:400 26px/1.1 var(--display);color:var(--tinta)}
.ccard__f{font:italic 400 17px/1.4 var(--display);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:700 11px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;text-decoration:none;color:var(--bordo);border:1px solid var(--creme3);padding:10px 14px;border-radius:999px}
.ccard__a a:first-child{background:var(--bordo);color:#fff;border-color:var(--bordo)}
@media (max-width:700px){
  .rsvp__card{padding-top:50px}
  .person{padding:18px 14px 16px}
}

/* =================== FIM: cadeado do amor =================== */
.end{position:relative;height:100svh;min-height:620px;overflow:hidden;background:#3F6B70;color:var(--tinta)}
.end__scene{position:absolute;inset:0}
.end__img{position:absolute;inset:0}
.end__img img{width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.end__cv{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
.lock{position:absolute;left:0;top:0;width:150px;height:225px;z-index:3;cursor:pointer;transform-origin:50% 26%;-webkit-tap-highlight-color:transparent}
.lock__svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 14px 12px rgba(0,0,0,.45))}
.lock__wire{fill:#3E4A48}
.lock__ini{font:400 42px var(--script);fill:rgba(84,56,18,.82);paint-order:stroke;stroke:rgba(255,236,190,.5);stroke-width:1.2px}
.lock__ini--hi{fill:rgba(255,236,190,.55)}
.lock__date{font:700 11px var(--sans);letter-spacing:.16em;fill:rgba(84,56,18,.7)}
.lock__hole circle,.lock__hole path{fill:#4a3412}
.lock::after{content:"";position:absolute;left:8%;top:44%;width:84%;height:54%;pointer-events:none;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.7) 50%,transparent 70%) -200% 0/60% 100% no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='14 124 172 162'%3E%3Cpath d='M100 286 C40 246 14 214 14 176 C14 144 38 124 64 124 C82 124 94 133 100 145 C106 133 118 124 136 124 C162 124 186 144 186 176 C186 214 160 246 100 286 Z'/%3E%3C/svg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='14 124 172 162'%3E%3Cpath d='M100 286 C40 246 14 214 14 176 C14 144 38 124 64 124 C82 124 94 133 100 145 C106 133 118 124 136 124 C162 124 186 144 186 176 C186 214 160 246 100 286 Z'/%3E%3C/svg%3E") center/100% 100% no-repeat}
.lock.is-closed::after,.lock.is-shine::after{animation:shine 1.4s ease-out}
.lock.is-shine::after{animation:shine 1.6s .2s ease-out}
@keyframes shine{to{background-position:300% 0}}
.key{position:absolute;left:0;top:0;width:120px;z-index:4;touch-action:none;cursor:grab;opacity:0;visibility:hidden;user-select:none;-webkit-user-select:none;transform-origin:20% 50%}
.key.is-on{opacity:1;visibility:visible}
.key:active{cursor:grabbing}
.key__svg{width:100%;height:auto;display:block;filter:drop-shadow(0 6px 5px rgba(0,0,0,.45));overflow:visible}
.end__veil{position:absolute;left:0;right:0;top:0;height:42%;background:linear-gradient(180deg,rgba(246,240,230,.94) 0%,rgba(246,240,230,.84) 46%,rgba(246,240,230,0) 100%);pointer-events:none;z-index:2}
.end__in{position:absolute;left:0;right:0;top:calc(var(--top-h) + 6px);z-index:5;display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 20px;pointer-events:none}
.end__big{font:400 clamp(42px,5vw,74px)/1.02 var(--display);color:var(--tinta)}
.end__big em{font-style:italic;color:var(--bordo)}
.end__sig{font:400 clamp(34px,3.6vw,50px)/1.25 var(--script);color:var(--bordo);padding:0 .3em}
.end__low{position:absolute;left:0;right:0;bottom:64px;z-index:5;display:flex;flex-direction:column;align-items:center;padding:0 20px;pointer-events:none}
.end__low > *{pointer-events:auto}
.end__hint{font:italic 400 19px/1.35 var(--display);color:var(--tinta);background:rgba(251,247,239,.9);padding:8px 18px;border-radius:999px;text-align:center;max-width:40ch;box-shadow:0 10px 24px -14px rgba(0,0,0,.5)}
.end__done{font:italic 400 20px/1.4 var(--display);color:var(--bordo-esc);background:rgba(251,247,239,.94);padding:10px 20px;border-radius:14px;text-align:center;max-width:44ch;box-shadow:0 10px 24px -14px rgba(0,0,0,.5)}
.end__done .lnk{margin-left:6px;font-style:normal}
.end__foot{position:absolute;z-index:5;bottom:14px;left:16px;right:16px;text-align:center;font:600 12px var(--sans);letter-spacing:.06em;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.6)}
.end__foot a{color:#fff}
@media (max-width:700px){
  .end__big{font-size:clamp(40px,11.5vw,52px)}
  .end__sig{font-size:36px}
  .end__veil{height:36%}
  .end__low{bottom:70px}
  .end__hint{font-size:17px;max-width:30ch}
  .end__done{font-size:18px}
}

/* selo "modelo" */
.demo-tag{position:fixed;z-index:60;left:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px));font:600 11px var(--sans);letter-spacing:.12em;text-decoration:none;background:rgba(108,21,34,.92);color:#F6E9E2;padding:8px 12px;border-radius:999px;opacity:0;pointer-events:none;transition:opacity .4s, transform .4s}
.demo-tag b{font-weight:800;color:#fff}
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)}

.sparkle{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:130}
.toast{position:fixed;left:50%;bottom:24px;translate:-50% 220%;background:var(--tinta);color:#fff;padding:12px 20px;font-size:15px;z-index:140;transition:translate .4s ease;visibility:hidden;max-width:calc(100% - 32px);text-align:center;border-radius:999px}
.toast.is-on{translate:-50% 0;visibility:visible}

/* entradas */
.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 (max-width:700px){.story__txt{text-align:center}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* nomes compridos (?n1=&n2= ou template): letra menor pra caber */
body.names-long .hero__names{font-size:clamp(58px,8vw,124px)}
body.names-xlong .hero__names{font-size:clamp(48px,6.8vw,100px)}
body.names-long .invite__names{font-size:max(30px,9.4cqw)}
body.names-xlong .invite__names{font-size:max(26px,7.8cqw)}
@media (max-width:700px){
  body.names-long .hero__names{font-size:clamp(50px,14.5vw,78px)}
  body.names-xlong .hero__names{font-size:clamp(40px,11.5vw,62px)}
}
@media (max-width:420px){.choice span{font-size:17px;padding:14px 6px}}
