/* ═══════════════════════════════════════════════════════════════════════
 * getfishnet — base reset + base typography (opt-in)
 * Imported after the token files. Uses tokens, sets no literal colors.
 * ═══════════════════════════════════════════════════════════════════════ */

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

html {
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-family: var(--font-sans);
  color: var(--ink-default);
  background: var(--surface-1);
  transition:
    color var(--duration-fast) var(--easing-standard),
    background-color var(--duration-fast) var(--easing-standard);
}

body {
  margin: 0;
  min-height: 100dvh;
  font-size: 16px;
  line-height: var(--leading-body);
  font-feature-settings: 'cv11' on, 'ss01' on, 'tnum' on;
}

h1, h2, h3, h4, h5, h6 { margin: 0; font-weight: 700; }

/* Fraunces — display, H1/H2 vitrine + citations only */
h1, h2 {
  font-family: var(--font-display);
  letter-spacing: var(--tracking-display);
  line-height: var(--leading-display);
}
/* Inter — H3–H6 + UI */
h3, h4, h5, h6 {
  font-family: var(--font-sans);
  letter-spacing: var(--tracking-heading);
  line-height: var(--leading-heading);
}

code, kbd, pre, samp, .tabular-nums { font-family: var(--font-mono); }
.tabular-nums { font-variant-numeric: tabular-nums; }

p { margin: 0; }

a {
  color: var(--green-700); /* AA on surface-1 */
  text-underline-offset: 4px;
  transition: color var(--duration-fast) var(--easing-standard);
}
a:hover { color: var(--green-600); }

:focus-visible {
  outline: 2px solid var(--green-400);
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}

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

::selection { background: var(--green-200); color: var(--ink-default); }
[data-theme='dark'] ::selection { background: var(--navy-600); color: var(--ink-default); }
