/**
 ** Data : 16/06/2026
 ** Autor: Whilton Reis
 ** Polaris Tecnologia
 **/
@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: normal; font-weight: 400 700; font-display: swap; src: url('../fonts/cormorant-garamond.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'); }

/* ===== MODELO 23 — "ALIANCAS" — aneis de alianca girando lento ===== */
:root { --rose:#caa572; --olive:#2f3a44; --olive-dk:#222a32; --accent:#caa572; --paper:#eceff4; --paper-2:#dfe4ec; --card:#fffdf9; --ink:#2f3a44; --ink-soft:#7d8893; --line:#dcd6cb; --line-soft:#e9e3d8; --radius:8px; --radius-sm:5px; --pol-radius:50%; --btn-radius:999px; --btn-fg:#fff; --shadow:0 26px 56px -34px rgba(47,58,68,.4); --shadow-sm:0 14px 34px -26px rgba(47,58,68,.32); --maxw:1100px; --dark:linear-gradient(160deg,#2f3a44,#222a32); --dark-dk:#1c232a; --on-dark:#eef1f4; --on-dark-soft:#e0c79a; --bg:radial-gradient(560px 420px at 86% -8%, color-mix(in srgb,var(--accent) 14%,transparent), transparent 60%), var(--paper); --sans:'Poppins'; --head:'Cormorant Garamond',Georgia,serif; --head-w:600; --head-ls:.02em; }
.hero__photo { position:relative; max-width:360px; justify-self:end; width:100%; }
.hero__frame { position:relative; z-index:1; width:100%; aspect-ratio:1; border-radius:50%; overflow:hidden; border:5px solid var(--card); box-shadow:0 0 0 2px var(--accent), var(--shadow); }
.hero__frame img { width:100%; height:100%; display:block; object-fit:cover; object-position:center; animation:kenburns 18s ease-in-out infinite alternate; }
.hero__photo:hover .hero__frame img { transform:scale(1.05); }
.hero__frame::after { content:""; position:absolute; inset:0; z-index:2; pointer-events:none; border-radius:50%; background:linear-gradient(120deg,transparent 44%,rgba(255,250,238,.5) 50%,transparent 56%); transform:translateX(-120%); animation:sheen 6s ease-in-out 1.6s infinite; }
.hero__photo::before, .hero__photo::after { content:''; position:absolute; z-index:3; width:74px; height:74px; border:6px solid var(--accent); border-radius:50%; top:-22px; box-shadow:0 6px 16px -6px rgba(47,58,68,.5); }
.hero__photo::before { left:32%; animation:ringspin 9s linear infinite; }
.hero__photo::after { left:46%; border-color:color-mix(in srgb,var(--accent) 70%,#fff); animation:ringspin 9s linear infinite reverse; }
@keyframes ringspin { from{transform:rotate(0);} to{transform:rotate(360deg);} }
.hero__sticker { position:absolute; z-index:4; bottom:.6rem; left:50%; transform:translateX(-50%); background:var(--olive); color:var(--on-dark-soft); font-size:.82rem; font-weight:600; text-transform:uppercase; letter-spacing:.1em; padding:.5rem 1rem; border-radius:999px; white-space:nowrap; box-shadow:var(--shadow-sm); opacity:0; animation:fadeUp .6s ease 1.1s both; }

/* ===== BASE COMPARTILHADO (tokenizado via var()) — gerado por modelo ===== */
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:var(--sans),system-ui,sans-serif; font-weight:300; color:var(--ink); background:var(--bg); background-attachment:fixed; line-height:1.7; overflow-x:hidden; }
h1,h2,h3,.hero__title,.footer__names,.section-title,.nav__logo { font-family:var(--head); font-weight:var(--head-w); letter-spacing:var(--head-ls); line-height:1.07; }
em { font-style:italic; color:var(--rose); }
strong { font-weight:600; color:var(--olive-dk); }
.section-title span,.hero__title span,.intro h2 span { color:var(--rose); }
.footer__names span { color:var(--on-dark-soft); }

.btn { display:inline-flex; align-items:center; gap:.5rem; background:var(--olive); color:var(--btn-fg); text-decoration:none; cursor:pointer; border:1px solid var(--olive); padding:.9rem 1.9rem; border-radius:var(--btn-radius); font-family:var(--sans); font-weight:600; font-size:.74rem; text-transform:uppercase; letter-spacing:.14em; transition:transform .18s,background .18s,box-shadow .18s; }
.btn:hover { transform:translateY(-2px); background:var(--olive-dk); box-shadow:0 12px 26px -12px color-mix(in srgb,var(--olive) 55%,transparent); } .btn:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.btn--ghost { background:transparent; color:var(--olive-dk); border-color:var(--line); } .btn--ghost:hover { background:color-mix(in srgb,var(--rose) 10%,transparent); border-color:var(--rose); }
.btn--mini { padding:.55rem 1.2rem; font-size:.66rem; }

.nav { position:sticky; top:0; z-index:50; display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding:1rem 6vw; background:color-mix(in srgb,var(--paper) 86%,transparent); backdrop-filter:blur(12px); border-bottom:1px solid var(--line-soft); }
.nav__logo { font-family:var(--head); font-weight:var(--head-w); font-size:1.7rem; color:var(--ink); text-decoration:none; letter-spacing:.04em; } .nav__logo span { color:var(--rose); font-style:italic; }
.nav__links { display:flex; gap:2rem; }
.nav__links a { color:var(--ink-soft); text-decoration:none; font-size:.7rem; font-weight:500; text-transform:uppercase; letter-spacing:.16em; position:relative; padding:.2rem 0; transition:color .18s; }
.nav__links a::after { content:''; position:absolute; left:0; bottom:-3px; width:0; height:1px; background:var(--rose); transition:width .22s; } .nav__links a:hover { color:var(--ink); } .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:1fr .9fr; gap:4.5rem; align-items:center; padding-top:5.5rem; padding-bottom:5rem; max-width:var(--maxw); margin:0 auto; }
.hero__eyebrow,.intro__eyebrow { display:inline-flex; align-items:center; gap:.7rem; text-transform:uppercase; letter-spacing:.34em; font-size:.62rem; font-weight:600; color:var(--accent); margin-bottom:1.5rem; }
.hero__eyebrow { opacity:0; animation:fadeUp .7s ease .1s both; }
.hero__title { font-size:clamp(3rem,8vw,6rem); color:var(--ink); margin-bottom:1.4rem; opacity:0; animation:fadeUp .8s ease .25s both; }
.hero__date { font-size:.78rem; font-weight:600; letter-spacing:.24em; text-transform:uppercase; color:var(--rose); margin-bottom:.5rem; opacity:0; animation:fadeUp .7s ease .4s both; }
.hero__local { font-size:.92rem; color:var(--ink-soft); margin-bottom:1.6rem; opacity:0; animation:fadeUp .7s ease .5s both; }
.hero__lead { max-width:46ch; font-size:1.05rem; color:var(--ink-soft); opacity:0; animation:fadeUp .7s ease .6s both; }
.hero__cta { display:flex; gap:.9rem; flex-wrap:wrap; margin-top:2.2rem; opacity:0; animation:fadeUp .7s ease .75s both; }
@keyframes fadeUp { from{opacity:0;transform:translateY(20px);} to{opacity:1;transform:translateY(0);} }
@keyframes kenburns { from{transform:scale(1);} to{transform:scale(1.06);} }
@keyframes sheen { 0%,100%{transform:translateX(-120%);} 55%,70%{transform:translateX(120%);} }
@keyframes revealUp { from{opacity:0;transform:translateY(28px);} to{opacity:1;transform:translateY(0);} }

.countdown { display:flex; gap:1.2rem; margin-top:2.8rem; flex-wrap:wrap; }
.countdown__box { display:grid; place-items:center; text-align:center; min-width:62px; padding-bottom:.5rem; border-bottom:1px solid var(--line); opacity:0; animation:fadeUp .6s ease both; }
.countdown__box:nth-child(1){animation-delay:.85s;} .countdown__box:nth-child(2){animation-delay:.95s;} .countdown__box:nth-child(3){animation-delay:1.05s;} .countdown__box:nth-child(4){animation-delay:1.15s;}
.countdown__box strong { font-family:var(--head); font-size:2.4rem; font-weight:var(--head-w); line-height:1; color:var(--ink); font-variant-numeric:tabular-nums; }
.countdown__box span { font-size:.54rem; text-transform:uppercase; letter-spacing:.2em; color:var(--rose); font-weight:600; margin-top:.45rem; }

.section-title { font-size:clamp(2rem,5vw,3.2rem); color:var(--ink); margin-bottom:2rem; }
.section-title--center { text-align:center; margin-left:auto; margin-right:auto; max-width:22ch; }
.section-title--center::after { content:''; display:block; width:2.6rem; height:1px; background:var(--accent); margin:1rem auto 0; }

.intro { padding-top:5rem; padding-bottom:4rem; text-align:center; border-top:1px solid var(--line-soft); max-width:var(--maxw); margin:0 auto; }
.intro__inner { max-width:640px; margin:0 auto; } .intro__eyebrow { justify-content:center; }
.intro h2 { font-size:clamp(2rem,6vw,3.4rem); color:var(--ink); margin-bottom:1.8rem; }
.intro p { color:var(--ink-soft); font-size:1.05rem; margin-bottom:1rem; }
.intro__sign { font-family:var(--head); font-style:italic; font-size:1.9rem; color:var(--rose); margin-top:1.5rem; }

.polaroids { display:flex; flex-wrap:wrap; justify-content:center; align-items:flex-start; gap:1.3rem; margin-top:3rem; }
.polaroid { position:relative; width:150px; text-align:center; transition:transform .25s; }
.polaroid img { width:100%; aspect-ratio:3/4; object-fit:cover; border-radius:var(--pol-radius); border:1px solid var(--line); box-shadow:var(--shadow-sm); display:block; }
.polaroid:hover { transform:translateY(-6px); }
.polaroid figcaption { font-family:var(--head); font-style:italic; font-size:1.05rem; color:var(--ink-soft); margin-top:.55rem; }

.acoes { padding-top:4rem; padding-bottom:4rem; max-width:var(--maxw); margin:0 auto; }
.acoes__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.acao { display:flex; flex-direction:column; align-items:flex-start; gap:.55rem; text-decoration:none; color:var(--ink); padding:2.2rem 1.8rem; border-radius:var(--radius); background:var(--card); border:1px solid var(--line-soft); transition:border-color .2s,transform .2s,box-shadow .2s; }
.acao:hover { border-color:var(--line); transform:translateY(-5px); box-shadow:var(--shadow-sm); }
.acao__icon { font-size:1.6rem; line-height:1; } .acao__titulo { font-family:var(--head); font-weight:var(--head-w); font-size:1.5rem; color:var(--ink); } .acao__txt { font-size:.9rem; color:var(--ink-soft); }
.acao__cta { margin-top:.4rem; font-size:.64rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--rose); }

