@font-face{font-family:"Bodoni Moda";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/bodoni-moda-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Bodoni Moda";font-style:italic;font-weight:400;font-display:swap;src:url(fonts/bodoni-moda-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Pinyon Script";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/pinyon-script-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Jost";font-style:normal;font-weight:300;font-display:swap;src:url(fonts/jost-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:"Jost";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/jost-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Jost";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/jost-latin-500-normal.woff2) format("woff2")}
/* Layout: capa em envelope que abre, hero editorial com nomes grandes em itálico,
   seções alternando noite/papel, linha do tempo à esquerda, confirmação em duas colunas. */
:root{
  --noite:#0F1B2D; --noite-2:#17283F; --noite-3:#22385A;
  --ouro:#C9A862; --ouro-claro:#EAD79B; --ouro-escuro:#8F6F2E; --ouro-tinta:#86672B;
  --papel:#F5F6F8; --papel-2:#E9ECF1; --cartao:#FFFFFF; --linha:#D5DAE3;
  --tinta:#18233A; --tinta-suave:#4B566B; --neblina:#B7C3D6;
  --selo:#7A1F2B; --selo-2:#A12E3D;
  --f-display:"Bodoni Moda","Didot","Bodoni 72",Georgia,"Times New Roman",serif;
  --f-script:"Pinyon Script","Snell Roundhand","Apple Chancery","Brush Script MT",cursive;
  --f-sans:"Jost","Futura","Century Gothic","Trebuchet MS",system-ui,sans-serif;
  --ease:cubic-bezier(.2,.7,.2,1);
  color-scheme:light;
}
:root[data-tema="bosque"]{
  --noite:#10241D; --noite-2:#193629; --noite-3:#244A39;
  --ouro:#C8B27A; --ouro-claro:#EADFB0; --ouro-escuro:#7E6A33; --ouro-tinta:#74612C;
  --papel:#F4F6F3; --papel-2:#E7ECE6; --linha:#D3DBD1;
  --tinta:#16261F; --tinta-suave:#47574E; --neblina:#B4C6BB;
  --selo:#6D2A2A; --selo-2:#8E3C3C;
}
:root[data-tema="rose"]{
  --noite:#3A1A29; --noite-2:#4B2336; --noite-3:#60304A;
  --ouro:#DDB38F; --ouro-claro:#F3DAC3; --ouro-escuro:#94603C; --ouro-tinta:#8A5733;
  --papel:#FAF5F5; --papel-2:#F0E6E8; --linha:#E3D3D7;
  --tinta:#2E1722; --tinta-suave:#6A4A58; --neblina:#D9BFCB;
  --selo:#5C1630; --selo-2:#7D2342;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html.js:not(.aberto){overflow:hidden}
body{margin:0;background:var(--papel);color:var(--tinta);font-family:var(--f-sans);font-weight:400;font-size:1.0625rem;line-height:1.7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
[hidden]{display:none!important}
h1,h2,h3,p,ol,ul,figure{margin:0}
:focus-visible{outline:2px solid var(--ouro-escuro);outline-offset:3px}
.escuro :focus-visible,.hero :focus-visible,.env :focus-visible{outline-color:var(--ouro-claro)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.wrap{width:100%;max-width:1080px;margin-inline:auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.sec{padding-block:clamp(4rem,10vw,7.5rem)}
.sec--papel2{background:var(--papel-2)}
.escuro{background:var(--noite-2);color:var(--papel)}

.eyebrow{font:500 .72rem/1.4 var(--f-sans);letter-spacing:.3em;text-transform:uppercase;color:var(--ouro-tinta)}
.escuro .eyebrow,.eyebrow--claro{color:var(--ouro)}
.h2{font-family:var(--f-display);font-weight:400;font-size:clamp(2.1rem,7.4vw,3.4rem);line-height:1.08;letter-spacing:-.01em;text-wrap:balance;margin-top:.7rem}
.h2 em{font-style:italic}
.lead{font-weight:300;font-size:1.15rem;color:var(--tinta-suave);max-width:46ch;margin-top:1.1rem}
.escuro .lead{color:var(--neblina)}
.ico{width:1.5rem;height:1.5rem;flex:none}

/* foil dourado */
.foil{background:linear-gradient(100deg,#D2AB58 0%,#F8EAB8 22%,#DCC07A 40%,#BE9A52 55%,#F3E1A6 76%,#D2AB58 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:foil 8s linear infinite}
@keyframes foil{to{background-position:220% 0}}

/* botões */
.btn{--b:var(--ouro);--on:var(--noite);position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:.65rem;min-height:3rem;padding:.8rem 1.6rem;border:1px solid var(--b);background:transparent;color:var(--b);font:500 .76rem/1.1 var(--f-sans);letter-spacing:.22em;text-transform:uppercase;text-decoration:none;text-align:center;cursor:pointer;transition:color .35s var(--ease),transform .2s var(--ease)}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--b);transform:translateX(-101%);transition:transform .5s var(--ease)}
.btn:hover,.btn:focus-visible{color:var(--on)}
.btn:hover::before,.btn:focus-visible::before{transform:none}
.btn:active{transform:translateY(1px)}
.btn--solid{background:var(--b);color:var(--on)}
.btn--solid::before{background:var(--ouro-claro)}
.btn--tinta{--b:var(--tinta);--on:var(--papel)}
.btn--sm{min-height:2.6rem;padding:.6rem 1.1rem;font-size:.7rem}
.btn[aria-disabled="true"]{opacity:.72}

/* ---------- Envelope ---------- */
.env{position:fixed;inset:0;z-index:100;display:none;place-items:center;background:radial-gradient(110% 80% at 50% 30%,var(--noite-3),var(--noite) 70%);color:var(--papel);transition:opacity .9s var(--ease),visibility .9s}
.js:not(.aberto) .env{display:grid}
.env.fim{opacity:0;visibility:hidden;pointer-events:none}
.env__cena{display:grid;justify-items:center;gap:1.6rem;width:100%;padding:1rem;padding-left:max(1rem,env(safe-area-inset-left,0px));padding-right:max(1rem,env(safe-area-inset-right,0px));transition:transform 1.1s var(--ease)}
.env.abrindo .env__cena{transform:scale(1.12)}
.env__para{font-family:var(--f-script);font-size:clamp(1.7rem,7vw,2.4rem);color:var(--ouro-claro);text-align:center;line-height:1.2}
.env__caixa{--W:min(84vw,440px);--H:calc(var(--W) * .68);position:relative;width:var(--W);height:var(--H);perspective:1400px;filter:drop-shadow(0 24px 40px rgba(0,0,0,.45))}
.env__fundo{position:absolute;inset:0;background:linear-gradient(160deg,var(--noite-3),var(--noite-2));border:1px solid color-mix(in srgb,var(--ouro) 55%,transparent)}
.env__carta{position:absolute;left:6%;right:6%;top:7%;bottom:5%;z-index:1;display:grid;align-content:center;justify-items:center;gap:.3rem;padding:.6rem;background:var(--papel);color:var(--tinta);text-align:center;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.env__carta::after{content:"";position:absolute;inset:6px;border:1px solid var(--ouro-tinta);opacity:.45;pointer-events:none}
.env__carta-eyebrow{font:500 calc(var(--W) * .02 + 4px)/1.2 var(--f-sans);letter-spacing:.3em;text-transform:uppercase;color:var(--ouro-tinta)}
.env__carta-nomes{font-family:var(--f-display);font-style:italic;font-size:calc(var(--W) * .075);line-height:1.1}
.env__carta-data{font:400 calc(var(--W) * .028 + 2px)/1.2 var(--f-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--tinta-suave)}
.env__bolso{position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,var(--noite-2) 0%,color-mix(in srgb,var(--noite-2) 72%,#000) 100%);border-top:1px solid color-mix(in srgb,var(--ouro) 35%,transparent)}
.env__bolso::after{content:"";position:absolute;inset:0;background:var(--ouro);opacity:.3;clip-path:polygon(0 100%,50% 54%,100% 100%,100% calc(100% - 1px),50% calc(54% + 1.3px),0 calc(100% - 1px))}
.env__aba{position:absolute;left:0;right:0;top:0;height:54%;z-index:3;transform-origin:50% 0;background:linear-gradient(180deg,var(--noite-3),var(--noite-2));clip-path:polygon(0 0,100% 0,50% 100%);backface-visibility:visible}
.env__selo{position:absolute;left:50%;top:54%;z-index:5;width:clamp(58px,17vw,76px);aspect-ratio:1;transform:translate(-50%,-50%);border:0;border-radius:50%;cursor:pointer;color:var(--ouro-claro);background:radial-gradient(circle at 34% 30%,var(--selo-2),var(--selo) 62%,color-mix(in srgb,var(--selo) 70%,#000));box-shadow:0 6px 14px rgba(0,0,0,.45),inset 0 0 0 3px color-mix(in srgb,var(--selo-2) 80%,#fff 8%),inset 0 0 0 4px color-mix(in srgb,#000 25%,transparent);font-family:var(--f-script);font-size:clamp(1.25rem,5vw,1.6rem);line-height:1;display:grid;place-items:center;animation:pulsa 2.4s ease-in-out infinite}
.env__selo:hover{filter:brightness(1.12)}
@keyframes pulsa{0%,100%{box-shadow:0 6px 14px rgba(0,0,0,.45),0 0 0 0 color-mix(in srgb,var(--ouro) 50%,transparent)}60%{box-shadow:0 6px 14px rgba(0,0,0,.45),0 0 0 14px transparent}}
.env__dica{font:500 .72rem/1.4 var(--f-sans);letter-spacing:.3em;text-transform:uppercase;color:var(--neblina);animation:respira 2.4s ease-in-out infinite}
@keyframes respira{50%{opacity:.45}}
.env__pular{background:none;border:0;padding:.5rem;font:400 .8rem/1 var(--f-sans);color:var(--neblina);text-decoration:underline;text-underline-offset:4px;cursor:pointer;opacity:.8}
.env.abrindo .env__aba{animation:aba .8s var(--ease) forwards}
.env.abrindo .env__selo{animation:selo .5s var(--ease) forwards}
.env.abrindo .env__carta{animation:carta 1.1s .5s var(--ease) forwards}
.env.abrindo .env__dica,.env.abrindo .env__pular{opacity:0;animation:none;transition:opacity .3s}
@keyframes aba{0%{transform:rotateX(0);z-index:3}49%{z-index:3}50%{z-index:0}100%{transform:rotateX(180deg);z-index:0}}
@keyframes selo{to{transform:translate(-50%,-50%) scale(1.7);opacity:0}}
@keyframes carta{to{transform:translateY(-80%)}}

/* ---------- Topo e CTA fixa ---------- */
.topo{position:fixed;top:0;left:0;right:0;z-index:50;padding-top:env(safe-area-inset-top,0px);background:color-mix(in srgb,var(--noite) 92%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--papel);border-bottom:1px solid color-mix(in srgb,var(--ouro) 30%,transparent);transform:translateY(-101%);transition:transform .5s var(--ease)}
.topo.on{transform:none}
.topo__in{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:3.6rem}
.topo__mono{font-family:var(--f-script);font-size:1.7rem;line-height:1;text-decoration:none;color:var(--ouro-claro)}
.topo__nav{display:none;gap:1.6rem}
.topo__nav a{font:500 .72rem/1 var(--f-sans);letter-spacing:.22em;text-transform:uppercase;text-decoration:none;color:var(--neblina);padding:.5rem 0;border-bottom:1px solid transparent;transition:color .3s,border-color .3s}
.topo__nav a:hover{color:var(--papel);border-color:var(--ouro)}
@media (min-width:860px){.topo__nav{display:flex}}
.cta-fixa{position:fixed;left:0;right:0;bottom:0;z-index:45;padding:.7rem max(16px,env(safe-area-inset-right,0px)) calc(.7rem + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));background:color-mix(in srgb,var(--noite) 94%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid color-mix(in srgb,var(--ouro) 30%,transparent);transform:translateY(105%);transition:transform .45s var(--ease)}
.cta-fixa.on{transform:none}
.cta-fixa .btn{width:100%}
@media (min-width:860px){.cta-fixa{display:none}}

/* ---------- Hero ---------- */
.hero{position:relative;isolation:isolate;overflow:hidden;text-align:center;color:var(--papel);background:radial-gradient(120% 80% at 50% 0%,var(--noite-3) 0%,var(--noite-2) 40%,var(--noite) 100%);padding-block:clamp(4.5rem,12svh,8rem) clamp(3.5rem,9svh,6rem)}
.hero__foto{position:absolute;inset:-8% 0;z-index:-3;background-size:cover;background-position:center;opacity:.42;will-change:transform}
.hero::after{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,color-mix(in srgb,var(--noite) 55%,transparent) 0%,color-mix(in srgb,var(--noite) 88%,transparent) 100%)}
.petalas{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.hero__in{position:relative;display:grid;justify-items:center;gap:1.3rem}
.saudacao{font-family:var(--f-script);font-size:clamp(1.6rem,6vw,2.2rem);line-height:1.2;color:var(--ouro-claro)}
.nomes{display:flex;flex-direction:column;align-items:center;font-family:var(--f-display);font-style:italic;font-weight:400;line-height:.98;letter-spacing:-.012em;font-size:clamp(3.4rem,17vw,5.6rem);color:var(--papel);margin-top:.2rem}
.nomes .nome{display:block;white-space:nowrap}
.nomes .amp{font-family:var(--f-script);font-style:normal;font-size:1.4em;line-height:.5;margin-block:.02em .04em;padding-inline:.1em}
@media (min-width:900px){.nomes{flex-direction:row;align-items:baseline;justify-content:center;gap:.1em;font-size:clamp(5rem,9.2vw,8.6rem)}.nomes .amp{font-size:1.25em;line-height:.6}}
.hero__data{display:grid;justify-items:center;gap:.5rem}
.hero__data .sem{font:500 .76rem/1.4 var(--f-sans);letter-spacing:.34em;text-transform:uppercase;color:var(--ouro)}
.hero__data .dia{font-family:var(--f-display);font-size:clamp(1.5rem,5.4vw,2.2rem);line-height:1.2}
.hero__data .onde{font:300 1rem/1.4 var(--f-sans);color:var(--neblina);letter-spacing:.06em}
.filete{display:block;width:min(180px,40vw);height:1px;background:linear-gradient(90deg,transparent,var(--ouro),transparent)}
.cont{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;width:min(100%,460px);margin-top:.6rem}
.cont__i{display:grid;justify-items:center;gap:.1rem;padding:.8rem .2rem .7rem;border:1px solid color-mix(in srgb,var(--ouro) 42%,transparent);background:color-mix(in srgb,var(--noite) 45%,transparent)}
.cont__n{font-family:var(--f-display);font-size:clamp(1.7rem,7vw,2.5rem);line-height:1.1;font-variant-numeric:tabular-nums}
.cont__n.tick{animation:tick .45s var(--ease)}
@keyframes tick{from{opacity:.2;transform:translateY(-6px)}to{opacity:1;transform:none}}
.cont__l{font:500 .62rem/1.2 var(--f-sans);letter-spacing:.24em;text-transform:uppercase;color:var(--neblina)}
.cont-fim{grid-column:1/-1;font-family:var(--f-script);font-size:2rem;color:var(--ouro-claro);padding:.4rem}
.hero__cta{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem 1.4rem;margin-top:.9rem}
.link-sutil{font:500 .74rem/1 var(--f-sans);letter-spacing:.22em;text-transform:uppercase;color:var(--neblina);text-decoration:none;padding:.9rem .2rem;border-bottom:1px solid var(--ouro)}
.link-sutil:hover{color:var(--papel)}

/* galhos desenhados */
.branch{position:absolute;pointer-events:none;overflow:visible;opacity:.8}
.branch .dr{fill:none;stroke:var(--ouro);stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.6s var(--ease) calc(var(--i,0) * 80ms)}
.branch .lf{fill:color-mix(in srgb,var(--ouro) 12%,transparent)}
.branch.in .dr{stroke-dashoffset:0}
.branch--tl{top:-4px;left:-22px;width:clamp(120px,30vw,230px);opacity:.7;transform:scaleY(-1)}
.branch--br{right:-22px;bottom:-4px;width:clamp(120px,30vw,230px);opacity:.7;transform:scaleX(-1)}
.branch--sec{position:static;display:block;width:150px;margin-top:1.1rem}
.branch--sec .dr{stroke:var(--ouro-tinta)}
.branch--sec .lf{fill:color-mix(in srgb,var(--ouro-tinta) 10%,transparent)}
.escuro .branch--sec .dr{stroke:var(--ouro)}
.escuro .branch--sec .lf{fill:color-mix(in srgb,var(--ouro) 12%,transparent)}

/* animações de entrada */
.js .hs{opacity:0}
.js.aberto .hs{animation:subir 1.05s var(--ease) calc(var(--i,0) * 140ms + 150ms) both}
@keyframes subir{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
[data-rv="pre"]{opacity:0;transform:translateY(26px)}
.rv{transition:opacity .9s var(--ease) var(--d,0ms),transform .9s var(--ease) var(--d,0ms)}

/* ---------- Convite ---------- */
.convite{display:grid;gap:2.4rem}
.convite__txt{font-family:var(--f-display);font-style:italic;font-size:clamp(1.55rem,5.2vw,2.35rem);line-height:1.32;text-wrap:balance}
.familias{display:grid;gap:1.4rem;margin-top:2.2rem;padding-top:1.6rem;border-top:1px solid var(--linha)}
.fam .eyebrow{display:block;margin-bottom:.4rem}
.fam p{font-size:1.05rem}
@media (min-width:760px){.convite{grid-template-columns:4fr 8fr;gap:4rem}.familias{grid-template-columns:1fr 1fr;gap:2rem}}

/* ---------- História ---------- */
.historia{display:grid;gap:2.6rem}
.tl{position:relative;list-style:none;padding:0 0 0 2.2rem;margin:0;display:grid;gap:2.8rem}
.tl::before,.tl::after{content:"";position:absolute;left:.45rem;top:.5rem;bottom:.5rem;width:1px}
.tl::before{background:var(--linha)}
.tl::after{background:var(--ouro-tinta);transform-origin:top;transform:scaleY(var(--p,0))}
.tl li{position:relative}
.tl li::before{content:"";position:absolute;left:calc(-1.75rem - 5px);top:.62rem;width:11px;height:11px;border-radius:50%;background:var(--papel);border:1px solid var(--ouro-tinta);box-shadow:0 0 0 4px var(--papel)}
.tl__q{font-family:var(--f-display);font-style:italic;font-size:clamp(1.6rem,5vw,2.1rem);line-height:1.1;color:var(--ouro-tinta)}
.tl__t{font:500 .8rem/1.4 var(--f-sans);letter-spacing:.24em;text-transform:uppercase;margin-top:.5rem}
.tl p{margin-top:.6rem;color:var(--tinta-suave);max-width:52ch}
@media (min-width:860px){.historia{grid-template-columns:4fr 8fr;gap:4rem}.historia__cab{position:sticky;top:6.5rem;align-self:start}}

/* ---------- O dia ---------- */
.dia-cab{display:grid;gap:.6rem;margin-bottom:2.6rem}
.eventos{display:grid;gap:1.2rem}
.evento{display:grid;align-content:start;gap:.7rem;padding:clamp(1.5rem,5vw,2.4rem);border:1px solid color-mix(in srgb,var(--ouro) 38%,transparent);background:color-mix(in srgb,var(--noite) 40%,transparent)}
.evento__topo{display:flex;align-items:center;gap:.8rem;color:var(--ouro)}
.evento__hora{font-family:var(--f-display);font-size:clamp(2.6rem,10vw,3.6rem);line-height:1;font-variant-numeric:tabular-nums}
.evento__local{font-family:var(--f-display);font-style:italic;font-size:1.6rem;line-height:1.2}
.evento__end{color:var(--neblina);font-weight:300}
.evento__obs{font-size:.95rem;color:var(--neblina);padding-top:.5rem;border-top:1px solid color-mix(in srgb,var(--ouro) 25%,transparent)}
.evento__acoes{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:.8rem}
.agenda{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem 1.2rem;margin-top:2.2rem}
.agenda span{color:var(--neblina);font-size:.95rem}
@media (min-width:760px){.eventos{grid-template-columns:1fr 1fr;gap:1.6rem}}

/* ---------- Programação e informações ---------- */
.duas{display:grid;gap:3.6rem}
.prog{list-style:none;padding:0;margin:2rem 0 0;display:grid}
.prog li{display:grid;grid-template-columns:5.2rem 1fr;gap:1rem;align-items:baseline;padding:1rem 0;border-bottom:1px solid var(--linha)}
.prog li:first-child{border-top:1px solid var(--linha)}
.prog__hora{font-family:var(--f-display);font-size:1.45rem;line-height:1;color:var(--ouro-tinta);font-variant-numeric:tabular-nums}
.prog__t{font-size:1.05rem}
.infos{display:grid;gap:1rem;margin-top:2rem}
.info{display:grid;grid-template-columns:auto 1fr;gap:.2rem 1rem;padding:1.3rem 1.3rem 1.4rem;background:var(--cartao);border:1px solid var(--linha)}
.info .ico{color:var(--ouro-tinta);grid-row:span 2;margin-top:.15rem}
.info h3{font:500 .78rem/1.4 var(--f-sans);letter-spacing:.24em;text-transform:uppercase}
.info p{font-size:.98rem;color:var(--tinta-suave);line-height:1.6}
@media (min-width:900px){.duas{grid-template-columns:5fr 6fr;gap:5rem}}

/* ---------- Galeria ---------- */
.galeria{columns:2;column-gap:.8rem;margin-top:2.4rem}
.foto{display:block;width:100%;margin:0 0 .8rem;padding:0;border:0;background:var(--linha);cursor:zoom-in;break-inside:avoid;overflow:hidden}
.foto img{width:100%;height:auto;transition:transform .9s var(--ease),filter .5s}
.foto:hover img{transform:scale(1.04)}
@media (min-width:760px){.galeria{columns:3;column-gap:1rem}.foto{margin-bottom:1rem}}
.luz{position:fixed;inset:0;z-index:90;display:none;place-items:center;background:color-mix(in srgb,var(--noite) 95%,transparent);padding:1rem}
.luz.on{display:grid}
.luz img{max-height:84svh;max-width:min(94vw,1100px);width:auto;object-fit:contain}
.luz button{position:absolute;width:3rem;height:3rem;border:1px solid color-mix(in srgb,var(--ouro) 45%,transparent);background:transparent;color:var(--papel);font-size:1.4rem;cursor:pointer}
.luz__x{top:max(1rem,env(safe-area-inset-top,0px));right:max(1rem,env(safe-area-inset-right,0px))}
.luz__a{left:max(.6rem,env(safe-area-inset-left,0px));top:50%}
.luz__p{right:max(.6rem,env(safe-area-inset-right,0px));top:50%}

/* ---------- Presentes ---------- */
.presentes{display:grid;gap:2.4rem}
.pix{display:grid;gap:1rem;padding:clamp(1.4rem,5vw,2rem);background:var(--cartao);border:1px solid var(--linha)}
.pix__rot{font:500 .7rem/1.4 var(--f-sans);letter-spacing:.28em;text-transform:uppercase;color:var(--ouro-tinta)}
.pix__chave{font-family:var(--f-display);font-size:clamp(1.15rem,4.6vw,1.5rem);line-height:1.3;overflow-wrap:anywhere;user-select:all;-webkit-user-select:all}
.pix__nome{color:var(--tinta-suave);font-size:.95rem}
.pix__acoes{display:flex;flex-wrap:wrap;gap:.7rem}
@media (min-width:860px){.presentes{grid-template-columns:5fr 6fr;gap:4.5rem;align-items:start}}

/* ---------- Confirmação ---------- */
.rsvp{display:grid;gap:2.6rem}
.rsvp__txt .prazo{display:inline-block;margin-top:1.4rem;padding:.55rem 1rem;border:1px solid color-mix(in srgb,var(--ouro) 45%,transparent);font:500 .74rem/1.3 var(--f-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ouro-claro)}
.form{display:grid;gap:1.5rem}
.campo{display:grid;gap:.35rem}
.campo label,.campo .rot{font:500 .7rem/1.4 var(--f-sans);letter-spacing:.26em;text-transform:uppercase;color:var(--ouro)}
.campo input,.campo select,.campo textarea{width:100%;padding:.65rem 0;border:0;border-bottom:1px solid color-mix(in srgb,var(--ouro) 55%,transparent);border-radius:0;background:transparent;color:var(--papel);font:400 1.15rem/1.4 var(--f-sans);appearance:none;-webkit-appearance:none;transition:border-color .3s,box-shadow .3s}
.campo textarea{resize:vertical;min-height:4.4rem}
.campo input::placeholder,.campo textarea::placeholder{color:color-mix(in srgb,var(--neblina) 70%,transparent)}
.campo input:focus,.campo select:focus,.campo textarea:focus{outline:0;border-color:var(--ouro-claro);box-shadow:0 1px 0 var(--ouro-claro)}
.campo select option{color:var(--tinta)}
.sel{position:relative}
.sel::after{content:"";position:absolute;right:.3rem;top:50%;width:.55rem;height:.55rem;border-right:1px solid var(--ouro);border-bottom:1px solid var(--ouro);transform:translateY(-70%) rotate(45deg);pointer-events:none}
.seg{display:grid;grid-template-columns:1fr 1fr;border:1px solid color-mix(in srgb,var(--ouro) 55%,transparent)}
.seg button{min-height:3.1rem;padding:.6rem .5rem;border:0;background:transparent;color:var(--neblina);font:500 .72rem/1.2 var(--f-sans);letter-spacing:.2em;text-transform:uppercase;cursor:pointer;transition:background-color .3s,color .3s}
.seg button+button{border-left:1px solid color-mix(in srgb,var(--ouro) 55%,transparent)}
.seg button[aria-checked="true"]{background:var(--ouro);color:var(--noite)}
.erro{color:#F2B8B0;font-size:.92rem}
.previa{display:grid;gap:.5rem}
.bolha{position:relative;max-width:36ch;padding:.9rem 1.1rem;background:var(--papel);color:var(--tinta);font-size:.96rem;line-height:1.55;white-space:pre-line;overflow-wrap:anywhere}
.bolha::after{content:"";position:absolute;left:14px;bottom:-8px;border-top:9px solid var(--papel);border-right:9px solid transparent}
.aviso-demo{font-size:.85rem;color:var(--neblina);border-left:2px solid var(--ouro);padding-left:.8rem}
.rsvp__go{width:100%}
@media (min-width:900px){.rsvp{grid-template-columns:5fr 6fr;gap:5rem;align-items:start}}

/* ---------- Rodapé ---------- */
.rodape{background:var(--noite);color:var(--papel);text-align:center;padding-block:clamp(3.5rem,9vw,5.5rem) calc(clamp(3.5rem,9vw,5.5rem) + 4rem);border-top:1px solid color-mix(in srgb,var(--ouro) 30%,transparent)}
.rodape__mono{font-family:var(--f-script);font-size:clamp(3.6rem,16vw,6rem);line-height:1}
.rodape p{color:var(--neblina)}
.rodape__hash{margin-top:1rem;font:500 .8rem/1.4 var(--f-sans);letter-spacing:.3em;text-transform:uppercase;color:var(--ouro)!important}
.rodape__cred{margin-top:2rem;font-size:.8rem;opacity:.7}
@media (min-width:860px){.rodape{padding-bottom:clamp(3.5rem,9vw,5.5rem)}}

/* música e aviso */
.musica{position:fixed;right:max(14px,env(safe-area-inset-right,0px));bottom:calc(5.2rem + env(safe-area-inset-bottom,0px));z-index:46;width:2.8rem;height:2.8rem;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--ouro) 55%,transparent);background:color-mix(in srgb,var(--noite) 92%,transparent);color:var(--ouro);cursor:pointer}
.musica[aria-pressed="false"] .ico{opacity:.5}
@media (min-width:860px){.musica{bottom:1.4rem}}
.toast{position:fixed;left:50%;bottom:calc(5.4rem + env(safe-area-inset-bottom,0px));z-index:120;transform:translate(-50%,20px);opacity:0;padding:.7rem 1.2rem;background:var(--papel);color:var(--tinta);font-size:.92rem;box-shadow:0 8px 24px rgba(0,0,0,.3);pointer-events:none;transition:opacity .3s,transform .3s var(--ease);max-width:calc(100vw - 2rem);text-align:center}
.toast.on{opacity:1;transform:translate(-50%,0)}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .js .hs{opacity:1}
  [data-rv="pre"]{opacity:1;transform:none}
  .foil{animation:none}
  .branch .dr{stroke-dashoffset:0}
}
