/* ==========================================================================
   base.css — CSS Reset & Global Foundation
   ========================================================================== */

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

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; font-size: 16px; }

body {
  font-family: var(--font-body);
  font-size: var(--font-size-base);
  line-height: var(--line-height-normal);
  color: var(--color-text-primary);
  background-color: var(--color-bg-primary);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

h1,h2,h3,h4,h5,h6 {
  font-family: var(--font-display);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-tight);
  color: var(--color-text-primary);
}

p { line-height: var(--line-height-loose); color: var(--color-text-secondary); }
a { color: var(--color-accent-gold); text-decoration: none; transition: color var(--transition-fast); }
a:hover { color: var(--color-cube-teal); }
img, video { max-width: 100%; height: auto; display: block; }
ul, ol { list-style: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }

/* Layout */
.container {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--space-6);
}
.container--narrow { max-width: var(--container-narrow); }
.section     { padding-block: var(--space-24); }
.section--sm { padding-block: var(--space-16); }

/* Utilities */
.text-gold      { color: var(--color-accent-gold); }
.text-teal      { color: var(--color-cube-teal); }
.text-red       { color: var(--color-domino-red); }
.text-muted     { color: var(--color-text-muted); }
.font-display   { font-family: var(--font-display); }
.font-ui        { font-family: var(--font-ui); }

/* Accessibility */
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
:focus-visible { outline: 2px solid var(--color-accent-gold); outline-offset: 3px; border-radius: var(--radius-sm); }

/* Reading progress */
#scroll-progress {
  position: fixed; top: 0; left: 0; height: 3px; width: 0%;
  background: linear-gradient(90deg, var(--color-domino-red), var(--color-domino-orange), var(--color-cube-teal));
  z-index: var(--z-modal);
  transition: width 100ms linear;
  border-radius: 0 var(--radius-full) var(--radius-full) 0;
}
