/**
 ** Data : 16/06/2026
 ** Autor: Whilton Reis
 ** Polaris Tecnologia
 **/

/* =====================================================================
   MODELO 16 — "BAUHAUS"
   Convite como composição da escola Bauhaus. ASSINATURA: a foto é um
   CÍRCULO sobre um QUADRADO azul, com um TRIÂNGULO amarelo — as três
   formas primárias em jogo. Vermelho + azul + amarelo no branco, sem
   curvas no resto, bordas e sombras duras.
   Paleta editável: JS injeta --rose (vermelho) e --olive (azul).
   ===================================================================== */
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 300; font-display: swap; src: url('../fonts/poppins-300.woff2') format('woff2'); }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/poppins-400.woff2') format('woff2'); }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 500; font-display: swap; src: url('../fonts/poppins-500.woff2') format('woff2'); }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/poppins-600.woff2') format('woff2'); }
@font-face { font-family: 'Cormorant Garamond'; font-style: italic; font-weight: 400 700; font-display: swap; src: url('../fonts/cormorant-garamond-italic.woff2') format('woff2'); }

:root { --rose:#e63329; --olive:#1d4ed8; --olive-dk:#1d4ed8; --sun:#f5c518; --ink:#161616; --ink-soft:#5a5a5a; --paper:#ffffff; --paper-2:#f3f1ea; --line:#161616; --radius:0px; --shadow:6px 6px 0 var(--ink); --shadow-lg:9px 9px 0 var(--ink); --maxw:1180px; }
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'Poppins',system-ui,sans-serif; font-weight:400; color:var(--ink); background:var(--paper); line-height:1.6; overflow-x:hidden; }
h1,h2,h3,.hero__title,.footer__names,.section-title,.nav__logo { font-family:'Poppins',system-ui,sans-serif; font-weight:600; text-transform:uppercase; letter-spacing:-.02em; line-height:.96; }
em { font-family:'Cormorant Garamond',Georgia,serif; font-style:italic; text-transform:none; color:var(--olive); }
strong { font-weight:600; color:var(--ink); }
.section-title span,.hero__title span,.intro h2 span { background:var(--sun); color:var(--ink); padding:0 .12em; }
.footer__names span { color:var(--sun); }
.hero__eyebrow,.intro__eyebrow { display:inline-flex; align-items:center; gap:.5rem; text-transform:uppercase; letter-spacing:.12em; font-size:.66rem; font-weight:600; color:var(--ink); margin-bottom:1.4rem; }
.hero__eyebrow::before,.intro__eyebrow::before { content:'\25A0'; color:var(--rose); letter-spacing:0; }

