/* ============================================================
   02-reset.css — Modern CSS Reset
   ============================================================ */

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

html {
  font-size: var(--font-size-base);
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  height: 100%;
}

body {
  min-height: 100dvh;
  height: 100%;
  font-family: var(--font-sans);
  font-size: var(--font-size-base);
  line-height: var(--line-height-normal);
  color: var(--color-text);
  background-color: var(--color-bg);
  background-image: var(--noise-url);
  overflow-x: hidden;
  transform: translateZ(0);
}

ul, ol { list-style: none; }
img, picture, video, canvas, svg { display: block; max-width: 100%; }
input, button, textarea, select { font: inherit; color: inherit; }
p, h1, h2, h3, h4, h5, h6 { overflow-wrap: break-word; }
a { color: inherit; text-decoration: none; }
button { background: none; border: none; cursor: pointer; }

/* ── Scrollbars ──────────────────────────────────────────────
   Thin, sharp — matches the aesthetic.
   ──────────────────────────────────────────────────────────── */

::-webkit-scrollbar        { width: 4px; height: 4px; }
::-webkit-scrollbar-track  { background: var(--color-bg-panel); }
::-webkit-scrollbar-thumb  {
  background: var(--color-border);
  border-radius: var(--radius-none);
}
::-webkit-scrollbar-thumb:hover { background: var(--color-accent); }
* { scrollbar-width: thin; scrollbar-color: var(--color-border) transparent; }

/* ── Focus ───────────────────────────────────────────────────
   Sharp accent outline — keyboard users see it clearly.
   ──────────────────────────────────────────────────────────── */

:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
  border-radius: var(--radius-none);
}

/* ── GPU utilities ───────────────────────────────────────────
   ──────────────────────────────────────────────────────────── */

.gpu            { transform: translateZ(0); backface-visibility: hidden; }
.isolate        { isolation: isolate; }
.contain-all    { contain: layout style paint; }
.contain-paint  { contain: paint; }
.cv-auto        { content-visibility: auto; contain-intrinsic-size: 0 300px; }
