/* Aprumo — tokens da direção "Prumo Luminoso" (rebrand 2026-07, rodada 3).
   Light branco puro é o default; dark navy via [data-theme="dark"] (theme-init.js).
   Gradiente só onde há decisão ou clímax: hero, CTA primário, fio de prumo, seção 8.

   TIPOGRAFIA FECHADA em 2026-08-14 (APR-6): Cabinet Grotesk no display e
   Switzer no corpo, nos rótulos e nos dados. Os pesos que o site pede hoje
   são Cabinet 700 e Switzer 400/500/600; o corte 800 do Cabinet fica de
   reserva, declarado e sem consumidor, e por isso nunca é baixado. O dono
   comparou as duas variantes lado a lado, com as fontes reais carregadas, e
   escolheu esta. O IBM Plex era a tipografia de 10/07, que caiu junto com o
   símbolo em 28/07, e não volta.

   O alternador e o mecanismo de troca eram instrumento de comparação e saíram
   com a decisão, junto com os quatro woff2 do Plex. Enquanto os dois conjuntos
   conviviam, cada variante baixava também os arquivos da outra: cerca de 58 KB
   por visita que ninguém usava, desfazendo o ganho que a rodada de performance
   mediu.

   O papel do mono é o ponto sensível, e a decisão aqui é deliberada: não há
   segunda família monoespaçada. O rótulo é a própria Switzer no peso 500, e
   quem segura o registro de "rótulo" é a caixa alta com o tracking largo que
   o CSS de página já aplica. Era o que o GATE 1 pedia. */

/* ===== Tipografia: Cabinet Grotesk + Switzer =====
   Os pesos são declarados em FAIXA, não em valor único, e o motivo é concreto:
   o CSS do site pede 400/500/600/700, mas o Cabinet só tem 500/700/800 e a
   Switzer só tem 400/500/600. Sem faixa, `font-weight:700` num elemento de corpo
   e `font-weight:400` num de display (.act-line da landing) cairiam em negrito e
   em regular sintéticos — o navegador deformando o desenho. Com faixa, todo peso
   pedido aterrissa num corte real que existe. O que se perde é fidelidade de
   peso (um 700 de corpo sai no 600 da Switzer); o que se ganha é não exibir
   contorno falsificado num teste que serve para julgar tipografia. */
@font-face{font-family:"Switzer";src:url("/fonts/switzer-400.woff2") format("woff2");font-weight:100 449;font-style:normal;font-display:swap}
@font-face{font-family:"Switzer";src:url("/fonts/switzer-500.woff2") format("woff2");font-weight:450 549;font-style:normal;font-display:swap}
@font-face{font-family:"Switzer";src:url("/fonts/switzer-600.woff2") format("woff2");font-weight:550 900;font-style:normal;font-display:swap}
@font-face{font-family:"Cabinet Grotesk";src:url("/fonts/cabinet-grotesk-500.woff2") format("woff2");font-weight:100 600;font-style:normal;font-display:swap}
@font-face{font-family:"Cabinet Grotesk";src:url("/fonts/cabinet-grotesk-700.woff2") format("woff2");font-weight:601 749;font-style:normal;font-display:swap}
@font-face{font-family:"Cabinet Grotesk";src:url("/fonts/cabinet-grotesk-800.woff2") format("woff2");font-weight:750 900;font-style:normal;font-display:swap}


/* Fallbacks da variante B, medidos pelo mesmo método e na mesma distribuição de
   caracteres do site (27.839 caracteres das 7 páginas, espaço incluído): largura
   média da fonte ÷ largura média do Arial no mesmo peso, e ascent/descent do
   próprio desenho divididos pelo size-adjust, porque ele também escala os
   overrides. Sem isto a variante B nasceria com o CLS que a rodada de perf tirou
   — a main não tem fallback nenhum para estas duas famílias.
   Peso ≥600 casa com Arial bold; abaixo disso, com Arial regular. */
@font-face{
  font-family:"Switzer Fallback";src:local("Arial"),local("Helvetica"),local("Roboto");
  font-weight:400;font-style:normal;
  size-adjust:100.4%;ascent-override:97.7%;descent-override:24.9%;line-gap-override:0%;
}
@font-face{
  font-family:"Switzer Fallback";src:local("Arial"),local("Helvetica"),local("Roboto");
  font-weight:500;font-style:normal;
  size-adjust:101.3%;ascent-override:96.7%;descent-override:24.7%;line-gap-override:0%;
}
@font-face{
  font-family:"Switzer Fallback";src:local("Arial"),local("Helvetica"),local("Roboto");
  font-weight:600 900;font-style:normal;
  size-adjust:95.9%;ascent-override:102.2%;descent-override:26.1%;line-gap-override:0%;
}
@font-face{
  font-family:"Cabinet Fallback";src:local("Arial"),local("Helvetica"),local("Roboto");
  font-weight:100 600;font-style:normal;
  size-adjust:96.4%;ascent-override:90.3%;descent-override:29.1%;line-gap-override:0%;
}
@font-face{
  font-family:"Cabinet Fallback";src:local("Arial"),local("Helvetica"),local("Roboto");
  font-weight:601 749;font-style:normal;
  size-adjust:91.2%;ascent-override:95.4%;descent-override:30.7%;line-gap-override:0%;
}
@font-face{
  font-family:"Cabinet Fallback";src:local("Arial"),local("Helvetica"),local("Roboto");
  font-weight:750 900;font-style:normal;
  size-adjust:92.2%;ascent-override:94.3%;descent-override:30.4%;line-gap-override:0%;
}

