:root {
  --nn-void-black: #0a0a0f;
  --nn-steel-gray: #1a1a2e;
  --nn-quantum-white: #f0f2f5;
  --nn-dust-gray: #8a93a3;
  --nn-synapse-cyan: #00e5ff;
  --nn-neural-blue: #2d5bff;
  --nn-plasma-violet: #8b5cf6;
  --nn-nebula-pink: #ff3d8b;
  --nn-line: rgba(240, 242, 245, 0.12);
  --nn-line-strong: rgba(0, 229, 255, 0.42);
  --nn-panel: linear-gradient(180deg, rgba(26, 26, 46, 0.82), rgba(26, 26, 46, 0.38));
  --nn-display: "Space Grotesk", system-ui, sans-serif;
  --nn-body: "Inter", system-ui, sans-serif;
  --nn-mono: "JetBrains Mono", ui-monospace, monospace;
}

html,
body {
  margin: 0;
  min-height: 100%;
  background: var(--nn-void-black);
}

body {
  background:
    linear-gradient(90deg, rgba(240, 242, 245, 0.035) 1px, transparent 1px),
    linear-gradient(rgba(240, 242, 245, 0.03) 1px, transparent 1px),
    linear-gradient(135deg, #0a0a0f 0%, #101221 50%, #0a0a0f 100%);
  background-size: 44px 44px, 44px 44px, auto;
}

.reveal-viewport {
  background:
    radial-gradient(circle at 18% 16%, rgba(0, 229, 255, 0.1), transparent 28%),
    linear-gradient(135deg, rgba(45, 91, 255, 0.13), transparent 44%),
    linear-gradient(180deg, rgba(10, 10, 15, 0.2), rgba(10, 10, 15, 0.74));
}

.reveal {
  color: var(--nn-quantum-white);
  font-family: var(--nn-body);
  font-size: 29px;
}

.reveal .slides {
  text-align: left;
}

.reveal .slides section {
  box-sizing: border-box;
  height: 100%;
  padding: 42px 54px;
  overflow: hidden;
}

.reveal .slides section.present {
  display: flex !important;
  flex-direction: column;
  justify-content: center;
  gap: 22px;
}

.reveal .slides section::before {
  content: "";
  position: absolute;
  inset: 24px;
  border: 1px solid rgba(240, 242, 245, 0.07);
  pointer-events: none;
}

.reveal .slides section::after {
  content: "";
  position: absolute;
  left: 54px;
  right: 54px;
  bottom: 32px;
  height: 1px;
  background: linear-gradient(90deg, var(--nn-synapse-cyan), transparent 58%);
  opacity: 0.46;
  pointer-events: none;
}

.title-slide {
  justify-content: space-between !important;
}

.brand-lockup img {
  display: block;
  width: 202px;
  height: auto;
}

.title-content {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(310px, 0.75fr);
  gap: 42px;
  align-items: end;
}

.deck-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  color: var(--nn-dust-gray);
  font-family: var(--nn-mono);
  font-size: 0.4em;
  text-transform: uppercase;
}

.deck-meta span,
.tag {
  display: inline-flex;
  min-height: 23px;
  align-items: center;
  border: 1px solid rgba(240, 242, 245, 0.11);
  padding: 2px 8px;
  background: rgba(10, 10, 15, 0.42);
}

.eyebrow,
.source,
.tag,
.mini-label {
  margin: 0;
  color: var(--nn-synapse-cyan);
  font-family: var(--nn-mono);
  font-size: 0.4em;
  font-weight: 500;
  letter-spacing: 0.14em;
  line-height: 1.45;
  text-transform: uppercase;
}

.source {
  position: absolute;
  left: 54px;
  right: 54px;
  bottom: 42px;
  color: var(--nn-dust-gray);
  font-size: 0.34em;
  letter-spacing: 0;
  text-transform: none;
}

.reveal h1,
.reveal h2,
.reveal h3 {
  margin: 0;
  color: var(--nn-quantum-white);
  font-family: var(--nn-display);
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
}

.reveal h1 {
  max-width: 12ch;
  font-size: 2.08em;
  line-height: 0.96;
}

.reveal h2 {
  max-width: 20ch;
  font-size: 1.34em;
  line-height: 1.04;
}

.reveal h3 {
  font-size: 0.65em;
  line-height: 1.18;
}

.reveal p {
  margin: 0;
  color: #c5cad5;
  font-size: 0.58em;
  line-height: 1.48;
}

.lead {
  max-width: 35ch;
  color: #d9deea;
  font-size: 0.72em;
  line-height: 1.38;
}

.muted {
  color: var(--nn-dust-gray);
}

