@layer base {
  body {
    min-height: 100vh;
    background: var(--cream);
    color: var(--ink);
    font-family: var(--font-sans);
    font-weight: 500;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
  }

  turbo-frame[busy] { cursor: progress; }

  turbo-frame[busy]::before {
    position: fixed;
    z-index: 1000;
    inset: 0 0 auto;
    height: 3px;
    background: var(--primary);
    content: "";
    animation: loading-progress 1.2s ease-in-out infinite;
  }

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

  h1, h2, h3, h4 {
    font-family: var(--font-sans);
    font-weight: 800;
    letter-spacing: -0.035em;
    line-height: 1.04;
    text-wrap: balance;
  }

  h1 { font-size: clamp(2.8rem, 7vw, 5.5rem); }
  h2 { font-size: clamp(2rem, 4.5vw, 3.5rem); }
  h3 { font-size: clamp(1.4rem, 2.5vw, 2rem); }
  p { color: var(--muted); }

  input, textarea {
    width: 100%;
    border: 1px solid var(--line-strong);
    border-radius: var(--radius-sm);
    background: var(--card);
    color: var(--ink);
    padding: 0.85rem 1rem;
    outline: none;
    font-size: 0.95rem;
  }

  input:focus, textarea:focus {
    border-color: var(--ink);
    box-shadow: 0 0 0 3px rgb(18 111 196 / 20%);
  }
}
