/* Sigma deck — pele v2 "A cidade que responde".
 * Carrega DEPOIS de deck.css: retematiza via tokens + variantes, sem tocar a
 * mecânica de navegação. Fusão: IDV Sigma (hue 292) × profundidade codemine
 * (insets duplos, hairline, glow 3-stops) × Farol dual-mode (dark-operational
 * ↔ light-review) × camada institucional Requiem.
 * Doutrina: raster nunca cru (backdrop + véu + malha procedural por cima);
 * telas de produto em Registro Produto (flat); contraste AA inegociável.
 */

:root {
  /* profundidade codemine, adaptada ao OKLCH Sigma */
  --edge-machined: inset 0 1px 1px oklch(1 0 0 / 0.07), inset 0 -2px 4px oklch(0 0 0 / 0.38);
  --edge-hairline: inset 0 0.5px 0.5px oklch(1 0 0 / 0.26);
  --grad-cta: linear-gradient(165deg, oklch(0.68 0.19 305) 0%, oklch(0.5 0.24 292) 100%);
  --grad-brand-line: linear-gradient(90deg, oklch(0.55 0.22 292) 0%, oklch(0.68 0.19 305) 100%);
  --glow-node: radial-gradient(closest-side, oklch(0.97 0.02 300) 0%, oklch(0.7 0.2 305) 40%, oklch(0.5 0.24 292 / 0) 100%);
  --paper: oklch(0.975 0.006 292);
  --paper-raised: oklch(0.995 0.003 292);
  --paper-line: oklch(0.885 0.012 292);
}

/* ---------- capa e CTA: backdrop gerado + véu + malha por cima ---------- */
.slide-backdrop {
  position: absolute; inset: 0; z-index: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  filter: saturate(1.05);
}
.slide--cover .slide-mesh, .slide--cta .slide-mesh { opacity: 0.34; z-index: 1; }
.slide--cover .slide-scrim, .slide--cta .slide-scrim { z-index: 1; }
.slide-scrim--cover {
  background:
    radial-gradient(115% 95% at 24% 55%, oklch(0.09 0.01 260 / 0.92) 0%, oklch(0.09 0.01 260 / 0.5) 46%, oklch(0.09 0.01 260 / 0.08) 78%),
    linear-gradient(to top, oklch(0.09 0.01 260 / 0.85) 0%, transparent 32%);
}
.slide-scrim--cta {
  background:
    radial-gradient(110% 110% at 50% 92%, oklch(0.09 0.01 260 / 0.94) 0%, oklch(0.09 0.01 260 / 0.55) 52%, oklch(0.09 0.01 260 / 0.12) 82%);
}
.cover-title .accent {
  background: var(--grad-brand-line);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
}
.cover-inner .instrument {
  border: 1px solid oklch(1 0 0 / 0.14);
  background: oklch(0.12 0.02 270 / 0.55);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: var(--edge-hairline);
}

/* ---------- placa como herói (slides de dor) ---------- */
.placa-object {
  position: relative;
  display: grid; place-items: center;
  margin-bottom: 1.3rem;
}
.placa-object img {
  width: clamp(96px, 12vw, 150px); height: auto;
  filter: drop-shadow(0 18px 34px oklch(0 0 0 / 0.5));
  transform: perspective(700px) rotateY(-9deg) rotateX(3deg);
}
.placa-object::after {
  /* poste implícito: linha vertical que ancora a placa ao chão do slide */
  content: ''; position: absolute; top: 96%; width: 3px; height: 8vh;
  background: linear-gradient(to bottom, oklch(0.45 0.01 250), transparent);
}
.placa-object--dim img { opacity: 0.62; filter: drop-shadow(0 18px 34px oklch(0 0 0 / 0.5)) saturate(0.55); }
.slide--pain .stat { position: relative; }

/* profundidade codemine nos painéis de dado */
.stat {
  border-radius: 18px;
  background: oklch(0.16 0.014 260);
  box-shadow: var(--edge-machined), 0 30px 60px -30px oklch(0 0 0 / 0.7);
  padding: 1.6rem 1.7rem;
}
.stat--pain { background: oklch(0.15 0.02 275); }

