/* ==========================================================================
   Galeria.ag — BU Automação & IA
   Design tokens conforme Arquitetura Narrativa v2.0
   ========================================================================== */

/* ==========================================================================
   FONTES PROPRIETÁRIAS · Nohemi (Pangram Pangram Foundry)
   Drop os .woff2 em assets/fonts/ — fallback para Inter Tight enquanto isso.
   Pesos esperados: 100 Thin · 200 ExtraLight · 300 Light · 400 Regular ·
                    500 Medium · 600 SemiBold · 700 Bold · 800 ExtraBold · 900 Black
   ========================================================================== */
@font-face {
  font-family: 'Nohemi';
  font-weight: 300;
  font-style: normal;
  font-display: swap;
  src: url('assets/fonts/Nohemi-Light.woff2') format('woff2');
}
@font-face {
  font-family: 'Nohemi';
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url('assets/fonts/Nohemi-Regular.woff2') format('woff2');
}
@font-face {
  font-family: 'Nohemi';
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  src: url('assets/fonts/Nohemi-Medium.woff2') format('woff2');
}
@font-face {
  font-family: 'Nohemi';
  font-weight: 600;
  font-style: normal;
  font-display: swap;
  src: url('assets/fonts/Nohemi-SemiBold.woff2') format('woff2');
}
@font-face {
  font-family: 'Nohemi';
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url('assets/fonts/Nohemi-Bold.woff2') format('woff2');
}
@font-face {
  font-family: 'Nohemi';
  font-weight: 800;
  font-style: normal;
  font-display: swap;
  src: url('assets/fonts/Nohemi-ExtraBold.woff2') format('woff2');
}
@font-face {
  font-family: 'Nohemi';
  font-weight: 900;
  font-style: normal;
  font-display: swap;
  src: url('assets/fonts/Nohemi-Black.woff2') format('woff2');
}

:root {
  /* ----------------------------------------------------------------------
     PREMIUM BAUHAUS · paleta apropriada para C-suite
     - Ouro matte como accent (substitui qualquer roxo/verde anterior)
     - Preto premium aquecido (fundo)
     - Branco quente (texto principal)
     - Geometria rígida: r-pill = 0 (zero arredondamento)
     ---------------------------------------------------------------------- */

  /* Backgrounds — Preto Premium aquecido */
  --bg: #0F1419;
  --bg-s1: #151B22;
  --bg-s2: #1B222B;
  --bg-s3: #222A34;

  /* Accent — Ouro Matte (Bauhaus premium) */
  --accent: #C9A961;
  --accent-hover: #D4B896;                       /* 15% mais claro p/ hover */
  --accent-glow: rgba(201, 169, 97, 0.18);
  --accent-dim: rgba(201, 169, 97, 0.10);
  --accent-soft: rgba(201, 169, 97, 0.40);

  /* Accent secundário · Azul Corporativo (Bauhaus) */
  --accent-2: #1A3A52;
  --accent-2-soft: rgba(26, 58, 82, 0.45);

  /* Text — Branco quente */
  --t1: #F8F7F5;
  --t2: #A3A099;
  --t3: #6B6862;
  --t4: #3D3D3D;                                  /* cinza quente p/ metadados / separadores */

  /* Borders — derivadas do branco quente, mais sutis */
  --border: rgba(248, 247, 245, 0.06);
  --border-med: rgba(248, 247, 245, 0.12);
  --border-strong: rgba(248, 247, 245, 0.22);

  /* Gradiente de marca + glass + elevação (tokenizados) */
  --grad-brand: linear-gradient(90deg, var(--accent), var(--accent-soft));
  --surface-glass: rgba(15, 20, 25, 0.92);
  --surface-glass-blur: blur(24px) saturate(140%);
  --shadow-elev: 0 0 24px var(--accent-glow), 0 0 0 1px var(--border-med);
  --shadow-elev-soft: 0 0 16px var(--accent-glow);

  /* Geometria · Bauhaus = zero arredondamento (pills viram retângulos) */
  --r-pill: 0;

  /* Warning */
  --warning: #FF9F0A;
  --warning-dim: rgba(255, 159, 10, 0.10);
  --warning-glow: rgba(255, 159, 10, 0.20);

  /* Fonts · IBM Plex (geométrica, suíça/Bauhaus). Nohemi e Inter Tight ficam
     como fallback de emergência caso o CDN da Google Fonts esteja indisponível. */
  --font-d: 'IBM Plex Sans', 'Nohemi', 'Inter Tight', system-ui, -apple-system, sans-serif;
  --font-b: 'IBM Plex Sans', system-ui, -apple-system, sans-serif;
  --font-m: 'IBM Plex Mono', 'JetBrains Mono', ui-monospace, monospace;
  /* --font-editorial mantém o nome por compatibilidade; aponta para IBM Plex Sans. */
  --font-editorial: 'IBM Plex Sans', 'Nohemi', system-ui, sans-serif;

  /* Spacing scale — alinhada a grid de 8px (Bauhaus).
     --space-1 (4px) preservado para hairlines/half-grid. */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 16px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;
  --space-10: 128px;

  /* Container */
  --container: 1200px;

  /* Easing */
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);

  /* Nav */
  --nav-h: 64px;
}

/* ==========================================================================
   Reset & Base
   ========================================================================== */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--nav-h);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

body {
  background: var(--bg);
  color: var(--t1);
  font-family: var(--font-b);
  font-size: 17px;
  line-height: 1.6;
  font-weight: 400;
  overflow-x: hidden;
  letter-spacing: -0.005em;
}

img, svg { display: block; max-width: 100%; }

a {
  color: inherit;
  text-decoration: none;
  transition: color 220ms var(--ease-out);
}

button {
  font: inherit;
  color: inherit;
  background: none;
  border: 0;
  cursor: pointer;
}

ul, ol { list-style: none; }

::selection {
  background: var(--accent);
  color: var(--bg);
}

/* ==========================================================================
   Typography
   ========================================================================== */
.h2, .h3 {
  font-family: var(--font-d);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.08;
  color: var(--t1);
}

.h2 {
  font-size: clamp(2.2rem, 4.2vw, 3.6rem);
  margin-bottom: var(--space-5);
}

.h3 {
  font-size: clamp(1.6rem, 2.8vw, 2.2rem);
  line-height: 1.15;
  margin-bottom: var(--space-4);
}

.dim { color: var(--t2); }
.accent-text { color: var(--accent); }
.num { font-family: var(--font-m); font-feature-settings: "tnum"; }
.accent { color: var(--accent); }

/* ==========================================================================
   Layout primitives
   ========================================================================== */
.container {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--space-6);
  width: 100%;
}

.container--center {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  justify-content: center;
  height: 100%;
}

.section {
  position: relative;
  padding: var(--space-10) 0;
  min-height: 100vh;
  display: flex;
  align-items: center;
  border-bottom: 1px solid var(--border);
}

.section:last-child { border-bottom: 0; }

.section__label {
  font-family: var(--font-m);
  font-size: 12px;
  font-weight: 500;
  color: var(--accent);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin-bottom: var(--space-6);
  padding-left: var(--space-4);
  position: relative;
  display: inline-block;
}

.section__label::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 8px;
  height: 1px;
  background: var(--accent);
  transform: translateY(-50%);
}

.section__header { margin-bottom: var(--space-8); }
.section__sub {
  font-size: clamp(1.05rem, 1.5vw, 1.25rem);
  color: var(--t2);
  max-width: 720px;
  line-height: 1.5;
}

/* ==========================================================================
   Reveal animations
   ========================================================================== */
[data-reveal] {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 700ms var(--ease-out), transform 700ms var(--ease-out);
}

[data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}

[data-reveal-line] {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 800ms var(--ease-out), transform 800ms var(--ease-out);
}

[data-reveal-line].is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
  [data-reveal], [data-reveal-line] {
    opacity: 1;
    transform: none;
  }
}

/* ==========================================================================
   Navigation
   ========================================================================== */
.nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  height: var(--nav-h);
  padding: 0 var(--space-6);
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(12, 12, 15, 0.65);
  backdrop-filter: blur(20px) saturate(140%);
  -webkit-backdrop-filter: blur(20px) saturate(140%);
  border-bottom: 1px solid transparent;
  transition: border-color 280ms var(--ease-out), background 280ms var(--ease-out);
}

.nav.is-scrolled {
  border-bottom-color: var(--border);
  background: rgba(12, 12, 15, 0.85);
}

.nav__brand {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-family: var(--font-d);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: -0.01em;
  color: var(--t1);
}

.nav__brand-mark {
  width: 14px;
  height: 14px;
  border-radius: 4px;
  background: var(--accent);
  box-shadow: 0 0 16px var(--accent-glow);
  position: relative;
}

.nav__brand-mark::after {
  content: "";
  position: absolute;
  inset: 3px;
  background: var(--bg);
  border-radius: 2px;
}

.nav__brand-dim { color: var(--t2); font-weight: 400; }
.nav__brand-sep { color: var(--t3); margin: 0 var(--space-1); }
.nav__brand-bu {
  font-family: var(--font-m);
  font-size: 12px;
  color: var(--t2);
  letter-spacing: 0.04em;
}

.nav__list {
  display: flex;
  gap: var(--space-1);
}

.nav__list a {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: 6px 10px;
  border-radius: 6px;
  font-family: var(--font-m);
  font-size: 11px;
  color: var(--t2);
  transition: all 200ms var(--ease-out);
}

.nav__list a:hover {
  color: var(--t1);
  background: var(--bg-s2);
}

.nav__list a.is-active {
  color: var(--accent);
  background: var(--accent-dim);
}

.nav__num {
  font-weight: 500;
  opacity: 0.6;
}

.nav__list a.is-active .nav__num { opacity: 1; }

.nav__label { letter-spacing: 0.02em; }

.nav__toggle {
  display: none;
  width: 36px;
  height: 36px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
}

.nav__toggle span {
  display: block;
  width: 18px;
  height: 1.5px;
  background: var(--t1);
  transition: transform 220ms var(--ease-out), opacity 220ms;
}

.nav__toggle[aria-expanded="true"] span:nth-child(1) {
  transform: translateY(6.5px) rotate(45deg);
}
.nav__toggle[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
}
.nav__toggle[aria-expanded="true"] span:nth-child(3) {
  transform: translateY(-6.5px) rotate(-45deg);
}

/* ==========================================================================
   Progress bar
   ========================================================================== */
.progress {
  position: fixed;
  top: var(--nav-h);
  left: 0;
  right: 0;
  height: 2px;
  background: transparent;
  z-index: 99;
  pointer-events: none;
}

.progress__bar {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, var(--accent), var(--accent-soft));
  box-shadow: 0 0 12px var(--accent-glow);
  transition: width 80ms linear;
}

/* ==========================================================================
   Seção 00 · Cover
   ========================================================================== */
.section--cover {
  min-height: 100vh;
  padding-top: var(--nav-h);
  padding-bottom: 0;
  overflow: hidden;
  position: relative;
}

.aurora {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  z-index: 0;
}

.aurora__blob {
  position: absolute;
  width: 60vw;
  height: 60vw;
  max-width: 800px;
  max-height: 800px;
  border-radius: 50%;
  filter: blur(120px);
  opacity: 0.4;
  mix-blend-mode: screen;
  animation: aurora-drift 24s ease-in-out infinite;
}

.aurora__blob--a {
  background: var(--accent);
  top: -10%;
  left: -10%;
  animation-delay: 0s;
  opacity: 0.04;
}

.aurora__blob--b {
  background: var(--accent);
  bottom: -10%;
  right: -10%;
  animation-delay: -8s;
  opacity: 0.05;
}

.aurora__blob--c {
  background: #2a6fff;
  top: 30%;
  right: 20%;
  width: 40vw;
  height: 40vw;
  animation-delay: -14s;
  opacity: 0.03;
}

@keyframes aurora-drift {
  0%, 100% { transform: translate(0, 0) scale(1); }
  33% { transform: translate(40px, -30px) scale(1.08); }
  66% { transform: translate(-30px, 30px) scale(0.95); }
}

.section--cover .container {
  position: relative;
  z-index: 1;
}

.cover__headline {
  font-family: var(--font-d);
  font-weight: 700;
  font-size: clamp(2.4rem, 6.5vw, 5.5rem);
  line-height: 1.04;
  letter-spacing: -0.035em;
  margin-bottom: var(--space-7);
  max-width: 1100px;
}

.cover__line {
  display: block;
}

.cover__line--accent { color: var(--accent); }

.cover__subhead {
  font-family: var(--font-b);
  font-size: clamp(1.05rem, 1.7vw, 1.4rem);
  line-height: 1.5;
  color: var(--t2);
  max-width: 620px;
  margin-bottom: var(--space-8);
}

.cover__meta {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  font-family: var(--font-m);
  font-size: 12px;
  color: var(--t3);
  letter-spacing: 0.04em;
}

.cover__meta-dot {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: var(--t3);
}

.scroll-indicator {
  position: absolute;
  bottom: var(--space-7);
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-3);
  color: var(--accent);
  font-family: var(--font-m);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  z-index: 2;
  animation: pulse-down 2.6s ease-in-out infinite;
}

.scroll-indicator__icon {
  width: 1px;
  height: 40px;
  background: linear-gradient(to bottom, var(--accent), transparent);
}

@keyframes pulse-down {
  0%, 100% { transform: translateX(-50%) translateY(0); opacity: 0.85; }
  50% { transform: translateX(-50%) translateY(8px); opacity: 1; }
}

/* ==========================================================================
   Seção 01 · O Problema
   ========================================================================== */
.problem__moment {
  margin-bottom: var(--space-10);
}

.problem__moment-marker {
  display: inline-block;
  font-family: var(--font-m);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--t3);
  margin-bottom: var(--space-4);
  padding-bottom: var(--space-2);
  border-bottom: 1px solid var(--border);
}

.problem__blocks {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-6);
  margin: var(--space-7) 0;
}

.problem__block {
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--t2);
}

.callout {
  position: relative;
  padding: var(--space-7) var(--space-7);
  margin: var(--space-8) 0;
  border-left: 2px solid var(--accent);
  background: linear-gradient(to right, var(--accent-dim), transparent 60%);
  border-radius: 4px;
}

.callout p {
  font-family: var(--font-d);
  font-weight: 500;
  line-height: 1.3;
  color: var(--t1);
  letter-spacing: -0.018em;
}

.callout--lg p { font-size: clamp(1.4rem, 2.6vw, 2rem); }
.callout--xl p { font-size: clamp(1.5rem, 3vw, 2.4rem); }

.callout__sub {
  margin-top: var(--space-4);
  font-family: var(--font-b) !important;
  font-weight: 400 !important;
  font-size: 1.05rem !important;
  color: var(--t2) !important;
  line-height: 1.55 !important;
}

.callout__punch {
  margin-top: var(--space-5);
  padding-top: var(--space-5);
  border-top: 1px solid var(--border);
  font-family: var(--font-d) !important;
  font-weight: 600 !important;
  font-size: clamp(1.1rem, 1.8vw, 1.4rem) !important;
  color: var(--t1) !important;
  line-height: 1.4 !important;
}

.problem__note {
  font-size: 1rem;
  color: var(--t2);
  line-height: 1.65;
  max-width: 760px;
}

.problem__note strong { color: var(--t1); }

/* Market cards */
.market-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-5);
  margin: var(--space-7) 0;
}

.market-card {
  background: var(--bg-s1);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: var(--space-6);
  transition: border-color 320ms var(--ease-out), transform 320ms var(--ease-out);
}

.market-card:hover {
  border-color: var(--border-med);
  transform: translateY(-2px);
}

.market-card__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: var(--space-5);
  padding-bottom: var(--space-4);
  border-bottom: 1px solid var(--border);
}

.market-card__brand {
  font-family: var(--font-d);
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.market-card__tag {
  font-family: var(--font-m);
  font-size: 11px;
  color: var(--t3);
  letter-spacing: 0.04em;
}

.market-card__stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-5);
  margin-bottom: var(--space-5);
}

.market-card__stats > li:not(.market-card__highlight) .stat__num,
.local-context__big {
  color: var(--accent);
}

.stat__num {
  display: block;
  font-family: var(--font-m);
  font-size: clamp(1.4rem, 2.4vw, 2rem);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -0.01em;
  font-feature-settings: "tnum";
  margin-bottom: 4px;
}

.stat__label {
  display: block;
  font-size: 13px;
  color: var(--t3);
  letter-spacing: 0.01em;
}

.market-card__highlight {
  grid-column: 1 / -1;
  padding-top: var(--space-3);
  border-top: 1px dashed var(--border);
}

.market-card__highlight .stat__num {
  font-family: var(--font-d);
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--t1);
}

.market-card__caption {
  font-size: 13px;
  color: var(--t3);
  line-height: 1.55;
  font-style: italic;
}

.local-context {
  display: flex;
  align-items: center;
  gap: var(--space-6);
  padding: var(--space-6);
  background: var(--bg-s1);
  border: 1px solid var(--border);
  border-radius: 12px;
  margin-top: var(--space-6);
}

.local-context__big {
  font-family: var(--font-m);
  font-size: clamp(3rem, 6vw, 4.5rem);
  font-weight: 500;
  line-height: 1;
  flex-shrink: 0;
}

.local-context p {
  font-size: 1.1rem;
  color: var(--t2);
  line-height: 1.55;
}

.local-context p strong { color: var(--t1); }

/* Bridge */
.bridge {
  margin-top: var(--space-9);
  padding: var(--space-8) 0;
  text-align: center;
}

.bridge__divider {
  width: 1px;
  height: 64px;
  background: linear-gradient(to bottom, transparent, var(--accent), transparent);
  margin: 0 auto var(--space-7);
}

.bridge__quote {
  max-width: 880px;
  margin: 0 auto;
}

.bridge__quote p {
  font-family: var(--font-d);
  font-size: clamp(1.4rem, 2.6vw, 2rem);
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: -0.02em;
  color: var(--t1);
  margin-bottom: var(--space-3);
}

.bridge__quote cite {
  display: block;
  margin-top: var(--space-5);
  font-family: var(--font-m);
  font-size: 12px;
  font-style: normal;
  color: var(--t3);
  letter-spacing: 0.03em;
}

.pulse-accent {
  color: var(--accent);
  animation: pulse-text 2.4s ease-in-out infinite;
  display: inline-block;
}

@keyframes pulse-text {
  0%, 100% { opacity: 1; text-shadow: 0 0 0 transparent; }
  50% { opacity: 1; text-shadow: 0 0 20px var(--accent-glow); }
}

/* ==========================================================================
   Seção 02 · Posicionamento
   ========================================================================== */
.maturity {
  margin: var(--space-8) 0 var(--space-9);
  padding: var(--space-6);
  background: var(--bg-s1);
  border: 1px solid var(--border);
  border-radius: 12px;
}

.maturity__header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: var(--space-5);
  flex-wrap: wrap;
  gap: var(--space-3);
}

.maturity__caption {
  font-family: var(--font-m);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--t3);
}

.maturity__title {
  font-family: var(--font-d);
  font-size: 1.05rem;
  color: var(--t2);
}

.maturity__title strong {
  color: var(--accent);
  font-weight: 600;
}

.maturity__stages {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: var(--space-3);
  margin-bottom: var(--space-4);
}

.maturity__stage {
  font-family: var(--font-m);
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--t3);
  text-align: center;
  padding-bottom: var(--space-2);
  border-bottom: 1px solid var(--border);
  transition: color 240ms var(--ease-out);
}

.maturity__stage--active {
  color: var(--accent);
  border-bottom-color: var(--accent);
}

