/* ============================================================
   kizikula · base reset + element defaults
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: var(--t-body);
  font-weight: var(--w-regular);
  line-height: var(--lh-normal);
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-feature-settings: 'kern' 1;
}

/* Headings — display sans, tight, lowercase by house style */
h1, h2, h3, h4, h5, h6 {
  margin: 0;
  font-family: var(--font-display);
  font-weight: var(--w-medium);
  line-height: var(--lh-snug);
  letter-spacing: var(--track-tight);
  color: var(--text);
}
h1 { font-size: var(--t-h1); }
h2 { font-size: var(--t-h2); }
h3 { font-size: var(--t-h3); line-height: var(--lh-snug); }
h4 { font-size: var(--t-h4); letter-spacing: var(--track-normal); }

p { margin: 0 0 1em; max-width: var(--measure); }

a {
  color: inherit;
  text-decoration: none;
  text-underline-offset: 0.18em;
  text-decoration-thickness: 1px;
  transition: color var(--dur-1) var(--ease), opacity var(--dur-1) var(--ease);
}
a:hover { opacity: 0.7; }

strong { font-weight: var(--w-semibold); }
em { font-style: italic; }

small { font-size: var(--t-small); }

hr {
  border: 0;
  border-top: var(--bw) solid var(--border);
  margin: var(--s-6) 0;
}

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

::selection { background: var(--coral-tint); color: var(--ink); }

:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
  border-radius: var(--r-xs);
}

/* ---- Reusable text utilities (the house gestures) ---- */
.kz-eyebrow {
  font-family: var(--font-sans);
  font-size: var(--t-label);
  font-weight: var(--w-semibold);
  letter-spacing: var(--track-label);
  text-transform: uppercase;
  color: var(--text-secondary);
}
.kz-serif { font-family: var(--font-serif); }
.kz-display {
  font-size: var(--t-display-1);
  font-weight: var(--w-medium);
  line-height: var(--lh-tight);
  letter-spacing: var(--track-tight);
}
.kz-measure { max-width: var(--measure); }

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
}