.btn { display:inline-flex; align-items:center; gap:.5rem; background:var(--rose); color:#fff; text-decoration:none; cursor:pointer; border:3px solid var(--ink); padding:.82rem 1.7rem; border-radius:0; font-family:'Poppins',sans-serif; font-weight:600; font-size:.82rem; text-transform:uppercase; letter-spacing:.04em; box-shadow:4px 4px 0 var(--ink); transition:transform .12s,box-shadow .12s; }
.btn:hover { transform:translate(-2px,-2px); box-shadow:7px 7px 0 var(--ink); } .btn:active { transform:translate(2px,2px); box-shadow:1px 1px 0 var(--ink); }
.btn:focus-visible { outline:3px solid var(--olive); outline-offset:3px; }
.btn--ghost { background:#fff; color:var(--ink); } .btn--ghost:hover { background:var(--sun); }
.btn--mini { padding:.5rem 1.05rem; font-size:.74rem; box-shadow:3px 3px 0 var(--ink); } .btn--mini:hover { box-shadow:5px 5px 0 var(--ink); }

.nav { position:sticky; top:0; z-index:50; display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding:.85rem 6vw; background:#fff; border-bottom:3px solid var(--ink); }
.nav__logo { font-weight:600; font-size:1.5rem; color:var(--ink); text-decoration:none; letter-spacing:-.03em; } .nav__logo span { color:var(--rose); }
.nav__links { display:flex; gap:1.6rem; }
.nav__links a { color:var(--ink); text-decoration:none; font-size:.78rem; font-weight:600; text-transform:uppercase; letter-spacing:.04em; position:relative; padding:.2rem .1rem; }
.nav__links a::after { content:''; position:absolute; left:0; bottom:-2px; width:0; height:3px; background:var(--rose); transition:width .18s; } .nav__links a:hover::after { width:100%; }

.hero,.intro,.acoes,.horarios,.rsvp,.historia,.como,.presentes,.faq { padding-left:6vw; padding-right:6vw; }
.hero { display:grid; grid-template-columns:1.1fr .9fr; gap:3.5rem; align-items:center; padding-top:4.5rem; padding-bottom:4rem; max-width:var(--maxw); margin:0 auto; }
.hero__title { font-size:clamp(3rem,8.5vw,6.4rem); color:var(--ink); margin-bottom:1.2rem; }
.hero__date { display:inline-block; font-size:.8rem; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:#fff; background:var(--olive); padding:.3rem .7rem; margin-bottom:.7rem; }
.hero__local { font-size:.95rem; color:var(--ink-soft); margin-bottom:1.4rem; }
.hero__lead { max-width:46ch; font-size:1.05rem; color:var(--ink-soft); }
.hero__cta { display:flex; gap:.9rem; flex-wrap:wrap; margin-top:2rem; }
/* COMPOSIÇÃO: círculo (foto) + quadrado azul + triângulo amarelo */
.hero__photo { position:relative; max-width:430px; justify-self:end; width:100%; padding-bottom:2rem; }
.hero__photo::before { content:''; position:absolute; right:-1.2rem; bottom:0; width:64%; height:64%; background:var(--olive); border:3px solid var(--ink); z-index:0; }
.hero__photo::after { content:''; position:absolute; left:-1.4rem; top:-1rem; width:0; height:0; border-left:34px solid transparent; border-right:34px solid transparent; border-bottom:58px solid var(--sun); filter:drop-shadow(2px 3px 0 var(--ink)); z-index:0; }
.hero__frame { position:relative; z-index:1; width:100%; aspect-ratio:1; overflow:hidden; border-radius:50%; border:3px solid var(--ink); box-shadow:none; animation:revealUp 1s ease both; }
.hero__frame img { width:100%; height:100%; display:block; object-fit:cover; object-position:center; animation:kenburns 16s ease-in-out infinite alternate; }
.hero__photo:hover .hero__frame img { transform:scale(1.04); }
.hero__frame::after { content:""; position:absolute; inset:0; z-index:2; pointer-events:none; border-radius:50%; background:linear-gradient(120deg,transparent 42%,rgba(255,255,255,.35) 50%,transparent 58%); transform:translateX(-120%); animation:sheen 6s ease-in-out 1.4s infinite; }
@keyframes kenburns { from{transform:scale(1);} to{transform:scale(1.07);} }
@keyframes revealUp { from{opacity:0;transform:translateY(26px);} to{opacity:1;transform:translateY(0);} }
@keyframes sheen { 0%,100%{transform:translateX(-120%);} 55%,70%{transform:translateX(120%);} }
.hero__sticker { position:absolute; z-index:3; top:.4rem; right:.4rem; background:var(--olive); color:#fff; border:2.5px solid var(--ink); font-size:.66rem; font-weight:600; text-transform:uppercase; letter-spacing:.06em; padding:.4rem .8rem; }

.countdown { display:flex; gap:.8rem; margin-top:2.6rem; flex-wrap:wrap; }
.countdown__box { display:grid; place-items:center; min-width:74px; padding:.7rem .5rem; background:#fff; border:3px solid var(--ink); text-align:center; }
.countdown__box strong { font-size:1.8rem; font-weight:600; line-height:1; color:var(--ink); font-variant-numeric:tabular-nums; } .countdown__box span { font-size:.56rem; text-transform:uppercase; letter-spacing:.06em; color:var(--rose); font-weight:600; margin-top:.25rem; }

.section-title { font-size:clamp(2.1rem,5.5vw,3.8rem); color:var(--ink); margin-bottom:2rem; }
.section-title--center { text-align:center; margin-left:auto; margin-right:auto; max-width:20ch; }

.intro { padding-top:4.5rem; padding-bottom:4rem; text-align:center; max-width:var(--maxw); margin:0 auto; }
.intro__inner { max-width:680px; margin:0 auto; } .intro__eyebrow { justify-content:center; }
.intro h2 { font-size:clamp(2rem,6vw,3.4rem); color:var(--ink); margin-bottom:1.6rem; }
.intro p { color:var(--ink-soft); font-size:1.06rem; margin-bottom:1rem; }
.intro__sign { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.9rem; color:var(--olive); margin-top:1.4rem; }

.polaroids { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:1.2rem; margin-top:3rem; }
.polaroid { position:relative; width:150px; text-align:center; transition:transform .25s; }
.polaroid img { width:100%; aspect-ratio:1; object-fit:cover; border:3px solid var(--ink); display:block; }
.polaroid:nth-child(odd) img { border-radius:50%; } .polaroid:nth-child(3) img { border-radius:0; }
.polaroid:hover { transform:translateY(-6px); }
.polaroid figcaption { font-weight:600; text-transform:uppercase; font-size:.7rem; letter-spacing:.04em; color:var(--ink-soft); margin-top:.4rem; }

.acoes { padding-top:3.5rem; padding-bottom:4rem; max-width:var(--maxw); margin:0 auto; }
.acoes__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.acao { display:flex; flex-direction:column; align-items:flex-start; gap:.55rem; text-decoration:none; color:var(--ink); padding:1.9rem 1.6rem; background:#fff; border:3px solid var(--ink); box-shadow:var(--shadow); transition:transform .14s,box-shadow .14s; }
.acao:nth-child(1):hover { box-shadow:9px 9px 0 var(--rose); } .acao:nth-child(2):hover { box-shadow:9px 9px 0 var(--olive); } .acao:nth-child(3):hover { box-shadow:9px 9px 0 var(--sun); }
.acao:hover { transform:translate(-3px,-3px); }
.acao__icon { font-size:2rem; line-height:1; } .acao__titulo { font-weight:600; text-transform:uppercase; font-size:1.2rem; color:var(--ink); } .acao__txt { font-size:.9rem; color:var(--ink-soft); }
.acao__cta { margin-top:.4rem; font-size:.72rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--rose); }

.horarios { background:var(--olive); color:#fff; padding-top:4.5rem; padding-bottom:4.5rem; border:3px solid var(--ink); margin:1rem auto; max-width:var(--maxw); }
.horarios .section-title { color:#fff; } .horarios .section-title span { background:#fff; color:var(--olive); }
.timeline { max-width:760px; margin:0 auto; display:flex; flex-direction:column; }
.evento { display:flex; align-items:baseline; gap:1.8rem; padding:1.7rem 0; border-top:2px solid rgba(255,255,255,.3); } .evento:last-child { border-bottom:2px solid rgba(255,255,255,.3); }
.evento__hora { font-weight:600; font-size:clamp(2.2rem,5vw,3.4rem); line-height:.9; color:var(--sun); min-width:4.5ch; letter-spacing:-.02em; font-variant-numeric:tabular-nums; }
.evento__corpo h3 { font-weight:600; text-transform:uppercase; font-size:1.15rem; color:#fff; margin-bottom:.3rem; } .evento__corpo p { font-size:.92rem; opacity:.92; } .evento__emoji { display:none; }
.horarios__local { text-align:center; margin-top:2rem; letter-spacing:.1em; text-transform:uppercase; font-size:.8rem; opacity:.92; }

.historia { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; padding-top:4.5rem; padding-bottom:4.5rem; max-width:var(--maxw); margin:0 auto; }
.historia__text p { margin-bottom:1rem; color:var(--ink-soft); }
.historia__assinatura { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.5rem; color:var(--olive); margin-top:1.3rem; }

.como { padding-top:4rem; padding-bottom:4rem; max-width:var(--maxw); margin:0 auto; }
.como__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.como__card { position:relative; padding:1.9rem 1.6rem; background:#fff; border:3px solid var(--ink); }
.como__num { display:inline-grid; place-items:center; width:2.8rem; height:2.8rem; font-weight:600; font-size:1.3rem; color:#fff; background:var(--rose); border:2.5px solid var(--ink); border-radius:50%; margin-bottom:1rem; }
.como__card:nth-child(2) .como__num { background:var(--olive); } .como__card:nth-child(3) .como__num { background:var(--sun); color:var(--ink); }
.como__card h3 { font-weight:600; text-transform:uppercase; font-size:1.1rem; color:var(--ink); margin-bottom:.45rem; } .como__card p { font-size:.94rem; color:var(--ink-soft); }

.presentes { padding-top:4.5rem; padding-bottom:5rem; max-width:var(--maxw); margin:0 auto; }
.filtros { display:flex; gap:.6rem; flex-wrap:wrap; justify-content:center; margin-bottom:2.6rem; }
.filtro { background:#fff; border:2.5px solid var(--ink); color:var(--ink); padding:.5rem 1.1rem; cursor:pointer; font-family:'Poppins',sans-serif; font-size:.78rem; font-weight:600; text-transform:uppercase; letter-spacing:.04em; box-shadow:2px 2px 0 var(--ink); transition:all .12s; }
.filtro:hover { transform:translate(-1px,-1px); box-shadow:4px 4px 0 var(--ink); } .filtro.is-active { background:var(--rose); color:#fff; }
.grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:1.8rem; }
.card { background:#fff; border:3px solid var(--ink); overflow:hidden; display:flex; flex-direction:column; box-shadow:var(--shadow); transition:transform .14s,box-shadow .14s; }
.card:hover { transform:translate(-3px,-3px); box-shadow:9px 9px 0 var(--olive); }

.scene { position:relative; aspect-ratio:334/358; overflow:hidden; display:grid; place-items:center; background:var(--paper-2); border-bottom:3px solid var(--ink); }
.sticker-mode .grid { grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:1.8rem; }
.sticker-mode .scene { aspect-ratio:auto; height:200px; }
.scene:has(.scene__sticker--foto) { aspect-ratio:4/3; height:auto; }
.scene__sticker { position:relative; z-index:2; align-self:center; justify-self:center; margin:0; width:auto; height:auto; max-width:92%; max-height:184px; object-fit:contain; object-position:center; opacity:1; filter:none; }
.scene__sticker--foto { width:100% !important; height:100% !important; max-width:none !important; max-height:none !important; object-fit:cover !important; padding:0 !important; }
.scene__sticker.is-framed { align-self:center; margin-top:0; height:88%; max-width:92%; border-radius:0; box-shadow:none; filter:none; }

.card__body { padding:1.2rem 1.2rem 1.4rem; display:flex; flex-direction:column; flex:1; }
.card__nome { font-weight:600; text-transform:uppercase; font-size:1.02rem; line-height:1.15; color:var(--ink); margin-bottom:.4rem; }
.card__desc { font-size:.86rem; color:var(--ink-soft); flex:1; margin-bottom:1.1rem; }
.card__foot { display:flex; align-items:center; justify-content:space-between; gap:.6rem; }
.card__preco { font-size:1.5rem; font-weight:600; color:var(--rose); letter-spacing:-.02em; font-variant-numeric:tabular-nums; }
.card__pago { font-size:.7rem; font-weight:600; text-transform:uppercase; letter-spacing:.04em; color:var(--ink); background:var(--sun); border:2px solid var(--ink); padding:.3rem .65rem; }
.card__custom-row { display:flex; align-items:center; gap:.5rem; border:2.5px solid var(--ink); padding:.5rem .8rem; background:#fff; } .card__custom-row:focus-within { box-shadow:3px 3px 0 var(--rose); }
.card__cifrao { font-size:1.3rem; font-weight:600; color:var(--rose); }
.card__valor-input { flex:1; border:none; outline:none; background:transparent; font-family:'Poppins',sans-serif; font-size:1.4rem; font-weight:600; color:var(--ink); width:100%; }
.card__custom-hint { font-size:.76rem; color:var(--ink-soft); }

.faq { padding-top:4rem; padding-bottom:5rem; max-width:820px; margin:0 auto; }
.faq__list { display:flex; flex-direction:column; gap:.9rem; }
.faq details { background:#fff; border:2.5px solid var(--ink); padding:1.05rem 1.3rem; cursor:pointer; box-shadow:3px 3px 0 var(--ink); }
.faq summary { font-weight:600; text-transform:uppercase; font-size:.92rem; color:var(--ink); list-style:none; display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.faq summary::after { content:'+'; color:var(--rose); font-size:1.6rem; line-height:1; } .faq details[open] summary::after { content:'\2013'; }
.faq details p { margin-top:.8rem; font-size:.92rem; color:var(--ink-soft); text-transform:none; }

.rsvp { max-width:640px; margin:0 auto; padding-top:4.5rem; padding-bottom:4.5rem; }
.rsvp__lead { text-align:center; color:var(--ink-soft); margin:-.6rem 0 2rem; }
.rsvp__form { display:grid; gap:1.2rem; background:#fff; border:3px solid var(--ink); padding:2.2rem; box-shadow:var(--shadow-lg); }
.rsvp__campo { display:grid; gap:.4rem; }
.rsvp__campo > span,.rsvp__campo legend { font-size:.72rem; font-weight:600; text-transform:uppercase; letter-spacing:.04em; color:var(--ink); }
.rsvp__campo input[type="text"],.rsvp__campo input[type="number"],.rsvp__campo textarea { width:100%; padding:.8rem .95rem; border:2.5px solid var(--ink); background:var(--paper); color:var(--ink); font:inherit; }
.rsvp__campo input:focus,.rsvp__campo textarea:focus { outline:none; box-shadow:3px 3px 0 var(--rose); }
.rsvp__campo textarea { resize:vertical; }
.rsvp__opcoes { border:none; } .rsvp__opcoes label { display:inline-flex; align-items:center; gap:.4rem; margin-right:1.5rem; cursor:pointer; } .rsvp__opcoes input { accent-color:var(--rose); }
.rsvp__form .btn { justify-self:start; } .rsvp__msg { min-height:1.2em; font-size:.92rem; color:var(--ink); }

.footer { background:var(--ink); color:var(--paper); text-align:center; padding:3.5rem 6vw; }
.footer__names { font-size:clamp(2rem,6vw,3.2rem); color:#fff; }
.footer__date { letter-spacing:.3em; color:var(--sun); margin:.6rem 0 1rem; font-size:.85rem; }
.footer__small { font-size:.82rem; opacity:.75; }

.modal { position:fixed; inset:0; z-index:100; background:rgba(22,22,22,.6); backdrop-filter:blur(4px); display:none; place-items:center; padding:1.5rem; }
.modal.is-open { display:grid; }
.modal__box { background:#fff; border:3px solid var(--ink); padding:2.5rem 2rem 2rem; max-width:410px; width:100%; text-align:center; position:relative; box-shadow:8px 8px 0 var(--ink); animation:pop .25s ease; }
@keyframes pop { from{transform:scale(.92);opacity:0;} to{transform:scale(1);opacity:1;} }
.modal__close { position:absolute; top:.5rem; right:.9rem; background:none; border:none; font-size:1.8rem; color:var(--ink); cursor:pointer; line-height:1; }
.modal__emoji { font-size:3rem; } .modal__box h3 { font-weight:600; text-transform:uppercase; font-size:1.3rem; color:var(--ink); margin:.4rem 0; }
.modal__nome { color:var(--ink-soft); font-weight:400; text-transform:none; } .modal__valor { font-size:2rem; font-weight:600; color:var(--rose); margin:.4rem 0 1rem; }
.modal__instrucao { font-size:.88rem; color:var(--ink-soft); margin-bottom:1.5rem; text-transform:none; } .modal__ok { width:100%; justify-content:center; }
.modal__valor-edit { display:flex; flex-direction:column; gap:.7rem; margin:.4rem 0 .5rem; text-align:left; }
.modal__valor-edit[hidden] { display:none !important; } .modal__valor-edit .card__custom-row { padding:.7rem 1rem; }
.modal__valor-edit .card__valor-input { font-size:1.7rem; text-align:center; } .modal__valor-edit .card__custom-hint { text-align:center; }
.is-hidden { display:none !important; }

@media (max-width:900px) {
  .nav__links { display:none; }
  .hero, .historia { grid-template-columns:1fr; gap:2.5rem; }
  .hero__photo { order:-1; max-width:320px; margin:2rem auto 0; justify-self:center; }
  .acoes__grid, .como__grid { grid-template-columns:1fr; }
  .polaroid { width:130px; }
}
@media (prefers-reduced-motion:reduce) {
  .scene__fx, .hero__frame, .hero__frame img, .anim-el { animation:none !important; }
  .hero__frame::after { animation:none !important; opacity:0; }
  .scene__fx { opacity:.85; }
  html { scroll-behavior:auto; }
}
.scene__fx {
  position: absolute; z-index: 1; font-size: 1.3rem; opacity: 0; bottom: 8px;
  animation: floatUp 3.4s ease-in-out infinite;
}
.scene__fx.fx1 { left: 22%; animation-delay: 0s; }
.scene__fx.fx2 { left: 50%; animation-delay: 1.1s; }
.scene__fx.fx3 { left: 74%; animation-delay: 2.2s; }
@keyframes floatUp {
  0%   { opacity: 0; transform: translateY(10px) scale(.7); }
  20%  { opacity: .9; }
  80%  { opacity: .9; }
  100% { opacity: 0; transform: translateY(-90px) scale(1.05); }
}
/* --- BOB: balanço suave (café, cachorro) --- */
.scene--bob .anim-el { animation: a-bob 2.6s ease-in-out infinite; }
@keyframes a-bob { 0%,100% { transform: translateY(0) rotate(-1.5deg); } 50% { transform: translateY(-9px) rotate(1.5deg); } }

/* --- SHAKE: tremedeira de raiva (montar móvel) --- */
.scene--shake .anim-el { animation: a-shake .35s linear infinite; }
@keyframes a-shake {
  0%,100% { transform: translate(0,0) rotate(0); }
  25% { transform: translate(-3px,1px) rotate(-2.5deg); }
  50% { transform: translate(3px,-1px) rotate(2.5deg); }
  75% { transform: translate(-2px,0) rotate(-1.5deg); }
}

/* --- ZEN: respiração calma (sem sogra, terapia) --- */
.scene--zen .anim-el { animation: a-zen 4s ease-in-out infinite; }
@keyframes a-zen { 0%,100% { transform: scale(1); } 50% { transform: scale(1.05); } }
.scene--zen { background: linear-gradient(135deg, #e7eddb, #fff); }

/* --- CRY: soluço tremido (choro no altar) --- */
.scene--cry .anim-el { animation: a-sob 1.1s ease-in-out infinite; }
@keyframes a-sob {
  0%,100% { transform: translateY(0) rotate(0); }
  20% { transform: translateY(-3px) rotate(-2deg); }
  40% { transform: translateY(1px) rotate(2deg); }
  60% { transform: translateY(-2px) rotate(-1deg); }
}

/* --- WIGGLE: dança de festa (cerveja, open bar) --- */
.scene--wiggle .anim-el { animation: a-wiggle .7s ease-in-out infinite; }
@keyframes a-wiggle {
  0%,100% { transform: rotate(-3deg) scale(1.02); }
  50% { transform: rotate(3deg) scale(1.04); }
}
.scene--wiggle .scene__fx { animation-duration: 1.8s; }

/* --- ZOOM: disparada pra fugir (combustível) --- */
.scene--zoom .anim-el { animation: a-zoom 1.7s ease-in-out infinite; }
@keyframes a-zoom {
  0% { transform: translateX(-12px) scale(1.02); }
  55% { transform: translateX(8px) scale(1.05); }
  100% { transform: translateX(-12px) scale(1.02); }
}
.scene--zoom .scene__fx { animation: streak 1s linear infinite; }
@keyframes streak {
  0% { opacity: 0; transform: translateX(40px); }
  30% { opacity: .9; }
  100% { opacity: 0; transform: translateX(-70px); }
}

/* --- KISS: batida de coração apaixonado (lua de mel, sumir) --- */
.scene--kiss .anim-el { animation: a-kiss 1.3s ease-in-out infinite; }
@keyframes a-kiss { 0%,100% { transform: scale(1); } 15% { transform: scale(1.07); } 30% { transform: scale(1); } 45% { transform: scale(1.07); } }

/* --- PULSE: cha-ching do dinheiro (paguei o buffet) --- */
.scene--pulse .anim-el { animation: a-pulse 1s ease-in-out infinite; }
@keyframes a-pulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.06) rotate(1.5deg); } }
/* movimentos extras */
.scene--swing .anim-el { transform-origin: top center; animation: a-swing 2.2s ease-in-out infinite; }
@keyframes a-swing { 0%,100% { transform: rotate(-6deg); } 50% { transform: rotate(6deg); } }
.scene--spin .anim-el { animation: a-spin 3.4s linear infinite; }
@keyframes a-spin { from { transform: rotate(0); } to { transform: rotate(360deg); } }
.scene--jelly .anim-el { animation: a-jelly 1.6s ease-in-out infinite; }
@keyframes a-jelly { 0%,100% { transform: scale(1,1); } 30% { transform: scale(1.12,.88); } 50% { transform: scale(.9,1.1); } 70% { transform: scale(1.05,.95); } }
.scene--tada .anim-el { animation: a-tada 2s ease-in-out infinite; }
@keyframes a-tada { 0%,100% { transform: scale(1) rotate(0); } 10%,20% { transform: scale(.93) rotate(-5deg); } 30%,50%,70%,90% { transform: scale(1.1) rotate(5deg); } 40%,60%,80% { transform: scale(1.1) rotate(-5deg); } }
.scene--bounce .anim-el { animation: a-bounce 1.7s cubic-bezier(.28,.84,.42,1) infinite; }
@keyframes a-bounce { 0%,100% { transform: translateY(0); } 30% { transform: translateY(-22px); } 50% { transform: translateY(0); } 65% { transform: translateY(-10px); } 80% { transform: translateY(0); } }
.scene--drift .anim-el { animation: a-drift 3s ease-in-out infinite; }
.scene--estatico .anim-el { animation: none; }
.scene--flip .anim-el { animation: a-flip 3s ease-in-out infinite; }
@keyframes a-flip { 0%,100% { transform: perspective(420px) rotateY(0); } 50% { transform: perspective(420px) rotateY(180deg); } }
.scene--heartbeat .anim-el { animation: a-heartbeat 1.4s ease-in-out infinite; }
@keyframes a-heartbeat { 0%,40%,100% { transform: scale(1); } 12% { transform: scale(1.16); } 24% { transform: scale(1); } 32% { transform: scale(1.12); } }
.scene--wobble .anim-el { animation: a-wobble 1.8s ease-in-out infinite; }
@keyframes a-wobble { 0%,100% { transform: translateX(0) rotate(0); } 15% { transform: translateX(-8px) rotate(-5deg); } 30% { transform: translateX(6px) rotate(4deg); } 45% { transform: translateX(-5px) rotate(-3deg); } 60% { transform: translateX(4px) rotate(2deg); } 75% { transform: translateX(-2px) rotate(-1deg); } }
.scene--rubber .anim-el { animation: a-rubber 1.6s ease-in-out infinite; }
@keyframes a-rubber { 0%,100% { transform: scale(1,1); } 30% { transform: scale(1.25,.75); } 45% { transform: scale(.8,1.2); } 60% { transform: scale(1.1,.9); } 75% { transform: scale(.97,1.03); } }
.scene--orbit .anim-el { animation: a-orbit 3s linear infinite; }
@keyframes a-orbit { 0% { transform: translate(6px,0); } 25% { transform: translate(0,6px); } 50% { transform: translate(-6px,0); } 75% { transform: translate(0,-6px); } 100% { transform: translate(6px,0); } }
.scene--vibrate .anim-el { animation: a-vibrate .25s linear infinite; }
@keyframes a-vibrate { 0%,100% { transform: translate(0,0); } 20% { transform: translate(-1.5px,1px); } 40% { transform: translate(1.5px,-1px); } 60% { transform: translate(-1px,1px); } 80% { transform: translate(1px,-1px); } }
@keyframes a-drift { 0%,100% { transform: translateX(-10px) rotate(-2deg); } 50% { transform: translateX(10px) rotate(2deg); } }
.scene--pulse { background: linear-gradient(135deg, #e9e2c4, #fff); }
.scene--pulse .scene__fx { animation-duration: 1.6s; font-size: 1.5rem; }

/* respeita quem prefere menos movimento */
@media (prefers-reduced-motion: reduce) {
  .scene__big, .scene__fx { animation: none !important; }
  .scene__fx { opacity: .85; }
}

/* ---- CHECKOUT TRANSPARENTE (etapas do modal) ---- */
.modal__box:has(.modal__pagar:not([hidden])) { max-width: 480px; }
.modal__pagar[hidden], .modal__cartao[hidden], .modal__pix[hidden] { display: none !important; }
.modal__pagar { display: flex; flex-direction: column; gap: .7rem; margin: .6rem 0 .2rem; text-align: left; }
.modal__campos { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.modal__input { width: 100%; box-sizing: border-box; border: 1.5px solid rgba(0,0,0,.18); border-radius: 10px; padding: .6rem .8rem; font: inherit; font-size: .95rem; color: #1c1c1c; background: #fff; }
.modal__input::placeholder { color: #9a9a9a; }
.modal__input:focus { outline: none; border-color: var(--rose); }
.modal__metodos { display: flex; gap: .5rem; }
.modal__metodo { flex: 1; cursor: pointer; border: 1.5px solid rgba(0,0,0,.18); background: #fff; color: #1c1c1c; border-radius: 10px; padding: .5rem .8rem; font: inherit; font-size: .92rem; transition: background .15s, color .15s, border-color .15s; }
.modal__metodo.is-active { background: var(--olive); border-color: var(--olive); color: #fff; }
.modal__cartao { display: flex; flex-direction: column; gap: .55rem; }
.modal__cartao-linha { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: .5rem; }
.modal__pix { display: flex; flex-direction: column; align-items: center; gap: .7rem; margin: .4rem 0; }
.modal__pix-qr { width: 210px; height: 210px; border-radius: 12px; background: #fff; }
.modal__pix-codigo { width: 100%; box-sizing: border-box; border: 1.5px solid rgba(0,0,0,.18); border-radius: 10px; padding: .5rem .7rem; font-family: monospace; font-size: .78rem; resize: none; color: #1c1c1c; background: #fff; }
.modal__pix-aguardando { font-size: .85rem; color: var(--rose); }
@media (max-width: 480px) { .modal__campos, .modal__cartao-linha { grid-template-columns: 1fr; } }

/* RSVP largura igual ao modelo-01 (max 620 + lateral 1.5rem) */
.rsvp { max-width: 620px; padding-left: 1.5rem; padding-right: 1.5rem; }

/* selo legivel em todos (detalhe maior) */
.hero__sticker { font-size: .82rem; letter-spacing: .08em; padding-top: .5rem; padding-bottom: .5rem; }