.horarios { background:var(--dark); color:var(--on-dark); padding-top:4.5rem; padding-bottom:4.5rem; border-radius:var(--radius); margin:1rem auto 0; max-width:var(--maxw); }
.horarios .section-title { color:var(--on-dark); } .horarios .section-title span { color:var(--on-dark-soft); } .horarios .section-title--center::after { background:var(--on-dark-soft); }
.timeline { max-width:760px; margin:0 auto; display:flex; flex-direction:column; }
.evento { display:flex; align-items:baseline; gap:2rem; padding:1.8rem 0; border-top:1px solid color-mix(in srgb,var(--on-dark) 22%,transparent); } .evento:last-child { border-bottom:1px solid color-mix(in srgb,var(--on-dark) 22%,transparent); }
.evento__hora { font-family:var(--head); font-weight:var(--head-w); font-size:clamp(2.4rem,5vw,3.6rem); line-height:.9; color:var(--on-dark-soft); min-width:4.5ch; font-variant-numeric:tabular-nums; }
.evento__corpo h3 { font-family:var(--head); font-size:1.4rem; color:var(--on-dark); margin-bottom:.3rem; } .evento__corpo p { font-size:.92rem; color:color-mix(in srgb,var(--on-dark) 82%,transparent); } .evento__emoji { font-size:1.1rem; }
.horarios__local { text-align:center; margin-top:2rem; letter-spacing:.18em; text-transform:uppercase; font-size:.72rem; color:var(--on-dark-soft); }

