/* Gerado por tools/build.py a partir de src/_ds/ — nao edite a mao. */

/* ---- tokens/fonts.css ---- */
/* Barlow Condensed (display) + Montserrat (body). No vendor font binaries were
   supplied with the brand material — both families are served from Google Fonts.
   Replace with self-hosted @font-face if the institutional kit provides files. */
@import url("https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800&family=Montserrat:wght@300;400;500;600;700&display=swap");

/* ---- tokens/colors.css ---- */
:root{
  /* base palette */
  --color-primary:#143353;
  --color-primary-dark:#0D2944;
  --color-blue:#2A637F;
  --color-cyan:#36ACC1;
  --color-teal:#4EB5B5;
  --color-turquoise:#14A99F;
  --color-green:#159447;
  --color-green-dark:#138871;
  --color-white:#FFFFFF;

  /* bandeira do Brasil — elemento gráfico oficial, nunca recolorido */
  --color-flag-green:#159447;
  --color-flag-yellow:#FECC17;
  --color-flag-blue:#30307E;
  --color-flag-white:#FFFFFF;

  /* semantic surfaces */
  --surface-page:var(--color-primary);
  --surface-deep:var(--color-primary-dark);
  --surface-card:rgba(255,255,255,.04);
  --surface-card-hover:rgba(255,255,255,.07);
  --surface-inverse:var(--color-white);

  /* semantic text */
  --text-primary:var(--color-white);
  --text-secondary:rgba(255,255,255,.72);
  --text-muted:rgba(255,255,255,.52);
  --text-accent:var(--color-cyan);
  --text-accent-alt:var(--color-turquoise);
  --text-on-inverse:var(--color-primary);

  /* semantic lines */
  --line-structure:var(--color-blue);
  --line-subtle:rgba(255,255,255,.14);
  --line-card:rgba(78,181,181,.25);
  --line-accent:var(--color-cyan);

  /* data visualisation */
  --data-grid:var(--color-blue);
  --data-1:var(--color-cyan);
  --data-2:var(--color-turquoise);
  --data-3:var(--color-teal);
  --data-4:var(--color-green);

  /* grafismos */
  --graphic-stroke:var(--color-blue);
  --graphic-stroke-accent:rgba(54,172,193,.45);
}

/* ---- tokens/typography.css ---- */
:root{
  --font-display:"Barlow Condensed",'Arial Narrow',sans-serif;
  --font-body:"Montserrat",system-ui,sans-serif;

  --font-weight-light:300;
  --font-weight-regular:400;
  --font-weight-medium:500;
  --font-weight-semibold:600;
  --font-weight-bold:700;
  --font-weight-extrabold:800;

  --text-display-xl:64px;
  --text-display-lg:52px;
  --text-display-md:42px;
  --text-heading-xl:36px;
  --text-heading-lg:30px;
  --text-heading-md:24px;
  --text-body-lg:20px;
  --text-body:16px;
  --text-body-sm:14px;
  --text-caption:12px;

  --leading-display-xl:.90;
  --leading-display-lg:.92;
  --leading-display-md:.95;
  --leading-heading:1.05;
  --leading-body:1.5;

  --tracking-display:-.02em;
  --tracking-subtitle:.06em;
  --tracking-caption:.08em;
}
@media (max-width:768px){
  :root{
    --text-display-xl:42px;
    --text-display-lg:36px;
    --text-display-md:32px;
    --text-heading-xl:28px;
    --text-heading-lg:24px;
    --text-heading-md:20px;
    --text-body-lg:18px;
  }
}

/* ---- tokens/spacing.css ---- */
:root{
  --space-1:4px;
  --space-2:8px;
  --space-3:16px;
  --space-4:24px;
  --space-5:32px;
  --space-6:48px;
  --space-7:64px;
  --space-8:80px;
  --space-9:96px;
  --space-10:128px;
  --space-11:160px;

  /* distâncias institucionais */
  --gap-logo-title:var(--space-6);
  --gap-title-subtitle:var(--space-4);
  --gap-subtitle-symbols:var(--space-5);
  --gap-section:var(--space-10);
  --logo-clearspace:32px;
  --logo-clearspace-min:24px;
}

/* ---- tokens/borders.css ---- */
:root{
  --border-thin:1px;
  --border-medium:2px;
  --border-strong:3px;

  --radius-none:0px;
  --radius-sm:2px;
  --radius-md:4px;
  --radius-lg:8px;
  --radius-circle:50%;

  --shadow-none:none;
  --shadow-soft:0 8px 24px rgba(0,0,0,.12);
}

/* ---- tokens/motion.css ---- */
:root{
  --ease-standard:cubic-bezier(.22,1,.36,1); /* @kind other */
  --duration-fast:200ms; /* @kind other */
  --duration-normal:500ms; /* @kind other */
  --duration-title:600ms; /* @kind other */
  --duration-slow:800ms; /* @kind other */
  --duration-map:1200ms; /* @kind other */
  --stagger-icon:100ms; /* @kind other */
  --rise-distance:16px;
  --rise-distance-title:20px;
}
@keyframes rve-rise{from{opacity:0;transform:translateY(var(--rise-distance))}to{opacity:1;transform:none}}
@keyframes rve-emerge{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:none}}
@keyframes rve-map-in{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}

/* ---- tokens/layout.css ---- */
:root{
  --container-max:1280px;
  --content-max:1200px;
  --grid-columns:12; /* @kind other */
  --grid-gutter:24px;
  --page-padding:48px;
}
@media (max-width:1024px){:root{--grid-columns:8; /* @kind other */ --grid-gutter:24px;--page-padding:32px}}
@media (max-width:768px){:root{--grid-columns:4; /* @kind other */ --grid-gutter:16px;--page-padding:20px}}

/* ---- tokens/base.css ---- */
body{margin:0;background:var(--surface-page);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-body);line-height:var(--leading-body);-webkit-font-smoothing:antialiased;text-wrap:pretty}
a{color:var(--color-cyan);text-decoration:none;transition:color var(--duration-fast) var(--ease-standard)}
a:hover{color:var(--color-teal)}
::selection{background:var(--color-turquoise);color:var(--color-white)}
