/* Base — element defaults. Tokens only: no literal design values below. */

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

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 1ms !important; transition-duration: 1ms !important; }
}

body {
  margin: 0;
  background: var(--ivy-c-bg);
  color: var(--ivy-c-body);
  font-family: var(--ivy-font-body);
  font-size: var(--ivy-text-base);
  font-weight: var(--ivy-weight-body);
  line-height: var(--ivy-leading-normal);
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
  margin: 0 0 var(--ivy-space-sm);
  color: var(--ivy-heading-color);
  font-family: var(--ivy-font-heading);
  font-weight: var(--ivy-weight-heading);
  line-height: var(--ivy-leading-tight);
  text-wrap: balance;
}
h1 { font-size: var(--ivy-text-3xl); }
h2 { font-size: var(--ivy-text-2xl); font-weight: var(--ivy-weight-medium); }
h3 { font-size: var(--ivy-text-xl); font-weight: var(--ivy-weight-medium); }
h4 { font-size: var(--ivy-text-lg); font-weight: var(--ivy-weight-medium); }
h5, h6 { font-size: var(--ivy-text-base); font-weight: var(--ivy-weight-medium); }

p, ul, ol, dl, blockquote, figure, table { margin: 0 0 var(--ivy-space-md); }
p { max-width: var(--ivy-width-content); text-wrap: pretty; }

a { color: var(--ivy-link-color); text-decoration-thickness: var(--ivy-underline-thickness); text-underline-offset: var(--ivy-underline-offset); transition: color var(--ivy-duration) var(--ivy-ease); }
a:hover { color: var(--ivy-link-hover); }

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: var(--ivy-focus-width) solid var(--ivy-c-focus);
  outline-offset: var(--ivy-focus-offset);
  border-radius: var(--ivy-radius-sm);
}

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

ul, ol { padding-left: var(--ivy-space-md); }
li { margin-bottom: var(--ivy-space-3xs); }

blockquote {
  margin-inline: 0;
  padding-left: var(--ivy-space-md);
  border-left: var(--ivy-border-width) solid var(--ivy-c-brand);
  color: var(--ivy-c-ink);
}

hr { border: 0; border-top: var(--ivy-border-width) solid var(--ivy-c-border); margin: var(--ivy-space-xl) 0; }

table { width: 100%; border-collapse: collapse; }
th, td { padding: var(--ivy-space-2xs) var(--ivy-space-xs); border-bottom: var(--ivy-border-width) solid var(--ivy-c-border); text-align: left; }
th { color: var(--ivy-c-ink); font-weight: var(--ivy-weight-medium); }

code, pre { font-family: var(--ivy-font-mono); font-size: var(--ivy-text-sm); }

::selection { background: var(--ivy-c-brand); color: var(--ivy-c-on-brand); }

.ivy-visually-hidden {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.ivy-skip-link {
  position: absolute; left: var(--ivy-space-2xs); top: calc(var(--ivy-space-2xs) * -6);
  z-index: 100; padding: var(--ivy-space-2xs) var(--ivy-space-sm);
  background: var(--ivy-c-bg); color: var(--ivy-c-ink);
  border-radius: var(--ivy-radius-sm); box-shadow: var(--ivy-shadow-md);
  transition: top var(--ivy-duration) var(--ivy-ease);
}
.ivy-skip-link:focus { top: var(--ivy-space-2xs); }
