/* DS Labs premium visual systems, review generation 02.
   SalesPulse intentionally does not load this file: its approved baseline stays unchanged. */

body:not(.theme-pulse) {
  --v2-ease: cubic-bezier(.22, 1, .36, 1);
  --v2-soft: cubic-bezier(.16, 1, .3, 1);
  font-family: "Sofia Sans", "Segoe UI Variable Text", "Segoe UI", sans-serif;
  font-size: 16px;
  text-rendering: optimizeLegibility;
}

:where(body:not(.theme-pulse)) .page-shell::before,
:where(body:not(.theme-pulse)) .product-shell::after {
  opacity: .18;
}

/* Keep the long-page scene texture cheap while it is outside the viewport. */
body:not(.theme-pulse) :is(.product-section, .section-pad):not(.product-cta, .contact)::before {
  will-change: auto;
}

body:not(.theme-pulse) :is(.product-section, .section-pad).is-scene-active:not(.product-cta, .contact)::before {
  will-change: transform;
}

:where(body:not(.theme-pulse)) .site-header {
  height: 88px;
  border-bottom-color: rgba(255, 255, 255, .1);
}

:where(body:not(.theme-pulse)) .brand {
  gap: 14px;
}

:where(body:not(.theme-pulse)) .brand strong {
  font-size: 20px;
  font-weight: 650;
  letter-spacing: -.045em;
}

:where(body:not(.theme-pulse)) .brand small {
  margin-top: 5px;
  font-size: 9px;
  letter-spacing: .16em;
}

:where(body:not(.theme-pulse)) .desktop-nav,
:where(body:not(.theme-pulse)) .header-cta,
:where(body:not(.theme-pulse)) .back-lab {
  font-size: 13px;
}

:where(body:not(.theme-pulse)) .product-badge,
:where(body:not(.theme-pulse)) .eyebrow {
  font-size: 10px;
  font-weight: 650;
  letter-spacing: .12em;
}

:where(body:not(.theme-pulse)) :is(.product-hero-copy > p, .studio-copy > p) {
  color: rgba(224, 231, 241, .72);
  font-size: clamp(15px, 1.18vw, 18px);
  line-height: 1.72;
}

:where(body:not(.theme-pulse)) :is(.product-meta span, .hero-proof span) {
  font-size: 11px;
  line-height: 1.4;
}

:where(body:not(.theme-pulse)) :is(.primary-action, .quiet-action) {
  font-size: 13px;
}

:where(body:not(.theme-pulse)) .primary-action {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding-inline: 22px;
  transition: transform 180ms var(--v2-ease), background-color 180ms ease-out, border-color 180ms ease-out, color 180ms ease-out;
}

:where(body:not(.theme-pulse)) .header-cta b { color: inherit; }

:where(body:not(.theme-pulse)) .primary-action:active {
  transform: scale(.975);
}

/* Ambient pseudo-layers remain static: observed foreground signals carry the motion. */
.theme-labs .studio-hero::before,
.theme-labs .studio-hero::after,
.theme-labs .ecosystem-visual::before,
.theme-target .target-hero .product-visual::before,
.theme-doc .document-stage::before,
.theme-doc .document-stage::after,
.theme-spark .spark-product-stage::before {
  animation: none;
}

:where(body:not(.theme-pulse)) .reveal.reveal-ready {
  transform: translateY(30px);
  transition: opacity 620ms var(--v2-ease), transform 620ms var(--v2-ease);
}

:where(body:not(.theme-pulse)) .section-kicker {
  font-size: 12px;
  letter-spacing: .05em;
}

:where(body:not(.theme-pulse)) .section-heading h2,
:where(body:not(.theme-pulse)) .contact-copy h2,
:where(body:not(.theme-pulse)) .product-cta h2 {
  font-weight: 500;
  letter-spacing: -.055em;
}

:where(body:not(.theme-pulse)) .site-footer {
  font-size: 13px;
}

:where(body:not(.theme-pulse)) .footer-brand p,
:where(body:not(.theme-pulse)) .footer-meta {
  font-size: 12px;
}

:where(body:not(.theme-pulse)) .footer-links strong {
  font-size: 12px;
}

:where(body:not(.theme-pulse)) .footer-links a {
  font-size: 14px;
}

.model-disclosure {
  position: absolute;
  z-index: 12;
  top: 18px;
  right: 18px;
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 12px;
  border: 1px solid currentColor;
  border-radius: 999px;
  color: inherit;
  background: rgba(6, 10, 16, .76);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .09em;
  backdrop-filter: blur(14px);
}

@media (hover: hover) and (pointer: fine) {
  :where(body:not(.theme-pulse)) .primary-action:hover {
    transform: translateY(-2px);
  }

  .theme-labs .rail-item:hover {
    transform: translateY(-5px);
    background: color-mix(in srgb, var(--rail-accent) 4%, transparent);
  }

  .theme-labs .portfolio-card:hover {
    border-color: color-mix(in srgb, var(--accent) 42%, transparent);
  }

  .theme-target .approval-actions button:hover {
    border-color: var(--target-amber);
  }

  .theme-doc .doc-sidebar button:hover {
    border-color: rgba(255, 239, 214, .34);
  }

  .theme-spark .spark-loop article:hover,
  .theme-spark .spark-system-grid article:hover {
    transform: translateY(-5px) rotate(.25deg);
  }

  .theme-jobs .jobs-route-steps article:hover,
  .theme-jobs .jobs-status-grid article:hover {
    transform: none;
    border-color: rgba(118, 167, 255, .34);
  }
}

