@layer base {

  /*
   * Page-level defaults. White-first: the document background is the light
   * surface, and dark is applied only by an explicit tone class.
   */

  body {
    background-color: var(--alasadi-bg);
    color: var(--alasadi-fg);
    /* Default only; the typography layer sets the family from the declared language. */
    font-family: var(--alasadi-font-ar);
    font-size: var(--alasadi-text-base);
    line-height: var(--alasadi-leading-body);
    font-synthesis-weight: none;
    -webkit-font-smoothing: antialiased;
  }

  /* ---- Focus ------------------------------------------------------------- */

  :focus-visible {
    outline: var(--alasadi-focus-width) solid var(--alasadi-fg);
    outline-offset: var(--alasadi-focus-offset);
  }

  /* ---- Skip link ---------------------------------------------------------- */

  .alasadi-skip-link {
    position: absolute;
    inset-block-start: var(--alasadi-space-2);
    inset-inline-start: var(--alasadi-space-2);
    z-index: 100;
    padding: var(--alasadi-space-3) var(--alasadi-space-4);
    background-color: var(--alasadi-surface);
    color: var(--alasadi-ink);
    border: var(--alasadi-border-width) solid var(--alasadi-ink);
    border-radius: var(--alasadi-radius-sm);
    transform: translateY(-200%);
    transition: transform var(--alasadi-duration-fast) var(--alasadi-ease);
  }

  .alasadi-skip-link:focus-visible { transform: translateY(0); }

  /* ---- Links -------------------------------------------------------------- */

  a { color: currentColor; }

  a:not([class]) {
    text-decoration: underline;
    text-decoration-color: var(--alasadi-rule-strong);
    transition: text-decoration-color var(--alasadi-duration-fast) var(--alasadi-ease);
  }

  a:not([class]):hover { text-decoration-color: currentColor; }

  /* ---- Selection ----------------------------------------------------------- */

  ::selection {
    background-color: var(--alasadi-ink);
    color: var(--alasadi-surface);
  }

  /* ---- Media --------------------------------------------------------------- */

  img,
  video {
    /* Prevents layout shift before the intrinsic size is known. */
    background-color: var(--alasadi-surface-soft);
  }

  /* ---- Reduced motion ------------------------------------------------------- */

  @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;
    }
  }
}