.mission-panel,
.card,
.metric,
.process-step {
  border: 1px solid var(--nn-line);
  border-radius: 4px;
  background: var(--nn-panel);
  box-shadow: 0 0 34px rgba(45, 91, 255, 0.12);
}

.mission-panel {
  padding: 24px;
}

.mission-panel .status-line {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 12px;
  align-items: center;
  margin-bottom: 18px;
  color: var(--nn-dust-gray);
  font-family: var(--nn-mono);
  font-size: 0.4em;
  text-transform: uppercase;
}

.mission-panel .status-line::before,
.mission-panel .status-line::after {
  content: "";
  height: 1px;
  background: rgba(0, 229, 255, 0.38);
}

.mission-panel .orbital-mark {
  display: block;
  width: min(64%, 210px);
  margin: 8px auto 22px;
  filter: drop-shadow(0 0 18px rgba(0, 229, 255, 0.26));
}

.reveal ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.bullet-list li,
.mission-panel li {
  position: relative;
  padding-left: 22px;
  color: #d9deea;
  font-size: 0.5em;
  line-height: 1.42;
}

.bullet-list li + li,
.mission-panel li + li {
  margin-top: 9px;
}

.bullet-list li::before,
.mission-panel li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.58em;
  width: 8px;
  height: 8px;
  border: 1px solid rgba(0, 229, 255, 0.65);
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(0, 229, 255, 0.28);
}

.slide-header {
  display: grid;
  grid-template-columns: 1fr minmax(280px, 0.62fr);
  gap: 42px;
  align-items: end;
}

.grid-2,
.grid-3,
.grid-4 {
  display: grid;
  gap: 16px;
}

.grid-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grid-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.grid-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.card,
.metric,
.process-step {
  padding: 20px;
}

.card.is-accent,
.metric.is-accent,
.process-step.is-accent {
  border-color: var(--nn-line-strong);
  background:
    linear-gradient(180deg, rgba(0, 229, 255, 0.13), rgba(45, 91, 255, 0.07)),
    var(--nn-panel);
}

.card h3,
.metric h3,
.process-step h3 {
  margin-bottom: 10px;
}

.card p,
.metric p,
.process-step p {
  font-size: 0.49em;
}

.metric .value {
  display: block;
  color: var(--nn-synapse-cyan);
  font-family: var(--nn-display);
  font-size: 1.28em;
  font-weight: 700;
  line-height: 1;
}

.metric .unit {
  display: block;
  margin: 6px 0 12px;
  color: var(--nn-quantum-white);
  font-family: var(--nn-mono);
  font-size: 0.38em;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.process {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
}

.process-step {
  min-height: 160px;
}

.process-step .num {
  display: inline-flex;
  width: 34px;
  height: 34px;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
  border: 1px solid rgba(0, 229, 255, 0.5);
  color: var(--nn-synapse-cyan);
  font-family: var(--nn-mono);
  font-size: 0.42em;
}

.stage-band {
  display: grid;
  grid-template-columns: 0.8fr 1.15fr;
  gap: 24px;
  align-items: stretch;
}

.stage-label {
  border: 1px solid var(--nn-line-strong);
  border-radius: 4px;
  padding: 24px;
  background: rgba(0, 229, 255, 0.08);
}

.stage-label strong {
  display: block;
  color: var(--nn-synapse-cyan);
  font-family: var(--nn-display);
  font-size: 1.18em;
  line-height: 1;
}

.stage-label span {
  display: block;
  margin-top: 12px;
  color: #d9deea;
  font-size: 0.56em;
  line-height: 1.38;
}

.matrix {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.45em;
}

.matrix th,
.matrix td {
  border-bottom: 1px solid rgba(240, 242, 245, 0.1);
  padding: 12px 14px;
  color: #d9deea;
  text-align: left;
  vertical-align: top;
}

.matrix th {
  color: var(--nn-synapse-cyan);
  font-family: var(--nn-mono);
  font-size: 0.86em;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.section-slide {
  justify-content: center !important;
}

.section-slide h2 {
  max-width: 16ch;
  font-size: 1.75em;
}

.section-number {
  color: var(--nn-synapse-cyan) !important;
  font-family: var(--nn-mono);
  font-size: 0.46em !important;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.tag-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}

.reveal .controls {
  color: var(--nn-synapse-cyan);
}

.reveal .progress {
  color: var(--nn-synapse-cyan);
}

@media (max-width: 900px) {
  .reveal .slides section {
    padding: 28px;
  }

  .title-content,
  .slide-header,
  .stage-band,
  .grid-2,
  .grid-3,
  .grid-4,
  .process {
    grid-template-columns: 1fr;
  }

  .source {
    display: none;
  }
}
