/* GERADO por ferramentas/gerar_home_teste.py. Não editar à mão: mexe no gerador e roda de novo. */
.hero-cena {

  color-scheme: dark;
  --fundo: oklch(0.165 0.012 50);
  --fundo-2: oklch(0.205 0.016 50);
  --tinta-1: oklch(0.955 0.012 75);
  --tinta-2: oklch(0.955 0.012 75 / 0.74);
  --tinta-3: oklch(0.955 0.012 75 / 0.5);
  --linha: oklch(0.955 0.012 75 / 0.07);
  --laranja: oklch(0.655 0.188 44);
  --laranja-claro: oklch(0.75 0.165 52);
  --laranja-escuro: oklch(0.56 0.17 41);
  --laranja-fundo: oklch(0.46 0.145 39);
  --creme: oklch(0.985 0.008 75);
  --tinta: oklch(0.235 0.016 50);
  --verde: oklch(0.6 0.12 128);
  --est-topo: oklch(0.38 0.016 50);
  --est-frente: oklch(0.31 0.015 50);
  --est-lado: oklch(0.255 0.013 50);
  --lona: oklch(0.235 0.012 50);
  --kraft: oklch(0.73 0.085 70);
  --kraft-claro: oklch(0.79 0.08 72);
  --kraft-esc: oklch(0.6 0.08 64);
  --kraft-fundo: oklch(0.42 0.06 58);
  --metal: oklch(0.82 0 0);
  --curva: cubic-bezier(0.16, 1, 0.3, 1);
  --curva-saida: cubic-bezier(0.7, 0, 0.84, 0);
  --track-corpo: -0.01em;
  --track-h1: -0.028em;
  --grao: 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='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --grifo: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 14' preserveAspectRatio='none'%3E%3Cpath d='M1 9 C 22 5, 48 11, 70 7 S 94 5, 99 6' fill='none' stroke='%23ff8a3d' stroke-width='3.4' stroke-linecap='round'/%3E%3C/svg%3E");
  position: relative; overflow: hidden; isolation: isolate;
  min-height: 100vh; min-height: 100svh;
  padding: clamp(104px, 12vw, 128px) 16px 24px;
  display: flex; flex-direction: column; align-items: center; text-align: center;
  background: var(--fundo); color: var(--tinta-1);
}
.hero-cena::before { content: ""; position: absolute; inset: 0; z-index: -2;
  background-image: linear-gradient(var(--linha) 1px, transparent 1px), linear-gradient(90deg, var(--linha) 1px, transparent 1px);
  background-size: 56px 56px; background-position: center top;
  -webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 30%, #000 30%, transparent 85%); mask-image: radial-gradient(ellipse 70% 60% at 50% 30%, #000 30%, transparent 85%); }
.hero-cena::after { content: ""; position: absolute; inset: 0; z-index: 3; pointer-events: none; background-image: var(--grao); opacity: 0.07; mix-blend-mode: overlay; }
.hc-luz { position: absolute; z-index: -1; left: 50%; bottom: -18%; width: min(1100px, 160vw); aspect-ratio: 2 / 1; transform: translateX(-50%);
  background: radial-gradient(closest-side, oklch(0.655 0.188 44 / 0.34), oklch(0.655 0.188 44 / 0.1) 55%, transparent); filter: blur(10px); }
.hc-texto { position: relative; z-index: 2; max-width: 860px; }
.hc-selo { display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px; border-radius: 999px; font-family: var(--font-body); font-size: 13px; font-weight: 500; letter-spacing: 0.01em; color: var(--tinta-2);
  background: oklch(0.955 0.012 75 / 0.05); box-shadow: inset 0 0 0 1px var(--linha); }
.hc-selo i { width: 6px; height: 6px; border-radius: 50%; background: var(--laranja-claro); box-shadow: 0 0 10px var(--laranja-claro); }
.hc-titulo { margin: 22px auto 0; font-family: var(--font-display); font-weight: 700; font-size: clamp(38px, 8.6vw, 76px); line-height: 1.04; letter-spacing: var(--track-h1); text-wrap: balance; max-width: 17ch; color: var(--tinta-1); }  /* 17ch: com a SF Pro da home, 15ch dava 328 px e o título quebrava em 3 linhas no celular */
.hc-grifo { background: var(--grifo) left 96% / 100% 0.15em no-repeat; -webkit-box-decoration-break: clone; box-decoration-break: clone; padding-bottom: 0.1em; }
.hc-sub { margin: 18px auto 0; max-width: 34rem; font-family: var(--font-body); font-size: clamp(16px, 1.5vw, 18.5px); line-height: 1.55; font-weight: 500; letter-spacing: var(--track-corpo); color: var(--tinta-2); text-wrap: pretty; }
.hc-acoes { margin-top: 28px; display: flex; flex-direction: column; align-items: center; gap: 6px; }
.hc-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; color: var(--tinta-2); text-decoration: none; font-family: var(--font-body); font-weight: 500; font-size: 15px; transition: color 260ms var(--curva); }
.hc-link:hover { color: var(--tinta-1); }
.hero-cena a:focus-visible { outline: 2px solid var(--laranja-claro); outline-offset: 3px; }
.hc-palco { position: relative; z-index: 1; width: 100%; max-width: 940px; margin-top: 8px; animation: hc-chega 1200ms 300ms var(--curva) both; }
.hc-palco .cena { display: block; width: 100%; height: auto; overflow: hidden; }
.hc-sobe { animation: hc-sobe 900ms var(--curva) both; }
.hc-sobe-2 { animation-delay: 90ms; } .hc-sobe-3 { animation-delay: 180ms; } .hc-sobe-4 { animation-delay: 270ms; }
@keyframes hc-sobe { from { opacity: 0; transform: translateY(18px); clip-path: inset(0 0 100% 0); } to { opacity: 1; transform: none; clip-path: inset(0 0 -20% 0); } }
@keyframes hc-chega { from { opacity: 0; transform: translateY(40px) scale(0.97); } to { opacity: 1; transform: none; } }