.historia { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; padding-top: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:var(--head); font-style:italic; font-size:1.6rem; color:var(--rose); margin-top:1.4rem; }

.como { padding-top:4.5rem; padding-bottom:4.5rem; border-top:1px solid var(--line-soft); max-width:var(--maxw); margin:0 auto; }
.como__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; }
.como__card { position:relative; padding:2rem 1.7rem; text-align:center; background:var(--card); border:1px solid var(--line-soft); border-radius:var(--radius); }
.como__num { display:inline-grid; place-items:center; width:3rem; height:3rem; margin:0 auto 1rem; font-family:var(--head); font-weight:var(--head-w); font-size:1.4rem; color:var(--rose); border:1px solid var(--line); border-radius:50%; }
.como__card h3 { font-family:var(--head); font-size:1.4rem; color:var(--ink); margin-bottom:.5rem; } .como__card p { font-size:.9rem; color:var(--ink-soft); }

.presentes { padding-top:5rem; padding-bottom:5rem; max-width:var(--maxw); margin:0 auto; }
.filtros { display:flex; gap:.5rem; flex-wrap:wrap; justify-content:center; margin-bottom:2.8rem; }
.filtro { background:transparent; border:1px solid var(--line); color:var(--ink-soft); padding:.55rem 1.3rem; border-radius:var(--btn-radius); cursor:pointer; font-family:var(--sans); font-size:.66rem; font-weight:500; text-transform:uppercase; letter-spacing:.16em; transition:all .16s; }
.filtro:hover { border-color:var(--rose); color:var(--rose); } .filtro.is-active { background:var(--rose); color:var(--btn-fg); border-color:var(--rose); }
.grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:1.6rem; }
.card { background:var(--card); border:1px solid var(--line-soft); border-radius:var(--radius); overflow:hidden; display:flex; flex-direction:column; transition:transform .2s,border-color .2s,box-shadow .2s; }
.card:hover { transform:translateY(-5px); border-color:var(--line); box-shadow:var(--shadow-sm); }

