/* Reset dasar.

   Kenapa berkas ini ada: tokens.css cuma menyentuh dua selektor, html
   dan :root. Dia tidak punya reset, tidak menormalkan h1 sampai h6, dan
   tidak pernah memasang --font-display ke body. Di clvn-desk pekerjaan
   itu dilakukan preflight Tailwind plus satu @layer base. Di sini tidak
   ada Tailwind, jadi harus dibawa sendiri.

   Muat berkas ini SEBELUM tokens.css. Rule html { font-size } di
   tokens.css harus menang, dan berkas ini sengaja tidak menyentuh
   font-size pada html sama sekali. */

*,
*::before,
*::after {
  box-sizing: border-box;
}

body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
figure,
blockquote,
dl,
dd {
  margin: 0;
}

/* Heading dinormalkan ke ukuran induknya. Skala tipografi datang dari
   kelas t-* di tokens.css, bukan dari tag. Tanpa ini, h1 bawaan browser
   ikut campur dan angka hasil ukur meleset. */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/* Dibungkus :where() supaya spesifisitasnya nol. Tanpa itu ul[class]
   bernilai (0,1,1) dan MENGALAHKAN selector satu kelas seperti
   .side-nav__links (0,1,0), sehingga padding komponen dibatalkan diam
   diam. Reset tetap bekerja karena aturan author selalu menang atas
   gaya bawaan browser, berapa pun spesifisitasnya. */
:where(ul[class]),
:where(ol[class]) {
  list-style: none;
  margin: 0;
  padding: 0;
}

body {
  min-height: 100svh;
  font-family: var(--font-display);
  color: var(--black);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}

input,
button,
textarea,
select {
  font: inherit;
  color: inherit;
}

button {
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
}

a {
  color: inherit;
  text-decoration: none;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    /* Delay wajib ikut dinolkan. Tanpa ini transisi memang selesai
       seketika, tapi yang tertunda tetap menunggu: panel submenu drawer
       punya delay 0.78s sehingga masih terasa bergerak walau pengguna
       sudah minta gerak dikurangi. */
    transition-delay: 0s !important;
    scroll-behavior: auto !important;
  }
}
