/* ============================================================
   landing.css — Página pública (marketing) servida em oblivian.net
   antes do login. Conteúdo estático p/ SEO/AdSense. Tema da marca.
   ============================================================ */
.lp { --lp-bg:#0e0f15; --lp-surface:#16171f; --lp-surface2:#1d1f29; --lp-accent:#7c5cff; --lp-accent2:#b59cff; --lp-text:#e8eaf0; --lp-muted:#9aa0ad; --lp-border:#262834;
  background: var(--lp-bg); color: var(--lp-text);
  font-family: "Clash Display", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  /* body tem overflow:hidden (scroll do app vive em .view) → a landing rola por conta própria */
  height: 100vh; overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch;
}
.lp * { box-sizing: border-box; }
.lp a { color: inherit; text-decoration: none; }
.lp__wrap { max-width: 1080px; margin: 0 auto; padding: 0 20px; }

/* nav */
.lp-nav { position: sticky; top: 0; z-index: 10; backdrop-filter: blur(10px);
  background: rgba(14,15,21,0.8); border-bottom: 1px solid var(--lp-border); }
.lp-nav__in { display: flex; align-items: center; gap: 12px; height: 64px; }
.lp-brand { display: flex; align-items: center; gap: 10px; font-weight: 700; font-size: 20px; }
.lp-brand img { width: 34px; height: 34px; border-radius: 9px; }
.lp-nav__sp { flex: 1; }
.lp-nav__links { display: flex; gap: 22px; color: var(--lp-muted); font-size: 15px; }
.lp-nav__links a:hover { color: var(--lp-text); }
@media (max-width: 720px){ .lp-nav__links { display: none; } }
.lp-lang { background: var(--lp-surface2); color: var(--lp-text); border: 1px solid var(--lp-border); border-radius: 999px; padding: 8px 12px; font-size: 14px; font-weight: 600; cursor: pointer; outline: none; }
.lp-lang:hover { border-color: var(--lp-accent); }

