
  html { scroll-behavior: smooth; }
  body { font-family: 'Inter', sans-serif; background: #F6F7FB; }
  .font-display { font-family: 'Sora', sans-serif; }
  .font-mono-tab { font-family: 'IBM Plex Mono', monospace; font-variant-numeric: tabular-nums; }

  @media (prefers-reduced-motion: reduce) {
    * { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
  }

  .reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s cubic-bezier(.16,.84,.44,1), transform .6s cubic-bezier(.16,.84,.44,1); }
  .reveal.in { opacity: 1; transform: translateY(0); }

  .grain { background-image: radial-gradient(rgba(255,255,255,0.06) 1px, transparent 1px); background-size: 3px 3px; }

  /* OMR bubble palette animation */
  .omr-cell { transition: background-color .5s ease, color .5s ease, transform .3s ease; }

  .marquee-track { animation: marquee 28s linear infinite; }
  @keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

  .ticker-blink { animation: blink 1.4s steps(1) infinite; }
  @keyframes blink { 50% { opacity: 0.25; } }

  ::selection { background: #4318FF; color: white; }

  .focus-ring:focus-visible { outline: 3px solid #4318FF; outline-offset: 3px; border-radius: 8px; }

  .accordion-content { max-height: 0; overflow: hidden; transition: max-height .35s ease; }

  .num-tick { font-variant-numeric: tabular-nums; }
