* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--canvas);
  font-family: Pretendard, "Noto Sans KR", "Apple SD Gothic Neo", system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.65;
  word-break: keep-all;
}
button, input, select, textarea { font: inherit; }
button { color: inherit; }
a { color: inherit; }
img { display: block; max-width: 100%; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { line-height: 1.2; text-wrap: balance; }
h1 { font-size: clamp(2.5rem, 6vw, 4rem); letter-spacing: -0.045em; }
h2 { margin-bottom: var(--space-3); font-size: clamp(1.75rem, 4vw, 2.375rem); letter-spacing: -0.035em; }
h3 { font-size: 1.25rem; }
fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
legend { width: 100%; margin-bottom: var(--space-2); font-size: 1.35rem; font-weight: 750; }
:focus-visible { outline: 3px solid rgba(47, 111, 237, 0.38); outline-offset: 3px; }
.skip-link { position: fixed; z-index: 100; top: 8px; left: 8px; padding: 8px 12px; background: var(--ink); color: #fff; transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }
.loading-screen { min-height: 100vh; display: grid; place-items: center; color: var(--ink-muted); }
.eyebrow { margin-bottom: var(--space-2); color: var(--primary); font-size: .75rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.button { min-height: 44px; padding: 10px 16px; border: 1px solid transparent; border-radius: var(--radius-md); font-weight: 700; cursor: pointer; }
.button:disabled { cursor: not-allowed; opacity: .55; }
.button.primary { color: #fff; background: var(--primary); }
.button.primary:hover { background: var(--primary-dark); }
.button.secondary { border-color: var(--hairline); background: var(--surface); }
.button.text-button { background: transparent; color: var(--primary); }
.button.danger-button { border-color: #e3b8b5; background: #fff; color: var(--danger); }
.tone-info { color: #2051ad; background: #eaf0ff; }
.tone-success { color: #0f6658; background: #e6f5f1; }
.tone-warning { color: #75490c; background: #fff3d8; }
.tone-danger { color: #942c27; background: #fcebea; }
