/* =========================================================
   V3 BASE — reset, typography, layout primitives
   ========================================================= */

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  min-width: 320px;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: var(--leading-body);
  color: var(--color-text);
  background: var(--color-ivory);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

img, picture, svg, video { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; color: inherit; }
button, [role="button"], a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
p, h1, h2, h3, h4, h5, h6 { margin-top: 0; }
p { color: var(--color-text-muted); }

h1, h2, h3, .display {
  font-family: var(--font-display);
  font-weight: var(--font-weight-bold);
  letter-spacing: var(--tracking-tight);
  color: var(--color-ink);
}
h1 { font-size: clamp(46px, 6vw, var(--heading-hero)); line-height: var(--leading-tight); }
h2 { font-size: clamp(36px, 4vw, var(--heading-xl)); line-height: 1.1; }
h3 { font-size: clamp(24px, 2vw, var(--heading-md)); line-height: var(--leading-heading); }

.text-korean { font-family: var(--font-korean); }

:focus-visible {
  outline: 3px solid rgba(166, 79, 53, .28);
  outline-offset: 3px;
}

.container {
  width: min(var(--container-md), calc(100% - 40px));
  margin-inline: auto;
}
.container-wide {
  width: min(var(--container-lg), calc(100% - 40px));
  margin-inline: auto;
}

.section { padding-block: var(--space-24); }
.section-large { padding-block: var(--space-30); }
.section-compact { padding-block: var(--space-16); }
.section-header { margin-bottom: var(--space-12); }
.full { grid-column: 1 / -1; }

/* Small reusable utilities */
.text-muted { color: var(--color-text-muted) !important; }
.text-soft { color: var(--color-text-soft) !important; }
.text-clay { color: var(--color-clay) !important; }
.text-brass { color: var(--color-brass) !important; }
.bg-dark { background: var(--color-black); color: var(--color-white); }
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

@media (max-width: 768px) {
  body { font-size: 15px; }
  h1 { font-size: clamp(40px, 10vw, 50px); }
  h2 { font-size: clamp(32px, 8vw, 40px); }
  h3 { font-size: 24px; }
  .section { padding-block: var(--space-16); }
  .section-large { padding-block: var(--space-20); }
}

@media (max-width: 640px) {
  .container, .container-wide { width: calc(100% - 24px); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}
