/* base.css — fuentes, reset ligero y elementos crudos */

@font-face {
  font-family: "Geist";
  src: url("../fonts/Geist-Variable.0e46e732cced.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Geist Mono";
  src: url("../fonts/GeistMono-Variable.addf0d443087.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

@layer base {
  *, *::before, *::after { box-sizing: border-box; }
  * { margin: 0; }

  body {
    font-family: var(--font-sans);
    font-size: var(--text-base);
    line-height: 1.5;
    color: var(--text);
    background: var(--bg);
    -webkit-font-smoothing: antialiased;
    min-height: 100dvh;
  }

  h1, h2, h3 { letter-spacing: -0.01em; font-weight: 600; line-height: 1.25; }
  h1 { font-size: var(--text-xl); }
  h2 { font-size: var(--text-lg); }
  h3 { font-size: var(--text-md); }

  a { color: var(--accent); text-decoration-thickness: 1px; text-underline-offset: 2px; }

  code, kbd, samp { font-family: var(--font-mono); font-size: 0.92em; }

  [x-cloak] { display: none !important; }

  /* Controles crudos: baseline compartido (los componentes los refinan) */
  button { font: inherit; color: inherit; }
  input, select, textarea {
    font: inherit;
    color: var(--text);
    background: var(--surface);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-sm);
    padding: 7px 10px;
    transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
  }
  input:focus-visible, select:focus-visible, textarea:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
    border-color: var(--accent);
  }
  input:disabled, select:disabled, textarea:disabled {
    background: var(--surface-2);
    color: var(--text-2);
    cursor: not-allowed;
  }
  ::placeholder { color: var(--text-3); }

  ::selection { background: var(--accent-soft); color: var(--text); }

  :focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

  @media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
      transition-duration: 0.01ms !important;
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
    }
  }
}
