/* Shared technical-theme composition. Every color comes from a palette token;
   layout, typography, imagery, breakpoints and existing motion are inherited. */
:root {
  --status-success: #237a4b;
  --status-success-border: #76b58e;
  --status-success-surface: #e8f5ed;
}
:root {
  --black: var(--theme-heading);
  --ink: var(--theme-heading);
  --deep: var(--theme-showcase);
  --mid: var(--theme-dark-card);
  --dark-border: var(--theme-dark-border);
  --light: var(--theme-background);
  --soft: var(--theme-surface);
  --subtle: var(--theme-tint);
  --muted: var(--theme-body);
  --purple: var(--theme-brand);
  --violet: var(--theme-hover);
  --lavender: var(--theme-brand);
  --text: var(--theme-heading);
  --brand-paper: var(--theme-background);
  --brand-border: var(--theme-border);
  --brand-accent: var(--theme-brand);
  --brand-accent-hover: var(--theme-hover);
  --brand-tint: var(--theme-tint);
  --brand-accent-soft: var(--theme-accent-border);
  color-scheme: light;
}
body,
.section-dark,
.section-light {
  background: var(--theme-background);
  color: var(--theme-heading);
}
::selection {
  background: var(--theme-accent-border);
  color: var(--theme-heading);
}
button:focus-visible,
a:focus-visible,
summary:focus-visible {
  outline-color: var(--theme-brand);
}
.eyebrow,
.dark-label {
  color: var(--theme-body);
}
.text-purple,
.feature-count {
  color: var(--theme-brand);
}
.announcement {
  background: var(--theme-tint);
  border-color: var(--theme-border);
  color: var(--theme-body);
}
.announce-tag,
.announcement a {
  color: var(--theme-deep);
}
.announcement a {
  border-color: var(--theme-accent-border);
}
.site-header {
  background: var(--theme-background);
  color: var(--theme-heading);
  border-color: var(--theme-border);
}
.desktop-nav > a span,
.nav-login {
  color: var(--theme-body);
}
.desktop-nav a:hover,
.desktop-nav a[aria-current],
.nav-login:hover {
  color: var(--theme-brand);
}
.btn-solid {
  background: var(--theme-brand);
  color: var(--theme-on-dark);
}
.btn-solid:hover {
  background: var(--theme-hover);
}
.site-header .btn-nav {
  background: var(--theme-nav-cta);
}
.site-header .btn-nav:hover {
  background: var(--theme-hover);
}
.btn-outline,
.btn-light {
  background: var(--theme-background);
  color: var(--theme-heading);
  border-color: var(--theme-accent-border);
}
.btn-outline:hover,
.btn-light:hover {
  background: var(--theme-tint);
  border-color: var(--theme-brand);
}
.menu-toggle {
  background: var(--theme-background);
  border-color: var(--theme-border);
}
.menu-toggle span {
  background: var(--theme-heading);
}
.mobile-nav {
  background: var(--theme-background);
  border-color: var(--theme-border);
  color: var(--theme-heading);
}
.mobile-nav a {
  border-color: var(--theme-border);
}
.mobile-nav a span,
.mobile-nav a[aria-current] {
  color: var(--theme-brand);
}
.mobile-nav .mobile-cta {
  background: var(--theme-nav-cta);
  color: var(--theme-on-dark);
}
.mobile-nav .mobile-cta span {
  color: var(--theme-on-dark);
}
.hero,
.ownership {
  background: var(--theme-background);
}
.hero h1,
.hero-outline {
  color: var(--theme-heading);
}
.hero-eyebrow {
  color: var(--theme-body);
}
.small-dot {
  background: var(--theme-brand);
}
.hero-lead,
.hero-footnote,
.section-lead,
.ownership-features p {
  color: var(--theme-body);
}
.hero-line {
  background: var(--theme-border);
}
.ownership-features article,
.ownership-features article + article {
  border-color: var(--theme-border);
}
.ownership h2 .text-purple,
.system-map h2 .text-purple {
  color: var(--theme-heading);
}
.inline-link,
.dark-link {
  color: var(--theme-brand);
  border-color: var(--theme-accent-border);
}
.inline-link:hover,
.dark-link:hover {
  color: var(--theme-hover);
}
.platform-intro p,
.platform-description p,
.models-intro p,
.customer-heading p,
.audience-copy p,
.system-heading p,
.system-caption {
  color: var(--theme-body);
}
.platform-shell,
.tab-stack {
  border-color: var(--theme-border);
}
.tab {
  background: var(--theme-background);
  color: var(--theme-body);
  border-color: var(--theme-border);
}
.tab:hover,
.model-row:hover {
  background: var(--theme-surface);
}
.tab.active {
  background: var(--theme-tint);
  color: var(--theme-brand);
  box-shadow: inset 3px 0 var(--theme-brand);
}
.tab-index {
  color: var(--theme-body);
}
.system-map {
  background: var(--theme-tint);
}
.model-head {
  color: var(--theme-body);
}
.model-row,
.model-row:last-child {
  background: var(--theme-background);
  border-color: var(--theme-border);
}
.model-avatar {
  background: var(--theme-surface);
  border-color: var(--theme-border);
  color: var(--theme-brand);
}
.model-avatar .engineering-icon {
  color: var(--theme-brand);
}
.model-main small,
.model-row > span:not(.model-main) {
  color: var(--theme-body);
}
.model-arrow {
  color: var(--theme-brand) !important;
}
.event-band,
.testimonial,
.last-cta {
  background: var(--theme-showcase);
  color: var(--theme-on-dark);
}
.event-band:before {
  background: var(--theme-showcase);
}
.event-inner p,
.testimonial-copy > p,
.last-cta p,
.last-cta .contact-status {
  color: var(--theme-dark-body);
}
.event-band .eyebrow,
.testimonial .eyebrow,
.testimonial .person-row span,
.last-cta .eyebrow {
  color: var(--theme-dark-body);
}
.testimonial .inline-link {
  color: var(--theme-highlight);
  border-color: var(--theme-dark-border);
}
.last-cta h2 em {
  color: var(--theme-on-dark);
}
.cta-raster {
  background: radial-gradient(ellipse at 75% 48%, var(--theme-glow), transparent 60%);
}
.last-cta .btn-outline {
  background: transparent;
  color: var(--theme-on-dark);
  border-color: var(--theme-dark-body);
}
.last-cta .btn-outline:hover {
  background: var(--theme-dark-card);
  border-color: var(--theme-highlight);
}
.customer-layout {
  border-color: var(--theme-border);
}
.footer {
  background: var(--theme-showcase);
  color: var(--theme-on-dark);
  border-color: var(--theme-dark-border);
}
.footer-brand p,
.footer-cols a,
.footer-bottom {
  color: var(--theme-dark-body);
}
.footer-cols h3,
.footer-cols a:hover {
  color: var(--theme-on-dark);
}
.footer-bottom {
  border-color: var(--theme-dark-border);
}
dialog,
.info-header {
  background: var(--theme-background);
  color: var(--theme-heading);
  border-color: var(--theme-border);
}
dialog::backdrop {
  background: var(--theme-showcase);
  opacity: 0.85;
}
dialog p,
dialog li {
  color: var(--theme-body);
}
details,
#outcomes {
  border-color: var(--theme-border);
}