.lp-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 11px 20px; border-radius: 999px; font-weight: 700; font-size: 15px; cursor: pointer; border: none;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease; }
.lp-btn--primary { background: linear-gradient(135deg, var(--lp-accent), #9a7bff); color: #fff; box-shadow: 0 8px 24px rgba(124,92,255,0.35); }
.lp-btn--primary:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(124,92,255,0.45); }
.lp-btn--ghost { background: var(--lp-surface2); color: var(--lp-text); border: 1px solid var(--lp-border); }
.lp-btn--ghost:hover { background: #24262f; }
.lp-btn--lg { padding: 15px 30px; font-size: 17px; }

/* hero */
.lp-hero { position: relative; text-align: center; padding: 80px 0 70px; }
.lp-hero::before { content:""; position: absolute; inset: -10% 0 auto 0; height: 480px; z-index: 0;
  background: radial-gradient(60% 60% at 50% 0%, rgba(124,92,255,0.28), transparent 70%); pointer-events: none; }
.lp-hero__in { position: relative; z-index: 1; }
.lp-hero__mark { width: 120px; height: 120px; margin: 0 auto 18px;
  background: url(../assets/icon.svg) center/contain no-repeat; }

/* gato animado do hero — orelhas + bigodes separados (de cat.html) */
.lp-hero__cat { width: 176px; height: 176px; margin: 0 auto 12px; position: relative; }
.lp-hero__cat svg { position: relative; z-index: 1; width: 100%; height: 100%; overflow: visible; }
.lp-hero__cat .ink { fill: #0e0f15; }
.lp-hero__cat .paper { fill: #ffffff; }
.lp-hero__cat::before { content: ""; position: absolute; inset: 6%; border-radius: 50%; z-index: 0;
  background: radial-gradient(circle, rgba(124,92,255,.30), transparent 65%); filter: blur(20px);
  animation: cat-aura 4s ease-in-out infinite; }
@keyframes cat-aura { 0%,100% { transform: scale(.92); opacity: .5 } 50% { transform: scale(1.06); opacity: .9 } }
.lp-hero__cat #cat { transform-box: fill-box; transform-origin: center bottom; animation: cat-breathe 5s ease-in-out infinite; }
@keyframes cat-breathe { 0%,100% { transform: translateY(0) scale(1) rotate(0deg) } 25% { transform: translateY(-8px) scale(1.006) rotate(.9deg) } 50% { transform: translateY(-13px) scale(1.013) rotate(0deg) } 75% { transform: translateY(-8px) scale(1.006) rotate(-.9deg) } }
/* orelhas: afundam no corpo e voltam (twitch) — nunca revela o corte */
.lp-hero__cat #earL, .lp-hero__cat #earR { transform-box: fill-box; }
.lp-hero__cat #earL { animation: cat-earL 6s ease-in-out infinite; }
.lp-hero__cat #earR { animation: cat-earR 6.7s ease-in-out infinite; }
@keyframes cat-earL { 0%,80%,100% { transform: translateY(0) } 86% { transform: translateY(26px) } 92% { transform: translateY(7px) } }
@keyframes cat-earR { 0%,76%,100% { transform: translateY(0) } 82% { transform: translateY(26px) } 88% { transform: translateY(7px) } }
/* bigodes: cada lado balança no seu tempo */
.lp-hero__cat #whiskL, .lp-hero__cat #whiskR { transform-box: fill-box; }
.lp-hero__cat #whiskL { transform-origin: 100% 50%; animation: cat-whiskL 4.5s ease-in-out infinite; }
.lp-hero__cat #whiskR { transform-origin: 0% 50%; animation: cat-whiskR 5.3s ease-in-out infinite; }
@keyframes cat-whiskL { 0%,100% { transform: rotate(0) } 30% { transform: rotate(-4deg) } 65% { transform: rotate(2.5deg) } }
@keyframes cat-whiskR { 0%,100% { transform: rotate(0) } 30% { transform: rotate(4deg) } 65% { transform: rotate(-2.5deg) } }
.lp-hero__cat #pupils { transform-box: fill-box; transform-origin: center; animation: cat-look 7s ease-in-out infinite; }
@keyframes cat-look { 0%,18% { transform: translateX(0) } 30%,46% { transform: translateX(46px) } 58%,74% { transform: translateX(-46px) } 86%,100% { transform: translateX(0) } }
.lp-hero__cat .lid { transform-box: fill-box; transform-origin: center top; transform: scaleY(0); }
.lp-hero__cat #lidL, .lp-hero__cat #lidR { animation: cat-blink 5s ease-in-out infinite; }
@keyframes cat-blink { 0%,84% { transform: scaleY(0) } 90%,94% { transform: scaleY(1) } 100% { transform: scaleY(0) } }
@media (prefers-reduced-motion: reduce) {
  .lp-hero__cat::before, .lp-hero__cat #cat, .lp-hero__cat #pupils, .lp-hero__cat #lidL, .lp-hero__cat #lidR,
  .lp-hero__cat #earL, .lp-hero__cat #earR, .lp-hero__cat #whiskL, .lp-hero__cat #whiskR { animation: none !important; }
  .lp-hero__cat .lid { transform: scaleY(0); }
}

/* gato animado na MARCA (nav + footer) — mesmas animações, via classes */
.lp-brand__cat { width: 34px; height: 34px; flex: none; display: inline-block; line-height: 0; transition: transform .2s ease; }
.lp-brand__cat svg { width: 100%; height: 100%; overflow: visible; display: block; }
.lp-brand:hover .lp-brand__cat { transform: scale(1.06) rotate(-3deg); }
.lp-brand__cat .oc-body { transform-box: fill-box; transform-origin: center bottom; animation: cat-breathe 4s ease-in-out infinite; }
.lp-brand__cat .oc-pupils { transform-box: fill-box; transform-origin: center; animation: cat-look 7s ease-in-out infinite; }
.lp-brand__cat .oc-lid { transform-box: fill-box; transform-origin: center top; transform: scaleY(0); animation: cat-blink 5s ease-in-out infinite; }
.lp-footer .lp-brand__cat { width: 30px; height: 30px; }
@media (prefers-reduced-motion: reduce) {
  .lp-brand__cat .oc-body, .lp-brand__cat .oc-pupils, .lp-brand__cat .oc-lid { animation: none !important; }
  .lp-brand__cat .oc-lid { transform: scaleY(0); }
}
.lp-hero h1 { font-size: clamp(34px, 6vw, 60px); line-height: 1.05; letter-spacing: -0.02em; margin: 0 0 18px; }
.lp-hero h1 span { background: linear-gradient(120deg, var(--lp-accent), var(--lp-accent2)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.lp-hero p { font-size: clamp(16px, 2.4vw, 20px); color: var(--lp-muted); max-width: 640px; margin: 0 auto 32px; line-height: 1.55; }
.lp-hero__cta { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.lp-hero__note { margin-top: 16px; color: var(--lp-muted); font-size: 13px; }

/* sections */
.lp-sec { padding: 64px 0; }
.lp-sec--alt { background: var(--lp-surface); border-top: 1px solid var(--lp-border); border-bottom: 1px solid var(--lp-border); }
.lp-sec__h { text-align: center; font-size: clamp(26px, 4vw, 38px); letter-spacing: -0.02em; margin: 0 0 12px; }
.lp-sec__sub { text-align: center; color: var(--lp-muted); max-width: 600px; margin: 0 auto 44px; font-size: 17px; line-height: 1.5; }

/* features grid */
.lp-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
@media (max-width: 860px){ .lp-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px){ .lp-grid { grid-template-columns: 1fr; } }
.lp-card { background: var(--lp-surface2); border: 1px solid var(--lp-border); border-radius: 18px; padding: 26px; transition: transform .2s ease, border-color .2s ease; }
.lp-card:hover { transform: translateY(-4px); border-color: var(--lp-accent); }
.lp-card__ico { width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center; font-size: 26px; margin-bottom: 16px;
  background: linear-gradient(150deg, rgba(124,92,255,0.25), rgba(124,92,255,0.08)); border: 1px solid var(--lp-border); }
.lp-card h3 { margin: 0 0 8px; font-size: 20px; }
.lp-card p { margin: 0; color: var(--lp-muted); line-height: 1.55; font-size: 15px; }

/* steps */
.lp-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; counter-reset: step; }
@media (max-width: 720px){ .lp-steps { grid-template-columns: 1fr; } }
.lp-step { position: relative; padding: 26px 26px 26px 70px; background: var(--lp-surface2); border: 1px solid var(--lp-border); border-radius: 18px; }
.lp-step::before { counter-increment: step; content: counter(step); position: absolute; left: 22px; top: 24px;
  width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; font-weight: 800;
  background: linear-gradient(135deg, var(--lp-accent), #9a7bff); color: #fff; }
.lp-step h3 { margin: 0 0 6px; font-size: 18px; }
.lp-step p { margin: 0; color: var(--lp-muted); font-size: 15px; line-height: 1.5; }

/* faq */
.lp-faq { max-width: 760px; margin: 0 auto; display: flex; flex-direction: column; gap: 12px; }
.lp-faq details { background: var(--lp-surface2); border: 1px solid var(--lp-border); border-radius: 14px; padding: 4px 20px; position: relative; }
.lp-faq summary { cursor: pointer; padding: 16px 0; padding-right: 36px; font-weight: 600; font-size: 17px; list-style: none; display: flex; justify-content: space-between; align-items: center; position: relative; }
.lp-faq summary::-webkit-details-marker { display: none; }
/* habilita transição de altura "auto" (navegadores modernos: Edge/Chrome) */
@supports (interpolate-size: allow-keywords) { :root { interpolate-size: allow-keywords; } }

/* marcador +/− que gira com leve overshoot (vertical vira − ao abrir) */
.lp-faq summary::before, .lp-faq summary::after { content: ""; position: absolute; right: 4px; top: 50%; width: 15px; height: 2.5px; border-radius: 2px; background: var(--lp-accent);
  transition: transform .42s cubic-bezier(.34,1.56,.64,1), background .25s ease; }
.lp-faq summary::after { transform: translateY(-50%); }
.lp-faq summary::before { transform: translateY(-50%) rotate(90deg); }
.lp-faq details[open] summary::before { transform: translateY(-50%) rotate(180deg); }
.lp-faq details[open] summary::after { transform: translateY(-50%) rotate(180deg); }
.lp-faq summary:hover { color: var(--lp-accent); }
.lp-faq summary:hover::before, .lp-faq summary:hover::after { background: #c2348b; }

/* card sobe levemente no hover */
.lp-faq details { transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.lp-faq details:hover { transform: translateY(-2px); }

/* ALTURA anima de verdade — abre e fecha suave + fade do conteúdo */
.lp-faq details::details-content { height: 0; overflow: hidden; opacity: 0;
  transition: height .42s cubic-bezier(.4,0,.2,1), opacity .32s ease, content-visibility .42s allow-discrete; }
.lp-faq details[open]::details-content { height: auto; opacity: 1; }

@media (prefers-reduced-motion: reduce) {
  .lp-faq summary::before, .lp-faq summary::after, .lp-faq details, .lp-faq details::details-content { transition: none; }
}
.lp-faq p { margin: 0 0 16px; color: var(--lp-muted); line-height: 1.6; font-size: 15px; }

/* cta band */
.lp-cta { text-align: center; padding: 70px 0; }
.lp-cta h2 { font-size: clamp(21px, 3vw, 32px); margin: 0 0 12px; letter-spacing: -0.02em; }
.lp-cta p { color: var(--lp-muted); margin: 0 0 26px; font-size: clamp(14px, 1.8vw, 16px); }

/* footer */
.lp-footer { border-top: 1px solid var(--lp-border); padding: 40px 0; color: var(--lp-muted); font-size: 14px; }
.lp-footer__in { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.lp-footer__links { display: flex; gap: 20px; flex-wrap: wrap; }
.lp-footer__links a:hover { color: var(--lp-text); }
.lp-footer__sp { flex: 1; }
@media (max-width: 560px){ .lp-footer__sp { display: none; } .lp-footer__in { justify-content: center; text-align: center; } }

/* ============================================================
   Hero estilo Kyodo — claro, lúdico, headline preta, CTA preto,
   logo central colorido + colagem de stickers (emoji) ao redor.
   ============================================================ */
.lp-hero--light { background: #fbfbfd; color: #16161a; overflow: hidden; padding: 96px 0 84px; }
.lp-hero--light::before { display: none; }              /* remove o glow roxo escuro */
.lp-hero--light .lp-hero__in { position: relative; z-index: 2; }
.lp-hero--light h1 { color: #0e0f15; font-size: clamp(40px, 7vw, 72px); line-height: 1.05; letter-spacing: -0.02em; }
.lp-hero--light h1 span { background: none; -webkit-text-fill-color: currentColor; color: #0e0f15; }  /* tudo preto bold (estilo Kyodo) */
.lp-hero--light p { color: #5b5d66; }
.lp-hero--light .lp-hero__note { color: #8a8d96; }
.lp-hero--light .lp-btn--primary { background: #111317; color: #fff; box-shadow: 0 10px 26px rgba(0,0,0,0.18); }
.lp-hero--light .lp-btn--primary:hover { background: #000; box-shadow: 0 14px 32px rgba(0,0,0,0.26); }
.lp-hero--light .lp-btn--ghost { background: #fff; color: #16161a; border: 1px solid #e3e4e8; }
.lp-hero--light .lp-btn--ghost:hover { background: #f1f1f4; }

/* ícones flutuantes (chips de linha) emoldurando o hero — leves, planos, on-brand.
   Substituem os antigos emojis 3D coloridos. Cor por chip via paleta dos cards. */
.lp-stickers { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.lp-st { position: absolute; width: 56px; height: 56px; border-radius: 17px; display: grid; place-items: center;
  background: #fff; box-shadow: 0 10px 26px rgba(20,20,40,0.10), inset 0 0 0 1px rgba(20,20,40,0.04);
  color: var(--c, #6b46e8); opacity: 0;
  transform: rotate(var(--r,0deg)) translateY(14px) scale(.6);
  animation: lp-st-in .7s cubic-bezier(.34,1.56,.64,1) var(--in,0s) forwards, lp-float var(--fd,5s) ease-in-out var(--fdl,0s) infinite;
  will-change: transform; }
.lp-st svg { width: 27px; height: 27px; stroke: currentColor; stroke-width: 1.9; fill: none; stroke-linecap: round; stroke-linejoin: round; }
/* entrada (pop) + flutuação contínua. A flutuação assume após o pop via animation-composition. */
@keyframes lp-st-in { to { opacity: .96; transform: rotate(var(--r,0deg)) translateY(0) scale(1); } }
@keyframes lp-float { 0%,100% { transform: rotate(var(--r,0deg)) translateY(0); } 50% { transform: rotate(var(--r,0deg)) translateY(-12px); } }
.lp-st { animation-composition: replace, add; }
.lp-st.s1  { top: 9%;  left: 5%;  --c:#6b46e8; --r:-10deg; --fd:5.4s; --fdl:.2s; --in:.05s; }
.lp-st.s2  { top: 13%; right: 6%; --c:#2f6bd6; --r: 9deg;  --fd:6.2s; --fdl:.5s; --in:.12s; }
.lp-st.s3  { top: 44%; left: 3%;  --c:#c2348b; --r: 7deg;  --fd:5s;   --fdl:.8s; --in:.2s;  }
.lp-st.s4  { top: 42%; right: 3%; --c:#0e9488; --r:-8deg;  --fd:5.8s; --fdl:.3s; --in:.16s; }
.lp-st.s5  { bottom: 11%; left: 7%; --c:#c77a14; --r:-6deg; --fd:6.5s; --fdl:.6s; --in:.28s; }
.lp-st.s6  { bottom: 9%; right: 8%; --c:#c2348b; --r:11deg; --fd:5.2s; --fdl:1s;  --in:.24s; }
.lp-st.s7  { bottom: 6%; left: 38%; --c:#c77a14; --r:-9deg; --fd:6s;   --fdl:.4s; --in:.36s; width:48px; height:48px; }
.lp-st.s8  { top: 6%;  left: 40%; --c:#1f9d57; --r: 8deg;  --fd:4.8s; --fdl:.9s; --in:.32s; width:48px; height:48px; }
.lp-st.s9  { bottom: 17%; right: 26%; --c:#2f6bd6; --r:-13deg; --fd:6.4s; --fdl:.5s; --in:.4s; width:48px; height:48px; }
.lp-st.s10 { top: 25%; left: 19%; --c:#0e9488; --r: 6deg; --fd:5.6s; --fdl:1.1s; --in:.44s; width:46px; height:46px; }
.lp-st.s11 { top: 23%; right: 19%; --c:#1f9d57; --r:-6deg; --fd:5.1s; --fdl:.7s; --in:.48s; width:46px; height:46px; }
.lp-st.s12 { bottom: 27%; left: 28%; --c:#c2348b; --r:10deg; --fd:6.1s; --fdl:.2s; --in:.52s; width:46px; height:46px; }
@media (max-width: 860px){ .lp-st.s7,.lp-st.s9,.lp-st.s10,.lp-st.s11,.lp-st.s12 { display: none; } }
@media (max-width: 560px){
  .lp-st { width: 44px; height: 44px; border-radius: 14px; }
  .lp-st svg { width: 22px; height: 22px; }
  .lp-st.s1 { top: 4%; left: 3%; } .lp-st.s2 { top: 5%; right: 3%; }
  .lp-st.s3 { top: 38%; left: 1%; } .lp-st.s4 { top: 38%; right: 1%; }
  .lp-st.s5 { bottom: 4%; left: 4%; } .lp-st.s6 { bottom: 4%; right: 4%; }
  .lp-st.s8 { display: none; }
}
@media (prefers-reduced-motion: reduce){
  .lp-st { animation: none; opacity: .96; transform: rotate(var(--r,0deg)); }
}

/* nav clara (combina com o hero Kyodo) */
.lp-nav { background: rgba(255,255,255,0.92); border-bottom: 1px solid #ececf0; }
.lp-nav .lp-brand { color: #16161a; }
.lp-nav .lp-brand img { filter: none; border-radius: 8px; }   /* ícone (gato badge) colorido */
.lp-nav__links a { color: #5b5d66; }
.lp-nav__links a:hover { color: #111; }
.lp-nav .lp-btn--primary { background: #111317; color: #fff; box-shadow: none; }
.lp-nav .lp-btn--primary:hover { background: #000; transform: none; box-shadow: none; }
.lp-lang { background: #f1f1f4; color: #16161a; border-color: #e3e4e8; }
.lp-lang:hover { border-color: #111; }

/* ============================================================
   LANDING CLARA (estilo Kyodo) — clareia todas as seções,
   bento de cards coloridos, CTA band colorida, footer claro.
   ============================================================ */
.lp { background: #fbfbfd; color: #16161a; }
.lp-sec { padding: 72px 0; }
.lp-sec--alt { background: #f4f4f7; border-top-color: #ececf0; border-bottom-color: #ececf0; }
.lp-sec__h { color: #0e0f15; letter-spacing: -0.03em; }
.lp-sec__sub { color: #5b5d66; }

/* bento de cards coloridos (recursos) */
.lp-card { border: none; color: #16161a; box-shadow: 0 8px 22px rgba(20,20,40,0.06); border-radius: 22px; }
.lp-card:hover { border: none; transform: translateY(-5px); box-shadow: 0 18px 40px rgba(20,20,40,0.13); }
.lp-card p { color: #5b5d66; }
.lp-card__ico { background: #fff; border: none; box-shadow: 0 4px 12px rgba(0,0,0,0.07); color: #6b46e8;
  transition: transform .25s cubic-bezier(.34,1.56,.64,1); }
.lp-card__ico img { width: 36px; height: 36px; display: block; object-fit: contain; }
.lp-card__ico svg { width: 28px; height: 28px; display: block; stroke: currentColor; stroke-width: 1.9; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.lp-card:hover .lp-card__ico { transform: translateY(-2px) rotate(-4deg) scale(1.06); }
.lp-card:nth-child(1) { background: #fdeef6; } .lp-card:nth-child(1) h3, .lp-card:nth-child(1) .lp-card__ico { color: #c2348b; }
.lp-card:nth-child(2) { background: #eaf1ff; } .lp-card:nth-child(2) h3, .lp-card:nth-child(2) .lp-card__ico { color: #2f6bd6; }
.lp-card:nth-child(3) { background: #e9f9ef; } .lp-card:nth-child(3) h3, .lp-card:nth-child(3) .lp-card__ico { color: #1f9d57; }
.lp-card:nth-child(4) { background: #f1edff; } .lp-card:nth-child(4) h3, .lp-card:nth-child(4) .lp-card__ico { color: #6b46e8; }
.lp-card:nth-child(5) { background: #fff5e6; } .lp-card:nth-child(5) h3, .lp-card:nth-child(5) .lp-card__ico { color: #c77a14; }
.lp-card:nth-child(6) { background: #e8f8f6; } .lp-card:nth-child(6) h3, .lp-card:nth-child(6) .lp-card__ico { color: #0e9488; }

/* passos (cards claros) */
.lp-step { background: #fff; border: 1px solid #ececf0; box-shadow: 0 6px 18px rgba(20,20,40,0.05); }
.lp-step h3 { color: #0e0f15; } .lp-step p { color: #5b5d66; }
/* passos animados: número com glow + anel pulsante (onda 1→2→3) + hover */
.lp-step::before { box-shadow: 0 6px 16px rgba(124,92,255,.35); transition: transform .25s cubic-bezier(.34,1.56,.64,1); z-index: 1; }
.lp-step::after { content: ""; position: absolute; left: 22px; top: 24px; width: 36px; height: 36px; border-radius: 50%; border: 2px solid var(--lp-accent); pointer-events: none; animation: step-ping 2.8s cubic-bezier(0,0,.2,1) infinite; }
@keyframes step-ping { 0% { transform: scale(1); opacity: .55 } 70%,100% { transform: scale(2); opacity: 0 } }
.lp-steps .lp-step:nth-child(2)::after { animation-delay: .6s; }
.lp-steps .lp-step:nth-child(3)::after { animation-delay: 1.2s; }
.lp-step:hover { transform: translateY(-4px); border-color: var(--lp-accent); box-shadow: 0 16px 36px rgba(124,92,255,.18); }
.lp-step:hover::before { transform: scale(1.14) rotate(-6deg); }
@media (prefers-reduced-motion: reduce) { .lp-step::after { animation: none; opacity: 0; } }

/* faq (claro) */
.lp-faq details { background: #fff; border: 1px solid #ececf0; }
.lp-faq summary { color: #16161a; }
.lp-faq p { color: #5b5d66; }

/* CTA band colorida (estilo Kyodo "Convinced?") */
.lp-cta { width: min(1100px, 100% - 48px); margin: 56px auto;
  border-radius: 32px; padding: 72px 24px; position: relative; overflow: hidden;
  clip-path: inset(0 round 32px);   /* recorta a lente de vidro nos cantos (backdrop-filter ignora overflow) */
  background: linear-gradient(120deg, #7c5cff, #9a4be0, #c2348b, #e0568f, #7c5cff);
  background-size: 300% 300%; animation: lp-cta-flow 12s ease infinite; }
@keyframes lp-cta-flow { 0% { background-position: 0% 50% } 50% { background-position: 100% 50% } 100% { background-position: 0% 50% } }
@media (prefers-reduced-motion: reduce) { .lp-cta { animation: none; } }
.lp-cta::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .5;
  background-image: radial-gradient(rgba(255,255,255,.16) 1.6px, transparent 1.7px);
  background-size: 26px 26px; mask-image: radial-gradient(120% 90% at 50% 0%, #000 35%, transparent 75%); }
.lp-cta > .lp__wrap { position: relative; z-index: 1; }
.lp-cta h2 { color: #fff; } .lp-cta p { color: rgba(255,255,255,0.88); }
.lp-cta .lp-btn--primary { background: #111317; color: #fff; box-shadow: 0 10px 26px rgba(0,0,0,0.25); }
.lp-cta .lp-btn--primary:hover { background: #000; }
@media (max-width: 560px) {
  .lp-cta { width: min(1100px, 100% - 28px); margin: 36px auto; padding: 48px 20px; border-radius: 26px; clip-path: inset(0 round 26px); }
}

/* footer (claro) */
.lp-footer { background: #f4f4f7; border-top-color: #ececf0; color: #8a8d96; }
.lp-footer .lp-brand { color: #16161a; }
.lp-footer .lp-brand img { filter: none; border-radius: 7px; }
.lp-footer__links a { color: #5b5d66; }
.lp-footer__links a:hover { color: #111; }
/* footer em colunas (estilo Kyodo) */
.lp-footer { padding: 56px 0 40px; }
.lp-footer__grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr; gap: 40px; align-items: start; }
.lp-footer__brand .lp-brand { font-size: 20px; }
.lp-footer__tm { margin-top: 12px; color: #8a8d96; font-size: 14px; max-width: 290px; }
.lp-footer__col h4 { font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: #16161a; margin-bottom: 12px; font-weight: 700; }
.lp-footer__col a { display: block; color: #5b5d66; font-size: 14px; padding: 5px 0; text-decoration: none; transition: color .15s ease; }
.lp-footer__col a:hover { color: #111; }
.lp-footer__bottom { margin-top: 40px; padding-top: 22px; border-top: 1px solid #ececf0; color: #8a8d96; font-size: 13px; }
@media (max-width: 720px){ .lp-footer__grid { grid-template-columns: 1fr 1fr; gap: 28px; } .lp-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 460px){ .lp-footer__grid { grid-template-columns: 1fr; } }

/* seletor de idioma flutuante no mobile (a nav__links some) */
@media (max-width: 720px){ .lp-nav__links { display: none; } }

/* ===== lente de vidro que segue o mouse (CTA) ===== */
.lp-lens {
  position: absolute; top: 0; left: 0; border-radius: 50%; z-index: 0; pointer-events: none;
  opacity: 0; transform: translateY(-24px) scale(.9);
  transition: opacity .3s ease, transform .4s cubic-bezier(.22,1,.36,1);
  will-change: left, top, transform;
  -webkit-backdrop-filter: blur(2px) saturate(1.2); backdrop-filter: blur(2px) saturate(1.2);
  background: linear-gradient(140deg, rgba(255,255,255,.14), rgba(255,255,255,0) 55%);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.35), inset 5px 7px 14px rgba(255,255,255,.22),
              inset -5px -7px 16px rgba(0,0,0,.16), 0 10px 30px rgba(0,0,0,.18);
}
.lp-lens.is-on { opacity: 1; transform: translateY(0) scale(1); }
.lp-lens::after { content: ""; position: absolute; inset: 0; border-radius: 50%; pointer-events: none;
  background: linear-gradient(135deg, rgba(255,255,255,.6), transparent 42%); mix-blend-mode: screen; opacity: .8; }
.lp-cta > .lp__wrap { position: relative; z-index: 1; }   /* texto acima da lente */
@media (prefers-reduced-motion: reduce) { .lp-lens { display: none; } }
/* touch/mobile: sem mouse → esconde a lente (não fica parada cobrindo o texto) */
@media (hover: none), (pointer: coarse) { .lp-lens { display: none !important; } }

/* ===== efeito vidro (landing-glass.js aplica a refração no backdrop) ===== */
.lp-glass { box-shadow: inset 0 1px 0 rgba(255,255,255,.5), 0 1px 0 rgba(0,0,0,.02); }
.lp-nav.lp-glass { background: color-mix(in srgb, var(--bg) 70%, transparent); }
.lp-lang__menu.lp-glass { background: color-mix(in srgb, #ffffff 58%, transparent); -webkit-backdrop-filter: blur(11px); backdrop-filter: blur(11px); box-shadow: inset 0 1px 0 rgba(255,255,255,.6), 0 18px 44px rgba(20,20,40,0.18); }

/* dropdown de idioma custom (substitui o <select> nativo feio) */
.lp-lang { position: relative; background: none; border: none; padding: 0; }
.lp-lang__btn { display: inline-flex; align-items: center; gap: 6px; background: #f1f1f4; color: #16161a; border: 1px solid #e3e4e8; border-radius: 999px; padding: 8px 12px; font-size: 14px; font-weight: 700; line-height: 1; cursor: pointer; }
.lp-lang__btn svg { transition: transform .18s ease; }
.lp-lang__btn:hover, .lp-lang.is-open .lp-lang__btn { border-color: #111; }
.lp-lang.is-open .lp-lang__btn svg { transform: rotate(180deg); }
.lp-lang__menu { position: absolute; top: calc(100% + 8px); right: 0; min-width: 170px; background: #fff; border: 1px solid #ececf0; border-radius: 14px; box-shadow: 0 18px 44px rgba(20,20,40,0.18); padding: 6px; z-index: 60; }
.lp-lang__menu[hidden] { display: none; }
.lp-lang__menu button { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; text-align: left; background: none; border: none; color: #16161a; font: inherit; font-weight: 600; padding: 10px 12px; border-radius: 10px; cursor: pointer; }
.lp-lang__menu button:hover { background: #f4f4f7; }
.lp-lang__menu button.is-active { background: #f1edff; color: #6b46e8; }
.lp-lang__menu button.is-active::after { content: ""; width: 16px; height: 16px; flex: none; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%236b46e8' d='M9.55 18.4a1.45 1.45 0 0 1-1.07-.47l-3.6-3.9a1.45 1.45 0 1 1 2.13-1.96l2.49 2.7 7.52-8.36a1.45 1.45 0 1 1 2.15 1.94l-8.6 9.55a1.45 1.45 0 0 1-1.06.5Z'/%3E%3C/svg%3E") center/contain no-repeat; }

/* ============================================================
   ANIMAÇÕES (toque profissional) — scroll-reveal, entrada do
   hero, nav, micro-interações. Respeita prefers-reduced-motion.
   ============================================================ */
/* scroll-reveal (JS adiciona .is-in ao entrar na viewport) */
.lp-reveal { opacity: 0; transform: translateY(22px); transition: opacity .6s ease, transform .6s cubic-bezier(.22,.61,.36,1); transition-delay: var(--d, 0ms); }
.lp-reveal.is-in { opacity: 1; transform: none; }

/* entrada do hero no carregamento */
@keyframes lp-rise { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes lp-pop { 0% { opacity: 0; transform: scale(.55) rotate(-10deg); } 100% { opacity: 1; transform: none; } }
@keyframes lp-navdown { from { opacity: 0; transform: translateY(-12px); } to { opacity: 1; transform: none; } }
.lp-hero--light .lp-hero__cat { animation: lp-pop .8s cubic-bezier(.34,1.56,.64,1) both; }
.lp-hero--light .lp-hero__in h1 { animation: lp-rise .7s ease both .12s; }
.lp-hero--light .lp-hero__in p { animation: lp-rise .7s ease both .24s; }
.lp-hero--light .lp-hero__cta { animation: lp-rise .7s ease both .36s; }
.lp-hero--light .lp-hero__note { animation: lp-rise .7s ease both .48s; }
.lp-nav { animation: lp-navdown .5s ease both; }

/* micro-interações */
.lp-btn { transition: transform .18s ease, box-shadow .2s ease, background .2s ease; }
.lp-btn:active { transform: translateY(1px) scale(.98); }
.lp-card, .lp-step { transition: transform .25s ease, box-shadow .25s ease; }
.lp-faq details { transition: border-color .2s ease, box-shadow .2s ease; }
.lp-faq details[open] { box-shadow: 0 8px 24px rgba(20,20,40,0.08); }
.lp-hero__mark, .lp-brand img { transition: transform .25s ease; }
.lp-brand:hover img { transform: scale(1.06) rotate(-3deg); }

/* respeita "reduzir movimento" */
@media (prefers-reduced-motion: reduce) {
  .lp-reveal, .lp-reveal.is-in, .lp-st, .lp-nav,
  .lp-hero--light .lp-hero__cat, .lp-hero--light .lp-hero__in h1, .lp-hero--light .lp-hero__in p,
  .lp-hero--light .lp-hero__cta, .lp-hero--light .lp-hero__note {
    animation: none !important; transition: none !important; opacity: 1 !important; transform: none !important;
  }
}

/* ============================================================
   BOTÃO DE DOWNLOAD — chamativo, moderno, microinterações.
   Gradiente da marca + glow pulsante + brilho que varre + ícone
   que "baixa" no hover. Usado no hero e na faixa CTA.
   ============================================================ */
.lp-download {
  position: relative; overflow: hidden; isolation: isolate;
  gap: 11px; padding: 16px 32px; font-size: 17px; font-weight: 700; color: #fff;
  background: linear-gradient(125deg, #7c5cff 0%, #9a4be0 45%, #c2348b 100%);
  background-size: 180% 180%; background-position: 0% 50%;
  box-shadow: 0 12px 30px rgba(124,92,255,.38), inset 0 1px 0 rgba(255,255,255,.28);
  transition: transform .22s cubic-bezier(.34,1.56,.64,1), box-shadow .25s ease, background-position .6s ease;
  animation: lp-dl-pulse 2.8s ease-in-out infinite;
}
/* override do tema escuro do hero/cta (que pinta lp-btn--primary de preto) */
.lp-hero--light .lp-download, .lp-cta .lp-download { color: #fff; }
.lp-download .lp-dl-ico { width: 21px; height: 21px; flex: none; overflow: visible; }
.lp-download .lp-dl-arrow { transition: transform .35s cubic-bezier(.34,1.56,.64,1); }
/* brilho diagonal que varre o botão de tempos em tempos */
.lp-download::before {
  content: ""; position: absolute; top: 0; left: -60%; width: 45%; height: 100%; z-index: -1;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,.5), transparent);
  transform: skewX(-18deg); animation: lp-dl-shine 3.6s ease-in-out infinite;
}
@keyframes lp-dl-pulse {
  0%,100% { box-shadow: 0 12px 30px rgba(124,92,255,.38), inset 0 1px 0 rgba(255,255,255,.28); }
  50%     { box-shadow: 0 16px 40px rgba(194,52,139,.5),  inset 0 1px 0 rgba(255,255,255,.34); }
}
@keyframes lp-dl-shine {
  0%, 55% { left: -60%; } 80%, 100% { left: 130%; }
}
@keyframes lp-dl-bounce {
  0%,100% { transform: translateY(0); } 30% { transform: translateY(4px); } 60% { transform: translateY(-1px); }
}
.lp-download:hover {
  transform: translateY(-3px) scale(1.03); background-position: 100% 50%;
  box-shadow: 0 20px 46px rgba(124,92,255,.5);
}
.lp-download:hover .lp-dl-arrow { animation: lp-dl-bounce .7s ease infinite; }
.lp-download:active { transform: translateY(0) scale(.98); }
.lp-download:focus-visible { outline: 3px solid rgba(124,92,255,.55); outline-offset: 3px; }

/* variante na faixa CTA roxa (fundo já é gradiente) → botão branco com texto roxo,
   continua com glow e a mesma microinteração de ícone */
.lp-cta .lp-download--light {
  background: #fff; color: #6b46e8;
  box-shadow: 0 14px 34px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.9);
  animation: lp-dl-pulse-light 2.8s ease-in-out infinite;
}
.lp-cta .lp-download--light:hover { background: #fff; color: #5b2fd6; box-shadow: 0 20px 48px rgba(0,0,0,.3); }
.lp-cta .lp-download--light::before { background: linear-gradient(100deg, transparent, rgba(124,92,255,.22), transparent); }
@keyframes lp-dl-pulse-light {
  0%,100% { box-shadow: 0 14px 34px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.9); }
  50%     { box-shadow: 0 18px 44px rgba(0,0,0,.3),  inset 0 1px 0 rgba(255,255,255,.9); }
}
.lp-cta__note { margin-top: 16px; color: rgba(255,255,255,.82); font-size: 13px; font-weight: 600; letter-spacing: .01em; }

@media (max-width: 560px){
  .lp-download { width: 100%; max-width: 360px; padding: 17px 28px; font-size: 18px; }
  .lp-hero__cta { width: 100%; }
  .lp-hero--light .lp-hero__cta .lp-btn { width: 100%; max-width: 360px; }
}
@media (prefers-reduced-motion: reduce){
  .lp-download, .lp-cta .lp-download--light { animation: none; }
  .lp-download::before { display: none; }
  .lp-download:hover .lp-dl-arrow { animation: none; }
}
