/* ============================================================
   Your Truth — site institucional
   Marca: "Carimbo Refinado" — jornalismo de dados premium e jovem.
   Papel quente, tinta, um vermelho de carimbo como assinatura rara.
   Regra de ouro: --red NUNCA colore dado de enquete (barras/estados
   usam dataA..D). Vermelho = CTA, carimbo, selo "VOCÊ", editorial.
   ============================================================ */

/* ---------- Tokens ---------- */
:root {
  --paper:#FAF9F4;  --paper2:#FFFFFF;  --field:#F1EFE8;  --ink:#1B1916;
  --ink70:rgba(27,25,22,.72); --ink55:rgba(27,25,22,.55);
  --ink25:rgba(27,25,22,.28); --ink12:rgba(27,25,22,.13); --ink08:rgba(27,25,22,.06);
  --line:rgba(27,25,22,.13);  --red:#D0342C; --red-soft:rgba(208,52,44,.10);
  --dataA:#1E3FAE; --dataB:#E9A20C; --dataC:#1F7A3A; --dataD:#C2387B; --amber:#E25A0A;

  --r-card:18px; --r-chip:12px; --r-pill:999px;
  --shadow:0 10px 24px rgba(27,25,22,.07);
  --shadow-lift:0 16px 34px rgba(27,25,22,.12);
  --container:1120px;
  --nav-h:64px;

  --sans:"Archivo", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

  --ease-io:cubic-bezier(.2,.8,.2,1);
  --ease-soft:cubic-bezier(.22,1,.36,1);
}

/* ---------- Reset & base ---------- */
*,*::before,*::after { box-sizing:border-box; }
* { margin:0; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
html { scroll-padding-top:calc(var(--nav-h) + 14px); }
body {
  font-family:var(--sans);
  font-size:clamp(16px, .5vw + 15px, 18px);
  line-height:1.6;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
button { font:inherit; color:inherit; cursor:pointer; background:none; border:none; }
:focus-visible { outline:2px solid var(--red); outline-offset:3px; border-radius:4px; }
::selection { background:var(--red); color:var(--paper); }

/* ---------- Typography ---------- */
.kicker {
  font-family:var(--mono);
  font-weight:700;
  font-size:.72rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ink55);
  display:inline-flex;
  align-items:center;
  gap:.55em;
}
.kicker::before {
  content:"";
  width:16px; height:2px;
  background:var(--red);
  display:inline-block;
}
.kicker--plain::before { display:none; }

.headline {
  font-family:var(--sans);
  font-weight:800;
  line-height:1.05;
  letter-spacing:-.022em;
  color:var(--ink);
  text-wrap:balance;
}
.h-hero  { font-size:clamp(2.4rem, 6.2vw, 4.5rem); }
.h-1     { font-size:clamp(1.9rem, 3.6vw, 3rem); }
.h-2     { font-size:clamp(1.5rem, 2.4vw, 2.05rem); }
.dot-red { color:var(--red); }

.lede {
  font-size:clamp(1.05rem, 1.4vw, 1.24rem);
  line-height:1.55;
  color:var(--ink70);
  max-width:44ch;
  text-wrap:pretty;
}

.num { font-family:var(--mono); font-variant-numeric:tabular-nums; font-weight:700; }
.agate {
  font-family:var(--mono);
  font-variant-numeric:tabular-nums;
  font-size:.75rem;
  line-height:1.5;
  letter-spacing:.01em;
  color:var(--ink55);
}

/* ---------- Layout ---------- */
.container { width:100%; max-width:var(--container); margin-inline:auto; padding-inline:clamp(20px, 5vw, 40px); }
main { display:block; }
section { position:relative; }
.section { padding-block:clamp(64px, 9vw, 116px); }
.section__head { max-width:40ch; margin-bottom:clamp(28px, 4vw, 44px); }
.section__head .kicker { margin-bottom:16px; }
.section__head .lede { margin-top:16px; }

.rule { height:1px; background:var(--line); border:0; }

/* Masthead rule — regra dupla de jornal (2px + vão + 1px) */
.masthead-rule { border:0; height:5px; position:relative; }
.masthead-rule::before,
.masthead-rule::after { content:""; position:absolute; left:0; right:0; background:var(--ink); }
.masthead-rule::before { top:0; height:2px; }
.masthead-rule::after  { bottom:0; height:1px; }

/* ---------- Buttons ---------- */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  font-weight:700; font-size:.98rem; letter-spacing:-.01em;
  padding:.82em 1.4em; border-radius:var(--r-pill);
  border:1px solid transparent;
  transition:transform .18s var(--ease-soft), box-shadow .18s var(--ease-soft), background-color .18s, border-color .18s, color .18s;
  will-change:transform;
}
.btn:hover { transform:translateY(-1px); }
.btn:active { transform:translateY(0); }

