
:root{
  --bg:#ffffff; --fg:#1b1d1f; --muted:#5c6469; --line:#e3e6e8;
  --accent:#1f6feb; --card:#f6f8fa; --warn:#b45309;
}
@media (prefers-color-scheme: dark){
  :root{ --bg:#0f1214; --fg:#e6e9ea; --muted:#9aa4ab; --line:#262b30;
         --accent:#6ea8ff; --card:#161a1e; --warn:#f0b357; }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bg); color:var(--fg);
  font:17px/1.75 -apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic",
       "Noto Sans KR",system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji";
  overflow-wrap:anywhere; word-break:break-word;
}
main{max-width:44rem; margin:0 auto; padding:1rem 1rem 3rem}
.top{max-width:44rem; margin:0 auto; padding:.9rem 1rem; border-bottom:1px solid var(--line);
     display:flex; gap:.4rem; flex-wrap:wrap; font-size:.95rem}
.top .home{font-weight:700; text-decoration:none; color:var(--fg)}
.crumb a{color:var(--muted)}
h1{font-size:1.55rem; line-height:1.35; margin:1.1rem 0 .5rem}
h2{font-size:1.2rem; margin:2rem 0 .5rem; padding-top:.4rem; border-top:1px solid var(--line)}
h3{font-size:1.05rem; margin:1.4rem 0 .4rem}
a{color:var(--accent)}
p,li{font-size:1rem}
.meta{color:var(--muted); font-size:.92rem; margin:.2rem 0 1rem}
.badge{display:inline-block; background:var(--card); border:1px solid var(--line);
       border-radius:999px; padding:.1rem .6rem; margin-right:.4rem; font-size:.85rem}
.badge.ord{font-variant-numeric:tabular-nums}
.tiny{font-size:.82rem; color:var(--muted)}
.warn{color:var(--warn); font-weight:600}
details{background:var(--card); border:1px solid var(--line); border-radius:.6rem;
        padding:.6rem .8rem; margin:.8rem 0}
details summary{cursor:pointer; font-weight:600}
details ul{margin:.5rem 0 .2rem; padding-left:1.2rem}
.toc ul{list-style:none; padding-left:0}
.toc li{margin:.25rem 0}
article{margin-top:1rem}
article ul,article ol{padding-left:1.3rem}
blockquote{margin:1rem 0; padding:.4rem 0 .4rem .9rem; border-left:3px solid var(--line); color:var(--muted)}
code{background:var(--card); padding:.1rem .35rem; border-radius:.3rem; font-size:.9em}
pre{background:var(--card); padding:.8rem; border-radius:.6rem; overflow-x:auto}
pre code{background:none; padding:0}
.tw{overflow-x:auto; -webkit-overflow-scrolling:touch; margin:1rem 0}
table{border-collapse:collapse; width:100%; min-width:30rem; font-size:.95rem}
th,td{white-space:normal}
.tw table td:first-child,.tw table th:first-child{white-space:nowrap}
th,td{border:1px solid var(--line); padding:.45rem .6rem; text-align:left; vertical-align:top}
th{background:var(--card)}
img{max-width:100%; height:auto}
ol.steps,ul.steps{list-style:none; padding-left:0}
.steps li{display:flex; gap:.55rem; align-items:baseline; flex-wrap:wrap;
          padding:.55rem .2rem; border-bottom:1px solid var(--line)}
.steps li.done a{opacity:.55}
.steps li.done .num::after{content:" ✓"; color:var(--accent)}
.num{min-width:1.6rem; color:var(--muted); font-variant-numeric:tabular-nums; font-size:.88rem}
.done{display:block; margin:1.6rem 0; padding:.7rem .8rem; background:var(--card);
      border:1px solid var(--line); border-radius:.6rem; font-size:.95rem; cursor:pointer}
.done input{margin-right:.5rem; width:1.05rem; height:1.05rem; vertical-align:-2px}
.sources ol{padding-left:1.2rem}
.sources li{margin:.35rem 0; font-size:.93rem}
.sources.empty{color:var(--warn)}
.tier{display:inline-block; border-radius:.3rem; padding:0 .4rem; margin-right:.35rem;
      font-size:.78rem; border:1px solid var(--line); background:var(--card)}
.pager{display:flex; justify-content:space-between; gap:1rem; margin:2rem 0 1rem; flex-wrap:wrap}
.pager a{flex:1 1 45%; padding:.7rem .8rem; background:var(--card); border:1px solid var(--line);
         border-radius:.6rem; text-decoration:none; font-size:.95rem}
.pager .next{text-align:right}
.aux{margin:1.6rem 0; padding-top:.8rem; border-top:1px solid var(--line)}
.back{margin-top:1.6rem}
.foot{max-width:44rem; margin:0 auto; padding:1.2rem 1rem 2.5rem; border-top:1px solid var(--line);
      color:var(--muted); font-size:.85rem}
