/* FlowUp · estilos escritos à mão. Variáveis em tokens.css (geradas de dados/design.json). */

/* ---------- Fontes locais ---------- */
@font-face { font-family: "Unbounded"; font-weight: 500; font-display: swap; src: url("../assets/fonts/unbounded-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Unbounded"; font-weight: 700; font-display: swap; src: url("../assets/fonts/unbounded-latin-700-normal.woff2") format("woff2"); }
@font-face { font-family: "Instrument Sans"; font-weight: 400; font-display: swap; src: url("../assets/fonts/instrument-sans-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Instrument Sans"; font-weight: 500; font-display: swap; src: url("../assets/fonts/instrument-sans-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Instrument Sans"; font-weight: 600; font-display: swap; src: url("../assets/fonts/instrument-sans-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "JetBrains Mono"; font-weight: 400; font-display: swap; src: url("../assets/fonts/jetbrains-mono-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "JetBrains Mono"; font-weight: 500; font-display: swap; src: url("../assets/fonts/jetbrains-mono-latin-500-normal.woff2") format("woff2"); }

@property --ang { syntax: "<angle>"; inherits: false; initial-value: 0deg; }

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scrollbar-color: #2a2c27 var(--fundo); }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-stopped { overflow: hidden; }
body {
  margin: 0; background: var(--fundo); color: var(--texto);
  font-family: var(--f-texto); font-size: var(--t-texto); line-height: var(--lh-texto);
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
  overflow-x: clip; text-align: center;
}
body.carregando, body.travado { overflow: hidden; }
h1, h2, h3, h4, p, ul, ol, figure { margin: 0; padding: 0; }
ul, ol { list-style: none; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; -webkit-tap-highlight-color: transparent; }
img, svg, canvas { display: block; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--verde); outline-offset: 3px; border-radius: 6px; }
::selection { background: var(--verde); color: #050505; }

.mono { font-family: var(--f-mono); font-size: var(--t-rotulo); letter-spacing: var(--ls-rotulo); text-transform: uppercase; font-weight: 400; }
.rotulo { color: var(--verde); }
.par { text-align: justify; text-align-last: center; hyphens: auto; -webkit-hyphens: auto; max-width: var(--coluna); margin-inline: auto; color: var(--texto-suave); text-wrap: pretty; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.pular-conteudo { position: fixed; left: 50%; top: 8px; transform: translate(-50%, -200%); z-index: 300; background: var(--verde); color: #050505; padding: .6rem 1rem; border-radius: 999px; font-weight: 600; }
.pular-conteudo:focus { transform: translate(-50%, 0); }
.sinal { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--verde); margin-right: .7em; box-shadow: 0 0 0 0 var(--verde-brilho); animation: sinal 2.2s ease-out infinite; vertical-align: middle; translate: 0 -1px; }
@keyframes sinal { 0% { box-shadow: 0 0 0 0 rgba(167,233,75,.55); } 70%, 100% { box-shadow: 0 0 0 9px rgba(167,233,75,0); } }

/* ---------- Camadas fixas ---------- */
.particulas { position: fixed; inset: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; opacity: 0; transition: opacity 1.2s linear; }
body.site-visivel .particulas { opacity: 1; }
.palco-gl { position: fixed; left: 0; top: 0; width: 100%; height: 100%; z-index: 4; pointer-events: none; }
.grao { position: fixed; inset: -50%; z-index: 90; pointer-events: none; opacity: .055; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)'/%3E%3C/svg%3E");
  animation: grao 1.1s steps(5) infinite; }
@keyframes grao { 0% { transform: translate(0,0); } 20% { transform: translate(-3%,2%); } 40% { transform: translate(2%,-4%); } 60% { transform: translate(-2%,3%); } 80% { transform: translate(3%,1%); } 100% { transform: translate(0,0); } }
.progresso { position: fixed; left: 0; right: 0; top: 0; height: 2px; z-index: 95; pointer-events: none; }
.progresso i { display: block; height: 100%; width: 100%; transform-origin: 0 50%; transform: scaleX(0); background: var(--verde); box-shadow: 0 0 12px var(--verde-brilho); }

/* ---------- Cursor ---------- */
/* Cursor do sistema em todo o site; nos palcos 3D, a mãozinha indica que dá para girar a placa. */
@media (hover: hover) and (pointer: fine) {
  [data-cursor="arraste"] { cursor: grab; }
  [data-cursor="arraste"]:active { cursor: grabbing; }
}

/* ---------- Carregamento ---------- */
.carga { position: fixed; inset: 0; z-index: 500; background: #000; display: grid; place-content: center; gap: 2.2rem; transition: opacity .9s var(--curva-es), visibility 0s .9s; }
.carga__logo { display: grid; justify-items: center; gap: 1.1rem; transition: filter .9s var(--curva-es), transform .9s var(--curva-es), opacity .9s; }
.carga__marca { width: clamp(120px, 26vw, 190px); height: auto; }
.carga__nome { width: clamp(170px, 38vw, 270px); height: auto; }
.carga .logo-ondas path { animation: onda 1.5s ease-in-out infinite; opacity: .15; }
.carga .logo-ondas path:nth-child(2) { animation-delay: .18s; }
.carga .logo-ondas path:nth-child(3) { animation-delay: .36s; }
@keyframes onda { 0%, 100% { opacity: .15; } 35% { opacity: 1; } }
.carga__pct { color: var(--texto-suave); font-size: .78rem; }
.carga__pct i { font-style: normal; color: var(--verde); margin-left: .3em; }
body:not(.carregando) .carga { opacity: 0; visibility: hidden; pointer-events: none; }
body:not(.carregando) .carga__logo { filter: blur(18px); transform: scale(1.12); opacity: 0; }

/* ---------- Botões ---------- */
.btn { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: .6em; min-height: 48px; padding: .85em 1.7em; border-radius: var(--r-pilula);
  font-family: var(--f-titulo); font-weight: 500; font-size: .74rem; letter-spacing: .04em; text-transform: uppercase; line-height: 1.1; overflow: hidden; isolation: isolate;
  transition: transform .25s var(--curva), box-shadow .45s var(--curva), background-color .3s, border-color .3s, color .3s; will-change: transform; }
.btn > span { position: relative; z-index: 1; pointer-events: none; }
.btn:active { transform: scale(.97); }
.btn--p { min-height: 44px; padding: .7em 1.25em; font-size: .6875rem; }
.btn--principal, .btn--degrade { color: #050505; background: var(--verde); box-shadow: 0 0 0 1px rgba(167,233,75,.4), 0 0 26px -4px var(--verde-brilho); }
.btn--degrade { background: linear-gradient(100deg, #7fc92b 0%, #A7E94B 45%, #d9ff8a 100%); width: 100%; min-height: 54px; }
.btn--principal::after, .btn--degrade::after { content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(105deg, transparent 35%, rgba(255,255,255,.75) 50%, transparent 65%); transform: translateX(-120%); transition: transform .8s var(--curva); }
.btn--contorno { border: 1px solid rgba(255,255,255,.22); color: #fff; background: rgba(255,255,255,.02); }
.btn[disabled] { opacity: .4; pointer-events: none; }
@media (hover: hover) {
  .btn--principal:hover, .btn--degrade:hover { box-shadow: 0 0 0 1px rgba(167,233,75,.6), 0 0 46px 0 var(--verde-brilho), 0 0 90px -10px var(--verde-brilho); }
  .btn--principal:hover::after, .btn--degrade:hover::after { transform: translateX(120%); }
  .btn--contorno:hover { border-color: var(--verde); color: var(--verde); }
}
.btn.tocado { box-shadow: 0 0 0 1px rgba(167,233,75,.7), 0 0 60px 4px var(--verde-brilho); }

/* ---------- Vidro e visor ---------- */
.vidro { background: var(--vidro); border: 1px solid var(--linha); border-radius: var(--r-painel);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.1), inset 0 60px 80px -70px rgba(255,255,255,.09);
  -webkit-backdrop-filter: blur(18px) saturate(1.2); backdrop-filter: blur(18px) saturate(1.2); }
.visor__c { position: absolute; width: 18px; height: 18px; border: 0 solid rgba(255,255,255,.45); pointer-events: none; z-index: 2; }
.visor__c--se { left: 14px; top: 14px; border-left-width: 1px; border-top-width: 1px; }
.visor__c--sd { right: 14px; top: 14px; border-right-width: 1px; border-top-width: 1px; }
.visor__c--ie { left: 14px; bottom: 14px; border-left-width: 1px; border-bottom-width: 1px; }
.visor__c--id { right: 14px; bottom: 14px; border-right-width: 1px; border-bottom-width: 1px; }

/* ---------- Cabeçalho ---------- */
.topo { position: fixed; left: 0; right: 0; top: 0; z-index: 60; display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: calc(.8rem + env(safe-area-inset-top)) calc(var(--margem) + env(safe-area-inset-right)) .8rem calc(var(--margem) + env(safe-area-inset-left));
  transition: transform .6s var(--curva), background-color .5s, border-color .5s; border-bottom: 1px solid transparent; }
.topo__logo { display: flex; align-items: center; gap: .65rem; min-height: 44px; }
.topo__marca { width: 46px; height: auto; }
.topo__nome { width: 104px; height: auto; }
.topo__nav { display: flex; gap: clamp(1rem, 2.4vw, 2.2rem); opacity: 0; pointer-events: none; transition: opacity .5s; position: absolute; left: 50%; transform: translateX(-50%); }
.topo__nav a { display: inline-flex; align-items: center; min-height: 44px; font: 400 .6875rem/1 var(--f-mono); letter-spacing: .2em; text-transform: uppercase; color: var(--texto-suave); padding: 0 .2rem; position: relative; transition: color .3s; }
.topo__nav a::after { content: ""; position: absolute; left: .2rem; right: .2rem; bottom: .7rem; height: 1px; background: var(--verde); transform: scaleX(0); transform-origin: 100% 50%; transition: transform .45s var(--curva); }
.topo__nav a:hover, .topo__nav a.ativo { color: #fff; }
.topo__nav a:hover::after, .topo__nav a.ativo::after { transform: scaleX(1); transform-origin: 0 50%; }
.topo__acoes { display: flex; align-items: center; gap: .6rem; }
.topo__menu { display: none; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--linha); position: relative; }
.topo__menu i { position: absolute; left: 13px; right: 13px; height: 1.5px; background: #fff; top: 18px; transition: transform .4s var(--curva), top .4s var(--curva); }
.topo__menu i + i { top: 25px; }
.topo__menu[aria-expanded="true"] i { top: 21.5px; transform: rotate(45deg); }
.topo__menu[aria-expanded="true"] i + i { transform: rotate(-45deg); }
body.fora-do-hero .topo { background: rgba(5,5,5,.62); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); border-bottom-color: rgba(255,255,255,.07); }
body.fora-do-hero .topo__nav { opacity: 1; pointer-events: auto; }
body.topo-oculto:not(.menu-aberto) .topo { transform: translateY(-110%); }
@media (max-width: 1100px) {
  .topo__nav { display: none; }
  body.fora-do-hero .topo__menu { display: block; }
}
.topo .btn--p { white-space: nowrap; }
@media (max-width: 560px) {
  .topo__logo { gap: .45rem; }
  .topo__nome { width: 76px; } .topo__marca { width: 34px; }
  .topo .btn--p { padding-inline: .95em; font-size: .6875rem; letter-spacing: .02em; min-height: 44px; }
  .topo__acoes { gap: .4rem; }
}
@media (max-width: 430px) { .topo__nome { display: none; } }

.menu { position: fixed; inset: 0; z-index: 55; background: rgba(5,5,5,.96); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px);
  display: grid; align-content: center; justify-items: center; gap: 2.4rem; padding: 6rem var(--margem) calc(2rem + env(safe-area-inset-bottom)); opacity: 0; transition: opacity .4s; }
.menu.aberto { opacity: 1; }
.menu__nav { display: grid; gap: .3rem; }
.menu__nav a { font: 700 clamp(1.7rem, 8vw, 3rem)/1.15 var(--f-titulo); text-transform: uppercase; padding: .35em 0; display: grid; justify-items: center; gap: .3rem; opacity: 0; transform: translateY(26px); transition: opacity .6s var(--curva), transform .6s var(--curva), color .3s; }
.menu__nav a small { color: var(--verde); font-size: .6875rem; }
.menu.aberto .menu__nav a { opacity: 1; transform: none; }
.menu.aberto .menu__nav a:nth-child(2) { transition-delay: .06s; } .menu.aberto .menu__nav a:nth-child(3) { transition-delay: .12s; }
.menu.aberto .menu__nav a:nth-child(4) { transition-delay: .18s; } .menu.aberto .menu__nav a:nth-child(5) { transition-delay: .24s; }
.menu__nav a:active { color: var(--verde); }

/* ---------- HERO ---------- */
.hero { position: relative; height: calc(var(--hero-rolagem, 700) * 1vh + 200vh); z-index: 0; }
.hero__preso { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; background: #000510; }
.hero__fundo { position: absolute; left: 50%; top: 50%; width: 116%; height: 116%; transform: translate(-50%, -50%); filter: blur(22px) saturate(1.15) brightness(.82); display: none; }
.hero__tela { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); }
.hero__estatico { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero__fachos { position: absolute; inset: 0; display: none; pointer-events: none; }
.hero__fachos i { position: absolute; top: -12%; width: 34%; height: 62%; background: linear-gradient(to bottom, rgba(70,150,210,.32), rgba(40,110,190,.1) 55%, transparent); filter: blur(22px); transform-origin: 50% 0; clip-path: polygon(38% 0, 62% 0, 100% 100%, 0 100%); animation: facho 9s ease-in-out infinite alternate; }
.hero__fachos i:nth-child(1) { left: -6%; rotate: -9deg; } .hero__fachos i:nth-child(2) { left: 22%; rotate: 4deg; animation-delay: -3s; opacity: .8; }
.hero__fachos i:nth-child(3) { left: 48%; rotate: -5deg; animation-delay: -5s; } .hero__fachos i:nth-child(4) { left: 74%; rotate: 8deg; animation-delay: -7s; opacity: .7; }
@keyframes facho { from { opacity: .55; transform: skewX(-2deg); } to { opacity: 1; transform: skewX(2.5deg); } }
.hero.modo-inteiro .hero__fundo, .hero.modo-inteiro .hero__fachos { display: block; }
.hero.modo-inteiro .hero__preso::before { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: linear-gradient(to bottom, #000 0%, rgba(0,13,30,.2) 26%, rgba(0,13,30,0) 42%, rgba(0,13,30,0) 58%, rgba(0,8,20,.55) 74%, #000 100%); }
.hero.modo-inteiro .hero__fundo { z-index: -1; }
.hero.modo-inteiro .hero__preso { isolation: isolate; }
.hero.modo-inteiro .hero__tela { -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 9%, #000 91%, transparent 100%); mask-image: linear-gradient(to bottom, transparent 0, #000 9%, #000 91%, transparent 100%); }
.hero__veu { position: absolute; inset: 0; background: var(--fundo); opacity: var(--veu, 0); pointer-events: none; z-index: 3; }
.hero__visor { position: absolute; inset: calc(4.2rem + env(safe-area-inset-top)) clamp(.6rem, 2.4vw, 2.2rem) calc(1.1rem + env(safe-area-inset-bottom)); pointer-events: none; z-index: 4; opacity: calc(1 - var(--veu, 0) * 1.6); }
.visor__r { position: absolute; color: rgba(255,255,255,.55); font-size: .6rem; white-space: nowrap; }
.visor__r--se { left: 44px; top: 16px; } .visor__r--sd { right: 44px; top: 16px; }
.visor__r--ie { left: 44px; bottom: 16px; } .visor__r--id { right: 44px; bottom: 16px; font-variant-numeric: tabular-nums; }
.visor__linha { position: absolute; left: 24%; right: 24%; bottom: 19px; height: 1px; background: rgba(255,255,255,.14); }
.visor__linha i { display: block; height: 100%; transform-origin: 0 50%; transform: scaleX(0); background: var(--verde); box-shadow: 0 0 10px var(--verde); }
.hero__abertura { position: absolute; inset: 0; z-index: 5; display: grid; align-content: center; justify-items: center; gap: 2.2rem; padding: 0 var(--margem); pointer-events: none; }
.hero__frase { font: 700 var(--t-h1)/var(--lh-titulo) var(--f-titulo); text-transform: uppercase; max-width: 15ch; text-wrap: balance; text-shadow: 0 2px 40px rgba(0,5,16,.9); }
.hero__frase .p { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .08em; }
.hero__frase .p > i { display: inline-block; font-style: normal; transform: translateY(110%); }
.hero__frase em { font-style: normal; color: var(--verde); text-shadow: 0 0 44px var(--verde-brilho); }
.hero__convite { display: grid; justify-items: center; gap: .9rem; color: rgba(255,255,255,.75); opacity: 0; }
.hero__convite svg { width: 14px; height: 26px; color: var(--verde); animation: seta 1.8s var(--curva-es) infinite; }
@keyframes seta { 0% { transform: translateY(-6px); opacity: 0; } 40% { opacity: 1; } 100% { transform: translateY(8px); opacity: 0; } }
.hero__legenda { position: absolute; left: 0; right: 0; bottom: clamp(4.6rem, 13vh, 8rem); z-index: 5; padding: 0 var(--margem); display: grid; gap: .55rem; justify-items: center; pointer-events: none; opacity: 0; transform: translateY(14px); filter: blur(8px); transition: opacity .5s var(--curva), transform .6s var(--curva), filter .5s; }
.hero__legenda.visivel { opacity: 1; transform: none; filter: none; }
.hero__leg-t { font: 700 clamp(1.25rem, 3.3vw, 2.7rem)/1.05 var(--f-titulo); text-transform: uppercase; text-shadow: 0 2px 30px rgba(0,5,16,.95); }
.hero__leg-t b { color: var(--verde); font-weight: 700; text-shadow: 0 0 34px var(--verde-brilho); }
.hero__leg-x { color: rgba(255,255,255,.78); font-size: clamp(.92rem, 1.2vw, 1.1rem); text-shadow: 0 1px 16px #000510; }
.hero__pular { position: absolute; right: calc(clamp(.6rem, 2.4vw, 2.2rem) + 44px); bottom: calc(3.1rem + env(safe-area-inset-bottom)); z-index: 6; color: rgba(255,255,255,.7); font-size: .6875rem; padding: .9rem 1.1rem; min-height: 44px; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; background: rgba(0,5,16,.35); transition: color .3s, border-color .3s, opacity .4s; opacity: calc(1 - var(--veu, 0) * 3); }
.hero__pular:hover { color: var(--verde); border-color: var(--verde); }
.hero.modo-inteiro .hero__legenda { bottom: auto; top: calc(50% + 28.125vw + 1.6rem); }
.hero.modo-inteiro .hero__abertura { align-content: start; padding-top: calc(50vh - 28.125vw - 9.5rem); padding-top: calc(50svh - 28.125vw - 9.5rem); }
.hero.modo-inteiro .hero__convite { position: absolute; left: 0; right: 0; top: calc(50% + 28.125vw + 2.4rem); }
.hero.modo-inteiro .hero__pular { right: 1rem; bottom: calc(2.6rem + env(safe-area-inset-bottom)); padding: .7rem .9rem; font-size: .6875rem; }
.hero.estatico { height: auto; } .hero.estatico .hero__preso { position: relative; }
.hero.estatico .hero__visor, .hero.estatico .hero__legenda, .hero.estatico .hero__tela { display: none; }
.hero.estatico + .sec--porque { margin-top: 0; }
.hero.estatico .hero__abertura { background: linear-gradient(to bottom, rgba(0,5,16,.2), rgba(0,5,16,.55)); }
@media (max-width: 820px) {
  .visor__r--sd { display: none; }
  .visor__r { font-size: .5rem; letter-spacing: .16em; }
  .visor__r--se, .visor__r--ie { left: 38px; } .visor__r--id { right: 38px; }
  .visor__linha { left: 38px; right: 38px; bottom: 6px; }
  .hero__visor { inset: calc(4rem + env(safe-area-inset-top)) .5rem calc(.7rem + env(safe-area-inset-bottom)); }
}

/* ---------- Seções ---------- */
.sec { position: relative; padding: var(--respiro) 0; --bg: var(--fundo); }
.sec--faixa { --bg: var(--fundo-faixa); }
.sec__fundo { position: absolute; inset: 0; z-index: 0; background: var(--bg); pointer-events: none; }
.sec__fundo::before { content: ""; position: absolute; left: 0; right: 0; bottom: 100%; height: clamp(90px, 16vh, 180px); background: linear-gradient(to bottom, transparent, var(--bg)); }
.sec__c { position: relative; z-index: 2; width: min(100% - var(--margem) * 2, var(--largura)); margin-inline: auto; }
.sec--porque { margin-top: -100vh; padding-top: clamp(7rem, 20vh, 12rem); padding-bottom: 0; }
.sec--porque .sec__fundo::before { height: 46vh; }

.cab { display: grid; justify-items: center; gap: 1.3rem; margin-bottom: clamp(3rem, 7vh, 5.5rem); }
.cab__rotulo { color: var(--verde); display: inline-flex; align-items: center; gap: .9em; }
.cab__rotulo::before, .cab__rotulo::after { content: ""; width: 26px; height: 1px; background: linear-gradient(90deg, transparent, var(--verde)); }
.cab__rotulo::after { transform: scaleX(-1); }
.cab__titulo { font: 700 var(--t-h2)/var(--lh-titulo) var(--f-titulo); text-transform: uppercase; max-width: 18ch; text-wrap: balance; letter-spacing: -.01em; }
.cab__titulo .p { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .1em; margin-bottom: -.1em; }
.cab__titulo .p > i { display: inline-block; font-style: normal; transform: translateY(112%); transition: transform 1.05s var(--curva); transition-delay: calc(var(--i) * 55ms); }
.cab.visto .cab__titulo .p > i { transform: none; }
.cab__titulo em { font-style: normal; color: var(--verde); text-shadow: 0 0 46px var(--verde-brilho); }
.cab__titulo .oco { color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.85); }
.cab--compacto { margin-bottom: 0; gap: .8rem; }
.cab--compacto .cab__titulo { font-size: clamp(1.15rem, 2.4vw, 2rem); max-width: 26ch; }
.cab--historia .cab__num { font: 700 clamp(3.4rem, 9vw, 7.5rem)/.9 var(--f-titulo); color: var(--verde); text-shadow: 0 0 60px var(--verde-brilho), 0 0 140px var(--verde-halo); letter-spacing: -.03em; }
.cab--historia .cab__num small { font-size: .42em; vertical-align: .55em; margin-right: .2em; opacity: .9; font-weight: 500; }
.cab--historia .cab__titulo { font-size: var(--t-h1); max-width: 16ch; }

/* Entradas */
.entra { opacity: 0; transform: translateY(28px); filter: blur(10px); transition: opacity .9s var(--curva), transform 1s var(--curva), filter .8s var(--curva); transition-delay: calc(var(--i, 0) * 70ms); }
.entra.visto { opacity: 1; transform: none; filter: none; }

/* Arrasto por velocidade */
[data-arrasto] { transform: skewY(calc(var(--arrasto, 0) * 1deg)); will-change: transform; }
[data-arrasto="t"] { filter: blur(calc(var(--arrasto-b, 0) * 1px)); }

/* ---------- 01 Por que NFC ---------- */
.numeros { display: grid; grid-template-columns: repeat(4, 1fr); border-block: 1px solid var(--linha); margin-bottom: clamp(3rem, 8vh, 6rem); }
.numero { padding: clamp(1.6rem, 3.4vw, 3rem) clamp(.8rem, 1.6vw, 1.6rem) clamp(1.6rem, 3vw, 2.6rem); display: grid; gap: 1rem; justify-items: center; align-content: start; position: relative; }
.numero + .numero::before { content: ""; position: absolute; left: 0; top: 14%; bottom: 14%; width: 1px; background: linear-gradient(to bottom, transparent, var(--linha) 20%, var(--linha) 80%, transparent); }
.numero__i { color: var(--texto-apagado); }
.numero__v { font: 700 clamp(2rem, 4.6vw, 4.6rem)/1 var(--f-titulo); color: var(--verde); text-transform: uppercase; letter-spacing: -.03em; white-space: nowrap; text-shadow: 0 0 34px var(--verde-brilho), 0 0 110px var(--verde-halo); font-variant-numeric: tabular-nums; }
.numero__v small { font-size: .42em; letter-spacing: 0; margin-left: .2em; font-weight: 500; }
.numero__l { color: var(--texto-suave); font-size: var(--t-pequeno); max-width: 20ch; line-height: 1.45; }
.beneficios { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(.8rem, 1.4vw, 1.4rem); perspective: 1400px; }
.beneficio { --rx: 0deg; --ry: 0deg; --mx: 50%; --my: 0%; position: relative; padding: 2rem 1.4rem 2.1rem; border-radius: var(--r-card); display: grid; gap: 1rem; justify-items: center; align-content: start;
  background: var(--vidro); border: 1px solid var(--linha); box-shadow: inset 0 1px 0 rgba(255,255,255,.09);
  transform: rotateX(var(--rx)) rotateY(var(--ry)) scale(var(--esc, 1)); transform-style: preserve-3d; transition: transform .5s var(--curva), border-color .4s, box-shadow .4s; overflow: hidden; }
.beneficio::before { content: ""; position: absolute; inset: 0; background: radial-gradient(340px circle at var(--mx) var(--my), rgba(167,233,75,.16), transparent 60%); opacity: var(--brilho, 0); transition: opacity .4s; pointer-events: none; }
.beneficio.ativo { border-color: rgba(167,233,75,.4); box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 30px 60px -40px rgba(167,233,75,.35); }
.beneficio svg { width: 46px; height: 46px; color: var(--verde); filter: drop-shadow(0 0 14px var(--verde-brilho)); transform: translateZ(30px); }
.beneficio h3 { font: 500 1rem/1.2 var(--f-titulo); text-transform: uppercase; }
.beneficio p { color: var(--texto-suave); font-size: var(--t-pequeno); line-height: 1.6; text-align: justify; text-align-last: center; hyphens: auto; -webkit-hyphens: auto; }
.faixas { position: relative; z-index: 2; margin-top: clamp(4rem, 10vh, 8rem); padding-bottom: clamp(4rem, 10vh, 7rem); display: grid; gap: .4rem; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); }
.faixa { display: flex; width: max-content; will-change: transform; }
.faixa span { font: 700 clamp(2.4rem, 7vw, 6.4rem)/1.12 var(--f-titulo); text-transform: uppercase; white-space: nowrap; color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.34); padding-right: .25em; letter-spacing: -.02em; }
.faixa span.cheia { color: #fff; -webkit-text-stroke: 0; }
.faixa i { font-style: normal; align-self: center; width: .22em; height: .22em; border-radius: 50%; background: var(--verde); margin-right: .25em; font-size: clamp(2.4rem, 7vw, 6.4rem); box-shadow: 0 0 20px var(--verde-brilho); flex: none; }
@media (max-width: 1100px) { .beneficios { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 820px) {
  .numeros { grid-template-columns: repeat(2, 1fr); }
  .numero:nth-child(3)::before { display: none; }
  .numero:nth-child(n+3) { border-top: 1px solid var(--linha); }
  .numero__v { font-size: clamp(1.7rem, 8.6vw, 3rem); }
}
@media (max-width: 560px) { .beneficios { grid-template-columns: 1fr; } .beneficio { padding-inline: 1.6rem; } }

/* ---------- Palco 3D (compartilhado) ---------- */
.palco { position: relative; touch-action: pan-y; -webkit-user-select: none; user-select: none; outline-offset: -4px; }
.palco__luz { position: absolute; inset: 0; overflow: hidden; border-radius: inherit; pointer-events: none; }
.palco__facho { position: absolute; left: 50%; top: -8%; width: 62%; height: 96%; translate: -50% 0; transform-origin: 50% 0; clip-path: polygon(40% 0, 60% 0, 100% 100%, 0 100%);
  background: linear-gradient(to bottom, rgba(200,255,150,.2), rgba(167,233,75,.07) 55%, transparent 92%); filter: blur(16px); animation: facho 8s ease-in-out infinite alternate; }
.palco__facho--2 { width: 34%; rotate: 13deg; opacity: .55; animation-delay: -4s; background: linear-gradient(to bottom, rgba(255,255,255,.16), rgba(167,233,75,.04) 60%, transparent 90%); }
.palco__poca { position: absolute; left: 50%; bottom: 7%; width: 64%; height: 17%; translate: -50% 0; border-radius: 50%;
  background: radial-gradient(closest-side, rgba(167,233,75,.5), rgba(167,233,75,.16) 46%, transparent 72%); filter: blur(12px); animation: poca 5s ease-in-out infinite alternate; }
@keyframes poca { from { opacity: .7; scale: .96 1; } to { opacity: 1; scale: 1.04 1; } }
.palco__r { position: absolute; z-index: 2; color: rgba(255,255,255,.6); font-size: .6875rem; letter-spacing: .14em; pointer-events: none; white-space: nowrap; }
.palco__r--se { left: 40px; top: 17px; } .palco__r--sd { right: 40px; top: 17px; } .palco__r--ie { left: 40px; bottom: 17px; } .palco__r--id { right: 40px; bottom: 17px; }
.palco__gigante { position: absolute; inset: 0; display: grid; place-items: center; overflow: hidden; pointer-events: none; z-index: 1;
  font: 700 clamp(2.2rem, 6.5vw, 5.6rem)/.92 var(--f-titulo); text-transform: uppercase; color: rgba(255,255,255,.2); letter-spacing: -.02em; white-space: nowrap; opacity: 0; }
.palco__dica { position: absolute; left: 50%; bottom: 44px; translate: -50% 0; z-index: 2; color: rgba(255,255,255,.62); font-size: .6875rem; padding: .55rem .9rem; border-radius: 999px; background: rgba(5,5,5,.6); border: 1px solid var(--linha); pointer-events: none; white-space: nowrap; transition: opacity .5s; }
.palco__dica.some { opacity: 0; }

/* ---------- 02 As linhas ---------- */
.linhas { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1rem, 1.8vw, 1.8rem); align-items: stretch; }
.linha { position: relative; display: flex; flex-direction: column; border-radius: var(--r-painel); border: 1px solid var(--linha); background: linear-gradient(to bottom, rgba(255,255,255,.035), rgba(255,255,255,.012)); overflow: hidden; transition: border-color .5s, box-shadow .6s; }
.linha:hover, .linha.tocado { border-color: rgba(167,233,75,.45); box-shadow: 0 40px 90px -50px rgba(167,233,75,.45); }
.linha .palco { aspect-ratio: 1 / 1.08; background: radial-gradient(90% 70% at 50% 34%, rgba(167,233,75,.1), transparent 70%); border-bottom: 1px solid var(--linha); }
.linha__corpo { padding: 1.7rem 1.5rem 1.8rem; display: grid; gap: .85rem; justify-items: center; flex: 1; align-content: start; }
.linha__nome { font: 700 clamp(1.25rem, 2vw, 1.75rem)/1 var(--f-titulo); text-transform: uppercase; }
.linha__mat { color: var(--verde); font-size: .6875rem; }
.linha__desc { color: var(--texto-suave); font-size: var(--t-pequeno); line-height: 1.6; text-align: justify; text-align-last: center; hyphens: auto; -webkit-hyphens: auto; }
.linha__ideal { font-size: var(--t-pequeno); line-height: 1.5; color: #d6d6d6; padding-top: .85rem; border-top: 1px solid var(--linha); width: 100%; }
.linha__ideal b { display: block; font: 400 .6875rem/1 var(--f-mono); letter-spacing: .2em; text-transform: uppercase; color: var(--texto-apagado); margin-bottom: .55rem; }
.linha__pe { margin-top: auto; padding: 0 1.5rem 1.7rem; display: grid; gap: 1.1rem; justify-items: center; }
.linha__preco { font: 700 1.5rem/1 var(--f-titulo); color: var(--verde); text-shadow: 0 0 30px var(--verde-brilho); display: grid; gap: .5rem; }
.linha__preco small { font: 400 .6875rem/1.3 var(--f-mono); letter-spacing: .12em; color: var(--texto-suave); text-transform: uppercase; text-shadow: none; }
@media (max-width: 1100px) { .linhas { grid-template-columns: 1fr; max-width: 520px; margin-inline: auto; } .linha .palco { aspect-ratio: 1 / .86; } }

/* ---------- 03 Configurador ---------- */
.conf { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: clamp(1.2rem, 2.4vw, 2.6rem); align-items: start; text-align: center; }
.conf__passos { order: 1; display: grid; gap: 2rem; }
.conf__palco-col { order: 2; position: sticky; top: 84px; }
.conf__painel { padding: 12px; display: grid; gap: 12px; background: rgba(12,13,11,.72); }
.palco--conf { aspect-ratio: 1 / .82; border-radius: 18px; background: radial-gradient(80% 62% at 50% 38%, rgba(167,233,75,.1), rgba(5,5,5,.5) 72%); overflow: hidden; }
.conf__cores { display: flex; align-items: center; justify-content: center; gap: .7rem; min-height: 44px; flex-wrap: wrap; }
.cor { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; position: relative; }
.cor i { width: 28px; height: 28px; border-radius: 50%; background: var(--c); box-shadow: inset 0 0 0 1px rgba(255,255,255,.28), inset 0 -6px 10px rgba(0,0,0,.25); transition: transform .35s var(--curva); }
.cor::after { content: ""; position: absolute; inset: 3px; border-radius: 50%; border: 1.5px solid var(--verde); opacity: 0; scale: .8; transition: opacity .3s, scale .4s var(--curva); box-shadow: 0 0 16px var(--verde-brilho); }
.cor[aria-checked="true"]::after { opacity: 1; scale: 1; }
.cor[aria-checked="true"] i { transform: scale(.86); }
.conf__cor-nome { font: 400 .6875rem/1 var(--f-mono); letter-spacing: .18em; text-transform: uppercase; color: var(--texto-suave); min-width: 9ch; text-align: left; padding-left: .3rem; }
.conf__cor-nome b { color: #fff; font-weight: 500; }
.conf__vistas { display: flex; justify-content: center; gap: .6rem; flex-wrap: wrap; }
.seg { display: inline-flex; border: 1px solid var(--linha); border-radius: 999px; padding: 3px; background: rgba(5,5,5,.5); }
.seg button { min-height: 44px; min-width: 44px; padding: 0 1rem; border-radius: 999px; font: 400 .6875rem/1 var(--f-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--texto-suave); transition: background-color .3s, color .3s; }
.seg button:hover { color: #fff; } .seg button.ativo { background: rgba(167,233,75,.14); color: var(--verde); }
.seg--zoom button { font-size: 1rem; letter-spacing: 0; padding: 0; }
.seg--zoom output { display: grid; place-items: center; min-width: 4.6ch; font-size: .6875rem; color: #fff; }
.conf__resumo { display: grid; gap: .9rem; padding: .6rem .5rem .4rem; }
.resumo__linhas { display: grid; gap: .1rem; }
.resumo__linhas div { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: .5rem .2rem; border-bottom: 1px dashed rgba(255,255,255,.09); }
.resumo__linhas dt, .resumo__k { font: 400 .6875rem/1 var(--f-mono); letter-spacing: .2em; text-transform: uppercase; color: var(--texto-apagado); }
.resumo__linhas dd { margin: 0; font-size: var(--t-pequeno); font-weight: 500; text-align: right; }
.resumo__total { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; padding: .3rem .2rem 0; }
.resumo__preco { font: 700 clamp(1.5rem, 2.4vw, 2.1rem)/1 var(--f-titulo); color: var(--verde); text-shadow: 0 0 30px var(--verde-brilho); font-variant-numeric: tabular-nums; }
.resumo__preco small { display: block; font: 400 .6875rem/1.4 var(--f-mono); letter-spacing: .12em; color: var(--texto-suave); text-shadow: none; text-transform: uppercase; margin-top: .5rem; text-align: right; }
.resumo__aviso { color: var(--verde); font-size: var(--t-pequeno); min-height: 1.5em; line-height: 1.4; }
.conf__resumo--mob { display: none; }
.passo { display: grid; gap: .9rem; }
.passo__rotulo { color: var(--texto-suave); display: flex; align-items: center; gap: 1em; justify-content: center; }
.passo__rotulo b { color: var(--verde); font-weight: 500; }
.passo__rotulo::before, .passo__rotulo::after { content: ""; flex: 1; height: 1px; background: var(--linha); }
.passo__nota { color: var(--verde); font-size: var(--t-pequeno); }
.funcoes { display: grid; grid-template-columns: repeat(3, 1fr); gap: .7rem; }
.funcao, .aba { position: relative; border-radius: var(--r-card); border: 1px solid var(--linha); background: var(--vidro); transition: border-color .35s, box-shadow .45s, opacity .4s, transform .25s var(--curva), background-color .35s; }
.funcao { padding: 1.15rem .5rem 1rem; display: grid; gap: .8rem; justify-items: center; min-height: 128px; }
.funcao:active, .aba:active { transform: scale(.97); }
.funcao__med { width: 58px; height: 58px; border-radius: 50%; display: grid; place-items: center; background: radial-gradient(circle at 50% 35%, rgba(255,255,255,.14), rgba(255,255,255,.03) 70%); border: 1px solid rgba(255,255,255,.14); transition: box-shadow .45s, border-color .35s, background .35s; }
.funcao__med svg { width: 28px; height: 28px; color: #fff; transition: color .3s; }
.funcao__nome { font: 500 .6875rem/1.25 var(--f-titulo); text-transform: uppercase; letter-spacing: .01em; }
.funcao.sel, .aba.sel { border-color: var(--verde); background: rgba(167,233,75,.06); box-shadow: 0 0 0 1px rgba(167,233,75,.35), 0 0 44px -12px var(--verde-brilho), inset 0 0 30px -18px var(--verde); }
.funcao.sel .funcao__med { border-color: var(--verde); box-shadow: 0 0 30px -4px var(--verde-brilho); background: radial-gradient(circle at 50% 35%, rgba(167,233,75,.4), rgba(167,233,75,.08) 70%); }
.funcao.sel .funcao__med svg { color: var(--verde); }
.funcao.apagada { opacity: .32; }
.pulso { animation: pulso .6s var(--curva); }
@keyframes pulso { 0% { transform: scale(1); } 40% { transform: scale(1.045); } 100% { transform: scale(1); } }
.abas { display: grid; grid-template-columns: repeat(3, 1fr); gap: .7rem; }
.aba { padding: 1rem .8rem 1.05rem; display: grid; gap: .45rem; justify-items: center; align-content: start; }
.aba__nome { font: 700 .8rem/1.1 var(--f-titulo); text-transform: uppercase; }
.aba__mat { font: 400 .6875rem/1.35 var(--f-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--verde); }
.aba__desc { font-size: .78rem; line-height: 1.4; color: var(--texto-suave); }
.qtd { display: inline-flex; align-items: center; gap: .4rem; border: 1px solid var(--linha); border-radius: 999px; padding: 4px; background: var(--vidro); justify-self: center; }
.qtd button { width: 46px; height: 46px; border-radius: 50%; font-size: 1.3rem; line-height: 1; color: #fff; transition: background-color .3s, color .3s; }
.qtd button:hover { background: rgba(167,233,75,.14); color: var(--verde); }
.qtd output { min-width: 3ch; font: 700 1.2rem/1 var(--f-titulo); font-variant-numeric: tabular-nums; }
.qtd--p button { width: 44px; height: 44px; font-size: 1.1rem; } .qtd--p output { font-size: .9rem; min-width: 2.4ch; }
@media (max-width: 820px) {
  .conf { grid-template-columns: 1fr; gap: 1.4rem; }
  .conf__palco-col { order: 0; top: 0; z-index: 3; margin-inline: calc(var(--margem) * -1); }
  .conf__painel { border-radius: 0 0 22px 22px; border-inline: 0; border-top: 0; background: rgba(8,9,7,.94); padding: 8px 10px 10px; gap: 8px; height: 52vh; height: 52svh; min-height: 330px; grid-template-rows: minmax(0, 1fr) auto auto; }
  .palco--conf { aspect-ratio: auto; height: 100%; border-radius: 14px; }
  .conf__resumo--desk { display: none; } .conf__resumo--mob { display: grid; }
  .conf__cores { min-height: 44px; gap: .3rem; } .cor { width: 44px; height: 44px; }
  .seg button { min-height: 44px; padding: 0 .8rem; font-size: .6875rem; }
  .conf__passos { order: 1; gap: 1.7rem; }
  .funcoes { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: .6rem; margin-inline: calc(var(--margem) * -1); padding: 4px var(--margem) 8px; scrollbar-width: none; }
  .funcoes::-webkit-scrollbar { display: none; }
  .funcao { flex: 0 0 31%; scroll-snap-align: center; min-height: 118px; }
  .abas { gap: .5rem; } .aba { padding: .85rem .4rem .9rem; } .aba__nome { font-size: .6875rem; } .aba__desc { display: none; }
  .palco__r { font-size: .6875rem; letter-spacing: .08em; } .palco__r--se, .palco__r--ie { left: 34px; } .palco__r--sd, .palco__r--id { right: 34px; }
  .palco__dica { bottom: auto; top: 38px; font-size: .6875rem; letter-spacing: .12em; }
}

/* ---------- 04 De perto ---------- */
.sec--deperto { padding: 0; }
.deperto { position: relative; z-index: 2; height: 450vh; }
.deperto__preso { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; padding: calc(5rem + env(safe-area-inset-top)) var(--margem) calc(2rem + env(safe-area-inset-bottom)); }
.deperto__preso > .visor__c--se, .deperto__preso > .visor__c--sd { top: calc(4.4rem + env(safe-area-inset-top)); }
.deperto__destaque { position: absolute; inset: 0; display: grid; place-items: center; pointer-events: none; z-index: 0; overflow: hidden; }
.deperto__destaque span { grid-area: 1 / 1; font: 700 var(--t-gigante)/.9 var(--f-titulo); text-transform: uppercase; letter-spacing: -.04em; white-space: nowrap; color: rgba(255,255,255,.075); opacity: 0; transform: scale(.94); transition: opacity .7s var(--curva), transform 1.2s var(--curva), filter .7s; filter: blur(12px); }
.deperto__destaque span.longo { font-size: clamp(2rem, 8vw, 7.4rem); }
.deperto__destaque span.ativo { opacity: 1; transform: none; filter: none; }
.palco--deperto { min-height: 0; }
.palco--deperto .palco__poca { bottom: 4%; width: min(60%, 620px); }
.palco--deperto .palco__facho { width: min(56%, 720px); }
.deperto__texto { position: relative; z-index: 2; display: grid; gap: .7rem; justify-items: center; min-height: 9.6rem; align-content: start; }
.deperto__etapa { color: var(--verde); }
.deperto__titulo { font: 700 clamp(1.3rem, 3vw, 2.5rem)/1.02 var(--f-titulo); text-transform: uppercase; text-wrap: balance; max-width: 20ch; }
.deperto__frase { color: var(--texto-suave); max-width: 46ch; text-wrap: balance; }
.deperto__texto > * { transition: opacity .45s var(--curva), transform .6s var(--curva), filter .45s; }
.deperto__texto.troca > * { opacity: 0; transform: translateY(14px); filter: blur(8px); }
.deperto__indice { position: absolute; right: clamp(.6rem, 2vw, 2rem); top: 50%; translate: 0 -50%; z-index: 3; display: grid; gap: .55rem; justify-items: end; }
.deperto__indice li { display: flex; align-items: center; gap: .6rem; color: var(--texto-apagado); font-size: .54rem; transition: color .4s; }
.deperto__indice li::after { content: ""; width: 14px; height: 1px; background: currentColor; transition: width .5s var(--curva), background-color .4s, box-shadow .4s; }
.deperto__indice li.ativo { color: var(--verde); } .deperto__indice li.ativo::after { width: 34px; box-shadow: 0 0 10px var(--verde); }
.deperto__cotas { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 5; opacity: 0; transition: opacity .5s; overflow: visible; }
.deperto__cotas.ativo { opacity: 1; }
.deperto__cotas line, .deperto__cotas path { stroke: var(--verde); stroke-width: 1; fill: none; stroke-dasharray: 4 4; }
.deperto__cotas .ponta { stroke-dasharray: none; fill: var(--verde); stroke: none; }
.deperto__cotas text { font: 500 12px var(--f-mono); letter-spacing: .12em; fill: var(--verde); text-anchor: middle; paint-order: stroke; stroke: var(--fundo-faixa); stroke-width: 5px; stroke-dasharray: none; }
.deperto__ondas { position: absolute; left: 0; top: 0; width: 0; height: 0; pointer-events: none; z-index: 5; }
.deperto__ondas i { position: absolute; left: 0; top: 0; width: 14px; height: 14px; margin: -7px; border-radius: 50%; border: 1.5px solid var(--verde); opacity: 0; box-shadow: 0 0 14px var(--verde-brilho); }
.deperto__ondas.ativo i { animation: emite 1.8s ease-out infinite; }
.deperto__ondas.ativo i:nth-child(3n+2) { animation-delay: .45s; } .deperto__ondas.ativo i:nth-child(3n) { animation-delay: .9s; }
@keyframes emite { 0% { transform: scale(.6); opacity: .9; } 100% { transform: scale(9); opacity: 0; } }
@media (max-width: 820px) {
  .deperto { height: 400vh; }
  .deperto__indice li span { display: none; } .deperto__indice { gap: .7rem; }
  .deperto__texto { min-height: 10.5rem; }
}

/* ---------- 05 Planos ---------- */
.planos { display: grid; grid-template-columns: 1fr 1fr 1.1fr; gap: clamp(.6rem, 1.6vw, 1.8rem); align-items: center; perspective: 1700px; perspective-origin: 50% 40%; padding: 2rem 0 3.4rem; max-width: 1180px; margin-inline: auto; }
.plano { position: relative; --ry: 0deg; --tz: 0px; --luz: .55; --mx: 50%; --my: 20%; transform-style: preserve-3d; }
.plano:nth-child(1) { --ry: 15deg; } .plano:nth-child(3) { --ry: -15deg; }
.plano:nth-child(2) { --tz: 26px; }
.plano__placa { position: relative; border-radius: 26px; transform-style: preserve-3d; transform: translateZ(var(--tz)) rotateY(var(--ry)) rotateX(var(--rx, 0deg)); transition: transform .9s var(--curva), filter .6s; will-change: transform; filter: brightness(calc(.62 + var(--luz) * .5)); }
.plano__esp { position: absolute; inset: 0; border-radius: inherit; background: #10140b; border: 1px solid rgba(167,233,75,.42); box-shadow: 0 0 22px rgba(167,233,75,.12); }
.plano__esp:nth-child(1) { transform: translateZ(-14px); background: #060805; box-shadow: 0 0 70px 4px rgba(167,233,75, calc(.12 + var(--luz) * .3)); }
.plano__esp:nth-child(2) { transform: translateZ(-11px); } .plano__esp:nth-child(3) { transform: translateZ(-8px); }
.plano__esp:nth-child(4) { transform: translateZ(-5px); } .plano__esp:nth-child(5) { transform: translateZ(-2px); }
.plano__face { position: relative; border-radius: inherit; padding: 2.2rem 1.5rem 1.7rem; display: grid; gap: 1.15rem; justify-items: center; align-content: start; min-height: 100%;
  background: radial-gradient(120% 60% at 50% 0%, rgba(167,233,75,.1), transparent 60%), linear-gradient(160deg, rgba(22,26,18,.96), rgba(7,8,6,.98)); overflow: hidden; }
.plano__face::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(420px circle at var(--mx) var(--my), rgba(255,255,255,.13), transparent 55%); opacity: calc(var(--luz) * .9); }
.plano__borda { position: absolute; inset: -1px; border-radius: inherit; padding: 1.5px; pointer-events: none; z-index: 2;
  background: conic-gradient(from var(--ang), rgba(167,233,75,.22) 0 62%, rgba(167,233,75,.9) 78%, #f2ffd9 84%, rgba(167,233,75,.9) 88%, rgba(167,233,75,.22) 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  animation: filete 7s linear infinite; filter: drop-shadow(0 0 6px rgba(167,233,75,.8)); opacity: calc(.5 + var(--luz) * .5); }
.plano:nth-child(2) .plano__borda { animation-delay: -2.3s; } .plano:nth-child(3) .plano__borda { animation-delay: -4.6s; }
@keyframes filete { to { --ang: 360deg; } }
.plano__sombra { position: absolute; left: 8%; right: 8%; bottom: -34px; height: 30px; border-radius: 50%; background: radial-gradient(closest-side, rgba(167,233,75,.42), transparent 75%); filter: blur(12px); opacity: calc(.35 + var(--luz) * .65); transform: translateZ(-30px); pointer-events: none; }
.plano__nome { font: 700 clamp(1.05rem, 1.7vw, 1.45rem)/1 var(--f-titulo); text-transform: uppercase; }
.plano__preco { display: grid; gap: .35rem; justify-items: center; min-height: 4.3rem; align-content: end; }
.plano__cortado { color: var(--texto-apagado); text-decoration: line-through; font-size: .95rem; font-weight: 500; }
.plano__valor { font: 700 clamp(1.7rem, 3vw, 2.5rem)/1 var(--f-titulo); letter-spacing: -.02em; white-space: nowrap; }
.plano__valor small { font: 400 .6875rem/1 var(--f-mono); letter-spacing: .1em; color: var(--texto-suave); margin-left: .3em; }
.plano--destaque .plano__valor { color: var(--verde); text-shadow: 0 0 34px var(--verde-brilho); }
.plano__herda { font: 500 .6875rem/1 var(--f-mono); letter-spacing: .16em; text-transform: uppercase; color: #050505; background: var(--verde); padding: .55em .9em; border-radius: 999px; }
.plano__itens { display: grid; gap: .6rem; width: 100%; padding: 1rem 0 .3rem; border-top: 1px solid var(--linha); flex: 1; }
.plano__itens li { font-size: var(--t-pequeno); line-height: 1.45; color: #dcdcdc; text-align: center; text-wrap: balance; }
.plano__itens li::before { content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--verde); margin-right: .6em; box-shadow: 0 0 8px var(--verde); vertical-align: .12em; }
.plano .btn { width: 100%; }
.planos.tem-foco .plano { --luz: .2; --tz: -40px; }
.planos.tem-foco .plano.foco { --luz: 1; --tz: 70px; --ry: 0deg; }
.plano--destaque .plano__face { padding-block: 2.6rem 2rem; }
.planos__obs { color: var(--texto-apagado); font-size: var(--t-pequeno); }
@media (max-width: 900px) {
  .planos { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 0; padding: 2.4rem calc(50% - 39vw) 3.6rem; margin-inline: calc(var(--margem) * -1); scrollbar-width: none; perspective: 1100px; max-width: none; align-items: stretch; }
  .planos::-webkit-scrollbar { display: none; }
  .plano { flex: 0 0 78vw; scroll-snap-align: center; padding-inline: 2.2vw; }
  .plano:nth-child(n) { --tz: 0px; }
  .plano__placa { height: 100%; transition: filter .4s; }
  .plano__face { height: 100%; }
}

/* ---------- 06 Biosite ---------- */
.sec--biosite { padding-top: 0; }
.bio { position: relative; z-index: 2; height: 420vh; }
.bio__preso { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 1rem; padding: calc(5rem + env(safe-area-inset-top)) var(--margem) calc(1.6rem + env(safe-area-inset-bottom)); }
.bio__grade { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(1rem, 4vw, 5rem); align-items: center; width: min(100%, 1060px); margin-inline: auto; min-height: 0; height: 100%; }
.bio__aparelho-col { position: relative; height: 100%; min-height: 0; display: grid; place-items: center; perspective: 1500px; }
.bio__luz { position: absolute; inset: -6% -20%; pointer-events: none; }
.bio__luz .palco__poca { bottom: 1%; width: 70%; }
.bio__texto-col { display: grid; gap: 1.6rem; justify-items: center; }
.bio__etapas { display: grid; width: 100%; }
.bio__etapa { grid-area: 1 / 1; display: grid; gap: .9rem; justify-items: center; align-content: center; opacity: 0; transform: translateY(22px); filter: blur(8px); transition: opacity .55s var(--curva), transform .7s var(--curva), filter .55s; pointer-events: none; }
.bio__etapa.ativo { opacity: 1; transform: none; filter: none; }
.bio__etapa .mono { color: var(--verde); }
.bio__etapa h3 { font: 700 clamp(1.5rem, 3.4vw, 3rem)/1 var(--f-titulo); text-transform: uppercase; text-wrap: balance; }
.bio__etapa p:not(.mono) { color: var(--texto-suave); max-width: 34ch; text-align: justify; text-align-last: center; hyphens: auto; -webkit-hyphens: auto; }
.bio__pontos { display: flex; gap: .5rem; }
.bio__pontos li { width: 26px; height: 2px; background: rgba(255,255,255,.16); transition: background-color .4s, box-shadow .4s, width .5s var(--curva); }
.bio__pontos li.ativo { background: var(--verde); width: 46px; box-shadow: 0 0 10px var(--verde); }
.bio__oferta { display: grid; gap: 2rem; justify-items: center; padding-top: clamp(2rem, 6vh, 4rem); }
.bio__funcoes { display: grid; grid-template-columns: 1fr 1fr; gap: 0 2.4rem; max-width: 900px; width: 100%; }
.bio__funcoes li { display: flex; justify-content: center; align-items: baseline; gap: .7rem; text-align: center; padding: .8rem .4rem; border-bottom: 1px solid var(--linha); font-size: var(--t-pequeno); line-height: 1.5; color: #dcdcdc; text-wrap: balance; }
.bio__funcoes li::before { content: ""; flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--verde); box-shadow: 0 0 8px var(--verde); translate: 0 -2px; }
.bio__nota { color: var(--texto-apagado); font-size: var(--t-pequeno); }
.bio__preco { font: 700 clamp(2.2rem, 5vw, 3.8rem)/1 var(--f-titulo); color: var(--verde); text-shadow: 0 0 44px var(--verde-brilho); letter-spacing: -.02em; }
.bio__preco small { font: 400 .8rem/1 var(--f-mono); letter-spacing: .1em; color: var(--texto-suave); margin-left: .3em; text-shadow: none; }
.bio__acao { display: grid; gap: .8rem; justify-items: center; }
.bio__remover { font: 400 .6875rem/1 var(--f-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--texto-suave); padding: .9rem; text-decoration: underline; text-underline-offset: 4px; }
.btn.adicionado { background: transparent; color: var(--verde); box-shadow: inset 0 0 0 1px var(--verde), 0 0 30px -8px var(--verde-brilho); }
.btn.adicionado::after { display: none; }
.btn svg { width: 16px; height: 16px; position: relative; z-index: 1; }

/* Aparelho */
.fone { --fx: 0deg; --fy: -9deg; position: relative; height: min(100%, 640px); aspect-ratio: 9 / 19.3; transform-style: preserve-3d; transform: rotateY(var(--fy)) rotateX(var(--fx)); animation: flutua 6s ease-in-out infinite alternate; will-change: transform; }
@keyframes flutua { from { translate: 0 -5px; } to { translate: 0 6px; } }
.fone__corpo { position: absolute; inset: 0; border-radius: 13.5% / 6.3%; padding: 1.1%;
  background: linear-gradient(105deg, #54564f 0%, #1b1c19 9%, #6b6d64 18%, #26271f 34%, #101110 52%, #3a3b35 70%, #7b7d73 84%, #1d1e1b 93%, #4a4c45 100%);
  box-shadow: 0 0 0 1px rgba(0,0,0,.8), inset 0 0 0 1px rgba(255,255,255,.22), inset 0 0 3px 1px rgba(0,0,0,.6), -22px 0 60px -30px rgba(167,233,75,.55), 22px 0 60px -30px rgba(167,233,75,.35), 0 50px 80px -30px rgba(0,0,0,.9); }
.fone__corpo::before { content: ""; position: absolute; inset: -1px; border-radius: inherit; background: linear-gradient(95deg, rgba(167,233,75,.55), transparent 9%, transparent 91%, rgba(167,233,75,.35)); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0); padding: 1px; pointer-events: none; }
.fone__btn { position: absolute; width: 1.1%; background: linear-gradient(90deg, #7b7d73, #26271f); border-radius: 2px; }
.fone__btn--1 { left: -.9%; top: 21%; height: 4.5%; } .fone__btn--2 { left: -.9%; top: 29%; height: 8%; } .fone__btn--3 { left: -.9%; top: 39%; height: 8%; }
.fone__btn--4 { right: -.9%; top: 31%; height: 12%; background: linear-gradient(270deg, #7b7d73, #26271f); }
.fone__tela { position: relative; width: 100%; height: 100%; border-radius: 12.4% / 5.75%; background: #000; padding: 2.3%; overflow: hidden; container-type: inline-size; }
.fone__vidro { position: relative; width: 100%; height: 100%; border-radius: 10.6% / 4.9%; overflow: hidden; background: #111; box-shadow: 0 0 46px 6px var(--tela-brilho, rgba(255,244,225,.14)); transition: box-shadow .8s; }
.fone__status { position: absolute; left: 0; right: 0; top: 0; height: 6.4%; z-index: 5; display: flex; align-items: center; justify-content: space-between; padding: 1.5% 9% 0; font: 600 3.9cqw/1 var(--f-texto); color: var(--bs-status, #111); transition: color .6s; }
.fone__status span { display: flex; gap: 1.6cqw; align-items: center; }
.fone__status svg { height: 3.4cqw; width: auto; }
.fone__camera { position: absolute; left: 50%; top: 1.75%; width: 26%; height: 3.5%; translate: -50% 0; border-radius: 999px; background: #000; z-index: 6; }
.fone__camera::after { content: ""; position: absolute; right: 13%; top: 50%; width: 15%; aspect-ratio: 1; translate: 0 -50%; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #2c3a55, #070910 60%); box-shadow: inset 0 0 0 1px rgba(255,255,255,.08); }
.fone__gesto { position: absolute; left: 50%; bottom: 1.1%; width: 36%; height: .55%; min-height: 3px; translate: -50% 0; border-radius: 999px; background: var(--bs-status, #111); opacity: .8; z-index: 5; transition: background-color .6s; }
.fone__reflexo { position: absolute; inset: 0; z-index: 7; pointer-events: none; background: linear-gradient(112deg, transparent 30%, rgba(255,255,255,.11) 42%, rgba(255,255,255,.02) 50%, transparent 56%); background-size: 260% 100%; animation: reflexo 9s ease-in-out infinite; mix-blend-mode: screen; }
@keyframes reflexo { 0%, 12% { background-position: 120% 0; } 60%, 100% { background-position: -60% 0; } }
.fone__sombra { position: absolute; left: 4%; right: 4%; bottom: -5.5%; height: 5%; border-radius: 50%; background: radial-gradient(closest-side, rgba(0,0,0,.95), transparent 80%); filter: blur(9px); transform: translateZ(-60px); }

/* Tela do biosite de exemplo (dentro do aparelho) */
.bs { position: absolute; inset: 0; padding: 15% 7% 6%; display: flex; flex-direction: column; align-items: center; gap: 2.6cqw; text-align: center; overflow: hidden;
  background: var(--bs-fundo); color: var(--bs-texto); font-family: var(--bs-fonte); transition: background-color .7s var(--curva), color .6s; }
.bs[data-tema="claro"] { --bs-fundo: #f5efe4; --bs-texto: #2b2019; --bs-btn: #2b2019; --bs-btn-t: #f5efe4; --bs-raio: 999px; --bs-borda: transparent; --bs-fonte: var(--f-texto); --bs-peso: 600; --bs-av: #c8742e; }
.bs[data-tema="escuro"] { --bs-fundo: #0e1320; --bs-texto: #eef2ff; --bs-btn: transparent; --bs-btn-t: #eef2ff; --bs-raio: 2.6cqw; --bs-borda: rgba(238,242,255,.55); --bs-fonte: var(--f-mono); --bs-peso: 500; --bs-av: #5b7cfa; }
.bs[data-tema="dourado"] { --bs-fundo: #0b0a08; --bs-texto: #f1dba6; --bs-btn: linear-gradient(100deg, #b98a2f, #f0d58a 50%, #b98a2f); --bs-btn-t: #17120a; --bs-raio: 0; --bs-borda: transparent; --bs-fonte: var(--f-titulo); --bs-peso: 500; --bs-av: #d7b25c; }
.bs__av { width: 24cqw; height: 24cqw; border-radius: 50%; background: var(--bs-av); display: grid; place-items: center; color: #fff; font: 700 8.4cqw/1 var(--f-titulo); flex: none; box-shadow: 0 0 0 1cqw rgba(255,255,255,.14); transition: background-color .7s, transform .9s var(--curva), opacity .6s; }
.bs__nome { font-weight: 700; font-size: 6.6cqw; line-height: 1.1; transition: transform .9s var(--curva), opacity .6s; }
.bs[data-tema="dourado"] .bs__nome { font-size: 5.4cqw; text-transform: uppercase; } .bs[data-tema="escuro"] .bs__nome { font-size: 5.6cqw; }
.bs__frase { font-size: 3.7cqw; line-height: 1.35; opacity: .75; max-width: 30ch; transition: transform .9s var(--curva), opacity .6s; }
.bs[data-tema="dourado"] .bs__frase { font-size: 3cqw; font-family: var(--f-texto); } .bs[data-tema="escuro"] .bs__frase { font-size: 3.1cqw; }
.bs__banner { width: 100%; flex: none; height: 0; opacity: 0; transform: translateX(110%); border-radius: 3.4cqw; overflow: hidden; display: grid; align-content: center; gap: 1cqw; padding: 0 5cqw; text-align: left;
  background: linear-gradient(110deg, #2a1c08, #6b4a15 60%, #b98a2f); color: #fff3d1; transition: height .7s var(--curva), opacity .5s, transform .9s var(--curva), margin .7s; font-family: var(--f-texto); }
.bs__banner b { font: 700 4.3cqw/1.1 var(--f-titulo); text-transform: uppercase; } .bs__banner span { font-size: 3.2cqw; opacity: .85; }
.bs.com-banner .bs__banner { height: 21cqw; opacity: 1; transform: none; margin-block: .6cqw; }
.bs__botoes { width: 100%; display: grid; gap: 2.1cqw; margin-top: 1.6cqw; }
.bs__botoes li { display: flex; align-items: center; justify-content: center; gap: 2cqw; min-height: 10.6cqw; border-radius: var(--bs-raio); background: var(--bs-btn); color: var(--bs-btn-t); border: 1px solid var(--bs-borda); font-size: 3.6cqw; font-weight: var(--bs-peso);
  opacity: 0; transform: translateY(5cqw) scale(.96); transition: opacity .5s var(--curva), transform .6s var(--curva), border-radius .7s var(--curva), color .5s, border-color .5s; transition-delay: calc(var(--i) * 60ms), calc(var(--i) * 60ms), 0s, 0s, 0s; }
.bs[data-tema="dourado"] .bs__botoes li { font-size: 2.9cqw; text-transform: uppercase; letter-spacing: .04em; } .bs[data-tema="escuro"] .bs__botoes li { font-size: 3cqw; }
.bs__botoes svg { width: 4.4cqw; height: 4.4cqw; flex: none; }
.bs.com-botoes .bs__botoes li { opacity: 1; transform: none; }
.bs:not(.com-botoes) .bs__av { transform: translateY(42cqw) scale(1.25); } .bs:not(.com-botoes) .bs__nome, .bs:not(.com-botoes) .bs__frase { transform: translateY(46cqw); }
.bs:not(.com-perfil) .bs__av, .bs:not(.com-perfil) .bs__nome, .bs:not(.com-perfil) .bs__frase { opacity: 0; }
@media (max-width: 820px) {
  .bio__grade { grid-template-columns: 1fr; grid-template-rows: minmax(0, 1fr) auto; gap: 1rem; }
  .bio__texto-col { gap: .9rem; } .bio__etapa { gap: .5rem; min-height: 8.4rem; align-content: start; }
  .bio__etapa h3 { font-size: 1.3rem; } .bio__etapa p:not(.mono) { font-size: .95rem; line-height: 1.5; }
  .bio__preso { padding-top: calc(4.4rem + env(safe-area-inset-top)); gap: .6rem; }
  .bio__funcoes { grid-template-columns: 1fr; }
}

/* ---------- 07 Como funciona ---------- */
.passos { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1rem, 3vw, 3rem); }
.passos__trilho { position: absolute; left: 16.66%; right: 16.66%; top: clamp(2rem, 4.4vw, 3.6rem); height: 1px; background: var(--linha); }
.passos__trilho i { position: absolute; inset: 0; background: var(--verde); transform-origin: 0 50%; transform: scaleX(var(--p, 0)); box-shadow: 0 0 14px var(--verde); }
.etapa { position: relative; display: grid; gap: 1.1rem; justify-items: center; align-content: start; }
.etapa__n { font: 700 clamp(3.4rem, 7.4vw, 6.4rem)/1 var(--f-titulo); color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.3); background: var(--bg, var(--fundo)); padding: 0 .22em; position: relative; z-index: 1; transition: -webkit-text-stroke-color .6s, text-shadow .6s, color .6s; letter-spacing: -.03em; }
.etapa h3 { font: 500 var(--t-h3)/1.15 var(--f-titulo); text-transform: uppercase; color: var(--texto-suave); transition: color .6s; }
.etapa p { color: var(--texto-apagado); font-size: var(--t-pequeno); line-height: 1.6; max-width: 30ch; text-align: justify; text-align-last: center; hyphens: auto; -webkit-hyphens: auto; transition: color .6s; }
.etapa.aceso .etapa__n { -webkit-text-stroke-color: var(--verde); color: rgba(167,233,75,.1); text-shadow: 0 0 46px var(--verde-brilho); }
.etapa.aceso h3 { color: #fff; } .etapa.aceso p { color: var(--texto-suave); }
@media (max-width: 820px) {
  .passos { grid-template-columns: 1fr; gap: 3.4rem; }
  .passos__trilho { left: 50%; right: auto; top: 2rem; bottom: 6rem; width: 1px; height: auto; }
  .passos__trilho i { transform-origin: 50% 0; transform: scaleY(var(--p, 0)); }
  .etapa > *:not(.etapa__n) { background: var(--fundo); position: relative; z-index: 1; padding-inline: .6rem; }
  .etapa h3 { padding-block: .3rem; }
}

/* ---------- 08 Dúvidas ---------- */
.faq { max-width: 780px; margin-inline: auto; border-top: 1px solid var(--linha); }
.faq__item { border-bottom: 1px solid var(--linha); position: relative; transition: border-color .4s; }
.faq__item::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: var(--verde); transform: scaleX(0); transition: transform .7s var(--curva); box-shadow: 0 0 12px var(--verde); }
.faq__item.aberto::after { transform: scaleX(1); }
.faq__p { width: 100%; display: grid; grid-template-columns: 44px 1fr 44px; align-items: center; gap: .4rem; padding: 1.35rem 0; min-height: 64px; font: 500 clamp(.92rem, 1.5vw, 1.12rem)/1.3 var(--f-titulo); text-transform: uppercase; text-align: center; transition: color .3s; }
.faq__p::before { content: ""; }
.faq__item.aberto .faq__p, .faq__p:hover { color: var(--verde); }
.faq__mais { width: 44px; height: 44px; position: relative; justify-self: end; transition: transform .6s var(--curva); }
.faq__mais::before, .faq__mais::after { content: ""; position: absolute; left: 50%; top: 50%; width: 16px; height: 1.5px; background: currentColor; translate: -50% -50%; }
.faq__mais::after { rotate: 90deg; }
.faq__item.aberto .faq__mais { transform: rotate(135deg); }
.faq__r { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .6s var(--curva); }
.faq__item.aberto .faq__r { grid-template-rows: 1fr; }
.faq__r > div { overflow: hidden; }
.faq__r p { padding: 0 0 1.7rem; opacity: 0; transform: translateY(8px); transition: opacity .5s .08s, transform .6s var(--curva) .08s; }
.faq__item.aberto .faq__r p { opacity: 1; transform: none; }

/* ---------- Fechamento ---------- */
.fecho { min-height: 100vh; min-height: 100svh; display: grid; place-items: center; overflow: hidden; padding: clamp(6rem, 14vh, 9rem) var(--margem); }
.fecho__cortina { position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: .9;
  background:
    linear-gradient(to bottom, var(--fundo) 0%, transparent 22%, transparent 66%, var(--fundo) 100%),
    repeating-linear-gradient(90deg, transparent 0 3.2%, rgba(167,233,75,.2) 4.4%, transparent 6% 9.4%, rgba(167,233,75,.3) 10.6%, rgba(220,255,180,.12) 11.4%, transparent 13% 17%, rgba(167,233,75,.14) 18.5%, transparent 21%);
  filter: blur(5px);
  -webkit-mask-image: radial-gradient(90% 80% at 50% 30%, #000 30%, transparent 78%); mask-image: radial-gradient(90% 80% at 50% 30%, #000 30%, transparent 78%); animation: cortina 11s ease-in-out infinite alternate; }
@keyframes cortina { from { transform: translateX(-1.2%) skewX(-1deg); opacity: .65; } to { transform: translateX(1.2%) skewX(1deg); opacity: .95; } }
.fecho__quadro { position: relative; z-index: 2; width: min(100%, var(--largura)); display: grid; justify-items: center; gap: 1.6rem; padding: clamp(2.6rem, 6vw, 4.6rem) clamp(.4rem, 3vw, 3rem); }
.fecho__titulo { font: 700 var(--t-gigante)/.88 var(--f-titulo); text-transform: uppercase; letter-spacing: -.04em; display: grid; }
.fecho__titulo span { display: block; white-space: nowrap; }
.fecho__titulo span + span { color: var(--verde); text-shadow: 0 0 80px var(--verde-brilho), 0 0 180px var(--verde-halo); }
.fecho__titulo b { display: inline-block; font-weight: 700; opacity: 0; transform: translateY(.5em) rotateX(-70deg); transform-origin: 50% 100%; transition: opacity .7s var(--curva), transform 1s var(--curva); transition-delay: calc(var(--i) * 60ms); }
.fecho__titulo.visto b { opacity: 1; transform: none; }
.fecho__texto { color: var(--texto-suave); }
.consultores { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(.7rem, 1.4vw, 1.3rem); width: 100%; max-width: 980px; margin-top: 1rem; }
.consultor { padding: 1.7rem 1.2rem 1.4rem; display: grid; gap: .85rem; justify-items: center; border-radius: var(--r-card); transition: border-color .4s, box-shadow .5s, transform .5s var(--curva); }
.consultor:hover { border-color: rgba(167,233,75,.5); box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 30px 70px -40px rgba(167,233,75,.5); transform: translateY(-4px); }
.consultor__av { width: 58px; height: 58px; border-radius: 50%; background: var(--verde); color: #050505; display: grid; place-items: center; font: 700 1rem/1 var(--f-titulo); box-shadow: 0 0 34px -4px var(--verde-brilho); }
.consultor__nome { font: 500 .95rem/1.15 var(--f-titulo); text-transform: uppercase; }
.consultor__cargo { color: var(--texto-suave); font-size: .6875rem; }
.consultor .btn { width: 100%; margin-top: .3rem; }
.consultores--modal { grid-template-columns: 1fr; gap: .6rem; margin-top: .4rem; }
.consultores--modal .consultor { grid-template-columns: 52px 1fr auto; justify-items: start; align-items: center; text-align: left; padding: .8rem .9rem; gap: .2rem .9rem; }
.consultores--modal .consultor__av { grid-row: span 2; width: 48px; height: 48px; font-size: .82rem; }
.consultores--modal .consultor__nome { font-size: .8rem; align-self: end; } .consultores--modal .consultor__cargo { grid-column: 2; align-self: start; }
.consultores--modal .consultor .btn { grid-column: 3; grid-row: 1 / span 2; width: auto; margin: 0; }
@media (max-width: 820px) { .consultores { grid-template-columns: 1fr; max-width: 420px; } .fecho__titulo { font-size: clamp(3.1rem, 17.5vw, 7rem); } }
@media (max-width: 440px) { .consultores--modal .consultor { grid-template-columns: 44px 1fr; } .consultores--modal .consultor__av { width: 42px; height: 42px; } .consultores--modal .consultor .btn { grid-column: 1 / -1; grid-row: auto; width: 100%; margin-top: .5rem; } }

/* ---------- Rodapé ---------- */
.rodape { position: relative; padding: clamp(3.4rem, 8vh, 5.4rem) var(--margem) calc(7.4rem + env(safe-area-inset-bottom)); --bg: var(--fundo-faixa); }
.rodape__c { position: relative; z-index: 2; display: grid; gap: 1.9rem; justify-items: center; }
.rodape__logo { display: grid; gap: .7rem; justify-items: center; }
.rodape__logo svg:first-child { width: 86px; height: auto; } .rodape__logo svg:last-child { width: 150px; height: auto; }
.rodape__consultores { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem 2.6rem; }
.rodape__consultores a { display: grid; gap: .3rem; padding: .5rem; font-size: var(--t-pequeno); transition: color .3s; }
.rodape__consultores b { font-weight: 500; } .rodape__consultores span { font-family: var(--f-mono); font-size: .72rem; color: var(--texto-suave); letter-spacing: .08em; transition: color .3s; }
.rodape__consultores a:hover, .rodape__consultores a:hover span, .rodape__insta a:hover { color: var(--verde); }
.rodape__insta a { min-height: 44px; display: inline-flex; align-items: center; font: 500 1rem/1 var(--f-titulo); padding: .8rem; transition: color .3s; }
.rodape__local { color: var(--texto-apagado); font-size: .6875rem; line-height: 1.8; }

/* ---------- WhatsApp flutuante, barra, gaveta, modal ---------- */
.zap { position: fixed; right: calc(1rem + env(safe-area-inset-right)); bottom: calc(1rem + env(safe-area-inset-bottom)); z-index: 58; width: 58px; height: 58px; border-radius: 50%; background: var(--verde); color: #050505; display: grid; place-items: center;
  box-shadow: 0 0 0 1px rgba(167,233,75,.5), 0 10px 40px -6px var(--verde-brilho); transform: scale(0); opacity: 0; transition: transform .6s var(--curva), opacity .4s, bottom .6s var(--curva); }
.zap svg { width: 30px; height: 30px; }
.zap::after { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 1px solid var(--verde); animation: zap 5s ease-out infinite; }
@keyframes zap { 0%, 70% { transform: scale(1); opacity: 0; } 72% { opacity: .9; } 100% { transform: scale(1.9); opacity: 0; } }
body.fora-do-hero .zap { transform: none; opacity: 1; }
body.com-barra .zap { bottom: calc(6.6rem + env(safe-area-inset-bottom)); }
.zap:active { transform: scale(.93); }
.barra { position: fixed; left: 50%; bottom: calc(.8rem + env(safe-area-inset-bottom)); z-index: 57; width: min(100% - 1.4rem, 760px); translate: -50% 0; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: .8rem; padding: .55rem .55rem .55rem 1.2rem; border-radius: 999px; background: rgba(14,16,12,.82);
  transform: translateY(160%); transition: transform .8s var(--curva), box-shadow .5s; box-shadow: 0 20px 60px -20px #000, inset 0 1px 0 rgba(255,255,255,.1); }
.barra.visivel { transform: none; }
body.no-hero .barra.visivel { transform: translateY(160%); }
.barra.pulsa { animation: barra .7s var(--curva); }
@keyframes barra { 0% { box-shadow: 0 0 0 0 rgba(167,233,75,.7), 0 20px 60px -20px #000; } 100% { box-shadow: 0 0 0 26px rgba(167,233,75,0), 0 20px 60px -20px #000; } }
.barra__info { display: grid; grid-template-columns: auto auto 1fr; align-items: baseline; gap: .2rem 1rem; text-align: left; min-height: 48px; align-content: center; }
.barra__qtd { color: var(--texto-suave); font-size: .6875rem; }
.barra__total { font: 700 1.05rem/1 var(--f-titulo); color: var(--verde); font-variant-numeric: tabular-nums; white-space: nowrap; }
.barra__ver { color: var(--texto-apagado); font-size: .6875rem; text-decoration: underline; text-underline-offset: 4px; }
.barra .btn--degrade { width: auto; min-height: 48px; padding-inline: 1.4em; font-size: .6875rem; }
@media (max-width: 640px) {
  .barra { width: calc(100% - 1rem); gap: .5rem; padding: .4rem .4rem .4rem .95rem; }
  .barra__info { grid-template-columns: 1fr; gap: .25rem; min-height: 44px; }
  .barra__ver { display: none; }
  .barra__total { font-size: .95rem; }
  .barra__qtd { font-size: .6875rem; letter-spacing: .14em; }
  .barra .btn--degrade { min-height: 46px; padding-inline: 1em; font-size: .6875rem; letter-spacing: .02em; }
  body.com-barra .zap { bottom: calc(5.3rem + env(safe-area-inset-bottom)); }
}
@media (max-width: 820px) {
  /* nas seções presas, o texto de baixo não pode ficar sob o botão flutuante e a barra do pedido */
  body:not(.no-hero) .deperto__preso, body:not(.no-hero) .bio__preso { padding-bottom: calc(5.2rem + env(safe-area-inset-bottom)); }
  body.com-barra .deperto__preso, body.com-barra .bio__preso { padding-bottom: calc(5.4rem + env(safe-area-inset-bottom)); }
  body.com-barra .zap, body:not(.no-hero) .zap { width: 52px; height: 52px; }
  body.com-barra .deperto__texto, body.com-barra .bio__texto-col { padding-inline: 2.8rem; }
}
}
.fundo-painel { position: fixed; inset: 0; z-index: 70; background: rgba(0,0,0,.66); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); opacity: 0; transition: opacity .5s; }
.fundo-painel.aberto { opacity: 1; }
.gaveta { position: fixed; z-index: 75; right: 0; top: 0; bottom: 0; width: min(100%, 460px); background: #0b0c0a; border-left: 1px solid var(--linha); display: grid; grid-template-rows: auto minmax(0, 1fr) auto; text-align: left; transform: translateX(104%); transition: transform .8s var(--curva); box-shadow: -40px 0 100px -40px rgba(167,233,75,.18); }
.gaveta.aberto { transform: none; }
.gaveta__topo { position: relative; padding: calc(1.5rem + env(safe-area-inset-top)) 1.5rem 1.1rem; border-bottom: 1px solid var(--linha); display: grid; gap: .5rem; text-align: center; justify-items: center; }
.gaveta__topo h2, .modal h2 { font: 700 1.35rem/1.1 var(--f-titulo); text-transform: uppercase; }
.fechar { position: absolute; right: .8rem; top: calc(.8rem + env(safe-area-inset-top)); width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--linha); transition: border-color .3s, transform .5s var(--curva); }
.fechar:hover { border-color: var(--verde); transform: rotate(90deg); }
.fechar i::before, .fechar i::after { content: ""; position: absolute; left: 50%; top: 50%; width: 15px; height: 1.5px; background: #fff; translate: -50% -50%; rotate: 45deg; }
.fechar i::after { rotate: -45deg; }
.gaveta__corpo { overflow-y: auto; padding: .6rem 1.2rem 1.2rem; overscroll-behavior: contain; }
.item { display: grid; grid-template-columns: 76px 1fr; gap: .9rem; padding: 1rem 0; border-bottom: 1px solid var(--linha); align-items: center; }
.item__mini { width: 76px; height: 76px; border-radius: 16px; background: radial-gradient(circle at 50% 40%, rgba(167,233,75,.16), rgba(255,255,255,.02) 70%); border: 1px solid var(--linha); display: grid; place-items: center; overflow: hidden; }
.item__mini img { width: 100%; height: 100%; object-fit: contain; }
.item__mini svg { width: 30px; height: 30px; color: var(--verde); }
.item__info { display: grid; gap: .35rem; min-width: 0; }
.item__nome { font: 500 .82rem/1.2 var(--f-titulo); text-transform: uppercase; }
.item__det { font: 400 .6875rem/1.5 var(--f-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--texto-suave); }
.item__acoes { display: flex; align-items: center; justify-content: space-between; gap: .6rem; margin-top: .3rem; }
.item__preco { font-weight: 600; font-variant-numeric: tabular-nums; color: var(--verde); font-size: .95rem; }
.item__remover { min-height: 44px; font: 400 .6875rem/1 var(--f-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--texto-apagado); padding: .9rem .2rem; text-decoration: underline; text-underline-offset: 4px; }
.item__remover:hover { color: #ff8f8f; }
.gaveta__vazio { padding: 3rem 1rem; text-align: center; color: var(--texto-suave); display: grid; gap: 1.2rem; justify-items: center; }
.gaveta__base { padding: 1.1rem 1.2rem calc(1.2rem + env(safe-area-inset-bottom)); border-top: 1px solid var(--linha); display: grid; gap: .8rem; background: #0e100c; }
.gaveta__linha { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.gaveta__linha span { font: 400 .6875rem/1.3 var(--f-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--texto-suave); }
.gaveta__linha strong { font: 700 1.4rem/1 var(--f-titulo); color: var(--verde); font-variant-numeric: tabular-nums; white-space: nowrap; }
.gaveta__linha em { font-style: normal; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.gaveta__obs { font-size: .8rem; line-height: 1.5; color: var(--texto-apagado); text-align: center; }
.gaveta .resumo__aviso { text-align: center; font-size: .84rem; }
@media (max-width: 640px) {
  .gaveta { left: 0; width: 100%; top: auto; max-height: 90vh; max-height: 90svh; border-left: 0; border-top: 1px solid var(--linha); border-radius: 26px 26px 0 0; transform: translateY(104%); }
  .gaveta__topo { padding-top: 1.5rem; } .gaveta .fechar { top: .8rem; }
}
.modal { position: fixed; inset: 0; z-index: 80; display: grid; place-items: center; padding: 1rem; background: rgba(0,0,0,.72); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); opacity: 0; transition: opacity .45s; overflow-y: auto; }
.modal.aberto { opacity: 1; }
.modal__caixa { position: relative; width: min(100%, 520px); padding: 2.6rem 1.3rem 1.4rem; display: grid; gap: .9rem; justify-items: center; background: rgba(14,16,12,.92); transform: translateY(26px) scale(.97); transition: transform .7s var(--curva); box-shadow: 0 0 120px -30px rgba(167,233,75,.4), inset 0 1px 0 rgba(255,255,255,.1); }
.modal.aberto .modal__caixa { transform: none; }
.modal .fechar { top: .8rem; }
.modal__nota { color: var(--texto-suave); font-size: var(--t-pequeno); }

/* ---------- Voos ---------- */
.voos { position: fixed; inset: 0; z-index: 85; pointer-events: none; overflow: hidden; }
.centelha { position: absolute; left: 0; top: 0; width: 12px; height: 12px; margin: -6px; border-radius: 50%; background: #f1ffd6; box-shadow: 0 0 14px 5px var(--verde), 0 0 50px 16px var(--verde-brilho); will-change: transform; }
.centelha::after { content: ""; position: absolute; right: 50%; top: 50%; width: 70px; height: 2px; translate: 0 -50%; background: linear-gradient(270deg, rgba(167,233,75,.9), transparent); transform-origin: 100% 50%; rotate: var(--rumo, 0deg); border-radius: 2px; }
.voo-mini { position: absolute; left: 0; top: 0; width: 84px; height: 84px; margin: -42px; object-fit: contain; filter: drop-shadow(0 0 22px var(--verde-brilho)); will-change: transform; }

/* ---------- Movimento reduzido ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001s !important; animation-iteration-count: 1 !important; transition-duration: .001s !important; transition-delay: 0s !important; scroll-behavior: auto !important; }
  .entra { opacity: 1; transform: none; filter: none; }
  .cab__titulo .p > i, .hero__frase .p > i { transform: none; }
  .fecho__titulo b { opacity: 1; transform: none; }
  .grao { animation: none; }
  [data-arrasto] { transform: none; filter: none; }
}