.btn--red { background:var(--red); color:#fff; box-shadow:0 8px 18px rgba(208,52,44,.26); }
.btn--red:hover { background:#b92c25; box-shadow:0 12px 24px rgba(208,52,44,.32); }

.btn--outline { background:transparent; color:var(--ink); border-color:var(--ink25); }
.btn--outline:hover { border-color:var(--ink); background:var(--ink08); }

.btn--ghost { padding-inline:.2em; color:var(--ink70); }
.btn--ghost:hover { color:var(--ink); }

.btn--sm { padding:.62em 1.05em; font-size:.9rem; }

/* ---------- Logo ---------- */
.brand { display:inline-flex; align-items:center; gap:.6em; }
.brand__mark { width:30px; height:30px; flex:none; overflow:visible; }
.brand__mark .sq { fill:none; stroke:var(--ink); }
.brand__mark .x  { stroke:var(--red); stroke-linecap:butt; }
.brand__word { font-family:var(--sans); font-weight:800; font-size:1.16rem; letter-spacing:-.02em; color:var(--ink); }

/* ---------- Nav ---------- */
.nav {
  position:fixed; inset:0 0 auto 0; z-index:50;
  height:var(--nav-h);
  display:flex; align-items:center;
  transition:background-color .3s var(--ease-soft), border-color .3s, box-shadow .3s;
  border-bottom:1px solid transparent;
}
.nav__inner { display:flex; align-items:center; justify-content:space-between; gap:20px; width:100%; }
.nav.is-scrolled {
  background:color-mix(in srgb, var(--paper) 82%, transparent);
  -webkit-backdrop-filter:saturate(1.6) blur(12px);
  backdrop-filter:saturate(1.6) blur(12px);
  border-bottom-color:var(--line);
}
.nav__links { display:flex; align-items:center; gap:clamp(18px, 2.4vw, 34px); }
.nav__link {
  font-weight:500; font-size:.95rem; color:var(--ink70); position:relative; padding-block:6px;
  transition:color .18s;
}
.nav__link::after {
  content:""; position:absolute; left:0; right:100%; bottom:0; height:1.5px; background:var(--ink);
  transition:right .22s var(--ease-io);
}
.nav__link:hover { color:var(--ink); }
.nav__link:hover::after { right:0; }
.nav__cta { margin-left:6px; }

.nav__burger { display:none; width:42px; height:42px; border-radius:var(--r-chip); align-items:center; justify-content:center; }
.nav__burger span, .nav__burger span::before, .nav__burger span::after {
  content:""; display:block; width:20px; height:2px; background:var(--ink); border-radius:2px; transition:transform .22s var(--ease-soft), opacity .18s;
}
.nav__burger span { position:relative; }
.nav__burger span::before { position:absolute; top:-6px; left:0; }
.nav__burger span::after  { position:absolute; top:6px;  left:0; }
.nav.is-open .nav__burger span { background:transparent; }
.nav.is-open .nav__burger span::before { transform:translateY(6px) rotate(45deg); }
.nav.is-open .nav__burger span::after  { transform:translateY(-6px) rotate(-45deg); }

/* ---------- Primeira dobra (hero + ticker = 100svh) ---------- */
/* nav (fixed) + hero + ticker preenchem exatamente a primeira tela;
   o mapa começa logo abaixo da dobra. Nunca corta: usa min-height. */
.fold {
  min-height:100vh;      /* fallback */
  min-height:100svh;
  display:flex;
  flex-direction:column;
}
.fold > .hero {
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
  justify-content:center;   /* conteúdo do hero centralizado na vertical */
}
.fold > .ticker { flex:0 0 auto; }   /* ticker é o último item, encostado no rodapé da dobra */
/* Telas baixas: deixa fluir naturalmente, sem forçar a dobra nem cortar nada */
@media (max-height:680px) {
  .fold { min-height:0; }
  .fold > .hero { justify-content:flex-start; }
}

/* ---------- Hero ---------- */
.hero { padding-top:calc(var(--nav-h) + clamp(28px, 6vw, 64px)); padding-bottom:clamp(48px, 7vw, 88px); }
.hero__grid {
  display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(32px, 5vw, 68px);
  align-items:center;
}
.hero__kicker { margin-bottom:22px; }
.hero__title { margin-bottom:22px; }
.hero__lede { margin-bottom:30px; font-size:clamp(1.1rem,1.5vw,1.3rem); }
.hero__ctas { display:flex; flex-wrap:wrap; gap:14px; }
.hero__aside { position:relative; }

/* Live "seal" glyph next to kicker (draws in) */
.livedot { width:9px; height:9px; border-radius:50%; background:var(--red); display:inline-block; box-shadow:0 0 0 0 var(--red); }

/* ---------- Poll card ---------- */
.poll {
  background:var(--paper2); border:1px solid var(--line); border-radius:var(--r-card);
  box-shadow:var(--shadow); padding:clamp(20px,2.4vw,28px);
  position:relative; max-width:440px; margin-inline:auto;
}
.poll__kicker { color:var(--ink55); margin-bottom:14px; }
.poll__q { font-family:var(--sans); font-weight:700; font-size:clamp(1.25rem,2vw,1.5rem); line-height:1.15; letter-spacing:-.015em; margin-bottom:22px; }

.bars { display:grid; gap:14px; }
.bar { display:grid; gap:8px; }
.bar__top { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.bar__label { font-weight:600; font-size:.98rem; }
.bar__pct { font-family:var(--mono); font-variant-numeric:tabular-nums; font-weight:700; font-size:1.02rem; }
.bar__track { height:12px; border-radius:var(--r-pill); background:var(--ink08); overflow:hidden; }
.bar__fill { height:100%; width:0; border-radius:var(--r-pill); transition:width .9s var(--ease-io); }
.bar__fill--a { background:var(--dataA); }
.bar__fill--b { background:var(--dataB); }
.bar__fill--c { background:var(--dataC); }
.bar__fill--d { background:var(--dataD); }

.poll__agate { margin-top:20px; padding-top:14px; border-top:1px solid var(--line); }

/* Carimbo "VOTADO" */
.stamp {
  position:absolute; top:16px; right:14px;
  font-family:var(--mono); font-weight:700; font-size:.82rem; letter-spacing:.08em;
  color:var(--red); border:2px solid var(--red); border-radius:8px;
  padding:.34em .7em; transform:rotate(-3deg) scale(1); transform-origin:center;
  background:color-mix(in srgb, var(--paper2) 88%, transparent);
  opacity:0; pointer-events:none;
}
.stamp .x { font-weight:700; }
.poll.is-stamped .stamp { animation:stampIn .7s var(--ease-soft) both; }
.poll.is-shaken { animation:cardShake .5s var(--ease-soft); }

/* ---------- Carrossel do hero ---------- */
.carousel { position:relative; }
/* Todos os slides ocupam a MESMA célula do grid: a altura do card =
   a do maior slide, então trocar de slide não empurra o layout. */
.carousel__viewport { display:grid; }
.carousel__slide {
  grid-area:1 / 1;
  opacity:0; transform:translateY(10px);
  transition:opacity .55s var(--ease-soft), transform .55s var(--ease-soft);
  pointer-events:none;
}
.carousel__slide.is-active { opacity:1; transform:none; pointer-events:auto; z-index:2; }
/* Linha "recorte" (dado, nao fonte) - Archivo 600 13px */
.poll__recorte { font-family:var(--sans); font-weight:600; font-size:13px; line-height:1.4; color:var(--ink70); margin-top:14px; }
/* Pontinhos indicadores */
.carousel__dots { display:flex; justify-content:center; gap:9px; margin-top:16px; }
.carousel__dot {
  width:8px; height:8px; padding:0; border-radius:50%;
  background:var(--ink25); border:none; cursor:pointer;
  transition:background-color .25s var(--ease-soft), transform .25s var(--ease-soft);
}
.carousel__dot:hover { background:var(--ink55); }
.carousel__dot.is-active { background:var(--red); transform:scale(1.18); }

/* ---------- Ticker ---------- */
.ticker { background:var(--field); border-top:1px solid var(--line); border-bottom:1px solid var(--line); overflow:hidden; }
.ticker__mask { display:flex; width:max-content; will-change:transform; animation:tickerScroll 42s linear infinite; }
.ticker:hover .ticker__mask { animation-play-state:paused; }
.ticker__group { display:flex; flex:none; }
.ticker__item {
  font-family:var(--mono); font-variant-numeric:tabular-nums; font-weight:500; font-size:.86rem;
  color:var(--ink70); padding:14px 0; white-space:nowrap; display:inline-flex; align-items:center;
}
.ticker__item .num { font-weight:700; color:var(--ink); }
.ticker__sep { color:var(--red); padding-inline:1.4em; font-weight:700; }

/* ---------- Map ---------- */
.map__grid { display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(28px,4vw,56px); align-items:center; }
.map__figure { position:relative; }
.br-map { width:100%; height:auto; overflow:visible; display:block; }
.br-map .uf {
  fill:var(--ink08);
  stroke:var(--paper); stroke-width:.75px;
  transition:fill .55s ease;
}
.br-map .uf.paint-a { fill:var(--dataA); }
.br-map .uf.paint-b { fill:var(--dataB); }

.legend { display:grid; gap:14px; margin-top:8px; }
.legend__item { display:flex; align-items:center; gap:12px; font-size:.96rem; color:var(--ink70); }
.legend__swatch { width:18px; height:18px; border-radius:5px; flex:none; }
.legend__swatch--a { background:var(--dataA); }
.legend__swatch--b { background:var(--dataB); }
.legend__swatch--i { background:var(--ink08); border:1px solid var(--line); }
.legend__agate { margin-top:8px; }

/* ---------- Manifesto ---------- */
.manifesto { background:var(--field); }
.manifesto__quote {
  font-family:var(--sans); font-weight:800; letter-spacing:-.02em; line-height:1.14;
  font-size:clamp(1.7rem, 3.4vw, 2.9rem); max-width:20ch; text-wrap:balance;
}
.manifesto__quote em { font-style:normal; color:var(--red); }
.manifesto__grid { display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(32px,5vw,64px); align-items:center; }
.principles { display:grid; gap:16px; }
.principle {
  background:var(--paper2); border:1px solid var(--line); border-radius:var(--r-card);
  box-shadow:var(--shadow); padding:20px 22px;
  transition:transform .18s var(--ease-soft), box-shadow .18s var(--ease-soft);
}
.principle:hover { transform:translateY(-2px); box-shadow:var(--shadow-lift); }
.principle__stamp {
  display:inline-block; font-family:var(--mono); font-weight:700; font-size:.72rem; letter-spacing:.06em;
  color:var(--red); border:1.5px solid var(--red); border-radius:var(--r-pill);
  padding:.32em .8em; margin-bottom:12px;
}
.principle:nth-child(odd) .principle__stamp  { transform:rotate(-2deg); }
.principle:nth-child(even) .principle__stamp { transform:rotate(1.5deg); }
.principle__body { color:var(--ink70); font-size:.98rem; }

.nfloor { margin-top:32px; display:flex; align-items:baseline; gap:16px; flex-wrap:wrap; }
.nfloor__num { font-family:var(--mono); font-weight:700; font-variant-numeric:tabular-nums; font-size:clamp(2.6rem,6vw,4.2rem); line-height:1; color:var(--ink); letter-spacing:-.02em; }
.nfloor__cap { font-size:.98rem; color:var(--ink55); max-width:22ch; }

/* ---------- Como funciona ---------- */
.steps { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.step {
  background:var(--paper2); border:1px solid var(--line); border-radius:var(--r-card);
  box-shadow:var(--shadow); padding:24px 22px 26px;
  transition:transform .18s var(--ease-soft), box-shadow .18s var(--ease-soft);
}
.step:hover { transform:translateY(-2px); box-shadow:var(--shadow-lift); }
.step__ico { width:44px; height:44px; margin-bottom:18px; }
.step__ico svg { width:44px; height:44px; stroke:var(--ink); stroke-width:1.8; fill:none; stroke-linecap:round; stroke-linejoin:round; }
.step__ico .accent { stroke:var(--red); }
.step__ico .accent-f { fill:var(--red); stroke:none; }
.step__n { font-family:var(--mono); font-weight:700; font-size:.72rem; color:var(--ink25); letter-spacing:.1em; margin-bottom:6px; }
.step__t { font-weight:700; font-size:1.06rem; line-height:1.2; letter-spacing:-.01em; margin-bottom:8px; }
.step__d { font-size:.94rem; color:var(--ink70); }

/* ---------- Recortes ---------- */
.cuts { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.cut {
  background:var(--paper2); border:1px solid var(--line); border-radius:var(--r-card);
  box-shadow:var(--shadow); padding:22px;
  transition:transform .18s var(--ease-soft), box-shadow .18s var(--ease-soft);
}
.cut:hover { transform:translateY(-2px); box-shadow:var(--shadow-lift); }
.cut__title { font-family:var(--mono); font-weight:700; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink55); margin-bottom:18px; }
.minibars { display:grid; gap:12px; }
.minibar__top { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:6px; }
.minibar__label { font-size:.9rem; color:var(--ink70); }
.minibar__pct { font-family:var(--mono); font-weight:700; font-variant-numeric:tabular-nums; font-size:.9rem; }
.minibar__track { height:9px; border-radius:var(--r-pill); background:var(--ink08); overflow:hidden; }
.minibar__fill { height:100%; width:0; border-radius:var(--r-pill); transition:width .9s var(--ease-io); }
.minibar__fill.fill-a { background:var(--dataA); }
.minibar__fill.fill-b { background:var(--dataB); }
.minibar__fill.fill-c { background:var(--dataC); }
.minibar__fill.fill-d { background:var(--dataD); }

/* ---------- Baixar ---------- */
.download { }
.download__card {
  background:var(--paper2); border:1px solid var(--line); border-radius:calc(var(--r-card) + 6px);
  box-shadow:var(--shadow); padding:clamp(34px, 5vw, 64px); text-align:center;
  max-width:720px; margin-inline:auto; position:relative; overflow:hidden;
}
.download__mark { width:56px; height:56px; margin:0 auto 22px; }
.download__title { margin-bottom:14px; }
.download__sub { color:var(--ink70); max-width:46ch; margin:0 auto 28px; }
.download__actions { display:flex; flex-direction:column; align-items:center; gap:16px; }
.download__row { display:flex; flex-wrap:wrap; gap:14px; justify-content:center; }

/* Badge App Store desativado (não é o badge oficial da Apple) */
.appstore-badge {
  display:inline-flex; align-items:center; gap:.65em;
  background:#1B1916; color:var(--paper); opacity:.55;
  border-radius:12px; padding:.7em 1.15em; cursor:not-allowed;
  font-size:.9rem; user-select:none;
}
.appstore-badge__ico { width:22px; height:22px; fill:var(--paper); }
.appstore-badge small { display:block; font-size:.66rem; letter-spacing:.06em; text-transform:uppercase; opacity:.8; font-family:var(--mono); }
.appstore-badge b { font-weight:700; font-size:.98rem; line-height:1.1; }

.mailto-line { font-size:.94rem; color:var(--ink55); }
.mailto-line a { color:var(--red); font-weight:600; border-bottom:1px solid var(--red-soft); }
.mailto-line a:hover { border-bottom-color:var(--red); }

/* ---------- Footer ---------- */
.footer { padding-top:clamp(40px,6vw,72px); padding-bottom:40px; }
.footer__rule { margin-bottom:36px; }
.footer__grid { display:grid; grid-template-columns:1.4fr repeat(3, 1fr); gap:32px 24px; }
.footer__brand .brand__word { font-size:1.05rem; }
.footer__tag { margin-top:14px; color:var(--ink55); font-size:.92rem; max-width:32ch; }
.footer__col h4 { font-family:var(--mono); font-weight:700; font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink55); margin-bottom:14px; }
.footer__col ul { list-style:none; padding:0; display:grid; gap:10px; }
.footer__col a { color:var(--ink70); font-size:.95rem; }
.footer__col a:hover { color:var(--ink); }
.footer__bottom { margin-top:40px; padding-top:20px; border-top:1px solid var(--line); }
.footer__legal { font-family:var(--mono); font-variant-numeric:tabular-nums; font-size:.72rem; color:var(--ink55); }

/* ---------- Sub-page shell (suporte / privacidade) ---------- */
.page-hero { padding-top:calc(var(--nav-h) + clamp(40px,6vw,72px)); padding-bottom:clamp(20px,3vw,28px); }
.page-hero .masthead-rule { margin-bottom:22px; }
.prose { max-width:66ch; }
.prose p { margin-top:14px; color:var(--ink); font-size:1rem; line-height:1.7; }
.prose p:first-child { margin-top:0; }
.doc-updated { margin-top:8px; }

.doc-section { margin-top:34px; max-width:70ch; }
.doc-section .kicker { margin-bottom:12px; }
.doc-section p { color:var(--ink); margin-top:12px; font-size:1rem; line-height:1.7; }
.doc-section p b, .doc-section strong { font-weight:700; }

/* Support cards */
.support-card {
  background:var(--paper2); border:1px solid var(--line); border-radius:var(--r-card);
  box-shadow:var(--shadow); padding:clamp(22px,3vw,32px); max-width:70ch;
}
.support-card .kicker { margin-bottom:12px; }
.support-card h2 { font-weight:800; font-size:1.35rem; letter-spacing:-.015em; margin-bottom:10px; }
.support-card p { color:var(--ink70); }
.support-card .mail-big { display:inline-block; margin-top:14px; font-family:var(--mono); font-weight:700; font-size:1.05rem; color:var(--red); }
.support-card .mail-big:hover { text-decoration:underline; text-underline-offset:3px; }

/* FAQ — details/summary estilizado */
.faq { max-width:70ch; display:grid; gap:0; margin-top:8px; }
.faq details { border-bottom:1px solid var(--line); }
.faq details:first-child { border-top:1px solid var(--line); }
.faq summary {
  list-style:none; cursor:pointer; padding:22px 44px 22px 4px; position:relative;
  font-weight:700; font-size:1.08rem; letter-spacing:-.01em; color:var(--ink);
  display:flex; align-items:center;
}
.faq summary::-webkit-details-marker { display:none; }
.faq summary .mk {
  position:absolute; right:6px; top:50%; width:20px; height:20px; margin-top:-10px;
  color:var(--red); font-family:var(--mono); font-weight:700; font-size:1.1rem;
  display:grid; place-items:center; transition:transform .3s var(--ease-soft);
}
.faq details[open] summary .mk { transform:rotate(45deg); }
.faq__panel { overflow:hidden; transition:height .32s var(--ease-soft); }
.faq__answer { padding:0 44px 24px 4px; color:var(--ink70); }
.faq__answer a { color:var(--red); font-weight:600; border-bottom:1px solid var(--red-soft); }
.faq__answer a:hover { border-bottom-color:var(--red); }

/* ---------- Reveal / motion utilities ---------- */
.reveal { opacity:0; transform:translateY(24px); }
.reveal.is-in {
  opacity:1; transform:none;
  transition:opacity .5s var(--ease-soft), transform .5s var(--ease-soft);
}
.reveal[data-delay="1"].is-in { transition-delay:.08s; }
.reveal[data-delay="2"].is-in { transition-delay:.16s; }
.reveal[data-delay="3"].is-in { transition-delay:.24s; }
.reveal[data-delay="4"].is-in { transition-delay:.32s; }

/* Draw-in X (hero signature) */
.brand__mark .x.draw { stroke-dasharray:170; stroke-dashoffset:170; }
.brand__mark.is-drawn .x.draw { stroke-dashoffset:0; transition:stroke-dashoffset .6s var(--ease-io); }
.brand__mark.is-drawn .x.draw.x2 { transition-delay:.12s; }

/* ---------- Keyframes ---------- */
@keyframes stampIn {
  0%   { opacity:0; transform:rotate(-3deg) scale(1.7); }
  60%  { opacity:1; transform:rotate(-3deg) scale(.94); }
  80%  { transform:rotate(-3deg) scale(1.04); }
  100% { opacity:1; transform:rotate(-3deg) scale(1); }
}
@keyframes cardShake {
  0%,100% { transform:translateY(0); }
  30%     { transform:translateY(2px); }
  65%     { transform:translateY(-1px); }
}
@keyframes tickerScroll {
  from { transform:translateX(0); }
  to   { transform:translateX(-50%); }
}
@keyframes livePulse {
  0%   { box-shadow:0 0 0 0 rgba(208,52,44,.5); }
  70%  { box-shadow:0 0 0 7px rgba(208,52,44,0); }
  100% { box-shadow:0 0 0 0 rgba(208,52,44,0); }
}
.livedot { animation:livePulse 2.4s ease-out infinite; }

/* ---------- Responsive ---------- */
@media (max-width:960px) {
  .hero__grid { grid-template-columns:1fr; gap:38px; }
  .hero__aside { order:2; }
  .map__grid { grid-template-columns:1fr; gap:36px; }
  .manifesto__grid { grid-template-columns:1fr; gap:36px; }
  .steps { grid-template-columns:repeat(2,1fr); }
  .footer__grid { grid-template-columns:1fr 1fr; }
  .footer__brand { grid-column:1 / -1; }
}
@media (max-width:720px) {
  .nav__links {
    position:absolute; top:calc(var(--nav-h)); left:0; right:0;
    flex-direction:column; align-items:stretch; gap:0;
    background:var(--paper); border-bottom:1px solid var(--line);
    padding:8px clamp(20px,5vw,40px) 20px;
    box-shadow:var(--shadow);
    transform:translateY(-8px); opacity:0; pointer-events:none;
    transition:transform .24s var(--ease-soft), opacity .2s;
  }
  .nav.is-open .nav__links { transform:none; opacity:1; pointer-events:auto; }
  .nav__link { padding:14px 4px; border-bottom:1px solid var(--line); font-size:1.05rem; }
  .nav__link::after { display:none; }
  .nav__cta { margin:12px 0 0; align-self:flex-start; }
  .nav__burger { display:inline-flex; }
  .hero__aside .poll { max-width:none; }
}
@media (max-width:560px) {
  .cuts { grid-template-columns:1fr; }
  .steps { grid-template-columns:1fr; }
  .footer__grid { grid-template-columns:1fr; }
  .hero__ctas .btn, .download__row .btn { flex:1 1 auto; }
}

/* ---------- Reduced motion — mostrar estado final ---------- */
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after {
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .reveal { opacity:1; transform:none; }
  .ticker__mask { animation:none; }
  .stamp { opacity:1; }
  .livedot { animation:none; }
  .brand__mark .x.draw { stroke-dashoffset:0; }
}
