/* ===== base ===== */
/* Base do site — Dr. Alexandre de Tarso Machado (a partir do hero C · Contraste aprovado) */

:root {
  /* cor (amostrada do retrato: pijama #1C2947, pele, cinza do estúdio; bordô da marca dele) */
  --c-fundo: #0a0f19;          /* grafite-azul profundo */
  --c-noite: #111a2b;          /* noite */
  --c-marinho: #1c2947;        /* pijama cirúrgico (amostra) */
  --c-aco: #5e7391;            /* aço azulado */
  --c-prata: #c9d4e2;          /* prata do raio-X */
  --c-bordo-sombra: #3a1822;   /* bordô em sombra */
  --c-bordo: #a3192b;          /* bordô da marca */
  --c-bordo-vivo: #e0566a;     /* ponta do cateter */
  --c-texto: #eef2f7;
  --c-texto-2: #b4c0d0;
  --c-texto-3: #8c9bb0;

  /* tipo */
  --c-f-titulo: "Unbounded", "Arial Black", system-ui, sans-serif;
  --c-f-texto: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --c-t-titulo: clamp(3.3rem, min(7.3vw, 12svh), 8.4rem);
  --c-t-fala: clamp(1.12rem, 0.95rem + 0.55vw, 1.45rem);
  --c-t-texto: clamp(1rem, 0.94rem + 0.2vw, 1.0625rem);
  --c-t-mini: 0.875rem;

  /* espaço */
  --c-margem: clamp(1.25rem, 4.4vw, 5rem);
  --c-e-1: 0.5rem;
  --c-e-2: 1rem;
  --c-e-3: 1.5rem;
  --c-e-4: clamp(1.75rem, 3.6svh, 2.5rem);
  --c-nav-h: 4.75rem;

  /* retrato (desktop) */
  --c-rh: min(88svh, 64vw, 1000px);
  --c-rw: calc(var(--c-rh) * 0.7467);

  /* movimento */
  --c-ease: cubic-bezier(.2, .7, .1, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; background: var(--c-fundo); }
body {
  margin: 0;
  background: var(--c-fundo);
  color: var(--c-texto);
  font-family: var(--c-f-texto);
  font-size: var(--c-t-texto);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}
a { color: inherit; }
img { display: block; max-width: 100%; }
p, figure, blockquote { margin: 0; }

/* granulado fino, um só, fixo */
body::after {
  content: "";
  position: fixed; inset: 0;
  z-index: 50;
  pointer-events: none;
  opacity: .05;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='g'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .5  0 0 0 0 .5  0 0 0 0 .5  0 0 0 1.6 -.3'/></filter><rect width='100%' height='100%' filter='url(%23g)'/></svg>");
}

/* ---------- navegação ---------- */
.c-nav {
  position: absolute; top: 0; left: 0; right: 0;
  z-index: 20;
  height: var(--c-nav-h);
  display: flex; align-items: center; gap: 2rem;
  padding: 0 var(--c-margem);
}
.c-nav__marca { display: grid; text-decoration: none; line-height: 1.15; margin-right: auto; }
.c-nav__nome { font-family: var(--c-f-titulo); font-weight: 500; font-size: .95rem; letter-spacing: -.01em; }
.c-nav__sub { font-size: .8125rem; color: var(--c-texto-3); letter-spacing: .06em; text-transform: uppercase; margin-top: .2rem; }
.c-nav__links { display: flex; gap: 1.75rem; }
.c-nav__links a, .c-nav__agendar {
  text-decoration: none; font-size: .9375rem; color: var(--c-texto-2);
  padding: .75rem 0; transition: color .25s;
}
.c-nav__links a:hover, .c-nav__agendar:hover { color: var(--c-texto); }
.c-nav__agendar {
  padding: .6rem 1.1rem; border: 1px solid color-mix(in oklab, var(--c-prata) 30%, transparent);
  border-radius: 999px; color: var(--c-texto);
}
.c-nav__agendar:hover { border-color: color-mix(in oklab, var(--c-prata) 60%, transparent); }

/* ---------- hero ---------- */
.c-hero {
  position: relative;
  isolation: isolate;
  min-height: max(100svh, 640px);
  overflow: hidden;
  background: var(--c-fundo);
}

/* malha: manchas radiais grandes, cores vizinhas (grafite, noite, marinho do pijama, bordô em sombra, prata fria) */
.c-hero__malha, .c-hero__malha::before, .c-hero__malha::after {
  position: absolute; pointer-events: none;
}
.c-hero__malha {
  inset: 0; z-index: 0;
  background:
    radial-gradient(circle closest-side at 50% 50% in oklch, color-mix(in oklch, var(--c-marinho) 92%, var(--c-prata)) , color-mix(in oklch, var(--c-marinho) 45%, transparent) 50%, transparent) 108% 4% / 78vmax 78vmax no-repeat,
    radial-gradient(circle closest-side at 50% 50% in oklch, var(--c-noite), color-mix(in oklch, var(--c-noite) 50%, transparent) 45%, transparent) -8% -6% / 70vmax 70vmax no-repeat,
    var(--c-fundo);
}
.c-hero__malha::before {
  content: ""; inset: -20%;
  background:
    radial-gradient(circle closest-side at 50% 50% in oklch, color-mix(in oklch, var(--c-bordo-sombra) 95%, var(--c-bordo)), color-mix(in oklch, var(--c-bordo-sombra) 50%, transparent) 45%, transparent) 4% 96% / 62vmax 62vmax no-repeat,
    radial-gradient(circle closest-side at 50% 50% in oklch, color-mix(in oklch, var(--c-aco) 34%, transparent), color-mix(in oklch, var(--c-aco) 14%, transparent) 45%, transparent) 72% 30% / 54vmax 54vmax no-repeat;
  animation: c-deriva-a 34s ease-in-out infinite alternate;
}
.c-hero__malha::after {
  content: ""; inset: -20%;
  background:
    radial-gradient(circle closest-side at 50% 50% in oklch, color-mix(in oklch, var(--c-marinho) 70%, transparent), color-mix(in oklch, var(--c-marinho) 30%, transparent) 45%, transparent) 40% 70% / 66vmax 66vmax no-repeat,
    radial-gradient(circle closest-side at 50% 50% in oklch, color-mix(in oklch, #2a2140 70%, transparent), transparent) 30% 10% / 50vmax 50vmax no-repeat;
  animation: c-deriva-b 27s ease-in-out infinite alternate;
}
@keyframes c-deriva-a {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to   { transform: translate3d(4%, -3%, 0) scale(1.06); }
}
@keyframes c-deriva-b {
  from { transform: translate3d(0, 0, 0) rotate(0deg); }
  to   { transform: translate3d(-5%, 3%, 0) rotate(6deg); }
}

/* cena 3D */
.c-hero__cena { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.c-hero__cena canvas {
  position: absolute; inset: 0; width: 100%; height: 100%;
  opacity: 0; transition: opacity 1.4s ease;
}
.c-hero.cena-pronta .c-hero__cena canvas { opacity: 1; }
@media (min-width: 981px) {
  /* a árvore se dissolve antes da coluna de texto */
  .c-hero__cena {
    -webkit-mask-image: linear-gradient(to right, transparent 16%, rgb(0 0 0 / .35) 30%, #000 50%);
            mask-image: linear-gradient(to right, transparent 16%, rgb(0 0 0 / .35) 30%, #000 50%);
  }
}
.c-hero__poster { display: none; position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 62% 50%; }
.c-hero.sem-webgl .c-hero__poster { display: block; }
.c-hero.sem-webgl canvas, .c-hero.sem-webgl .c-leitura__ang { display: none; }

/* palco */
.c-hero__palco {
  position: relative; z-index: 3;
  min-height: inherit;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: center;
  padding: calc(var(--c-nav-h) + 1rem) var(--c-margem) clamp(2rem, 6svh, 4rem);
}

/* coluna de texto (desktop) */
.c-topo, .c-corpo { width: min(46vw, 40rem); position: relative; z-index: 3; }

.c-sobre {
  display: flex; flex-wrap: wrap; gap: .35rem 1.1rem; align-items: baseline;
  font-size: var(--c-t-mini); letter-spacing: .14em; text-transform: uppercase; font-weight: 500;
  color: var(--c-prata);
  margin-bottom: var(--c-e-3);
}
.c-sobre span:first-child::before {
  content: ""; display: inline-block; width: .5rem; height: .5rem; border-radius: 50%;
  background: var(--c-bordo-vivo); margin-right: .65rem; vertical-align: .08em;
  box-shadow: 0 0 0 4px color-mix(in oklab, var(--c-bordo-vivo) 22%, transparent), 0 0 18px var(--c-bordo-vivo);
}
.c-sobre__onde { color: var(--c-texto-3); }

.c-titulo {
  margin: 0;
  font-family: var(--c-f-titulo);
  font-weight: 700;
  font-size: var(--c-t-titulo);
  line-height: .98;
  letter-spacing: -.035em;
  color: var(--c-texto);
  text-wrap: balance;
}
.c-titulo__l { display: block; overflow: hidden; padding-bottom: .06em; margin-bottom: -.06em; }
.c-titulo__l > span { display: inline-block; }
.c-titulo__l:last-child > span {
  background: linear-gradient(100deg in oklch, var(--c-texto) 30%, color-mix(in oklch, var(--c-prata) 85%, #8fb0dd) 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}

.c-corpo { margin-top: var(--c-e-4); }

.c-fala { position: relative; padding-left: 1.25rem; border-left: 1px solid color-mix(in oklab, var(--c-bordo-vivo) 70%, transparent); }
.c-fala blockquote p {
  font-size: var(--c-t-fala); line-height: 1.38; font-weight: 400; font-style: italic;
  color: var(--c-texto); max-width: 30ch; text-wrap: pretty;
}
.c-fala figcaption {
  margin-top: .5rem; font-size: var(--c-t-mini); color: var(--c-texto-3); letter-spacing: .02em;
}
.c-fala figcaption::before { content: "— "; }

.c-apoio { margin-top: var(--c-e-3); max-width: 44ch; color: var(--c-texto-2); text-wrap: pretty; }
.c-areas {
  margin-top: var(--c-e-2); font-size: var(--c-t-mini); color: var(--c-texto-3); letter-spacing: .02em; max-width: 52ch;
}
.c-areas i, .c-prova i { font-style: normal; color: var(--c-bordo-vivo); padding: 0 .2em; }

.c-acoes { margin-top: var(--c-e-4); display: flex; flex-wrap: wrap; align-items: center; gap: .9rem 1.6rem; }
.c-botao {
  display: inline-flex; align-items: center; gap: .65rem;
  min-height: 3.25rem; padding: .85rem 1.5rem .85rem 1.25rem;
  border-radius: 999px;
  background: var(--c-bordo);
  color: #fff; text-decoration: none; font-weight: 600; font-size: 1rem; letter-spacing: .005em;
  box-shadow: 0 10px 30px -10px color-mix(in oklab, var(--c-bordo) 80%, transparent), inset 0 1px 0 rgb(255 255 255 / .14);
  transition: background .25s, transform .25s var(--c-ease), box-shadow .25s;
}
.c-botao:hover { background: color-mix(in oklch, var(--c-bordo) 86%, white); transform: translateY(-1px); }
.c-botao:focus-visible, .c-link:focus-visible, .c-nav a:focus-visible { outline: 2px solid var(--c-prata); outline-offset: 3px; }
.c-link {
  display: inline-flex; align-items: center; gap: .4rem; min-height: 3rem;
  color: var(--c-texto); text-decoration: none; font-weight: 500;
  border-bottom: 1px solid color-mix(in oklab, var(--c-prata) 35%, transparent);
  padding: .1rem 0; min-height: 0; line-height: 1.6;
  transition: border-color .25s;
}
.c-link:hover { border-color: var(--c-prata); }

.c-prova { margin-top: var(--c-e-4); display: grid; gap: .35rem; font-size: var(--c-t-mini); }
.c-prova__nota { display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem .55rem; color: var(--c-texto-2); }
.c-prova__nota strong { font-family: var(--c-f-titulo); font-weight: 600; font-size: 1.125rem; color: var(--c-texto); }
.c-estrelas { color: #e8c37a; letter-spacing: .1em; font-size: .8rem; }
.c-prova__registro { color: var(--c-texto-3); letter-spacing: .02em; }

/* retrato: grande, ancorado à direita (o braço direito sai pela borda da tela) */
.c-retrato {
  position: absolute; z-index: 2;
  bottom: 0;
  right: calc(var(--c-rw) * -0.035);
  width: var(--c-rw);
  height: var(--c-rh);
  pointer-events: none;
}
.c-retrato img {
  width: 100%; height: 100%; object-fit: contain; object-position: 50% 100%;
  -webkit-mask-image: linear-gradient(to bottom, #000 66%, rgb(0 0 0 / .55) 84%, transparent 99%);
          mask-image: linear-gradient(to bottom, #000 66%, rgb(0 0 0 / .55) 84%, transparent 99%);
}
/* halo frio atrás da cabeça e dos ombros, para separar o pijama do fundo */
.c-retrato::before {
  content: ""; position: absolute; z-index: -1;
  left: -12%; right: -12%; top: -6%; height: 80%;
  background: radial-gradient(closest-side at 50% 42% in oklch, color-mix(in oklch, var(--c-aco) 42%, transparent), color-mix(in oklch, var(--c-marinho) 25%, transparent) 55%, transparent);
}

/* leitura técnica no canto, como nas telas da sala de hemodinâmica */
.c-leitura {
  position: absolute; z-index: 4; right: var(--c-margem); bottom: 1.1rem;
  display: flex; gap: 1rem; align-items: baseline;
  font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--c-texto-3);
  font-variant-numeric: tabular-nums;
}
.c-leitura b { font-weight: 500; color: var(--c-prata); }

/* ---------- entrada (CSS puro: o título aparece antes da cena) ---------- */
@keyframes c-sobe { from { transform: translateY(105%); } to { transform: none; } }
@keyframes c-surge { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes c-retrato { from { opacity: 0; transform: translateY(18px) scale(1.015); } to { opacity: 1; transform: none; } }

.c-sobre { animation: c-surge .8s var(--c-ease) .05s both; }
.c-titulo__l > span { animation: c-sobe 1s var(--c-ease) both; }
.c-titulo__l:first-child > span { animation-delay: .12s; }
.c-titulo__l:last-child > span { animation-delay: .26s; }
.c-retrato { animation: c-retrato 1.3s var(--c-ease) .2s both; }
.c-fala { animation: c-surge .9s var(--c-ease) .62s both; }
.c-apoio, .c-areas { animation: c-surge .9s var(--c-ease) .78s both; }
.c-acoes { animation: c-surge .9s var(--c-ease) .92s both; }
.c-prova { animation: c-surge .9s var(--c-ease) 1.05s both; }
.c-nav { animation: c-surge .8s var(--c-ease) .3s both; }
.c-leitura { animation: c-surge 1s var(--c-ease) 1.6s both; }

/* ---------- notebook baixo ---------- */
@media (min-width: 981px) and (max-height: 920px) {
  :root { --c-e-4: 1.5rem; }
  .c-apoio { margin-top: 1.1rem; }
}
@media (min-width: 981px) and (max-height: 780px) {
  :root { --c-e-4: 1.4rem; --c-t-fala: 1.1rem; }
  .c-areas { display: none; }
}

/* ---------- celular e tablet ---------- */
@media (max-width: 980px) {
  :root {
    --c-nav-h: 4rem;
    --c-t-titulo: clamp(3.1rem, 16.5vw, 6rem);
    --c-mw: 112vw;               /* largura do retrato */
    --c-mh: calc(var(--c-mw) * 1.3393);
  }
  .c-nav__links { display: none; }
  .c-nav__nome { font-size: .875rem; }
  .c-nav__sub { font-size: .75rem; }
  .c-nav__agendar { padding: .55rem .95rem; font-size: .875rem; }

  .c-hero { min-height: 0; }
  .c-hero__palco {
    align-content: start;
    padding: calc(var(--c-nav-h) + .9rem) var(--c-margem) 2.75rem;
  }
  .c-topo, .c-corpo { width: auto; }
  .c-sobre { margin-bottom: .9rem; font-size: .8125rem; }

  .c-retrato {
    position: relative; right: auto; bottom: auto;
    width: var(--c-mw); height: var(--c-mh);
    margin: -.4rem 0 0 calc(50% - var(--c-mw) / 2);
    justify-self: start;
  }
  .c-retrato img {
    -webkit-mask-image: linear-gradient(to bottom, #000 58%, rgb(0 0 0 / .5) 72%, transparent 86%);
            mask-image: linear-gradient(to bottom, #000 58%, rgb(0 0 0 / .5) 72%, transparent 86%);
  }
  /* o texto sobe sobre o peito (abaixo do queixo: o rosto vai até 42% da altura do retrato) */
  .c-corpo { margin-top: calc(var(--c-mh) * -0.42); display: flex; flex-direction: column; }
  /* no celular a ação vem logo depois da fala dele, ainda na primeira tela */
  .c-fala { order: 1; }
  .c-acoes { order: 2; margin-top: 1.4rem; }
  .c-apoio { order: 3; margin-top: 1.6rem; }
  .c-areas { order: 4; }
  .c-prova { order: 5; margin-top: 1.4rem; }
  .c-sobre__onde { display: none; }
  .c-fala blockquote p { max-width: 26ch; }
  .c-leitura { display: none; }
  .c-hero__cena { bottom: auto; height: calc(var(--c-nav-h) + 12rem + var(--c-mh) * .7); }
}

@media (max-width: 980px) and (min-width: 600px) {
  :root { --c-mw: min(84vw, 640px); }
  .c-retrato { margin-left: auto; margin-right: auto; justify-self: center; }
  .c-corpo { max-width: 36rem; }
}

@media (max-width: 380px) {
  .c-nav__sub { display: none; }
  .c-botao { padding-inline: 1.1rem 1.25rem; }
}


/* =====================================================================
   SISTEMA DAS SEÇÕES (comum a todas as partes)
   ===================================================================== */
:root {
  /* superfície "chapa": o filme radiográfico visto contra a luz (claro, prata-azulado) */
  --s-chapa: #e7ecf2;
  --s-chapa-2: #d9e1ea;
  --s-chapa-3: #c7d2de;
  --s-tinta: #111c30;          /* texto sobre chapa */
  --s-tinta-2: #3c4a62;        /* apoio sobre chapa (AA) */
  --s-tinta-3: #56647b;        /* legenda sobre chapa (AA em 14px+) */
  --s-linha-clara: color-mix(in oklab, var(--s-tinta) 16%, transparent);
  --s-linha-escura: color-mix(in oklab, var(--c-prata) 16%, transparent);

  --s-larg: min(100% - 2 * var(--c-margem), 80rem);   /* largura útil */
  --s-estreita: min(100% - 2 * var(--c-margem), 46rem);
  --s-respiro: clamp(5rem, 11vw, 10rem);               /* topo/base de seção */
  --s-t-sec: clamp(2.3rem, 1.4rem + 3.6vw, 4.6rem);    /* título de seção (Unbounded) */
  --s-t-sub: clamp(1.35rem, 1.1rem + 1vw, 1.9rem);     /* subtítulo (Unbounded 500) */
  --s-t-lead: clamp(1.08rem, 1rem + .35vw, 1.28rem);   /* texto de abertura */
  --s-raio: 14px;
}

.s { position: relative; isolation: isolate; padding: var(--s-respiro) 0; scroll-margin-top: 1rem; }
.s-noite { background: var(--c-fundo); color: var(--c-texto); }
.s-noite-2 { background: var(--c-noite); color: var(--c-texto); }
.s-chapa { background: var(--s-chapa); color: var(--s-tinta); }
.s__dentro { width: var(--s-larg); margin-inline: auto; position: relative; z-index: 2; }

/* leitura técnica: rótulo de abertura de seção, como as telas da sala de hemodinâmica */
.s-leitura {
  display: flex; align-items: center; gap: .85rem; flex-wrap: wrap;
  font-size: var(--c-t-mini); letter-spacing: .14em; text-transform: uppercase; font-weight: 500;
  font-variant-numeric: tabular-nums;
  color: var(--c-prata);
  margin: 0 0 1.4rem;
}
.s-chapa .s-leitura { color: var(--s-tinta-2); }
.s-leitura__seq { color: var(--c-texto-3); }
.s-chapa .s-leitura__seq { color: var(--s-tinta-3); }
/* a ponta do cateter: ponto bordô com o fio-guia de 1px chegando */
.s-ponta { position: relative; display: inline-block; width: 2.6rem; height: .5rem; flex: none; }
.s-ponta::before { content: ""; position: absolute; left: 0; right: .5rem; top: 50%; height: 1px; background: linear-gradient(to right, transparent, color-mix(in oklab, var(--c-prata) 70%, transparent)); }
.s-chapa .s-ponta::before { background: linear-gradient(to right, transparent, color-mix(in oklab, var(--s-tinta) 55%, transparent)); }
.s-ponta::after { content: ""; position: absolute; right: 0; top: 0; width: .5rem; height: .5rem; border-radius: 50%; background: var(--c-bordo-vivo); box-shadow: 0 0 0 4px color-mix(in oklab, var(--c-bordo-vivo) 20%, transparent), 0 0 16px var(--c-bordo-vivo); }
.s-chapa .s-ponta::after { background: var(--c-bordo); box-shadow: 0 0 0 4px color-mix(in oklab, var(--c-bordo) 16%, transparent); }

.s-titulo { margin: 0; font-family: var(--c-f-titulo); font-weight: 700; font-size: var(--s-t-sec); line-height: 1.02; letter-spacing: -.035em; text-wrap: balance; }
.s-titulo em { font-style: normal; color: var(--c-bordo-vivo); }
.s-chapa .s-titulo em { color: var(--c-bordo); }
.s-sub { margin: 0; font-family: var(--c-f-titulo); font-weight: 500; font-size: var(--s-t-sub); line-height: 1.15; letter-spacing: -.02em; }
.s-lead { font-size: var(--s-t-lead); line-height: 1.55; color: var(--c-texto-2); max-width: 46ch; text-wrap: pretty; }
.s-chapa .s-lead { color: var(--s-tinta-2); }
.s-texto { color: var(--c-texto-2); max-width: 62ch; }
.s-chapa .s-texto { color: var(--s-tinta-2); }
.s-mini { font-size: var(--c-t-mini); color: var(--c-texto-3); }
.s-chapa .s-mini { color: var(--s-tinta-3); }

/* botões fora do hero */
.s-botao { /* mesmo botão do hero */
  display: inline-flex; align-items: center; gap: .65rem; min-height: 3.25rem; padding: .85rem 1.5rem .85rem 1.25rem;
  border-radius: 999px; background: var(--c-bordo); color: #fff; text-decoration: none; font-weight: 600; font-size: 1rem;
  box-shadow: 0 10px 30px -10px color-mix(in oklab, var(--c-bordo) 80%, transparent), inset 0 1px 0 rgb(255 255 255 / .14);
  transition: background .25s, transform .25s var(--c-ease);
}
.s-botao:hover { background: color-mix(in oklch, var(--c-bordo) 86%, white); transform: translateY(-1px); }
.s-botao svg { width: 20px; height: 20px; flex: none; }
.s-link { display: inline-flex; align-items: center; gap: .4rem; min-height: 3rem; color: inherit; text-decoration: none; font-weight: 500; border-bottom: 1px solid currentColor; border-bottom-color: color-mix(in oklab, currentColor 35%, transparent); padding: .1rem 0; transition: border-color .25s; }
.s-link:hover { border-bottom-color: currentColor; }
a:focus-visible, button:focus-visible, [tabindex]:focus-visible { outline: 2px solid var(--c-prata); outline-offset: 3px; border-radius: 4px; }
.s-chapa a:focus-visible, .s-chapa button:focus-visible { outline-color: var(--s-tinta); }

/* revelação na rolagem: só com JS (sem JS tudo aparece) */
.js [data-rev] { opacity: 0; transform: translateY(18px); transition: opacity .9s var(--c-ease), transform .9s var(--c-ease); transition-delay: var(--rev-atraso, 0s); }
.js [data-rev].visto { opacity: 1; transform: none; }

/* barra fixa de ação no celular */
.barra-acao { display: none; }
@media (max-width: 980px) {
  .barra-acao {
    position: fixed; z-index: 40; left: .75rem; right: .75rem; bottom: calc(.75rem + env(safe-area-inset-bottom));
    display: grid; grid-template-columns: 1fr; gap: .5rem; padding: .45rem;
    border-radius: 999px; background: color-mix(in oklab, var(--c-fundo) 82%, transparent);
    -webkit-backdrop-filter: blur(14px) saturate(1.2); backdrop-filter: blur(14px) saturate(1.2);
    border: 1px solid var(--s-linha-escura); box-shadow: 0 14px 40px -12px rgb(0 0 0 / .6);
    transform: translateY(160%); transition: transform .5s var(--c-ease);
  }
  .barra-acao.ativa { transform: none; }
  .barra-acao a { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 3rem; border-radius: 999px; text-decoration: none; font-weight: 600; font-size: .95rem; }
  .barra-acao__agendar { background: var(--c-bordo); color: #fff; }
  .barra-acao svg { width: 18px; height: 18px; }
}

/* ---------- rodapé ---------- */
.rp { background: #070b13; color: var(--c-texto-2); padding: clamp(3.5rem, 7vw, 5.5rem) 0 calc(2rem + env(safe-area-inset-bottom)); font-size: .95rem; position: relative; overflow: hidden; }
.rp__dentro { width: var(--s-larg); margin-inline: auto; display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 2.5rem 3rem; position: relative; z-index: 2; }
.rp__nome { font-family: var(--c-f-titulo); font-weight: 600; font-size: 1.25rem; letter-spacing: -.02em; color: var(--c-texto); margin: 0 0 .5rem; }
.rp__reg { color: var(--c-texto-3); margin: 0 0 1.2rem; letter-spacing: .02em; }
.rp h2 { font-size: var(--c-t-mini); letter-spacing: .14em; text-transform: uppercase; font-weight: 500; color: var(--c-prata); margin: 0 0 .9rem; font-family: var(--c-f-texto); }
.rp ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.rp a { color: var(--c-texto-2); text-decoration: none; border-bottom: 1px solid transparent; transition: color .2s, border-color .2s; }
.rp a:hover { color: var(--c-texto); border-bottom-color: currentColor; }
.rp address { font-style: normal; line-height: 1.6; }
.rp__fim { width: var(--s-larg); margin: 3rem auto 0; padding-top: 1.4rem; border-top: 1px solid var(--s-linha-escura); display: flex; flex-wrap: wrap; justify-content: space-between; gap: .8rem 2rem; font-size: var(--c-t-mini); color: var(--c-texto-3); position: relative; z-index: 2; }
.rp__fim a { color: var(--c-texto-2); border-bottom: 1px solid color-mix(in oklab, var(--c-prata) 40%, transparent); }
.rp__arvore { position: absolute; right: -6%; bottom: -30%; width: min(56vw, 760px); opacity: .16; pointer-events: none; z-index: 1;
  -webkit-mask-image: radial-gradient(closest-side, #000 40%, transparent); mask-image: radial-gradient(closest-side, #000 40%, transparent); }
@media (max-width: 860px) {
  .rp__dentro { grid-template-columns: 1fr; }
  .rp { padding-bottom: calc(6.5rem + env(safe-area-inset-bottom)); }
}

/* ---------- movimento reduzido ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0s !important; animation-delay: 0s !important;
    transition-duration: 0s !important; transition-delay: 0s !important;
  }
  .js [data-rev] { opacity: 1; transform: none; }
}

/* ===== metodo ===== */
/* metodo · prefixo pd- · superfície chapa */
.pd { overflow-x: clip; }
.pd-malha {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(closest-side in oklab, color-mix(in oklab, var(--s-chapa-3) 70%, transparent), transparent) 88% 12% / 60vmax 60vmax no-repeat,
    radial-gradient(closest-side in oklab, color-mix(in oklab, #fff 70%, transparent), transparent) 8% 55% / 55vmax 55vmax no-repeat;
}

/* cabeça: título em largura cheia, texto e fala lado a lado embaixo */
.pd-titulo { max-width: 18ch; }
.pd-cab__lado { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 1.6rem clamp(2rem, 6vw, 6rem); margin-top: clamp(2rem, 4vw, 3.2rem); align-items: start; }
.pd-cab__lado .s-lead { max-width: 50ch; }
.pd-fala { border-left: 1px solid var(--c-bordo); padding-left: 1.4rem; }
.pd-fala blockquote p { font-style: italic; font-size: var(--c-t-fala); line-height: 1.35; color: var(--s-tinta); }
.pd-fala figcaption { margin-top: .5rem; font-size: var(--c-t-mini); color: var(--s-tinta-3); letter-spacing: .02em; }

/* corpo: passos + tela */
.pd-corpo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 6rem); margin-top: clamp(4rem, 8vw, 7rem); align-items: start; }
.pd-trilha { position: relative; padding-left: clamp(2.5rem, 4vw, 3.5rem); }
.pd-passos { list-style: none; margin: 0; padding: 0; display: grid; gap: clamp(3.5rem, 16svh, 10rem); padding-block: 1rem 2rem; }
.pd-passo { position: relative; min-height: 34svh; }
.pd-passo:last-child { min-height: 0; }
.pd-passo::before { /* marca do passo sobre o trilho */
  content: ""; position: absolute; left: calc(-1 * clamp(2.5rem, 4vw, 3.5rem) + 5px); top: .35rem; width: 11px; height: 11px; border-radius: 50%;
  background: var(--s-chapa); border: 1px solid var(--s-tinta-3); transition: background .4s, border-color .4s, box-shadow .4s;
}
.pd-passo.pd-ativo::before { background: var(--c-bordo); border-color: var(--c-bordo); box-shadow: 0 0 0 5px color-mix(in oklab, var(--c-bordo) 14%, transparent); }
.pd-passo__n { display: flex; gap: .8rem; align-items: baseline; font-size: var(--c-t-mini); letter-spacing: .14em; text-transform: uppercase; font-weight: 500; color: var(--s-tinta-2); margin-bottom: .8rem; font-variant-numeric: tabular-nums; }
.pd-passo__n span { color: var(--c-bordo); font-weight: 600; }
.pd-passo__t { margin-bottom: .9rem; max-width: 18ch; }
.pd-passo__img { display: none; }

/* o fio-guia: avança com a rolagem, em velocidade constante */
.pd-fio { position: absolute; left: 10px; top: 1.4rem; bottom: 2rem; width: 1px; }
.pd-fio__trilho { position: absolute; inset: 0; background: repeating-linear-gradient(to bottom, var(--s-linha-clara) 0 6px, transparent 6px 12px); }
.pd-fio__linha { position: absolute; left: 0; top: 0; width: 1px; height: 100%; background: var(--s-tinta); transform-origin: top; transform: scaleY(var(--pd-p, 1)); }
.pd-fio__ponta { position: absolute; left: -4px; top: calc(var(--pd-p, 1) * 100%); width: 9px; height: 9px; margin-top: -4px; border-radius: 50%; background: var(--c-bordo); box-shadow: 0 0 0 4px color-mix(in oklab, var(--c-bordo) 18%, transparent), 0 0 14px color-mix(in oklab, var(--c-bordo) 60%, transparent); }

/* a tela: troca de canal a cada passo, com o "contraste" enchendo de baixo para cima */
.pd-tela { position: sticky; top: 5.5rem; justify-self: end; width: min(100%, calc((100svh - 11rem) * .8)); }
.pd-tela__vidro {
  position: relative; overflow: hidden; border-radius: var(--s-raio); background: #0a0f19;
  aspect-ratio: 4 / 5;
  box-shadow: 0 40px 80px -40px rgb(17 28 48 / .55), 0 0 0 1px rgb(17 28 48 / .2);
}
.pd-tela__img { position: absolute; inset: clamp(.6rem, 1vw, .9rem); width: calc(100% - 2 * clamp(.6rem, 1vw, .9rem)); height: calc(100% - 2 * clamp(.6rem, 1vw, .9rem)); border-radius: calc(var(--s-raio) - 6px); object-fit: cover; }
.pd-tela__img[data-canal="0"] { object-position: 50% 40%; filter: saturate(.6) contrast(1.03); }
.pd-tela__img[data-canal="1"] { object-position: 62% 50%; filter: saturate(.6) contrast(1.03); }
.pd-tela__img[data-canal="2"] { object-position: 50% 0; }
.pd-tela [data-canal] { display: none; }
.pd-tela[data-pd-canal="0"] [data-canal="0"], .pd-tela[data-pd-canal="1"] [data-canal="1"], .pd-tela[data-pd-canal="2"] [data-canal="2"] { display: block; }
.pd-tela__hud [data-canal] { display: none !important; }
.pd-tela[data-pd-canal="0"] .pd-tela__hud [data-canal="0"], .pd-tela[data-pd-canal="1"] .pd-tela__hud [data-canal="1"], .pd-tela[data-pd-canal="2"] .pd-tela__hud [data-canal="2"] { display: inline !important; }
/* com JS: as três imagens empilhadas; a do canal ativo entra por cima, de baixo para cima */
.pd-tela.pd-js .pd-tela__img { display: block; clip-path: inset(100% 0 0 0 round 8px); z-index: 1; transition: none; }
.pd-tela.pd-js[data-pd-ant="0"] .pd-tela__img[data-canal="0"], .pd-tela.pd-js[data-pd-ant="1"] .pd-tela__img[data-canal="1"], .pd-tela.pd-js[data-pd-ant="2"] .pd-tela__img[data-canal="2"] { clip-path: inset(0 0 0 0 round 8px); z-index: 1; }
.pd-tela.pd-js[data-pd-canal="0"] .pd-tela__img[data-canal="0"], .pd-tela.pd-js[data-pd-canal="1"] .pd-tela__img[data-canal="1"], .pd-tela.pd-js[data-pd-canal="2"] .pd-tela__img[data-canal="2"] { clip-path: inset(0 0 0 0 round 8px); z-index: 2; transition: clip-path 1.1s linear; }

.pd-tela__hud { position: absolute; z-index: 3; margin: 0; font-size: .8125rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 500; color: #eef2f7; font-variant-numeric: tabular-nums; display: flex; align-items: center; gap: .5rem; background: rgb(10 15 25 / .66); padding: .35rem .65rem; border-radius: 4px; }
.pd-tela__hud--a { left: 1.6rem; top: 1.5rem; }
.pd-tela__hud--b { right: 1.6rem; bottom: 1.5rem; }
.pd-tela__hud b { font-weight: 600; color: #fff; }
.pd-tela__rec { width: 7px; height: 7px; border-radius: 50%; background: var(--c-bordo-vivo); box-shadow: 0 0 8px var(--c-bordo-vivo); }
.pd-tela__alvo { position: absolute; z-index: 3; left: 47%; top: 11%; width: 4.2rem; height: 4.2rem; margin: -2.1rem 0 0 -2.1rem; border-radius: 50%;
  border: 1.5px solid var(--c-bordo-vivo); box-shadow: 0 0 0 6px color-mix(in oklab, var(--c-bordo-vivo) 16%, transparent);
  opacity: 0; transform: scale(.7); transition: opacity .6s .9s, transform .6s .9s var(--c-ease); }
.pd-tela[data-pd-canal="2"] .pd-tela__alvo { opacity: 1; transform: none; }
.pd-tela figcaption { margin-top: 1rem; max-width: 46ch; min-height: 3.2em; }
/* o mesmo fio-guia, dentro da tela */
.pd-tela__fio { position: absolute; z-index: 3; left: 1.6rem; right: 10rem; bottom: 2.35rem; height: 1px; background: rgb(238 242 247 / .28); }
.pd-tela__fio span { position: absolute; left: 0; top: 0; height: 1px; width: calc(var(--pd-p, 1) * 100%); background: #eef2f7; }
.pd-tela__fio span::after { content: ""; position: absolute; right: -4px; top: -4px; width: 9px; height: 9px; border-radius: 50%; background: var(--c-bordo-vivo); box-shadow: 0 0 10px var(--c-bordo-vivo); }
/* foco: a ponta acende o passo que você está lendo */
.pd-vivo .pd-passo { opacity: .78; transition: opacity .6s var(--c-ease); }
.pd-vivo .pd-passo.pd-atual { opacity: 1; }

/* fotos dentro dos passos (celular) */
.pd-passo__img img { width: 100%; height: auto; border-radius: var(--s-raio); aspect-ratio: 4 / 5; object-fit: cover; filter: saturate(.6) contrast(1.03); }
.pd-passo[data-pd-passo="1"] .pd-passo__img img { aspect-ratio: 1; object-position: 62% 50%; }
.pd-passo[data-pd-passo="2"] .pd-passo__img img { filter: none; object-position: 50% 0; }
.pd-passo__img figcaption { margin-top: .7rem; }
.pd-passo[data-pd-passo="0"] .pd-passo__img img { object-position: 50% 12%; }
.pd-passo__img figcaption span, .pd-busca__lista span { text-transform: uppercase; letter-spacing: .14em; font-weight: 600; color: var(--c-bordo); }
.pd-passo__img figcaption span { margin-right: .5rem; }

/* o que a técnica busca: faixa de leitura técnica */
.pd-busca { margin-top: clamp(5rem, 10vw, 8rem); }
.pd-busca__t { display: flex; align-items: center; gap: .85rem; margin: 0 0 1.2rem; font-size: var(--c-t-mini); letter-spacing: .14em; text-transform: uppercase; font-weight: 500; color: var(--s-tinta-2); }
.pd-busca__lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--s-linha-clara); border-bottom: 1px solid var(--s-linha-clara); }
.pd-busca__lista li { padding: 1.3rem 1.4rem 1.4rem 0; font-size: clamp(1.05rem, 1rem + .3vw, 1.2rem); font-weight: 500; line-height: 1.3; color: var(--s-tinta); }
.pd-busca__lista li + li { padding-left: 1.4rem; border-left: 1px solid var(--s-linha-clara); }
.pd-busca__lista span { display: block; margin-bottom: .55rem; font-size: var(--c-t-mini); font-variant-numeric: tabular-nums; }
.pd-busca__nota { margin-top: 1rem; }

/* indicação honesta: o ponto final da seção */
.pd-indica { margin: clamp(5rem, 10vw, 8.5rem) auto 0; max-width: 52rem; text-align: center; }
.pd-indica__aspa { display: block; font-family: var(--c-f-titulo); font-weight: 700; font-size: clamp(5rem, 4rem + 4vw, 8rem); line-height: .7; height: .42em; color: var(--c-bordo); }
.pd-indica blockquote p { font-style: italic; text-wrap: balance; }
.pd-indica__marsh blockquote p { font-size: clamp(1.3rem, 1rem + 1.25vw, 2.15rem); line-height: 1.32; color: var(--s-tinta); letter-spacing: -.01em; }
.pd-indica__marsh figcaption { margin-top: 1.1rem; font-size: var(--c-t-mini); color: var(--s-tinta-3); }
.pd-indica__marsh figcaption i { font-style: normal; margin-inline: .35rem; }
.pd-indica__pac { margin: 2.6rem auto 0; max-width: 34rem; padding-top: 2rem; position: relative; }
.pd-indica__pac::before { content: ""; position: absolute; top: 0; left: 50%; width: 1px; height: 1.4rem; background: var(--c-bordo); }
.pd-indica__pac blockquote p { font-size: var(--c-t-fala); line-height: 1.4; color: var(--s-tinta-2); }
.pd-indica__pac figcaption { margin-top: .7rem; font-size: var(--c-t-mini); color: var(--s-tinta-3); }

@media (max-width: 900px) {
  .pd-cab__lado { grid-template-columns: 1fr; }
  .pd-corpo { grid-template-columns: 1fr; }
  .pd-tela { display: none; }
  .pd-passo { min-height: 0; }
  .pd-passos { gap: 4rem; }
  .pd-passo__img { display: block; margin-top: 1.6rem; }
  .pd-busca__lista { grid-template-columns: 1fr 1fr; }
  .pd-busca__lista li:nth-child(3) { padding-left: 0; border-left: 0; }
  .pd-busca__lista li:nth-child(n+3) { border-top: 1px solid var(--s-linha-clara); }
  .pd-passo__img img, .pd-passo[data-pd-passo] .pd-passo__img img { aspect-ratio: 5 / 4; }
}
@media (max-width: 520px) {
  .pd-busca__lista { grid-template-columns: 1fr; }
  .pd-busca__lista li, .pd-busca__lista li + li { padding: .95rem 0; border-left: 0; display: grid; grid-template-columns: 2.4rem 1fr; align-items: baseline; }
  .pd-busca__lista li + li { border-top: 1px solid var(--s-linha-clara); }
  .pd-busca__lista span { margin: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .pd { --pd-p: 1 !important; }
}

/* ===== tratamentos ===== */
/* tratamentos · prefixo tr- · superfície noite */
.tr { overflow-x: clip; }
.tr-malha {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(closest-side in oklch, color-mix(in oklch, var(--c-marinho) 75%, transparent), transparent) 92% 8% / 70vmax 70vmax no-repeat,
    radial-gradient(closest-side in oklch, color-mix(in oklch, var(--c-bordo-sombra) 70%, transparent), transparent) 4% 96% / 60vmax 60vmax no-repeat;
}

/* cabeça */
.tr-cab { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 1.5rem clamp(2rem, 6vw, 6rem); align-items: end; }
.tr-cab .s-leitura { grid-column: 1 / -1; }
.tr-titulo { max-width: 15ch; }
.tr-cab .s-lead { max-width: 40ch; }
.tr-cab .s-lead { padding-bottom: .5rem; }

/* corpo: mapa + lista */
.tr-corpo { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 6rem); margin-top: clamp(3.5rem, 7vw, 6rem); align-items: start; }

.tr-mapa { position: sticky; top: 4rem; height: calc(100svh - 8rem); max-height: 56rem; min-height: 30rem; display: grid; grid-template-rows: 1fr auto; }
.tr-mapa__palco { position: relative; min-height: 0; }
.tr-mapa__textura { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .09; pointer-events: none;
  -webkit-mask-image: radial-gradient(closest-side, #000 30%, transparent); mask-image: radial-gradient(closest-side, #000 30%, transparent); }
.tr-mapa__svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.tr-mapa__leitura { display: flex; justify-content: space-between; gap: 1rem; margin: 1rem 0 0; padding-top: .9rem; border-top: 1px solid var(--s-linha-escura);
  font-size: var(--c-t-mini); letter-spacing: .14em; text-transform: uppercase; font-weight: 500; color: var(--c-texto-3); font-variant-numeric: tabular-nums; }
.tr-mapa__ter { color: var(--c-prata); text-align: right; }

/* o desenho */
.tr-sil { fill: color-mix(in oklab, var(--c-prata) 3%, transparent); stroke: color-mix(in oklab, var(--c-prata) 38%, transparent); stroke-width: 1; }
.tr-org { fill: color-mix(in oklab, var(--c-prata) 5%, transparent); stroke: color-mix(in oklab, var(--c-prata) 34%, transparent); stroke-width: 1; }
.tr-art { fill: none; stroke: color-mix(in oklab, var(--c-prata) 62%, transparent); stroke-width: 2; stroke-linecap: round; }
.tr-base .tr-art:first-child { stroke-width: 4.5; }
.tr-vei { fill: none; stroke: color-mix(in oklab, var(--c-aco) 85%, transparent); stroke-width: 1.4; stroke-dasharray: 3 3; stroke-linecap: round; }
.tr-ter { opacity: 0; transition: opacity .5s var(--c-ease); filter: drop-shadow(0 0 5px color-mix(in oklab, var(--c-bordo-vivo) 70%, transparent)); }
.tr-luz { fill: none; stroke: var(--c-bordo-vivo); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 1 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.1s linear; }
.tr-luz--grossa { stroke-width: 6; }
.tr-luz--vei { stroke-width: 2.4; }
.tr-luz--org { fill: color-mix(in oklab, var(--c-bordo-vivo) 26%, transparent); stroke-width: 1.6; }
.tr-anel { fill: none; stroke: var(--c-bordo-vivo); stroke-width: 1.6; }
.tr-anel--zona { fill: color-mix(in oklab, var(--c-bordo-vivo) 22%, transparent); stroke-dasharray: 2 3; }
.tr-sonda rect { fill: var(--c-prata); }
.tr-sonda path { stroke: var(--c-prata); stroke-width: 1.5; fill: none; }
.tr-mapa[data-ter-ativo="aorta"] [data-ter="aorta"], .tr-mapa[data-ter-ativo="pernas"] [data-ter="pernas"], .tr-mapa[data-ter-ativo="veias"] [data-ter="veias"],
.tr-mapa[data-ter-ativo="utero"] [data-ter="utero"], .tr-mapa[data-ter-ativo="figado"] [data-ter="figado"], .tr-mapa[data-ter-ativo="feridas"] [data-ter="feridas"],
.tr-mapa[data-ter-ativo="doppler"] [data-ter="doppler"] { opacity: 1; }
.tr-mapa[data-ter-ativo="aorta"] [data-ter="aorta"] .tr-luz, .tr-mapa[data-ter-ativo="pernas"] [data-ter="pernas"] .tr-luz, .tr-mapa[data-ter-ativo="veias"] [data-ter="veias"] .tr-luz,
.tr-mapa[data-ter-ativo="utero"] [data-ter="utero"] .tr-luz, .tr-mapa[data-ter-ativo="figado"] [data-ter="figado"] .tr-luz, .tr-mapa[data-ter-ativo="feridas"] [data-ter="feridas"] .tr-luz,
.tr-mapa[data-ter-ativo="doppler"] [data-ter="doppler"] .tr-luz { stroke-dashoffset: 0; }

/* anotações em volta da figura */
.tr-rot { cursor: pointer; }
.tr-rot path { fill: none; stroke: color-mix(in oklab, var(--c-prata) 32%, transparent); stroke-width: 1; vector-effect: non-scaling-stroke; transition: stroke .4s; }
.tr-rot circle { fill: color-mix(in oklab, var(--c-prata) 60%, transparent); transition: fill .4s; }
.tr-rot text { font-family: var(--c-f-texto); font-size: 16px; font-weight: 500; letter-spacing: 2.2px; text-transform: uppercase; fill: var(--c-texto-3); transition: fill .4s; }
.tr-rot:hover text { fill: var(--c-texto); }
.tr-mapa[data-ter-ativo="aorta"] .tr-rot[data-ter="aorta"] path, .tr-mapa[data-ter-ativo="pernas"] .tr-rot[data-ter="pernas"] path, .tr-mapa[data-ter-ativo="veias"] .tr-rot[data-ter="veias"] path, .tr-mapa[data-ter-ativo="utero"] .tr-rot[data-ter="utero"] path, .tr-mapa[data-ter-ativo="figado"] .tr-rot[data-ter="figado"] path, .tr-mapa[data-ter-ativo="feridas"] .tr-rot[data-ter="feridas"] path, .tr-mapa[data-ter-ativo="doppler"] .tr-rot[data-ter="doppler"] path { stroke: var(--c-bordo-vivo); }
.tr-mapa[data-ter-ativo="aorta"] .tr-rot[data-ter="aorta"] circle, .tr-mapa[data-ter-ativo="pernas"] .tr-rot[data-ter="pernas"] circle, .tr-mapa[data-ter-ativo="veias"] .tr-rot[data-ter="veias"] circle, .tr-mapa[data-ter-ativo="utero"] .tr-rot[data-ter="utero"] circle, .tr-mapa[data-ter-ativo="figado"] .tr-rot[data-ter="figado"] circle, .tr-mapa[data-ter-ativo="feridas"] .tr-rot[data-ter="feridas"] circle, .tr-mapa[data-ter-ativo="doppler"] .tr-rot[data-ter="doppler"] circle { fill: var(--c-bordo-vivo); }
.tr-mapa[data-ter-ativo="aorta"] .tr-rot[data-ter="aorta"] text, .tr-mapa[data-ter-ativo="pernas"] .tr-rot[data-ter="pernas"] text, .tr-mapa[data-ter-ativo="veias"] .tr-rot[data-ter="veias"] text, .tr-mapa[data-ter-ativo="utero"] .tr-rot[data-ter="utero"] text, .tr-mapa[data-ter-ativo="figado"] .tr-rot[data-ter="figado"] text, .tr-mapa[data-ter-ativo="feridas"] .tr-rot[data-ter="feridas"] text, .tr-mapa[data-ter-ativo="doppler"] .tr-rot[data-ter="doppler"] text { fill: var(--c-texto); }

/* sem JS o mapa não fica preso (mostraria só o primeiro território) */
.tr:not(.tr-js) .tr-mapa { position: relative; top: auto; }

/* a ponta do cateter vai até o território escolhido, em velocidade constante */
.tr-ponta { fill: var(--c-bordo-vivo); stroke: #fff; stroke-width: 1.2; vector-effect: non-scaling-stroke; transition: transform .9s linear; filter: drop-shadow(0 0 6px var(--c-bordo-vivo)); }
.tr-mapa__tags { display: none; }

/* lista */
.tr-lista { list-style: none; margin: 0; padding: 0; border-bottom: 1px solid var(--s-linha-escura); }
.tr-item { border-top: 1px solid var(--s-linha-escura); position: relative; }
.tr-item::before { content: ""; position: absolute; left: 0; top: -1px; height: 1px; width: 0; background: var(--c-bordo-vivo); transition: width .9s linear; }
.tr-item.tr-ativo::before { width: 100%; }
.tr-item__cab { margin: 0; }
.tr-item__bt { all: unset; box-sizing: border-box; width: 100%; min-height: 3.5rem; display: grid; grid-template-columns: 2.8rem 1fr auto; align-items: baseline; gap: .5rem; padding: 1.25rem 0 .75rem; cursor: pointer; }
.tr-item__bt:focus-visible { outline: 2px solid var(--c-prata); outline-offset: 3px; border-radius: 4px; }
.tr-item__n { font-size: var(--c-t-mini); letter-spacing: .14em; color: var(--c-texto-3); font-variant-numeric: tabular-nums; font-weight: 500; transition: color .3s; }
.tr-item__nome { font-family: var(--c-f-titulo); font-weight: 500; font-size: var(--s-t-sub); line-height: 1.15; letter-spacing: -.02em; color: var(--c-texto); }
.tr-item__mais { display: none; }
.tr-item.tr-ativo .tr-item__n { color: var(--c-bordo-vivo); }
.tr-item__corpo { padding: 0 0 1.6rem 3.3rem; color: var(--c-texto-2); max-width: 38rem; font-size: .98rem; }
.tr-item__corpo > p + p, .tr-item__corpo > p + blockquote, .tr-item__corpo > blockquote + p { margin-top: .9rem; }
.tr-item__tags { font-size: var(--c-t-mini); letter-spacing: .04em; color: var(--c-texto-3); margin-bottom: .8rem; }
.tr-item__fala { margin: 0; padding-left: 1.1rem; border-left: 1px solid var(--c-bordo-vivo); }
.tr-item__fala p { font-style: italic; color: var(--c-texto); }
.tr-item__fala footer { margin-top: .35rem; font-size: var(--c-t-mini); color: var(--c-texto-3); }
.tr-item__quando { font-size: .95rem; display: grid; grid-template-columns: 11.5rem 1fr; gap: .2rem 1rem; padding-top: .9rem; border-top: 1px dashed var(--s-linha-escura); }
.tr-item__quando span { font-size: var(--c-t-mini); letter-spacing: .14em; text-transform: uppercase; font-weight: 500; color: var(--c-bordo-vivo); padding-top: .1rem; }
.tr-item__link { color: var(--c-texto); }
/* com JS, no computador: os itens fora de foco ficam mais baixos */
.tr-js .tr-item .tr-item__corpo { transition: opacity .5s var(--c-ease); }
@media (min-width: 901px) {
  .tr-js .tr-item:not(.tr-ativo) .tr-item__corpo { opacity: .8; }
  .tr-js .tr-item:not(.tr-ativo) .tr-item__nome { color: var(--c-texto-2); }
}

/* fecho */
.tr-fim { margin-top: clamp(3.5rem, 7vw, 6rem); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2rem 4rem; align-items: center; }
.tr-fim__tambem span { display: block; font-size: var(--c-t-mini); letter-spacing: .14em; text-transform: uppercase; font-weight: 500; color: var(--c-prata); margin-bottom: .3rem; }
.tr-fim { padding-top: 2.2rem; border-top: 1px solid var(--s-linha-escura); }
.tr-fim__acoes { display: flex; flex-wrap: wrap; gap: 1rem 1.8rem; align-items: center; justify-content: flex-end; }
.tr-fim__chamada { flex-basis: 100%; text-align: right; font-family: var(--c-f-titulo); font-weight: 500; font-size: clamp(1.1rem, 1rem + .4vw, 1.35rem); letter-spacing: -.015em; color: var(--c-texto); margin-bottom: .3rem; }

@media (max-width: 900px) {
  .tr-cab { grid-template-columns: 1fr; }
  .tr-corpo { grid-template-columns: 1fr; gap: 0; }
  /* o mapa vira um painel fixo no alto enquanto a lista passa */
  .tr-mapa__tags { display: block; font-size: var(--c-t-mini); letter-spacing: .02em; text-transform: none; color: var(--c-texto-2); line-height: 1.45; }
  .tr-fim__acoes { justify-content: flex-start; }
  .tr-fim__chamada { text-align: left; }
  .tr-mapa { top: 0; z-index: 3; height: 34svh; min-height: 15rem; max-height: none; grid-template-columns: minmax(0, .9fr) minmax(0, 1fr); grid-template-rows: 1fr; align-items: center; gap: 1rem;
    margin-inline: calc(-1 * var(--c-margem)); padding: .8rem var(--c-margem); background: var(--c-fundo); border-bottom: 1px solid var(--s-linha-escura); box-shadow: 0 18px 24px -18px rgb(0 0 0 / .8); }
  .tr-rots { display: none; }
  .tr-item__quando { grid-template-columns: 1fr; }
  .tr-mapa__palco { height: 100%; }
  .tr-mapa__leitura { flex-direction: column; justify-content: center; border-top: 0; margin: 0; padding: 0; gap: .6rem; }
  .tr-mapa__ter { text-align: left; font-family: var(--c-f-titulo); text-transform: none; letter-spacing: -.01em; font-size: 1.25rem; line-height: 1.2; color: var(--c-texto); font-weight: 500; }
  .tr-item__bt { grid-template-columns: 2.4rem 1fr 1.5rem; padding: 1rem 0; align-items: center; }
  .tr-item__nome { font-size: 1.2rem; }
  .tr-item__mais { display: block; position: relative; width: 1.5rem; height: 1.5rem; }
  .tr-item__mais::before, .tr-item__mais::after { content: ""; position: absolute; left: 50%; top: 50%; width: 14px; height: 1.5px; margin: -.75px 0 0 -7px; background: var(--c-prata); transition: transform .35s var(--c-ease); }
  .tr-item__mais::after { transform: rotate(90deg); }
  .tr-item__bt[aria-expanded="true"] .tr-item__mais::after { transform: rotate(0deg); }
  .tr-item__corpo { padding: 0 0 1.6rem 2.9rem; }
  .tr-js .tr-item__corpo[hidden] { display: none; }
  .tr-fim { grid-template-columns: 1fr; }
}
@media (max-width: 400px) {
  .tr-item__corpo { padding-left: 0; }
}

/* ===== consulta ===== */
/* consulta (cs-) — chapa: o médico que mostra e explica, com a ilustração de Doppler do hero B */
.cs { overflow: clip; }
.cs-malha {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(circle closest-side at 50% 50% in oklab, rgb(255 255 255 / .75), rgb(255 255 255 / 0)) 72% 18% / 70vmax 70vmax no-repeat,
    radial-gradient(circle closest-side at 50% 50% in oklab, color-mix(in oklab, var(--s-chapa-3) 80%, transparent), transparent) -10% 100% / 60vmax 60vmax no-repeat;
}

.cs-grade {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: clamp(2rem, 4vw, 4rem);
  align-items: center;
}
.cs-titulo { max-width: none; }
.cs-titulo__l { display: block; }
@media (min-width: 1200px) { .cs-titulo__l { white-space: nowrap; } }
.cs-lead { margin-top: 1.5rem; }

.cs-fala { margin-top: 2rem; padding-left: 1.25rem; border-left: 1px solid var(--c-bordo); max-width: 30rem; }
.cs-fala blockquote p { font-style: italic; font-size: var(--c-t-fala); line-height: 1.4; color: var(--s-tinta); text-wrap: pretty; }
.cs-fala figcaption, .cs-passo__fala figcaption, .cs-tele__fala figcaption { margin-top: .45rem; font-size: var(--c-t-mini); color: var(--s-tinta-3); }
.cs-fala figcaption::before, .cs-passo__fala figcaption::before, .cs-tele__fala figcaption::before { content: "— "; }

/* ---------- palco: retrato + painel + anotações ---------- */
.cs-palco {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1.1;
  --cs-ret-x: -2%;
  --cs-pain-x: 43%; --cs-pain-y: 45%; --cs-pain-w: 58%;
}
/* luz fria atrás da cabeça e dos ombros: o negatoscópio aceso */
.cs-palco::before {
  content: ""; position: absolute; z-index: 0; pointer-events: none;
  left: -14%; top: -4%; width: 104%; height: 86%;
  background: radial-gradient(closest-side at 50% 45% in oklab, rgb(255 255 255 / .95), rgb(255 255 255 / .4) 55%, rgb(255 255 255 / 0));
}
.cs-retrato {
  position: absolute; z-index: 1; left: var(--cs-ret-x); bottom: 0;
  height: 100%; width: auto; max-width: none;
  -webkit-mask-image: linear-gradient(to bottom, #000 80%, transparent 99%);
          mask-image: linear-gradient(to bottom, #000 80%, transparent 99%);
  user-select: none;
}
.cs-painel {
  position: absolute; z-index: 2;
  left: var(--cs-pain-x); top: var(--cs-pain-y); width: var(--cs-pain-w);
  aspect-ratio: 4 / 3.25;
  border-radius: var(--s-raio);
  background: #10151d;
  padding: 2.4%;
  display: grid; grid-template-rows: auto 1fr;
  box-shadow:
    0 0 0 1px rgb(255 255 255 / .06) inset,
    0 1px 0 rgb(255 255 255 / .08) inset,
    0 40px 70px -30px rgb(16 21 29 / .6),
    0 14px 28px -18px rgb(16 21 29 / .45);
}
.cs-painel__barra {
  display: flex; justify-content: space-between; align-items: center;
  font-size: .75rem; letter-spacing: .12em; text-transform: uppercase;
  color: rgb(214 222 232 / .8);
  padding: 0 .2rem .55rem;
}
.cs-painel__pulso { width: .45rem; height: .45rem; border-radius: 50%; background: var(--c-bordo-vivo); }
.cs-painel__pulso.cs-bate { animation: cs-bate .5s ease-out; }
@keyframes cs-bate { 0% { box-shadow: 0 0 0 0 rgb(224 86 106 / .55); } 100% { box-shadow: 0 0 0 7px rgb(224 86 106 / 0); } }
.cs-painel__tela { width: 100%; height: 100%; display: block; border-radius: 6px; background: #0b0e13 url("../img/cs-doppler.webp") center / 100% 100% no-repeat; }

.cs-fios { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; z-index: 3; }
.cs-fios path { fill: none; stroke: var(--c-marinho); stroke-width: 1.15; stroke-linecap: round; }
.cs-fios circle.cs-alvo { fill: #fff; stroke: var(--c-bordo); stroke-width: 1.5; }
.cs-fios circle.cs-base { fill: var(--c-marinho); }

.cs-nota {
  position: absolute; z-index: 4; margin: 0;
  font-style: italic; font-weight: 500;
  font-size: clamp(.9375rem, .7rem + .4vw, 1.125rem); line-height: 1.25;
  color: var(--s-tinta);
  white-space: nowrap;
}
.cs-nota span {
  display: inline-block;
  padding: .4em .85em .44em;
  border-radius: 999px;
  background: rgb(247 249 252 / .9);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  box-shadow: 0 0 0 1px rgb(17 28 48 / .09), 0 8px 18px -12px rgb(17 28 48 / .4);
}
.cs-nota--1 { left: 52%; bottom: calc(100% - 36%); }
.cs-nota--2 { right: -2%; bottom: calc(100% - 42.4%); }
.cs-nota--3 { left: 50%; top: 88.5%; }

.cs-legenda {
  grid-column: 2; margin: -1.2rem 0 0 40%;
  font-size: var(--c-t-mini); line-height: 1.6; color: var(--s-tinta-2);
  max-width: 30rem; text-wrap: pretty;
}
.cs-legenda { display: flex; flex-wrap: wrap; gap: .2rem 1.1rem; }
.cs-legenda__i { white-space: nowrap; }
.cs-legenda__cor { display: inline-block; width: .7rem; height: .7rem; border-radius: 50%; margin: 0 .4rem 0 .15rem; vertical-align: -.05em; }
.cs-legenda__cor--a { background: #b4263a; }
.cs-legenda__cor--v { background: #3b6fb8; }
.cs-legenda__cor--e { background: linear-gradient(to top, #8c97a8, #eef2f6); border-radius: 2px; width: .55rem; }
.cs-legenda__aviso { flex-basis: 100%; color: var(--s-tinta-3); }

/* escrita das notas (só com JS e com movimento) */
.js .cs-nota { opacity: 0; }
.js .cs-nota span { clip-path: inset(-20% 100% -20% 0); }
.js .cs-nota.cs-escrita { opacity: 1; transition: opacity .3s ease; }
.js .cs-nota.cs-escrita span { clip-path: inset(-20% -2% -20% 0); transition: clip-path 1s cubic-bezier(.45,.05,.3,1) .35s; }
.js .cs-palco .cs-painel, .js .cs-palco .cs-retrato { opacity: 0; transform: translateY(16px); transition: opacity 1s var(--c-ease), transform 1.2s var(--c-ease); }
.js .cs-palco.cs-visto .cs-retrato { opacity: 1; transform: none; }
.js .cs-palco.cs-visto .cs-painel { opacity: 1; transform: none; transition-delay: .35s; }

/* ---------- passos: quatro linhas, cada uma com a fala de um paciente ---------- */
.cs-passos { margin-top: clamp(4.5rem, 9vw, 8rem); }
.cs-passos__topo { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5rem 2rem; padding-bottom: 1.6rem; border-bottom: 1px solid var(--s-tinta); }
.cs-passos__intro { margin: 0; }
.cs-passos__lista { list-style: none; margin: 0; padding: 0; }
.cs-passo {
  display: grid; grid-template-columns: 5.5rem minmax(0, 1.05fr) minmax(0, 1fr); gap: 1rem clamp(1.5rem, 3.5vw, 3.5rem);
  align-items: start;
  padding: 2.1rem 0;
  border-bottom: 1px solid var(--s-linha-clara);
}
.cs-passo__n {
  font-family: var(--c-f-titulo); font-weight: 700; font-size: clamp(2.2rem, 1.6rem + 1.6vw, 3.2rem); line-height: .9; letter-spacing: -.04em;
  color: transparent; -webkit-text-stroke: 1.2px var(--c-bordo);
  background: linear-gradient(to top, var(--c-bordo) 50%, transparent 50%) 0 0 / 100% 200% no-repeat;
  background-position: 0 0;
  -webkit-background-clip: text; background-clip: text;
  padding-bottom: .08em;
  font-variant-numeric: tabular-nums;
}
/* o contraste enche o número quando a linha entra (como no vaso do hero) */
.cs-passo.visto .cs-passo__n { background-position: 0 100%; transition: background-position 1.4s linear calc(var(--rev-atraso, 0s) + .45s); }
html:not(.js) .cs-passo__n { background-position: 0 100%; }
.cs-passo__t { margin: 0 0 .55rem; font-family: var(--c-f-titulo); font-weight: 500; font-size: clamp(1.15rem, 1rem + .5vw, 1.45rem); line-height: 1.2; letter-spacing: -.02em; }
.cs-passo__x { color: var(--s-tinta-2); max-width: 40ch; }
.cs-passo__fala { padding-left: 1.2rem; border-left: 1px solid color-mix(in oklab, var(--c-bordo) 60%, transparent); }
.cs-passo__fala blockquote p { font-style: italic; font-size: clamp(1.02rem, .95rem + .3vw, 1.18rem); line-height: 1.45; color: var(--s-tinta); text-wrap: pretty; }

/* ---------- teleconsulta: a outra tela ---------- */
.cs-tele {
  margin-top: clamp(4.5rem, 9vw, 8rem);
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem);
  padding: clamp(2rem, 4.5vw, 4rem);
  border-radius: var(--s-raio);
  color: var(--c-texto);
  background:
    radial-gradient(circle closest-side at 50% 50% in oklch, color-mix(in oklch, var(--c-marinho) 85%, transparent), transparent) 100% 0% / 70% 140% no-repeat,
    radial-gradient(circle closest-side at 50% 50% in oklch, color-mix(in oklch, var(--c-bordo-sombra) 80%, transparent), transparent) 0% 110% / 60% 120% no-repeat,
    var(--c-noite);
  box-shadow: 0 40px 80px -40px rgb(10 15 25 / .55), 0 0 0 1px rgb(255 255 255 / .05) inset;
}
.cs-tele .s-leitura { color: var(--c-prata); margin-bottom: 1.1rem; }
.cs-tele .s-leitura__seq { color: var(--c-texto-3); }
.cs-tele .s-ponta::before { background: linear-gradient(to right, transparent, color-mix(in oklab, var(--c-prata) 70%, transparent)); }
.cs-tele .s-ponta::after { background: var(--c-bordo-vivo); box-shadow: 0 0 0 4px color-mix(in oklab, var(--c-bordo-vivo) 20%, transparent), 0 0 16px var(--c-bordo-vivo); }
.cs-tele__titulo { font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.4rem); max-width: 14ch; }
.cs-tele .cs-tele__fonte { margin-top: .6rem; color: var(--c-texto-3); }
.cs-tele .cs-tele__apoio { margin-top: 1.4rem; color: var(--c-texto-2); max-width: 44ch; }
.cs-tele .cs-tele__nota { margin-top: .8rem; color: var(--c-texto-3); }
.cs-tele__link { margin-top: 1rem; color: var(--c-texto); }
.cs-tele__prazo { margin-top: 1.6rem; display: flex; align-items: center; gap: 1.1rem; max-width: 26rem; padding: 1rem 0; border-top: 1px solid var(--s-linha-escura); border-bottom: 1px solid var(--s-linha-escura); }
.cs-tele__num { font-family: var(--c-f-titulo); font-weight: 700; font-size: 2.6rem; line-height: 1; letter-spacing: -.04em; color: var(--c-texto); font-variant-numeric: tabular-nums; flex: none; }
.cs-tele__num small { font-size: .38em; font-weight: 500; letter-spacing: 0; margin-left: .2em; color: var(--c-bordo-vivo); }
.cs-tele__prazo-x { font-size: .95rem; line-height: 1.45; color: var(--c-texto-2); }
.cs-tele a:focus-visible { outline-color: var(--c-prata); }
.cs-tele__falas { display: grid; gap: 2.2rem; align-content: center; }
.cs-tele__fala { padding-left: 1.25rem; border-left: 1px solid color-mix(in oklab, var(--c-bordo-vivo) 70%, transparent); }
.cs-tele__fala blockquote p { font-style: italic; font-size: var(--c-t-fala); line-height: 1.4; color: var(--c-texto); text-wrap: pretty; }
.cs-tele__fala figcaption { color: var(--c-texto-3); }

/* ---------- celular e tablet ---------- */
@media (max-width: 980px) {
  .cs-grade { grid-template-columns: minmax(0, 1fr); gap: 0; }
  /* no celular a imagem vem logo depois do título; a fala da paciente depois da legenda */
  .cs-texto { display: contents; }
  .cs-texto > .s-leitura { order: 1; }
  .cs-titulo { order: 2; }
  .cs-lead { order: 3; }
  .cs-palco { order: 4; }
  .cs-legenda { order: 5; grid-column: 1; margin: 1.8rem 0 0; }
  .cs-legenda__i { white-space: normal; }
  .cs-fala { order: 6; margin-top: 2.2rem; }
  .cs-titulo__l { white-space: normal; }
  .cs-palco {
    width: auto; margin: 1.4rem calc(var(--c-margem) * -1) 0;
    aspect-ratio: 1 / 1.32;
    --cs-ret-x: -6%;
    --cs-pain-x: 36%; --cs-pain-y: 54%; --cs-pain-w: 61%;
  }
  .cs-painel__barra { font-size: .875rem; letter-spacing: .1em; }
  .cs-so-largo { display: none; }
  .cs-nota { white-space: normal; max-width: 10.5em; text-wrap: balance; font-size: .9375rem; }
  .cs-nota--1 { left: 3%; top: 45%; bottom: auto; max-width: 8em; }
  .cs-nota--2 { right: 3%; bottom: calc(100% - 51.5%); }
  .cs-nota--3 { right: 3%; left: auto; top: 90%; }
  .cs-passo { grid-template-columns: 4.2rem minmax(0, 1fr); padding: 1.8rem 0; }
  .cs-passo__fala { grid-column: 2; margin-top: .4rem; }
  .cs-tele { grid-template-columns: minmax(0, 1fr); margin-inline: auto; }
}
@media (max-width: 600px) {
  .cs-passo { grid-template-columns: minmax(0, 1fr); gap: .7rem; }
  .cs-passo__fala { grid-column: 1; }
  .cs-passo__n { font-size: 2.2rem; }
}

/* ---------- movimento reduzido: tudo à vista ---------- */
@media (prefers-reduced-motion: reduce) {
  .js .cs-nota, .js .cs-palco .cs-painel, .js .cs-palco .cs-retrato { opacity: 1; transform: none; }
  .js .cs-nota span { clip-path: none; }
}

/* tablet: o palco não cresce além do necessário */
@media (min-width: 600px) and (max-width: 980px) {
  .cs-palco { width: min(100%, 620px); margin-inline: auto; }
  .cs-legenda { max-width: 620px; margin-inline: auto; width: 100%; }
}

/* ===== trajetoria ===== */
/* trajetória · portada do site 2 (prefixo tj-, base t2-), com fontes e cores próprias */
@font-face{font-family:'Gambetta';src:url('../fonts/gambetta-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Gambetta';src:url('../fonts/gambetta-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Gambetta';src:url('../fonts/gambetta-500-italic.woff2') format('woff2');font-weight:500;font-style:italic;font-display:swap}
@font-face{font-family:'Gambetta';src:url('../fonts/gambetta-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Switzer';src:url('../fonts/switzer-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Switzer';src:url('../fonts/switzer-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Switzer';src:url('../fonts/switzer-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
.tj{/* cor — amostrada do retrato (parede cinza, pijama marinho, pele) */
  --papel:#eceae6;          /* base: parede do retrato, aquecida */
  --papel-claro:#f6f4f0;    /* faixa institucional, luz */
  --parede:#d8d5d1;         /* cinza da parede */
  --nevoa:#e1e1e6;          /* cinza frio da parede */
  --pele:#efe0d6;           /* tom da pele, muito diluído */
  --luz:#fffaf1;            /* luz de janela */
  --marinho:#1e2747;        /* pijama */
  --marinho-fundo:#141a31;
  --tinta:#232a40;          /* texto */
  --tinta-2:#4b5164;        /* texto de apoio */
  --tinta-3:#6a6f7e;        /* rótulos */
  --bordo:#8e2333;          /* acento: fio-guia */
  --latao:#9a7b4c;          /* estrelas, detalhe */
  --fio:rgba(30,39,71,.16);
  --branco:#fbfaf8;
  --marinho-2:#2a3558;
  --bordo-claro:#d26b78;
  --sobre-marinho:#f3f1ed;
  --sobre-marinho-2:#c9ccd8;
  --sombra:0 24px 50px -24px rgb(20 26 49 / .35);
  --t-secao:clamp(2rem, 1.2rem + 2.6vw, 3.4rem);
  --t-sub:clamp(1.35rem, 1.1rem + .9vw, 1.9rem);
  --t-lead:clamp(1.05rem, .98rem + .3vw, 1.22rem);
  --respiro:clamp(5rem, 10vw, 9rem);

  /* tipo */
  --serifa:'Gambetta', 'Iowan Old Style', Georgia, serif;
  --sans:'Switzer', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --t-titulo:clamp(2.35rem, min(1.2rem + 3.6vw, 7.4vh + .2rem), 4.4rem);
  --t-apoio:clamp(1rem, .94rem + .25vw, 1.125rem);
  --t-rotulo:clamp(.66rem, .62rem + .14vw, .75rem);

  /* espaço */
  --margem:clamp(1.375rem, 4.2vw, 4.5rem);
  --largura:1320px;
  --nav-h:clamp(68px, 6vw, 88px);
  --faixa-h:clamp(104px, 9vw, 124px);
  --gutter:clamp(14px, 1.9vw, 28px);
  --ease:cubic-bezier(.22,.7,.18,1);
}
.tj{font-family:var(--sans);font-size:16px;line-height:1.55;color:var(--tinta);scroll-margin-top:1rem;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.tj img{max-width:none}
@keyframes pulso{0%{box-shadow:0 0 0 0 rgb(142 35 51 / .45)}100%{box-shadow:0 0 0 12px rgb(142 35 51 / 0)}}
.t2{position:relative;padding:var(--respiro) 0;isolation:isolate;overflow:clip}
.t2__in{position:relative;max-width:var(--largura);margin:0 auto;padding:0 var(--margem)}
.t2-papel{background:var(--papel)}
.t2-marinho{background:var(--marinho);color:var(--sobre-marinho)}
.t2-marinho::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:
  radial-gradient(60% 70% at 85% 10% in oklab,rgb(52 66 106 / .9),rgb(52 66 106 / 0)),
  radial-gradient(50% 60% at 8% 95% in oklab,rgb(90 30 48 / .35),rgb(90 30 48 / 0)),
  radial-gradient(40% 50% at 40% 40% in oklab,rgb(42 53 88 / .7),rgb(42 53 88 / 0))}
.t2-grao::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.045;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 1.1 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");background-size:220px 220px}
.t2-marinho.t2-grao::after{mix-blend-mode:screen;opacity:.05}
.t2-rotulo{display:flex;align-items:center;gap:.9rem;margin:0 0 1.4rem;font-size:var(--t-rotulo);font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--tinta-3);line-height:1.6}
.t2-rotulo::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:var(--bordo);box-shadow:0 0 0 0 rgb(142 35 51 / .35)}
.t2-rotulo::after{content:"";flex:0 0 clamp(32px,4vw,56px);height:1px;background:var(--bordo);order:-1;display:none}
.t2-rotulo i{flex:0 0 clamp(28px,3.4vw,48px);height:1px;background:var(--bordo);transform-origin:left;order:0}
.t2-marinho .t2-rotulo{color:var(--sobre-marinho-2)}
.t2-marinho .t2-rotulo::before,.t2-marinho .t2-rotulo i{background:var(--bordo-claro)}
.js .t2-rotulo[data-rev] i{transform:scaleX(0);transition:transform 1.1s cubic-bezier(.55,.05,.25,1) .25s}
.js .t2-rotulo[data-rev].visto i{transform:scaleX(1)}
.js .t2-rotulo[data-rev].visto::before{animation:pulso 1.4s var(--ease) .1s 1}
.t2-titulo{margin:0;font-family:var(--serifa);font-weight:500;font-size:var(--t-secao);line-height:1.06;letter-spacing:-.018em;color:var(--marinho);text-wrap:balance}
.t2-titulo em{font-style:italic}
.t2-marinho .t2-titulo{color:var(--sobre-marinho)}
.t2-marinho .t2-titulo em{color:#e9dcd0}
.t2-sub{margin:0;font-family:var(--serifa);font-weight:500;font-size:var(--t-sub);line-height:1.2;letter-spacing:-.01em;color:var(--marinho)}
.t2-marinho .t2-sub{color:var(--sobre-marinho)}
.t2-lead{margin:1.4rem 0 0;max-width:36em;font-size:var(--t-lead);line-height:1.62;color:var(--tinta-2);text-wrap:pretty}
.t2-marinho .t2-lead{color:var(--sobre-marinho-2)}
.t2-texto{font-size:1rem;line-height:1.68;color:var(--tinta-2);text-wrap:pretty}
.t2-marinho .t2-texto{color:var(--sobre-marinho-2)}
.t2-marinho .t2-mini{color:var(--sobre-marinho-2)}
.t2-citacao{margin:0;padding-left:1.2rem;border-left:1px solid var(--bordo)}
.t2-citacao p{margin:0;font-family:var(--serifa);font-style:italic;font-weight:500;font-size:clamp(1.1rem,1rem + .4vw,1.35rem);line-height:1.45;color:var(--marinho)}
.t2-citacao cite{display:block;margin-top:.7rem;font-style:normal;font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--tinta-3)}
.t2-marinho .t2-citacao{border-color:var(--bordo-claro)}
.t2-marinho .t2-citacao p{color:var(--sobre-marinho)}
.t2-marinho .t2-citacao cite{color:var(--sobre-marinho-2)}
.t2-link{display:inline-flex;align-items:center;gap:.55rem;font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--marinho);text-decoration:none;padding:.5rem 0;border-bottom:1px solid var(--bordo)}
.t2-link:hover{color:var(--bordo)}
.t2-link:focus-visible{outline:2px solid var(--bordo);outline-offset:3px}
.t2-marinho .t2-link{color:var(--sobre-marinho);border-color:var(--bordo-claro)}
.t2-marinho .t2-legenda{color:var(--sobre-marinho-2)}

/* 5 · trajetória (tj-) */

/* ---------- abertura: retrato + quem é ---------- */
.tj-abre{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(2.5rem,7vw,7.5rem);align-items:center}
.tj-retrato{position:relative;margin:0;padding:0 0 0 var(--gutter)}
.tj-retrato__moldura{position:relative;aspect-ratio:1062/1480;padding:10px;background:var(--branco);box-shadow:var(--sombra),0 0 0 1px rgb(30 39 71 / .06)}
.tj-retrato__moldura img{width:100%;height:100%;object-fit:cover;background:#4a4440}
.tj-retrato__selo{position:absolute;right:clamp(-64px,-4vw,-28px);bottom:calc(2.2rem + clamp(40px,7%,80px));width:clamp(110px,10vw,148px);height:auto;filter:drop-shadow(0 14px 22px rgb(20 26 49 / .3))}
.tj-retrato__leg{margin-top:.9rem;font-size:.72rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--tinta-2)}

.tj-abre__texto{max-width:36rem}
.tj-abre__titulo{max-width:12em}
.tj-abre__p{margin:1.1rem 0 0;max-width:34em}
.tj-abre__cit{margin-top:2.2rem;max-width:30em}

/* faixa de números (padrão da faixa do hero) */
.tj-numeros{list-style:none;margin:clamp(3.5rem,7vw,6rem) 0 0;padding:0;display:grid;grid-template-columns:.95fr 1.02fr .95fr 1.24fr;background:var(--papel-claro);border-top:1px solid var(--fio);border-bottom:1px solid var(--fio);box-shadow:0 1px 0 rgb(255 255 255 / .7) inset}
.tj-num{position:relative;display:flex;align-items:center;gap:1rem;padding:1.6rem clamp(1rem,2vw,2rem);min-height:var(--faixa-h)}
.tj-num + .tj-num::before{content:"";position:absolute;left:0;top:26%;bottom:26%;width:1px;background:var(--fio)}
.tj-num__n{font-family:var(--serifa);font-weight:500;font-size:clamp(1.7rem,1.2rem + 1.2vw,2.5rem);line-height:1;letter-spacing:-.02em;color:var(--marinho);white-space:nowrap}
.tj-num__n small{font-size:.5em;letter-spacing:0}
.tj-num__t{font-size:.8rem;line-height:1.45;color:var(--tinta-2);white-space:nowrap}

/* ---------- formação: faixa marinho com mapa ---------- */
.tj-banda{position:relative;isolation:isolate;margin-top:var(--respiro);padding:var(--respiro) 0}
.tj-form__cab{max-width:44rem}
.tj-form__titulo{font-size:clamp(1.9rem,1.1rem + 2.3vw,3.1rem)}
.tj-form__corpo{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-template-areas:"lista mapa";gap:clamp(2rem,5vw,5rem);margin-top:clamp(2.5rem,5vw,4rem);align-items:start}

/* mapa */
.tj-mapa{grid-area:mapa;position:sticky;top:96px}
.tj-mapa__quadro{position:relative;aspect-ratio:16/10;overflow:hidden;background:#19213d;border:1px solid rgb(243 241 237 / .14);box-shadow:0 30px 60px -30px rgb(5 8 20 / .6)}
.tj-mapa__terra{position:absolute;inset:0;width:100%;height:100%;display:block;--u:1}
.tj-mapa__grade{fill:none;stroke:rgb(201 204 216 / .09);stroke-width:calc(var(--u) * 1px)}
.tj-mapa__solo{fill:#2b365e}
.tj-mapa__fronteira{fill:none;stroke:rgb(201 204 216 / .2);stroke-width:calc(var(--u) * .8px)}
.tj-rota{fill:none;stroke:var(--bordo-claro);stroke-width:calc(var(--u) * 1.3px);stroke-linecap:round;stroke-dasharray:1 1;stroke-dashoffset:1;opacity:0;transition:stroke-dashoffset 1.5s cubic-bezier(.55,.05,.25,1) .25s,opacity .5s var(--ease)}
.tj-rota.feita{stroke-dashoffset:0;opacity:.42}
.tj-rota.atual{stroke-dashoffset:0;opacity:1}
.tj-mapa__grade2{fill:none;stroke:rgb(201 204 216 / .07);stroke-width:calc(var(--u) * 1px);transition:opacity .4s}
.tj-mar{position:absolute;left:0;top:0;white-space:nowrap;font:italic 500 .9rem/1 var(--serifa);letter-spacing:.06em;color:rgb(201 204 216 / .66);opacity:0;transition:opacity .6s var(--ease)}
.tj-mar.ve{opacity:1}
.tj-mapa__escala{position:absolute;right:16px;bottom:14px;display:flex;flex-direction:column;align-items:flex-end;gap:.35rem;pointer-events:none}
.tj-mapa__escala i{display:block;height:5px;border:1px solid rgb(243 241 237 / .55);border-top:0;transition:width .3s var(--ease)}
.tj-mapa__escala span{font-size:.72rem;letter-spacing:.08em;color:var(--sobre-marinho-2)}
.tj-mapa__canto{position:absolute;width:14px;height:14px;border:0 solid rgb(243 241 237 / .5);pointer-events:none}
.tj-mapa__canto--a{left:10px;top:10px;border-left-width:1px;border-top-width:1px}
.tj-mapa__canto--b{left:10px;bottom:10px;border-left-width:1px;border-bottom-width:1px}

.tj-mapa__pinos{position:absolute;inset:0;pointer-events:none}
.tj-pino{position:absolute;left:0;top:0;width:0;height:0;opacity:0;transition:opacity .45s var(--ease)}
.tj-pino.ve{opacity:1}
.tj-pino i{position:absolute;left:-3.5px;top:-3.5px;width:7px;height:7px;border-radius:50%;background:var(--sobre-marinho);box-shadow:0 0 0 3px rgb(30 39 71 / .55)}
.tj-pino.ativo i{background:var(--bordo-claro)}
.tj-pino.ativo i::after{content:"";position:absolute;inset:-1px;border-radius:50%;border:1px solid var(--bordo-claro);animation:tj-halo 1.6s var(--ease) 2}
@keyframes tj-halo{0%{transform:scale(1);opacity:.9}100%{transform:scale(4.4);opacity:0}}
.tj-pino b{position:absolute;top:-.62em;white-space:nowrap;font:500 .875rem/1.2 var(--sans);letter-spacing:.02em;color:var(--sobre-marinho-2);text-shadow:0 1px 8px rgb(20 26 49 / .9)}
.tj-pino.ativo b{color:#fff}
.tj-pino--d b{left:12px}
.tj-pino--e b{right:12px}
.tj-pino--c b{left:50%;top:-1.9rem;transform:translateX(-50%)}
.tj-pino--grupo i{display:none}
.tj-pino--grupo b{white-space:nowrap;font-family:var(--serifa);font-style:italic;font-size:.95rem;color:var(--sobre-marinho-2);transform:translate(-50%,0);left:0;top:0}

.tj-mapa__leg{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:.4rem 1.1rem;padding:1rem 0 0;border-bottom:1px solid rgb(243 241 237 / .14);padding-bottom:1rem}
.tj-mapa__ano{font-family:var(--serifa);font-weight:500;font-size:1.6rem;line-height:1;color:var(--sobre-marinho)}
.tj-mapa__lugar{font-size:.95rem;color:var(--sobre-marinho)}
.tj-mapa__coord{font-size:.75rem;letter-spacing:.08em;color:var(--sobre-marinho-2);font-variant-numeric:tabular-nums}

/* lista de etapas */
.tj-col{grid-area:lista;min-width:0}
.tj-lista{list-style:none;margin:0;padding:0;counter-reset:tj}
.tj-et{position:relative;display:grid;grid-template-columns:7.2rem minmax(0,1fr);gap:1.2rem;padding:1.7rem 0 1.9rem;border-top:1px solid rgb(243 241 237 / .14);transition:opacity .5s var(--ease)}
.tj-et:last-child{border-bottom:1px solid rgb(243 241 237 / .14)}
.tj-et::before{content:"";position:absolute;left:0;top:-1px;width:100%;height:1px;background:var(--bordo-claro);transform:scaleX(0);transform-origin:left;transition:transform .9s cubic-bezier(.55,.05,.25,1)}
.tj-et__ano{margin:0;font-family:var(--serifa);font-weight:500;font-size:1.3rem;line-height:1.15;color:var(--sobre-marinho);letter-spacing:-.01em}
.tj-et__corpo{min-width:0}
.tj-et__onde{margin:0 0 .45rem;font-size:.75rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#e08a95}
.tj-et__tit{margin:0;font-family:var(--serifa);font-weight:500;font-size:clamp(1.18rem,1.05rem + .4vw,1.42rem);line-height:1.2;color:var(--sobre-marinho);text-wrap:balance}
.tj-et__txt{margin:.6rem 0 0;font-size:.95rem;line-height:1.62;color:var(--sobre-marinho-2);text-wrap:pretty}
.tj-et__sub{list-style:none;margin:.8rem 0 0;padding:0}
.tj-et__sub li{padding:.5rem 0;border-top:1px dashed rgb(243 241 237 / .14);font-size:.95rem;line-height:1.5;color:var(--sobre-marinho-2)}
.tj-et__sub span{display:block;font-size:.75rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--sobre-marinho)}
.tj-et__ano,.tj-et__tit,.tj-et__txt,.tj-et__onde,.tj-et__sub li,.tj-et__sub span{transition:color .5s var(--ease)}
.js .tj-lista.vivo .tj-et:not(.ativa) :is(.tj-et__ano,.tj-et__tit){color:#b4b8c7}
.js .tj-lista.vivo .tj-et:not(.ativa) :is(.tj-et__txt,.tj-et__sub li){color:#9da2b5}
.js .tj-lista.vivo .tj-et:not(.ativa) :is(.tj-et__onde,.tj-et__sub span){color:#a3a8ba}
.tj-resumo{padding:2.2rem 0 .5rem}
.tj-resumo__t{margin:0 0 1.1rem;font-size:.75rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--sobre-marinho-2)}
.tj-resumo__nums{list-style:none;margin:0;padding:0;display:flex;gap:clamp(1.4rem,3vw,2.6rem)}
.tj-resumo__nums li{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--sobre-marinho-2)}
.tj-resumo__nums span{font-family:var(--serifa);font-weight:500;font-size:clamp(2.2rem,1.6rem + 1.4vw,3rem);line-height:1;color:var(--sobre-marinho)}
.tj-resumo__nums span{transition:color .5s var(--ease)}
.js .tj-lista.vivo ~ .tj-resumo:not(.ativa) .tj-resumo__nums span{color:#b4b8c7}
.js .tj-lista.vivo .tj-et.ativa{opacity:1}
.js .tj-lista.vivo .tj-et.ativa::before{transform:scaleX(1)}

/* ---------- títulos, prêmios, publicações ---------- */
.tj-tit{margin-top:var(--respiro)}
.tj-tit__cab{display:flex;flex-direction:column}
.tj-tit__titulo{font-size:clamp(1.6rem,1.2rem + 1.2vw,2.3rem)}
.tj-selos{list-style:none;margin:clamp(2rem,4vw,3rem) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);background:var(--papel-claro);border-top:3px double rgb(30 39 71 / .28);border-bottom:3px double rgb(30 39 71 / .28)}
.tj-selo{position:relative;display:flex;flex-direction:column;align-items:flex-start;padding:clamp(1.8rem,3vw,2.6rem) clamp(1.4rem,2.6vw,2.6rem)}
.tj-selo + .tj-selo::before{content:"";position:absolute;left:0;top:1.4rem;bottom:1.4rem;width:1px;background:var(--fio)}
.tj-selo__sigla{font-family:var(--serifa);font-weight:500;font-size:clamp(2.2rem,1.6rem + 1.6vw,3.2rem);line-height:1;letter-spacing:.02em;color:var(--marinho)}
.tj-selo__cargo{display:flex;align-items:center;gap:.7rem;margin-top:1.3rem;font-size:.75rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--bordo)}
.tj-selo__cargo::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--bordo);flex:none}
.tj-selo__nome{margin-top:.55rem;font-size:.95rem;line-height:1.5;color:var(--tinta-2)}

.tj-tit__grade{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(2rem,6vw,6rem);margin-top:clamp(3rem,6vw,4.5rem)}
.tj-tit__h{margin:0 0 1rem;font-size:.75rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--tinta-2)}
.tj-premios__lista,.tj-pub__lista{list-style:none;margin:0;padding:0}
.tj-premios__lista li{display:grid;grid-template-columns:4.4rem 6.4rem minmax(0,1fr);align-items:baseline;gap:1rem;padding:1rem 0;border-top:1px solid var(--fio)}
.tj-premios__lista li:last-child{border-bottom:1px solid var(--fio)}
.tj-premios__ano{font-family:var(--serifa);font-weight:500;font-size:1.5rem;line-height:1;color:var(--marinho)}
.tj-premios__lug{font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--bordo)}
.tj-premios__nome{font-size:.98rem;line-height:1.45;color:var(--tinta)}
.tj-premios__nome small{display:block;margin-top:.2rem;font-size:.88rem;line-height:1.45;color:var(--tinta-2)}
.tj-pub__lista li{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:1rem 0;border-top:1px solid var(--fio);font-size:.98rem;line-height:1.4;color:var(--tinta)}
.tj-pub__lista li:last-child{border-bottom:1px solid var(--fio)}
.tj-pub__lista i{font-family:var(--serifa);font-weight:500;font-size:1.12rem;color:var(--marinho)}
.tj-pub__lista span{flex:none;font-size:.8rem;letter-spacing:.06em;color:var(--tinta-2);font-variant-numeric:tabular-nums}
.tj-pub__idiomas{margin:1.1rem 0 0;font-size:.95rem;color:var(--tinta-2)}

.tj-fecho{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem 4rem;flex-wrap:wrap;margin-top:clamp(3rem,6vw,4.5rem);padding-top:clamp(2rem,4vw,3rem);border-top:1px solid var(--fio)}
.tj-fecho__cit{max-width:34em}
.tj-fecho .t2-link{min-height:48px}

/* ---------- entrada ---------- */
.js .tj-retrato[data-rev]{transform:translateY(22px)}
.js .tj-retrato[data-rev] .tj-retrato__selo{opacity:0;transform:rotate(-14deg) scale(.92);transition:opacity .9s var(--ease) .7s,transform 1.4s var(--ease) .7s}
.js .tj-retrato[data-rev].visto .tj-retrato__selo{opacity:1;transform:none}

/* ---------- notebook ---------- */
@media (max-width:1180px){
  .tj-num{flex-direction:column;align-items:flex-start;gap:.6rem}
  .tj-form__corpo{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}
  .tj-et{grid-template-columns:1fr;gap:.4rem}
}
@media (min-width:861px) and (max-height:760px){
  .tj-mapa{top:80px}
  .tj-mapa__quadro{aspect-ratio:2/1}
}

/* ---------- tablet e celular ---------- */
@media (max-width:860px){
  .tj-abre{display:flex;flex-direction:column;gap:0}
  .tj-abre__texto{display:contents}
  .tj-abre .t2-rotulo{order:1}
  .tj-abre__titulo{order:2}
  .tj-retrato{order:3;margin:2rem clamp(1.6rem,8vw,3rem) 0 0;padding-left:0}
  .tj-abre .t2-lead{order:4;margin-top:2.2rem}
  .tj-abre__p{order:5}
  .tj-abre__cit{order:6}
  .tj-retrato__moldura{aspect-ratio:4/4.6;padding:8px}
  .tj-retrato__moldura img{object-position:50% 18%}
  .tj-retrato__selo{right:clamp(-1.6rem,-6vw,-1rem);bottom:calc(2.6rem + 18px);width:clamp(96px,27vw,128px)}
  .tj-retrato__leg{font-size:.875rem;letter-spacing:.1em}
  .tj-numeros{grid-template-columns:1fr 1fr;margin-top:3rem}
  .tj-num{padding:1.2rem 1rem;min-height:0}
  .tj-num:nth-child(odd){padding-left:0}
  .tj-numeros{background:none;box-shadow:none}
  .tj-num + .tj-num::before{display:none}
  .tj-num:nth-child(2n)::before{content:"";display:block;position:absolute;left:0;top:18%;bottom:18%;width:1px;background:var(--fio)}
  .tj-num:nth-child(n+3){border-top:1px solid var(--fio)}
  .tj-num__n{font-size:1.75rem}
  .tj-num__t{font-size:.875rem;white-space:normal}

  .tj-form__corpo{display:block;margin-top:2.2rem}
  .tj-mapa{position:sticky;top:0;z-index:3;margin:0 calc(-1 * var(--margem));padding:0;background:var(--marinho);transition:top .45s var(--ease)}
  .tj.nav-ve .tj-mapa{top:62px}
  .tj-mapa__quadro{border-left:0;border-right:0;aspect-ratio:16/9}
  .tj-mapa__leg{position:relative;padding:.75rem var(--margem);grid-template-columns:auto 1fr;gap:.2rem .9rem;background:var(--marinho)}
  .tj-mapa__leg::after{content:"";position:absolute;left:0;right:0;top:100%;height:28px;background:linear-gradient(var(--marinho),rgb(30 39 71 / 0));pointer-events:none}
  .tj-mapa__ano{font-size:1.3rem;grid-row:span 2}
  .tj-mapa__lugar{font-size:.9rem}
  .tj-mapa__coord{grid-column:2;font-size:.875rem}
  .tj-et{grid-template-columns:1fr;gap:.35rem;padding:1.5rem 0 1.7rem}
  .tj-et__ano{font-size:1.25rem}
  .tj-et__onde{font-size:.875rem;letter-spacing:.12em}
  .tj-et__sub span{font-size:.875rem;letter-spacing:.1em}
  .tj-resumo__t{font-size:.875rem;letter-spacing:.14em}
  .tj-resumo__nums li{font-size:.9375rem}
  .tj-mapa__escala span{font-size:.875rem}
  .tj-abre__cit cite,.tj-fecho__cit cite{font-size:.875rem;letter-spacing:.1em}
  .tj-pino b{font-size:.875rem}

  .tj-selos{grid-template-columns:1fr}
  .tj-selo{display:grid;grid-template-columns:7.2rem minmax(0,1fr);grid-template-rows:auto auto;column-gap:1rem;align-items:center;padding:1.3rem 1.1rem}
  .tj-selo + .tj-selo::before{left:1.1rem;right:1.1rem;top:0;bottom:auto;width:auto;height:1px}
  .tj-selo__sigla{grid-row:span 2;font-size:1.65rem}
  .tj-selo__cargo{margin-top:0;font-size:.875rem;letter-spacing:.1em}
  .tj-selo__cargo::before{display:none}
  .tj-selo__nome{margin-top:.2rem;font-size:.9rem}
  .tj-tit__grade{grid-template-columns:1fr;gap:3rem}
  .tj-tit__h{font-size:.875rem;letter-spacing:.16em}
  .tj-premios__lista li{grid-template-columns:3.6rem minmax(0,1fr);row-gap:.25rem}
  .tj-premios__lug{grid-column:2;font-size:.875rem;letter-spacing:.1em}
  .tj-premios__nome{grid-column:2}
  .tj-premios__ano{grid-row:span 2;font-size:1.35rem}
  .tj-pub__lista span{font-size:.875rem}
  .tj-fecho{flex-direction:column;align-items:flex-start;padding-bottom:1rem}
}
@media (max-width:860px) and (max-height:700px){
  .tj-mapa__quadro{aspect-ratio:2/1}
}
@media (prefers-reduced-motion:reduce){
  .tj *,.tj *::before,.tj *::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;transition-delay:0s !important}
}

/* ===== formação · prefixo fo- · noite-2 ===== */
.fo { overflow: clip; }
.fo-malha {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(closest-side in oklch, color-mix(in oklch, var(--c-bordo-sombra) 70%, transparent), transparent) -18% 78% / 70vw 70vw no-repeat,
    radial-gradient(closest-side in oklch, color-mix(in oklch, var(--c-marinho) 85%, transparent), transparent) 110% 6% / 64vw 64vw no-repeat;
  animation: fo-malha 34s ease-in-out infinite alternate;
}
@keyframes fo-malha { to { background-position: -8% 70%, 100% 14%; } }

.fo-grade {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(19rem, 29rem);
  column-gap: clamp(3rem, 6vw, 6.5rem);
}
.fo-cabeca { grid-column: 1; grid-row: 1; }
.fo-titulo { max-width: 12ch; }
.fo-titulo__n { font-variant-numeric: tabular-nums; white-space: nowrap; }
.fo-lead { margin-top: 1.6rem; max-width: 44ch; }

/* ---------- retrato ---------- */
.fo-foto { grid-column: 2; grid-row: 1 / span 2; align-self: start; position: sticky; top: 5.5rem; }
.fo-foto__quadro { position: relative; }
.fo-foto__topo {
  display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .9rem; margin: 0 0 .9rem;
  font-size: var(--c-t-mini); letter-spacing: .14em; text-transform: uppercase; font-weight: 500; font-variant-numeric: tabular-nums;
  color: var(--c-prata);
}
.fo-foto__n::before { content: ""; display: inline-block; width: .45rem; height: .45rem; border-radius: 50%; background: var(--c-bordo-vivo); box-shadow: 0 0 10px var(--c-bordo-vivo); margin-right: .6rem; vertical-align: .1em; }
.fo-foto__lugar { color: var(--c-texto-3); }
.fo-foto__arq { display: none; color: var(--c-texto-3); }
/* a tela: marcas de canto do monitor, por fora da foto */
.fo-foto__tela { position: relative; }
.fo-foto__tela::before {
  --k: color-mix(in oklab, var(--c-prata) 60%, transparent);
  content: ""; position: absolute; inset: -9px; pointer-events: none;
  background:
    linear-gradient(var(--k), var(--k)) 0 0 / 16px 1px, linear-gradient(var(--k), var(--k)) 0 0 / 1px 16px,
    linear-gradient(var(--k), var(--k)) 100% 0 / 16px 1px, linear-gradient(var(--k), var(--k)) 100% 0 / 1px 16px,
    linear-gradient(var(--k), var(--k)) 0 100% / 16px 1px, linear-gradient(var(--k), var(--k)) 0 100% / 1px 16px,
    linear-gradient(var(--k), var(--k)) 100% 100% / 16px 1px, linear-gradient(var(--k), var(--k)) 100% 100% / 1px 16px;
  background-repeat: no-repeat;
}
.fo-foto__img {
  width: 100%; height: auto; max-height: 62svh; object-fit: cover; object-position: 50% 18%;
  border-radius: 6px;
  box-shadow: 0 30px 70px -30px rgb(0 0 0 / .8), 0 0 0 1px color-mix(in oklab, var(--c-prata) 14%, transparent);
}
.fo-foto__legenda { display: grid; gap: .55rem; margin-top: 1.3rem; }
.fo-foto__fala { font-style: italic; color: var(--c-texto); font-size: 1.05rem; line-height: 1.5; text-wrap: pretty; }
.fo-foto__quem { font-size: var(--c-t-mini); color: var(--c-texto-3); }
/* trilho do filme: quanto da trajetória o contraste já percorreu */
.fo-foto__trilho { display: flex; align-items: center; gap: .8rem; margin-top: .9rem; font-size: var(--c-t-mini); letter-spacing: .12em; font-variant-numeric: tabular-nums; color: var(--c-texto-3); }
.fo-foto__barra { position: relative; flex: 1; height: 1px; background: var(--s-linha-escura); }
.fo-foto__barra i { position: absolute; left: 0; top: 0; height: 1px; width: calc(var(--fo-p, 1) * 100%); background: linear-gradient(to right, transparent, var(--c-prata)); }
.fo-foto__barra i::after { content: ""; position: absolute; right: -3px; top: -3px; width: 7px; height: 7px; border-radius: 50%; background: var(--c-bordo-vivo); box-shadow: 0 0 10px var(--c-bordo-vivo); }

/* ---------- o vaso ---------- */
.fo-vaso { grid-column: 1; grid-row: 2; list-style: none; margin: clamp(3rem, 6vw, 5rem) 0 0; padding: 0; position: relative; --fo-x: 12rem; }
.fo-vaso__svg { position: absolute; left: 0; top: 0; overflow: visible; pointer-events: none; z-index: 0; }
.fo-vaso__parede { fill: var(--c-prata); opacity: .42; }
.fo-vaso__lumen { fill: var(--c-noite); }
.fo-vaso__contraste { opacity: .82; filter: drop-shadow(0 0 6px rgb(201 212 226 / .4)); }
.fo-vaso__nucleo { fill: #fff; opacity: .9; }
.fo-vaso__alvo { fill: none; stroke: var(--c-bordo-vivo); stroke-width: 1; opacity: 0; transform-box: fill-box; transform-origin: center; transform: scale(.4); transition: opacity .6s var(--c-ease), transform .9s var(--c-ease); }
.fo-vaso__svg--chegou .fo-vaso__alvo { opacity: .8; transform: none; }
.fo-vaso__ramo { transition: stroke-dashoffset .7s linear; }
.fo-vaso__ponta { fill: var(--c-bordo-vivo); transition: opacity .3s; }
.fo-vaso__halo { fill: var(--c-bordo-vivo); opacity: .22; filter: blur(3px); transition: opacity .3s; }
/* sem o desenho (sem JS): um tronco simples */
.fo-vaso:not(.fo-vaso--desenhado)::before {
  content: ""; position: absolute; left: var(--fo-x); top: 2.6rem; bottom: 2rem; width: 3px; margin-left: -1.5px; border-radius: 3px;
  background: linear-gradient(to bottom, var(--c-prata), color-mix(in oklab, var(--c-prata) 30%, transparent));
}
.fo-quadro {
  display: grid; grid-template-columns: 9.5rem 5rem minmax(0, 1fr);
  padding: 2.1rem 0; position: relative; z-index: 1;
}
.fo-quadro__ano {
  grid-column: 1; margin: 0; text-align: right;
  font-family: var(--c-f-titulo); font-weight: 600; font-size: clamp(2.2rem, 1.6rem + 1vw, 2.75rem); line-height: 1; letter-spacing: -.03em;
  font-variant-numeric: tabular-nums; color: var(--c-texto);
  transition: color .6s var(--c-ease);
}
.fo-quadro__ate { display: block; margin-top: .45rem; font-family: var(--c-f-texto); font-weight: 500; font-size: 1rem; letter-spacing: .04em; color: var(--c-texto-3); }
.fo-quadro__no { grid-column: 2; justify-self: center; width: 1px; height: 1px; margin-top: .9rem; }
.fo-quadro__corpo { grid-column: 3; min-width: 0; }
.fo-quadro__frame {
  position: relative; margin: .55rem 0 .65rem;
  font-size: var(--c-t-mini); letter-spacing: .14em; text-transform: uppercase; font-weight: 500; color: var(--c-prata);
}
.fo-quadro__alvo { position: absolute; left: -.55rem; top: 50%; width: 0; height: 0; }
.fo-quadro__titulo { margin: 0 0 .55rem; font-family: var(--c-f-titulo); font-weight: 500; font-size: clamp(1.2rem, 1.05rem + .55vw, 1.55rem); line-height: 1.18; letter-spacing: -.02em; color: var(--c-texto); text-wrap: balance; }
.fo-quadro__texto { color: var(--c-texto-2); max-width: 52ch; text-wrap: pretty; }

/* estado da rolagem: só quando o JS desenha o vaso */
.fo-vaso--vivo .fo-quadro:not(.fo-quadro--aceso) .fo-quadro__ano { color: var(--c-texto-3); }
.fo-quadro--hoje.fo-quadro--aceso .fo-quadro__ano, .fo-vaso:not(.fo-vaso--vivo) .fo-quadro--hoje .fo-quadro__ano { color: var(--c-bordo-vivo); }

/* ramos finos dentro de cada quadro */
.fo-galhos { list-style: none; margin: 1.2rem 0 0; padding: 0; display: grid; }
.fo-galhos li { position: relative; padding: 0 0 .85rem 1.7rem; color: var(--c-texto-2); line-height: 1.45; }
.fo-galhos li::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; border-left: 1.5px solid color-mix(in oklab, var(--c-prata) 38%, transparent); }
.fo-galhos li:last-child::before { display: none; }
.fo-galhos li::after { content: ""; position: absolute; left: 0; top: -.1rem; width: 1.15rem; height: .85rem; border-left: 1.5px solid color-mix(in oklab, var(--c-prata) 38%, transparent); border-bottom: 1.5px solid color-mix(in oklab, var(--c-prata) 38%, transparent); border-bottom-left-radius: .7rem; }
.fo-galhos b { display: block; font-weight: 500; font-size: var(--c-t-mini); letter-spacing: .12em; text-transform: uppercase; color: var(--c-prata); }

.fo-aluna { margin: 1.4rem 0 0; padding: 1rem 0 0 1.2rem; border-left: 1px solid color-mix(in oklab, var(--c-bordo-vivo) 60%, transparent); }
.fo-aluna p { font-style: italic; color: var(--c-texto); font-size: 1.05rem; }
.fo-aluna footer { margin-top: .4rem; font-size: var(--c-t-mini); color: var(--c-texto-3); }

/* ---------- ficha: o painel de leitura ---------- */
.fo-ficha {
  display: grid; grid-template-columns: 1.25fr 1fr 1.1fr; gap: 2rem clamp(2rem, 4vw, 4rem);
  margin-top: clamp(4rem, 7vw, 6rem); padding: clamp(1.6rem, 3vw, 2.6rem);
  border: 1px solid var(--s-linha-escura); border-radius: var(--s-raio);
  background: linear-gradient(160deg, color-mix(in oklab, var(--c-marinho) 55%, transparent), color-mix(in oklab, var(--c-fundo) 70%, transparent));
}
.fo-ficha__leitura {
  grid-column: 1 / -1; display: flex; justify-content: space-between; flex-wrap: wrap; gap: .4rem 1.5rem; margin: 0 0 .4rem; padding-bottom: 1rem;
  border-bottom: 1px solid var(--s-linha-escura);
  font-size: var(--c-t-mini); letter-spacing: .14em; text-transform: uppercase; font-weight: 500; color: var(--c-texto-3);
}
.fo-ficha__tit { margin: 0 0 1rem; font-size: var(--c-t-mini); letter-spacing: .14em; text-transform: uppercase; font-weight: 500; color: var(--c-prata); font-family: var(--c-f-texto); }
.fo-ficha ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .7rem; color: var(--c-texto-2); }
.fo-ficha__anos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem 1rem !important; }
.fo-ficha__anos b { display: block; font-family: var(--c-f-titulo); font-weight: 600; font-size: 1.75rem; line-height: 1.1; letter-spacing: -.03em; color: var(--c-texto); font-variant-numeric: tabular-nums; }
.fo-ficha__primeiro b { color: var(--c-bordo-vivo); }

/* ---------- celular e tablet ---------- */
@media (max-width: 980px) {
  .fo-grade { grid-template-columns: minmax(0, 1fr); }
  .fo-cabeca, .fo-foto, .fo-vaso { grid-column: 1; grid-row: auto; }
  .fo-foto { position: relative; top: auto; margin-top: 2.4rem; max-width: 34rem; }
  .fo-foto__img { max-height: none; aspect-ratio: 4 / 4.6; }
  .fo-foto__n, .fo-foto__lugar { display: none; }
  .fo-foto__arq { display: inline; }
  .fo-foto__trilho { display: none; }
  .fo-vaso { --fo-x: 1.3rem; }
  .fo-quadro__frame { margin-top: 0; }
  .fo-quadro__alvo { left: -.2rem; }
  .fo-quadro { grid-template-columns: 2.6rem minmax(0, 1fr); padding: 1.6rem 0; }
  .fo-quadro__ano { grid-column: 2; grid-row: 1; text-align: left; font-size: 1.75rem; display: flex; align-items: baseline; gap: .5rem; }
  .fo-quadro__ate { display: inline; margin: 0; }
  .fo-quadro__no { grid-column: 1; grid-row: 1; margin-top: .9rem; }
  .fo-quadro__corpo { grid-column: 2; grid-row: 2; margin-top: .8rem; }
  .fo-ficha { grid-template-columns: minmax(0, 1fr); gap: 2.2rem; }
}
@media (prefers-reduced-motion: reduce) { .fo-malha { animation: none; } }

/* ===== pacientes ===== */
/* pacientes (pa-) — chapa: as palavras que se repetem, os números e as falas */
.pa { overflow: clip; }
.pa-malha {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(circle closest-side at 50% 50% in oklab, rgb(255 255 255 / .7), rgb(255 255 255 / 0)) 15% 8% / 64vmax 64vmax no-repeat,
    radial-gradient(circle closest-side at 50% 50% in oklab, color-mix(in oklab, var(--s-chapa-3) 70%, transparent), transparent) 105% 70% / 60vmax 60vmax no-repeat;
}

.pa-topo { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2rem, 5vw, 5rem); align-items: end; }
.pa-titulo__l { display: block; }
.pa-lead { margin-top: 1.5rem; }

.pa-notas { display: grid; gap: 1rem; }
.pa-nota {
  display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto auto; column-gap: 1.4rem; align-items: center;
  padding: 1.1rem 0; border-top: 1px solid var(--s-linha-clara); text-decoration: none; color: inherit;
}
.pa-nota__onde { grid-column: 1 / -1; margin-bottom: .5rem; font-size: var(--c-t-mini); letter-spacing: .14em; text-transform: uppercase; font-weight: 500; color: var(--s-tinta-3); }
.pa-nota__num { grid-row: span 2; font-family: var(--c-f-titulo); font-weight: 700; font-size: clamp(3rem, 2rem + 3vw, 4.6rem); line-height: .9; letter-spacing: -.05em; font-variant-numeric: tabular-nums; }
.pa-nota__estrelas { position: relative; font-size: 1.05rem; letter-spacing: .12em; color: color-mix(in oklab, var(--c-bordo) 22%, transparent); width: max-content; }
.pa-nota__estrelas::before { content: "★★★★★"; }
.pa-nota__estrelas > span { position: absolute; left: 0; top: 0; width: var(--pa-nota); overflow: hidden; white-space: nowrap; color: var(--c-bordo); }
.pa-nota__fonte { color: var(--s-tinta-2); font-size: .95rem; }
.pa-nota__fonte b { color: var(--s-tinta); font-weight: 600; }
.pa-nota:hover .pa-nota__fonte { color: var(--s-tinta); }
.pa-notas__data { margin: 0; }

/* ---------- temas: o contraste enche o vaso até a fração ---------- */
.pa-meio { margin-top: clamp(4rem, 8vw, 6.5rem); display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: start; }
.pa-temas__dica { margin: -.8rem 0 1.2rem; }
html:not(.js) .pa-temas__dica { display: none; }
.pa-temas__titulo { margin: 0 0 1.4rem; font-size: var(--c-t-mini); letter-spacing: .14em; text-transform: uppercase; font-weight: 500; color: var(--s-tinta-2); }
.pa-temas__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: .4rem; }
.pa-tema__botao {
  display: grid; width: 100%; text-align: left; font: inherit; color: inherit; cursor: pointer;
  background: none; border: 0; border-radius: 10px; padding: .9rem 1rem 1rem; margin: 0 -1rem; width: calc(100% + 2rem);
  min-height: 48px; transition: background .25s;
}
.pa-tema__botao:hover { background: color-mix(in oklab, var(--s-chapa-3) 45%, transparent); }
.pa-tema__botao[aria-pressed="true"] { background: color-mix(in oklab, var(--c-bordo) 9%, transparent); }
.pa-tema__botao[aria-pressed="true"] .pa-tema__palavra { color: var(--c-bordo); }
.pa-tema__palavra { display: block; font-family: var(--c-f-titulo); font-weight: 500; font-size: clamp(1.1rem, 1rem + .4vw, 1.35rem); letter-spacing: -.02em; margin-bottom: .9rem; }
/* o vaso: tubo com parede fina; o contraste entra em velocidade constante até a fração, com a ponta do cateter à frente */
.pa-tema__vaso {
  position: relative; display: block; height: 14px; border-radius: 999px;
  background: linear-gradient(to bottom, color-mix(in oklab, var(--s-chapa-3) 80%, var(--s-tinta)) , var(--s-chapa-2) 45%, var(--s-chapa-3));
  box-shadow: inset 0 0 0 1px var(--s-linha-clara);
}
.pa-tema__contraste {
  position: absolute; left: 0; top: 2px; bottom: 2px; width: calc(var(--pa-fr) * 100%);
  border-radius: 999px;
  background: linear-gradient(to bottom, color-mix(in oklch, var(--c-bordo) 80%, white), var(--c-bordo) 55%, color-mix(in oklch, var(--c-bordo) 80%, black));
  clip-path: inset(0 0 0 0 round 999px);
}
.pa-tema__ponta { position: absolute; right: 1px; top: 50%; width: 8px; height: 8px; margin-top: -4px; border-radius: 50%; background: var(--c-bordo-vivo); box-shadow: 0 0 0 3px color-mix(in oklab, var(--c-bordo-vivo) 25%, transparent), 0 0 12px var(--c-bordo-vivo); }
.js .pa-tema .pa-tema__contraste { clip-path: inset(0 100% 0 0 round 999px); }
.js .pa-tema.visto .pa-tema__contraste { clip-path: inset(0 0 0 0 round 999px); transition: clip-path 1.6s linear calc(var(--rev-atraso, 0s) + .3s); }
.pa-tema__contraste { overflow: visible; }
.pa-tema__conta { display: block; margin-top: .7rem; font-size: .95rem; color: var(--s-tinta-2); }
.pa-tema__conta strong { font-family: var(--c-f-titulo); font-weight: 600; color: var(--s-tinta); font-size: 1.1rem; }

/* ---------- falas ---------- */
.pa-falas { margin-top: clamp(3.5rem, 7vw, 5.5rem); }
.pa-fala blockquote p { font-style: italic; color: var(--s-tinta); text-wrap: pretty; }
.pa-fala figcaption { margin-top: .6rem; font-size: var(--c-t-mini); color: var(--s-tinta-3); }
.pa-fala figcaption::before { content: "— "; }
.pa-rota { gap: .7rem; margin-bottom: 1.6rem; }
.pa-rota__fio { position: relative; width: clamp(3rem, 8vw, 7rem); height: .5rem; }
.pa-rota__fio .s-ponta { position: absolute; inset: 0; width: 100%; }
.pa-fala--grande { padding-top: .2rem; }
.pa-fala--grande blockquote p { max-width: 30ch; font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.5rem); line-height: 1.28; letter-spacing: -.01em; text-indent: -.42em; }
.pa-falas__grade { columns: 3 18rem; column-gap: clamp(2rem, 4vw, 3.5rem); }
.pa-falas__grade .pa-fala { break-inside: avoid; padding: 1.4rem 0 1.6rem; border-top: 1px solid var(--s-linha-clara); }
.pa-falas__grade .pa-fala blockquote p { font-size: clamp(1.02rem, .95rem + .3vw, 1.18rem); line-height: 1.5; }
/* o contraste revela os trechos: a marca se enche de bordô claro quando a fala entra */
.pa-fala mark {
  color: inherit; font-weight: 500; padding: .02em .14em; margin: 0 -.14em; border-radius: 4px;
  background: linear-gradient(color-mix(in oklab, var(--c-bordo) 15%, transparent), color-mix(in oklab, var(--c-bordo) 15%, transparent)) 0 0 / 100% 100% no-repeat;
  box-decoration-break: clone; -webkit-box-decoration-break: clone;
  transition: background-color .3s, color .3s;
}
.js .pa-fala[data-rev] mark { background-size: 0% 100%; }
.js .pa-fala[data-rev].visto mark { background-size: 100% 100%; transition: background-size .9s linear calc(var(--rev-atraso, 0s) + .6s), background-color .3s, color .3s; }
/* tema escolhido: as marcas dele acendem, as falas sem ele recuam */
.pa-falas[data-tema] .pa-fala { transition: opacity .4s var(--c-ease); }
.pa-falas[data-tema="a"] .pa-fala:not(:has(mark[data-tema="a"])),
.pa-falas[data-tema="e"] .pa-fala:not(:has(mark[data-tema="e"])),
.pa-falas[data-tema="t"] .pa-fala:not(:has(mark[data-tema="t"])) { opacity: .5; }
.pa-falas[data-tema="a"] mark[data-tema="a"], .pa-falas[data-tema="e"] mark[data-tema="e"], .pa-falas[data-tema="t"] mark[data-tema="t"] { background-color: var(--c-bordo); color: #fff; }
.pa-fim { margin-top: 2.5rem; display: flex; flex-wrap: wrap; gap: .5rem 2rem; }

@media (max-width: 980px) {
  .pa-topo, .pa-meio { grid-template-columns: minmax(0, 1fr); align-items: start; }
}

@media (prefers-reduced-motion: reduce) {
  .js .pa-tema .pa-tema__contraste { clip-path: inset(0 0 0 0 round 999px); }
  .js .pa-fala[data-rev] mark { background-size: 100% 38%; }
}

/* ===== agenda ===== */
/* agenda · prefixo ag- · a agenda real do Doctoralia, escolhida pelo lugar */
.ag { overflow: hidden; }
.ag__malha { position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(circle closest-side in oklch, color-mix(in oklch, var(--c-marinho) 85%, var(--c-prata)), transparent) 100% 30% / 70vmax 70vmax no-repeat,
    radial-gradient(circle closest-side in oklch, color-mix(in oklch, var(--c-bordo-sombra) 90%, transparent), transparent) -10% 105% / 60vmax 60vmax no-repeat;
}

.ag__grade { display: grid; grid-template-columns: minmax(0, 1fr) minmax(400px, 452px); grid-template-areas: "cabeca monitor" "locais monitor" "infos monitor"; grid-template-rows: auto auto 1fr; gap: 0 clamp(3rem, 7vw, 7rem); align-items: start; }
.ag__cabeca { grid-area: cabeca; max-width: 40rem; }
.ag__titulo { margin-bottom: 1.4rem; }
.ag__lead { margin-bottom: clamp(2rem, 4vw, 3rem); }

/* ---------- os quatro lugares ---------- */
.ag__locais { grid-area: locais; position: relative; display: grid; border-top: 1px solid var(--s-linha-escura); }
.ag-local {
  position: relative; display: grid; grid-template-columns: 3rem minmax(0, 1fr) 1.5rem; align-items: start; gap: 0 1rem;
  padding: 1.35rem .25rem 1.35rem 0; text-align: left; font: inherit; color: var(--c-texto-2);
  background: none; border: 0; border-bottom: 1px solid var(--s-linha-escura); cursor: pointer;
  transition: color .3s, background .3s;
}
.ag-local:hover { color: var(--c-texto); }
.ag-local__n { font-family: var(--c-f-titulo); font-weight: 500; font-size: .95rem; color: var(--c-texto-3); padding-top: .2rem; font-variant-numeric: tabular-nums; transition: color .3s; }
.ag-local__corpo { display: grid; gap: .35rem; }
.ag-local__nome { font-family: var(--c-f-titulo); font-weight: 500; font-size: clamp(1.05rem, .95rem + .45vw, 1.35rem); letter-spacing: -.02em; line-height: 1.2; color: var(--c-texto); }
.ag-local__end { font-size: .95rem; line-height: 1.45; }
.ag-local__tags { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .3rem; }
.ag-local__tags span { font-size: .8125rem; letter-spacing: .04em; padding: .22rem .6rem; border-radius: 999px; border: 1px solid var(--s-linha-escura); color: var(--c-texto-2); }
/* o alvo: aceso no lugar escolhido */
.ag-local__alvo { align-self: center; justify-self: end; width: .62rem; height: .62rem; border-radius: 50%; border: 1px solid color-mix(in oklab, var(--c-prata) 45%, transparent); transition: background .3s, border-color .3s, box-shadow .3s; }
.ag-local[aria-selected="true"] { color: var(--c-texto); }
.ag-local[aria-selected="true"] .ag-local__n { color: var(--c-bordo-vivo); }
.ag-local[aria-selected="true"] .ag-local__alvo { background: var(--c-bordo-vivo); border-color: var(--c-bordo-vivo); box-shadow: 0 0 0 5px color-mix(in oklab, var(--c-bordo-vivo) 20%, transparent), 0 0 18px var(--c-bordo-vivo); }
.ag-local[aria-selected="true"]::before { content: ""; position: absolute; left: -1rem; top: 1.2rem; bottom: 1.2rem; width: 2px; border-radius: 2px; background: var(--c-bordo-vivo); }

/* o fio-guia: sai do lugar escolhido e chega à tela da agenda (só desktop) */
.ag__fio { position: absolute; left: 0; top: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.ag__fio path { fill: none; vector-effect: non-scaling-stroke; }
.ag__fio-rastro { stroke: color-mix(in oklab, var(--c-prata) 22%, transparent); stroke-width: 6; stroke-linecap: round; }
.ag__fio-linha { stroke: var(--c-bordo-vivo); stroke-width: 1.25; opacity: .9; }
.ag__fio-ponta { fill: var(--c-bordo-vivo); filter: drop-shadow(0 0 6px var(--c-bordo-vivo)); }
/* a tela acende quando o fio chega */
.ag__monitor.chegou { animation: ag-acende 1.1s var(--c-ease); }
@keyframes ag-acende { 0% { box-shadow: 0 0 0 1px rgb(0 0 0 / .4), 0 40px 90px -40px rgb(0 0 0 / .9), 0 0 0 0 color-mix(in oklab, var(--c-bordo-vivo) 60%, transparent); } 100% { box-shadow: 0 0 0 1px rgb(0 0 0 / .4), 0 40px 90px -40px rgb(0 0 0 / .9), 0 0 0 26px transparent; } }
.ag-monitor__hora { margin-left: auto; font-variant-numeric: tabular-nums; color: var(--c-texto-3); white-space: nowrap; }

/* ---------- a tela (monitor) com a agenda do Doctoralia ---------- */
.ag__monitor { grid-area: monitor; position: sticky; top: 1.5rem; align-self: start; margin-top: .25rem;
  border-radius: 22px; padding: .7rem; background: linear-gradient(160deg, #1a2438, #0d1320 60%);
  border: 1px solid color-mix(in oklab, var(--c-prata) 18%, transparent);
  box-shadow: 0 0 0 1px rgb(0 0 0 / .4), 0 40px 90px -40px rgb(0 0 0 / .9), 0 0 120px -30px color-mix(in oklab, var(--c-aco) 55%, transparent); }
.ag-monitor__barra { display: flex; align-items: center; gap: .7rem; padding: .45rem .55rem .8rem; font-size: .8125rem; letter-spacing: .1em; text-transform: uppercase; color: var(--c-texto-3); }
.ag-monitor__barra b { color: var(--c-prata); font-weight: 500; }
.ag-monitor__vivo { width: .5rem; height: .5rem; border-radius: 50%; background: var(--c-bordo-vivo); box-shadow: 0 0 10px var(--c-bordo-vivo); animation: ag-pulsa 2.4s ease-in-out infinite; flex: none; }
@keyframes ag-pulsa { 50% { opacity: .35; } }
.ag-monitor__tela { position: relative; display: grid; border-radius: 14px; background: #fff; min-height: 34rem; overflow: hidden; }
.ag-agenda { grid-area: 1 / 1; height: 0; overflow: hidden; visibility: hidden; }
.ag-agenda.ativa { height: auto; overflow: visible; visibility: visible; }
.ag-agenda iframe { display: block; width: 100% !important; min-height: 34rem; }
.ag-agenda .zl-url { display: none; }
.ag-monitor__espera { grid-area: 1 / 1; place-self: center; display: grid; justify-items: center; gap: .9rem; color: #5b6475; font-size: .95rem; text-align: center; padding: 2rem; pointer-events: none; transition: opacity .4s; }
.ag-monitor__espera span { width: 2.2rem; height: 2.2rem; border-radius: 50%; border: 2px solid #d5dbe4; border-top-color: var(--c-bordo); animation: ag-gira 1s linear infinite; }
@keyframes ag-gira { to { transform: rotate(1turn); } }
.ag.carregou .ag-monitor__espera { opacity: 0; }
.ag-monitor__reserva { grid-area: 1 / 1; place-self: center; display: grid; justify-items: center; gap: 1.2rem; padding: 2rem; text-align: center; color: #2a3346; background: #fff; }
.ag-monitor__reserva[hidden] { display: none; }
.ag-monitor__mapa { display: flex; align-items: center; gap: .4rem; min-height: 48px; margin: .5rem .5rem 0; padding: 0 .2rem; color: var(--c-texto); text-decoration: none; font-weight: 500; font-size: .95rem; border-bottom: 1px solid var(--s-linha-escura); }
.ag-monitor__mapa span { color: var(--c-prata); }
.ag-monitor__mapa i { font-style: normal; margin-left: auto; color: var(--c-bordo-vivo); }
.ag-monitor__mapa:hover { border-bottom-color: var(--c-prata); }
.ag-monitor__mapa[hidden] { display: none; }
.ag-monitor__nota { margin: .9rem .5rem .3rem; font-size: .875rem; line-height: 1.5; color: var(--c-texto-3); }

/* ---------- informações práticas ---------- */
.ag__infos { grid-area: infos; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.6rem 2.2rem; margin-top: clamp(2.5rem, 4vw, 3.5rem); align-content: start; }
.ag-info p { font-size: .94rem; }
.ag-info p { color: var(--c-texto-2); font-size: .98rem; line-height: 1.6; }
.ag-info .ag-info__rot { font-size: var(--c-t-mini); letter-spacing: .14em; text-transform: uppercase; color: var(--c-prata); font-weight: 500; margin-bottom: .7rem; }
.ag-info .s-link { margin-top: .6rem; color: var(--c-texto); }

/* ---------- celular e tablet ---------- */
@media (min-width: 981px) and (max-width: 1240px) {
  .ag__infos { grid-template-columns: 1fr; }
}
@media (max-width: 980px) {
  .ag__grade { grid-template-columns: 1fr; grid-template-areas: "cabeca" "locais" "monitor" "infos"; grid-template-rows: none; }
  .ag__fio { display: none; }
  .ag__monitor { position: relative; top: auto; margin-top: 1.8rem; justify-self: center; width: min(100%, 452px); }
  .ag-local { padding: 1.1rem 0; grid-template-columns: 2.4rem minmax(0, 1fr) 1.2rem; min-height: 48px; }
  .ag-local[aria-selected="true"]::before { left: -.75rem; }
  .ag__infos { grid-template-columns: 1fr; margin-top: 3rem; }
  .ag-monitor__pre { display: none; }
  .ag-local__end { font-size: .9rem; }
  .ag-local__tags { margin-top: .15rem; }
  .ag-local__tags span { font-size: .8125rem; padding: .15rem .5rem; }
  .ag__lead { margin-bottom: 1.6rem; }
}
@media (max-width: 420px) {
  .ag__monitor { padding: .45rem; border-radius: 18px; margin-inline: calc(-1 * var(--c-margem) + .5rem); width: auto; }
  .ag-monitor__tela { border-radius: 12px; }
}


/* ===== agendar (popup) ===== */
/* popup de agendamento · prefixo ap- · a mesma agenda do Doctoralia, aberta de qualquer seção */
.pd-busca__cta { margin-top: 1.6rem; }
.pa-fim__cta { margin-right: auto; }
html.ap-aberto { overflow: hidden; }
.ap { width: min(100% - 2rem, 62rem); max-width: none; max-height: calc(100dvh - 2rem); margin: auto; padding: 0; border: 0; border-radius: 26px;
  color: var(--c-texto); background: linear-gradient(160deg, #141d2f, var(--c-fundo) 55%);
  box-shadow: 0 0 0 1px color-mix(in oklab, var(--c-prata) 16%, transparent), 0 50px 120px -30px rgb(0 0 0 / .9), 0 0 160px -40px color-mix(in oklab, var(--c-aco) 60%, transparent);
  overflow: auto; overscroll-behavior: contain; }
.ap::backdrop { background: rgb(5 8 14 / .72); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.ap[open] { animation: ap-entra .5s var(--c-ease); }
.ap[open]::backdrop { animation: ap-fundo .4s ease; }
@keyframes ap-entra { from { opacity: 0; transform: translateY(18px) scale(.985); } }
@keyframes ap-fundo { from { opacity: 0; } }
.ap__caixa { position: relative; padding: clamp(1.5rem, 3.4vw, 2.6rem); }
.ap__cab { padding-right: 3.2rem; max-width: 40rem; }
.ap__leitura { margin-bottom: 1rem; }
.ap__titulo { margin: 0; font-family: var(--c-f-titulo); font-weight: 700; font-size: clamp(1.6rem, 1.1rem + 2vw, 2.5rem); line-height: 1.05; letter-spacing: -.035em; text-wrap: balance; }
.ap__titulo em { font-style: normal; color: var(--c-bordo-vivo); }
.ap__contexto { margin-top: .9rem; color: var(--c-texto-2); font-size: 1rem; line-height: 1.55; max-width: 46ch; text-wrap: pretty; }
.ap__fechar { position: absolute; right: clamp(.9rem, 2vw, 1.4rem); top: clamp(.9rem, 2vw, 1.4rem); display: grid; place-items: center; width: 48px; height: 48px; padding: 0; border-radius: 50%; border: 1px solid var(--s-linha-escura); background: rgb(255 255 255 / .03); color: var(--c-texto); cursor: pointer; transition: background .25s, border-color .25s; }
.ap__fechar:hover { background: rgb(255 255 255 / .08); border-color: color-mix(in oklab, var(--c-prata) 40%, transparent); }
.ap__fechar:focus-visible, .ap-local:focus-visible { outline: 2px solid var(--c-prata); outline-offset: 3px; }

.ap__corpo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 452px); gap: clamp(1.5rem, 3vw, 2.5rem); align-items: start; margin-top: clamp(1.5rem, 3vw, 2.2rem); }
.ap__locais { display: grid; border-top: 1px solid var(--s-linha-escura); }
.ap-local { position: relative; display: grid; grid-template-columns: 2.2rem minmax(0, 1fr) 1.2rem; align-items: start; gap: 0 .8rem; padding: 1rem .2rem 1rem 0; min-height: 48px;
  text-align: left; font: inherit; color: var(--c-texto-2); background: none; border: 0; border-bottom: 1px solid var(--s-linha-escura); cursor: pointer; transition: color .3s; }
.ap-local:hover { color: var(--c-texto); }
.ap-local__n { font-family: var(--c-f-titulo); font-weight: 500; font-size: .875rem; color: var(--c-texto-3); padding-top: .15rem; font-variant-numeric: tabular-nums; transition: color .3s; }
.ap-local__corpo { display: grid; gap: .2rem; }
.ap-local__nome { font-family: var(--c-f-titulo); font-weight: 500; font-size: 1.02rem; letter-spacing: -.02em; line-height: 1.2; color: var(--c-texto); }
.ap-local__end { font-size: .9rem; line-height: 1.4; }
.ap-local__tag { font-size: .8125rem; letter-spacing: .04em; color: var(--c-texto-3); }
.ap-local__alvo { align-self: center; justify-self: end; width: .62rem; height: .62rem; border-radius: 50%; border: 1px solid color-mix(in oklab, var(--c-prata) 45%, transparent); transition: background .3s, border-color .3s, box-shadow .3s; }
.ap-local[aria-selected="true"] { color: var(--c-texto); }
.ap-local[aria-selected="true"] .ap-local__n { color: var(--c-bordo-vivo); }
.ap-local[aria-selected="true"] .ap-local__alvo { background: var(--c-bordo-vivo); border-color: var(--c-bordo-vivo); box-shadow: 0 0 0 5px color-mix(in oklab, var(--c-bordo-vivo) 20%, transparent), 0 0 18px var(--c-bordo-vivo); }

.ap__monitor { border-radius: 20px; padding: .6rem; background: linear-gradient(160deg, #1a2438, #0d1320 60%); border: 1px solid color-mix(in oklab, var(--c-prata) 18%, transparent); box-shadow: 0 0 0 1px rgb(0 0 0 / .4), 0 30px 70px -40px rgb(0 0 0 / .9); }
.ap__tela { min-height: 30rem; }
.ap-agenda { grid-area: 1 / 1; height: 0; overflow: hidden; visibility: hidden; }
.ap-agenda.ativa { height: auto; overflow: visible; visibility: visible; }
.ap-agenda iframe { display: block; width: 100% !important; min-height: 30rem; }
.ap-agenda .zl-url { display: none; }
.ap.carregou .ap__espera { opacity: 0; }

@media (max-width: 860px) {
  .ap { width: 100%; max-height: 100dvh; height: 100dvh; border-radius: 0; }
  .ap__caixa { padding: 1.25rem var(--c-margem) 2rem; }
  .ap__fechar { right: .75rem; top: .75rem; }
  .ap__corpo { grid-template-columns: 1fr; gap: 1.2rem; }
  .ap__locais { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; border: 0; }
  .ap-local { grid-template-columns: minmax(0, 1fr); padding: .75rem .85rem; border: 1px solid var(--s-linha-escura); border-radius: 14px; }
  .ap-local__n, .ap-local__alvo, .ap-local__end { display: none; }
  .ap-local__nome { font-size: .95rem; }
  .ap-local[aria-selected="true"] { border-color: var(--c-bordo-vivo); background: color-mix(in oklab, var(--c-bordo-vivo) 10%, transparent); }
  .ap__monitor { padding: .45rem; border-radius: 16px; }
  .ag-monitor__pre { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .ap[open], .ap[open]::backdrop { animation: none; }
}