/* ---------- dobradiça (slide 7): a transição dark → light ---------- */
.slide--hinge {
  background:
    radial-gradient(90% 70% at 50% 0%, oklch(0.18 0.06 292 / 0.9) 0%, transparent 70%),
    linear-gradient(180deg, var(--bg-deep) 0%, oklch(0.24 0.05 292) 46%, oklch(0.62 0.07 292) 86%, var(--paper) 118%);
}
.slide--hinge .plate--hero {
  background: oklch(0.13 0.03 280 / 0.72);
  border: 1px solid oklch(0.72 0.14 292 / 0.5);
  box-shadow: var(--edge-hairline), 0 0 44px oklch(0.55 0.22 292 / 0.35);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.slide--hinge .plate-pin {
  background: var(--glow-node);
  width: 14px; height: 14px; border-radius: 50%;
}

/* ---------- registro light-review (slides 8–13): papel timbrado digital ---------- */
.slide[data-theme="light"] {
  background:
    radial-gradient(120% 90% at 82% -10%, oklch(0.93 0.025 292 / 0.7) 0%, transparent 55%),
    var(--paper);
  color-scheme: light;
  /* flip de tokens no escopo — nomes nunca mudam (padrão Farol) */
  --bg: var(--paper);
  --bg-deep: var(--paper);
  --fg-strong: oklch(0.18 0.015 275);
  --fg: oklch(0.28 0.014 275);
  --fg-muted: oklch(0.44 0.015 275);
  --fg-subtle: oklch(0.52 0.015 275);
  --accent-text: oklch(0.46 0.21 292);
  --accent-muted: oklch(0.5 0.22 292 / 0.14);
  --border: oklch(0.885 0.012 292);
  --border-strong: oklch(0.8 0.018 292);
  --glass-bg: oklch(1 0 0 / 0.72);
  --glass-border: oklch(0 0 0 / 0.09);
}
.slide[data-theme="light"] .stat {
  background: var(--paper-raised);
  box-shadow:
    inset 0 0.5px 0.5px oklch(1 0 0 / 0.9),
    0 1px 2px oklch(0.2 0.05 292 / 0.08),
    0 18px 44px -22px oklch(0.3 0.1 292 / 0.28);
  border: 1px solid var(--paper-line);
}
.slide[data-theme="light"] .stat::before { opacity: 0.9; }
.slide[data-theme="light"] .bullets li { color: var(--fg); }
.slide[data-theme="light"] .ph { color: var(--accent-text); border-bottom-color: oklch(0.5 0.22 292 / 0.4); }

/* mocks do antes/depois em Registro Produto no light (flat, gov-sério) */
.slide[data-theme="light"] .mock {
  background: var(--paper-raised);
  border: 1px solid var(--paper-line);
  box-shadow: 0 1px 2px oklch(0.2 0.05 292 / 0.06);
}
.slide[data-theme="light"] .mock--map .mapfield { background: oklch(0.13 0.015 260); border-radius: 10px; }
.slide[data-theme="light"] .paper { background: oklch(0.965 0.008 80); }
.slide[data-theme="light"] .mock-tag { color: var(--fg-subtle); }

/* ---------- longo prazo (14): retorno ao cosmos — camadas da cidade ---------- */
#slide-14 {
  background:
    radial-gradient(85% 70% at 78% 18%, oklch(0.2 0.07 292 / 0.55) 0%, transparent 60%),
    linear-gradient(200deg, oklch(0.13 0.03 285) 0%, var(--bg-deep) 70%);
}
#slide-14 .slide-inner::before {
  /* linhas de camadas futuras: sinapse sutil de fundo */
  content: ''; position: absolute; inset: -8% -12%; z-index: -1;
  background:
    linear-gradient(115deg, transparent 46%, oklch(0.55 0.22 292 / 0.16) 47%, transparent 48.5%),
    linear-gradient(100deg, transparent 62%, oklch(0.68 0.19 305 / 0.12) 63%, transparent 64.5%),
    linear-gradient(128deg, transparent 76%, oklch(0.72 0.14 292 / 0.1) 77%, transparent 78.5%);
}

/* ---------- requiem (15): ink profundo com hairline ---------- */
.slide--requiem .stat--requiem {
  background: oklch(0.2 0.09 288 / 0.55);
  box-shadow: var(--edge-hairline), 0 30px 70px -34px oklch(0 0 0 / 0.8);
  border: 1px solid oklch(0.72 0.15 296 / 0.3);
}

/* ---------- CTA (16): botão em gradiente de marca ---------- */
.slide--cta .btn-primary {
  background: var(--grad-cta);
  box-shadow: var(--edge-hairline), 0 14px 44px -14px oklch(0.55 0.22 292 / 0.6);
}
.slide--cta .btn-primary:hover { box-shadow: var(--edge-hairline), 0 18px 54px -14px oklch(0.55 0.22 292 / 0.8); }

/* ---------- números com respiração viva (dark somente) ---------- */
@media (prefers-reduced-motion: no-preference) {
  .slide--cover.is-active .cover-title,
  .slide--cover.is-active .cover-body { text-shadow: 0 2px 24px oklch(0.09 0.01 260 / 0.8); }
  .slide.is-active .stat-num.xl { animation: v2-num-in 0.9s var(--ease-out) both; }
  @keyframes v2-num-in {
    from { opacity: 0; transform: translateY(10px) scale(0.985); filter: blur(3px); }
    to { opacity: 1; transform: none; filter: none; }
  }
}

/* ---------- print: light slides imprimem claros, capa preserva fundo ---------- */
@media print {
  .slide-backdrop { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .slide[data-theme="light"] { background: #fff !important; }
}
