:root{--bg:#f6f4ef;--card:#ffffff;--text:#1d2633;--sub:#5d6875;--line:#e3e0d8;--acc:#1f9e86;--acc-soft:#e3f4ef}
@media (prefers-color-scheme:dark){:root{--bg:#141a22;--card:#1c242e;--text:#eef1f4;--sub:#9aa5b1;--line:#2b3542;--acc:#5fd3b5;--acc-soft:#1d3a35}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Noto Sans KR","Malgun Gothic",sans-serif;line-height:1.7;word-break:keep-all;overflow-wrap:anywhere}
.wrap{max-width:720px;margin:0 auto;padding:0 16px}
header{padding:28px 0 8px}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:17px;color:var(--text);text-decoration:none}
.brand .dot{width:10px;height:10px;border-radius:50%;background:var(--acc)}
nav{display:flex;gap:16px;margin-top:6px;font-size:14px}
nav a{color:var(--sub);text-decoration:none}
nav a:hover{color:var(--acc)}
h1{font-size:30px;line-height:1.3;margin:36px 0 10px;letter-spacing:-.02em}
h2{font-size:19px;margin:34px 0 10px;letter-spacing:-.01em}
p{margin:0 0 12px}
.lead{color:var(--sub);font-size:16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px;margin:18px 0}
.app{display:flex;gap:16px;align-items:flex-start}
.app img{width:72px;height:72px;border-radius:18px;flex:none}
.app h3{margin:0 0 4px;font-size:18px}
.app p{color:var(--sub);font-size:14px;margin:0 0 10px}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tag{font-size:12px;padding:3px 10px;border-radius:99px;background:var(--acc-soft);color:var(--acc);font-weight:600}
.btn{display:inline-block;margin-top:12px;padding:10px 16px;border-radius:12px;background:var(--acc);color:#fff;text-decoration:none;font-weight:600;font-size:14px}
@media (prefers-color-scheme:dark){.btn{color:#10201c}}
ul{padding-left:20px;margin:0 0 12px}
li{margin:4px 0}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:9px 6px;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--sub);font-weight:600;width:34%}
.muted{color:var(--sub);font-size:13px}
footer{margin:48px 0 28px;padding-top:18px;border-top:1px solid var(--line);color:var(--sub);font-size:12.5px;line-height:1.8}
footer a{color:var(--sub)}
.toc{font-size:14px}
.toc a{color:var(--acc);text-decoration:none;white-space:nowrap}
@media (max-width:480px){h1{font-size:25px}.app img{width:60px;height:60px;border-radius:15px}}
