/* ═══ RESET & FOUNDATIONS ════════════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html {
  height: 100%;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-size: clamp(14px, 1.5vw, 16px); /* Fluid Typography Base */
}
body {
  width: 100vw;
  height: 100dvh;
  overflow: hidden;
  font-family: var(--font-sans);
  background: var(--bg-base);
  color: var(--text-primary);
}
button {
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  font: inherit;
  border: none;
  background: none;
  color: inherit;
}
textarea, input {
  font: inherit;
  border: none;
  background: none;
  color: inherit;
  resize: none;
  outline: none;
}
:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.1); border-radius: var(--radius-pill); border: 2px solid var(--bg-base); }
::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.2); }

/* Material Symbols */
.material-symbols-rounded {
  font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24;
  font-size: 20px;
}

