:root {
  color-scheme: light;

  /* ── 12 axes — light identity (green / red over gunmetal neutrals) ── */
  /* Positive / "agree" / brand accent — green */
  --green-50:  #ECFDF3;
  --green-100: #D1FADF;
  --green-400: #4ADE80;
  --green-500: #22C55E;
  --green-600: #16A34A;
  --green-700: #15803D;
  --green-800: #166534;

  /* Negative / "disagree" — red */
  --red-50:  #FEF2F2;
  --red-100: #FEE2E2;
  --red-400: #F87171;
  --red-500: #EF4444;
  --red-600: #DC2626;
  --red-700: #B91C1C;

  /* Gunmetal / slate neutral scale (ink-950 darkest → ink-50 lightest) */
  --ink-950: #0B1020;
  --ink-900: #111827;
  --ink-700: #334155;
  --ink-500: #64748B;
  --ink-400: #94A3B8;
  --ink-300: #CBD5E1;
  --ink-100: #E2E8F0;
  --ink-50:  #F1F5F9;

  --canvas: #F4F6FA;
  --paper: #FFFFFF;
  --paper-soft: #FAFBFD;

  --bg: var(--canvas);
  --surface: var(--paper);
  --surface-soft: var(--paper-soft);
  --text: var(--ink-900);
  --text-strong: var(--ink-950);
  --text-muted: var(--ink-700);
  --text-soft: var(--ink-400);
  --line: rgba(11, 16, 32, 0.08);
  --line-strong: rgba(11, 16, 32, 0.13);

  --accent: var(--green-500);
  --accent-bright: var(--green-400);
  --accent-deep: var(--green-700);
  --accent-soft: var(--green-50);
  --critical: var(--red-500);
  --critical-deep: var(--red-700);
  --critical-soft: var(--red-50);

  --shadow-xs:  0 1px 2px rgba(11, 16, 32, 0.05);
  --shadow-sm:  0 3px 10px rgba(11, 16, 32, 0.06);
  --shadow-md:  0 14px 30px -18px rgba(11, 16, 32, 0.24);
  --shadow-lg:  0 26px 52px -28px rgba(11, 16, 32, 0.30);

  --shadow-accent:    0 14px 34px -14px rgba(34, 197, 94, 0.42);
  --shadow-accent-lg: 0 24px 54px -18px rgba(34, 197, 94, 0.50);
  --shadow-critical:  0 14px 34px -14px rgba(239, 68, 68, 0.38);

  --ring-accent: 0 0 0 4px rgba(34, 197, 94, 0.22);

  --glass-tint: rgba(255, 255, 255, 0.9);
  --glass-tint-strong: rgba(255, 255, 255, 0.96);
  --glass-line: var(--line);
  --glass-blur: blur(14px);

  --radius-sm: 8px;
  --radius-md: 10px;
  --radius-lg: 14px;
  --radius-xl: 18px;
  --radius-pill: 999px;

  /* Signature gradients — green family only */
  --grad-accent: linear-gradient(135deg, var(--green-700) 0%, var(--green-500) 55%, var(--green-400) 100%);
  --grad-brand:  linear-gradient(120deg, var(--green-700) 0%, var(--green-500) 50%, var(--green-400) 100%);
  --grad-logo: linear-gradient(145deg, var(--green-800) 0%, var(--green-700) 38%, var(--green-500) 72%, var(--green-400) 100%);
  --grad-critical: linear-gradient(135deg, var(--red-700) 0%, var(--red-500) 100%);
  --grad-mesh:
    radial-gradient(42% 38% at 8% 2%, rgba(34, 197, 94, 0.10), transparent 70%),
    radial-gradient(40% 36% at 96% 0%, rgba(239, 68, 68, 0.06), transparent 72%),
    radial-gradient(52% 46% at 90% 98%, rgba(34, 197, 94, 0.06), transparent 74%);

  --font-display: "Sora", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-body: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono: ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace;

  --ease-out:    cubic-bezier(0.22, 1, 0.36, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --dur-fast:    140ms;
  --dur-base:    220ms;
  --dur-deliberate: 520ms;

  font-family: var(--font-body);
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-feature-settings: "cv11", "ss01";
}

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
  min-height: 100dvh;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  font-weight: 400;
  line-height: 1.55;
  overflow-x: hidden;
}

body {
  background-image:
    var(--grad-mesh),
    linear-gradient(180deg, #FFFFFF 0%, var(--canvas) 68%);
  background-attachment: fixed;
  background-repeat: no-repeat;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background-image:
    linear-gradient(rgba(11, 16, 32, 0.022) 1px, transparent 1px),
    linear-gradient(90deg, rgba(11, 16, 32, 0.022) 1px, transparent 1px);
  background-size: 56px 56px;
  background-position: -1px -1px;
  mask-image: radial-gradient(ellipse 82% 60% at 50% 24%, black 0%, transparent 78%);
  -webkit-mask-image: radial-gradient(ellipse 82% 60% at 50% 24%, black 0%, transparent 78%);
}



h1, h2, h3, h4,
.display, .brand-mark {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text-strong);
  margin: 0;
}