/* ── a cena ── */
.grade line { stroke: oklch(0.955 0.012 75 / 0.06); stroke-width: 1; }
.sombra { fill: oklch(0.08 0.01 50 / 0.7); }
.perna-topo { fill: oklch(0.34 0.012 50); } .perna-frente { fill: oklch(0.26 0.012 50); } .perna-lado { fill: oklch(0.21 0.01 50); }
.est-topo { fill: var(--est-topo); } .est-frente { fill: var(--est-frente); } .est-lado { fill: var(--est-lado); }
.lona { fill: var(--lona); }
.listras line { stroke: oklch(0.955 0.012 75 / 0.13); stroke-width: 2.4; }
.listras-x { animation: corre-x 500ms linear infinite; }
.listras-y { animation: corre-y 500ms linear infinite; }
@keyframes corre-x { from { transform: translate(0, 0); } to { transform: translate(24px, -12px); } }
@keyframes corre-y { from { transform: translate(0, 0); } to { transform: translate(24px, 12px); } }
.friso { stroke: oklch(0.955 0.012 75 / 0.16); stroke-width: 1.2; }
.prato { fill: oklch(0.34 0.016 50); } .prato-borda { fill: oklch(0.22 0.012 50); }
.prato-risco { stroke: var(--laranja); stroke-width: 2; stroke-dasharray: 6 9; opacity: 0.7; }
.prato-gira { animation: gira 6s linear infinite; }
@keyframes gira { to { transform: rotate(360deg); } }