.maturity__bar {
  height: 6px;
  border-radius: 3px;
  background: var(--bg-s3);
  overflow: hidden;
  position: relative;
}

.maturity__bar-fill {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, var(--accent-soft), var(--accent));
  box-shadow: 0 0 16px var(--accent-glow);
  border-radius: 3px;
}

.maturity__bar-fill.is-active {
  width: 100%;
  transition: width 1200ms var(--ease-out);
}

/* Assets */
.assets {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-5);
}

.asset {
  position: relative;
  padding: var(--space-6);
  background: var(--bg-s1);
  border: 1px solid var(--border);
  border-radius: 12px;
  transition: transform 320ms var(--ease-out), border-color 320ms var(--ease-out);
}

.asset:hover {
  transform: translateY(-3px);
  border-color: var(--border-med);
}

.asset__num {
  font-family: var(--font-m);
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--t3);
  margin-bottom: var(--space-3);
  display: block;
}

.asset__title {
  font-family: var(--font-d);
  font-weight: 700;
  font-size: 1.35rem;
  letter-spacing: -0.018em;
  margin-bottom: var(--space-4);
  line-height: 1.2;
}

.asset__body {
  color: var(--t2);
  line-height: 1.6;
  font-size: 0.98rem;
}

.asset__body strong { color: var(--t1); }

.asset--warning {
  background: linear-gradient(180deg, var(--warning-dim), var(--bg-s1) 60%);
  border-color: rgba(255, 159, 10, 0.3);
}

.asset--warning:hover {
  border-color: var(--warning);
}

.asset__badge {
  position: absolute;
  top: var(--space-4);
  right: var(--space-4);
  font-family: var(--font-m);
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--warning);
  padding: 4px 8px;
  background: var(--warning-dim);
  border: 1px solid rgba(255, 159, 10, 0.3);
  border-radius: 4px;
}

/* ==========================================================================
   Seção 03 · A BU
   ========================================================================== */
.horizons {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-5);
  margin-bottom: var(--space-9);
}

.horizon {
  padding: var(--space-6);
  background: var(--bg-s1);
  border: 1px solid var(--border);
  border-radius: 12px;
  transition: border-color 320ms var(--ease-out), transform 320ms var(--ease-out);
}

.horizon:hover {
  border-color: var(--border-med);
  transform: translateY(-2px);
}

.horizon__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: var(--space-4);
  padding-bottom: var(--space-4);
  border-bottom: 1px solid var(--border);
}

.horizon__num {
  font-family: var(--font-d);
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--accent);
  letter-spacing: -0.02em;
}

.horizon__period {
  font-family: var(--font-m);
  font-size: 11px;
  letter-spacing: 0.06em;
  color: var(--t3);
}

.horizon__title {
  font-family: var(--font-d);
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  margin-bottom: var(--space-4);
  line-height: 1.18;
}

.horizon__body {
  color: var(--t2);
  font-size: 0.98rem;
  line-height: 1.6;
}

.horizon__body strong { color: var(--t1); }

.horizon--vision {
  background: linear-gradient(180deg, var(--accent-dim), var(--bg-s1) 70%);
  border-color: var(--accent-soft);
}

.horizon--vision .horizon__title {
  font-size: 1.6rem;
}

.horizon--vision:hover {
  border-color: var(--accent);
}

/* Phases split */
.phases {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-7);
  margin: var(--space-7) 0 var(--space-5);
  padding: var(--space-7);
  background: var(--bg-s1);
  border: 1px solid var(--border);
  border-radius: 16px;
}

.phases__divider {
  position: absolute;
  top: var(--space-7);
  bottom: var(--space-7);
  left: 50%;
  width: 1px;
  background: linear-gradient(180deg, transparent, var(--accent), transparent);
  transform: translateX(-50%);
}

.phase__tag {
  font-family: var(--font-m);
  font-size: 11px;
  letter-spacing: 0.14em;
  color: var(--accent);
  padding: 4px 10px;
  background: var(--accent-dim);
  border-radius: 4px;
  display: inline-block;
  margin-bottom: var(--space-4);
}

.phase--2 .phase__tag {
  color: var(--t1);
  background: var(--accent);
}

.phase__title {
  font-family: var(--font-d);
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  margin-bottom: var(--space-5);
}

.phase__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  margin-bottom: var(--space-5);
}

.phase__list li {
  display: grid;
  grid-template-columns: 88px 1fr;
  gap: var(--space-3);
  align-items: baseline;
}

.phase__key {
  font-family: var(--font-m);
  font-size: 11px;
  letter-spacing: 0.06em;
  color: var(--t3);
  text-transform: uppercase;
}

.phase__list li > span:last-child {
  color: var(--t2);
  font-size: 0.95rem;
  line-height: 1.45;
}

.phase__role {
  font-family: var(--font-d);
  font-weight: 600;
  font-size: 1.1rem;
  color: var(--t1);
  padding-top: var(--space-4);
  border-top: 1px solid var(--border);
}

.phase--2 .phase__role { color: var(--accent); }

.phases__note {
  font-size: 0.98rem;
  color: var(--t2);
  line-height: 1.6;
  margin-bottom: var(--space-8);
  max-width: 820px;
}

.phases__note strong { color: var(--t1); }

/* Mandates */
.mandates {
  margin-bottom: var(--space-8);
}

.mandates__title {
  font-family: var(--font-d);
  font-size: 1.4rem;
  font-weight: 700;
  margin-bottom: var(--space-5);
  letter-spacing: -0.02em;
}

.mandate {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: var(--space-5);
  padding: var(--space-6);
  margin-bottom: var(--space-4);
  background: var(--bg-s1);
  border: 1px solid var(--border);
  border-radius: 12px;
  transition: background 280ms var(--ease-out), border-color 280ms var(--ease-out);
}

.mandate:hover {
  background: var(--accent-dim);
  border-color: var(--accent-soft);
}

.mandate__num {
  font-family: var(--font-d);
  font-size: 2rem;
  font-weight: 700;
  color: var(--accent);
  letter-spacing: -0.02em;
  line-height: 1;
}

.mandate__title {
  font-family: var(--font-d);
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: -0.015em;
  margin-bottom: var(--space-3);
  line-height: 1.25;
}

.mandate__body {
  color: var(--t2);
  font-size: 1rem;
  line-height: 1.6;
}

.mandate__body strong { color: var(--t1); }

/* Not BU */
.not-bu {
  padding: var(--space-5) var(--space-6);
  background: var(--bg-s2);
  border-radius: 10px;
  border-left: 2px solid var(--t3);
}

.not-bu__title {
  font-family: var(--font-m);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--t3);
  margin-bottom: var(--space-3);
}

.not-bu__list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-2) var(--space-5);
}

.not-bu__list li {
  font-size: 0.92rem;
  color: var(--t2);
  padding-left: var(--space-4);
  position: relative;
  line-height: 1.5;
}

.not-bu__list li::before {
  content: "×";
  position: absolute;
  left: 0;
  color: var(--t3);
  font-family: var(--font-m);
}

/* ==========================================================================
   Seção 04 · Modelo Financeiro
   ========================================================================== */
.threshold {
  margin-bottom: var(--space-9);
}

.threshold__intro {
  font-family: var(--font-d);
  font-size: 1.3rem;
  color: var(--t2);
  margin-bottom: var(--space-6);
  line-height: 1.4;
  font-weight: 400;
  letter-spacing: -0.01em;
  max-width: 820px;
}

.data-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: var(--bg-s1);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
}

.data-table th,
.data-table td {
  padding: var(--space-4) var(--space-5);
  text-align: left;
  border-bottom: 1px solid var(--border);
  font-size: 0.98rem;
}

.data-table tr:last-child th,
.data-table tr:last-child td {
  border-bottom: 0;
}

.data-table thead th {
  font-family: var(--font-m);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--t3);
  background: var(--bg-s2);
  border-bottom-color: var(--border-med);
}

.data-table tbody th {
  font-weight: 400;
  color: var(--t2);
  font-family: var(--font-b);
}

.data-table tbody td.num,
.data-table tbody th.num,
.data-table thead th.num {
  text-align: right;
  font-family: var(--font-m);
  font-weight: 500;
  color: var(--t1);
  font-feature-settings: "tnum";
}

.data-table tr.emphasis {
  background: var(--accent-dim);
}

.data-table tr.emphasis th,
.data-table tr.emphasis td {
  color: var(--t1);
  font-weight: 600;
}

.data-table tr.emphasis td.accent {
  color: var(--accent);
  font-size: 1.2rem;
}

.badge {
  display: inline-block;
  font-family: var(--font-m);
  font-size: 9px;
  letter-spacing: 0.12em;
  font-weight: 500;
  padding: 2px 6px;
  border-radius: 3px;
  margin-left: var(--space-2);
  vertical-align: 2px;
}

.badge--confirm {
  color: var(--warning);
  background: var(--warning-dim);
  border: 1px solid rgba(255, 159, 10, 0.3);
}

.threshold__note {
  margin-top: var(--space-5);
  font-size: 0.9rem;
  color: var(--t3);
  line-height: 1.55;
  max-width: 820px;
  padding-left: var(--space-4);
  border-left: 1px solid var(--border);
}

/* Dependency circular */
.dependency {
  margin: var(--space-9) 0;
  padding: var(--space-7);
  background: var(--bg-s1);
  border: 1px solid var(--border-med);
  border-radius: 16px;
  position: relative;
}

.dependency__q {
  font-family: var(--font-d);
  font-size: 1.3rem;
  font-weight: 500;
  color: var(--t2);
  margin-bottom: var(--space-4);
  letter-spacing: -0.015em;
}

.dependency__intro {
  font-size: 1.05rem;
  color: var(--t2);
  line-height: 1.6;
  margin-bottom: var(--space-6);
  padding-left: var(--space-5);
  border-left: 1px solid var(--border);
  font-style: italic;
}

.dependency__answer {
  padding-top: var(--space-5);
  border-top: 1px solid var(--border);
}

.dependency__bang {
  display: block;
  font-family: var(--font-d);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700;
  color: var(--accent);
  letter-spacing: -0.03em;
  line-height: 1;
  margin-bottom: var(--space-4);
}

.dependency__answer p {
  font-size: 1.05rem;
  color: var(--t2);
  line-height: 1.6;
  margin-bottom: var(--space-3);
}

.dependency__answer strong { color: var(--t1); }

.dependency__close {
  font-family: var(--font-d) !important;
  font-size: 1.15rem !important;
  color: var(--t1) !important;
  margin-top: var(--space-4) !important;
  letter-spacing: -0.01em;
}

/* Waves */
.waves__rule {
  padding: var(--space-4) var(--space-5);
  background: var(--warning-dim);
  border-left: 2px solid var(--warning);
  border-radius: 4px;
  font-size: 0.98rem;
  color: var(--t2);
  margin-bottom: var(--space-5);
  line-height: 1.5;
}

.waves__rule strong { color: var(--warning); }

.data-table--waves tbody tr {
  transition: background 220ms var(--ease-out);
}

.data-table--waves tbody tr:hover {
  background: var(--bg-s2);
}

.wave-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--bg-s3);
  font-family: var(--font-m);
  font-weight: 600;
  font-size: 13px;
  color: var(--t2);
}

.wave-row[data-wave="0"] .wave-pill {
  color: var(--t3);
}

.wave-row[data-wave="1"] .wave-pill,
.wave-row[data-wave="2"] .wave-pill,
.wave-row[data-wave="3"] .wave-pill {
  background: var(--accent-dim);
  color: var(--accent);
  border: 1px solid var(--accent-soft);
}

/* Checkpoints */
.checkpoints {
  margin: var(--space-9) 0;
}

.checkpoints__title {
  font-family: var(--font-d);
  font-size: 1.4rem;
  font-weight: 700;
  margin-bottom: var(--space-6);
  letter-spacing: -0.02em;
}

.checkpoints__list {
  position: relative;
  padding-left: var(--space-7);
}

.checkpoints__list::before {
  content: "";
  position: absolute;
  left: 13px;
  top: 14px;
  bottom: 14px;
  width: 1px;
  background: linear-gradient(180deg, var(--accent), var(--accent-soft));
}

.checkpoint {
  position: relative;
  padding: var(--space-3) 0 var(--space-5);
  display: flex;
  gap: var(--space-5);
  align-items: flex-start;
}

.checkpoint__diamond {
  position: absolute;
  left: calc(-1 * var(--space-7) + 7px);
  top: var(--space-3);
  width: 14px;
  height: 14px;
  background: var(--accent);
  transform: rotate(45deg);
  box-shadow: 0 0 0 4px var(--bg), 0 0 16px var(--accent-glow);
}

.checkpoint__content {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.checkpoint__when {
  font-family: var(--font-m);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--accent);
  text-transform: uppercase;
}

.checkpoint__what {
  font-size: 1.05rem;
  color: var(--t2);
  line-height: 1.5;
}

.checkpoint__what strong { color: var(--t1); }

.checkpoints__note {
  margin-top: var(--space-6);
  padding: var(--space-5);
  background: var(--bg-s1);
  border-radius: 8px;
  font-size: 0.95rem;
  color: var(--t2);
  line-height: 1.55;
}

.checkpoints__note strong { color: var(--t1); }

/* Exit cost */
.exit-cost {
  padding: var(--space-6);
  background: var(--bg-s2);
  border-left: 2px solid var(--t2);
  border-radius: 4px;
}

.exit-cost__title {
  font-family: var(--font-d);
  font-size: 1.1rem;
  font-weight: 600;
  margin-bottom: var(--space-3);
  letter-spacing: -0.01em;
}

.exit-cost p {
  font-size: 0.98rem;
  color: var(--t2);
  line-height: 1.6;
}

.exit-cost strong { color: var(--t1); }

/* ==========================================================================
   Seção 05 · Operação
   ========================================================================== */
.pilots {
  margin: var(--space-7) 0;
}

.pilots__tabs {
  display: flex;
  gap: var(--space-1);
  margin-bottom: var(--space-5);
  overflow-x: auto;
  scrollbar-width: thin;
  padding-bottom: var(--space-2);
  border-bottom: 1px solid var(--border);
}

.pilots__tab {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  padding: var(--space-3) var(--space-5);
  border-radius: 8px 8px 0 0;
  text-align: left;
  white-space: nowrap;
  border-bottom: 2px solid transparent;
  transition: all 240ms var(--ease-out);
  min-width: 160px;
  flex-shrink: 0;
}

.pilots__tab:hover {
  background: var(--bg-s2);
}

.pilots__tab.is-active {
  background: var(--bg-s1);
  border-bottom-color: var(--accent);
}

.pilots__tab-num {
  font-family: var(--font-m);
  font-size: 10px;
  letter-spacing: 0.1em;
  color: var(--t3);
  font-weight: 500;
}

.pilots__tab.is-active .pilots__tab-num { color: var(--accent); }

.pilots__tab-name {
  font-family: var(--font-d);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--t2);
  letter-spacing: -0.01em;
}

.pilots__tab.is-active .pilots__tab-name { color: var(--t1); }

.pilots__tab-meta {
  font-family: var(--font-m);
  font-size: 9px;
  color: var(--warning);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 1px 6px;
  background: var(--warning-dim);
  border-radius: 3px;
  margin-top: 4px;
}

.pilots__panels { position: relative; }

.pilot-panel {
  display: none;
  background: var(--bg-s1);
  border: 1px solid var(--border);
  border-radius: 0 12px 12px 12px;
  padding: var(--space-6);
  animation: fade-up 420ms var(--ease-out);
}

.pilot-panel.is-active { display: block; }

@keyframes fade-up {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

.pilot__compare {
  display: grid;
  grid-template-columns: 1fr 40px 1fr;
  gap: var(--space-4);
  align-items: stretch;
  margin-bottom: var(--space-6);
}

.pilot__col {
  padding: var(--space-5);
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 10px;
  min-height: 140px;
}

.pilot__col--before {
  border-left: 2px solid var(--t3);
}

.pilot__col--after {
  border-left: 2px solid var(--accent);
  background: linear-gradient(180deg, var(--accent-dim), var(--bg) 80%);
}

.pilot__state {
  display: block;
  font-family: var(--font-m);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--t3);
  margin-bottom: var(--space-3);
}

.pilot__col--after .pilot__state { color: var(--accent); }

.pilot__col p {
  font-size: 1rem;
  line-height: 1.55;
  color: var(--t1);
}

.pilot__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.pilot__arrow::before {
  content: "";
  width: 32px;
  height: 1px;
  background: linear-gradient(90deg, var(--t3), var(--accent));
}

.pilot__arrow::after {
  content: "";
  position: absolute;
  right: 4px;
  width: 6px;
  height: 6px;
  border-right: 1px solid var(--accent);
  border-top: 1px solid var(--accent);
  transform: rotate(45deg);
}

.pilot__foot {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--space-3);
  padding-top: var(--space-4);
  border-top: 1px solid var(--border);
}

.pilot__stack,
.pilot__hil {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-family: var(--font-m);
  font-size: 12px;
  color: var(--t2);
}

.pilot__stack-label {
  color: var(--t3);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-size: 10px;
}

.pilot__hil-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 8px var(--accent-glow);
}

/* HIL note */
.hil-note {
  display: flex;
  gap: var(--space-4);
  align-items: flex-start;
  padding: var(--space-5);
  margin: var(--space-7) 0;
  background: var(--bg-s2);
  border-radius: 10px;
}

.hil-note__icon {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--accent-dim);
  border: 1px solid var(--accent-soft);
  flex-shrink: 0;
  position: relative;
}

.hil-note__icon::after {
  content: "";
  position: absolute;
  inset: 7px;
  border-radius: 50%;
  background: var(--accent);
}

.hil-note p {
  color: var(--t2);
  font-size: 0.98rem;
  line-height: 1.6;
}

.hil-note strong { color: var(--t1); }

/* Pending block */
.pending {
  margin-top: var(--space-7);
  padding: var(--space-6);
  background: var(--bg-s2);
  border: 1px solid rgba(255, 159, 10, 0.3);
  border-left: 3px solid var(--warning);
  border-radius: 8px;
  position: relative;
}

.pending__head {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-bottom: var(--space-4);
  padding-bottom: var(--space-4);
  border-bottom: 1px solid var(--border);
}

.pending__badge {
  font-family: var(--font-m);
  font-size: 10px;
  letter-spacing: 0.16em;
  font-weight: 600;
  color: var(--warning);
  padding: 4px 10px;
  background: var(--warning-dim);
  border: 1px solid var(--warning);
  border-radius: 4px;
}

.pending__title {
  font-family: var(--font-d);
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--t1);
}

.pending__anchor {
  color: var(--t2);
  line-height: 1.6;
  margin-bottom: var(--space-4);
  font-size: 0.98rem;
}

.pending__anchor strong { color: var(--warning); }

.pending__sugg {
  color: var(--t3);
  font-size: 0.92rem;
  line-height: 1.55;
}

/* ==========================================================================
   Seção 06 · Stack & Governança
   ========================================================================== */
.stack {
  margin-bottom: var(--space-9);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.stack__layer {
  background: var(--bg-s1);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: var(--space-5);
  transition: all 320ms var(--ease-out);
  cursor: default;
  transform-origin: bottom;
}

.stack__layer:hover {
  border-color: var(--accent-soft);
  background: linear-gradient(90deg, var(--accent-dim), var(--bg-s1) 30%);
}

.stack__layer-head {
  display: flex;
  align-items: baseline;
  gap: var(--space-4);
  margin-bottom: var(--space-2);
}

.stack__layer-num {
  font-family: var(--font-m);
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--accent);
  font-weight: 500;
}

