html[data-theme="light"] { color-scheme: light; }
html[data-theme="light"] .ambient-light { display: none; }

/* Live palette interpolation: no screenshot overlay, dimmed media or scroll lock.
   Only painted colours change; existing transform/opacity motion remains active. */
html.theme-fading,
html.theme-fading :where(body, header, nav, main, section, footer,
  h1, h2, h3, h4, h5, h6, p, a, button, blockquote, li, dt, dd, strong, em, label,
  input, textarea, select, figcaption, .nav-inner, .nav-links, .brand-role,
  .eyebrow, .series-num, .series-top, .breadcrumbs, .content-copy, .faq-copy,
  .seo-note, .service-meta, .service-note, .text-card, .service-card, .faq-item,
  .modal-card, .contact-modes, .consent-panel, .consent-body, .consent-option small,
  .mobile-nav-panel, .cta-copy, .cta-body, .cta-kicker, .cta-details, .site-privacy-controls):not(.reveal, .cta-button, .theme-toggle, .mobile-back-top, .modal-card, .mobile-nav-panel, .modal, .lightbox, .work-item, .hero-video) {
  transition-property: background-color, color, border-color !important;
  transition-duration: 1300ms !important;
  transition-timing-function: cubic-bezier(.4, 0, .2, 1) !important;
}
html.theme-fading .cta-button {
  transition: background-color 1300ms ease, color 1300ms ease, border-color 1300ms ease, transform .3s var(--ease) !important;
}
html.theme-fading .theme-toggle {
  transition: background-color 1300ms ease, color 1300ms ease, border-color 1300ms ease, transform 160ms ease !important;
}
html.theme-fading .mobile-back-top { --back-top-colour-duration: 1300ms; }
.theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  padding: 0;
  color: var(--ink);
  background: transparent;
  border: 1px solid var(--rule, rgba(128, 128, 128, .25));
  border-radius: 50%;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background-color 160ms ease, transform 160ms ease;
}
.theme-toggle:hover { background: rgba(128, 128, 128, .13); }
.theme-toggle:active { transform: scale(.94); }
.theme-toggle:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.theme-toggle svg { width: 18px; height: 18px; pointer-events: none; }
.theme-toggle .theme-moon { display: none; }
html[data-theme="light"] .theme-toggle .theme-sun { display: none; }
html[data-theme="light"] .theme-toggle .theme-moon { display: block; }
@media (max-width: 780px) {
  #nav.mobile-nav-ready .nav-inner.has-theme-toggle {
    grid-template-columns: minmax(0, 1fr) 44px 44px;
    column-gap: 6px;
    padding-inline: 10px;
  }
  #nav .has-theme-toggle > .theme-toggle {
    grid-row: 1;
    grid-column: 3;
    width: 44px;
    height: 44px;
  }
}
@media (max-width: 360px) {
  #nav.mobile-nav-ready .has-theme-toggle .brand { font-size: 1.17rem; }
}
@media (prefers-reduced-motion: reduce) {
  .theme-toggle { transition: none; }
  html.theme-fading, html.theme-fading :where(body, header, nav, main, section, footer, a, button) { transition-duration: 0s !important; }
}
