:root {
  --blue: #06f;
  --blue-hover: #0055d9;
  --blue-soft: #eef5ff;
  --green: #18a957;
  --green-soft: #eaf8ef;
  --purple: #7357e5;
  --purple-soft: #f0edff;
  --ink: #171719;
  --ink-soft: #333438;
  --gray-700: #5c5f66;
  --gray-500: #8a8c93;
  --gray-300: #dfe1e5;
  --gray-200: #e9eaec;
  --gray-100: #f2f3f5;
  --gray-50: #f8f8f8;
  --white: #fff;
  --radius-sm: 8px;
  --radius-md: 16px;
  --radius-lg: 24px;
  --shadow-card: 0 12px 32px rgba(23, 23, 25, .08);
  --container: 1200px;
  --narrow: 780px;
  --font-sans: Pretendard, "Pretendard Variable", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Noto Sans KR", "Segoe UI", sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--white);
  font-family: var(--font-sans);
  font-size: 17px;
  line-height: 1.7;
  word-break: keep-all;
  overflow-wrap: break-word;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body.admin-bar .site-header { top: 32px; }
img { display: block; max-width: 100%; height: auto; }
figure { margin: 0; }
a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .2em; }
a:hover { color: var(--blue); }
button, input, textarea, select { font: inherit; }
button, [type="button"], [type="submit"] { cursor: pointer; }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3, h4 { letter-spacing: -.035em; line-height: 1.18; }
h1 { font-size: clamp(2.75rem, 7vw, 6.5rem); }
h2 { font-size: clamp(2.05rem, 4.7vw, 4.2rem); }
h3 { font-size: clamp(1.25rem, 2vw, 1.75rem); }

.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.container.narrow, .narrow { max-width: var(--narrow); }
.section { padding: clamp(80px, 11vw, 150px) 0; }
.section-muted { background: var(--gray-50); }
.section-dark { color: var(--white); background: var(--ink); }
.section-heading { max-width: 790px; margin-bottom: clamp(42px, 7vw, 78px); }
.section-heading h2 { margin-bottom: 24px; }
.section-heading > p:last-child { max-width: 680px; color: var(--gray-700); font-size: clamp(1rem, 1.6vw, 1.2rem); }
.section-dark .section-heading > p:last-child { color: #b7b8bd; }
.eyebrow { margin-bottom: 16px; color: var(--blue); font-size: .76rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.section-dark .eyebrow, .brand-story .eyebrow, .contact .eyebrow { color: #91b8ff; }

.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0);
  white-space: nowrap; border: 0;
}
.screen-reader-text:focus, .skip-link:focus {
  z-index: 100000; top: 8px; left: 8px;
  width: auto; height: auto; padding: 12px 18px; margin: 0;
  overflow: visible; clip: auto; color: var(--ink); background: var(--white);
}
:focus-visible { outline: 3px solid #ffbf47; outline-offset: 3px; }

@media (max-width: 782px) {
  body.admin-bar .site-header { top: 46px; }
}

@media (max-width: 640px) {
  body { font-size: 16px; word-break: normal; }
  .container { width: min(calc(100% - 28px), var(--container)); }
  .section { padding: 72px 0; }
}

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