.stack__layer-name {
  font-family: var(--font-d);
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: -0.01em;
}

.stack__layer-body {
  color: var(--t2);
  font-size: 0.98rem;
  line-height: 1.55;
}

.stack__layer-body strong { color: var(--t1); }

/* Principles */
.principles { margin-bottom: var(--space-9); }

.principles__title {
  font-family: var(--font-d);
  font-size: 1.4rem;
  font-weight: 700;
  margin-bottom: var(--space-5);
  letter-spacing: -0.02em;
}

.principle {
  padding: var(--space-5) var(--space-6);
  margin-bottom: var(--space-3);
  background: var(--bg-s1);
  border: 1px solid var(--border);
  border-radius: 12px;
  transition: border-color 280ms var(--ease-out);
}

.principle:hover { border-color: var(--border-med); }

.principle__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--space-3);
}

.principle__num {
  font-family: var(--font-m);
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--accent);
  font-weight: 500;
}

.principle__status {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-family: var(--font-m);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--t3);
}

.principle__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 8px var(--accent-glow);
  animation: dot-pulse 2.4s ease-in-out infinite;
}

@keyframes dot-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.4; }
}

.principle__title {
  font-family: var(--font-d);
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: -0.015em;
  margin-bottom: var(--space-3);
  line-height: 1.25;
}

.principle__body {
  color: var(--t2);
  font-size: 0.98rem;
  line-height: 1.6;
  margin-bottom: var(--space-3);
}

.principle__body strong { color: var(--t1); }

.principle__why {
  font-size: 0.9rem;
  color: var(--t3);
  line-height: 1.5;
  padding-left: var(--space-4);
  border-left: 1px solid var(--border);
}

.principle__why strong { color: var(--t2); }

/* Infra cost */
.infra-cost {
  margin-bottom: var(--space-9);
}

.infra-cost__title {
  font-family: var(--font-d);
  font-size: 1.4rem;
  font-weight: 700;
  margin-bottom: var(--space-5);
  letter-spacing: -0.02em;
}

/* LGPD */
.lgpd {
  padding: var(--space-7);
  background: var(--bg-s2);
  border-radius: 16px;
  border: 1px solid var(--border);
}

.lgpd__title {
  font-family: var(--font-d);
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: var(--space-5);
  letter-spacing: -0.015em;
}

.lgpd__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-5);
}

.lgpd__cell h4 {
  font-family: var(--font-m);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: var(--space-2);
  font-weight: 500;
}

.lgpd__cell p {
  color: var(--t2);
  font-size: 0.94rem;
  line-height: 1.55;
}

.lgpd__cell p strong { color: var(--t1); }

/* ==========================================================================
   Seção 07 · Roadmap
   ========================================================================== */
.axes {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-6);
  margin: var(--space-7) 0;
}

.axis {
  padding: var(--space-6);
  background: var(--bg-s1);
  border: 1px solid var(--border);
  border-radius: 16px;
}

.axis__head {
  display: flex;
  align-items: baseline;
  gap: var(--space-4);
  margin-bottom: var(--space-5);
  padding-bottom: var(--space-4);
  border-bottom: 1px solid var(--border);
}

.axis__tag {
  font-family: var(--font-m);
  font-size: 11px;
  letter-spacing: 0.14em;
  color: var(--accent);
  padding: 4px 10px;
  background: var(--accent-dim);
  border-radius: 4px;
}

.axis__title {
  font-family: var(--font-d);
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.axis__list {
  position: relative;
  padding-left: var(--space-6);
}

.axis__list::before {
  content: "";
  position: absolute;
  left: 7px;
  top: 8px;
  bottom: 8px;
  width: 1px;
  background: var(--border);
}

.milestone {
  position: relative;
  padding-bottom: var(--space-5);
}

.milestone:last-child { padding-bottom: 0; }

.milestone__dot {
  position: absolute;
  left: calc(-1 * var(--space-6) + 3px);
  top: 6px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--bg);
  border: 2px solid var(--accent);
}

.milestone__when {
  display: block;
  font-family: var(--font-m);
  font-size: 12px;
  color: var(--accent);
  letter-spacing: 0.04em;
  margin-bottom: var(--space-1);
}

.milestone__content p {
  color: var(--t2);
  font-size: 0.96rem;
  line-height: 1.5;
}

/* Decisions */
.decisions { margin: var(--space-9) 0; }

.decisions__title {
  font-family: var(--font-d);
  font-size: 1.4rem;
  font-weight: 700;
  margin-bottom: var(--space-6);
  letter-spacing: -0.02em;
}

.decisions__track {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: var(--space-3);
  position: relative;
}

.decisions__track::before {
  content: "";
  position: absolute;
  top: 12px;
  left: 20px;
  right: 20px;
  height: 1px;
  background: linear-gradient(90deg, var(--accent), var(--accent-soft));
}

.decision {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-2);
  padding: 0 var(--space-2);
  position: relative;
}

.decision__diamond {
  width: 18px;
  height: 18px;
  background: var(--accent);
  transform: rotate(45deg);
  box-shadow: 0 0 0 4px var(--bg), 0 0 16px var(--accent-glow);
  animation: dot-pulse 2.4s ease-in-out infinite;
  z-index: 1;
}

.decision__month {
  font-family: var(--font-d);
  font-weight: 700;
  font-size: 0.98rem;
  color: var(--t1);
  margin-top: var(--space-2);
}

.decision__what {
  font-size: 0.85rem;
  color: var(--t2);
  line-height: 1.45;
}

/* Hypotheses */
.hypotheses { margin-top: var(--space-7); }

.hypotheses__title {
  font-family: var(--font-d);
  font-size: 1.4rem;
  font-weight: 700;
  margin-bottom: var(--space-5);
  letter-spacing: -0.02em;
}

.hypothesis-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-4);
  margin-bottom: var(--space-5);
}

.hypothesis {
  padding: var(--space-5);
  background: var(--bg-s1);
  border: 1px solid var(--border);
  border-radius: 12px;
  transition: transform 280ms var(--ease-out), border-color 280ms var(--ease-out);
}

.hypothesis:hover {
  transform: translateY(-2px);
  border-color: var(--accent-soft);
}

.hypothesis__num {
  display: inline-block;
  font-family: var(--font-d);
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--accent);
  letter-spacing: -0.02em;
  line-height: 1;
  margin-bottom: var(--space-2);
}

.hypothesis__topic {
  display: block;
  font-family: var(--font-m);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--t3);
  margin-bottom: var(--space-3);
}

.hypothesis p {
  color: var(--t2);
  font-size: 0.96rem;
  line-height: 1.55;
}

.hypothesis p strong { color: var(--t1); }

.hypotheses__note {
  font-size: 0.95rem;
  color: var(--t2);
  line-height: 1.55;
  padding: var(--space-4) var(--space-5);
  background: var(--bg-s2);
  border-radius: 8px;
  border-left: 2px solid var(--accent);
}

.hypotheses__note strong { color: var(--t1); }

/* ==========================================================================
   Seção 08 · Decisão
   ========================================================================== */
.section--close {
  background: var(--bg);
  position: relative;
  display: block;
}

/* Accountability */
.accountability {
  margin: var(--space-7) 0 var(--space-9);
  padding: var(--space-7);
  background: var(--bg-s1);
  border-radius: 16px;
  border: 1px solid var(--border-med);
}

.accountability__intro {
  font-family: var(--font-d);
  font-size: 1.2rem;
  color: var(--t2);
  margin-bottom: var(--space-6);
  letter-spacing: -0.01em;
}

.accountability__intro strong { color: var(--t1); }

.accountability__names {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-6);
  margin-bottom: var(--space-5);
  padding: var(--space-5) 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.owner {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.owner__role {
  font-family: var(--font-m);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
}

.owner__name {
  font-family: var(--font-d);
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--t1);
}

.owner__scope {
  color: var(--t2);
  font-size: 0.92rem;
  line-height: 1.5;
}

.accountability__close {
  font-family: var(--font-d);
  font-size: 1.15rem;
  font-weight: 500;
  color: var(--accent);
  letter-spacing: -0.01em;
  text-align: center;
}

/* Asks */
.asks {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-5);
  margin-bottom: var(--space-9);
}

.ask {
  padding: var(--space-6);
  background: var(--bg-s1);
  border: 1px solid var(--border);
  border-radius: 12px;
  transition: transform 320ms var(--ease-out), border-color 320ms var(--ease-out);
}

.ask:hover {
  transform: translateY(-3px);
  border-color: var(--accent-soft);
}

.ask__head {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-bottom: var(--space-4);
  padding-bottom: var(--space-4);
  border-bottom: 1px solid var(--border);
}

.ask__check {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 1.5px solid var(--accent);
  position: relative;
  flex-shrink: 0;
}

.ask__check::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 8px;
  width: 5px;
  height: 9px;
  border-right: 1.5px solid var(--accent);
  border-bottom: 1.5px solid var(--accent);
  transform: rotate(45deg);
  opacity: 0;
  transition: opacity 360ms var(--ease-out) 200ms;
}

.ask.is-visible .ask__check::after { opacity: 1; }

.ask__num {
  font-family: var(--font-m);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent);
}

.ask__title {
  font-family: var(--font-d);
  font-size: 1.3rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  margin-left: auto;
}

.ask__body {
  color: var(--t1);
  font-size: 1rem;
  line-height: 1.55;
  margin-bottom: var(--space-4);
}

.ask__body strong { color: var(--accent); }

.ask__note {
  font-size: 0.88rem;
  color: var(--t3);
  line-height: 1.5;
  padding-top: var(--space-4);
  border-top: 1px solid var(--border);
}

.ask__note em { color: var(--t2); font-style: normal; }

/* Closing */
.closing {
  text-align: center;
  margin: var(--space-9) 0 var(--space-8);
  padding: var(--space-8) 0;
}

.closing blockquote { max-width: 880px; margin: 0 auto; }

.closing blockquote p {
  font-family: var(--font-d);
  font-size: clamp(1.2rem, 2.2vw, 1.7rem);
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: -0.015em;
  color: var(--t2);
  margin-bottom: var(--space-4);
}

.closing blockquote p strong { color: var(--t1); }

.closing__final {
  font-family: var(--font-d) !important;
  font-weight: 600 !important;
  font-size: clamp(1.4rem, 2.6vw, 2.1rem) !important;
  color: var(--accent) !important;
  margin-top: var(--space-6) !important;
  letter-spacing: -0.025em !important;
  line-height: 1.3 !important;
}

/* Footer */
.footer {
  margin-top: var(--space-9);
  padding: var(--space-7) 0 var(--space-6);
  border-top: 1px solid var(--border);
}

.footer__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-5);
  margin-bottom: var(--space-6);
}

.footer__col {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.footer__label {
  font-family: var(--font-m);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--t3);
}

.footer__value {
  font-size: 0.92rem;
  color: var(--t2);
  line-height: 1.4;
}

.footer__bottom {
  display: flex;
  justify-content: space-between;
  padding-top: var(--space-4);
  border-top: 1px solid var(--border);
  font-family: var(--font-m);
  font-size: 11px;
  color: var(--t3);
  letter-spacing: 0.04em;
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1024px) {
  :root {
    --space-10: 96px;
    --space-9: 72px;
  }

  .nav__list { display: none; }
  .nav__toggle { display: flex; }

  .nav.is-menu-open .nav__list {
    display: flex;
    position: absolute;
    top: var(--nav-h);
    left: 0;
    right: 0;
    flex-direction: column;
    padding: var(--space-4);
    background: var(--bg-s1);
    border-bottom: 1px solid var(--border);
    gap: var(--space-2);
  }

  .nav.is-menu-open .nav__list a {
    padding: var(--space-3);
    font-size: 13px;
  }

  .horizons,
  .assets,
  .asks,
  .hypothesis-grid {
    grid-template-columns: 1fr 1fr;
  }

  .horizon--vision { grid-column: 1 / -1; }

  .market-cards,
  .phases,
  .axes,
  .lgpd__grid,
  .accountability__names {
    grid-template-columns: 1fr;
  }

  .phases__divider { display: none; }

  .problem__blocks { grid-template-columns: 1fr; }

  .decisions__track {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-5);
  }
  .decisions__track::before { display: none; }

  .footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 720px) {
  :root {
    --space-10: 72px;
    --space-9: 56px;
    --space-8: 48px;
    --nav-h: 56px;
  }

  .container { padding: 0 var(--space-4); }

  .section { padding: var(--space-9) 0; }

  .nav__brand-bu { display: none; }

  .cover__headline { font-size: clamp(2rem, 8vw, 3.4rem); }

  .horizons,
  .assets,
  .asks,
  .hypothesis-grid,
  .not-bu__list,
  .footer__grid {
    grid-template-columns: 1fr;
  }

  .market-card__stats { grid-template-columns: 1fr; }

  .local-context { flex-direction: column; align-items: flex-start; }

  .mandate {
    grid-template-columns: 1fr;
    gap: var(--space-3);
  }

  .pilot__compare {
    grid-template-columns: 1fr;
    gap: var(--space-3);
  }

  .pilot__arrow {
    height: 24px;
    transform: rotate(90deg);
  }

  .decisions__track { grid-template-columns: 1fr; }

  .data-table { font-size: 0.85rem; }
  .data-table th, .data-table td { padding: var(--space-3); }

  .threshold__table-wrap,
  .waves__table-wrap,
  .infra-cost__table-wrap {
    overflow-x: auto;
  }
}

/* ==========================================================================
   BUG-01 · Senior Role Block (substitui .pending)
   ========================================================================== */
.senior-role {
  margin-top: var(--space-7);
  padding: var(--space-6) var(--space-7);
  border: 1px solid var(--border-med);
  border-left: 2px solid var(--accent);
  background: var(--accent-dim);
  border-radius: 6px;
}

.senior-role__head { margin-bottom: var(--space-6); }

.senior-role__tag {
  font-family: var(--font-m);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent);
  display: block;
  margin-bottom: var(--space-3);
}

.senior-role__intro {
  font-size: 15px;
  color: var(--t2);
  line-height: 1.65;
  max-width: 560px;
}

.senior-role__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-5);
}

.senior-role__item {
  padding: var(--space-5) 0 0;
  border-top: 1px solid var(--border);
}

.senior-role__num {
  font-family: var(--font-m);
  font-size: 10px;
  color: var(--accent);
  letter-spacing: 0.1em;
  display: block;
  margin-bottom: 10px;
}

.senior-role__title {
  font-family: var(--font-d);
  font-size: 15px;
  font-weight: 600;
  color: var(--t1);
  letter-spacing: -0.01em;
  display: block;
  margin-bottom: var(--space-2);
  line-height: 1.3;
}

.senior-role__body {
  font-size: 13px;
  color: var(--t3);
  line-height: 1.65;
}

.senior-role__body strong { color: var(--t2); }