.scene { position:relative; aspect-ratio:334/358; overflow:hidden; display:grid; place-items:center; background:radial-gradient(circle at 50% 36%, color-mix(in srgb,var(--rose) 12%,transparent), transparent 60%), var(--paper-2); border-bottom:1px solid var(--line-soft); }
.sticker-mode .grid { grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:1.6rem; }
.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-family:var(--head); font-size:1.4rem; font-weight:var(--head-w); line-height:1.15; color:var(--ink); margin-bottom:.4rem; }
.card__desc { font-size:.85rem; 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-family:var(--head); font-size:1.7rem; font-weight:var(--head-w); color:var(--rose); font-variant-numeric:tabular-nums; }
.card__pago { font-size:.6rem; font-weight:600; text-transform:uppercase; letter-spacing:.12em; color:var(--olive-dk); background:transparent; border:1px solid var(--line); padding:.35rem .7rem; border-radius:var(--btn-radius); }
.card__custom-row { display:flex; align-items:center; gap:.5rem; border:1px solid var(--line); border-radius:var(--radius-sm); padding:.5rem .8rem; background:var(--paper); } .card__custom-row:focus-within { border-color:var(--rose); }
.card__cifrao { font-family:var(--head); font-size:1.4rem; font-weight:var(--head-w); color:var(--rose); }
.card__valor-input { flex:1; border:none; outline:none; background:transparent; font-family:var(--head); font-size:1.6rem; font-weight:var(--head-w); 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:.7rem; }
.faq details { background:var(--card); border:1px solid var(--line-soft); border-radius:var(--radius); padding:1.05rem 1.3rem; cursor:pointer; }
.faq summary { font-family:var(--head); font-weight:var(--head-w); font-size:1.2rem; 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.5rem; line-height:1; } .faq details[open] summary::after { content:'\2013'; }
.faq details p { margin-top:.8rem; font-size:.92rem; color:var(--ink-soft); }

