:root {
  --color-bg: #eff0ee;
  --color-bg-soft: #d4ddca;
  --color-surface: #ffffff;
  --color-green: #7e9b6e;
  --color-green-dark: #003c3e;
  --color-green-deep: #0f130e;
  --color-rust: #df6859;
  --color-orange: #fdc2a3;
  --color-text: #000000;
  --color-text-muted: #999999;
  --color-text-muted-dark: #2b2a2a;
  --color-text-light: #f5f0eb;
  --color-border: #d4ddca;
  --font-heading: "Lora", Georgia, serif;
  --font-body: "Inter", system-ui, sans-serif;
  --font-mono: "Courier New", monospace;
}

html,
body {
  margin: 0;
  padding: 0;
  font-family: var(--font-body);
  background-color: var(--color-bg);
  color: var(--color-text);
}

* {
  box-sizing: border-box;
}

h1 {
  font-size: clamp(2.2rem, 5vw, 3rem);
  line-height: 1.1;
  margin: 0 auto;
  font-family: var(--font-heading);
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 6rem;
}

body {
  overflow-wrap: break-word;
}

main {
  min-height: 60vh;
}

h2 {
  font: 500 clamp(2rem, 4vw, 3rem)/1.15 var(--font-heading);
}

a {
  color: var(--color-green-dark);
}

:focus-visible {
  outline: 3px solid currentColor;
  outline-offset: 5px;
}

.eyebrow {
  font: 0.8rem/1.5 var(--font-mono);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.skip-link {
  position: fixed;
  top: -8rem;
  left: 1rem;
  z-index: 100;
  padding: 1rem;
  background: white;
  color: black;
}

.skip-link:focus {
  top: 1rem;
}

.home-scroll {
  scroll-snap-type: y proximity;
}

.home-scroll [data-nav-theme] {
  scroll-snap-align: start;
  scroll-margin-top: 0;
}

@media (max-width: 768px), (prefers-reduced-motion: reduce) {
  .home-scroll {
    scroll-snap-type: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
  }

  .project-card:hover,
  .project-card:focus-within {
    transform: none !important;
  }
}