@media (max-width: 768px) {
  .senior-role__grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   BUG-03 · Owner placeholder neutro
   ========================================================================== */
.owner__name--placeholder {
  color: var(--t3);
  font-weight: 400;
}

/* ==========================================================================
   VIS-01 · Cover KPIs (sec-00)
   ========================================================================== */
.cover-kpis {
  display: flex;
  gap: 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  margin: var(--space-7) 0;
  width: fit-content;
}

.cover-kpi {
  padding: var(--space-5) var(--space-7) var(--space-5) 0;
  margin-right: var(--space-7);
  border-right: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 4px;
  text-align: left;
}

.cover-kpi:last-child {
  border-right: none;
  margin-right: 0;
  padding-right: 0;
}

.cover-kpi__num {
  font-family: var(--font-d);
  font-size: clamp(36px, 5vw, 64px);
  font-weight: 200;
  letter-spacing: -0.04em;
  line-height: 1;
  color: var(--t1);
  font-variant-numeric: tabular-nums;
}

.cover-kpi__num.accent { color: var(--accent); }
.cover-kpi__num.warning { color: var(--warning); }

.cover-kpi__unit {
  font-family: var(--font-m);
  font-size: 11px;
  color: var(--t3);
  letter-spacing: 0.06em;
}

.cover-kpi__label {
  font-size: 12px;
  color: var(--t3);
  margin-top: 6px;
  max-width: 200px;
  line-height: 1.4;
}

@media (max-width: 640px) {
  .cover-kpis {
    flex-direction: column;
    width: 100%;
  }
  .cover-kpi {
    border-right: none;
    border-bottom: 1px solid var(--border);
    padding: var(--space-4) 0;
    margin: 0;
  }
  .cover-kpi:last-child {
    border-bottom: none;
  }
}

/* ==========================================================================
   VIS-02 · Threshold Visual (sec-04)
   ========================================================================== */
.threshold-visual {
  margin: var(--space-6) 0 var(--space-7);
  padding: var(--space-6) 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.threshold-visual__track {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  max-width: 720px;
}

.threshold-visual__bar {
  display: flex;
  align-items: center;
  gap: var(--space-4);
}

.threshold-visual__bar::before {
  content: '';
  display: block;
  height: 4px;
  width: calc(var(--pct, 0) * 1%);
  min-width: 60px;
  background: var(--t4, #3D3D3D);
  border-radius: 99px;
  transition: width 1.2s var(--ease-out);
  flex-shrink: 0;
  max-width: 320px;
}

.threshold-visual__bar--proj::before {
  background: var(--accent);
  box-shadow: 0 0 16px var(--accent-glow);
}

.threshold-visual__pct {
  font-family: var(--font-d);
  font-size: clamp(28px, 4vw, 48px);
  font-weight: 200;
  letter-spacing: -0.04em;
  color: var(--t2);
  font-variant-numeric: tabular-nums;
  min-width: 80px;
  line-height: 1;
}

.threshold-visual__pct.accent { color: var(--accent); }

.threshold-visual__desc {
  font-size: 13px;
  color: var(--t3);
  line-height: 1.4;
}

.threshold-visual__desc.accent { color: var(--accent); }

.threshold-visual__gap {
  padding: var(--space-3) 0 0;
  border-top: 1px solid var(--border);
  font-size: 13px;
  color: var(--t3);
  margin-top: var(--space-2);
}

.threshold-visual__gap strong {
  color: var(--accent);
  font-weight: 600;
}

.threshold-visual__note {
  font-size: 13px;
  color: var(--t3);
  margin-top: var(--space-5);
  font-style: italic;
}

@media (max-width: 720px) {
  .threshold-visual__bar { flex-wrap: wrap; }
  .threshold-visual__bar::before { width: calc(var(--pct, 0) * 1%); max-width: 240px; }
}

/* ==========================================================================
   VIS-04 · Swimlane (sec-07)
   ========================================================================== */
.swimlane {
  margin: var(--space-7) 0;
  overflow-x: auto;
}

.swimlane__header {
  display: grid;
  grid-template-columns: 180px 1fr 180px;
  gap: var(--space-4);
  padding: 0 0 var(--space-4);
  border-bottom: 1px solid var(--border);
  margin-bottom: var(--space-5);
  align-items: center;
  min-width: 720px;
}

.swimlane__axis-label {
  font-family: var(--font-m);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent);
}

.swimlane__axis-label--b { color: var(--info, #0A84FF); }

.swimlane__months {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  text-align: center;
}

.swimlane__months span {
  font-family: var(--font-m);
  font-size: 10px;
  color: var(--t3);
  letter-spacing: 0.08em;
}

.swimlane__row {
  display: flex;
  align-items: flex-start;
  padding: var(--space-5) 0;
  gap: 0;
  min-width: 720px;
}

.swimlane__milestone {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-3);
  min-width: 0;
  padding: 0 var(--space-2);
}

.swimlane__connector {
  flex: 0 1 40px;
  height: 1px;
  background: var(--border);
  align-self: center;
}

.swimlane__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--bg-s1);
  border: 1.5px solid var(--t3);
  transition: all 320ms var(--ease-out);
  flex-shrink: 0;
}

.swimlane__dot--done {
  background: var(--t3);
  border-color: var(--t3);
}

.swimlane__dot--active {
  background: var(--accent);
  border-color: var(--accent);
  box-shadow: 0 0 12px var(--accent-glow);
  animation: dot-pulse 2.4s ease-in-out infinite;
}

.swimlane__row--b .swimlane__dot--active {
  background: var(--info, #0A84FF);
  border-color: var(--info, #0A84FF);
  box-shadow: 0 0 12px rgba(10, 132, 255, 0.25);
}

.swimlane__content { text-align: center; }

.swimlane__phase {
  font-family: var(--font-d);
  font-size: 13px;
  font-weight: 600;
  color: var(--t1);
  letter-spacing: -0.01em;
  display: block;
  margin-bottom: 4px;
}

.swimlane__detail {
  font-size: 11px;
  color: var(--t3);
  line-height: 1.5;
  display: block;
}

.swimlane__divider {
  height: 1px;
  background: var(--border);
  margin: var(--space-2) 0;
  position: relative;
  min-width: 720px;
}

.swimlane__divider::before {
  content: 'PARALELO';
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  font-family: var(--font-m);
  font-size: 8px;
  letter-spacing: 0.16em;
  color: var(--t3);
  background: var(--bg);
  padding: 0 var(--space-3);
}

@media (max-width: 900px) {
  .swimlane__header,
  .swimlane__row,
  .swimlane__divider { min-width: 720px; }
}

/* ==========================================================================
   VIS-05 · Maturity bar contraste
   ========================================================================== */
.maturity__stage {
  opacity: 0.35;
  transition: opacity 0.3s var(--ease-out), transform 0.3s var(--ease-out);
}

.maturity__stage--active {
  opacity: 1;
  transform: translateY(-2px);
  font-weight: 600;
}

@keyframes mature-pulse-bar {
  0%, 100% { box-shadow: 0 0 16px var(--accent-glow); }
  50% { box-shadow: 0 0 28px var(--accent-glow); }
}

.maturity__bar-fill.is-active {
  animation: mature-pulse-bar 3s var(--ease-in-out) infinite 1.4s;
}

/* ==========================================================================
   POL-01 · Aurora float
   ========================================================================== */
@keyframes aurora-drift-a {
  0%, 100% { transform: translate(0, 0) scale(1); }
  33%      { transform: translate(40px, -30px) scale(1.05); }
  66%      { transform: translate(-20px, 20px) scale(0.97); }
}

@keyframes aurora-drift-b {
  0%, 100% { transform: translate(0, 0) scale(1); }
  40%      { transform: translate(-60px, 40px) scale(1.08); }
  70%      { transform: translate(30px, -20px) scale(0.95); }
}

@keyframes aurora-drift-c {
  0%, 100% { transform: translate(0, 0) scale(1); }
  30%      { transform: translate(30px, 50px) scale(1.04); }
  60%      { transform: translate(-40px, -10px) scale(0.98); }
}

.aurora__blob--a {
  animation: aurora-drift-a 18s ease-in-out infinite;
  opacity: 0.18;
}

.aurora__blob--b {
  animation: aurora-drift-b 22s ease-in-out infinite;
  opacity: 0.12;
}

.aurora__blob--c {
  animation: aurora-drift-c 26s ease-in-out infinite;
  opacity: 0.10;
}

/* ==========================================================================
   POL-02 · Section number outline marker
   ========================================================================== */
.section:not(.section--cover):not(.section--close) {
  position: relative;
}

.section:not(.section--cover):not(.section--close)::before {
  content: attr(data-section);
  position: absolute;
  top: calc(var(--nav-h) + var(--space-5));
  right: var(--space-7);
  font-family: var(--font-d);
  font-size: clamp(80px, 12vw, 160px);
  font-weight: 800;
  color: transparent;
  -webkit-text-stroke: 1px rgba(255, 255, 255, 0.035);
  line-height: 1;
  pointer-events: none;
  user-select: none;
  letter-spacing: -0.05em;
  z-index: 0;
}

.section > .container { position: relative; z-index: 1; }

@media (max-width: 720px) {
  .section:not(.section--cover):not(.section--close)::before {
    right: var(--space-4);
    font-size: clamp(60px, 16vw, 100px);
  }
}

/* ==========================================================================
   POL-03 · Reserved (grid antigo removido em favor do watermark global do logo)
   Nota: removido `overflow: hidden` que estava bloqueando o scroll interno
   herdado de `main.deck > .section` (overflow-y: auto).
   ========================================================================== */
#sec-04 { position: relative; }
#sec-04 > .container { position: relative; z-index: 1; }

/* ==========================================================================
   POL-04 · Hover expressivo nos tabs de piloto
   ========================================================================== */
.pilots__tab {
  cursor: pointer;
  position: relative;
  overflow: hidden;
}

.pilots__tab::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  height: 1px;
  width: 0;
  background: var(--accent);
  transition: width 0.3s var(--ease-out);
}

.pilots__tab:hover::after,
.pilots__tab.is-active::after { width: 100%; }

.pilots__tab:hover .pilots__tab-name { color: var(--t1); }
.pilots__tab.is-active .pilots__tab-name { color: var(--accent); }

/* ==========================================================================
   POL-05 · Peso visual nos ask numbers (sec-08)
   ========================================================================== */
.ask {
  position: relative;
  isolation: isolate;
}

.ask__bignum {
  position: absolute;
  top: 4px;
  right: 12px;
  font-family: var(--font-d);
  font-size: 92px;
  font-weight: 800;
  color: transparent;
  -webkit-text-stroke: 1px rgba(255, 255, 255, 0.06);
  line-height: 1;
  letter-spacing: -0.05em;
  pointer-events: none;
  user-select: none;
  transition: -webkit-text-stroke 0.4s var(--ease-out), transform 0.4s var(--ease-out);
  z-index: 0;
}

.ask:hover .ask__bignum {
  -webkit-text-stroke: 1px rgba(201, 169, 97, 0.18);
  transform: translateY(-2px);
}

.ask__head,
.ask__body,
.ask__note { position: relative; z-index: 1; }

/* ==========================================================================
   DECK MODE · navegação slide-a-slide com scroll-snap
   Cada seção = um slide. HUD removida; bottom dock = bola flutuante (~80px).
   ========================================================================== */
:root {
  /* área reservada na base para a bola flutuante não cobrir conteúdo */
  --dock-h: 80px;
}

html, body {
  height: 100%;
  overflow: hidden;
  scroll-behavior: auto;
}

body { height: 100vh; }

/* Reset da barra de progresso antiga */
.progress { display: none !important; }

/* O <main> torna-se o container de scroll com snap mandatório */
main.deck {
  position: fixed;
  inset: 0;
  height: 100vh;
  overflow-y: scroll;
  overflow-x: hidden;
  scroll-snap-type: y mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  overscroll-behavior: contain;
}
main.deck::-webkit-scrollbar { width: 0; height: 0; display: none; }

/* Seções viram slides · altura DINÂMICA (cresce com conteúdo) ----
   - min-height: 100vh garante que o snap funcione mesmo em slides curtos
     (a section ocupa pelo menos uma viewport)
   - height/max-height NÃO são fixos: se o conteúdo exceder 100vh, a
     section cresce naturalmente — sem cortar, sem scroll interno forçado
   - O .container interno (regra abaixo) usa flex column + justify-content
     center para centralizar VERTICALMENTE o conteúdo em slides curtos
*/
main.deck > .section {
  display: flex !important;
  flex-direction: column;
  min-height: 100vh;
  width: 100%;
  scroll-snap-align: start;
  scroll-snap-stop: always;
  overflow-x: hidden;
  padding: calc(var(--nav-h) + var(--space-5)) 0 calc(var(--dock-h) + var(--space-4));
  border-bottom: 0;
  position: relative;
}
main.deck > .section::-webkit-scrollbar { width: 0; display: none; }

/* Container interno · regra universal de layout:
   - flex column ocupando full height da section
   - justify-content: center → conteúdo centralizado VERTICALMENTE
   - align-items: stretch → children podem ocupar full width
   - Conteúdo é alinhado à esquerda (text-align/align-items dos próprios
     elementos child mantém a regra "grandes títulos à esquerda")
   - Excludes covers (têm container--center próprio) e a sec-00 (capa custom) */
main.deck > .section:not(.section--cover):not(.section--close):not(.section--intro) > .container {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: stretch;
  min-height: 0;        /* permite que o flex item respeite o parent */
  gap: var(--space-5);
}
/* O .section__header e blocos diretos viram flex children sem encolher */
main.deck > .section:not(.section--cover):not(.section--close):not(.section--intro) > .container > * {
  flex-shrink: 0;
}

/* Container--center (cover) · alinhamento à esquerda, vertical safe-center.
   `safe center` evita que conteúdo alto saia para fora do topo (sob o nav). */
main.deck .section--cover .container--center,
main.deck .section--close .container--center {
  min-height: calc(100vh - var(--nav-h) - var(--dock-h) - 2 * var(--space-6));
  height: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: safe center;
  text-align: left;
}

/* Cover signature (slide 17) · também alinhada à esquerda */
main.deck .section--close .cover__signature {
  justify-content: flex-start;
}

/* Cover · respiro generoso do header (specificity reforçada) */
main.deck > .section.section--cover {
  padding-top: calc(var(--nav-h) + var(--space-7));
  padding-bottom: var(--dock-h);
}

/* Headline do cover · max-width controlado para evitar wraps caóticos */
.cover__headline,
.cover__headline--close {
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
}

/* Slide 1 — hierarquia: HERO (linhas mute, grandes) + H1 (linhas accent, médias) */
#sec-01 .cover__line {
  font-weight: 500;
  line-height: 1.25;
}
/* HERO · linhas 1-2 · maiores, brancas, peso pesado */
#sec-01 .cover__line--mute {
  font-size: clamp(2.6rem, 5.8vw, 5rem);
  font-weight: 700;
  color: var(--t1);
  line-height: 1.04;
}
/* H1 · linhas 3-4 · menores, accent verde, peso médio */
#sec-01 .cover__line--accent {
  font-size: clamp(1.3rem, 2.2vw, 2rem);
  font-weight: 500;
  color: var(--accent);
  line-height: 1.3;
}
/* Espaço respiratório entre o bloco HERO e o bloco H1 */
#sec-01 .cover__line--mute + .cover__line--accent {
  margin-top: var(--space-5);
}

/* Animação cinematográfica ao entrar em cada slide */
@keyframes slide-enter {
  0% { opacity: 0.6; transform: scale(0.985); filter: blur(2px); }
  100% { opacity: 1; transform: scale(1); filter: blur(0); }
}

main.deck > .section.is-current {
  animation: slide-enter 520ms var(--ease-out);
}

/* ==========================================================================
   DECK HUD — bottom dock estilo projetor
   ========================================================================== */
.deck-hud {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  height: var(--dock-h);
  z-index: 95;
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto minmax(260px, 1fr);
  align-items: center;
  gap: var(--space-6);
  padding: 0 var(--space-6);
  background: linear-gradient(to top, rgba(12, 12, 15, 0.92), rgba(12, 12, 15, 0.55));
  backdrop-filter: blur(24px) saturate(160%);
  -webkit-backdrop-filter: blur(24px) saturate(160%);
  border-top: 1px solid var(--border-med);
}

/* sutil linha de "brilho" superior no HUD */
.deck-hud::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 10%;
  right: 10%;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--accent-soft), transparent);
  opacity: 0.45;
  pointer-events: none;
}

/* Lado esquerdo: botões + hint */
.deck-hud__left {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

.deck-hud__btn {
  width: 38px;
  height: 34px;
  border: 1px solid var(--border-med);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.02);
  font-family: var(--font-m);
  font-size: 15px;
  color: var(--t2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 200ms var(--ease-out);
  position: relative;
}

.deck-hud__btn:hover {
  border-color: var(--accent);
  color: var(--accent);
  background: var(--accent-dim);
  box-shadow: 0 0 16px var(--accent-glow);
}

.deck-hud__btn:active { transform: translateY(1px); }

.deck-hud__btn:disabled {
  opacity: 0.28;
  cursor: not-allowed;
  pointer-events: none;
}

.deck-hud__btn-arrow {
  line-height: 1;
  letter-spacing: 0;
  position: relative;
  top: -1px;
}

.deck-hud__hint {
  font-family: var(--font-m);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--t3);
  white-space: nowrap;
}

/* Centro: tira de frames de filme */
.deck-hud__frames {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 var(--space-2);
  position: relative;
}

.deck-hud__frame {
  position: relative;
  width: 28px;
  height: 18px;
  border: 1px solid var(--border-med);
  background: transparent;
  border-radius: 2px;
  cursor: pointer;
  padding: 0;
  transition: all 240ms var(--ease-out);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-m);
  font-size: 9px;
  color: var(--t4, #3D3D3D);
  letter-spacing: 0.04em;
}

/* Perfurações estilo filme nos cantos */
.deck-hud__frame::before,
.deck-hud__frame::after {
  content: "";
  position: absolute;
  width: 3px;
  height: 3px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 1px;
  pointer-events: none;
}
.deck-hud__frame::before { top: -5px; left: 50%; transform: translateX(-50%); }
.deck-hud__frame::after  { bottom: -5px; left: 50%; transform: translateX(-50%); }

.deck-hud__frame:hover {
  border-color: var(--t2);
  color: var(--t2);
  transform: translateY(-1px);
}

.deck-hud__frame.is-past {
  border-color: var(--accent-soft);
  background: rgba(201, 169, 97, 0.04);
  color: var(--accent-soft);
}

.deck-hud__frame.is-current {
  border-color: var(--accent);
  background: var(--accent);
  color: var(--bg);
  font-weight: 600;
  width: 36px;
  height: 22px;
  box-shadow: 0 0 0 1px var(--bg), 0 0 18px var(--accent-glow);
  transform: translateY(-1px);
}

.deck-hud__frame.is-current::before,
.deck-hud__frame.is-current::after {
  background: var(--accent);
  border-color: var(--accent);
}

/* Lado direito: contador + título */
.deck-hud__right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-5);
}

.deck-hud__counter {
  font-family: var(--font-m);
  font-size: 13px;
  color: var(--t3);
  letter-spacing: 0.04em;
  font-variant-numeric: tabular-nums;
  display: inline-flex;
  align-items: baseline;
  gap: 2px;
}

.deck-hud__current {
  color: var(--accent);
  font-weight: 600;
  font-size: 16px;
  letter-spacing: -0.01em;
  display: inline-block;
  min-width: 22px;
  text-align: right;
  transition: transform 280ms var(--ease-out);
}

.deck-hud__current.is-flipping {
  transform: translateY(-4px);
  opacity: 0.4;
}

.deck-hud__sep {
  color: var(--t4, #3D3D3D);
  padding: 0 4px;
}

.deck-hud__total { color: var(--t3); }

.deck-hud__title {
  font-family: var(--font-d);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--t1);
  padding-left: var(--space-5);
  border-left: 1px solid var(--border-med);
  position: relative;
  transition: opacity 240ms var(--ease-out), transform 320ms var(--ease-out);
}

.deck-hud__title.is-changing {
  opacity: 0.4;
  transform: translateX(6px);
}

/* Indicador discreto de "mais conteúdo abaixo" quando o slide overflows */
main.deck > .section[data-has-overflow="true"]::after {
  content: "↓";
  position: absolute;
  bottom: calc(var(--dock-h) + 12px);
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--font-m);
  font-size: 14px;
  color: var(--accent);
  opacity: 0.4;
  animation: hint-pulse 2.4s ease-in-out infinite;
  pointer-events: none;
  z-index: 2;
}

@keyframes hint-pulse {
  0%, 100% { opacity: 0.25; transform: translate(-50%, 0); }
  50%      { opacity: 0.6;  transform: translate(-50%, 4px); }
}

main.deck > .section.is-scrolled-internal::after { opacity: 0 !important; }

/* (grid de sec-04 removido) */

/* Override section number outline para ficar dentro do slide */
main.deck > .section:not(.section--cover):not(.section--close)::before {
  top: calc(var(--nav-h) + var(--space-3));
}

/* Override do footer da sec-08 — em deck o footer fica embutido no slide */
main.deck > .section--close .footer {
  margin-top: var(--space-7);
}

/* Mobile HUD */
@media (max-width: 900px) {
  .deck-hud {
    grid-template-columns: auto 1fr auto;
    gap: var(--space-3);
    padding: 0 var(--space-3);
  }
  .deck-hud__hint { display: none; }
  .deck-hud__title { display: none; }
  .deck-hud__frame { width: 18px; height: 14px; font-size: 0; }
  .deck-hud__frame.is-current { width: 26px; height: 18px; font-size: 8px; }
  .deck-hud__frame::before, .deck-hud__frame::after { display: none; }
}

@media (max-width: 480px) {
  .deck-hud__frames { gap: 4px; }
  .deck-hud__btn { width: 32px; height: 30px; }
  .deck-hud__current { font-size: 14px; }
}

/* ==========================================================================
   Tweaks específicos para o deck mode
   ========================================================================== */
/* Reduz padding interno das seções tradicional para caber melhor */
main.deck > .section .container {
  padding-top: 0;
  padding-bottom: 0;
}

/* Reduz space-10 que era padding original — agora não se aplica */
main.deck > .section {
  padding-top: calc(var(--nav-h) + var(--space-4));
  padding-bottom: calc(var(--dock-h) + var(--space-4));
}

/* Section labels ficam mais compactos */
main.deck > .section .section__header { margin-bottom: var(--space-6); }

/* ==========================================================================
   EDITORIAL OVERHAUL
   Poucas caixas. Hierarquia por extremos tipográficos.
   Números gigantescos como âncora visual. Hairlines no lugar de bordas.
   ========================================================================== */

