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

[hidden] {
  display: none !important;
}

html {
  /* Reserve the gutter for the vertical scrollbar even when it isn't
     needed. Without this, the scrollbar eats into the right padding
     and cards look glued to the right edge while still having a
     proper gap on the left. */
  scrollbar-gutter: stable;
  overflow-x: clip;
}
html, body {
  max-width: 100%;
  overflow-x: clip;
}

body {
  margin: 0;
  min-height: 100vh;
  color: var(--ink);
  background: var(--bg);
  font-family: -apple-system, "Inter", "Segoe UI", system-ui, sans-serif;
  font-size: 14px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.2;
}

a { color: inherit; text-decoration: none; }
img { max-width: 100%; }

/* --- Shell layout -------------------------------------------------- */