button, input, textarea, select {
  font: inherit;
  color: inherit;
}

button {
  cursor: pointer;
  background: none;
  border: 0;
  padding: 0;
}

a {
  color: inherit;
  text-decoration: none;
}

::selection {
  background: var(--green-500);
  color: white;
}

:focus-visible {
  outline: none;
  box-shadow: var(--ring-accent);
  border-radius: var(--radius-sm);
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ── páginas estáticas (geradas por scripts/generate-pages.mjs) ── */
.page-shell{position:relative;z-index:1;display:flex;flex-direction:column;min-height:100dvh;width:min(940px,calc(100% - 48px));margin:0 auto}
.site-header{display:flex;align-items:center;justify-content:space-between;padding:24px 0 14px;flex-shrink:0}
.brand-lockup{display:inline-flex;align-items:baseline;font-family:var(--font-display);font-size:1.25rem;font-weight:800;letter-spacing:-.04em}
.brand-num{background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.brand-word{color:var(--ink-950)}
.home-nav{display:inline-flex;gap:6px;padding:5px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper);box-shadow:var(--shadow-xs)}
.home-nav a{display:inline-flex;align-items:center;min-height:34px;padding:0 12px;border-radius:var(--radius-md);color:var(--text-muted);font-size:.82rem;font-weight:700;transition:color var(--dur-base) var(--ease-out),background var(--dur-base) var(--ease-out)}
.home-nav a:hover{color:var(--text-strong);background:var(--ink-50)}
.page-main{flex:1;display:flex;flex-direction:column;gap:clamp(28px,4vw,44px);padding:10px 0 40px}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:var(--text-soft);font-size:.8rem;font-weight:600}
.crumbs a{color:var(--text-muted)}
.crumbs a:hover{color:var(--accent-deep)}
.crumbs span:last-child{color:var(--text-strong)}
.entity-hero{display:flex;flex-direction:column;gap:16px}
.entity-hero.has-figure{flex-direction:row;align-items:flex-start;justify-content:space-between;gap:clamp(20px,4vw,44px)}
.entity-intro{display:flex;flex-direction:column;gap:16px;min-width:0}
.entity-hero h1{font-size:clamp(2rem,3.6vw,3.2rem);line-height:1.02;letter-spacing:-.04em;font-weight:700}
.intro-eyebrow{display:inline-flex;align-items:center;gap:10px;width:fit-content;padding:8px 16px 8px 14px;border-radius:var(--radius-pill);background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow-xs);font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.intro-eyebrow::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px rgba(34,197,94,.18)}
.intro-lead{margin:0;max-width:64ch;color:var(--text-muted);font-size:clamp(1rem,.4vw + .92rem,1.1rem);line-height:1.6}
.intro-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.intro-meta-item{display:inline-flex;align-items:center;gap:8px;min-height:32px;padding:0 12px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--paper);color:var(--text-muted);font-size:.82rem;font-weight:600}
.entity-figure{flex-shrink:0;display:flex;flex-direction:column;gap:6px;margin:0}
.entity-figure img{display:block;width:220px;height:auto;border-radius:var(--radius-lg);border:1px solid var(--line-strong);box-shadow:var(--shadow-md);background:var(--paper)}
.entity-figure.is-portrait img{object-fit:cover;aspect-ratio:3/4}
.entity-figure figcaption{color:var(--text-soft);font-size:.7rem;text-align:right}
.entity-figure figcaption a:hover{color:var(--text-muted)}
.page-section{display:flex;flex-direction:column;gap:16px}
.page-section h2{font-size:clamp(1.3rem,2vw,1.7rem);letter-spacing:-.025em}
.section-lead{margin:0;color:var(--text-muted);font-size:.95rem;max-width:70ch}
.axis-rows{display:flex;flex-direction:column;gap:12px}
.axis-row{display:flex;flex-direction:column;gap:16px;padding:18px clamp(16px,2vw,24px);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);transition:border-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-spring)}
.axis-row:hover{border-color:var(--line-strong);box-shadow:var(--shadow-sm);transform:translateY(-1px)}
.axis-row-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.axis-row-id{display:inline-flex;align-items:center;gap:10px;min-width:0}
.axis-row-id h3{font-family:var(--font-display);font-size:clamp(.98rem,.6vw + .8rem,1.18rem);font-weight:700;letter-spacing:-.015em;color:var(--text-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.axis-lean{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--axis-dom,var(--accent)) 14%,var(--paper));color:color-mix(in srgb,var(--axis-dom,var(--accent)) 68%,var(--ink-950));border:1px solid color-mix(in srgb,var(--axis-dom,var(--accent)) 26%,transparent);font-size:.72rem;font-weight:700;white-space:nowrap}
.axis-lean::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--axis-dom,var(--accent))}
.axis-lean[data-balanced="true"]{background:var(--ink-50);color:var(--text-muted);border-color:var(--line)}
.axis-lean[data-balanced="true"]::before{background:var(--ink-400)}
.axis-meter{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.1fr) minmax(0,1fr);grid-template-areas:"lpole track rpole";align-items:center;gap:clamp(10px,1.6vw,18px)}
.axis-pole{display:inline-flex;align-items:center;gap:9px;min-width:0}
.axis-pole[data-side="left"]{grid-area:lpole}
.axis-pole[data-side="right"]{grid-area:rpole;justify-content:flex-end}
.axis-pole-text{display:flex;flex-direction:column;gap:1px;min-width:0}
.axis-pole[data-side="right"] .axis-pole-text{align-items:flex-end;text-align:right}
.axis-pole-name{font-size:.78rem;font-weight:600;line-height:1.2;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.axis-pole-value{font-family:var(--font-display);font-size:.84rem;font-weight:700;color:var(--text-soft);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.axis-pole.is-active .axis-pole-name{color:var(--text-strong)}
.axis-pole.is-active .axis-pole-value{color:color-mix(in srgb,var(--pole) 70%,var(--ink-950))}
.axis-track{grid-area:track;position:relative;height:10px;border-radius:var(--radius-pill);background:var(--ink-100);box-shadow:inset 0 1px 2px rgba(11,16,32,.07)}
.axis-track-center{position:absolute;top:-4px;bottom:-4px;left:50%;width:2px;transform:translateX(-50%);background:repeating-linear-gradient(var(--ink-300) 0 3px,transparent 3px 6px);border-radius:2px}
.axis-track-fill{position:absolute;top:0;bottom:0;background:linear-gradient(135deg,color-mix(in srgb,var(--axis-dom,var(--accent)) 82%,white) 0%,var(--axis-dom,var(--accent)) 100%);border-radius:var(--radius-pill);box-shadow:0 0 12px -2px color-mix(in srgb,var(--axis-dom,var(--accent)) 55%,transparent)}
.axis-track-thumb{position:absolute;top:50%;width:16px;height:16px;transform:translate(-50%,-50%);border-radius:50%;background:var(--paper);border:3px solid var(--axis-dom,var(--accent));box-shadow:0 2px 7px rgba(11,16,32,.22);z-index:1}
.axis-track-thumb[data-balanced="true"]{border-color:var(--ink-400)}
.related-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.related-card{display:flex;flex-direction:column;gap:8px;padding:16px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);transition:border-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-spring)}
.related-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-sm);transform:translateY(-2px)}
.card-eyebrow{color:var(--accent-deep);font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.card-title{font-family:var(--font-display);font-size:1rem;font-weight:700;letter-spacing:-.02em;color:var(--text-strong)}
.card-desc{color:var(--text-muted);font-size:.82rem;line-height:1.5}
.cta-panel{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:clamp(22px,3vw,34px);background:var(--paper);border:1px solid var(--line-strong);border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}
.cta-panel h2{font-size:clamp(1.25rem,2vw,1.6rem);letter-spacing:-.03em}
.cta-panel p{margin:0;color:var(--text-muted);max-width:56ch}
.primary-button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;height:44px;padding:0 18px;border:1px solid var(--accent);border-radius:var(--radius-md);background:var(--accent);color:#fff;font-size:.92rem;font-weight:700;box-shadow:var(--shadow-xs);transition:transform var(--dur-base) var(--ease-spring),box-shadow var(--dur-base) var(--ease-out)}
.primary-button:hover{transform:translateY(-1px);box-shadow:var(--shadow-accent)}
.hero-cta{overflow:hidden;box-shadow:0 16px 34px -18px rgba(34,197,94,.92),0 0 0 5px rgba(34,197,94,.10)}
.btn-arrow{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.page-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;padding:22px 0 30px;border-top:1px solid var(--line);color:var(--text-soft);font-size:.8rem}
.page-footer nav{display:flex;flex-wrap:wrap;gap:16px}
.page-footer nav a{color:var(--text-muted);font-weight:600}
.page-footer nav a:hover{color:var(--accent-deep)}
.page-footer p{margin:0;width:100%}
@media (max-width:760px){
.page-shell{width:calc(100% - 40px)}
.site-header{padding:14px 0 10px}
.home-nav a{padding:0 9px;font-size:.76rem}
.entity-hero.has-figure{flex-direction:column-reverse}
.entity-figure img{width:160px}
.axis-meter{grid-template-columns:1fr 1fr;grid-template-areas:"lpole rpole" "track track";gap:12px 14px}
}