/* ---------- Reset: cards perdem bg/border/radius/shadow ---------- */
.market-card,
.local-context,
.maturity,
.asset,
.horizon,
.phases,
.mandate,
.not-bu,
.dependency,
.exit-cost,
.checkpoints__note,
.hil-note,
.senior-role,
.stack__layer,
.principle,
.lgpd,
.hypothesis,
.hypotheses__note,
.accountability,
.ask,
.pilot-panel,
.pilot__col,
.waves__rule,
.cover-kpi,
.cover-kpis,
.data-table,
.data-table tr.emphasis,
.threshold-visual {
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

/* Hover effects baseados em transform podem ficar; bg/border hover não fazem sentido */
.market-card:hover,
.asset:hover,
.horizon:hover,
.mandate:hover,
.stack__layer:hover,
.principle:hover,
.hypothesis:hover,
.ask:hover {
  transform: none;
  background: none;
  border: 0;
}

/* ---------- Big number / letter — utilitário ---------- */
.editorial-mega {
  font-family: var(--font-d);
  font-weight: 800;
  letter-spacing: -0.05em;
  line-height: 0.9;
  color: var(--t1);
  font-variant-numeric: tabular-nums;
}

/* ============================================================
   SEC-01 · Market cards · Local context
   ============================================================ */
.market-cards {
  grid-template-columns: 1fr 1fr;
  gap: 0;
  padding: var(--space-6) 0 0;
  border-top: 1px solid var(--border);
}

.market-card {
  padding: var(--space-6) var(--space-6) var(--space-6) 0;
}
.market-card:not(:last-child) { border-right: 1px solid var(--border); padding-right: var(--space-6); }
.market-card:not(:first-child) { padding-left: var(--space-6); padding-right: 0; }

.market-card__head {
  display: block;
  margin-bottom: var(--space-6);
  padding-bottom: 0;
  border-bottom: 0;
}

.market-card__tag {
  display: block;
  margin-bottom: var(--space-3);
  color: var(--accent);
}

.market-card__brand {
  font-family: var(--font-d);
  font-size: clamp(2.4rem, 5vw, 4rem);
  font-weight: 800;
  letter-spacing: -0.045em;
  line-height: 0.95;
  color: var(--t1);
}

.market-card__stats {
  grid-template-columns: 1fr 1fr;
  gap: var(--space-5) var(--space-6);
  margin-bottom: var(--space-5);
}

.market-card__stats > li {
  padding: var(--space-3) 0;
  border-top: 1px solid var(--border);
}

.market-card__stats > li:not(.market-card__highlight) .stat__num {
  font-family: var(--font-d);
  font-size: clamp(1.8rem, 3.4vw, 2.6rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--accent);
  line-height: 1;
}

.market-card__highlight {
  grid-column: 1 / -1;
  border-top: 1px solid var(--border-med);
  padding-top: var(--space-4);
}

.market-card__highlight .stat__num {
  font-family: var(--font-d);
  font-weight: 700;
  font-size: clamp(1.2rem, 1.6vw, 1.4rem);
  color: var(--t1);
}

.market-card__caption {
  font-size: 0.9rem;
  padding-top: var(--space-4);
  border-top: 1px solid var(--border);
}

/* Local context · 72% gigantesco */
.local-context {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--space-7);
  align-items: center;
  padding: var(--space-7) 0;
  margin-top: var(--space-7);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.local-context__big {
  font-family: var(--font-d) !important;
  font-size: clamp(5rem, 14vw, 11rem) !important;
  font-weight: 800;
  letter-spacing: -0.06em;
  line-height: 0.85;
  color: var(--accent);
}
.local-context p {
  font-size: clamp(1rem, 1.3vw, 1.15rem);
  color: var(--t2);
  max-width: 540px;
}

/* ============================================================
   SEC-02 · Maturity (sem painel) · Assets editoriais
   ============================================================ */
.maturity {
  padding: 0;
  margin: var(--space-7) 0;
  border-top: 1px solid var(--border);
  padding-top: var(--space-5);
}

.maturity__header { margin-bottom: var(--space-5); }

.maturity__bar { background: transparent; height: 2px; }
.maturity__bar-fill { background: var(--accent); box-shadow: none; }

/* Assets sem cards — coluna editorial */
.assets {
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0;
  border-top: 1px solid var(--border);
  padding-top: var(--space-6);
}
.asset {
  padding: 0 var(--space-6) 0 0;
  margin-right: var(--space-6);
  border-right: 1px solid var(--border);
}
.asset:last-child { border-right: 0; margin-right: 0; padding-right: 0; }

.asset__num {
  font-family: var(--font-d);
  font-size: clamp(64px, 8vw, 120px);
  font-weight: 800;
  letter-spacing: -0.05em;
  line-height: 0.9;
  color: transparent;
  -webkit-text-stroke: 1.5px var(--border-med);
  margin-bottom: var(--space-4);
}

.asset__title {
  font-size: clamp(1.4rem, 2.2vw, 2rem);
  font-weight: 700;
  letter-spacing: -0.022em;
  line-height: 1.1;
  margin-bottom: var(--space-4);
}

.asset__body { font-size: 0.95rem; }

.asset--warning {
  /* Em vez de bg amarelado, color-shift no número e badge inline */
}
.asset--warning .asset__num {
  -webkit-text-stroke: 1.5px var(--warning);
  color: transparent;
}
.asset__badge {
  position: static;
  display: inline-block;
  margin-bottom: var(--space-3);
  background: transparent;
  border: 0;
  padding: 0;
  color: var(--warning);
  font-family: var(--font-m);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

/* ============================================================
   SEC-03 · Horizons · Phases · Mandates · Not-BU
   ============================================================ */
.horizons {
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0;
  border-top: 1px solid var(--border);
  padding-top: var(--space-6);
}
.horizon {
  padding: 0 var(--space-6) 0 0;
  margin-right: var(--space-6);
  border-right: 1px solid var(--border);
}
.horizon:last-child { border-right: 0; margin-right: 0; padding-right: 0; }

.horizon__head {
  display: block;
  border-bottom: 0;
  padding-bottom: 0;
  margin-bottom: var(--space-3);
}

.horizon__num {
  font-family: var(--font-d);
  font-size: clamp(60px, 8vw, 110px);
  font-weight: 800;
  letter-spacing: -0.06em;
  line-height: 0.85;
  color: var(--accent);
  display: block;
  margin-bottom: var(--space-2);
}

.horizon__period {
  display: block;
  font-family: var(--font-m);
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--t3);
  text-transform: uppercase;
  margin-bottom: var(--space-4);
}

.horizon__title {
  font-size: clamp(1.4rem, 2.2vw, 2rem);
  font-weight: 700;
  letter-spacing: -0.022em;
  line-height: 1.1;
  margin-bottom: var(--space-4);
}

.horizon__body { font-size: 0.95rem; }

.horizon--vision .horizon__num,
.horizon--vision .horizon__title { color: var(--accent); }
.horizon--vision .horizon__title { font-size: clamp(1.6rem, 2.6vw, 2.4rem); }

/* Phases · split editorial */
.phases {
  grid-template-columns: 1fr 1fr;
  gap: 0;
  padding: var(--space-7) 0;
  margin: var(--space-7) 0 var(--space-5);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  position: relative;
}
.phases__divider {
  position: absolute;
  top: var(--space-5);
  bottom: var(--space-5);
  left: 50%;
  width: 1px;
  background: var(--border);
  transform: translateX(-50%);
}
.phase { padding: 0 var(--space-6); }
.phase__tag {
  background: transparent;
  padding: 0;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.phase__title {
  font-size: clamp(2rem, 3.4vw, 3rem);
  font-weight: 800;
  letter-spacing: -0.035em;
  line-height: 0.95;
  margin: var(--space-3) 0 var(--space-5);
}

.phase__role { border-top: 1px solid var(--border); }

/* Mandates editoriais */
.mandate {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: var(--space-5);
  padding: var(--space-5) 0;
  border-top: 1px solid var(--border);
  margin-bottom: 0;
}
.mandate:last-of-type { border-bottom: 1px solid var(--border); }
.mandate__num {
  font-family: var(--font-d);
  font-size: clamp(60px, 7vw, 96px);
  font-weight: 800;
  letter-spacing: -0.05em;
  line-height: 0.85;
  color: var(--accent);
}
.mandate__title { font-size: clamp(1.2rem, 1.6vw, 1.5rem); }

/* Not-BU lista editorial */
.not-bu {
  padding: var(--space-5) 0;
  margin-top: var(--space-6);
  border-top: 1px solid var(--border);
}
.not-bu__list { grid-template-columns: 1fr 1fr; gap: var(--space-3) var(--space-7); }

/* ============================================================
   SEC-04 · Modelo Financeiro · Threshold · Tables · Dependency · Waves
   ============================================================ */
.threshold__intro {
  font-size: clamp(1.4rem, 2.4vw, 2rem);
  color: var(--t1);
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.2;
  margin-bottom: var(--space-6);
}

/* Data tables · sem bg/border externo, só linhas inferiores */
.data-table {
  background: transparent;
  border: 0;
  border-top: 1px solid var(--border-med);
}
.data-table th, .data-table td {
  border-bottom: 1px solid var(--border);
  padding: var(--space-4) 0;
}
.data-table tbody th,
.data-table tbody td {
  padding-left: 0;
  padding-right: var(--space-4);
}
.data-table tbody td.num,
.data-table tbody th.num {
  padding-right: 0;
  padding-left: var(--space-4);
}
.data-table thead th { background: transparent; padding: var(--space-3) 0; }
.data-table tr.emphasis {
  background: transparent;
}
.data-table tr.emphasis th,
.data-table tr.emphasis td {
  padding-top: var(--space-5);
  padding-bottom: var(--space-5);
}
.data-table tr.emphasis td.accent {
  font-size: clamp(1.6rem, 2.6vw, 2.4rem);
  font-weight: 700;
}

.data-table--waves tbody tr:hover { background: transparent; }

/* Threshold visual: já era minimalista, ficou perfeito */
.threshold-visual {
  margin: var(--space-6) 0 var(--space-7);
  padding: var(--space-6) 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

/* Dependency · "Isso parece circular?" */
.dependency {
  margin: var(--space-7) 0;
  padding: var(--space-5) 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.dependency__q {
  font-size: clamp(1.4rem, 2.4vw, 2rem);
  color: var(--t2);
  font-weight: 500;
  margin-bottom: var(--space-4);
}
.dependency__intro {
  padding-left: 0;
  border-left: 0;
  font-size: 0.95rem;
  color: var(--t3);
}
.dependency__bang {
  font-size: clamp(2.8rem, 5vw, 4.5rem);
  font-weight: 800;
  letter-spacing: -0.04em;
}

/* Waves rule · sem bg amarelo */
.waves__rule {
  background: transparent;
  border-left: 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  padding: var(--space-4) 0;
  border-radius: 0;
}
.waves__rule strong { color: var(--warning); }

/* Checkpoints note · sem bg */
.checkpoints__note {
  background: transparent;
  padding: var(--space-5) 0 0;
  border-top: 1px solid var(--border);
}

/* Exit cost · sem bg */
.exit-cost {
  padding: var(--space-5) 0;
  border-top: 1px solid var(--border);
  border-left: 0;
  border-radius: 0;
}
.exit-cost__title {
  font-family: var(--font-m);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--t3);
  margin-bottom: var(--space-3);
}

/* ============================================================
   SEC-05 · Operação · Pilots · HIL · Senior Role
   ============================================================ */
.pilots__tabs { border-bottom: 1px solid var(--border-med); }
.pilots__tab {
  background: transparent;
  border-radius: 0;
  padding: var(--space-3) var(--space-4) var(--space-3) 0;
  margin-right: var(--space-5);
  min-width: 0;
}
.pilots__tab:hover { background: transparent; }
.pilots__tab.is-active { background: transparent; border-bottom-color: var(--accent); }

.pilot-panel {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: var(--space-6) 0 0;
}
.pilot__col {
  background: transparent;
  border: 0;
  border-radius: 0;
  border-top: 1px solid var(--border);
  padding: var(--space-5) 0 0;
}
.pilot__col--before { border-top-color: var(--t3); }
.pilot__col--after  { border-top-color: var(--accent); background: none; }

.pilot__compare { grid-template-columns: 1fr 40px 1fr; }

.pilot__foot { padding-top: var(--space-5); margin-top: var(--space-5); }

/* HIL note · só linha à esquerda, sem bg */
.hil-note {
  background: transparent;
  border-radius: 0;
  padding: var(--space-4) 0 var(--space-4) var(--space-5);
  border-left: 1px solid var(--accent);
}

/* Senior role · sem caixa, hierarquia tipográfica */
.senior-role {
  margin-top: var(--space-7);
  padding: var(--space-5) 0 0;
  border: 0;
  border-top: 1px solid var(--border);
}
.senior-role__tag {
  font-family: var(--font-d);
  font-size: clamp(1rem, 1.4vw, 1.2rem);
  text-transform: none;
  letter-spacing: -0.01em;
  color: var(--t1);
  font-weight: 600;
  margin-bottom: var(--space-3);
}
.senior-role__intro { color: var(--t2); max-width: 720px; }

.senior-role__grid {
  gap: 0;
  grid-template-columns: 1fr 1fr 1fr;
}
.senior-role__item {
  padding: var(--space-5) var(--space-5) 0 0;
  margin-right: var(--space-5);
  border-right: 1px solid var(--border);
  border-top: 1px solid var(--border);
}
.senior-role__item:last-child { border-right: 0; margin-right: 0; padding-right: 0; }

.senior-role__num {
  font-family: var(--font-d);
  font-size: clamp(36px, 4.5vw, 64px);
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 0.85;
  color: transparent;
  -webkit-text-stroke: 1px var(--accent);
  margin-bottom: var(--space-3);
}
.senior-role__title {
  font-size: clamp(1rem, 1.3vw, 1.15rem);
  font-weight: 700;
  letter-spacing: -0.01em;
}

/* ============================================================
   SEC-06 · Stack · Principles · LGPD
   ============================================================ */
.stack { gap: 0; }
.stack__layer {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: var(--space-5) 0;
  border-bottom: 1px solid var(--border);
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: var(--space-5);
}
.stack__layer:first-child { border-top: 1px solid var(--border); }
.stack__layer:hover {
  background: transparent;
  border-color: var(--border-med);
}
.stack__layer-head { display: block; margin-bottom: 0; }
.stack__layer-num {
  font-family: var(--font-d);
  font-size: clamp(48px, 5vw, 80px);
  font-weight: 800;
  letter-spacing: -0.05em;
  line-height: 0.85;
  color: transparent;
  -webkit-text-stroke: 1px var(--accent-soft);
  display: block;
  margin-bottom: var(--space-2);
}
.stack__layer-name {
  font-size: clamp(1.1rem, 1.5vw, 1.3rem);
  font-weight: 700;
  letter-spacing: -0.015em;
}

/* Principles editoriais */
.principle {
  padding: var(--space-5) 0;
  border-top: 1px solid var(--border);
  border-radius: 0;
}
.principle:last-of-type { border-bottom: 1px solid var(--border); }
.principle__head { margin-bottom: var(--space-3); }
.principle__num {
  font-family: var(--font-d);
  font-size: clamp(36px, 5vw, 64px);
  font-weight: 800;
  letter-spacing: -0.04em;
  color: var(--accent);
  line-height: 0.9;
}
.principle__title { font-size: clamp(1.15rem, 1.6vw, 1.4rem); }

/* LGPD · grid editorial sem caixa */
.lgpd {
  padding: var(--space-6) 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.lgpd__title {
  font-family: var(--font-m);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--t3);
  margin-bottom: var(--space-5);
}
.lgpd__grid {
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 0;
}
.lgpd__cell {
  padding: 0 var(--space-5);
  border-right: 1px solid var(--border);
}
.lgpd__cell:first-child { padding-left: 0; }
.lgpd__cell:last-child { border-right: 0; padding-right: 0; }

/* ============================================================
   SEC-07 · Hypotheses (H1/H2/H3 gigantes)
   ============================================================ */
.hypothesis-grid {
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0;
  border-top: 1px solid var(--border);
  padding-top: var(--space-6);
}
.hypothesis {
  padding: 0 var(--space-6) 0 0;
  margin-right: var(--space-6);
  border-right: 1px solid var(--border);
  transform: none;
}
.hypothesis:last-child { border-right: 0; margin-right: 0; padding-right: 0; }
.hypothesis:hover { transform: none; border-color: var(--border); }

.hypothesis__num {
  font-family: var(--font-d);
  font-size: clamp(72px, 10vw, 160px);
  font-weight: 800;
  letter-spacing: -0.07em;
  color: var(--accent);
  line-height: 0.8;
  margin-bottom: var(--space-3);
}
.hypothesis__topic {
  font-family: var(--font-m);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--t3);
  margin-bottom: var(--space-3);
}

.hypotheses__note {
  background: transparent;
  padding: var(--space-5) 0 0 var(--space-5);
  border-left: 1px solid var(--accent);
  border-radius: 0;
  margin-top: var(--space-6);
}

/* ============================================================
   SEC-08 · Accountability · Asks
   ============================================================ */
.accountability {
  margin: var(--space-6) 0 var(--space-7);
  padding: var(--space-6) 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.accountability__intro {
  font-size: clamp(1.3rem, 2.2vw, 1.8rem);
  font-weight: 500;
  color: var(--t1);
}
.accountability__names {
  grid-template-columns: 1fr 1fr;
  gap: 0;
  padding: var(--space-5) 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.owner {
  padding: 0 var(--space-6);
}
.owner:first-child { padding-left: 0; border-right: 1px solid var(--border); }
.owner:last-child { padding-right: 0; }

.owner__name {
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 0.95;
  margin-top: var(--space-2);
}

/* Asks editoriais · números gigantes em outline são o cartão */
.asks {
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0;
  border-top: 1px solid var(--border);
  padding-top: var(--space-6);
}
.ask {
  padding: 0 var(--space-6) 0 0;
  margin-right: var(--space-6);
  border-right: 1px solid var(--border);
}
.ask:last-child { border-right: 0; margin-right: 0; padding-right: 0; }
.ask:hover { transform: none; border-color: var(--border); background: transparent; }

.ask__bignum {
  position: static;
  display: block;
  margin: 0 0 var(--space-3);
  font-size: clamp(80px, 10vw, 160px);
  -webkit-text-stroke: 1.5px var(--accent-soft);
  top: auto; right: auto;
}
.ask:hover .ask__bignum {
  -webkit-text-stroke: 1.5px var(--accent);
  transform: none;
}

.ask__head {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding-bottom: var(--space-3);
  border-bottom: 0;
  margin-bottom: var(--space-4);
}
.ask__check {
  display: none; /* check é redundante com bignum */
}
.ask__num {
  font-family: var(--font-m);
  font-size: 10px;
  letter-spacing: 0.14em;
}
.ask__title {
  margin-left: 0;
  font-size: clamp(1.4rem, 2.2vw, 2rem);
  font-weight: 700;
  letter-spacing: -0.025em;
}
.ask__body strong { color: var(--accent); }
.ask__note {
  padding-top: var(--space-4);
  border-top: 1px solid var(--border);
}

/* ============================================================
   SEC-00 · Cover KPIs · mais editorial
   ============================================================ */
.cover-kpis {
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.cover-kpi { border-right: 1px solid var(--border); }
.cover-kpi:last-child { border-right: 0; }
.cover-kpi__num {
  font-size: clamp(48px, 7vw, 88px);
  font-weight: 800;
  letter-spacing: -0.045em;
}

/* ============================================================
   Section header · headline maior, mais arejado
   ============================================================ */
.h2 {
  font-size: clamp(2.4rem, 5vw, 4.2rem);
  letter-spacing: -0.035em;
  line-height: 1.02;
}

/* ============================================================
   Mobile responsive · cards viram coluna única com hairlines horizontais
   ============================================================ */
@media (max-width: 1024px) {
  .assets,
  .horizons,
  .hypothesis-grid,
  .asks,
  .senior-role__grid,
  .lgpd__grid,
  .market-cards {
    grid-template-columns: 1fr;
  }
  .asset, .horizon, .hypothesis, .ask,
  .senior-role__item,
  .market-card {
    border-right: 0 !important;
    margin-right: 0 !important;
    padding-right: 0 !important;
    border-bottom: 1px solid var(--border);
    border-top: 0 !important;
    padding-bottom: var(--space-5);
    padding-top: var(--space-5);
  }
  .asset:last-child, .horizon:last-child, .hypothesis:last-child, .ask:last-child,
  .senior-role__item:last-child, .market-card:last-child { border-bottom: 0; }

  .lgpd__cell {
    padding: var(--space-4) 0;
    border-right: 0;
    border-bottom: 1px solid var(--border);
  }
  .lgpd__cell:last-child { border-bottom: 0; }

  .owner { padding: var(--space-4) 0; }
  .owner:first-child { border-right: 0; border-bottom: 1px solid var(--border); }

  .stack__layer { grid-template-columns: 1fr; gap: var(--space-2); }
}

/* ==========================================================================
   NAV PORTADA · Componente 1 (progress bar) + Componente 2 (ball + TOC)
   Substitui a .deck-hud removida. Usa exclusivamente tokens do DS.
   ========================================================================== */

/* ---------- Componente 1 · Barra de progresso (topo absoluto) ---------- */
.progress {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--border);
  z-index: 101;            /* acima da .nav (100) */
  pointer-events: none;
}

.progress__fill {
  height: 100%;
  width: 0;
  background: var(--grad-brand);
  box-shadow: 0 0 8px var(--accent-glow);
  border-radius: 0 var(--r-pill) var(--r-pill) 0;
  transition: width 80ms linear;
}

@media (prefers-reduced-motion: reduce) {
  .progress__fill { transition: none; }
}

/* ---------- Componente 2 · Bola flutuante (canto inferior direito) ----------
   Glassmorphism: backdrop-blur + véu translúcido + borda fina + número accent */
.nav-toggle {
  position: fixed;
  bottom: 24px;
  right: 24px;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.04);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  color: var(--accent);
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.10);
  cursor: pointer;
  box-shadow: var(--shadow-elev-soft);
  transition:
    transform 220ms var(--ease-out),
    box-shadow 220ms var(--ease-out),
    border-color 220ms var(--ease-out),
    background 220ms var(--ease-out),
    opacity 220ms var(--ease-out);
  z-index: 95;
}

.nav-toggle__num {
  font-family: var(--font-m);
  font-size: 11px;          /* era 15px · -30% → 10.5 arredondado para 11 */
  font-weight: 700;
  letter-spacing: -0.01em;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  color: var(--accent);
}

/* Texto SR-only para leitor de tela */
.nav-toggle__sr {
  position: absolute;
  left: -10000px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.nav-toggle:hover {
  transform: scale(1.06);
  box-shadow: 0 0 32px var(--accent-glow), 0 0 0 1px var(--accent-soft);
}

.nav-toggle:active { transform: scale(0.96); }

.nav-toggle:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 4px;
}

.nav-toggle[aria-expanded="true"] {
  transform: scale(0.92);
  opacity: 0;
  pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
  .nav-toggle,
  .nav-toggle:hover,
  .nav-toggle:active { transition: none; transform: none; }
}

@media (max-width: 720px) {
  .nav-toggle {
    width: 48px;
    height: 48px;
    bottom: 16px;
    right: 16px;
  }
  .nav-toggle__num { font-size: 13px; }
}

/* ---------- Componente 2 · TOC overlay · Glass + Grain refinado ---------- */
.toc {
  position: fixed;
  inset: 0;
  display: none;
  /* glass: veil profundo + blur amplo + brightness reduz luminância de cores fortes embaixo */
  background: rgba(8, 8, 11, 0.86);
  backdrop-filter: blur(52px) saturate(140%) brightness(0.55);
  -webkit-backdrop-filter: blur(52px) saturate(140%) brightness(0.55);
  z-index: 110;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  overflow-y: auto;
  scrollbar-width: none;
  /* gradient sutilíssimo radial para dar profundidade */
  background-image:
    radial-gradient(ellipse 80% 60% at 50% 30%, rgba(201, 169, 97, 0.06), transparent 70%),
    radial-gradient(ellipse 90% 70% at 50% 100%, rgba(255, 255, 255, 0.02), transparent 60%);
}
.toc::-webkit-scrollbar { display: none; }

/* Grain layer · SVG inline com feTurbulence, tátil e discreto */
.toc::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml;utf8,<svg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.6 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/></svg>");
  background-size: 180px 180px;
  opacity: 0.045;
  pointer-events: none;
  mix-blend-mode: overlay;
  z-index: 0;
}

.toc.is-open {
  display: flex;
  animation: toc-fade 380ms var(--ease-out);
}

@keyframes toc-fade {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.toc__inner {
  width: 100%;
  max-width: 560px;
  margin: 0 auto;
  padding: calc(var(--nav-h) + var(--space-7)) var(--space-5) var(--space-7);
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
  position: relative;
  z-index: 1;
}

.toc__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: var(--space-4);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.toc__eyebrow {
  font-family: var(--font-m);
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
  opacity: 0.9;
}

.toc__close {
  width: 38px;
  height: 38px;
  border: 1px solid rgba(255, 255, 255, 0.10);
  background: transparent;
  color: var(--t2);
  cursor: pointer;
  font-family: var(--font-editorial);
  font-weight: 200;
  font-size: 26px;
  line-height: 1;
  display: grid;
  place-items: center;
  transition: border-color 280ms var(--ease-out), color 280ms var(--ease-out), background 280ms var(--ease-out);
}

.toc__close:hover {
  border-color: rgba(255, 255, 255, 0.25);
  color: var(--t1);
  background: rgba(255, 255, 255, 0.03);
}

.toc__close:focus-visible {
  outline: 1px solid var(--accent);
  outline-offset: 2px;
}

.toc__list {
  display: flex;
  flex-direction: column;
  gap: 0;
  list-style: none;
  padding: 0;
  margin: 0;
}

.toc__item {
  display: grid;
  grid-template-columns: 64px 1fr auto;
  align-items: baseline;
  gap: var(--space-5);
  padding: var(--space-4) var(--space-2) var(--space-4) 0;
  border: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
  background: transparent;
  color: var(--t2);
  cursor: pointer;
  text-align: left;
  font: inherit;
  position: relative;
  width: 100%;
  transition: color 320ms var(--ease-out), padding-left 320ms var(--ease-out);
}

.toc__item:last-child { border-bottom: 1px solid rgba(255, 255, 255, 0.05); }

.toc__item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 0;
  height: 1px;
  background: var(--accent);
  opacity: 0.6;
  transform: translateY(-50%);
  transition: width 360ms var(--ease-out);
  pointer-events: none;
}

.toc__item:hover,
.toc__item.current {
  color: var(--t1);
  padding-left: var(--space-3);   /* abre espaço para o tick não sobrepor o número */
}
.toc__item:hover::before { width: var(--space-2); }

.toc__item:focus-visible {
  outline: 1px solid var(--accent);
  outline-offset: -1px;
}

.toc__item.current::before { width: var(--space-3); opacity: 1; }
.toc__item.current .toc__num { color: var(--accent); }

/* Número editorial (Fraunces) — substituiu o mono terminal */
.toc__num {
  font-family: var(--font-editorial);
  font-size: 28px;
  font-weight: 300;
  font-variation-settings: "opsz" 144;
  color: var(--t4);
  font-variant-numeric: lining-nums;
  letter-spacing: -0.02em;
  line-height: 1;
  position: relative;
  z-index: 1;
  transition: color 320ms var(--ease-out);
}

.toc__label {
  font-family: var(--font-d);
  font-size: clamp(18px, 2.2vw, 22px);
  font-weight: 600;
  letter-spacing: -0.018em;
  line-height: 1.25;
  position: relative;
  z-index: 1;
}

.toc__hint {
  font-family: var(--font-editorial);
  font-weight: 300;
  font-size: 18px;
  color: var(--t4);
  position: relative;
  z-index: 1;
  transition: transform 320ms var(--ease-out), color 320ms var(--ease-out);
}

.toc__item:hover .toc__hint,
.toc__item.current .toc__hint {
  transform: translateX(6px);
  color: var(--accent);
}

@media (max-width: 720px) {
  .toc__inner {
    padding: calc(var(--nav-h) + var(--space-5)) var(--space-4) var(--space-6);
  }
  .toc__item {
    grid-template-columns: 48px 1fr auto;
    padding: var(--space-3) 0;
    gap: var(--space-4);
  }
  .toc__num { font-size: 22px; }
}

@media (prefers-reduced-motion: reduce) {
  .toc.is-open { animation: none; }
  .toc__item,
  .toc__item::before,
  .toc__hint,
  .toc__num,
  .toc__close { transition: none; }
}

/* Bola flutuante · Nohemi + 30% menor + cor accent */
.nav-toggle__num {
  font-family: var(--font-editorial);
  font-size: 15px;                  /* era 22px · -30% */
  font-weight: 400;
  letter-spacing: 0;
  font-variant-numeric: lining-nums;
  line-height: 1;
  color: var(--accent);
}

/* ==========================================================================
   ROTEIRO v1.4 · Componentes do novo deck (17 slides)
   ========================================================================== */

/* Placeholder name · sinaliza AI & Automation */
.placeholder-name {
  font-family: var(--font-editorial);
  font-weight: 300;
  font-style: italic;
  color: var(--accent-soft);
  border-bottom: 1px dashed rgba(201, 169, 97, 0.4);
  padding-bottom: 1px;
  letter-spacing: -0.005em;
}

/* Cover · slides 1 e 17 · headline grandiosa com stagger */
.cover__line {
  display: block;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 720ms var(--ease-out), transform 720ms var(--ease-out);
}
.cover__line.is-staggered { opacity: 1; transform: translateY(0); }
.cover__line--mute { color: var(--t2); font-weight: 600; }
.cover__line--accent { color: var(--accent); }
/* TIER 3 · PUNCHLINE · linha 4 (--final) · "Começa agora" · gigante + accent */
.cover__line--final {
  font-family: var(--font-d);
  color: var(--accent);
  font-weight: 800;
  letter-spacing: 0;
  font-size: clamp(4rem, 11vw, 9rem);
  margin-top: var(--space-7);
  display: block;
  line-height: 0.92;
}

/* Slide 17 · hierarquia em 3 tiers visuais distintos */

/* TIER 1 · CONTEXTO · linhas 0-1 (mute) · sussurro: pequeno + dim + italic */
.cover__headline--close .cover__line--mute {
  font-family: var(--font-d);
  font-size: clamp(1rem, 1.6vw, 1.4rem);
  line-height: 1.35;
  font-weight: 400;
  color: var(--t4);
  font-style: italic;
  margin-bottom: var(--space-1);
  letter-spacing: 0;
}

/* TIER 2 · STATEMENT · linhas 2-3 (sem modifier) · decisão: médio + branco + bold */
.cover__headline--close .cover__line:not(.cover__line--mute):not(.cover__line--final) {
  font-family: var(--font-d);
  font-size: clamp(1.8rem, 3.4vw, 3rem);
  line-height: 1.18;
  font-weight: 600;
  color: var(--t1);
  margin-bottom: var(--space-2);
  margin-top: var(--space-5);
  letter-spacing: 0;
}
/* O segundo statement (linha 3) não precisa de margin-top extra */
.cover__headline--close .cover__line:not(.cover__line--mute):not(.cover__line--final) + .cover__line:not(.cover__line--mute):not(.cover__line--final) {
  margin-top: 0;
}

.cover__caption {
  margin-top: var(--space-7);
  font-family: var(--font-m);
  font-size: 11px;
  color: var(--t3);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 720ms var(--ease-out), transform 720ms var(--ease-out);
}
.cover__caption.is-staggered { opacity: 1; transform: translateY(0); }

/* Aurora espelho · slide 17 com gradient mais intenso, simétrico ao slide 1 */
.aurora--mirror .aurora__blob--a { opacity: 0.22; animation-duration: 14s; }
.aurora--mirror .aurora__blob--b { opacity: 0.18; }

/* Big statement · h2 editorial maior + line-height tight */
.big-statement {
  font-size: clamp(2.2rem, 5.4vw, 4.6rem);
  line-height: 1.02;
  letter-spacing: -0.04em;
  font-weight: 800;
}

/* Section footnote · italic discreto após blocos densos */
.section__footnote {
  margin-top: var(--space-6);
  font-size: 0.95rem;
  color: var(--t3);
  line-height: 1.6;
  max-width: 760px;
  font-style: italic;
}
.section__footnote strong { color: var(--t2); font-style: normal; }

/* ---- Hero numbers (editorial, magnet-ready) ---- */
.hero-anchor,
.hero-pair {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--space-6);
  align-items: center;
  margin: var(--space-7) 0;
  padding: var(--space-6) 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.hero-anchor__num,
.hero-pair__num {
  font-family: var(--font-editorial);
  font-weight: 200;
  font-size: clamp(5rem, 12vw, 10rem);
  letter-spacing: -0.055em;
  line-height: 0.88;
  color: var(--accent);
  font-variant-numeric: lining-nums;
  white-space: nowrap;
}

.hero-anchor__unit,
.hero-pair__pct {
  font-family: var(--font-d);
  font-weight: 500;
  font-size: 0.32em;
  vertical-align: 0.55em;
  letter-spacing: -0.02em;
  margin-left: 0.05em;
  color: var(--t2);
}

.hero-anchor__caption,
.hero-pair__caption p {
  font-size: clamp(1rem, 1.5vw, 1.2rem);
  color: var(--t2);
  line-height: 1.55;
  max-width: 560px;
}
.hero-pair__label {
  display: block;
  font-family: var(--font-m);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--t3);
  margin-bottom: var(--space-2);
}

