@font-face{
  font-family:'Pretendard';
  src:url('fonts/Pretendard-Regular.woff2') format('woff2');
  font-weight:400;font-display:swap;
}
@font-face{
  font-family:'Pretendard';
  src:url('fonts/Pretendard-SemiBold.woff2') format('woff2');
  font-weight:600;font-display:swap;
}
@font-face{
  font-family:'Pretendard';
  src:url('fonts/Pretendard-Bold.woff2') format('woff2');
  font-weight:700;font-display:swap;
}

:root{
  --ink:#1a1f2e;
  --accent:#3b4a8f;
  --gray:#6b7280;
  --amber:#b45309;
  --line:#e5e7eb;
  --bg:#ffffff;
  --callout-bg:#f6f7fb;
  --callout-border:#dfe3f0;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:'Pretendard','Apple SD Gothic Neo','Malgun Gothic',sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.75;
  font-size:16px;
  overflow-x:hidden;
}

.cover{
  padding:56px 22px 40px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,#fbfcfe 0%,#fff 100%);
}
.cover-eyebrow{
  font-size:12px;letter-spacing:2px;color:var(--gray);
  font-weight:600;margin-bottom:22px;
}
.cover-title{
  font-size:clamp(26px,7vw,40px);
  line-height:1.22;font-weight:700;color:var(--accent);
  margin:0 0 14px;letter-spacing:-0.4px;
}
.cover-sub{
  font-size:clamp(15px,4vw,18px);color:var(--gray);
  line-height:1.55;font-weight:400;
}
.cover-rule{
  width:56px;height:3px;background:var(--accent);
  margin:26px 0 18px;
}
.cover-meta{
  display:flex;gap:28px;font-size:13px;color:var(--gray);
}

main{
  max-width:760px;
  margin:0 auto;
  padding:8px 20px 60px;
}

h1{display:none} h2{
  font-size:clamp(21px,5.4vw,26px);
  font-weight:700;color:var(--ink);
  margin:52px 0 6px;padding-top:10px;
  line-height:1.3;letter-spacing:-0.3px;
  border-top:1px solid var(--line);
}
h2:first-of-type{border-top:none;margin-top:0}
h3{
  font-size:clamp(17px,4.4vw,19px);
  font-weight:600;color:var(--ink);
  margin:30px 0 8px;line-height:1.4;
}

p{margin:0 0 16px;font-size:15.5px}
strong{font-weight:600}
em{font-style:italic}
code{
  font-family:'JetBrains Mono','D2Coding',monospace;
  font-size:0.88em;background:#f3f4f6;
  padding:2px 6px;border-radius:4px;
  word-break:break-word;
}
a{color:var(--accent);text-decoration:none;word-break:break-all}
a:hover{text-decoration:underline}

ul,ol{margin:0 0 18px;padding-left:24px}
li{margin-bottom:8px;font-size:15.5px;line-height:1.72}
li::marker{color:var(--accent);font-weight:600}

.callout{
  background:var(--callout-bg);
  border:1px solid var(--callout-border);
  border-left:4px solid var(--accent);
  border-radius:8px;
  padding:18px 20px 14px;
  margin:14px 0 26px;
}
.callout-label{
  font-size:12px;font-weight:700;letter-spacing:1.5px;
  color:var(--accent);margin-bottom:12px;
}
.callout ol{margin:0;padding-left:20px}
.callout li{margin-bottom:10px;font-size:15px;line-height:1.7}
.callout li:last-child{margin-bottom:0}

figure{
  margin:26px 0;
  border:1px solid var(--line);
  border-radius:8px;
  overflow:hidden;
  background:#fff;
}
figure img{
  display:block;width:100%;height:auto;
  padding:14px;
}
figcaption{
  font-size:13px;color:var(--gray);
  padding:10px 16px;border-top:1px solid var(--line);
  line-height:1.5;background:#fafbfc;
}

.tbl-wrap{
  overflow-x:auto;
  margin:20px 0 24px;
  border:1px solid var(--line);
  border-radius:8px;
  -webkit-overflow-scrolling:touch;
}
table{
  width:100%;border-collapse:collapse;
  font-size:14px;min-width:480px;
}
th{
  background:var(--accent);color:#fff;
  text-align:left;padding:11px 14px;
  font-weight:600;font-size:13px;
  white-space:nowrap;
}
td{
  padding:11px 14px;
  border-top:1px solid var(--line);
  vertical-align:top;line-height:1.6;
}
tr:nth-child(even) td{background:#fafbfc}

.sources{
  border:1px solid var(--line);
  border-radius:8px;margin:16px 0 32px;
}
.sources summary{
  cursor:pointer;padding:16px 18px;
  font-weight:600;font-size:14px;color:var(--accent);
  list-style:none;position:relative;
}
.sources summary::-webkit-details-marker{display:none}
.sources summary::after{
  content:'+';position:absolute;right:18px;
  font-size:18px;font-weight:400;color:var(--gray);
}
.sources[open] summary::after{content:'–'}
.src-list{
  padding:0 18px 16px;max-height:none;
  font-size:12.5px;line-height:1.7;color:var(--gray);
}
.src-item{
  padding:6px 0;border-bottom:1px solid #f0f0f0;
  word-break:break-all;
}

hr{
  border:none;border-top:1px solid var(--line);
  margin:44px 0 0;
}
.foot{
  max-width:760px;margin:0 auto;
  padding:20px;font-size:12px;color:var(--gray);
  border-top:1px solid var(--line);
}

@media (min-width:640px){
  .cover{padding:80px 40px 56px}
  main{padding:8px 40px 80px}
  body{font-size:17px}
  p,li{font-size:16px}
}
