:root{--bg: #f7f7f9;--surface: #ffffff;--text: #1c1c28;--muted: #6b7280;--border: #e5e7eb;--accent: #1d4ed8;--accent-weak: #eff4ff;--code-bg: #1e2230;--code-text: #e6e9f0;--radius: 12px;--maxw: 760px;--font: "Pretendard", -apple-system, BlinkMacSystemFont, "Segoe UI", "Malgun Gothic", "Apple SD Gothic Neo", system-ui, sans-serif;--mono: "JetBrains Mono", "Cascadia Code", ui-monospace, "D2Coding", Consolas, monospace}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);line-height:1.7;font-size:17px;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;height:auto}.wrap{max-width:var(--maxw);margin:0 auto;padding-left:20px;padding-right:20px}.site-header{position:sticky;top:0;z-index:10;background:#ffffffd1;backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid var(--border)}.site-header .wrap{padding-top:14px;padding-bottom:14px;display:flex;align-items:center;justify-content:space-between}.site-title{font-weight:800;font-size:18px;color:var(--text);letter-spacing:-.02em}.site-title:hover{text-decoration:none;color:var(--accent)}.site-nav a{color:var(--muted);font-size:14px;margin-left:18px}main.wrap{padding-top:44px;padding-bottom:80px}.post-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.post-card{display:block;padding:22px 24px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s,transform .15s,box-shadow .15s}.post-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 10px 28px #1d4ed817;text-decoration:none}.post-card h2{margin:0 0 6px;font-size:20px;letter-spacing:-.01em;color:var(--text)}.post-card p{margin:0 0 14px;color:var(--muted);font-size:15px}.meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px;color:var(--muted)}.tag{background:var(--accent-weak);color:var(--accent);padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600}.dot{color:var(--border)}.cat-section{margin-bottom:44px}.cat-title{font-size:14px;font-weight:700;color:var(--muted);letter-spacing:.04em;margin:0 0 16px;padding-bottom:8px;border-bottom:1px solid var(--border)}article h1{font-size:33px;line-height:1.25;letter-spacing:-.02em;margin:0 0 14px}article .article-meta{margin:0 0 30px}article h2{font-size:24px;margin:46px 0 14px;letter-spacing:-.01em;padding-bottom:6px;border-bottom:1px solid var(--border)}article h3{font-size:19px;margin:30px 0 10px}article p{margin:16px 0}article img{border-radius:var(--radius);border:1px solid var(--border);display:block;margin:26px auto}article ul,article ol{padding-left:22px}article li{margin:6px 0}article blockquote{margin:22px 0;padding:12px 18px;border-left:3px solid var(--accent);background:var(--accent-weak);color:#334155;border-radius:0 8px 8px 0}article :not(pre)>code{background:#eef0f4;color:#b3266b;padding:2px 6px;border-radius:6px;font-family:var(--mono);font-size:.88em}article pre{background:var(--code-bg);color:var(--code-text);padding:18px;border-radius:var(--radius);overflow-x:auto;font-size:14px;line-height:1.6;margin:22px 0}article pre code{font-family:var(--mono);background:none;color:inherit;padding:0}article table{border-collapse:collapse;width:100%;margin:22px 0;font-size:14px;display:block;overflow-x:auto}article th,article td{border:1px solid var(--border);padding:8px 12px;text-align:left}article th{background:#f3f4f6;font-weight:700}article hr{border:none;border-top:1px solid var(--border);margin:38px 0}.badge{font-size:12px;font-weight:700;padding:2px 9px;border-radius:6px;vertical-align:middle}.badge-clean{background:#dcfce7;color:#166534}.badge-masked{background:#fef9c3;color:#854d0e}.badge-review{background:#fee2e2;color:#991b1b}.source-note{font-size:13px;color:var(--muted);margin:-6px 0 26px}.site-footer{border-top:1px solid var(--border);color:var(--muted);font-size:13px}.site-footer .wrap{padding-top:24px;padding-bottom:24px}@media(max-width:640px){body{font-size:16px}article h1{font-size:27px}main.wrap{padding-top:28px;padding-bottom:60px}.post-card{padding:18px}}