.rsvp { max-width:620px; margin:0 auto; padding:4rem 1.5rem; }
.rsvp__lead { text-align:center; color:var(--ink-soft); margin:-.6rem 0 2rem; }
.rsvp__form { display:grid; gap:1.2rem; background:var(--card); border:1px solid var(--line-soft); border-radius:var(--radius); padding:2.2rem; }
.rsvp__campo { display:grid; gap:.4rem; }
.rsvp__campo > span,.rsvp__campo legend { font-size:.62rem; font-weight:600; text-transform:uppercase; letter-spacing:.18em; color:var(--accent); }
.rsvp__campo input[type="text"],.rsvp__campo input[type="number"],.rsvp__campo textarea { width:100%; padding:.8rem .95rem; border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--paper); color:var(--ink); font:inherit; }
.rsvp__campo input::placeholder,.rsvp__campo textarea::placeholder { color:color-mix(in srgb,var(--ink-soft) 70%,transparent); }
.rsvp__campo input:focus,.rsvp__campo textarea:focus { outline:none; border-color: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(--rose); }

.footer { background:var(--dark-dk); color:var(--on-dark); text-align:center; padding:4rem 6vw; border-top:3px solid var(--accent); }
.footer__names { font-size:clamp(2.2rem,6vw,3.4rem); color:var(--on-dark); }
.footer__date { letter-spacing:.4em; color:var(--on-dark-soft); margin:.6rem 0 1rem; font-size:.8rem; font-variant-numeric:tabular-nums; }
.footer__small { font-size:.82rem; color:color-mix(in srgb,var(--on-dark) 72%,transparent); }

.modal { position:fixed; inset:0; z-index:100; background:color-mix(in srgb,var(--olive-dk) 60%,transparent); backdrop-filter:blur(5px); display:none; place-items:center; padding:1.5rem; }
.modal.is-open { display:grid; }
.modal__box { background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:2.5rem 2rem 2rem; max-width:410px; width:100%; text-align:center; position:relative; box-shadow:var(--shadow); animation:pop .25s ease; }
@keyframes pop { from{transform:scale(.92);opacity:0;} to{transform:scale(1);opacity:1;} }
.modal__close { position:absolute; top:.6rem; right:1rem; background:none; border:none; font-size:1.8rem; color:var(--ink-soft); cursor:pointer; line-height:1; }
.modal__emoji { font-size:3rem; } .modal__box h3 { font-family:var(--head); font-size:1.6rem; color:var(--ink); margin:.4rem 0; }
.modal__nome { color:var(--ink-soft); font-weight:400; } .modal__valor { font-family:var(--head); font-size:2.2rem; font-weight:var(--head-w); color:var(--rose); margin:.4rem 0 1rem; }
.modal__instrucao { font-size:.88rem; color:var(--ink-soft); margin-bottom:1.5rem; } .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.9rem; 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:300px; margin:0 auto; 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, .hero__photo::before, .hero__photo::after, .anim-el,
  .hero__eyebrow, .hero__title, .hero__date, .hero__local, .hero__lead, .hero__cta, .hero__sticker, .countdown__box { animation:none !important; opacity:1 !important; transform: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; } }

/* mosaico: bolhas circulares de tamanhos variados */
.polaroids { gap:1.1rem; }
.polaroid img { border-radius:50%; aspect-ratio:1; }
.polaroid:nth-child(1),.polaroid:nth-child(5){ width:118px; }
.polaroid:nth-child(2),.polaroid:nth-child(4){ width:150px; }
.polaroid:nth-child(3){ width:182px; }
.polaroid figcaption { margin-top:.3rem; }
