/* ComunicAI design system — base: type, focus, scrollbars, reduced motion.
   Everything here is scoped to pages that opt in with body.ds (added by shell.js)
   so pages not yet migrated keep their look. */

body.ds {
  font-family: var(--ds-font);
  font-size: var(--ds-fs-body);
  line-height: 1.55;
  color: var(--ds-text);
  background: var(--ds-canvas);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-feature-settings: 'cv11', 'ss01';
}
/* Ambient light: ONE static fixed layer, brand-derived, no animation */
body.ds::before {
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background: var(--ds-ambient);
}
body.ds::after { content: none; }

body.ds ::selection { background: var(--ds-selection); }
body.ds code, body.ds kbd, body.ds .ds-mono { font-family: var(--ds-font-mono); font-size: var(--ds-fs-code); font-variant-numeric: tabular-nums; }

/* Focus: always visible for keyboard, quiet for pointer */
body.ds :focus { outline: none; }
body.ds :focus-visible { outline: 2px solid var(--ds-accent); outline-offset: 2px; border-radius: var(--ds-r-sm); }

body.ds * { scrollbar-width: thin; scrollbar-color: var(--ds-line-strong) transparent; }
body.ds ::-webkit-scrollbar { width: 10px; height: 10px; }
body.ds ::-webkit-scrollbar-thumb { background: var(--ds-line-strong); border-radius: 10px; border: 2px solid transparent; background-clip: content-box; }

.ds-sr-only {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

@keyframes ds-rise { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

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