/* ===== PDFinator BLOG CSS — shared across all article pages ===== */
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:#0f0f0f;color:#d4d4d4;min-height:100vh;line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:#8b85ff;text-decoration:none}
a:hover{color:#aea9ff;text-decoration:underline}
img{max-width:100%;height:auto;display:block}

/* nav */
.top-nav{background:#1a1a1a;border-bottom:1px solid #333;padding:12px 16px;display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;position:sticky;top:0;z-index:100}
.top-nav a{color:#aaa;font-size:.85rem;font-weight:500;padding:6px 8px;border-radius:4px;transition:color .2s,background .2s}
.top-nav a:hover{color:#e0e0e0;background:#222;text-decoration:none}
.top-nav a.active{color:#6c63ff;font-weight:600}
.top-nav .nav-logo{font-weight:700;color:#e0e0e0;font-size:1rem;margin-right:16px}
.top-nav .nav-sep{color:#444}
@media(max-width:767px){.top-nav{position:static;gap:4px;padding:10px 8px;overflow-x:auto;flex-wrap:nowrap;justify-content:flex-start}.top-nav a{font-size:.75rem;white-space:nowrap;padding:4px 6px}.top-nav .nav-sep{display:none}.top-nav .nav-logo{font-size:.9rem;margin-right:8px;flex-shrink:0}}

/* shell */
.shell{max-width:920px;margin:0 auto;padding:24px 20px 80px}
.crumb{color:#888;font-size:.85rem;margin-bottom:18px}
.crumb a{color:#888}
.crumb a:hover{color:#bbb}

/* article */
article header{margin-bottom:32px}
article h1{font-size:clamp(1.7rem,4vw,2.4rem);color:#fff;line-height:1.2;margin-bottom:12px;font-weight:700;letter-spacing:-.01em}
article .meta{color:#888;font-size:.85rem;margin-bottom:18px}
article .meta span+span::before{content:"·";margin:0 8px;color:#555}
article .lead{font-size:1.1rem;color:#bdbdbd;border-left:3px solid #6c63ff;padding:6px 0 6px 16px;margin:18px 0}
article .hero{margin:24px 0 32px;background:#1a1a1a;border:1px solid #2a2a2a;border-radius:12px;padding:28px;display:flex;justify-content:center;align-items:center}
article .hero img{max-height:240px;object-fit:contain;filter:none}
article h2{font-size:1.55rem;color:#fff;margin:36px 0 14px;font-weight:700;letter-spacing:-.01em}
article h3{font-size:1.2rem;color:#fff;margin:24px 0 10px;font-weight:600}
article p{margin:0 0 14px;color:#cfcfcf}
article ul,article ol{margin:0 0 16px 22px;color:#cfcfcf}
article li{margin-bottom:6px}
article ul li::marker{color:#6c63ff}
article blockquote{border-left:3px solid #6c63ff;padding:10px 16px;margin:20px 0;background:#161616;color:#bbb;font-style:italic;border-radius:0 6px 6px 0}
article code{background:#1f1f1f;border:1px solid #2c2c2c;color:#e6c07b;padding:2px 6px;border-radius:4px;font-size:.92em;font-family:'Consolas','Monaco',monospace}
article pre{background:#161616;border:1px solid #2a2a2a;border-radius:8px;padding:14px;overflow-x:auto;margin:16px 0}
article pre code{background:none;border:none;padding:0;color:#d4d4d4}
article .callout{background:#161827;border:1px solid #2a2d4a;border-radius:8px;padding:16px 18px;margin:18px 0}
article .callout strong{color:#aea9ff}
article .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1faddr));gap:16px;margin:18px 0}
article .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin:18px 0}
article .card{background:#1a1a1a;border:1px solid #2a2a2a;border-radius:10px;padding:18px}
article .card h3{margin-top:0;font-size:1.05rem}
article .card p{font-size:.92rem;color:#bbb;margin:0}

/* TOC */
.toc{background:#161616;border:1px solid #2a2a2a;border-radius:10px;padding:18px 20px;margin:24px 0 32px}
.toc h2{font-size:.95rem;text-transform:uppercase;letter-spacing:.06em;color:#aea9ff;margin:0 0 10px}
.toc ol{margin:0 0 0 20px;color:#bbb}
.toc li{margin-bottom:4px;font-size:.95rem}
.toc a{color:#bbb}
.toc a:hover{color:#fff}

/* article footer */
.share{display:flex;gap:10px;align-items:center;margin:32px 0 18px;padding-top:18px;border-top:1px solid #2a2a2a;color:#999;font-size:.9rem;flex-wrap:wrap}
.share a{background:#1a1a1a;border:1px solid #2a2a2a;color:#bbb;padding:6px 12px;border-radius:6px;font-size:.85rem}
.share a:hover{background:#222;color:#fff;text-decoration:none}

/* related */
.related{margin-top:48px;padding-top:32px;border-top:1px solid #2a2a2a}
.related h2{color:#fff;font-size:1.2rem;margin-bottom:16px}
.related-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.related-card{background:#1a1a1a;border:1px solid #2a2a2a;border-radius:10px;padding:18px;display:block;color:inherit;transition:border-color .2s,transform .2s}
.related-card:hover{border-color:#6c63ff;text-decoration:none;transform:translateY(-2px)}
.related-card .tag{display:inline-block;background:#262432;color:#aea9ff;font-size:.7rem;padding:3px 8px;border-radius:4px;margin-bottom:8px;text-transform:uppercase;letter-spacing:.05em}
.related-card h3{font-size:1.02rem;color:#fff;margin:0 0 6px;font-weight:600}
.related-card p{color:#999;font-size:.88rem;margin:0}

/* blog index */
.blog-hero{text-align:center;padding:30px 20px 20px;border-bottom:1px solid #2a2a2a;margin-bottom:32px}
.blog-hero h1{color:#fff;font-size:clamp(1.9rem,4vw,2.6rem);margin-bottom:10px}
.blog-hero p{color:#aaa;font-size:1.05rem;max-width:640px;margin:0 auto}
.post-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.post-card{background:#1a1a1a;border:1px solid #2a2a2a;border-radius:12px;padding:0;overflow:hidden;transition:border-color .2s,transform .2s;display:flex;flex-direction:column}
.post-card:hover{border-color:#6c63ff;text-decoration:none;transform:translateY(-2px)}
.post-card .thumb{background:#13131a;padding:20px;display:flex;justify-content:center;align-items:center;min-height:140px;border-bottom:1px solid #232330}
.post-card .thumb img{max-height:110px;object-fit:contain}
.post-card .body{padding:18px 20px 20px;flex:1;display:flex;flex-direction:column}
.post-card .tag{display:inline-block;background:#262432;color:#aea9ff;font-size:.7rem;padding:3px 8px;border-radius:4px;margin-bottom:10px;text-transform:uppercase;letter-spacing:.05em;align-self:flex-start}
.post-card h2{color:#fff;font-size:1.08rem;margin:0 0 8px;font-weight:600;line-height:1.35}
.post-card p{color:#9b9b9b;font-size:.9rem;margin:0 0 12px;flex:1}
.post-card .read{color:#aea9ff;font-size:.85rem;font-weight:500}

/* ad slot */
.ad-block{margin:32px 0;padding:0;background:transparent;text-align:center}
.ad-block:empty{display:none}

/* footer */
.site-footer{border-top:1px solid #222;padding:24px 20px;text-align:center;color:#777;font-size:.85rem;margin-top:40px}
.site-footer a{color:#aaa;margin:0 8px}

/* lang chooser */
.lang-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:.85rem;color:#888;margin-bottom:24px}
.lang-row .label{color:#666}
.lang-row a{padding:3px 8px;border:1px solid #2a2a2a;border-radius:4px;background:#1a1a1a;color:#bbb}
.lang-row a:hover{background:#222;color:#fff;text-decoration:none}
.lang-row a.current{background:#262432;border-color:#3d3a55;color:#aea9ff}
