/* =========================================================
   Barreto Buffet · Royal Premium
   Preto profundo, dourado champagne, vinho e marfim.
   ========================================================= */
@property --ang{syntax:'<angle>'; inherits:false; initial-value:0deg;}

:root{
  --bg:#0A0806;
  --bg-2:#110D09;
  --surface:#15100B;
  --surface-2:#1C160F;
  --line:rgba(232,200,140,.12);
  --line-strong:rgba(232,200,140,.26);
  --ink:#F6EEDC;
  --ink-dim:#CBBFA6;
  --ink-faint:#8F8571;
  --gold:#D8B46A;
  --gold-2:#F3DDA5;
  --gold-3:#A8823F;
  --wine:#4A0F1E;
  --wine-2:#8C2440;
  --wa:#25D366;
  --danger:#FF7A7A;
  --foil:linear-gradient(110deg,#9C7636 0%,#F3DDA5 20%,#C79A4B 38%,#FFF3D1 50%,#B98B3E 64%,#EBCB86 82%,#9C7636 100%);
  --radius:22px;
  --shadow:0 40px 80px -40px rgba(0,0,0,.9);
  --glow:0 0 0 1px rgba(216,180,106,.35), 0 30px 70px -30px rgba(216,180,106,.45);
  --ease:cubic-bezier(.2,.75,.15,1);
  --f-display:"Cormorant Garamond","Cormorant",Georgia,"Times New Roman",serif;
  --f-body:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
  color-scheme:dark;
}

*{box-sizing:border-box;}
[hidden]{display:none !important;}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%; background:var(--bg);}
body{margin:0; background:var(--bg); color:var(--ink); font:400 16px/1.7 var(--f-body); -webkit-font-smoothing:antialiased; overflow-x:hidden;}
body::after{content:""; position:fixed; inset:0; z-index:5000; pointer-events:none; opacity:.06; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}
::selection{background:var(--gold); color:#140E06;}
img, svg{display:block; max-width:100%;}
a{color:inherit; text-decoration:none;}
p{margin:0;}
h1,h2,h3{margin:0; line-height:1.02; text-wrap:balance;}
h1,h2{font-family:var(--f-display); font-weight:500; letter-spacing:-.015em;}
.hl{font-style:italic; font-weight:500;}
.foil{background:var(--foil); background-size:220% 100%; -webkit-background-clip:text; background-clip:text; color:transparent; animation:foil 6s linear infinite; padding-right:.06em;}
.wrap{width:100%; max-width:1220px; margin:0 auto; padding-left:max(16px, env(safe-area-inset-left, 0px)); padding-right:max(16px, env(safe-area-inset-right, 0px));}
@media (min-width:720px){ .wrap{padding-left:max(32px, env(safe-area-inset-left, 0px)); padding-right:max(32px, env(safe-area-inset-right, 0px));} }
main, header, footer, section{position:relative;}

.eyebrow{display:inline-flex; align-items:center; gap:12px; font:700 11px/1 var(--f-body); letter-spacing:.32em; text-transform:uppercase; color:var(--gold);}
.eyebrow::before{content:""; width:34px; height:1px; background:linear-gradient(90deg,transparent,var(--gold));}
.center .eyebrow::after{content:""; width:34px; height:1px; background:linear-gradient(90deg,var(--gold),transparent);}

.progress{position:fixed; top:0; left:0; height:2px; width:0; z-index:3000; background:var(--foil); box-shadow:0 0 12px rgba(243,221,165,.8);}

/* abertura */
.loader{position:fixed; inset:0; z-index:6000; display:grid; place-items:center; pointer-events:none; animation:loaderOut .01s 2.3s forwards;}
.loader::before, .loader::after{content:""; position:absolute; left:0; right:0; height:50.5%; background:#070504; transition:none; animation:curtain 1s var(--ease) 1.35s forwards;}
.loader::before{top:0; transform-origin:top;}
.loader::after{bottom:0; transform-origin:bottom; animation-name:curtainDown;}
.loader-mark{position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; gap:14px; animation:loaderMark .6s var(--ease) 1.2s forwards;}
.loader-mark svg{width:84px; height:84px; color:var(--gold);}
.loader-mark svg *{stroke-dasharray:160; stroke-dashoffset:160; animation:draw 1.1s var(--ease) .1s forwards;}
.loader-mark span{font:500 13px/1 var(--f-body); letter-spacing:.5em; text-transform:uppercase; color:var(--gold-2); opacity:0; animation:fadeIn .6s ease .5s forwards; padding-left:.5em;}

/* luz que segue o mouse */
.cursor-glow{position:fixed; left:0; top:0; width:520px; height:520px; margin:-260px 0 0 -260px; border-radius:50%; pointer-events:none; z-index:1; opacity:0;
  background:radial-gradient(circle, rgba(216,180,106,.11), transparent 62%); transition:opacity .6s; will-change:transform;}
.cursor-glow.on{opacity:1;}

/* topo */
.top{position:fixed; left:0; right:0; top:0; padding-top:env(safe-area-inset-top, 0px); z-index:1000; transition:background .5s, border-color .5s, transform .5s var(--ease); border-bottom:1px solid transparent;}
.top.is-scrolled{background:rgba(10,8,6,.9); backdrop-filter:blur(18px) saturate(140%); -webkit-backdrop-filter:blur(18px) saturate(140%); border-color:var(--line);}
.top.is-hidden{transform:translateY(-100%);}
.top .wrap{display:flex; align-items:center; justify-content:space-between; gap:14px; height:78px;}
.logo{display:inline-flex; align-items:center; gap:12px;}
.logo .mark{position:relative; width:44px; height:44px; border-radius:50%; display:grid; place-items:center; color:var(--gold-2); border:1px solid rgba(216,180,106,.5); background:radial-gradient(circle at 30% 25%, rgba(243,221,165,.18), transparent 60%), #0F0B07; flex:none;}
.logo .mark::after{content:""; position:absolute; inset:-4px; border-radius:50%; border:1px solid rgba(216,180,106,.18);}
.logo .mark svg{width:24px; height:24px;}
.logo-txt{display:flex; flex-direction:column; line-height:1;}
.logo-txt b{font:600 26px/1 var(--f-display); letter-spacing:.04em; background:var(--foil); background-size:220% 100%; -webkit-background-clip:text; background-clip:text; color:transparent; animation:foil 8s linear infinite;}
.logo-txt small{font:600 8.5px/1 var(--f-body); letter-spacing:.42em; text-transform:uppercase; color:var(--ink-faint); margin-top:6px;}
.nav{display:none; gap:34px; font-size:13px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-dim);}
.nav a{position:relative; padding:6px 0; transition:color .3s;}
.nav a::after{content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:var(--gold); transform:scaleX(0); transform-origin:right; transition:transform .45s var(--ease);}
.nav a:hover{color:var(--gold-2);}
.nav a:hover::after{transform:scaleX(1); transform-origin:left;}
@media (min-width:1080px){ .nav{display:flex;} }
.top-cta{display:flex; align-items:center; gap:12px;}
.top-cta .btn{display:none;}
@media (min-width:640px){ .top-cta .btn{display:inline-flex;} }

/* WhatsApp animado */
.wa-num{display:inline-flex; align-items:center; gap:10px; padding:10px 16px 10px 13px; border-radius:999px; border:1px solid rgba(37,211,102,.35); background:rgba(37,211,102,.07); color:var(--ink);
  font:600 13px/1 var(--f-body); letter-spacing:.04em; white-space:nowrap; font-variant-numeric:tabular-nums; transition:transform .3s var(--ease), background .3s, box-shadow .3s;}
.wa-num:hover{transform:translateY(-2px); background:rgba(37,211,102,.14); box-shadow:0 12px 28px -12px rgba(37,211,102,.6);}
.wa-num .live{position:relative; width:8px; height:8px; border-radius:50%; background:var(--wa); flex:none;}
.wa-num .live::after{content:""; position:absolute; inset:-5px; border-radius:50%; border:1.5px solid var(--wa); animation:ping 1.8s var(--ease) infinite;}
.wa-num svg{width:17px; height:17px; color:var(--wa); flex:none;}
.digits{display:inline-flex;}
.digits .d{display:inline-block; overflow:hidden; height:1.2em; line-height:1.2em; vertical-align:bottom;}
.digits .d > span{display:block; transition:transform 1.4s var(--ease);}
.digits.roll .d > span{transform:translateY(calc(var(--n) * -1.2em));}
.wa-num.big{font-size:clamp(16px,2.4vw,22px); padding:18px 28px 18px 22px; gap:14px; background:rgba(10,8,6,.6); animation:waGlow 2.6s ease-in-out infinite;}
.wa-num.big svg{width:25px; height:25px;}

/* botões */
button.btn{appearance:none; -webkit-appearance:none; font:inherit; cursor:pointer;}
.btn{position:relative; display:inline-flex; align-items:center; justify-content:center; gap:12px; overflow:hidden; isolation:isolate;
  padding:17px 30px; border-radius:999px; border:1px solid transparent; font:700 13.5px/1 var(--f-body); letter-spacing:.14em; text-transform:uppercase; text-align:center;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s, color .35s, background .35s;}
.btn::after{content:""; position:absolute; inset:0; z-index:-1; transform:translateX(-130%) skewX(-20deg); background:linear-gradient(90deg,transparent,rgba(255,250,235,.75),transparent); transition:transform .9s var(--ease);}
.btn:hover::after{transform:translateX(130%) skewX(-20deg);}
.btn-primary{color:#1A1206; background:var(--foil); background-size:220% 100%; animation:foil 7s linear infinite; box-shadow:0 18px 40px -16px rgba(216,180,106,.7), inset 0 1px 0 rgba(255,255,255,.5);}
.btn-primary:hover{box-shadow:0 24px 50px -16px rgba(243,221,165,.9), inset 0 1px 0 rgba(255,255,255,.5);}
.btn-ghost{color:var(--ink); border-color:var(--line-strong); background:rgba(255,255,255,.02);}
.btn-ghost:hover{border-color:var(--gold); color:var(--gold-2); background:rgba(216,180,106,.07);}
.btn-sm{padding:12px 20px; font-size:11.5px;}
.btn .arrow{width:17px; height:17px; transition:transform .35s var(--ease); flex:none;}
.btn:hover .arrow{transform:translateX(5px);}
.btn-pulse{animation:foil 7s linear infinite, glow 2.8s ease-in-out infinite;}
.magnetic{will-change:transform;}

/* hero */
.hero{min-height:100vh; min-height:100svh; padding:128px 0 90px; overflow:hidden; display:flex; align-items:center;}
.aurora{position:absolute; inset:-10%; pointer-events:none; filter:blur(70px); opacity:.85;}
.aurora i{position:absolute; border-radius:50%; mix-blend-mode:screen;}
.aurora i:nth-child(1){width:46vw; height:46vw; left:52%; top:2%; background:radial-gradient(circle, rgba(216,180,106,.32), transparent 65%); animation:drift1 18s ease-in-out infinite alternate;}
.aurora i:nth-child(2){width:50vw; height:50vw; left:-12%; top:40%; background:radial-gradient(circle, rgba(140,36,64,.55), transparent 65%); animation:drift2 22s ease-in-out infinite alternate;}
.aurora i:nth-child(3){width:34vw; height:34vw; left:30%; top:60%; background:radial-gradient(circle, rgba(243,221,165,.14), transparent 65%); animation:drift1 26s ease-in-out infinite alternate-reverse;}
#brilho{position:absolute; inset:0; width:100%; height:100%; pointer-events:none;}
.hero::after{content:""; position:absolute; left:0; right:0; bottom:0; height:180px; pointer-events:none; background:linear-gradient(180deg,transparent,var(--bg));}
.hero-grid{position:relative; z-index:2; display:grid; gap:56px; align-items:center;}
@media (min-width:1020px){ .hero-grid{grid-template-columns:1.08fr .92fr;} }
.hero-grid > *{min-width:0;}
.hero h1{font-size:clamp(46px,7.2vw,104px); font-weight:500; margin-top:24px; line-height:.98;}
.hero h1 .w{display:inline-block; overflow:hidden; vertical-align:top; padding:0 .02em .1em;}
.hero h1 .w > span{display:inline-block; transform:translateY(105%) rotate(4deg); filter:blur(6px); opacity:0; animation:wordUp 1.1s var(--ease) forwards; animation-delay:calc(1.55s + var(--i) * .08s);}
.hero h1 .row{display:block;}
.hero .lead{font-size:clamp(16.5px,1.5vw,19px); color:var(--ink-dim); max-width:50ch; margin-top:26px; opacity:0; animation:fadeUp 1s var(--ease) 2.2s forwards;}
.hero .lead b{color:var(--ink); font-weight:700;}
.hero-cta{display:flex; flex-wrap:wrap; gap:14px; margin-top:34px;}
.hero .hero-cta, .hero .hero-meta{opacity:0; animation:fadeUp 1s var(--ease) 2.35s forwards;}
.hero-meta{display:flex; flex-wrap:wrap; gap:12px 26px; margin-top:32px; font-size:13px; font-weight:600; color:var(--ink-faint); letter-spacing:.03em;}
.hero-meta span{display:inline-flex; align-items:center; gap:9px;}
.hero-meta svg{width:17px; height:17px; color:var(--gold);}
.hero-side{position:relative; opacity:0; animation:sideIn 1.3s var(--ease) 1.9s forwards;}

/* selo giratório */
.seal{position:absolute; z-index:3; width:132px; height:132px; right:-18px; top:-56px; color:var(--gold); pointer-events:none;}
.seal svg{width:100%; height:100%; animation:spinSlow 22s linear infinite;}
.seal text{font:700 9.6px var(--f-body); letter-spacing:.3em; text-transform:uppercase; fill:currentColor;}
.seal b{position:absolute; inset:0; display:grid; place-items:center; font:500 italic 34px/1 var(--f-display); color:var(--gold-2);}
@media (max-width:560px){ .seal{width:104px; height:104px; right:-4px; top:-62px;} .seal b{font-size:27px;} }

/* seletor de convidados */
.picker{position:relative; padding:30px 24px 26px; border-radius:30px; background:linear-gradient(160deg, rgba(36,28,18,.85), rgba(16,12,8,.9)); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); box-shadow:var(--shadow); overflow:hidden;}
@media (min-width:560px){ .picker{padding:34px 32px 30px;} }
.picker::before{content:""; position:absolute; inset:0; border-radius:inherit; padding:1px; pointer-events:none;
  background:conic-gradient(from var(--ang), rgba(216,180,106,.15) 0 40%, var(--gold-2) 55%, var(--gold-3) 65%, rgba(216,180,106,.15) 80%);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; animation:spin 7s linear infinite;}
.picker h2{font-size:clamp(28px,3vw,36px); font-weight:500;}
.picker .sub{font-size:14px; color:var(--ink-faint); margin-top:6px;}
.seg{position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:6px; margin-top:22px; padding:5px; border-radius:18px; background:rgba(0,0,0,.35); border:1px solid var(--line);}
.seg .pill{position:absolute; top:5px; bottom:5px; left:5px; width:calc((100% - 10px - 18px) / 4); border-radius:14px; background:var(--foil); background-size:220% 100%; animation:foil 7s linear infinite; box-shadow:0 10px 26px -10px rgba(216,180,106,.8); transition:transform .55s var(--ease);}
.seg button{position:relative; z-index:1; appearance:none; border:0; background:transparent; border-radius:14px; padding:12px 4px; font:700 17px/1 var(--f-body); color:var(--ink-dim); cursor:pointer; transition:color .4s;}
.seg button small{display:block; font:600 9.5px/1 var(--f-body); letter-spacing:.16em; text-transform:uppercase; margin-top:6px; color:inherit; opacity:.8;}
.seg button[aria-pressed="true"]{color:#1A1206;}
.seg button:focus-visible{outline:2px solid var(--gold); outline-offset:2px;}
.guests{display:grid; grid-template-columns:repeat(20,1fr); gap:5px; margin-top:24px;}
.guests i{display:block; aspect-ratio:1; border-radius:50%; background:rgba(216,180,106,.1); transition:background .45s, transform .45s var(--ease), box-shadow .45s;}
.guests i.on{background:radial-gradient(circle at 35% 30%, #FFF3D1, var(--gold) 55%, var(--gold-3)); box-shadow:0 0 10px rgba(243,221,165,.55); transform:scale(1.05);}
.legend{font-size:12px; color:var(--ink-faint); margin-top:10px;}
.pk-price{display:flex; align-items:baseline; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-top:22px; padding-top:20px; border-top:1px solid var(--line);}
.pk-price b{font:500 clamp(40px,4.4vw,54px)/1 var(--f-display); font-variant-numeric:tabular-nums; color:var(--ink);}
.pk-price span{font-size:13px; color:var(--ink-faint);}
.pk-price span strong{color:var(--gold-2); font-weight:700;}
.picker .btn{width:100%; margin-top:20px;}

/* faixas */
.marquee{position:relative; z-index:2; overflow:hidden; padding:22px 0; border-block:1px solid var(--line); background:linear-gradient(90deg,var(--bg),#16100A 50%,var(--bg));}
.marquee + .marquee{border-top:0;}
.marquee.wine{background:linear-gradient(90deg,#1B070D,var(--wine) 50%,#1B070D); border-color:rgba(140,36,64,.5); transform:rotate(-1.4deg) scale(1.03); margin-top:-6px;}
.marquee-track{display:flex; gap:44px; width:max-content; animation:marquee 38s linear infinite;}
.marquee.rev .marquee-track{animation-direction:reverse; animation-duration:44s;}
.marquee span{display:inline-flex; align-items:center; gap:44px; font:500 italic clamp(24px,3vw,38px)/1 var(--f-display); white-space:nowrap; color:var(--ink); transform:skewX(var(--skew,0deg)); transition:transform .25s ease-out;}
.marquee.wine span{font:700 clamp(12px,1.2vw,14px)/1 var(--f-body); letter-spacing:.34em; text-transform:uppercase; font-style:normal; color:var(--gold-2);}
.marquee span::after{content:"✦"; font-style:normal; font-size:16px; color:var(--gold);}

/* seções */
.sec{padding:110px 0; overflow:hidden;}
@media (min-width:1000px){ .sec{padding:150px 0;} }
.sec-alt{background:radial-gradient(70% 60% at 50% 0%, rgba(74,15,30,.45), transparent 70%), var(--bg-2);}
.sec-head{max-width:820px; margin-bottom:64px;}
.sec-head.center{margin-inline:auto; text-align:center;}
.sec-head.center .eyebrow{justify-content:center;}
.sec-head h2{font-size:clamp(38px,5.4vw,72px); margin-top:20px;}
.sec-head p{color:var(--ink-dim); font-size:17px; margin-top:20px;}
.sec-head.center p{margin-inline:auto; max-width:60ch;}

/* títulos que sobem por linha */
.split .ln{display:block; overflow:hidden; padding-bottom:.08em;}
.split .ln > span{display:inline-block; transform:translateY(105%); transition:transform 1.2s var(--ease);}
.split.is-visible .ln > span{transform:none;}
.split .ln:nth-child(2) > span{transition-delay:.12s;}
.split .ln:nth-child(3) > span{transition-delay:.24s;}

/* frase que acende com a rolagem */
.manifesto{padding:120px 0 40px;}
.manifesto p{font:500 clamp(30px,4.6vw,62px)/1.14 var(--f-display); letter-spacing:-.01em; max-width:20ch;}
.manifesto p .mw{color:rgba(246,238,220,.13); transition:color .5s ease;}
.manifesto p .mw.lit{color:var(--ink);}
.manifesto p .mw.g.lit{color:var(--gold-2); font-style:italic;}
.manifesto .sig{display:flex; align-items:center; gap:16px; margin-top:36px; color:var(--ink-faint); font-size:13px; letter-spacing:.24em; text-transform:uppercase;}
.manifesto .sig::before{content:""; width:60px; height:1px; background:var(--gold);}

/* números */
.stats{display:grid; grid-template-columns:1fr 1fr; gap:1px; margin-top:80px; border:1px solid var(--line); border-radius:24px; overflow:hidden; background:var(--line);}
@media (min-width:860px){ .stats{grid-template-columns:repeat(4,1fr);} }
.stat{background:var(--bg); padding:30px 22px; min-width:0;}
.stat b{display:block; font:500 clamp(46px,5.4vw,74px)/1 var(--f-display); font-variant-numeric:tabular-nums;}
.stat span{display:block; margin-top:10px; font-size:13px; color:var(--ink-faint); letter-spacing:.05em;}

/* cards */
.grid-3{display:grid; gap:16px;}
@media (min-width:700px){ .grid-3{grid-template-columns:1fr 1fr;} }
@media (min-width:1040px){ .grid-3{grid-template-columns:repeat(3,1fr);} }
.card{position:relative; padding:34px 28px; border-radius:var(--radius); background:linear-gradient(170deg,var(--surface-2),var(--surface)); border:1px solid var(--line); overflow:hidden; min-width:0;
  transition:transform .6s var(--ease), border-color .5s, box-shadow .6s;}
.card::before{content:""; position:absolute; inset:0; pointer-events:none; opacity:0; transition:opacity .5s;
  background:radial-gradient(360px circle at var(--mx,50%) var(--my,0%), rgba(216,180,106,.16), transparent 60%);}
.card::after{content:""; position:absolute; left:28px; right:28px; top:0; height:1px; background:linear-gradient(90deg,transparent,var(--gold-2),transparent); transform:scaleX(0); transition:transform .8s var(--ease);}
.card:hover{transform:translateY(-10px); border-color:rgba(216,180,106,.35); box-shadow:var(--glow);}
.card:hover::before{opacity:1;}
.card:hover::after{transform:scaleX(1);}
.card .num{position:absolute; top:26px; right:28px; font:500 italic 22px/1 var(--f-display); color:rgba(216,180,106,.35);}
.card .ico{width:58px; height:58px; border-radius:50%; display:grid; place-items:center; color:var(--gold-2); border:1px solid rgba(216,180,106,.35); background:radial-gradient(circle at 30% 25%, rgba(243,221,165,.15), transparent 65%); transition:transform .7s var(--ease), background .5s, color .5s;}
.card:hover .ico{transform:rotate(-12deg) scale(1.1); background:var(--foil); color:#1A1206;}
.card .ico svg{width:26px; height:26px;}
.card h3{font:500 28px/1.1 var(--f-display); margin-top:24px;}
.card p{color:var(--ink-dim); font-size:15px; margin-top:10px;}

/* pacotes */
.packs{display:grid; gap:18px; align-items:stretch;}
@media (min-width:720px){ .packs{grid-template-columns:1fr 1fr;} }
@media (min-width:1140px){ .packs{grid-template-columns:repeat(4,1fr);} }
.pack{position:relative; display:flex; flex-direction:column; padding:34px 26px 28px; border-radius:28px; min-width:0; background:linear-gradient(170deg,#1E1710,#120E09 60%); border:1px solid var(--line-strong); overflow:hidden;
  transform:perspective(1100px) rotateX(var(--tx,0deg)) rotateY(var(--ty,0deg)); transition:transform .3s ease-out, box-shadow .5s, border-color .5s;}
.pack::after{content:""; position:absolute; inset:0; pointer-events:none; opacity:0; transition:opacity .5s;
  background:radial-gradient(420px circle at var(--gx,50%) var(--gy,0%), rgba(255,243,209,.13), transparent 55%);}
.pack:hover{box-shadow:var(--glow); border-color:rgba(216,180,106,.5);}
.pack:hover::after{opacity:1;}
.pack .who{display:flex; align-items:baseline; gap:10px;}
.pack .who b{font:500 clamp(72px,7vw,92px)/.85 var(--f-display); font-variant-numeric:tabular-nums; background:var(--foil); background-size:220% 100%; -webkit-background-clip:text; background-clip:text; color:transparent; animation:foil 9s linear infinite;}
.pack .who span{font-weight:700; font-size:11.5px; letter-spacing:.24em; text-transform:uppercase; color:var(--ink-dim);}
.pack .bar{height:3px; border-radius:3px; background:rgba(216,180,106,.12); margin-top:20px; overflow:hidden;}
.pack .bar i{display:block; height:100%; width:0; border-radius:inherit; background:var(--foil); box-shadow:0 0 12px rgba(243,221,165,.8); transition:width 1.8s var(--ease) .3s;}
.pack.is-visible .bar i{width:var(--w);}
.pack .desc{color:var(--ink-dim); font-size:14.5px; margin-top:16px; min-height:3.2em;}
.pack .price{margin-top:22px; padding-top:20px; border-top:1px solid var(--line);}
.pack .cash{display:flex; align-items:baseline; gap:6px; line-height:1;}
.pack .cash small{font-weight:600; font-size:14px; color:var(--ink-dim);}
.pack .cash b{font:500 clamp(36px,3.2vw,44px)/1 var(--f-display); font-variant-numeric:tabular-nums;}
.pack .how{font-size:12.5px; color:var(--ink-faint); margin-top:10px;}
.pack .how b{color:var(--gold-2);}
.pack .per{display:inline-flex; align-self:flex-start; margin-top:14px; padding:7px 12px; border-radius:999px; font:600 10.5px/1 var(--f-body); letter-spacing:.1em; color:var(--gold-2); border:1px solid rgba(216,180,106,.3); background:rgba(216,180,106,.06);}
.feat{list-style:none; margin:20px 0 0; padding:0; display:flex; flex-direction:column; gap:11px; flex:1;}
.feat li{display:grid; grid-template-columns:20px 1fr; gap:10px; font-size:14px; color:var(--ink-dim); line-height:1.5;}
.feat li svg{width:18px; height:18px; color:var(--gold); margin-top:2px;}
.pack .btn{margin-top:26px; width:100%;}
.ribbon{position:absolute; top:18px; right:-36px; transform:rotate(38deg); padding:7px 44px; white-space:nowrap; font:800 9.5px/1 var(--f-body); letter-spacing:.2em; text-transform:uppercase; color:#1A1206; background:var(--foil); background-size:220% 100%; animation:foil 6s linear infinite; z-index:2;}
.pack.star{border-color:transparent; background:linear-gradient(170deg,#2A1D10,#140E08 60%);}
.pack.star::before{content:""; position:absolute; inset:0; border-radius:inherit; padding:1.5px; pointer-events:none; z-index:1;
  background:conic-gradient(from var(--ang), var(--gold-3), var(--gold-2), #FFF3D1, var(--gold), var(--gold-3), var(--wine-2), var(--gold-3));
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; animation:spin 5s linear infinite;}
.packs-note{margin-top:46px; display:flex; flex-wrap:wrap; justify-content:center; gap:12px 34px; font-size:13px; font-weight:600; color:var(--ink-faint); text-align:center; letter-spacing:.03em;}
.packs-note span{display:inline-flex; align-items:center; gap:9px;}
.packs-note svg{width:16px; height:16px; color:var(--gold);}

/* linha do tempo */
.timeline{position:relative; max-width:880px; margin:0 auto;}
.timeline::before, .timeline .fill{content:""; position:absolute; left:27px; top:10px; bottom:10px; width:1px; background:var(--line-strong);}
.timeline .fill{background:var(--foil); box-shadow:0 0 14px rgba(243,221,165,.7); transform-origin:top; transform:scaleY(var(--p,0)); bottom:10px;}
@media (min-width:760px){ .timeline::before, .timeline .fill{left:50%;} }
.step{position:relative; display:grid; grid-template-columns:56px 1fr; gap:22px; padding:22px 0;}
.step .dot{position:relative; z-index:1; width:56px; height:56px; border-radius:50%; display:grid; place-items:center; font:500 italic 22px/1 var(--f-display); color:var(--ink-faint); background:var(--bg); border:1px solid var(--line-strong); transition:color .6s, border-color .6s, box-shadow .6s, background .6s;}
.step.is-on .dot{color:#1A1206; background:var(--foil); border-color:transparent; box-shadow:0 0 0 6px rgba(216,180,106,.12), 0 0 30px rgba(243,221,165,.5);}
.step h3{font:500 clamp(26px,2.6vw,34px)/1.1 var(--f-display); margin-top:8px; transition:color .6s;}
.step p{font-size:15px; color:var(--ink-dim); margin-top:8px; max-width:40ch;}
.step .txt{opacity:.35; transform:translateX(14px); transition:opacity .8s var(--ease), transform .8s var(--ease);}
.step.is-on .txt{opacity:1; transform:none;}
@media (min-width:760px){
  .step{grid-template-columns:1fr 56px 1fr; gap:40px;}
  .step .dot{grid-column:2; grid-row:1;}
  .step .txt{grid-column:3; grid-row:1;}
  .step.l .txt{grid-column:1; text-align:right; transform:translateX(-14px);}
  .step.l .txt p{margin-left:auto;}
  .step.is-on .txt{transform:none !important;}
}

/* faq */
.faq{max-width:880px; margin:0 auto;}
.faq details{border-bottom:1px solid var(--line); padding:4px 0;}
.faq summary{list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:18px; padding:24px 0; font:500 clamp(22px,2.2vw,28px)/1.25 var(--f-display); transition:color .3s, padding .4s var(--ease);}
.faq summary::-webkit-details-marker{display:none;}
.faq summary:hover{color:var(--gold-2); padding-left:8px;}
.faq summary .pm{width:40px; height:40px; border-radius:50%; border:1px solid var(--line-strong); display:grid; place-items:center; flex:none; color:var(--gold); transition:transform .5s var(--ease), background .4s, color .4s;}
.faq summary .pm svg{width:14px; height:14px;}
.faq details[open] summary .pm{transform:rotate(135deg); background:var(--foil); color:#1A1206; border-color:transparent;}
.faq .ans{padding:0 0 26px; color:var(--ink-dim); max-width:72ch;}
.faq details[open] .ans{animation:fadeUp .6s var(--ease);}

/* final */
.final{padding:150px 0 150px; text-align:center; overflow:hidden; background:radial-gradient(60% 70% at 50% 110%, rgba(140,36,64,.6), transparent 70%), radial-gradient(50% 50% at 50% 0%, rgba(216,180,106,.12), transparent 70%), var(--bg);}
#fogos{position:absolute; inset:0; width:100%; height:100%; pointer-events:none;}
.final .wrap{position:relative; z-index:1;}
.final .eyebrow{justify-content:center;}
.final h2{font-size:clamp(42px,6.6vw,96px); max-width:15ch; margin:22px auto 0; line-height:1;}
.final p{color:var(--ink-dim); max-width:52ch; margin:24px auto 0; font-size:17px;}
.final .hero-cta{justify-content:center; margin-top:38px;}
.final .wa-block{margin-top:46px; display:flex; flex-direction:column; align-items:center; gap:14px;}
.final .wa-block small{font:700 10.5px/1 var(--f-body); letter-spacing:.3em; text-transform:uppercase; color:var(--ink-faint);}

/* rodapé */
.foot{background:#060504; color:var(--ink-dim); padding:72px 0 calc(32px + env(safe-area-inset-bottom, 0px)); font-size:14.5px; border-top:1px solid var(--line);}
.foot-word{font:500 italic clamp(64px,15vw,210px)/.8 var(--f-display); text-align:center; letter-spacing:-.02em; background:linear-gradient(180deg,rgba(216,180,106,.28),rgba(216,180,106,0) 85%); -webkit-background-clip:text; background-clip:text; color:transparent; margin-bottom:56px; user-select:none;}
.foot-grid{display:grid; gap:38px;}
@media (min-width:860px){ .foot-grid{grid-template-columns:1.4fr 1fr 1fr 1.3fr;} }
.foot-brand p{color:var(--ink-faint); margin-top:18px; max-width:36ch;}
.foot h4{font:700 10.5px/1 var(--f-body); letter-spacing:.3em; text-transform:uppercase; color:var(--gold); margin:0 0 18px;}
.foot ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px;}
.foot ul a{transition:color .3s;}
.foot ul a:hover{color:var(--gold-2);}
.foot address{font-style:normal; line-height:1.7;}
.foot-bottom{margin-top:52px; padding-top:26px; border-top:1px solid var(--line); display:flex; flex-wrap:wrap; gap:10px 24px; justify-content:space-between; color:var(--ink-faint); font-size:12.5px;}
.foot-bottom a:hover{color:var(--gold-2);}

/* WhatsApp flutuante */
.wa-float{position:fixed; right:calc(16px + env(safe-area-inset-right, 0px)); bottom:calc(16px + env(safe-area-inset-bottom, 0px)); z-index:2000; display:inline-flex; align-items:center; gap:10px;
  height:58px; padding:0 17px; border-radius:999px; background:var(--wa); color:#fff; font:800 14px/1 var(--f-body);
  box-shadow:0 18px 40px -14px rgba(37,211,102,.7); transition:transform .35s var(--ease); animation:floatIn .8s var(--ease) 2.4s both;}
.wa-float::before{content:""; position:absolute; inset:0; border-radius:inherit; border:2px solid var(--wa); animation:pingSoft 2.2s var(--ease) infinite;}
.wa-float:hover{transform:translateY(-4px) scale(1.04);}
.wa-float svg{width:26px; height:26px; flex:none;}
.wa-float .wa-txt{max-width:0; overflow:hidden; white-space:nowrap; transition:max-width .5s var(--ease);}
.wa-float:hover .wa-txt{max-width:200px;}
@media (min-width:720px){ .wa-float{right:calc(24px + env(safe-area-inset-right, 0px)); bottom:calc(24px + env(safe-area-inset-bottom, 0px));} .wa-float .wa-txt{max-width:200px;} }

/* aparecer ao rolar */
.js-ready .reveal{opacity:.001; transform:translateY(50px); filter:blur(6px); transition:opacity 1.2s var(--ease), transform 1.2s var(--ease), filter 1.2s var(--ease);}
.js-ready .reveal.is-visible{opacity:1; transform:none; filter:none;}
.js-ready .pack.reveal{transform:translateY(60px) perspective(1100px) rotateX(14deg);}
.js-ready .pack.reveal.is-visible{transform:perspective(1100px) rotateX(var(--tx,0deg)) rotateY(var(--ty,0deg)); transition:opacity 1.2s var(--ease), transform .3s ease-out, filter 1.2s var(--ease), box-shadow .5s, border-color .5s;}
.js-ready .stagger > .reveal:nth-child(2){transition-delay:.12s;}
.js-ready .stagger > .reveal:nth-child(3){transition-delay:.24s;}
.js-ready .stagger > .reveal:nth-child(4){transition-delay:.36s;}
.js-ready .stagger > .reveal:nth-child(5){transition-delay:.48s;}
.js-ready .stagger > .reveal:nth-child(6){transition-delay:.6s;}
.js-ready .pack.reveal.done{transition-delay:0s !important;}
.parallax{will-change:transform;}

/* checkout */
.checkout-modal{position:fixed; inset:0; z-index:4000; display:none; align-items:flex-start; justify-content:center; padding:calc(20px + env(safe-area-inset-top, 0px)) 12px calc(20px + env(safe-area-inset-bottom, 0px)); overflow-y:auto;}
.checkout-modal.is-open{display:flex;}
.checkout-backdrop{position:fixed; inset:0; background:rgba(4,3,2,.78); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);}
.checkout-panel{position:relative; z-index:1; width:100%; max-width:600px; background:linear-gradient(170deg,#1C150E,#110C08); border:1px solid var(--line-strong); border-radius:28px; box-shadow:0 50px 100px -30px rgba(0,0,0,.9); padding:36px 22px 26px; margin-block:12px; animation:modalIn .55s var(--ease);}
@media (min-width:560px){ .checkout-panel{padding:40px 34px 32px;} }
.checkout-close{position:absolute; top:14px; right:14px; width:40px; height:40px; border-radius:50%; border:1px solid var(--line-strong); background:rgba(255,255,255,.03); color:var(--ink); font-size:20px; line-height:1; cursor:pointer; transition:border-color .3s, color .3s, transform .4s var(--ease);}
.checkout-close:hover{border-color:var(--gold); color:var(--gold-2); transform:rotate(90deg);}
.checkout-summary{border-bottom:1px solid var(--line); padding-bottom:20px; margin-bottom:24px; padding-right:40px;}
.checkout-summary .tier{display:block; font:700 10.5px/1 var(--f-body); letter-spacing:.3em; text-transform:uppercase; color:var(--gold);}
.checkout-summary h3{font:500 34px/1.05 var(--f-display); margin-top:12px;}
.checkout-price{font:500 34px/1.1 var(--f-display); margin-top:6px; background:var(--foil); background-size:220% 100%; -webkit-background-clip:text; background-clip:text; color:transparent; animation:foil 7s linear infinite; display:inline-block;}
.checkout-break{font-size:13px; color:var(--ink-faint); margin-top:4px;}
.checkout-form h4{font:700 10.5px/1 var(--f-body); letter-spacing:.3em; text-transform:uppercase; color:var(--gold); margin:26px 0 16px;}
.checkout-form h4:first-of-type{margin-top:0;}
.checkout-grid{display:grid; grid-template-columns:1fr 1fr; gap:0 14px;}
.checkout-grid-3{grid-template-columns:1fr 1fr 1fr;}
@media (max-width:480px){ .checkout-grid{grid-template-columns:1fr;} .checkout-grid-3{grid-template-columns:1fr 1fr;} .checkout-grid-3 > label:last-child{grid-column:1 / -1;} }
.checkout-grid > label{min-width:0;}
.checkout-form label{display:flex; flex-direction:column; gap:8px; font-size:12.5px; font-weight:700; letter-spacing:.03em; color:var(--ink-dim); margin-bottom:14px;}
.checkout-form input, .checkout-form select, .checkout-form textarea{width:100%; min-width:0; font:15px/1.4 var(--f-body); padding:14px 15px; border:1px solid var(--line-strong); border-radius:12px; background:rgba(0,0,0,.35); color:var(--ink); transition:border-color .25s, box-shadow .25s, background .25s;}
.checkout-form input::placeholder, .checkout-form textarea::placeholder{color:rgba(203,191,166,.45);}
.checkout-form textarea{resize:vertical; min-height:78px;}
.checkout-form select{appearance:none; -webkit-appearance:none; cursor:pointer; padding-right:40px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23D8B46A' stroke-width='1.8'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center;}
.checkout-form select option{background:#1C150E; color:var(--ink);}
.checkout-form input:focus, .checkout-form select:focus, .checkout-form textarea:focus{outline:none; border-color:var(--gold); background:rgba(0,0,0,.5); box-shadow:0 0 0 3px rgba(216,180,106,.16);}
.field-hint{font-size:12.5px; color:var(--ink-faint); margin:-6px 0 14px;}
.checkout-note{font-size:12.5px; color:var(--ink-faint); margin:4px 0 16px; display:flex; gap:9px; align-items:flex-start;}
.checkout-note svg{width:16px; height:16px; flex:none; color:var(--gold); margin-top:1px;}
.checkout-msg{font-size:13.5px; padding:12px 14px; margin-bottom:14px; border:1px solid var(--gold); border-radius:12px; color:var(--ink); background:rgba(216,180,106,.06);}
.checkout-msg.is-error{border-color:var(--danger); color:var(--danger); background:rgba(255,122,122,.06);}
.checkout-submit{width:100%;}
.checkout-submit:disabled{opacity:.7; cursor:wait;}
.pay-methods{display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:16px;}
.pm-opt{position:relative; margin:0 !important; display:flex !important;}
.pm-opt input{position:absolute; opacity:0; pointer-events:none;}
.pm-card{flex:1; display:flex; flex-direction:column; align-items:center; gap:6px; padding:16px 6px; border:1px solid var(--line-strong); border-radius:14px; background:rgba(0,0,0,.3); cursor:pointer; text-align:center; transition:transform .3s var(--ease), border-color .3s, background .3s, box-shadow .3s;}
.pm-card svg{width:24px; height:24px; color:var(--ink-dim);}
.pm-card b{font-size:14.5px; color:var(--ink); font-weight:800;}
.pm-card small{font-size:11px; color:var(--ink-faint); letter-spacing:0; text-transform:none; font-weight:500;}
.pm-opt:hover .pm-card{transform:translateY(-2px);}
.pm-opt input:checked + .pm-card{border-color:var(--gold); background:rgba(216,180,106,.1); box-shadow:0 0 0 1px var(--gold) inset;}
.pm-opt input:checked + .pm-card svg{color:var(--gold-2);}
.pm-opt input:focus-visible + .pm-card{outline:2px solid var(--gold); outline-offset:2px;}
.pay-info{font-size:13.5px; color:var(--ink-dim); margin:0 0 14px; padding:13px 15px; border-radius:12px; background:rgba(0,0,0,.3); border:1px solid var(--line);}
.pay-info b{color:var(--gold-2);}
.test-box{margin:36px auto 0; max-width:580px; padding:24px; border:1px dashed var(--gold); border-radius:18px; text-align:center; background:rgba(216,180,106,.05);}
.test-box b{display:block; margin-bottom:6px; color:var(--gold-2);}
.test-box p{margin:0 0 16px; color:var(--ink-dim); font-size:14px;}
.test-box div{display:flex; gap:12px; justify-content:center; flex-wrap:wrap;}

/* páginas de resultado */
.pay-box{margin-top:24px; padding:28px; border:1px solid var(--line-strong); border-radius:22px; background:var(--surface); max-width:480px; display:flex; flex-direction:column; gap:12px;}
.pay-amount{font:500 38px/1.1 var(--f-display); color:var(--gold-2);}
.pay-amount small{font:600 14px/1 var(--f-body); color:var(--ink-faint);}
.pix-qr{width:240px; height:240px; border-radius:14px; background:#fff; padding:10px; align-self:center;}
.pay-label{font-size:13px; font-weight:700; color:var(--ink-dim);}
.pay-code{width:100%; font:12.5px/1.5 ui-monospace,monospace; padding:12px; border:1px solid var(--line-strong); border-radius:12px; background:rgba(0,0,0,.35); color:var(--ink); resize:none; word-break:break-all;}
.pay-copy, .pay-open{width:100%;}
.pay-hint{font-size:13.5px !important; color:var(--ink-faint) !important; margin:0;}
.pay-status{display:flex; align-items:center; gap:10px; font-size:14px !important; font-weight:700; color:var(--ink) !important; margin:0; padding:12px 14px; border-radius:12px; background:rgba(0,0,0,.3);}
.pay-status .dot{width:9px; height:9px; border-radius:50%; background:var(--gold); flex:none; animation:pulse 1.6s ease-in-out infinite;}
.pay-status.ok{background:rgba(37,211,102,.1);}
.pay-status.ok .dot{background:var(--wa); animation:none;}

/* páginas internas (legais e resultado) */
.top.solid{position:sticky; background:rgba(10,8,6,.85); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); border-color:var(--line);}
.legal-header{padding-block:64px 10px; max-width:76ch;}
.back-link{display:inline-block; font-size:13px; font-weight:600; letter-spacing:.06em; color:var(--ink-dim); margin-bottom:24px; transition:color .3s;}
.back-link:hover{color:var(--gold-2);}
.legal-header h1{font-size:clamp(40px,5vw,64px); margin-top:16px;}
.legal-updated{font:500 12px/1.5 var(--f-body); letter-spacing:.06em; color:var(--ink-faint); margin-top:14px;}
.prose{max-width:76ch; padding-block:24px 90px;}
.prose h2{font-size:30px; margin-top:40px; margin-bottom:12px; padding-top:26px; border-top:1px solid var(--line);}
.prose h2:first-of-type{border-top:0; padding-top:0; margin-top:0;}
.prose p, .prose li{color:var(--ink-dim); font-size:15.5px; line-height:1.85;}
.prose p + p{margin-top:12px;}
.prose ul{padding-left:22px; margin:10px 0;}
.prose li::marker{color:var(--gold);}
.prose strong{color:var(--ink); font-weight:700;}
.prose a:not(.btn){color:var(--gold-2); text-decoration:underline; text-underline-offset:3px;}

/* animações */
@keyframes spin{to{--ang:360deg;}}
@keyframes spinSlow{to{transform:rotate(360deg);}}
@keyframes foil{from{background-position:0% 50%;} to{background-position:220% 50%;}}
@keyframes ping{0%{transform:scale(1); opacity:.75;} 80%,100%{transform:scale(1.55); opacity:0;}}
@keyframes pingSoft{0%{transform:scale(1); opacity:.7;} 80%,100%{transform:scale(1.18,1.35); opacity:0;}}
@keyframes glow{0%,100%{box-shadow:0 18px 40px -16px rgba(216,180,106,.7), 0 0 0 0 rgba(216,180,106,0);} 50%{box-shadow:0 18px 40px -16px rgba(216,180,106,.7), 0 0 0 12px rgba(216,180,106,.12);}}
@keyframes waGlow{0%,100%{box-shadow:0 0 0 0 rgba(37,211,102,.35);} 50%{box-shadow:0 0 0 14px rgba(37,211,102,0);}}
@keyframes marquee{to{transform:translateX(-50%);}}
@keyframes pulse{0%,100%{opacity:1; transform:scale(1);} 50%{opacity:.4; transform:scale(.8);}}
@keyframes modalIn{from{opacity:0; transform:translateY(30px) scale(.96);} to{opacity:1; transform:none;}}
@keyframes fadeUp{from{opacity:0; transform:translateY(16px);} to{opacity:1; transform:none;}}
@keyframes fadeIn{to{opacity:1;}}
@keyframes floatIn{from{opacity:0; transform:translateY(30px) scale(.9);} to{opacity:1; transform:none;}}
@keyframes wordUp{to{transform:none; filter:none; opacity:1;}}
@keyframes sideIn{from{opacity:0; transform:translateY(40px) scale(.96); filter:blur(8px);} to{opacity:1; transform:none; filter:none;}}
@keyframes draw{to{stroke-dashoffset:0;}}
@keyframes curtain{to{transform:scaleY(0);}}
@keyframes curtainDown{to{transform:scaleY(0);}}
@keyframes loaderMark{to{opacity:0; transform:scale(.9);}}
@keyframes loaderOut{to{visibility:hidden;}}
@keyframes drift1{from{transform:translate(0,0) scale(1);} to{transform:translate(-8vw,6vh) scale(1.15);}}
@keyframes drift2{from{transform:translate(0,0) scale(1);} to{transform:translate(10vw,-8vh) scale(1.1);}}

@media (prefers-reduced-motion:reduce){
  *, *::before, *::after{animation-duration:.01ms !important; animation-delay:0s !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important;}
  .loader{display:none;}
  .js-ready .reveal{opacity:1; transform:none; filter:none;}
  .hero h1 .w > span, .hero .lead, .hero .hero-cta, .hero .hero-meta, .hero-side{opacity:1; transform:none; filter:none;}
  .split .ln > span{transform:none;}
  .manifesto p .mw{color:var(--ink);}
  #brilho, #fogos, .cursor-glow{display:none;}
}

/* =========================================================
   Camada de emoção: ilustrações flutuantes, adesivos, seção
   horizontal de momentos, texto cinético e confete no clique.
   ========================================================= */
:root{ --rose:#FF4F7B; --rose-2:#FF97AE; --spring:cubic-bezier(.34,1.56,.64,1); }

/* ilustrações flutuando no topo */
.floaters{position:absolute; inset:0; z-index:1; pointer-events:none;}
.fi{position:absolute; width:var(--s,90px); height:var(--s,90px); filter:drop-shadow(0 18px 30px rgba(0,0,0,.55)); opacity:0; animation:popIn 1s var(--spring) forwards; animation-delay:calc(2s + var(--d,0s));}
.fi > svg{width:100%; height:100%; animation:bob var(--t,6s) ease-in-out infinite; animation-delay:var(--d,0s);}
.fi.f1{--s:96px; left:3%; top:17%; --t:7s;}
.fi.f2{--s:74px; left:44%; top:13%; --t:5.5s; --d:.15s;}
.fi.f3{--s:110px; right:2%; bottom:9%; --t:6.5s; --d:.3s;}
.fi.f4{--s:70px; left:38%; bottom:7%; --t:5s; --d:.45s;}
.fi.f5{--s:84px; right:42%; top:46%; --t:8s; --d:.6s;}
@media (max-width:1019px){ .fi.f2, .fi.f5{display:none;} .fi.f1{--s:64px; left:auto; right:4%; top:96px;} .fi.f3{--s:72px; right:2%; bottom:3%;} .fi.f4{--s:56px; left:4%; bottom:2%;} }
.flame{transform-origin:50% 100%; animation:flicker .18s ease-in-out infinite alternate;}

/* adesivos */
.sticker{position:absolute; z-index:4; display:inline-flex; align-items:center; gap:8px; padding:11px 16px; border-radius:999px; font:800 11.5px/1 var(--f-body); letter-spacing:.12em; text-transform:uppercase; color:#fff;
  background:linear-gradient(135deg,var(--rose),#C2185B); box-shadow:0 16px 30px -12px rgba(255,79,123,.7), inset 0 1px 0 rgba(255,255,255,.35); transform:rotate(-8deg); animation:wobble 3.6s ease-in-out infinite;}
.sticker::before{content:""; width:7px; height:7px; border-radius:50%; background:#fff; box-shadow:0 0 0 3px rgba(255,255,255,.3);}
.hero-side .sticker{left:-14px; top:-20px;}
@media (max-width:560px){ .hero-side .sticker{left:0; top:-26px;} }

/* números que pulam ao trocar o pacote */
.pk-price b.bump{animation:bump .5s var(--spring);}

/* micro interações com mola */
.btn{transition:transform .45s var(--spring), box-shadow .35s var(--ease), border-color .35s, color .35s, background .35s;}
.btn:active{transform:scale(.95) !important;}
.seg button:active{transform:scale(.92);}
.card:hover .ico svg, .pack:hover .who b{animation:wiggle .7s var(--spring);}
.js-ready .card.reveal{transform:translateY(70px) scale(.9) rotate(-2deg); transition:opacity 1s var(--ease), transform 1.1s var(--spring), filter 1s var(--ease), border-color .5s, box-shadow .6s;}
.js-ready .card.reveal.is-visible{transform:none;}
.js-ready .card.reveal.is-visible:hover{transform:translateY(-10px) rotate(-.6deg);}
.js-ready .stat.reveal{transform:translateY(40px) scale(.85); transition:opacity .9s var(--ease), transform 1s var(--spring), filter .9s;}
.js-ready .stat.reveal.is-visible{transform:none;}

/* momentos: rolagem horizontal fixada */
.momentos{position:relative; height:calc(var(--n,5) * 70vh + 100vh); background:var(--bg);}
.momentos .pin{position:sticky; top:0; height:100vh; height:100svh; overflow:hidden; display:flex; flex-direction:column; justify-content:center; gap:44px;}
.momentos .sec-head{margin-bottom:0;}
.mtrack{display:flex; gap:24px; padding-left:max(16px, calc((100vw - 1220px) / 2 + 32px)); width:max-content; will-change:transform;}
.moment{position:relative; flex:none; width:min(78vw,420px); height:min(56vh,480px); border-radius:32px; padding:30px 28px; overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end;
  background:var(--mbg); border:1px solid rgba(255,255,255,.08); box-shadow:0 40px 80px -40px rgba(0,0,0,.9); transform:rotate(var(--r,0deg)); transition:transform .7s var(--spring);}
.moment:hover{transform:rotate(0deg) translateY(-10px) scale(1.02);}
.moment::before{content:""; position:absolute; inset:0; background:radial-gradient(80% 60% at 70% 20%, rgba(255,255,255,.16), transparent 60%); pointer-events:none;}
.moment .art{position:absolute; right:-6%; top:-4%; width:72%; height:62%; transition:transform .9s var(--spring);}
.moment:hover .art{transform:rotate(-8deg) scale(1.08);}
.moment .art svg{width:100%; height:100%; animation:bob 6s ease-in-out infinite;}
.moment .tag{position:relative; align-self:flex-start; padding:8px 13px; border-radius:999px; font:800 10px/1 var(--f-body); letter-spacing:.2em; text-transform:uppercase; background:rgba(0,0,0,.35); color:#fff; backdrop-filter:blur(6px);}
.moment h3{position:relative; font:500 clamp(34px,3.4vw,46px)/1 var(--f-display); margin-top:16px; color:#fff;}
.moment p{position:relative; color:rgba(255,255,255,.82); font-size:15px; margin-top:10px; max-width:30ch;}
.moment.m1{--mbg:linear-gradient(160deg,#FF4F7B,#7A0F33); --r:-2deg;}
.moment.m2{--mbg:linear-gradient(160deg,#E7C27A,#6E4A17); --r:1.5deg;}
.moment.m3{--mbg:linear-gradient(160deg,#9B5CFF,#2A0F5C); --r:-1deg;}
.moment.m4{--mbg:linear-gradient(160deg,#1FA37A,#0B3B2C); --r:2deg;}
.moment.m5{--mbg:linear-gradient(160deg,#FF8A3D,#7A2A06); --r:-1.5deg;}
.mbar{height:2px; margin-inline:max(16px, calc((100vw - 1220px) / 2 + 32px)); background:var(--line); border-radius:2px; overflow:hidden; max-width:1156px;}
.mbar i{display:block; height:100%; width:100%; background:var(--foil); transform-origin:left; transform:scaleX(var(--mp,0));}
@media (max-width:759px), (prefers-reduced-motion:reduce){
  .momentos{height:auto; padding:100px 0;}
  .momentos .pin{position:relative; height:auto; overflow:visible;}
  .mtrack{width:auto; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:18px; padding-right:16px; -webkit-overflow-scrolling:touch; scrollbar-width:none; transform:none !important;}
  .mtrack::-webkit-scrollbar{display:none;}
  .moment{scroll-snap-align:center; height:440px;}
  .mbar{display:none;}
}

/* texto cinético */
.kinetic{padding:90px 0; overflow:hidden; border-block:1px solid var(--line);}
.kinetic .kl{display:block; white-space:nowrap; font:500 clamp(64px,11vw,170px)/.95 var(--f-display); letter-spacing:-.03em; will-change:transform;}
.kinetic .kl.k2{font-style:italic; text-align:right;}
.kinetic .kl .o{-webkit-text-stroke:1px rgba(216,180,106,.6); color:transparent;}
.kinetic .kl .dot{display:inline-block; width:.42em; height:.42em; border-radius:50%; background:linear-gradient(135deg,var(--rose),#C2185B); vertical-align:middle; margin:0 .2em; animation:pulse 2s ease-in-out infinite;}

/* confete no clique */
#burst{position:fixed; inset:0; width:100%; height:100%; pointer-events:none; z-index:4500;}

@keyframes popIn{from{opacity:0; transform:scale(.3) rotate(-25deg);} to{opacity:1; transform:none;}}
@keyframes bob{0%,100%{transform:translateY(0) rotate(-4deg);} 50%{transform:translateY(-16px) rotate(4deg);}}
@keyframes wobble{0%,100%{transform:rotate(-8deg) scale(1);} 50%{transform:rotate(-3deg) scale(1.06);}}
@keyframes wiggle{0%{transform:rotate(0);} 30%{transform:rotate(-12deg) scale(1.1);} 60%{transform:rotate(8deg);} 100%{transform:none;}}
@keyframes bump{0%{transform:scale(1);} 40%{transform:scale(1.12);} 100%{transform:scale(1);}}
@keyframes flicker{from{transform:scaleY(1) scaleX(1);} to{transform:scaleY(1.15) scaleX(.88);}}
@media (prefers-reduced-motion:reduce){ .fi{opacity:1;} #burst{display:none;} }

/* ajustes finos */
main{overflow-x:clip;}
.logo-txt small{white-space:nowrap;}
@media (max-width:420px){ .logo-txt b{font-size:23px;} .logo-txt small{letter-spacing:.28em; font-size:8px;} .top .wa-num{padding:9px 12px; font-size:12px;} }
.fi.f4{left:1.5%; bottom:13%;}
.fi.f5{--s:62px; left:50.5%; right:auto; top:auto; bottom:5%;}
@media (max-width:1019px){ .fi.f4{left:4%; bottom:2%;} }
@media (max-width:560px){ .seal{display:none;} }