/* Magnet · DESATIVADO (jun/2026). Mantemos a classe declarada como no-op
   para que o atributo class="magnet" no HTML não cause erros visuais.
   O JS de initMagnet() também foi neutralizado em script.js. */
.magnet,
.magnet:hover {
  transition: none;
  transform: none !important;
  will-change: auto;
}

/* ---- SLIDE 2 · Diagnóstico (4 itens editoriais) ---- */
.diag-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border-top: 1px solid var(--border);
}
.diag-item {
  padding: var(--space-6) var(--space-6) var(--space-6) 0;
  border-bottom: 1px solid var(--border);
}
.diag-item:nth-child(odd) { border-right: 1px solid var(--border); padding-right: var(--space-6); }
.diag-item:nth-child(even) { padding-left: var(--space-6); padding-right: 0; }
.diag-item:nth-last-child(-n+2) { border-bottom: 0; }

.diag-item__num {
  font-family: var(--font-editorial);
  font-weight: 200;
  font-size: clamp(48px, 6vw, 80px);
  color: var(--accent);
  letter-spacing: -0.05em;
  line-height: 0.9;
  display: block;
  margin-bottom: var(--space-3);
}
.diag-item__title {
  font-family: var(--font-d);
  font-size: clamp(1.15rem, 1.7vw, 1.45rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.2;
  margin-bottom: var(--space-3);
}
.diag-item__body {
  font-size: 0.95rem;
  color: var(--t2);
  line-height: 1.6;
}
.diag-item__body strong { color: var(--t1); }

/* ---- SLIDE 3 · WPP/Publicis stats (recicla .market-card) ---- */
/* CSS já existe; só ajustes finos abaixo */
.market-card__brand {
  font-family: var(--font-d);
  font-size: clamp(2rem, 4vw, 3.4rem);
}

/* ---- SLIDE 4 · 95% vs 5% confronto ---- */
.stat-confront {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: var(--space-7);
  margin: var(--space-7) 0;
  padding: var(--space-6) 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  align-items: start;
}
.stat-confront__num {
  font-family: var(--font-editorial);
  font-weight: 200;
  font-size: clamp(4rem, 10vw, 9rem);
  line-height: 0.9;
  letter-spacing: 0;
  color: var(--t1);
  font-variant-numeric: lining-nums;
  display: block;
}
.stat-confront__num--accent { color: var(--accent); }
.stat-confront__pct {
  font-family: var(--font-d);
  font-weight: 500;
  font-size: 0.3em;
  vertical-align: 0.6em;
  color: var(--t2);
}
.stat-confront__caption {
  margin-top: var(--space-4);
  font-size: 0.95rem;
  color: var(--t2);
  line-height: 1.55;
}
.stat-confront__caption cite {
  display: block;
  margin-top: var(--space-2);
  font-family: var(--font-m);
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--t4);
  font-style: normal;
}

/* Reason list · 3 razões editoriais */
.reason-list {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0;
  border-top: 1px solid var(--border);
  padding-top: var(--space-5);
}
.reason-item {
  padding: 0 var(--space-5) 0 0;
  margin-right: var(--space-5);
  border-right: 1px solid var(--border);
}
.reason-item:last-child { border-right: 0; margin-right: 0; padding-right: 0; }
.reason-item__num {
  font-family: var(--font-editorial);
  font-weight: 300;
  font-size: 28px;
  color: var(--accent);
  letter-spacing: -0.02em;
  line-height: 1;
  display: block;
  margin-bottom: var(--space-3);
}
.reason-item p {
  font-size: 0.95rem;
  color: var(--t2);
  line-height: 1.6;
}
.reason-item--warn .reason-item__num { color: var(--warning); }

/* ---- SLIDE 5 · Lab → Destino ---- */
.lab-flow {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: var(--space-6);
  align-items: center;
  margin: var(--space-7) 0;
  padding: var(--space-6) 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.lab-flow__role {
  font-family: var(--font-m);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--t3);
  display: block;
  margin-bottom: var(--space-2);
}
.lab-flow__entity {
  font-family: var(--font-d);
  font-size: clamp(1.5rem, 3vw, 2.4rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  display: block;
  margin-bottom: var(--space-3);
}
.lab-flow__stage--dest .lab-flow__entity { color: var(--accent); }
.lab-flow__stage--dest .lab-flow__role { color: var(--accent-soft); }
.lab-flow__why { font-size: 0.95rem; color: var(--t2); line-height: 1.55; }

.lab-flow__connector {
  display: grid;
  place-items: center;
  gap: var(--space-2);
  text-align: center;
}
.lab-flow__arrow {
  font-family: var(--font-editorial);
  font-weight: 200;
  font-size: 48px;
  color: var(--accent);
  line-height: 1;
}
.lab-flow__connector-label {
  font-family: var(--font-m);
  font-size: 9px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--t3);
  max-width: 120px;
}

/* ---- SLIDE 6 · Duas Frentes + Reverse Discovery ---- */
.frentes {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: var(--space-6);
  align-items: stretch;
  margin: var(--space-7) 0;
  padding: var(--space-6) 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.frente__tag {
  font-family: var(--font-m);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent);
  display: block;
  margin-bottom: var(--space-3);
}
.frente--auto .frente__tag { color: var(--accent); }
.frente__title {
  font-family: var(--font-d);
  font-size: clamp(1.2rem, 2vw, 1.6rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.2;
  margin-bottom: var(--space-3);
}
.frente__body { font-size: 0.95rem; color: var(--t2); line-height: 1.6; }
.frente__body strong { color: var(--t1); }
.frentes__loop {
  font-family: var(--font-editorial);
  font-weight: 200;
  font-size: 40px;
  color: var(--accent);
  align-self: center;
}

.reverse-discovery {
  margin-top: var(--space-7);
  padding: var(--space-6) 0 var(--space-6) var(--space-5);
  border-left: 2px solid var(--accent);
}
.reverse-discovery__tag {
  font-family: var(--font-m);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent);
  display: block;
  margin-bottom: var(--space-3);
}
.reverse-discovery__claim {
  font-family: var(--font-d);
  font-size: clamp(1.1rem, 1.6vw, 1.35rem);
  font-weight: 500;
  color: var(--t1);
  line-height: 1.3;
  margin-bottom: var(--space-5);
  letter-spacing: -0.018em;
}
.reverse-discovery__claim strong { color: var(--accent); }
.reverse-discovery__steps {
  display: grid;
  gap: var(--space-3);
  list-style: none;
  padding: 0;
  margin-bottom: var(--space-5);
}
.reverse-discovery__steps li {
  font-size: 0.95rem;
  color: var(--t2);
  line-height: 1.55;
  padding-left: var(--space-6);
  position: relative;
}
.rd-step__num {
  position: absolute;
  left: 0;
  font-family: var(--font-editorial);
  font-weight: 300;
  color: var(--accent);
  font-size: 22px;
  line-height: 1;
}
.reverse-discovery__close {
  font-size: 0.92rem;
  color: var(--t3);
  line-height: 1.6;
  padding-top: var(--space-4);
  border-top: 1px solid var(--border);
}
.reverse-discovery__close strong { color: var(--t1); }

