/* O Assessor — camada de motion (entrada de texto + hover).
   Estados iniciais só existem quando o JS adiciona as classes (.split/.rv) — sem JS ou com
   reduced-motion a página fica 100% visível. Reveal usa translate/scale/rotate/opacity/clip-path
   (propriedades individuais) e hover usa transform, pra um não sobrescrever o outro. */

:root {
  --ease-soft: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-io: cubic-bezier(0.65, 0, 0.35, 1);
  --ease-back: cubic-bezier(0.34, 1.56, 0.64, 1);
}

@media (prefers-reduced-motion: no-preference) {

  /* hero não pisca antes do JS montar a entrada (failsafe: aparece em 2,5s se o JS falhar) */
  .js .hero__title, .js .hero__lead, .js .hero .cta, .js .seal { opacity: 0; animation: failsafe 0s 2.5s forwards; }
  .js .hero__title.split, .js .hero__lead.split, .js .hero__title.is-in, .js .hero__lead.is-in, .js .hero .cta.rv.is-in, .js .seal.rv.is-in { opacity: 1; animation: none; }
  @keyframes failsafe { to { opacity: 1; } }

  /* ---------- split de texto (palavra / linha) ---------- */
  .w { display: inline-block; clip-path: inset(-0.25em -0.4em -0.32em -0.4em); }
  .wi { display: inline-block; }
  .wi.gt { margin: -0.2em -0.25em; }
  .split, .split--measure { text-wrap-mode: nowrap; }
  .split--done .w { clip-path: none; }
  .split .wi { translate: 0 115%; rotate: 4deg; transform-origin: 0 100%; transition: translate 1s var(--ease-soft), rotate 1s var(--ease-soft), opacity 0.8s var(--ease-soft); transition-delay: calc(var(--d, 0ms) + var(--i, 0) * var(--step, 42ms)); }
  .split--lines .wi { opacity: 0; rotate: 0deg; translate: 0 90%; --step: 95ms; }
  .split.is-in .wi { translate: 0 0; rotate: 0deg; opacity: 1; }

  .no-tr, .no-tr * { transition: none !important; }

  /* ---------- reveal genérico ---------- */
  .rv { opacity: 0; translate: 0 40px; transition: opacity 0.9s var(--ease-soft) var(--d, 0ms), translate 1.1s var(--ease-soft) var(--d, 0ms), scale 1.1s var(--ease-soft) var(--d, 0ms), rotate 1.2s var(--ease-soft) var(--d, 0ms), clip-path 1.3s var(--ease-soft) var(--d, 0ms), transform 0.55s var(--ease-soft), box-shadow 0.55s var(--ease-soft), background-color 0.4s var(--ease-soft), border-color 0.4s var(--ease-soft), filter 0.4s var(--ease-soft); }
  .rv.is-in { opacity: 1; translate: 0 0; scale: 1; rotate: 0deg; }
  .rv--up-s { translate: 0 18px; }
  .rv--left { translate: -56px 0; }
  .rv--right { translate: 56px 0; }
  .rv--down { translate: 0 -90px; }
  .rv--scale { translate: 0 24px; scale: 0.94; }
  .rv--pop { translate: 0 0; scale: 0.6; transition-timing-function: var(--ease-back); }
  .rv--pop.is-in { scale: 1; }
  .rv--spin { translate: 0 0; scale: 0.8; rotate: -40deg; }
  .rv--drop { translate: 0 -40px; scale: 1.7; rotate: -35deg; transition-timing-function: var(--ease-back); }
  .rv--clip-up { opacity: 1; translate: 0 0; clip-path: inset(100% 0 0 0); }
  .rv--clip-up.is-in { clip-path: inset(-12% -6% -12% -6%); }
  .rv--clip-down { opacity: 1; translate: 0 0; clip-path: inset(0 0 100% 0); transition-duration: 0.9s, 1.1s, 1.1s, 1.2s, 2.2s; }
  .rv--clip-down.is-in { clip-path: inset(-4% -50% -4% -50%); }
  .rv--clip-x { opacity: 1; translate: 0 0; clip-path: inset(-30% 100% -30% -6%); }
  .rv--clip-x.is-in { clip-path: inset(-30% -6% -30% -6%); }
  .rv--zoom { scale: 1.12; translate: 0 0; opacity: 1; }

  /* ---------- loops ambientes ---------- */
  .arrow12.bob, .s5__down.bob { animation: bob 2.4s var(--ease-io) infinite; }
  @keyframes bob { 50% { transform: translate(0, 6px); } }
  .s5__down.bob { animation-name: bob-c; }
  @keyframes bob-c { 50% { transform: translateY(8px); } }
  .orbit.is-in { animation: orbit 14s var(--ease-io) infinite alternate; }
  .orbit + .orbit.is-in { animation-duration: 11s; animation-direction: alternate-reverse; }
  @keyframes orbit { from { transform: rotate(-4deg); } to { transform: rotate(5deg); } }
  .seal > div { animation: seal-float 4.8s var(--ease-io) 2.4s infinite; }
  @keyframes seal-float { 0%, 100% { transform: translateY(0) rotate(6.31deg); } 30% { transform: translateY(-5px) rotate(2deg); } 65% { transform: translateY(-2px) rotate(10deg); } }
  .badge__ring.spin { animation: spin 40s linear infinite; }
  @keyframes spin { to { transform: rotate(360deg); } }
  .badge__rays-out.is-in { animation: breathe 5s var(--ease-io) 1.6s infinite; }
  @keyframes breathe { 50% { transform: scale(1.035); opacity: 0.75; } }
  .cta__pill { position: relative; overflow: hidden; isolation: isolate; }
  .cta__pill::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(105deg, transparent 30%, rgba(255, 255, 255, 0.7) 48%, transparent 66%); transform: translateX(-130%); animation: shine 5.5s var(--ease-io) 2.2s infinite; }
  @keyframes shine { 0% { transform: translateX(-130%); } 18%, 100% { transform: translateX(130%); } }

  /* ---------- marquees com craft ---------- */
  .ticker, .press { -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); }
  .ticker:hover .ticker__track, .press:hover .press__track { animation-play-state: paused; }
}

