/* ============================================================
   1000PDF DESIGN SYSTEM — BASE
   ------------------------------------------------------------
   Font imports + modern reset + foundational typography
   using SEMANTIC tokens that switch with [data-theme="light|dark"].
   Load AFTER tokens.css, BEFORE components.css.
   ============================================================ */

/* ===== FONT IMPORTS ======================================== */
@import url('https://fonts.googleapis.com/css2?family=Schibsted+Grotesk:wght@400..900&family=Space+Grotesk:wght@300..700&family=JetBrains+Mono:wght@400..700&display=swap');

/* ===== MODERN RESET ======================================== */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  -webkit-text-size-adjust: 100%;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  scroll-behavior: smooth;
  -moz-tab-size: 4;
  tab-size: 4;
  /* clip (not hidden) — stops sideways scroll without becoming a
     scroll container, so position:sticky on the nav still works */
  overflow-x: clip;
}

body {
  font-family: var(--pdf-font-body);
  font-size: var(--pdf-text-base);
  line-height: var(--pdf-leading-normal);
  font-weight: var(--pdf-weight-regular);
  color: var(--pdf-text-primary);
  background-color: var(--pdf-surface-0);
  background-image: var(--pdf-canvas);
  background-attachment: fixed;
  min-height: 100vh;
  overflow-x: clip;
  transition: var(--pdf-theme-transition);
}

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

input, button, textarea, select {
  font: inherit;
  color: inherit;
}

button {
  background: transparent;
  border: none;
  cursor: pointer;
}

a {
  color: inherit;
  text-decoration: none;
}

ul, ol {
  list-style: none;
}

p {
  text-wrap: pretty;
}

h1, h2, h3, h4, h5, h6 {
  text-wrap: balance;
  line-height: var(--pdf-leading-tight);
  letter-spacing: var(--pdf-tracking-tight);
  font-weight: var(--pdf-weight-semibold);
  color: var(--pdf-text-primary);
}

hr {
  border: none;
  height: 1px;
  background: var(--pdf-surface-line);
  margin: var(--pdf-space-8) 0;
}

::selection {
  background: var(--pdf-gold);
  color: var(--pdf-navy);
}

:focus-visible {
  outline: 2px solid var(--pdf-gold);
  outline-offset: 3px;
  border-radius: var(--pdf-radius-sm);
}

/* Custom scrollbar — theme-aware */
::-webkit-scrollbar          { width: 10px; height: 10px; }
::-webkit-scrollbar-track    { background: var(--pdf-scrollbar-track); }
::-webkit-scrollbar-thumb    {
  background: var(--pdf-scrollbar-thumb);
  border-radius: var(--pdf-radius-full);
  border: 2px solid var(--pdf-scrollbar-track);
}
::-webkit-scrollbar-thumb:hover { background: var(--pdf-scrollbar-hover); }


/* ===== BASE TYPOGRAPHY UTILITIES =========================== */

.pdf-display {
  font-family: var(--pdf-font-display);
  font-variation-settings: 'opsz' 144;
  font-weight: 500;
  letter-spacing: var(--pdf-tracking-tighter);
  line-height: var(--pdf-leading-tight);
  color: var(--pdf-text-primary);
}

.pdf-display--italic {
  font-style: italic;
  font-variation-settings: 'opsz' 144;
}

.pdf-eyebrow {
  display: inline-block;
  font-family: var(--pdf-font-body);
  font-size: var(--pdf-text-xs);
  font-weight: var(--pdf-weight-semibold);
  letter-spacing: var(--pdf-tracking-widest);
  text-transform: uppercase;
  color: var(--pdf-gold);
}

.pdf-eyebrow--with-rule {
  position: relative;
  padding-left: var(--pdf-space-10);
}

.pdf-eyebrow--with-rule::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 32px;
  height: 1px;
  background: var(--pdf-gold);
}

.pdf-lead {
  font-family: var(--pdf-font-body);
  font-size: var(--pdf-text-lg);
  line-height: var(--pdf-leading-relaxed);
  color: var(--pdf-text-secondary);
  font-weight: var(--pdf-weight-regular);
}

.pdf-mono {
  font-family: var(--pdf-font-mono);
  font-size: 0.92em;
  letter-spacing: -0.01em;
  font-feature-settings: 'tnum' on, 'ss01' on;
}

.pdf-num {
  font-family: var(--pdf-font-display);
  font-variation-settings: 'opsz' 36;
  font-weight: 500;
  font-feature-settings: 'tnum' on, 'lnum' on;
  letter-spacing: var(--pdf-tracking-tighter);
  line-height: 1;
}

/* Theme-aware text utilities */
.pdf-text-faint   { color: var(--pdf-text-faint); }
.pdf-text-muted   { color: var(--pdf-text-muted); }
.pdf-text-primary { color: var(--pdf-text-primary); }
.pdf-text-gold    { color: var(--pdf-gold); }
.pdf-text-blue    { color: var(--pdf-blue-electric); }
.pdf-text-success { color: var(--pdf-success); }
.pdf-text-danger  { color: var(--pdf-danger); }

.pdf-text-center { text-align: center; }
.pdf-text-right  { text-align: right; }

.pdf-text-balance { text-wrap: balance; }
.pdf-text-pretty  { text-wrap: pretty; }