/* ---- SLIDE 7 · Phases line (8 semanas) ---- */
.phases-line {
  list-style: none;
  padding: 0;
  margin: var(--space-7) 0;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
}
.phase-step {
  padding: var(--space-5) var(--space-4) var(--space-5) 0;
  margin-right: var(--space-4);
  border-right: 1px solid var(--border);
  border-top: 1px solid var(--border);
}
.phase-step:last-child { border-right: 0; margin-right: 0; padding-right: 0; }
.phase-step--accent { border-top-color: var(--accent); }
.phase-step--accent .phase-step__week,
.phase-step--accent .phase-step__title { color: var(--accent); }

/* phase-step--reveal · destaque forte para etapas-chave de receita (ex.: SaaS no slide 8).
   Border-top accent + background sutil + badge ancorado no canto inferior do bloco. */
.phase-step--reveal {
  position: relative;
  border-top-width: 2px;
  border-top-color: var(--accent);
  background: linear-gradient(180deg, var(--accent-dim) 0%, transparent 70%);
  padding-left: var(--space-4);
  padding-bottom: calc(var(--space-5) + 30px);
}
.phase-step--reveal .phase-step__week,
.phase-step--reveal .phase-step__title { color: var(--accent); }
.phase-step--reveal .phase-step__title { font-size: 1.05rem; }
.phase-step--reveal .phase-step__detail { color: var(--t2); }
.phase-step--reveal .phase-step__detail strong { color: var(--t1); }

.phase-step__badge {
  position: absolute;
  bottom: var(--space-4);
  left: var(--space-4);
  font-family: var(--font-m);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--accent);
  background: var(--accent-dim);
  padding: 4px 10px;
  border-radius: var(--r-pill);
  border: 1px solid var(--accent-soft);
}

.phase-step__week {
  display: block;
  font-family: var(--font-editorial);
  font-weight: 300;
  font-size: 32px;
  color: var(--t3);
  letter-spacing: -0.03em;
  line-height: 1;
  margin-bottom: var(--space-2);
}
.phase-step__title {
  display: block;
  font-family: var(--font-d);
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  text-transform: uppercase;
  color: var(--t1);
  margin-bottom: var(--space-3);
}
.phase-step__detail {
  font-size: 0.88rem;
  color: var(--t3);
  line-height: 1.55;
}
.phase-step__detail strong { color: var(--t2); }

/* Callouts suaves (sem caixa, só border-left) */
.callout-soft {
  margin-top: var(--space-7);
  padding: var(--space-4) 0 var(--space-4) var(--space-5);
  border-left: 2px solid var(--accent);
}
.callout-soft__tag {
  font-family: var(--font-m);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent);
  display: block;
  margin-bottom: var(--space-2);
}
.callout-soft p {
  font-size: 0.98rem;
  color: var(--t2);
  line-height: 1.6;
}
.callout-soft p strong { color: var(--t1); }
.callout-soft--rule { border-left-color: var(--warning); }
.callout-soft--rule .callout-soft__tag { color: var(--warning); }

/* ---- SLIDE 8 · Departamentos ---- */
.dept-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  margin: var(--space-7) 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.dept-group {
  padding: var(--space-5) var(--space-5) var(--space-5) 0;
}
.dept-group:first-child { border-right: 1px solid var(--border); padding-right: var(--space-5); }
.dept-group:last-child { padding-left: var(--space-5); padding-right: 0; }
.dept-group__status {
  font-family: var(--font-m);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent);
  display: block;
  margin-bottom: var(--space-4);
}
.dept-group--planned .dept-group__status { color: var(--t3); }

.dept-list { list-style: none; padding: 0; margin: 0; }
.dept-list li {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: var(--space-3);
  padding: var(--space-3) 0;
  border-top: 1px solid var(--border);
  align-items: baseline;
}
.dept-list li:first-child { border-top: 0; }
.dept-list__name {
  font-family: var(--font-d);
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: -0.015em;
  color: var(--t1);
}
.dept-group--planned .dept-list__name { color: var(--t2); }
.dept-list__scope {
  font-size: 0.85rem;
  color: var(--t3);
  line-height: 1.5;
}

/* ---- SLIDE 9 · Layer blocks (universais + automações) ---- */
.layer-block {
  margin-top: var(--space-7);
  padding-top: var(--space-5);
  border-top: 1px solid var(--border);
}
.layer-block__tag {
  font-family: var(--font-m);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent);
  display: block;
  margin-bottom: var(--space-3);
}
.layer-block__intro {
  font-size: 0.95rem;
  color: var(--t2);
  line-height: 1.55;
  margin-bottom: var(--space-5);
  max-width: 720px;
}

.tool-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0;
}
.tool {
  padding: var(--space-4) var(--space-4) var(--space-4) 0;
  border-top: 1px solid var(--border);
  border-right: 1px solid var(--border);
  margin-right: var(--space-4);
}
.tool:nth-child(3n) { border-right: 0; margin-right: 0; padding-right: 0; }
.tool:nth-last-child(-n+3) { border-bottom: 1px solid var(--border); padding-bottom: var(--space-4); }
.tool__name {
  display: block;
  font-family: var(--font-d);
  font-size: 1rem;
  font-weight: 700;
  color: var(--t1);
  margin-bottom: var(--space-2);
  letter-spacing: -0.015em;
}
.tool__impact {
  display: block;
  font-size: 0.85rem;
  color: var(--t3);
  line-height: 1.5;
}

.auto-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: var(--space-3);
}
.auto-table thead th {
  font-family: var(--font-m);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--t3);
  text-align: left;
  padding: var(--space-3) var(--space-3) var(--space-3) 0;
  border-bottom: 1px solid var(--border-med);
}
.auto-table tbody td {
  padding: var(--space-3) var(--space-3) var(--space-3) 0;
  border-bottom: 1px solid var(--border);
  font-size: 0.9rem;
  color: var(--t2);
  vertical-align: top;
}
.auto-table tbody td:first-child { color: var(--t1); font-weight: 500; }
.auto-table__footer {
  margin-top: var(--space-4);
  font-size: 0.9rem;
  color: var(--t3);
  line-height: 1.55;
}
.auto-table__footer strong { color: var(--t1); }

/* ---- SLIDE 10 · Threshold confront 11% vs 25-30% ---- */
.threshold-confront {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: var(--space-6);
  align-items: center;
  margin: var(--space-7) 0;
  padding: var(--space-6) 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.threshold-confront__label {
  display: block;
  font-family: var(--font-m);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--t3);
  margin-bottom: var(--space-2);
}
.threshold-confront__num {
  display: block;
  font-family: var(--font-editorial);
  font-weight: 200;
  font-size: clamp(4rem, 9vw, 7.5rem);
  line-height: 0.88;
  letter-spacing: -0.05em;
  color: var(--t2);
  font-variant-numeric: lining-nums;
}
.threshold-confront__num--accent { color: var(--accent); }
.threshold-confront__pct {
  font-family: var(--font-d);
  font-weight: 500;
  font-size: 0.32em;
  vertical-align: 0.55em;
  color: var(--t3);
}
.threshold-confront__divider {
  width: 1px;
  height: 80%;
  background: var(--border);
  align-self: stretch;
}
.threshold-confront p {
  margin-top: var(--space-3);
  font-size: 0.9rem;
  color: var(--t3);
  line-height: 1.5;
}

/* Calc stack · linhas de cálculo financeiro */
.calc-stack {
  margin-top: var(--space-6);
  border-top: 1px solid var(--border);
}
.calc-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--space-5);
  padding: var(--space-3) 0;
  border-bottom: 1px solid var(--border);
  align-items: baseline;
}
.calc-row__key { font-size: 0.95rem; color: var(--t2); }
.calc-row__val {
  font-family: var(--font-m);
  font-size: 0.95rem;
  color: var(--t1);
  font-variant-numeric: tabular-nums;
}
.calc-row--emph { padding: var(--space-4) 0; }
.calc-row--emph .calc-row__key { color: var(--t1); font-weight: 600; }
.calc-row--emph .calc-row__val {
  font-family: var(--font-editorial);
  font-weight: 300;
  font-size: 1.8rem;
}

/* ---- SLIDE 11 · Waves line ---- */
.waves-line {
  list-style: none;
  padding: 0;
  margin: var(--space-7) 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
}
.wave-step {
  padding: var(--space-5) var(--space-4) var(--space-5) 0;
  margin-right: var(--space-4);
  border-right: 1px solid var(--border);
  border-top: 1px solid var(--border);
}
.wave-step:last-child { border-right: 0; margin-right: 0; padding-right: 0; }
.wave-step--active { border-top-color: var(--accent); }
.wave-step--active .wave-step__phase { color: var(--accent); }

.wave-step__phase {
  display: block;
  font-family: var(--font-editorial);
  font-weight: 300;
  font-size: 30px;
  color: var(--t2);
  letter-spacing: -0.025em;
  line-height: 1;
  margin-bottom: var(--space-2);
}
.wave-step__when {
  display: block;
  font-family: var(--font-m);
  font-size: 10px;
  letter-spacing: 0.12em;
  color: var(--t4);
  margin-bottom: var(--space-3);
}
.wave-step__what {
  display: block;
  font-family: var(--font-d);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--t1);
  margin-bottom: var(--space-3);
  line-height: 1.3;
}
.wave-step__econ {
  display: block;
  font-family: var(--font-m);
  font-size: 0.85rem;
  color: var(--accent);
  font-variant-numeric: tabular-nums;
}

/* ---- SLIDE 12 · Stack cols ---- */
.stack-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-7);
  margin: var(--space-7) 0;
  padding: var(--space-6) 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.stack-col__head {
  display: block;
  font-family: var(--font-m);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: var(--space-4);
}
.stack-col__list { list-style: none; padding: 0; margin: 0; }
.stack-col__list li {
  display: flex;
  align-items: baseline;
  gap: var(--space-4);
  padding: var(--space-3) 0;
  border-top: 1px solid var(--border);
}
.stack-col__list li:first-child { border-top: 0; }
.stack-col__list li strong { color: var(--t1); }
.stack-col__text {
  flex: 1;
  font-size: 0.92rem;
  color: var(--t2);
  line-height: 1.5;
  min-width: 0;
}
.stack-col__num {
  font-family: var(--font-editorial);
  font-weight: 300;
  font-size: 22px;
  color: var(--accent);
  letter-spacing: -0.02em;
  line-height: 1;
  flex-shrink: 0;
  min-width: 44px;
  white-space: nowrap;
}

/* ---- SLIDE 13 · Dual axis ---- */
.dual-axis {
  margin: var(--space-7) 0;
  padding: var(--space-6) 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  display: grid;
  gap: var(--space-6);
}
.dual-axis__row { display: grid; grid-template-columns: 200px 1fr; gap: var(--space-5); }
.dual-axis__role {
  font-family: var(--font-d);
  font-size: clamp(1.4rem, 2.4vw, 2rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1;
}
.dual-axis__row--measure .dual-axis__role { color: var(--accent); }
.dual-axis__steps {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
}
.dual-axis__steps li {
  padding: 0 var(--space-3) 0 0;
  margin-right: var(--space-3);
  border-right: 1px solid var(--border);
  font-size: 0.85rem;
  color: var(--t3);
  line-height: 1.5;
}
.dual-axis__steps li:last-child { border-right: 0; margin-right: 0; padding-right: 0; }
.dual-axis__steps li strong {
  display: block;
  font-family: var(--font-m);
  font-size: 11px;
  color: var(--accent);
  margin-bottom: var(--space-2);
  letter-spacing: 0.04em;
}

/* ---- SLIDE 14 · Owners ---- */
.owners {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-6);
  margin: var(--space-7) 0;
  padding: var(--space-6) 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.owner-card { display: flex; flex-direction: column; gap: var(--space-3); }
.owner-card__role {
  font-family: var(--font-m);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
}
.owner-card__name {
  font-family: var(--font-d);
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 0.95;
  color: var(--t1);
}
.owner-card__scope { font-size: 0.92rem; color: var(--t2); line-height: 1.55; }

.engineers-line {
  margin-top: var(--space-5);
  padding: var(--space-4) 0 var(--space-4) var(--space-5);
  border-left: 1px solid var(--border);
}
.engineers-line__tag {
  display: block;
  font-family: var(--font-m);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--t3);
  margin-bottom: var(--space-2);
}
.engineers-line p { font-size: 0.92rem; color: var(--t2); line-height: 1.6; }
.engineers-line strong { color: var(--t1); }

/* ---- SLIDE 15 · Years progression ---- */
.years-progression {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  gap: var(--space-5);
  align-items: center;
  margin: var(--space-7) 0;
  padding: var(--space-6) 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.year-card { padding: 0; }
.year-card__year {
  display: block;
  font-family: var(--font-editorial);
  font-weight: 200;
  font-size: clamp(4rem, 8vw, 6.5rem);
  letter-spacing: -0.05em;
  line-height: 0.9;
  color: var(--t2);
  font-variant-numeric: lining-nums;
}
.year-card__status {
  display: block;
  font-family: var(--font-m);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--t3);
  margin: var(--space-3) 0;
}
.year-card p { font-size: 0.88rem; color: var(--t3); line-height: 1.55; }
.year-card--ok .year-card__year { color: var(--accent); }
.year-card--ok .year-card__status { color: var(--accent); }
.year-card--warn .year-card__year { color: var(--warning); }
.year-card--warn .year-card__status { color: var(--warning); }
.years-progression__arrow {
  font-family: var(--font-editorial);
  font-weight: 200;
  font-size: 36px;
  color: var(--t4);
  line-height: 1;
}

/* ---- Mobile responsive blocks ---- */
@media (max-width: 1024px) {
  .diag-grid,
  .market-cards,
  .frentes,
  .stat-confront,
  .lab-flow,
  .threshold-confront,
  .stack-cols,
  .dept-grid,
  .owners,
  .tool-grid,
  .reason-list {
    grid-template-columns: 1fr;
  }
  .frentes__loop { transform: rotate(90deg); margin: var(--space-3) 0; }
  .threshold-confront__divider { display: none; }
  .lab-flow__connector { padding: var(--space-3) 0; }
  .lab-flow__arrow { transform: rotate(90deg); }
  .phases-line,
  .waves-line,
  .dual-axis__steps { grid-template-columns: 1fr; }
  .years-progression { grid-template-columns: 1fr; }
  .years-progression__arrow { transform: rotate(90deg); margin: var(--space-3) 0; }
  .dual-axis__row { grid-template-columns: 1fr; }
  .reason-item,
  .diag-item,
  .phase-step,
  .wave-step,
  .tool,
  .market-card,
  .dept-group {
    border-right: 0 !important;
    margin-right: 0 !important;
    padding-right: 0 !important;
    border-bottom: 1px solid var(--border);
    padding-bottom: var(--space-5);
  }
}

/* ==========================================================================
   DESIGN SYSTEM · regra única de fontes para numerais
   ==========================================================================
   --font-editorial (Fraunces serif)
     → todo número que se destaca visualmente: heros, percentuais, anos,
       sequências (01·02·03), indicadores de página, ordinais de etapa.
   --font-m (JetBrains Mono)
     → números inline em tabelas, cálculos, valores tabulares.
   --font-d (Inter Tight)
     → títulos, palavras, big statements. Nunca para numerais destacados.
   --font-b (Instrument Sans)
     → corpo de texto.
   ========================================================================== */

/* Hero numbers · âncoras visuais grandes */
.hero-anchor__num,
.hero-pair__num,
.stat-confront__num,
.threshold-confront__num,
.year-card__year,
.ask__bignum,
.cover-kpi__num {
  font-family: var(--font-editorial);
  font-weight: 200;
  font-variant-numeric: lining-nums;
  font-variation-settings: "opsz" 144;
  letter-spacing: -0.05em;
}

/* Sequência / ordinais — peso médio (300) */
.toc__num,
.nav-toggle__num,
.diag-item__num,
.reason-item__num,
.phase-step__week,
.wave-step__phase,
.stack-col__num,
.rd-step__num,
.calc-row--emph .calc-row__val,
.asset__num,
.horizon__num,
.mandate__num,
.hypothesis__num,
.senior-role__num,
.principle__num,
.stack__layer-num {
  font-family: var(--font-editorial);
  font-weight: 300;
  font-variant-numeric: lining-nums;
  font-variation-settings: "opsz" 144;
  letter-spacing: -0.02em;
}

/* Section number outline (background giants) · Fraunces light */
main.deck > .section:not(.section--cover):not(.section--close)::before {
  font-family: var(--font-editorial);
  font-weight: 200;
  letter-spacing: -0.04em;
}

/* Glifos serif decorativos · usam o mesmo registro tipográfico */
.lab-flow__arrow,
.years-progression__arrow,
.frentes__loop,
.toc__hint,
.toc__close {
  font-family: var(--font-editorial);
  font-weight: 200;
}

/* Numerais tabulares · valores em tabelas e células de cálculo */
.calc-row__val,
.auto-table td,
.stat__num,
.wave-step__econ,
.data-table .num {
  font-family: var(--font-m);
  font-variant-numeric: tabular-nums;
}
.calc-row--emph .calc-row__val { font-family: var(--font-editorial); }  /* exceção: linha de emphasis vira hero */

/* ==========================================================================
   LOGOS · brand assets
   Os SVGs em assets/ são aproximações text-based. Substitua pelos arquivos
   de marca oficiais quando disponíveis.
   ========================================================================== */

/* Nav top · wordmark da Galeria Holding
   CSS mask permite que o SVG herde a cor do tema (theme-aware). */
.nav__brand-logo {
  display: inline-block;
  height: 28px;
  aspect-ratio: 3840 / 2160;
  background-color: var(--t1);
  -webkit-mask: url(assets/galeria-holding.svg) center/contain no-repeat;
          mask: url(assets/galeria-holding.svg) center/contain no-repeat;
  transition: background-color 240ms var(--ease-out);
}
.nav__brand:hover .nav__brand-logo { background-color: var(--accent); }

/* Slide 17 (close) · assinatura final · logo Galeria Holding + AI & Automation */
.cover__signature {
  margin-top: var(--space-7);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-5);
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 720ms var(--ease-out), transform 720ms var(--ease-out);
}
.cover__signature.is-staggered { opacity: 1; transform: translateY(0); }

.cover__logo {
  display: inline-block;
  height: clamp(56px, 7vw, 96px);
  aspect-ratio: 3840 / 2160;
  background-color: var(--t1);
  -webkit-mask: url(assets/galeria-holding.svg) center/contain no-repeat;
          mask: url(assets/galeria-holding.svg) center/contain no-repeat;
}

.cover__signature-divider {
  width: 1px;
  height: 32px;
  background: var(--border-med);
}

.cover__signature-name {
  font-family: var(--font-editorial);
  font-weight: 200;
  font-style: italic;
  font-size: clamp(16px, 1.8vw, 22px);
  letter-spacing: -0.01em;
  color: var(--accent-soft);
  border-bottom: 1px dashed rgba(201, 169, 97, 0.35);
  padding-bottom: 2px;
}

@media (max-width: 720px) {
  .cover__signature {
    flex-direction: column;
    gap: var(--space-3);
  }
  .cover__signature-divider {
    width: 32px;
    height: 1px;
  }
}

/* ==========================================================================
   NOHEMI · letter-spacing 0
   Nohemi tem métricas próprias que dispensam tracking negativo.
   Reset agressivo em todos os elementos que usam --font-d ou --font-editorial.
   Mantém --font-m (mono labels) e --font-b (body) inalterados.
   ========================================================================== */