.cartao-face { fill: var(--creme); }
.cartao-sombra { fill: oklch(0.08 0.01 50 / 0.45); }
.cartao-luz { fill: var(--laranja); opacity: 0; animation: luz 2s linear infinite; }
.cartao-txt { font-size: 7.4px; font-weight: 700; fill: var(--tinta); letter-spacing: -0.01em; }
.cartao-num-fundo { fill: var(--laranja); }
.cartao-num { font-size: 3px; font-weight: 700; fill: var(--creme); text-anchor: middle; }


.funil-bico { fill: var(--laranja-escuro); }
.funil-aro { stroke: oklch(0.86 0.1 60); stroke-width: 2.4; }
.funil-aro-fino { stroke: oklch(0.86 0.1 60 / 0.55); stroke-width: 1.2; }

.cubo-topo { fill: var(--creme); } .cubo-frente { fill: oklch(0.9 0.012 75); } .cubo-lado { fill: oklch(0.8 0.014 70); }
.cubo-letra { font-size: 6.2px; font-weight: 700; fill: var(--laranja); text-anchor: middle; }
.cubo { animation: cai 12s linear infinite; opacity: 0; }
@keyframes cai {
  0% { transform: translateY(-150px) rotate(-14deg); opacity: 0; animation-timing-function: cubic-bezier(0.5, 0, 0.9, 0.45); }
  1% { opacity: 1; }
  6.5% { transform: translateY(-4px) rotate(0); opacity: 1; animation-timing-function: cubic-bezier(0.2, 0.7, 0.4, 1); }
  7.75% { transform: translateY(-14px) rotate(2deg); animation-timing-function: cubic-bezier(0.6, 0, 1, 0.6); }
  10.5% { transform: translateY(44px) rotate(5deg); opacity: 1; }
  11.5%, 100% { transform: translateY(48px) rotate(5deg); opacity: 0; }
}
.cubo-balanca { animation: balanca 1.6s ease-in-out infinite alternate; }
@keyframes balanca { from { transform: translateX(-3px) rotate(-3deg); } to { transform: translateX(3px) rotate(3deg); } }

.c-laranja { fill: var(--laranja); } .c-tinta { fill: var(--tinta); } .c-creme { fill: var(--creme); } .c-verde { fill: var(--verde); }
.c-tinta-traco { stroke: var(--tinta); } .c-creme-traco { stroke: var(--creme); fill: none; }

.ch { offset-path: path("M 222.0 272.0 L 454.0 156.0 L 732.4 295.2 L 791.6 366.2"); offset-rotate: 0deg; animation: anda 12s linear infinite; }
.ch-pula-anim { animation: pula 12s linear infinite; }
.ch-rasc-corpo { fill: oklch(0.955 0.012 75 / 0.06); stroke: var(--creme); stroke-width: 2; stroke-dasharray: 5 5; }
.ch-rasc-placa { fill: none; stroke: oklch(0.955 0.012 75 / 0.55); stroke-width: 1.4; stroke-dasharray: 3 4; }
.ch-play { fill: var(--creme); }
.ch-rascunho { animation: rascunho 12s linear infinite; }
.ch-real { animation: real 12s linear infinite; transform-box: fill-box; transform-origin: center; }
.ch-lado { fill: var(--laranja-fundo); }
.ch-lado-solto { fill: var(--laranja-fundo); }
.ch-brilho { fill: oklch(1 0 0 / 0.16); }
.ch-furo { fill: oklch(0.2 0.02 40 / 0.6); }
.ch-argola { stroke: var(--metal); stroke-width: 2.6; }
.ch-ok { animation: ok 12s linear infinite; transform-box: fill-box; transform-origin: center bottom; }
.ok-bola { fill: oklch(0.62 0.15 150); }
.ok-check { stroke: var(--creme); stroke-width: 2.8; stroke-linecap: round; stroke-linejoin: round; }
.ch-faisca { animation: faisca 12s linear infinite; transform-box: fill-box; transform-origin: center; }
.ch-faisca line { stroke: var(--laranja-claro); stroke-width: 2.4; stroke-linecap: round; }

