/**
 * @file
 * Deep Signal — page shell for the self-contained landing bodies.
 *
 * TRANSITIONAL (Phase 1 of the inline-CSS extraction, see
 * /EXTRACTION-AUDIT-2026-07-31.md). These rules were duplicated verbatim inside
 * the `body` field of nodes 110, 112, 113, 115, 116, 117, 118, 119 and 120 —
 * nine identical copies shipped uncached on every page view. They are hoisted
 * here unchanged so the extraction is provably render-neutral.
 *
 * Attached per-node by celthrac_deep_signal_preprocess_page(); NOT global —
 * the `html, body` rule below paints the whole document dark and must only
 * reach the full-bleed landing pages.
 *
 * Deliberately NOT yet tokenised. The custom properties below are the legacy
 * page-design names (`--orange`, `--charcoal`, …), which are a separate
 * namespace from the theme's `--cx-*` tokens in tokens.css — there is no
 * collision. Mapping these onto real tokens is Phase 4; doing it here would
 * mix a mechanical move with a visual change and make regressions ambiguous.
 *
 * Nodes 109 (Home) and 155 (Solutions) are intentionally excluded: 109 scopes
 * its own palette to `.ds-home` with different values, and 155 shares none of
 * these rules.
 */

/* Legacy page-design custom properties. Union of the four identical-valued
   subsets found across the nine bodies; zero conflicting values. */
:root {
  --orange: #5b54f0;
  --orange-glow: rgba(91, 84, 240, .55);
  --charcoal: #121218;
  --charcoal-2: #101016;
  --white: #fff;
  --n300: #f4f4f6;
  --n500: #7c7c8a;
  --n700: #3a3660;
  --f-head: 'Inter Tight', 'Inter', system-ui, sans-serif;
  --f-body: 'Inter', system-ui, sans-serif;
  --f-mono: 'JetBrains Mono', ui-monospace, monospace;
  --ease: cubic-bezier(.2, .7, .2, 1);
  --s-xs: 12px;
  --s-sm: 24px;
  --s-md: 48px;
  --s-lg: 72px;
  --s-xl: 120px;
}

/* Dark canvas for the full-bleed landing pages. */
html,
body,
body.layout-no-sidebars {
  background: #0a0a0f !important;
  color: #fff !important;
}

/* Cross-page transition, native View Transitions API — no JS. */
@view-transition {
  navigation: auto;
}

::view-transition-old(root) {
  animation: pt-vt-out .34s cubic-bezier(.55, .05, .55, 1) both;
}

::view-transition-new(root) {
  animation: pt-vt-in .5s cubic-bezier(.2, .7, .2, 1) both;
}

@keyframes pt-vt-out {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

@keyframes pt-vt-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

/* Cinematic motion kit: scroll-progress bar and word-reveal wrappers. */
.dsm-prog {
  position: fixed;
  top: 0;
  left: 0;
  height: 3px;
  width: 100%;
  background: #5b54f0;
  transform: scaleX(0);
  transform-origin: left center;
  z-index: 99999;
  box-shadow: 0 0 12px rgba(91, 84, 240, .6);
  pointer-events: none;
}

.dsm-w {
  display: inline-block;
  overflow: hidden;
  vertical-align: top;
  padding-bottom: .14em;
  margin-bottom: -.14em;
}

.dsm-wi {
  display: inline-block;
  will-change: transform;
}

@keyframes dsm-breathe {
  0%,
  100% {
    opacity: .78;
  }

  50% {
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  ::view-transition-old(root),
  ::view-transition-new(root) {
    animation: none;
  }

  [class$='-glow'],
  [class*='-header-glow'] {
    animation: none;
  }
}