/* ---- HEADINGS / TÍTULOS / DISPLAY ---- */
.h2, .h3,
.cover__headline,
.cover__headline--close,
.cover__line,
.cover__line--final,
.big-statement,
.section__sub,
.section__header,
.callout p,
.callout__punch,
.bridge__quote p,
.dependency__bang,
.dependency__close,
.closing__final {
  letter-spacing: 0;
}

/* ---- HERO NUMBERS / ORDINAL / BIGNUMS · todos em --font-editorial ---- */
.hero-anchor__num,
.hero-pair__num,
.hero-pair__pct,
.hero-anchor__unit,
.stat-confront__num,
.stat-confront__pct,
.threshold-confront__num,
.threshold-confront__pct,
.year-card__year,
.ask__bignum,
.cover-kpi__num,
.cover-kpi__unit,
.toc__num,
.nav-toggle__num,
.diag-item__num,
.reason-item__num,
.phase-step__week,
.wave-step__phase,
.stack-col__num,
.rd-step__num,
.asset__num,
.horizon__num,
.mandate__num,
.hypothesis__num,
.senior-role__num,
.principle__num,
.stack__layer-num,
.calc-row--emph .calc-row__val {
  letter-spacing: 0;
}

/* ---- COMPONENTES COM TÍTULOS / NOMES DISPLAY ----
   (Labels em --font-m removidos desta lista — preservam seu tracking) */
.market-card__brand,
.diag-item__title,
.frente__title,
.reverse-discovery__claim,
.phase-step__title,
.wave-step__what,
.dept-list__name,
.tool__name,
.year-card p,
.owner-card__name,
.lab-flow__entity,
.ask__title,
.toc__label,
.section__footnote,
.local-context__big,
.local-context__pct,
.maturity__title,
.dependency__q,
.threshold__intro,
.accountability__intro,
.accountability__close,
.checkpoints__title,
.exit-cost__title,
.hypotheses__title,
.decisions__title,
.mandates__title,
.mandate__title,
.dual-axis__role,
.phase__title,
.phases__note,
.hil-note p,
.senior-role__title,
.pilots__tab-name,
.principle__title,
.stack__layer-name,
.cover__signature-name {
  letter-spacing: 0;
}

/* ---- GLIFOS DECORATIVOS SERIF ---- */
.lab-flow__arrow,
.years-progression__arrow,
.frentes__loop,
.toc__hint,
.toc__close {
  letter-spacing: 0;
}

/* ---- EXCEÇÕES MANTIDAS ----
   Os labels mono (--font-m) preservam letter-spacing positivo porque
   o tracking é parte do registro tipográfico tipo "etiqueta tagged":
   - .section__label, .market-card__tag, .horizon__period, .lgpd__cell h4
   - .deck-hud__* (legado dormente), .footer__label, etc.
   --font-m em uso continua com seu tracking original. */

/* ==========================================================================
   SLIDE 00 · CAPA BRUTALIST · all-type
   Sem header, sem bola flutuante, sem progress bar.
   Tipografia em escalas extremas. Hairlines fortes.
   ========================================================================== */
main.deck > .section--intro {
  height: 100vh;
  min-height: 100vh;
  max-height: 100vh;
  padding: var(--space-7) var(--space-7) var(--space-6);
  display: flex;
  overflow: hidden;
  position: relative;
}

.intro {
  flex: 1;
  display: grid;              /* grid resolve centralização vertical sem conflitos */
  grid-template-rows: auto 1fr auto;
  width: 100%;
  height: 100%;               /* parent vira display:block no deck mode; força full height */
  min-height: calc(100vh - var(--space-7) * 2);
  gap: var(--space-6);
}

/* ---- Top row: logo + ano ---- */
.intro__top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: var(--space-4);
  border-bottom: 1px solid var(--border);
}

.intro__brand-logo {
  display: inline-block;
  height: 32px;
  aspect-ratio: 3840 / 2160;
  background-color: var(--t1);
  -webkit-mask: url(assets/galeria-holding.svg) center/contain no-repeat;
          mask: url(assets/galeria-holding.svg) center/contain no-repeat;
}

.intro__year {
  font-family: var(--font-editorial);
  font-weight: 300;
  font-size: clamp(28px, 3vw, 44px);
  line-height: 1;
  color: var(--t2);
}

/* ---- Center: AI & Automation gigante (centralizado vertical no grid .intro) ---- */
.intro__name {
  font-family: var(--font-d);
  font-weight: 700;
  font-size: clamp(40px, 9vw, 144px);  /* IBM Plex Bold é mais largo que Nohemi; reduz p/ caber */
  line-height: 0.92;
  color: var(--t1);
  margin: 0;
  text-transform: uppercase;
  letter-spacing: -0.04em;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  align-self: center;        /* centraliza verticalmente na linha 1fr do grid */
}

.intro__name-line {
  display: block;
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 800ms var(--ease-out), transform 800ms var(--ease-out);
  white-space: nowrap;
}
.intro__name-line.is-staggered {
  opacity: 1;
  transform: translateY(0);
}

.intro__bracket,
.intro__amp,
.intro__name .intro__amp {     /* specificity 0,2,0 garante override sobre .intro__name */
  color: var(--accent);
  display: inline-block;
  transform: translateY(-0.04em);
}

/* ---- Bottom row: tagline + scroll + page ---- */
.intro__bottom {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: end;
  padding-top: var(--space-4);
  border-top: 1px solid var(--border);
  gap: var(--space-5);
}

.intro__tagline {
  font-family: var(--font-m);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
  line-height: 1;
}

.intro__page {
  justify-self: end;
  font-family: var(--font-editorial);
  font-weight: 300;
  font-size: 18px;
  color: var(--t3);
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

/* ---- Scroll indicator · vertical line + animated dot ---- */
.intro__scroll {
  justify-self: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}

.intro__scroll-line {
  width: 1px;
  height: 56px;
  background: linear-gradient(
    to bottom,
    transparent 0%,
    rgba(255, 255, 255, 0.12) 30%,
    rgba(255, 255, 255, 0.12) 70%,
    transparent 100%
  );
  position: relative;
  overflow: hidden;
}

.intro__scroll-line::after {
  content: '';
  position: absolute;
  top: -12px;
  left: -1px;
  width: 3px;
  height: 12px;
  background: var(--accent);
  border-radius: 99px;
  box-shadow: 0 0 8px var(--accent-glow);
  animation: scroll-dot 2.6s var(--ease-in-out) infinite;
}

@keyframes scroll-dot {
  0%   { top: -12px; opacity: 0; }
  20%  { opacity: 1; }
  80%  { opacity: 1; }
  100% { top: 56px;  opacity: 0; }
}

.intro__scroll-label {
  font-family: var(--font-m);
  font-size: 9px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--t4);
}

@media (prefers-reduced-motion: reduce) {
  .intro__scroll-line::after { animation: none; opacity: 0.6; top: 22px; }
  .intro__name-line { transition: none; opacity: 1; transform: none; }
}

/* ---- Chrome (nav + bola + progress) escondidos quando estamos na capa ---- */
.nav,
.nav-toggle,
.progress {
  transition:
    opacity 460ms var(--ease-out),
    transform 460ms var(--ease-out);
}

body.is-on-cover .nav {
  opacity: 0;
  pointer-events: none;
  transform: translateY(-100%);
}
body.is-on-cover .nav-toggle {
  opacity: 0;
  pointer-events: none;
  transform: scale(0.5);
}
body.is-on-cover .progress {
  opacity: 0;
}

/* Mobile do intro */
@media (max-width: 720px) {
  main.deck > .section--intro {
    padding: var(--space-6) var(--space-4);
  }
  .intro__brand-logo { height: 24px; }
  .intro__year { font-size: clamp(24px, 6vw, 32px); }
  .intro__name { font-size: clamp(56px, 22vw, 120px); }
  .intro__bottom {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto;
    gap: var(--space-4);
  }
  .intro__tagline { grid-column: 1 / -1; }
  .intro__scroll { grid-column: 1; justify-self: start; }
  .intro__page { grid-column: 2; }
}

/* ==========================================================================
   WATERMARK · logo Galeria Holding fixo + outline only
   Elemento global posicionado em fixed → imóvel enquanto slides deslizam.
   Usa galeria-holding-outline.svg (stroke-only) como CSS mask.
   Visível APENAS nos slides 01 e 02 (introdução institucional); nos demais
   slides ele fica oculto para não competir com o conteúdo executivo denso.
   ========================================================================== */
.watermark {
  position: fixed;
  inset: 0;
  background-color: rgba(255, 255, 255, 0.07);
  -webkit-mask:
    url('assets/galeria-holding-outline.svg') center / min(90%, 1080px) auto no-repeat;
  mask:
    url('assets/galeria-holding-outline.svg') center / min(90%, 1080px) auto no-repeat;
  pointer-events: none;
  z-index: 0;
  opacity: 0;
  transition: opacity 460ms var(--ease-out);
}

/* Mostrado apenas quando o body sinaliza estar num slide watermarked (01 ou 02) */
body.show-watermark .watermark {
  opacity: 1;
}

@media (max-width: 720px) {
  .watermark {
    -webkit-mask-size: 92% auto;
            mask-size: 92% auto;
  }
}


/* ==========================================================================
   BAUHAUS PREMIUM · OVERRIDE FINAL
   Geometria rígida (zero arredondamento), tipografia IBM Plex global,
   hovers refinados em ouro matte, separadores explícitos.
   Aplicado por último para vencer regras anteriores via cascata + !important.
   ========================================================================== */

/* 1 · Geometria · zero border-radius em qualquer elemento ou pseudo */
*, *::before, *::after {
  border-radius: 0 !important;
}

/* 2 · Letter-spacing limpo para IBM Plex (geometria suíça) */
h1, h2, h3, .big-statement, .h2 {
  letter-spacing: -0.02em;
}
.hero-anchor__num,
.intro__name,
.stat-confront__num,
.cover-kpi__num,
.diag-item__num,
.reason-item__num,
.phase-step__week {
  letter-spacing: -0.04em;
}

/* 3 · Hover global · ouro matte → ouro claro em 200ms */
a, button {
  transition: color 200ms ease-in-out,
              background-color 200ms ease-in-out,
              border-color 200ms ease-in-out,
              opacity 200ms ease-in-out;
}
a:hover, button:hover, .nav__list a:hover {
  color: var(--accent-hover);
}

/* 4 · Separador horizontal Bauhaus · linha sólida em ouro entre seções
   Uso opcional: <hr class="section-divider"> */
.section-divider {
  height: 2px;
  background-color: var(--accent);
  margin: var(--space-7) 0;
  border: none;
}

/* 5 · Quadrados indicadores (Bauhaus) · 8px × 8px em ouro */
.progress-square {
  width: 8px;
  height: 8px;
  background-color: var(--accent);
  display: inline-block;
  margin-right: 4px;
}

/* 6 · Divisor vertical Bauhaus · 1px em cinza quente para colunas */
.column-divider {
  width: 1px;
  background-color: var(--t4);
  align-self: stretch;
}

/* 7 · Card geométrico · borda sólida, sem fundo, sem arredondamento */
.bauhaus-card {
  border: 1px solid var(--t4);
  padding: var(--space-6);
  background: transparent;
}

/* ==========================================================================
   SLIDE 22 · PENDING-LIST · pendências numeradas com separadores em ouro
   Estética: grid 8px, separador horizontal accent (2px), tipografia geométrica.
   ========================================================================== */
.pending-list {
  margin: var(--space-7) 0 var(--space-6);
  padding: 0;
  list-style: none;
  border-top: 2px solid var(--accent);  /* abertura · linha ouro Bauhaus */
}
.pending-item {
  display: grid;
  grid-template-columns: 96px 1fr 160px;
  gap: var(--space-5);
  align-items: baseline;
  padding: var(--space-5) 0;
  border-bottom: 1px solid var(--accent);  /* separador entre itens */
}
.pending-item:last-child {
  border-bottom: 2px solid var(--accent);  /* fechamento · espelha a abertura */
}
.pending-item__num {
  font-family: var(--font-editorial);
  font-weight: 300;
  font-size: clamp(36px, 4vw, 56px);
  color: var(--accent);
  line-height: 1;
  letter-spacing: -0.04em;
}
.pending-item__body { min-width: 0; }
.pending-item__title {
  font-family: var(--font-d);
  font-size: clamp(1.05rem, 1.5vw, 1.3rem);
  font-weight: 700;
  letter-spacing: -0.015em;
  color: var(--t1);
  margin-bottom: var(--space-2);
}
.pending-item__desc {
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--t2);
}
.pending-item__timing {
  font-family: var(--font-m);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--accent);
  text-align: right;
  white-space: nowrap;
}

@media (max-width: 900px) {
  .pending-item {
    grid-template-columns: 56px 1fr;
    gap: var(--space-3);
  }
  .pending-item__timing {
    grid-column: 2;
    text-align: left;
    margin-top: var(--space-1);
  }
}

/* ==========================================================================
   CAPA · ELEMENTO VISUAL · ANEL 3D EM PERSPECTIVA (intro__viz)
   Torus tilted (perspectiva oblíqua) com rotação contínua, em tons
   branco quente + cream + ouro. Inspirado em renders 3D cinematográficos
   de objetos cromados/iridescentes vistos de ângulo lateral.

   Técnica: container com perspective + perspective-origin desloca o
   vanishing point pra cima; .ring-3d aplica rotateX(70deg) para o
   tilt visual; o conic-gradient interno do .ring-3d__base gira (rotateZ)
   por dentro, simulando a luz percorrendo o aro continuamente.

   Posicionamento: canto inferior direito do slide-capa.
   ========================================================================== */
.intro__viz {
  position: absolute;
  bottom: calc(var(--dock-h, 0px) + var(--space-7));
  right: var(--space-7);
  width: clamp(280px, 32vw, 480px);
  height: clamp(280px, 32vw, 480px);
  pointer-events: none;
  z-index: 0;
  opacity: 0;
  animation: viz-fade-in 1400ms var(--ease-out) 600ms forwards;
  perspective: 900px;
  perspective-origin: 50% 35%;
}

/* Exceção ao zero-radius Bauhaus: este é o ÚNICO elemento orgânico do
   design system. Override com !important para vencer a regra global
   *,*::before,*::after { border-radius: 0 !important; }. */
.ring-3d-stage,
.ring-3d,
.ring-3d__base,
.ring-3d__shine,
.ring-3d__rim,
.ring-3d__floor-glow {
  border-radius: 50% !important;
}

.ring-3d-stage {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
}

/* ---- Anel · aplica o tilt 3D + container das camadas que rotacionam ---- */
.ring-3d {
  position: absolute;
  inset: 0;
  transform-style: preserve-3d;
  transform: rotateX(72deg);
  animation: ring-tilt-wobble 9s ease-in-out infinite;
}

/* ---- Base do anel · conic-gradient em branco quente percorre o aro
   O rotateZ interno faz a luz "viajar" pelo aro independentemente do tilt. */
.ring-3d__base {
  position: absolute;
  inset: 0;
  background: conic-gradient(
    from 0deg,
    rgba(40, 30, 20, 0.95)   0deg,
    rgba(120, 95, 65, 0.7)   30deg,
    rgba(220, 195, 155, 0.95) 70deg,
    rgba(255, 248, 235, 1)    100deg,
    rgba(255, 240, 210, 1)    130deg,
    rgba(210, 175, 130, 0.85) 170deg,
    rgba(80, 60, 40, 0.6)     210deg,
    rgba(30, 22, 14, 0.9)     250deg,
    rgba(70, 55, 38, 0.7)     300deg,
    rgba(40, 30, 20, 0.95)    360deg
  );
  -webkit-mask: radial-gradient(circle at 50% 50%, transparent 50%, #000 53%, #000 95%, transparent 99%);
          mask: radial-gradient(circle at 50% 50%, transparent 50%, #000 53%, #000 95%, transparent 99%);
  filter: blur(2px) saturate(1.05);
  animation: ring-luma-spin 12s linear infinite;
}

/* ---- Camada de brilho · arco branco-quente especular ---- */
.ring-3d__shine {
  position: absolute;
  inset: 2%;
  background: conic-gradient(
    from 300deg,
    transparent              0deg,
    rgba(255, 255, 255, 0)   25deg,
    rgba(255, 248, 230, 0.6) 45deg,
    rgba(255, 250, 240, 0.95) 65deg,
    rgba(255, 248, 230, 0.7) 85deg,
    transparent              110deg,
    transparent              360deg
  );
  -webkit-mask: radial-gradient(circle at 50% 50%, transparent 52%, #000 55%, #000 92%, transparent 96%);
          mask: radial-gradient(circle at 50% 50%, transparent 52%, #000 55%, #000 92%, transparent 96%);
  filter: blur(6px);
  mix-blend-mode: screen;
  opacity: 0.9;
  animation: ring-luma-spin 10s linear infinite reverse;
}
.ring-3d__shine--alt {
  filter: blur(10px);
  mix-blend-mode: screen;
  opacity: 0.55;
  animation-duration: 17s;
  animation-direction: normal;
  transform: rotate(140deg);
}

/* ---- Rim · borda fina externa para definição do aro ---- */
.ring-3d__rim {
  position: absolute;
  inset: 0;
  border: 1px solid rgba(255, 245, 220, 0.18);
  pointer-events: none;
}

/* ---- Brilho difuso no chão · marca a "sombra de luz" do anel ----
   Posicionado abaixo, projeta um glow elíptico no plano imaginário. */
.ring-3d__floor-glow {
  position: absolute;
  left: 50%;
  bottom: -8%;
  transform: translateX(-50%);
  width: 90%;
  height: 30%;
  background: radial-gradient(
    ellipse at 50% 50%,
    rgba(255, 235, 200, 0.22) 0%,
    rgba(255, 200, 140, 0.10) 35%,
    transparent 70%
  );
  filter: blur(20px);
  pointer-events: none;
  animation: ring-floor-pulse 6s ease-in-out infinite;
}

/* ---- Animações ---- */
@keyframes viz-fade-in {
  from { opacity: 0; transform: translateY(20px) scale(0.94); }
  to   { opacity: 1; transform: translateY(0)    scale(1); }
}
@keyframes ring-luma-spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
/* Pequena oscilação no tilt — suaviza a rotação plana, sugere flutuação */
@keyframes ring-tilt-wobble {
  0%, 100% { transform: rotateX(72deg) rotateY(0deg); }
  50%      { transform: rotateX(68deg) rotateY(-3deg); }
}
@keyframes ring-floor-pulse {
  0%, 100% { opacity: 0.85; transform: translateX(-50%) scale(1); }
  50%      { opacity: 1;    transform: translateX(-50%) scale(1.08); }
}

/* ---- Acessibilidade · respeita prefers-reduced-motion ---- */
@media (prefers-reduced-motion: reduce) {
  .ring-3d,
  .ring-3d__base,
  .ring-3d__shine,
  .ring-3d__floor-glow {
    animation: none;
  }
}

/* ---- Mobile · oculta a viz (compete com tipografia em telas estreitas) ---- */
@media (max-width: 900px) {
  .intro__viz { display: none; }
}

/* ==========================================================================
   CAPA · esconder o número fantasma "00" (pseudo ::before do main.deck)
   A regra geral aplica ::before em todas as sections que não são cover/close.
   Como sec-00 é section--intro (sem essas classes), recebia o "00" gigante
   que colidia com o viz. Usamos !important porque a regra original tem
   specificity 0,3,2 e o cascade não bastava.
   ========================================================================== */
.section--intro::before,
main.deck > .section--intro::before,
#sec-00::before {
  content: none !important;
  display: none !important;
}