.elo, .ch-elo { fill: none; stroke: var(--metal); stroke-width: 1.5; }
.elo-chao { fill: none; stroke: oklch(0.86 0 0); stroke-width: 1.9; }
.elo-sombra { fill: none; stroke: oklch(0.12 0.01 50 / 0.55); stroke-width: 1.9; }
.argola-chao { fill: none; stroke: oklch(0.84 0 0); stroke-width: 2.8; }
.argola-sombra { fill: none; stroke: oklch(0.12 0.01 50 / 0.5); stroke-width: 2.8; }
.argola-brilho { fill: none; stroke: oklch(0.99 0 0); stroke-width: 1.4; stroke-linecap: round; }
.elo-rasc, .argola-rasc { fill: none; stroke: oklch(0.955 0.012 75 / 0.7); stroke-width: 1.4; stroke-dasharray: 2.5 2.5; }
.argola-pend { fill: none; stroke: var(--metal); stroke-width: 2; }
.pend { animation: pendulo 2.6s ease-in-out infinite alternate; transform-box: view-box; transform-origin: 0 0; }
@keyframes pendulo { from { transform: rotate(-7deg); } to { transform: rotate(7deg); } }
.pend-corpo { stroke: oklch(0 0 0 / 0.18); stroke-width: 1; }
.pend-furo { fill: oklch(0.15 0.01 50 / 0.55); }
.pend-brilho { fill: none; stroke: oklch(1 0 0 / 0.28); stroke-width: 1.6; stroke-linecap: round; }
.pc-1.pend-corpo { fill: var(--laranja); } .pc-1.pend-lado { fill: var(--laranja-fundo); } .pc-1.pend-placa { fill: var(--creme); }
.pc-2.pend-corpo { fill: var(--creme); } .pc-2.pend-lado { fill: oklch(0.78 0.02 70); } .pc-2.pend-placa { fill: var(--laranja); }
.pc-3.pend-corpo { fill: var(--tinta); } .pc-3.pend-lado { fill: oklch(0.15 0.01 50); } .pc-3.pend-placa { fill: var(--laranja-claro); }
.pc-4.pend-corpo { fill: oklch(0.58 0.13 255); } .pc-4.pend-lado { fill: oklch(0.42 0.11 255); } .pc-4.pend-placa { fill: var(--creme); }
.pc-5.pend-corpo { fill: oklch(0.66 0.13 150); } .pc-5.pend-lado { fill: oklch(0.48 0.11 150); } .pc-5.pend-placa { fill: var(--creme); }
.pc-6.pend-corpo { fill: oklch(0.84 0.14 92); } .pc-6.pend-lado { fill: oklch(0.66 0.13 85); } .pc-6.pend-placa { fill: var(--tinta); }
.most-base { fill: var(--laranja); } .most-base-lado { fill: var(--laranja-fundo); }
.most-eixo { fill: oklch(0.32 0.016 50); } .most-eixo-luz { fill: oklch(1 0 0 / 0.1); }
.most-braco-a { stroke: var(--laranja-claro); stroke-width: 4.5; stroke-linecap: round; }
.most-braco-b { stroke: var(--creme); stroke-width: 4; stroke-linecap: round; }
.gancho { stroke-width: 2.4; }
.most-braco-a-cubo { fill: var(--laranja); } .most-braco-b-cubo { fill: oklch(0.88 0.012 75); }
.most-tampa { fill: oklch(0.42 0.016 50); }
.cx-fundo { fill: var(--kraft-fundo); } .cx-dentro-1 { fill: oklch(0.52 0.07 60); } .cx-dentro-2 { fill: oklch(0.47 0.065 58); }
.cx-lado { fill: var(--kraft-esc); } .cx-frente { fill: var(--kraft); } .cx-fita { fill: var(--laranja); opacity: 0.9; }
.cx-aba { fill: oklch(0.66 0.08 66); } .cx-aba-2 { fill: oklch(0.62 0.08 64); } .cx-aba-frente { fill: var(--kraft-claro); } .cx-aba-lado { fill: oklch(0.69 0.08 68); }
.cx-ams { font-size: 6.2px; font-weight: 700; fill: oklch(0.3 0.03 50 / 0.6); }


