/* Allen Healthcare Infrastructure — shared light/dark theme tokens.
   Toggled via [data-theme] on <html>, set by the inline boot script in
   each page's <head> and by SiteNav's theme toggle. */

:root,
:root[data-theme="dark"] {
  --bg: #0A0F06;
  --panel: #0E140C;
  --card: #101710;
  --line: rgba(180, 204, 120, 0.14);
  --line2: rgba(180, 204, 120, 0.26);
  --text: #EAF2E4;
  --head: #F3F8ED;
  --muted: rgba(234, 242, 228, 0.60);
  --faint: rgba(234, 242, 228, 0.42);
  --lime: #B4CC2E;
  --lime2: #C6E23A;
  --limeSurface: #B4CC2E;
  --lime2Surface: #C6E23A;
  --onLime: #0A0F06;
  --green: #5FA23E;
  --greenDeep: #2E7D3C;
  --navBg: rgba(10, 15, 6, 0.82);
  --navMobileBg: rgba(10, 15, 6, 0.96);
  --footerBg: #080C05;
  --shadow: 0 20px 60px rgba(0, 0, 0, 0.35);
}

:root[data-theme="light"] {
  --bg: #FFFFFF;
  --panel: #F5F5F3;
  --card: #FFFFFF;
  --line: rgba(20, 30, 12, 0.10);
  --line2: rgba(20, 30, 12, 0.20);
  --text: #26311F;
  --head: #111A0B;
  --muted: rgba(38, 49, 31, 0.64);
  --faint: rgba(38, 49, 31, 0.46);
  --lime: #5C7A17;
  --lime2: #4C6613;
  --limeSurface: #B4CC2E;
  --lime2Surface: #9FB828;
  --onLime: #0A0F06;
  --green: #3E7A3E;
  --greenDeep: #2E7D3C;
  --navBg: rgba(255, 255, 255, 0.86);
  --navMobileBg: rgba(255, 255, 255, 0.98);
  --footerBg: #F2F2F0;
  --shadow: 0 20px 50px rgba(20, 30, 12, 0.08);
}

html { background: var(--bg); }
body { margin: 0; padding: 0; background: var(--bg); }
::selection { background: var(--limeSurface); color: var(--onLime); }

/* ---------- Motion: page enter/exit + scroll reveal ---------- */

#dc-root {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.42s cubic-bezier(0.16, 1, 0.3, 1), transform 0.42s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}
#dc-root.ahi-in { opacity: 1; transform: translateY(0); }
#dc-root.ahi-out {
  opacity: 0;
  transform: translateY(-10px);
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.ahi-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1), transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}
.ahi-reveal.ahi-visible { opacity: 1; transform: translateY(0); }

@media (prefers-reduced-motion: reduce) {
  #dc-root, #dc-root.ahi-out, .ahi-reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
