/* ════════════════════════════════════════════════════════════════
   BASE · resets de reveal, estructura de slide, fondo, marca
   ════════════════════════════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; }

.reveal { font-family: var(--body); color: var(--text); font-weight: 400; }
.reveal .slides { text-align: left; }
.reveal section { height: 100%; padding: 0 !important; }
.reveal h1, .reveal h2, .reveal h3, .reveal h4,
.reveal p, .reveal ul, .reveal ol, .reveal li {
  margin: 0; text-transform: none; text-shadow: none;
  letter-spacing: normal; line-height: 1.3; font-weight: 400;
}
.reveal .controls { color: var(--signal); }
.reveal .progress { color: var(--signal); height: 3px; }
.reveal .progress span { background: linear-gradient(90deg, var(--signal), var(--pulse)); }
.reveal .slide-number {
  background: transparent; color: var(--muted);
  font-family: var(--mono); font-size: .58rem; letter-spacing: .05em;
}

.reveal-viewport { background: var(--paper); }
section.present, section.future, section.past { background: transparent; }

/* ── ESTRUCTURA DE SLIDE ── */
.slide {
  position: relative;
  width: 100%; height: 100%;
  display: flex; flex-direction: column; justify-content: center;
  padding: 58px 76px 64px;
  background:
    linear-gradient(var(--grid) 1px, transparent 1px) 0 0 / 100% 36px,
    linear-gradient(90deg, var(--grid) 1px, transparent 1px) 0 0 / 36px 100%,
    var(--paper);
  overflow: hidden;
}
.slide.center { align-items: center; justify-content: center; text-align: center; }
.slide.tint-signal { background-color: #EEF4FE; }
.slide.tint-vital  { background-color: #ECFBF4; }
.slide.tint-alert  { background-color: #FEF1EC; }
.slide.tint-signal, .slide.tint-vital, .slide.tint-alert {
  background-image:
    linear-gradient(var(--grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid) 1px, transparent 1px);
  background-size: 100% 36px, 36px 100%;
}
.slide > * { position: relative; z-index: 2; }

/* baseline de pulso al pie */
.slide::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; z-index: 3;
  background: linear-gradient(90deg, var(--signal), var(--pulse) 55%, transparent);
  opacity: .9;
}
.slide.edge-vital::after  { background: linear-gradient(90deg, var(--vital), #6EE7B7 55%, transparent); }
.slide.edge-alert::after  { background: linear-gradient(90deg, var(--alert), #FBC0A6 55%, transparent); }

/* halos ambientales suaves (glow con radial-gradient — no usa filter:blur,
   que reveal no compone bien bajo su transform) */
.halo {
  position: absolute; border-radius: 50%;
  pointer-events: none; z-index: 0; opacity: .55;
}
.halo.s { background: radial-gradient(circle, rgba(37,99,235,.55), rgba(37,99,235,.12) 45%, transparent 70%); }
.halo.p { background: radial-gradient(circle, rgba(56,189,248,.5), rgba(56,189,248,.10) 45%, transparent 70%); }
.halo.v { background: radial-gradient(circle, rgba(16,185,129,.5), rgba(16,185,129,.10) 45%, transparent 70%); }
.halo.a { background: radial-gradient(circle, rgba(242,105,60,.5), rgba(242,105,60,.10) 45%, transparent 70%); }
.halo.r { background: radial-gradient(circle, rgba(204,169,212,.62), rgba(199,125,218,.14) 45%, transparent 70%); }

/* texto gigante de fondo (marca de agua del acto) */
.ghost {
  position: absolute; font-family: var(--display); font-weight: 800;
  color: rgba(11,18,32,.028); line-height: .8; white-space: nowrap;
  pointer-events: none; user-select: none; z-index: 0; letter-spacing: -.04em;
}

/* ── CORNER BRAND ── */
.corner {
  position: absolute; top: 30px; right: 76px; z-index: 5;
  display: flex; align-items: center; gap: .6rem;
}
.corner .wm { height: 22px; }
.corner .pg { font-family: var(--mono); font-size: .56rem; color: var(--muted); letter-spacing: .08em; }

/* ── WORDMARK ── */
.wm { display: block; height: 46px; width: auto; }
.wm .syn { fill: var(--ink); }
.wm .pp  { fill: var(--signal); }
.wm .pulse-l { fill: none; stroke: var(--pulse); stroke-width: 10; stroke-linecap: round; stroke-linejoin: round; }
.wm.on-ink .syn { fill: #EAF0FA; }
.wm.on-ink .pp  { fill: var(--pulse); }

/* ── PANEL MONITOR (tinta, para readouts wow) ── */
.monitor {
  position: relative;
  background:
    radial-gradient(120% 140% at 85% -20%, rgba(56,189,248,.18), transparent 55%),
    radial-gradient(120% 120% at -10% 120%, rgba(37,99,235,.20), transparent 50%),
    var(--ink);
  color: #EAF0FA; border-radius: 22px; box-shadow: var(--sh-ink); overflow: hidden;
}
.monitor.warm {
  background:
    radial-gradient(120% 140% at 85% -20%, rgba(242,105,60,.20), transparent 55%),
    radial-gradient(120% 120% at -10% 120%, rgba(37,99,235,.16), transparent 50%),
    var(--ink);
}
.monitor.green {
  background:
    radial-gradient(120% 140% at 85% -20%, rgba(16,185,129,.22), transparent 55%),
    radial-gradient(120% 120% at -10% 120%, rgba(37,99,235,.14), transparent 50%),
    var(--ink);
}
.monitor::before {
  content: ''; position: absolute; inset: 0; opacity: .5; pointer-events: none;
  background:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px) 0 0 / 100% 30px,
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px) 0 0 / 30px 100%;
}
.monitor > * { position: relative; z-index: 1; }
.monitor .eyebrow { color: var(--pulse); }
.monitor .readout, .monitor .t-title { color: #fff; }
.monitor .lead, .monitor .t-sub { color: #AEB9CC; }
.monitor .src { color: #6B768B; }

/* reduced motion base */
@media (prefers-reduced-motion: reduce) {
  .reveal .slides * { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}
