*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary: #0a0a0b;--bg-secondary: #111113;--bg-tertiary: #18181b;--bg-hover: #1f1f23;--border: #27272a;--border-subtle: #1e1e21;--text-primary: #fafafa;--text-secondary: #a1a1aa;--text-tertiary: #71717a;--accent: #10b981;--accent-dim: rgba(16, 185, 129, .15);--accent-hover: #059669}html{font-family:Inter,Noto Sans SC,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;background:var(--bg-primary);color:var(--text-primary);font-size:14px;line-height:1.6}body{min-height:100vh}::selection{background:var(--accent-dim);color:var(--text-primary)}a{color:var(--accent);text-decoration:none;transition:color .15s}a:hover{color:var(--accent-hover)}.container{max-width:1000px;margin:0 auto;padding:0 24px}header{position:sticky;top:0;z-index:100;background:#0a0a0bd9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle)}.header-inner{display:flex;align-items:center;justify-content:space-between;height:64px}.logo{display:flex;align-items:center;gap:12px;font-weight:600;font-size:18px;letter-spacing:-.02em}.logo-icon{width:36px;height:36px;background:linear-gradient(135deg,#10b981,#06b6d4);border-radius:8px;display:flex;align-items:center;justify-content:center}.logo-icon svg{width:20px;height:20px;stroke:#000}.header-right{display:flex;align-items:center;gap:16px}.date-badge{font-size:12px;color:var(--text-tertiary);padding:6px 12px;background:var(--bg-tertiary);border-radius:6px;border:1px solid var(--border-subtle)}.github-link{display:flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:13px;transition:color .15s}.github-link:hover{color:var(--text-primary)}.nav-link{color:var(--text-secondary);font-size:13px;transition:color .15s}.nav-link:hover{color:var(--text-primary)}main{padding:48px 0}footer{border-top:1px solid var(--border-subtle);padding:32px 0;margin-top:48px}.footer-inner{display:flex;align-items:center;justify-content:space-between}.footer-text{font-size:13px;color:var(--text-tertiary)}.footer-links{display:flex;gap:24px}.footer-link{font-size:13px;color:var(--text-tertiary);text-decoration:none;transition:color .15s}.footer-link:hover{color:var(--text-primary)}.markdown-content h1{font-size:28px;font-weight:700;margin-bottom:16px;color:var(--text-primary)}.markdown-content h3{font-size:16px;font-weight:600;margin:24px 0 16px;color:var(--text-primary);display:flex;align-items:center;gap:10px}.markdown-content h3:before{content:"";width:4px;height:18px;background:var(--accent);border-radius:2px}.markdown-content h4{font-size:14px;font-weight:600;margin:20px 0 12px;color:var(--text-primary)}.markdown-content p{margin-bottom:12px;color:var(--text-secondary)}.markdown-content strong{color:var(--text-primary);font-weight:600}.markdown-content em{color:var(--text-tertiary)}.markdown-content ul{margin-bottom:20px;padding-left:24px}.markdown-content li{margin-bottom:12px;color:var(--text-secondary)}.markdown-content li::marker{color:var(--accent)}.markdown-content a{color:var(--accent);border-bottom:1px solid transparent;transition:border-color .15s}.markdown-content a:hover{border-bottom-color:var(--accent)}.markdown-content hr{border:none;border-top:1px solid var(--border-subtle);margin:32px 0}.markdown-content blockquote{border-left:3px solid var(--accent);padding-left:16px;margin:20px 0;color:var(--text-tertiary)}.markdown-content code{background:var(--bg-tertiary);padding:3px 8px;border-radius:4px;font-family:SF Mono,Monaco,Cascadia Code,monospace;font-size:.9em;color:var(--text-primary)}.markdown-content pre{background:var(--bg-tertiary);padding:16px;border-radius:8px;overflow-x:auto;margin:16px 0;border:1px solid var(--border-subtle)}.markdown-content pre code{background:none;padding:0;color:var(--text-secondary)}@media (max-width: 768px){.container{padding:0 16px}.header-inner{height:56px}.logo{font-size:16px}.logo-icon{width:32px;height:32px}.footer-inner{flex-direction:column;gap:16px;text-align:center}.header-right{gap:8px}.date-badge{display:none}}
