[data-bs-theme="dark"] {
    --bs-body-bg: var(--ej-bg-deep);
    --bs-body-color: var(--ej-text);
    --bs-body-font-family: var(--ej-font-body);
  }
  
  html,
  body {
    height: 100%;
  }
  
  body {
    margin: 0;
  }
  
  :focus-visible {
    outline: 3px solid var(--ej-accent-strong);
    outline-offset: 3px;
  }
  
  @media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
      scroll-behavior: auto !important;
    }
  }
  
  body {
    -webkit-font-smoothing: antialiased;
  }
  
  h1, h2, h3, .navbar-brand {
    font-family: var(--ej-font-display);
  }
  
  @keyframes ej-fade-up {
    from { opacity: 0; transform: translateY(14px); }
    to   { opacity: 1; transform: translateY(0); }
  }