:root{
  color-scheme:light;
  --bg:#FFFFFF;
  --surface:#F7F9FC;
  --surface-elev:#FFFFFF;
  --ink:#0B1526;
  --muted:#49586E;
  --line:rgba(11,21,38,.10);
  --line-strong:rgba(11,21,38,.24);
  --accent:#0D6E8C;
  --accent-2:#635BFF;
  --accent-3:#00B4D8;
  --on-accent:#FFFFFF;
  --accent-wash:rgba(13,110,140,.10);
  --grad-brand:linear-gradient(120deg,#0D6E8C 0%,#00B4D8 34%,#4F6DF5 68%,#8B5CF6 100%);
  --grad-brand-soft:linear-gradient(140deg,rgba(0,180,216,.16),rgba(79,109,245,.12) 50%,rgba(139,92,246,.14));
  /* Pontos circulares presos a um eixo vertical (peso do prumo, nós da prumada):
     o grad-brand em 120° descentra o brilho num círculo de 11px e o olho lê a
     bola fora do fio. Mesmos tons, highlight no topo-centro — simétrico. */
  --grad-dot:radial-gradient(circle at 50% 32%,#00B4D8 0%,#4F6DF5 58%,#8B5CF6 100%);
  /* variante AA do grad-brand para superfícies com texto (branco ≥4.5:1 em todos os stops) */
  --grad-cta:linear-gradient(120deg,#0D6E8C 0%,#0E7490 30%,#4F46E5 68%,#7C3AED 100%);
  --grad-deep:linear-gradient(135deg,#083344 0%,#0B2A5B 45%,#312E81 100%);
  --glow:0 0 40px rgba(0,180,216,.25);
  --shadow:0 24px 60px -24px rgba(11,21,38,.18),0 4px 14px -6px rgba(11,21,38,.10);
  --font-sans:"Switzer","Switzer Fallback",system-ui,Arial,sans-serif;
  --font-display:"Cabinet Grotesk","Cabinet Fallback","Switzer","Switzer Fallback",system-ui,Arial,sans-serif;
  --font-mono:var(--font-sans);
  --radius:10px;
  --radius-lg:18px;
  /* Curvas da coreografia de entrada. As três primeiras são as equivalentes
     CSS das eases da biblioteca que substituíram (power3.out, power2.inOut,
     back.out(1.6)); --e-assenta é mais longa na saída, para o texto que entra
     só por translateY — sem fade para mascarar — parar sem solavanco. */
  --e-saida:cubic-bezier(.165,.84,.44,1);
  --e-inout:cubic-bezier(.65,0,.35,1);
  --e-volta:cubic-bezier(.34,1.56,.64,1);
  --e-assenta:cubic-bezier(.16,1,.3,1);
}

:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#070D1A;
  --surface:#0D1526;
  --surface-elev:#131D33;
  --ink:#EAF0F8;
  --muted:#93A3BC;
  --line:rgba(234,240,248,.10);
  --line-strong:rgba(234,240,248,.26);
  --accent:#4CC3E8;
  --accent-2:#8B8CFF;
  --accent-3:#38D6F5;
  --on-accent:#04121F;
  --accent-wash:rgba(76,195,232,.13);
  --grad-brand:linear-gradient(120deg,#1897BC 0%,#38D6F5 34%,#6D86FF 68%,#A78BFA 100%);
  --grad-dot:radial-gradient(circle at 50% 32%,#38D6F5 0%,#6D86FF 58%,#A78BFA 100%);
  --grad-brand-soft:linear-gradient(140deg,rgba(56,214,245,.14),rgba(109,134,255,.12) 50%,rgba(167,139,250,.13));
  --grad-cta:linear-gradient(120deg,#0D6E8C 0%,#0E7490 30%,#4F46E5 68%,#7C3AED 100%);
  --grad-deep:linear-gradient(135deg,#062736 0%,#0A2450 45%,#251F66 100%);
  --glow:0 0 46px rgba(56,214,245,.30);
  --shadow:0 24px 60px -24px rgba(0,0,0,.55),0 4px 14px -6px rgba(0,0,0,.4);
}
