/* NBC v6.441 D4 · semantic ambient-light contract
   Layout-role remains in data-ambient; semantic state lives in data-ambient-state. */
@layer nbc.ambient-semantic {
  :root {
    --nbc-ambient-critical: 214 112 104;
    --nbc-ambient-strained: 211 168 96;
    --nbc-ambient-stable: 125 190 141;
    --nbc-ambient-neutral: 123 143 133;
  }

  body.page.design-system-executive[data-ambient-state="critical"] {
    --ambient-primary-rgb: var(--nbc-ambient-critical);
    --ambient-secondary-rgb: var(--nbc-ambient-strained);
    --ambient-primary-opacity: .26;
    --ambient-secondary-opacity: .075;
  }
  body.page.design-system-executive[data-ambient-state="strained"] {
    --ambient-primary-rgb: var(--nbc-ambient-strained);
    --ambient-secondary-rgb: var(--nbc-ambient-critical);
    --ambient-primary-opacity: .22;
    --ambient-secondary-opacity: .050;
  }
  body.page.design-system-executive[data-ambient-state="stable"] {
    --ambient-primary-rgb: var(--nbc-ambient-stable);
    --ambient-secondary-rgb: var(--nbc-ambient-neutral);
    --ambient-primary-opacity: .19;
    --ambient-secondary-opacity: .035;
  }
  body.page.design-system-executive[data-ambient-state="neutral"] {
    --ambient-primary-rgb: var(--nbc-ambient-neutral);
    --ambient-secondary-rgb: var(--nbc-ambient-neutral);
    --ambient-primary-opacity: .085;
    --ambient-secondary-opacity: .018;
  }

  /* State is semantic; layout-role only positions the field. */
  body.page.design-system-executive[data-ambient-current="hero"] {
    --ambient-primary-x: 10vw;
    --ambient-primary-y: -8vh;
    --ambient-primary-scale: 1.06;
    --ambient-secondary-x: -13vw;
    --ambient-secondary-y: 19vh;
    --ambient-secondary-scale: .96;
  }
  body.page.design-system-executive[data-ambient-current="process"] {
    --ambient-primary-x: 20vw;
    --ambient-primary-y: 2vh;
    --ambient-primary-scale: 1.03;
    --ambient-secondary-x: -21vw;
    --ambient-secondary-y: 18vh;
    --ambient-secondary-scale: .90;
  }
  body.page.design-system-executive[data-ambient-current="instrument"] {
    --ambient-primary-x: 19vw;
    --ambient-primary-y: 8vh;
    --ambient-primary-scale: 1.07;
    --ambient-secondary-x: -12vw;
    --ambient-secondary-y: 22vh;
    --ambient-secondary-scale: .92;
  }
  body.page.design-system-executive[data-ambient-current="evidence"] {
    --ambient-primary-x: 24vw;
    --ambient-primary-y: 14vh;
    --ambient-primary-scale: 1.00;
    --ambient-secondary-x: -13vw;
    --ambient-secondary-y: -3vh;
    --ambient-secondary-scale: 1.00;
  }
  body.page.design-system-executive[data-ambient-current="editorial"] {
    --ambient-primary-x: -11vw;
    --ambient-primary-y: -11vh;
    --ambient-primary-scale: .94;
    --ambient-secondary-x: 22vw;
    --ambient-secondary-y: 24vh;
    --ambient-secondary-scale: .82;
  }
  body.page.design-system-executive[data-ambient-current="quiet"] {
    --ambient-primary-x: 23vw;
    --ambient-primary-y: -8vh;
    --ambient-primary-scale: .88;
    --ambient-secondary-x: -22vw;
    --ambient-secondary-y: 24vh;
    --ambient-secondary-scale: .80;
  }

  /* Editorial and legal surfaces should barely carry atmosphere. */
  body.page.design-system-executive.page-template-article[data-ambient-state="neutral"],
  body.page.design-system-executive.page-template-guide[data-ambient-state="neutral"],
  body.page.design-system-executive.page-template-legal-document[data-ambient-state="neutral"],
  body.page.design-system-executive.page-template-design-governance[data-ambient-state="neutral"] {
    --ambient-primary-opacity: .055;
    --ambient-secondary-opacity: .010;
  }
  body.page.design-system-executive.page-template-article[data-ambient-state="strained"],
  body.page.design-system-executive.page-template-guide[data-ambient-state="strained"] {
    --ambient-primary-opacity: .105;
    --ambient-secondary-opacity: .022;
  }
  body.page.design-system-executive.page-template-article[data-ambient-state="stable"],
  body.page.design-system-executive.page-template-guide[data-ambient-state="stable"] {
    --ambient-primary-opacity: .095;
    --ambient-secondary-opacity: .016;
  }

  /* Light surfaces should remain visually clean and legible. */
  body.page.design-system-executive:has([data-page-ambient-active="true"].light),
  body.page.design-system-executive:has([data-page-ambient-active="true"] .light) {
    --ambient-primary-opacity: .035;
    --ambient-secondary-opacity: .008;
  }

  .nbc-ambient-field::before,
  .nbc-ambient-field::after {
    transition:
      opacity 1.05s cubic-bezier(.22,.61,.36,1),
      transform 1.15s cubic-bezier(.22,.61,.36,1),
      background .95s ease;
  }

  /* Local instrument light remains more informative than page atmosphere,
     but should not look like a glow effect pasted onto a card. */
  [data-nbc-visual-stage][data-stage-local-ambient="true"] .nbc-stage-ambilight {
    opacity: .74;
  }
  [data-nbc-visual-stage][data-ambient-tone="critical"] .nbc-stage-ambilight { opacity: .82; }
  [data-nbc-visual-stage][data-ambient-tone="strained"] .nbc-stage-ambilight { opacity: .76; }
  [data-nbc-visual-stage][data-ambient-tone="stable"] .nbc-stage-ambilight { opacity: .64; }
  [data-nbc-visual-stage][data-ambient-tone="neutral"] .nbc-stage-ambilight { opacity: .42; }

  @media (max-width:760px) {
    body.page.design-system-executive[data-ambient-state="critical"] {
      --ambient-primary-opacity: .18;
      --ambient-secondary-opacity: .045;
    }
    body.page.design-system-executive[data-ambient-state="strained"] {
      --ambient-primary-opacity: .15;
      --ambient-secondary-opacity: .032;
    }
    body.page.design-system-executive[data-ambient-state="stable"] {
      --ambient-primary-opacity: .13;
      --ambient-secondary-opacity: .024;
    }
    body.page.design-system-executive[data-ambient-state="neutral"] {
      --ambient-primary-opacity: .055;
      --ambient-secondary-opacity: .010;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .nbc-ambient-field::before,
    .nbc-ambient-field::after { transition: none !important; }
  }

  @media (prefers-contrast: more) {
    body.page.design-system-executive {
      --ambient-primary-opacity: .035;
      --ambient-secondary-opacity: 0;
    }
    [data-nbc-visual-stage][data-stage-local-ambient="true"] .nbc-stage-ambilight { opacity: .28; }
  }
}

@layer nbc.ambient-semantic {
  /* D3 industry operating spine: state transition is atmospheric, not a traffic-light UI. */
  @media (min-width:1024px) {
    body.page-industry-hub .d3-operating-spine::before {
      height: 2px;
      background: linear-gradient(90deg,
        rgb(var(--nbc-ambient-critical) / .30) 0%,
        rgb(var(--nbc-ambient-strained) / .42) 48%,
        rgb(var(--nbc-ambient-strained) / .34) 72%,
        rgb(var(--nbc-ambient-stable) / .40) 100%);
      filter: blur(.15px);
    }
    body.page-industry-hub .d3-spine-step::before {
      background: rgb(var(--nbc-ambient-neutral) / .92);
      box-shadow: 0 0 0 4px rgb(var(--nbc-ambient-neutral) / .05);
    }
    body.page-industry-hub .d3-spine-step:nth-child(3)::before,
    body.page-industry-hub .d3-spine-step:nth-child(4)::before,
    body.page-industry-hub .d3-spine-step:nth-child(5)::before,
    body.page-industry-hub .d3-spine-step:nth-child(6)::before {
      background: rgb(var(--nbc-ambient-strained));
      box-shadow: 0 0 18px rgb(var(--nbc-ambient-strained) / .10);
    }
    body.page-industry-hub .d3-spine-step:nth-child(7)::before {
      background: rgb(var(--nbc-ambient-critical));
      box-shadow: 0 0 20px rgb(var(--nbc-ambient-critical) / .12);
    }
    body.page-industry-hub .d3-spine-step:nth-child(8)::before {
      background: rgb(var(--nbc-ambient-stable));
      box-shadow: 0 0 20px rgb(var(--nbc-ambient-stable) / .11);
    }
  }
}

/* D4 must outrank the unlayered D3 industry component styles. */
@media (min-width:1024px) {
  body.page-industry-hub .d3-operating-spine::before {
    height:2px;
    background:linear-gradient(90deg,
      rgb(var(--nbc-ambient-critical) / .30) 0%,
      rgb(var(--nbc-ambient-strained) / .42) 48%,
      rgb(var(--nbc-ambient-strained) / .34) 72%,
      rgb(var(--nbc-ambient-stable) / .40) 100%);
    filter:blur(.15px);
  }
  body.page-industry-hub .d3-spine-step::before {
    background:rgb(var(--nbc-ambient-neutral) / .92);
    box-shadow:0 0 0 4px rgb(var(--nbc-ambient-neutral) / .05);
  }
  body.page-industry-hub .d3-spine-step:nth-child(3)::before,
  body.page-industry-hub .d3-spine-step:nth-child(4)::before,
  body.page-industry-hub .d3-spine-step:nth-child(5)::before,
  body.page-industry-hub .d3-spine-step:nth-child(6)::before {
    background:rgb(var(--nbc-ambient-strained));
    box-shadow:0 0 18px rgb(var(--nbc-ambient-strained) / .10);
  }
  body.page-industry-hub .d3-spine-step:nth-child(7)::before {
    background:rgb(var(--nbc-ambient-critical));
    box-shadow:0 0 20px rgb(var(--nbc-ambient-critical) / .12);
  }
  body.page-industry-hub .d3-spine-step:nth-child(8)::before {
    background:rgb(var(--nbc-ambient-stable));
    box-shadow:0 0 20px rgb(var(--nbc-ambient-stable) / .11);
  }
}

@layer nbc.ambient-semantic {
  @media (max-width:760px) {
    body.page.design-system-executive.page-template-article[data-ambient-state="neutral"],
    body.page.design-system-executive.page-template-guide[data-ambient-state="neutral"],
    body.page.design-system-executive.page-template-legal-document[data-ambient-state="neutral"],
    body.page.design-system-executive.page-template-design-governance[data-ambient-state="neutral"] {
      --ambient-primary-opacity:.035;
      --ambient-secondary-opacity:.006;
    }
    body.page.design-system-executive.page-template-article[data-ambient-state="strained"],
    body.page.design-system-executive.page-template-guide[data-ambient-state="strained"] {
      --ambient-primary-opacity:.075;
      --ambient-secondary-opacity:.014;
    }
    body.page.design-system-executive.page-template-article[data-ambient-state="stable"],
    body.page.design-system-executive.page-template-guide[data-ambient-state="stable"] {
      --ambient-primary-opacity:.068;
      --ambient-secondary-opacity:.012;
    }
  }
}
