:root {
  color-scheme: light;
  --paper: #f2f2ef;
  --card: #fafaf8;
  --ink: #1a1a18;
  --gray: #74746f;
  --line: #dcdcd6;
  font-family: -apple-system, BlinkMacSystemFont, "Pretendard", "Apple SD Gothic Neo", sans-serif;
  background: var(--paper);
  color: var(--ink);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; background: var(--paper); }
a { color: inherit; text-underline-offset: 3px; }

.shell { width: min(calc(100% - 40px), 760px); margin: 0 auto; }
.nav { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.wordmark { font: 500 13px/1.2 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .24em; text-decoration: none; }
.nav-links { display: flex; gap: 18px; color: var(--gray); font-size: 13px; }
.hero { min-height: 72vh; display: grid; align-content: center; padding: 80px 0 110px; }
.icon { width: 88px; height: 88px; margin-bottom: 48px; }
.eyebrow { margin: 0 0 18px; color: var(--gray); font: 500 11px/1.3 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .16em; }
h1 { max-width: 640px; margin: 0; font-size: clamp(38px, 7vw, 68px); font-weight: 500; line-height: 1.18; letter-spacing: -.045em; word-break: keep-all; }
.lead { max-width: 560px; margin: 28px 0 0; color: var(--gray); font-size: 17px; line-height: 1.8; word-break: keep-all; overflow-wrap: anywhere; }
.cta { display: inline-flex; min-height: 48px; margin-top: 36px; padding: 0 22px; align-items: center; justify-content: center; border-radius: 24px; background: var(--ink); color: var(--paper); font-size: 14px; text-decoration: none; }
.section { padding: 82px 0; border-top: 1px solid var(--line); }
.section h2, .legal h1 { margin: 0 0 28px; font-size: 30px; font-weight: 500; letter-spacing: -.025em; }
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.step { min-height: 180px; padding: 22px; border-radius: 18px; background: var(--card); }
.step b { display: block; margin-bottom: 36px; color: var(--gray); font: 400 11px/1 ui-monospace, SFMono-Regular, Menlo, monospace; }
.step h3 { margin: 0 0 10px; font-size: 17px; font-weight: 500; }
.step p { margin: 0; color: var(--gray); font-size: 14px; line-height: 1.65; }
.privacy-card { padding: 28px; border-radius: 20px; background: var(--ink); color: var(--paper); }
.privacy-card p { max-width: 590px; margin: 0; font-size: 18px; line-height: 1.75; }

.legal { padding: 72px 0 120px; }
.legal .updated { margin: -14px 0 44px; color: var(--gray); font-size: 13px; }
.legal h2 { margin: 48px 0 14px; font-size: 20px; font-weight: 500; }
.legal h3 { margin: 28px 0 10px; font-size: 16px; font-weight: 500; }
.legal p, .legal li { color: #4f4f4b; font-size: 15px; line-height: 1.8; word-break: keep-all; overflow-wrap: anywhere; }
.legal ul { padding-left: 22px; }
.legal table { width: 100%; border-collapse: collapse; margin: 18px 0 24px; font-size: 14px; }
.legal th, .legal td { padding: 14px 12px; border: 1px solid var(--line); text-align: left; vertical-align: top; line-height: 1.65; }
.legal th { background: var(--card); font-weight: 500; }
.notice { padding: 18px; border-radius: 14px; background: var(--card); }
.english { margin-top: 72px; padding-top: 64px; border-top: 1px solid var(--line); }
footer { padding: 36px 0 48px; border-top: 1px solid var(--line); color: var(--gray); font-size: 12px; }
.footer-row { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.footer-links { display: flex; gap: 16px; }

@media (max-width: 620px) {
  .shell { width: min(calc(100% - 28px), 760px); }
  .nav { min-height: 64px; }
  .nav-links { gap: 12px; }
  .hero { min-height: 68vh; padding: 64px 0 84px; }
  .icon { width: 72px; height: 72px; margin-bottom: 38px; }
  .steps { grid-template-columns: 1fr; }
  .step { min-height: auto; }
  .step b { margin-bottom: 24px; }
  .legal { padding-top: 52px; }
  .legal table { display: block; overflow-x: auto; }
}