@keyframes anda {
  0% { offset-distance: 0%; opacity: 0; }
  2.0% { offset-distance: 0%; opacity: 1; }
  6.0% { offset-distance: 0%; }
  90.0% { offset-distance: 86.06%; animation-timing-function: cubic-bezier(0.55, 0, 0.9, 0.5); }
  97.0% { offset-distance: 100%; opacity: 1; }
  98.5%, 100% { offset-distance: 100%; opacity: 0; }
}
@keyframes pula {
  0% { transform: translateY(-34px) scale(0.6); }
  5.0% { transform: translateY(0) scale(1.08, 0.9); }
  8.0% { transform: translateY(0) scale(1); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes rascunho { 0%, 42.2% { opacity: 1; } 47.2%, 100% { opacity: 0; } }
@keyframes real { 0%, 42.2% { opacity: 0; transform: scale(0.82); } 47.2% { opacity: 1; transform: scale(1.06); } 50.2%, 100% { opacity: 1; transform: scale(1); } }
@keyframes ok {
  0%, 30.8% { opacity: 0; transform: translateY(8px) scale(0.4); }
  33.8% { opacity: 1; transform: translateY(0) scale(1.12); }
  35.8%, 38.2% { opacity: 1; transform: translateY(0) scale(1); }
  42.2%, 100% { opacity: 0; transform: translateY(-10px) scale(0.8); }
}
@keyframes faisca {
  0%, 67.4% { opacity: 0; transform: scale(0.6); }
  69.9% { opacity: 1; transform: scale(1); }
  73.4%, 100% { opacity: 0; transform: scale(1.25); }
}
@keyframes luz { 0%, 70% { opacity: 0; } 80% { opacity: 0.92; } 100% { opacity: 0; } }

/* no celular os cartões da cena ficam pequenos: a legenda embaixo diz os 3 passos e acende junto */
.passos { display: none; }
@keyframes acende { 0%, 70% { color: var(--tinta-3); } 80% { color: var(--tinta-1); } 100% { color: var(--tinta-3); } }
@keyframes acende-b { 0%, 70% { background: oklch(0.955 0.012 75 / 0.08); color: var(--tinta-2); } 80% { background: var(--laranja); color: var(--creme); } 100% { background: oklch(0.955 0.012 75 / 0.08); color: var(--tinta-2); } }



@media (min-width: 900px) {
  .hc-acoes { flex-direction: row; justify-content: center; gap: 18px; }
  .hc-palco { margin-top: -6px; }
}
@media (max-width: 640px) {
  .hc-palco { width: 116%; max-width: none; margin-left: 0; margin-top: 10px; align-self: center; }
  .hero-cena .passos { display: flex; justify-content: center; gap: 14px; margin: 6px 0 0; padding: 0; list-style: none; position: relative; z-index: 2; }
  .hero-cena .passos li { display: flex; align-items: center; gap: 6px; font-family: var(--font-body); font-size: 12.5px; font-weight: 500; letter-spacing: 0; color: var(--tinta-3); animation: acende 2s linear infinite; animation-delay: var(--atraso); }
  .hero-cena .passos b { display: grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; font-size: 10.5px; font-weight: 700; font-variant-numeric: tabular-nums; animation: acende-b 2s linear infinite; animation-delay: var(--atraso); }
}
@media (prefers-reduced-motion: reduce) {
  .hero-cena *, .hero-cena *::before, .hero-cena *::after { animation-play-state: paused !important; }
  .hc-sobe, .hc-palco { animation: none; }
}
