/* styles/correcoes.css */
/* SVG presentation rules — fill/stroke/vector-effect/dominant-baseline are
   outside the style registry, so they live here as raw CSS. Generated by
   scripts/fix-import.ts from site/index.html; edit there, not here. */
.oval__ring{fill:none;
  stroke:var(--mid);
  stroke-width:.9;
  vector-effect:non-scaling-stroke;
  opacity:.85;}
/* A palavra vive DENTRO do mesmo viewBox da elipse: o conjunto
   escala como uma peça só e nunca pode transbordar o contêiner. */
.oval__word{font-family:var(--serif);
  font-style:italic;
  font-weight:400;
  font-size:82px;
  fill:var(--paper);
  letter-spacing:-.01em;}
.princ__item svg{width:26px; height:26px;
  stroke:var(--accent);
  stroke-width:1.25;
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round;
  margin-top:.15rem;}
.oval__ring{stroke-dasharray:1;
  stroke-dashoffset:1;
  animation:draw 1.5s var(--ease) .68s both;}
to{stroke-dashoffset:0}
.oval__ring{stroke-dashoffset:0}
.oval__word{dominant-baseline:central}
/* <picture> com altura definida: sem isso o height:100% do <img> não resolve */
.hero__media picture, .sec__texture picture { display: block; height: 100%; }
/* Melhoria progressiva: visível por padrão, escondido só com o script de pé. */
.rv { opacity: 1; transform: none; }
.rv-on .rv { opacity: 0; transform: translateY(18px); }
.rv-on .rv.on { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .rv-on .rv { opacity: 1; transform: none; } }
/* o realce do nó do fio, agora na sua própria classe */
.etapa.lit .etapa__num { border-color: oklch(0.58 0.075 52); color: #F8F4EE; background: oklch(0.58 0.075 52); }