@media (max-width: 1180px) {
  body.theme-labs .studio-hero,
  body.theme-target .target-hero,
  body.theme-doc .doc-hero {
    grid-template-columns: 1fr;
  }

  body.theme-labs .ecosystem-visual {
    min-height: 680px;
    margin-top: -30px;
  }

  body.theme-target .target-hero .product-visual {
    min-height: 690px;
  }

  body.theme-doc .doc-hero .product-hero-copy { order: 1; }
  body.theme-doc .doc-hero .product-visual { order: 2; }
  body.theme-doc .doc-forge { min-height: 720px; }

  body.theme-spark .spark-hero,
  body.theme-jobs .jobs-hero {
    min-height: auto;
    padding-bottom: 100px;
  }
}

@media (max-width: 820px) {
  :where(body:not(.theme-pulse)) .site-header,
  body.theme-labs .site-header,
  body.theme-labs .studio-hero,
  body.theme-labs .product-rail,
  body.theme-labs .section-pad,
  body.theme-target .product-section,
  body.theme-doc .product-section,
  body.theme-spark .product-section,
  body.theme-jobs .product-section {
    width: calc(100% - 32px);
  }

  :where(body:not(.theme-pulse)) .site-header { height: 76px; }

  body.theme-labs .studio-copy h1,
  body.theme-target .target-hero h1,
  body.theme-doc .doc-hero h1,
  body.theme-spark .spark-hero h1 {
    font-size: clamp(42px, 11.8vw, 64px);
  }

  body.theme-labs .studio-hero,
  body.theme-target .target-hero,
  body.theme-doc .doc-hero {
    min-height: auto;
  }

  body.theme-labs .studio-copy { padding: 70px 0 20px; }
  body.theme-labs .ecosystem-visual { margin: 0 -72px -40px; transform: scale(.76); }
  body.theme-labs .product-rail { grid-template-columns: 1fr; }

  body.theme-labs .portfolio-card,
  body.theme-labs .portfolio-card:nth-of-type(even) {
    grid-template-columns: 1fr;
    padding: 30px 24px;
    border-radius: 25px 25px 25px 8px;
  }

  body.theme-labs .portfolio-card:nth-of-type(even) .portfolio-copy,
  body.theme-labs .portfolio-card:nth-of-type(even) .portfolio-signal {
    order: initial;
  }

  body.theme-target .target-hero .product-visual { min-height: 550px; margin-inline: 0; transform: none; }
  body.theme-target .target-hero .dashboard-frame { width: 100%; min-height: 0; padding: 16px; transform: none; }
  body.theme-target .target-hero .approval-actions button { min-width: 58px; min-height: 58px; }
  body.theme-target .target-command-layout,
  body.theme-target .target-status-layout { grid-template-columns: 1fr; gap: 48px; }

  body.theme-doc .doc-forge { min-height: 650px; margin-inline: -80px; transform: scale(.78); }
  body.theme-doc .doc-forge-frame { transform: none; }
  body.theme-doc .doc-forge::after { right: 70px; }
  body.theme-doc .doc-forge .doc-sidebar button { min-height: 58px; }

  body.theme-spark .spark-hero { padding-top: 72px; text-align: left; }
  body.theme-spark .product-badge,
  body.theme-spark .product-actions,
  body.theme-spark .product-meta { justify-content: flex-start; }
  body.theme-spark .spark-hero .product-hero-copy > p { margin-inline: 0; }
  body.theme-spark .spark-product-stage { min-height: 640px; margin-inline: -70px; width: calc(100% + 140px); transform: scale(.78); }
  body.theme-spark .spark-product-stage [data-spark-demo] { min-height: 58px; }

  body.theme-jobs .jobs-hero { padding-top: 72px; }
  body.theme-jobs .jobs-hero h1 { display: block; font-size: clamp(44px, 12vw, 64px); }
  body.theme-jobs .jobs-hero h1 > * {
    min-height: 0;
    display: block;
    padding: 13px 0;
    border-top: 1px solid rgba(244, 241, 233, .18);
    border-right: 0;
  }
  body.theme-jobs .jobs-route-scene { min-height: 670px; }
  body.theme-jobs .jobs-map-node { width: 132px; min-height: 110px; padding: 15px; }
  body.theme-jobs .node-person { left: 4%; top: 16%; }
  body.theme-jobs .node-match { left: calc(50% - 66px); top: 35%; }
  body.theme-jobs .node-company { right: 4%; top: 16%; }
  body.theme-jobs .jobs-match-card { left: 16px; right: 16px; bottom: 108px; }
  body.theme-jobs .jobs-view-switch { left: 16px; right: 16px; width: auto; }
  body.theme-jobs .jobs-split { grid-template-columns: 1fr; }
  body.theme-jobs .jobs-side + .jobs-side { border-left: 0; border-top: 1px solid rgba(244, 241, 233, .12); }
}

@media (prefers-reduced-motion: reduce) {
  body:not(.theme-pulse) :is(.product-section, .section-pad).is-scene-active:not(.product-cta, .contact)::before {
    animation: none !important;
    animation-play-state: paused !important;
    will-change: auto !important;
  }

  .theme-labs .ecosystem-visual::before,
  .theme-target .target-hero .product-visual::before,
  .theme-doc .doc-forge::before,
  .theme-doc .doc-forge::after,
  .theme-spark .spark-product-stage::before {
    animation: none !important;
  }

  body:not(.theme-pulse) .reveal,
  body:not(.theme-pulse) .reveal.reveal-ready {
    opacity: 1 !important;
    transform: none !important;
  }
}
