*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: 'Pretendard Variable', Pretendard, -apple-system, BlinkMacSystemFont, 'Apple SD Gothic Neo', 'Noto Sans KR', sans-serif;
  font-size: 15px;
  line-height: 1.55;
  color: #1b1b1b;
  background: #fff;
  -webkit-font-smoothing: antialiased;
  word-break: keep-all;
}
img, svg { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; background: none; border: 0; cursor: pointer; color: inherit; }
input, select, textarea { font: inherit; color: inherit; }
ul, ol { list-style: none; }
h1, h2, h3, h4, h5, h6 { font-weight: 700; line-height: 1.25; }
:root {
  --green: #09a348;
  --green-dark: #07823a;
  --green-soft: #e6f6ec;
  --border: #e5e7eb;
  --text-muted: #6b7280;
  --bg-dark: #111111;
  --bg-soft: #f6f7f9;
  --radius: 10px;
  --max: 1200px;
}
.skip-link {
  position: absolute; top: -40px; left: 0; background: #000; color: #fff; padding: 8px 14px; z-index: 100;
}
.skip-link:focus { top: 0; }
.container { max-width: var(--max); margin: 0 auto; padding: 0 1.25rem; }
.reveal { opacity: 0; transform: translateY(14px); transition: opacity .6s ease, transform .6s ease; }
.reveal.is-in { opacity: 1; transform: none; }