/* ============ HOVER (só ponteiro fino) ============ */
@media (hover: hover) and (pointer: fine) {
  .cta, .cta-dark { transition: transform 0.45s var(--ease-back), opacity 0.9s var(--ease-soft) var(--d, 0ms), translate 1.1s var(--ease-soft) var(--d, 0ms); }
  .cta__pill { transition: box-shadow 0.5s var(--ease-soft), filter 0.4s var(--ease-soft); }
  .cta:hover .cta__pill { box-shadow: 0 18px 44px -12px rgba(223, 207, 162, 0.45), inset 0 0 0 1px rgba(255, 255, 255, 0.4); filter: brightness(1.05); }
  .cta:hover .cta__pill::after { animation: shine 1.1s var(--ease-soft) 1; }
  .cta__dot { transition: transform 0.6s var(--ease-back), filter 0.4s; }
  .cta:hover .cta__dot { transform: rotate(45deg) scale(1.08); filter: brightness(1.08); }
  .cta:active .cta__pill { filter: brightness(0.96); }

  .cta-dark__pill, .cta-dark__dot { position: relative; overflow: hidden; isolation: isolate; transition: background-color 0.35s var(--ease-soft), box-shadow 0.5s var(--ease-soft), transform 0.6s var(--ease-back); }
  .cta-dark__pill::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(105deg, transparent 30%, rgba(255, 255, 255, 0.16) 48%, transparent 66%); transform: translateX(-130%); transition: transform 0.9s var(--ease-soft); }
  .cta-dark:hover .cta-dark__pill::after { transform: translateX(130%); }
  .cta-dark:hover .cta-dark__pill, .cta-dark:hover .cta-dark__dot { background: #2f3f38; box-shadow: 0 18px 40px -14px rgba(35, 47, 42, 0.55); }
  .cta-dark__dot .arrow12 { transition: transform 0.6s var(--ease-back); }
  .cta-dark:hover .cta-dark__dot .arrow12 { transform: rotate(45deg) scale(1.15); }

  .portals { transition: opacity 0.9s var(--ease-soft) var(--d, 0ms), translate 1.1s var(--ease-soft) var(--d, 0ms), scale 1.1s var(--ease-soft) var(--d, 0ms), box-shadow 0.6s var(--ease-soft); }
  .portals:hover { box-shadow: 0 40px 80px -40px rgba(9, 25, 16, 0.55); }
  .checks li img { transition: transform 0.5s var(--ease-back); }
  .checks li:hover img { transform: rotate(-14deg) scale(1.25); }
  .logos li { cursor: default; }
  .logos li > * { transition: transform 0.6s var(--ease-back), filter 0.4s var(--ease-soft); }
  .logos li:hover { background-color: #18321f; transform: translateY(-4px); }
  .logos li:hover > * { transform: scale(1.07); filter: brightness(1.7); }

  .case:hover { transform: translateY(-10px); box-shadow: 0 34px 60px -28px rgba(16, 21, 19, 0.45); }
  .case__img img { transition: scale 0.9s var(--ease-soft); }
  .case:hover .case__img img { scale: 1.06; }
  .case__name { transition: color 0.35s var(--ease-soft); }
  .case:hover .case__name { color: #4c6a42; }

  .step { transition: opacity 0.9s var(--ease-soft) var(--d, 0ms), translate 1.1s var(--ease-soft) var(--d, 0ms), transform 0.55s var(--ease-soft), background-color 0.4s, border-color 0.4s; }
  .step:hover { transform: translateX(10px); background-color: #0d2018; border-color: rgba(208, 192, 151, 0.38); }
  .step__n { transition: transform 0.5s var(--ease-back); transform-origin: 0 100%; }
  .step:hover .step__n { transform: scale(1.18); }

  .fit__card:hover { transform: translateY(-8px); box-shadow: 0 30px 60px -30px rgba(0, 0, 0, 0.5); }
  .fit__list li > span, .fit__list li p { transition: transform 0.5s var(--ease-back); }
  .fit__list li:hover > span { transform: scale(1.25) rotate(-10deg); }
  .fit__list li:hover p { transform: translateX(5px); }

  .vs:hover { box-shadow: 0 28px 50px -28px rgba(17, 26, 14, 0.45); }
  .vs--exp:hover { transform: translateY(-6px) rotate(-0.8deg); }
  .vs--real:hover { transform: translateY(-6px) rotate(0.8deg); }
  .vs__tag { transition: letter-spacing 0.4s var(--ease-soft); }

  .press__group li { transition: transform 0.5s var(--ease-back), opacity 0.35s; }
  .press__group li:hover { transform: translateY(-4px) scale(1.06); }
  .press__group .fade:hover { opacity: 0.7; }
  .ticker__group li { transition: color 0.3s; }
  .ticker__group li:hover { color: #dfcfa2; }

  .seal:hover > div { animation: wiggle 0.8s var(--ease-io); }
  @keyframes wiggle { 25% { transform: rotate(-6deg) scale(1.06); } 60% { transform: rotate(14deg) scale(1.06); } 100% { transform: rotate(6.31deg); } }

  .bio__quill { transition: transform 0.6s var(--ease-back); }
  .bio:hover .bio__quill { transform: rotate(-18deg) translateY(-3px); }
  .badge__coin, .badge__check { transition: transform 0.7s var(--ease-back), scale 1.1s var(--ease-back) var(--d, 0ms), opacity 0.9s var(--ease-soft) var(--d, 0ms), clip-path 1.3s var(--ease-soft) var(--d, 0ms); }
  .badge:hover .badge__coin { transform: scale(1.05); }
  .badge:hover .badge__check { transform: scale(1.08) rotate(-4deg); }

  .faq__item { transition: border-color 0.3s var(--ease-soft), background-color 0.35s var(--ease-soft), transform 0.5s var(--ease-soft), opacity 0.9s var(--ease-soft) var(--d, 0ms), translate 1.1s var(--ease-soft) var(--d, 0ms); }
  .faq__item:hover { background-color: #1c3f2d; transform: translateX(6px); }
  .faq__item:hover .faq__chev { transform: translateY(2px); }
  .faq__item.is-open:hover .faq__chev { transform: rotate(180deg) translateY(2px); }
  .final { transition: opacity 0.9s var(--ease-soft) var(--d, 0ms), translate 1.1s var(--ease-soft) var(--d, 0ms), border-color 0.5s, box-shadow 0.6s var(--ease-soft); }
  .final:hover { border-color: rgba(208, 192, 151, 0.3); box-shadow: 0 40px 90px -50px rgba(223, 207, 162, 0.25); }
}

@media (prefers-reduced-motion: reduce) {
  .cta__pill::after, .cta-dark__pill::after { display: none; }
}
