body { margin: 0; background: #fff; }
a { color: rgb(26,6,255); }
a:hover { color: rgb(83,112,255); }
@keyframes meniLoadingPulse { 0%, 100% { opacity: 0.4; transform: scale(0.92); } 50% { opacity: 1; transform: scale(1); } }

/*
  Fluid type scale. Each variable scales smoothly between a mobile floor
  (~65% of the desktop size, 375px viewport) and the original desktop px
  value (unchanged, 1440px viewport), via clamp(min, preferred, max).
*/
:root {
  --fs-60: clamp(2.4375rem, 1.975rem + 1.97vw, 3.75rem); /* 39px -> 60px */
  --fs-54: clamp(2.1875rem, 1.769rem + 1.78vw, 3.375rem); /* 35px -> 54px */
  --fs-44: clamp(1.8125rem, 1.482rem + 1.41vw, 2.75rem); /* 29px -> 44px */
  --fs-36: clamp(1.4375rem, 1.151rem + 1.22vw, 2.25rem); /* 23px -> 36px */
  --fs-28: clamp(1.125rem, 0.905rem + 0.94vw, 1.75rem); /* 18px -> 28px */
  --fs-26: clamp(1.0625rem, 0.864rem + 0.85vw, 1.625rem); /* 17px -> 26px */
  --fs-24: clamp(1rem, 0.824rem + 0.75vw, 1.5rem); /* 16px -> 24px */
  --fs-22: clamp(0.875rem, 0.699rem + 0.75vw, 1.375rem); /* 14px -> 22px */
  --fs-21: clamp(0.875rem, 0.721rem + 0.66vw, 1.3125rem); /* 14px -> 21px */
  --fs-20: clamp(0.875rem, 0.743rem + 0.56vw, 1.25rem); /* 14px -> 20px */
  --fs-19: clamp(0.875rem, 0.765rem + 0.47vw, 1.1875rem); /* 14px -> 19px */
  --fs-18: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem); /* 14px -> 18px */
}

/* Responsive header nav: desktop links vs. hamburger dropdown */
.menu-toggle { display: none; align-items: center; background: none; border: none; cursor: pointer; padding: 4px; }
@media (max-width: 860px) {
  .menu-links { display: none !important; }
  .menu-toggle { display: flex !important; }
}

/*
  Opacity-only fade for the mobile menu overlay — no slide/scale/parallax,
  since this site is used by people with vestibular disorders. Disabled
  entirely when the OS-level reduced-motion preference is set.
*/
@keyframes meniMenuFadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes meniMenuFadeOut { from { opacity: 1; } to { opacity: 0; } }
.mobile-menu-overlay.opening { animation: meniMenuFadeIn 180ms ease-out; }
.mobile-menu-overlay.closing { animation: meniMenuFadeOut 180ms ease-out; }
@media (prefers-reduced-motion: reduce) {
  .mobile-menu-overlay.opening, .mobile-menu-overlay.closing { animation: none; }
}

/* Tabbed content: desktop sidebar+pane vs. mobile accordion */
.tabs-accordion { display: none; }
@media (max-width: 860px) {
  .tabs-desktop { display: none !important; }
  .tabs-accordion { display: flex !important; flex-direction: column; }
}
