:root{--bg: #ffffff;--bg-soft: #f6f7fb;--text: #1a2233;--text-soft: #5a6478;--accent: #4f46e5;--accent-dark: #3730a3;--border: #e5e8f0;--code-bg: #0f172a;--code-text: #e2e8f0;--radius: 10px;--maxw: 1080px;--maxw-article: 760px;--font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, "Cascadia Code", Consolas, monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font);color:var(--text);background:var(--bg);line-height:1.65;font-size:17px;-webkit-font-smoothing:antialiased}img{max-width:100%;height:auto}a{color:var(--accent)}a:hover{color:var(--accent-dark)}.container{max-width:var(--maxw);margin:0 auto;padding:0 20px}.site-header{border-bottom:1px solid var(--border);background:var(--bg);position:sticky;top:0;z-index:50}.site-header .inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;max-width:var(--maxw);margin:0 auto;flex-wrap:wrap}.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);font-weight:800;font-size:1.25rem;letter-spacing:-.02em}.logo svg{flex-shrink:0}.logo .logo-suffix{font-style:normal;font-weight:600;color:var(--accent)}.main-nav{display:flex;gap:4px;flex-wrap:wrap}.main-nav a{text-decoration:none;color:var(--text-soft);font-size:.9rem;font-weight:600;padding:6px 10px;border-radius:6px}.main-nav a:hover,.main-nav a.active{color:var(--accent);background:var(--bg-soft)}.hero{background:linear-gradient(180deg,var(--bg-soft),var(--bg));padding:56px 0 40px}.hero h1{font-size:clamp(1.8rem,4vw,2.6rem);margin:0 0 12px;letter-spacing:-.03em;line-height:1.2}.hero p{color:var(--text-soft);font-size:1.1rem;max-width:640px;margin:0}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}.card{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--bg);display:flex;flex-direction:column;transition:box-shadow .15s,transform .15s}.card:hover{box-shadow:0 10px 28px #1a22331f;transform:translateY(-3px)}.card-media{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:var(--bg-soft)}.card-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}.card:hover .card-media img{transform:scale(1.04)}.card-badge{position:absolute;left:10px;top:10px;color:#fff;font-size:.7rem;font-weight:700;padding:4px 10px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em;box-shadow:0 2px 8px #0003}.card-body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:8px;flex:1}.card h3{margin:0;font-size:1.05rem;line-height:1.35}.card h3 a{text-decoration:none;color:var(--text)}.card h3 a:hover{color:var(--accent)}.card p{margin:0;color:var(--text-soft);font-size:.9rem;flex:1}.card-meta{font-size:.78rem;color:var(--text-soft);font-weight:600}.card-featured{display:grid;grid-template-columns:1.3fr 1fr;gap:0}.card-featured .card-media{aspect-ratio:auto;height:100%}.card-featured .card-body{justify-content:center;padding:28px 32px}.card-featured h3{font-size:1.6rem;line-height:1.3}.card-featured p{font-size:1rem}@media(max-width:720px){.card-featured{grid-template-columns:1fr}.card-featured .card-media{aspect-ratio:16/9}}.filter-pills{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 8px}.pill{display:inline-block;padding:7px 14px;border-radius:999px;font-size:.85rem;font-weight:600;text-decoration:none;color:var(--text);background:var(--bg-soft);border:1px solid var(--border)}.pill:hover{border-color:var(--accent);color:var(--accent)}.pill-solid{background:var(--accent);color:#fff;border-color:var(--accent)}.pill-solid:hover{color:#fff;opacity:.9}.section{padding:40px 0}.section h2.section-title{font-size:1.4rem;margin:0 0 8px;letter-spacing:-.02em}.section-link{text-decoration:none;color:var(--text)}.section-link:hover{color:var(--accent)}.section-desc{color:var(--text-soft);margin:0 0 20px;max-width:680px}.more-link{margin:16px 0 0;font-weight:600}.more-link a{text-decoration:none}.toc{border:1px solid var(--border);background:var(--bg-soft);border-radius:var(--radius);padding:16px 20px;margin:0 0 24px;font-size:.92rem}.toc strong{display:block;margin-bottom:6px}.toc ol{margin:0;padding-left:1.2em}.toc li{margin:3px 0}.toc a{text-decoration:none}.hub-cta{border-top:1px solid var(--border);padding-top:18px;margin-top:28px;font-weight:600}.author-box{display:flex;gap:14px;align-items:flex-start;margin-top:20px;padding:18px;background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius)}.author-box .author-avatar{flex-shrink:0}.author-box strong{display:block;margin-bottom:4px}.author-box p{margin:0;color:var(--text-soft);font-size:.9rem}.comments{max-width:var(--maxw-article);margin:0 auto;padding:0 20px 48px}.comments h2{font-size:1.25rem;margin-bottom:16px}.article-header .cover-img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius);margin-top:16px}.article-header{max-width:var(--maxw-article);margin:0 auto;padding:40px 20px 0}.breadcrumbs{font-size:.85rem;color:var(--text-soft);margin-bottom:12px}.breadcrumbs a{color:var(--text-soft);text-decoration:none}.breadcrumbs a:hover{color:var(--accent)}.article-header h1{font-size:clamp(1.7rem,4vw,2.3rem);line-height:1.25;letter-spacing:-.03em;margin:0 0 10px}.article-meta{color:var(--text-soft);font-size:.88rem;margin-bottom:8px}.article-body{max-width:var(--maxw-article);margin:0 auto;padding:12px 20px 40px}.article-body h2{font-size:1.45rem;margin:2em 0 .6em;letter-spacing:-.02em;scroll-margin-top:80px}.article-body h3{font-size:1.15rem;margin:1.6em 0 .5em;scroll-margin-top:80px}.article-body p{margin:0 0 1em}.article-body ul,.article-body ol{padding-left:1.4em;margin:0 0 1.2em}.article-body li{margin-bottom:.4em}.article-body li::marker{color:var(--accent);font-weight:700}.article-body strong{color:var(--text)}.article-body blockquote{margin:1.2em 0;padding:12px 18px;border-left:4px solid var(--accent);background:var(--bg-soft);border-radius:0 8px 8px 0;color:var(--text-soft)}.article-body table{width:100%;border-collapse:collapse;margin:1.2em 0;font-size:.92rem;display:block;overflow-x:auto}.article-body th,.article-body td{border:1px solid var(--border);padding:9px 12px;text-align:left}.article-body th{background:var(--bg-soft);font-weight:700}.article-body pre{background:var(--code-bg);color:var(--code-text);padding:16px;border-radius:8px;overflow-x:auto;font-size:.85rem;line-height:1.5;margin:1.2em 0}.article-body code{font-family:var(--font-mono)}.article-body p code,.article-body li code{background:var(--bg-soft);border:1px solid var(--border);padding:1px 6px;border-radius:5px;font-size:.85em;color:var(--accent-dark)}.article-body img{border-radius:var(--radius);margin:.4em 0}.ad-slot{margin:28px auto;text-align:center;min-height:90px}.ad-slot .ad-label{font-size:.68rem;color:var(--text-soft);text-transform:uppercase;letter-spacing:.08em}.related{max-width:var(--maxw-article);margin:0 auto;padding:0 20px 48px}.related h2{font-size:1.25rem}.site-footer{border-top:1px solid var(--border);background:var(--bg-soft);margin-top:40px}.site-footer .inner{max-width:var(--maxw);margin:0 auto;padding:32px 20px;display:flex;flex-wrap:wrap;gap:32px;justify-content:space-between;font-size:.88rem;color:var(--text-soft)}.site-footer a{color:var(--text-soft);text-decoration:none}.site-footer a:hover{color:var(--accent)}.footer-col strong{color:var(--text);display:block;margin-bottom:8px}.footer-links{display:flex;flex-direction:column;gap:6px}.page-body{max-width:var(--maxw-article);margin:0 auto;padding:40px 20px 60px}.page-body h1{letter-spacing:-.03em}@media(max-width:640px){body{font-size:16px}.main-nav{gap:0}.main-nav a{padding:5px 7px;font-size:.82rem}}
