/* Scroll-stitched video atmosphere layers */
.atmosphere {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}
.atmosphere > * {
  position: absolute;
  inset: 0;
}
.atmo-clip {
  transition: opacity 200ms linear;
  will-change: opacity, transform;
}
.atmo-clip video {
  filter: contrast(1.05) saturate(0.7) brightness(0.7);
}
.atmo-tint {
  transition: background 200ms linear;
}
.atmo-vignette {
  pointer-events: none;
}
.atmo-torch {
  mix-blend-mode: screen;
  pointer-events: none;
}
.atmo-grain {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxNjAnIGhlaWdodD0nMTYwJz48ZmlsdGVyIGlkPSduJz48ZmVUdXJidWxlbmNlIHR5cGU9J2ZyYWN0YWxOb2lzZScgYmFzZUZyZXF1ZW5jeT0nMC45JyBudW1PY3RhdmVzPScyJyBzdGl0Y2hUaWxlcz0nc3RpdGNoJy8+PGZlQ29sb3JNYXRyaXggdmFsdWVzPScwIDAgMCAwIDEgICAwIDAgMCAwIDEgICAwIDAgMCAwIDEgICAwIDAgMCAwLjYgMCcvPjwvZmlsdGVyPjxyZWN0IHdpZHRoPScxMDAlJyBoZWlnaHQ9JzEwMCUnIGZpbHRlcj0ndXJsKCUyM24pJy8+PC9zdmc+");
  background-size: 160px 160px;
  mix-blend-mode: overlay;
  pointer-events: none;
}

/* Make sure page content sits above the atmosphere */
.page { position: relative; z-index: 1; }
.nav { z-index: 50; }

/* Section transitions — give each big section a subtle bottom fade so the
   transitions to the next "depth" feel cinematic */
.stat-section,
.how-section,
.trusted-section,
.compare-section,
.deploy-section,
.contact-section {
  position: relative;
}
.stat-section::after,
.how-section::after,
.trusted-section::after,
.compare-section::after,
.deploy-section::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: -1px;
  height: 120px;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  pointer-events: none;
  z-index: 0;
}

/* Body voice variants */
.voice-noir h2, .voice-noir h3 { letter-spacing: -0.025em; }
.voice-clinical { font-feature-settings: "tnum" 1, "ss01" 1; }
.voice-clinical .serif { font-family: var(--mono); letter-spacing: -0.01em; text-transform: uppercase; font-size: 0.85em; }

/* Serif swap classes */
.serif-cormorant .serif, .serif-cormorant h1, .serif-cormorant h2, .serif-cormorant h3 { font-family: 'Cormorant Garamond', 'Newsreader', Georgia, serif !important; font-weight: 400; }
.serif-playfair .serif, .serif-playfair h1, .serif-playfair h2, .serif-playfair h3 { font-family: 'Playfair Display', 'Newsreader', Georgia, serif !important; }
.serif-plex .serif, .serif-plex h1, .serif-plex h2, .serif-plex h3 { font-family: 'IBM Plex Serif', 'Newsreader', Georgia, serif !important; }

/* Diagram density */
.density-minimal .frame-vis svg .extra-node { display: none; }
.density-dense .frame-vis svg { transform: scale(1.04); }

/* Comparison table tones */
.cmp-tone-redteam .cmp-table {
  border: 1px solid rgba(184, 65, 42, 0.4);
  background: rgba(184, 65, 42, 0.03);
}
.cmp-tone-redteam .cmp-table th { color: #B8412A; }
.cmp-tone-wanted .cmp-table {
  background: #1a1410;
  border-top: 4px double #C8A45C;
  border-bottom: 4px double #C8A45C;
}
.cmp-tone-wanted .cmp-table th { font-family: 'Newsreader', serif; font-style: italic; text-transform: lowercase; letter-spacing: -0.01em; }

/* Form layout split */
.form-split .contact-grid { grid-template-columns: 1fr 1fr; gap: 56px; }
.form-split .contact-quote {
  font-family: var(--serif);
  font-style: italic;
  font-size: 28px;
  line-height: 1.3;
  color: var(--fg-dim);
  border-left: 2px solid var(--accent);
  padding-left: 28px;
}

/* Cursor torch reduces page brightness when active */
.torch-on .page { background: #050608; }
.torch-on .page main, .torch-on .container { mix-blend-mode: normal; }
