:root {
  color-scheme: light;
  --ink: #1d2521;
  --muted: #617068;
  --line: #d9e0db;
  --paper: #fbfcfa;
  --wash: #edf3ef;
  --accent: #285c45;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.72;
}

html:lang(ko) { word-break: keep-all; overflow-wrap: anywhere; }

header, main, footer { width: min(760px, calc(100% - 40px)); margin-inline: auto; }
header { padding: 28px 0 18px; border-bottom: 1px solid var(--line); }
main { padding: 42px 0 64px; }
footer { padding: 22px 0 34px; border-top: 1px solid var(--line); color: var(--muted); font-size: .86rem; }

nav { display: flex; flex-wrap: wrap; gap: 10px 18px; align-items: center; }
nav a:first-child { margin-right: auto; font-weight: 750; color: var(--ink); text-decoration: none; }
a { color: var(--accent); text-underline-offset: 3px; }
h1 { margin: 0; font-size: clamp(2rem, 7vw, 3.3rem); line-height: 1.14; letter-spacing: -.035em; }
h2 { margin: 2.25rem 0 .55rem; font-size: 1.28rem; line-height: 1.35; }
p, ul { margin: .7rem 0; }
ul { padding-left: 1.25rem; }
.eyebrow { color: var(--accent); font-size: .83rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.lede { max-width: 640px; color: var(--muted); font-size: 1.08rem; }
.meta { color: var(--muted); font-size: .86rem; }
.cards { display: grid; gap: 14px; margin-top: 28px; }
.card { display: block; padding: 20px; border: 1px solid var(--line); border-radius: 14px; background: white; text-decoration: none; }
.card strong { display: block; color: var(--ink); font-size: 1.05rem; }
.card span { color: var(--muted); font-size: .92rem; }
.notice { margin: 1.4rem 0; padding: 16px 18px; border-radius: 12px; background: var(--wash); }
table { width: 100%; min-width: 38rem; border-collapse: collapse; font-size: .9rem; }
th, td { padding: 10px; border: 1px solid var(--line); vertical-align: top; text-align: left; }
th { background: var(--wash); }
.table-wrap { overflow-x: auto; }
.table-wrap:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.table-hint { display: none; color: var(--muted); font-size: .86rem; }

@media (max-width: 648px) {
  .table-hint { display: block; }
}

@media (max-width: 560px) {
  header, main, footer { width: min(100% - 28px, 760px); }
  header { padding-top: 20px; }
  main { padding-top: 30px; }
}
