:root{--bg: #f8fafc;--surface: #ffffff;--text: #111827;--muted: #475569;--border: rgba(15, 23, 42, .08);--panel-border: rgba(15, 23, 42, .08);--link: #0f766e;--nav-bg: #0f172a;--nav-text: #f8fafc;--nav-border: rgba(255, 255, 255, .22);--nav-hover: rgba(255, 255, 255, .08);color-scheme:light;color:var(--text);background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.6}:root.dark{--bg: #0b1120;--surface: #111827;--text: #f8fafc;--muted: #cbd5e1;--border: rgba(148, 163, 184, .16);--panel-border: rgba(148, 163, 184, .12);--link: #7dd3fc;--nav-bg: #020617;--nav-text: #f8fafc;--nav-border: rgba(255, 255, 255, .12);--nav-hover: rgba(255, 255, 255, .08);color-scheme:dark;color:var(--text);background:var(--bg)}@media (prefers-color-scheme: dark){:root:not(.light):not(.dark){--bg: #0b1120;--surface: #111827;--text: #f8fafc;--muted: #cbd5e1;--border: rgba(148, 163, 184, .16);--panel-border: rgba(148, 163, 184, .12);--link: #7dd3fc;--nav-bg: #020617;--nav-text: #f8fafc;--nav-border: rgba(255, 255, 255, .12);--nav-hover: rgba(255, 255, 255, .08);color-scheme:dark;color:var(--text);background:var(--bg)}}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text)}img,svg{max-width:100%}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:.75rem;border:1px solid var(--nav-border);background:transparent;color:inherit;cursor:pointer;transition:background .2s ease,border-color .2s ease}.theme-toggle:hover{background:var(--nav-hover)}button,input,select,textarea{font:inherit}.site-header,.site-footer{background:var(--nav-bg);color:var(--nav-text)}.site-header{position:sticky;top:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.5rem}.site-header .brand h1{font-size:1.35rem;margin:0;line-height:1.2}.site-header .brand a{color:inherit;text-decoration:none}.site-header .nav-group{display:flex;align-items:center;gap:1rem}.site-header nav{display:flex;gap:.5rem;font-size:.95rem}.site-header nav a{color:var(--nav-text);border:1px solid transparent;padding:.35rem .8rem;text-decoration:none}.site-header nav a:hover{background:#ffffff14;border-color:#ffffff26}.site-header .theme-toggle{background:transparent;border:none;cursor:pointer;font-size:1.1rem}.site-header .mobile-menu-button{display:none;flex-direction:column;gap:.3rem;width:2rem;height:2rem;border:1px solid rgba(255,255,255,.2);border-radius:.5rem;background:transparent;cursor:pointer;color:var(--nav-text);padding:.4rem;align-items:center;justify-content:center}.site-header .mobile-menu-button span{display:block;width:1.1rem;height:2px;background:currentColor}@media (max-width: 768px){.site-header{padding:.6rem 1rem}.site-header .brand h1{font-size:1.15rem}.site-header .mobile-menu-button{display:flex}.site-header nav a{padding:.25rem .55rem;font-size:.85rem}}.layout-grid{display:grid;grid-template-columns:minmax(200px,1fr) minmax(0,3fr) minmax(200px,1fr);gap:.5rem;width:min(100vw,100%);margin:0 auto;padding:1rem}@media (max-width: 1120px){.layout-grid{grid-template-columns:1fr;padding:1.5rem 1rem 2rem}}@media (max-width: 768px){.layout-grid{padding:1rem .75rem 1.5rem;gap:1rem}}@media (max-width: 480px){.layout-grid{padding:.75rem .5rem 1rem;gap:.75rem}}.sidebar,.ads{background:var(--surface);border:1px solid var(--panel-border);border-radius:1rem;padding:1.25rem}.sidebar{position:sticky;top:1rem;align-self:start}@media (max-width: 1120px){.sidebar{display:none;position:static;top:auto;left:auto;width:auto;max-height:none;overflow:visible;transform:none;transition:none;box-shadow:none}#mobile-menu-toggle:checked~.layout-grid .sidebar{display:block;position:static;transform:none;width:auto;max-height:none;overflow:visible;box-shadow:none}.site-header .header-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%}.site-header .nav-group{display:flex;align-items:center;gap:.5rem}.site-header .site-nav{display:none;width:100%;flex-direction:column;gap:.5rem;background:transparent;border-radius:0;border:none;padding:0;box-shadow:none}#mobile-menu-toggle:checked~.site-header .site-nav{display:flex;background:#0f172a;border-radius:.85rem;border:1px solid rgba(255,255,255,.1);padding:1rem;box-shadow:0 18px 40px #0f172a29}.site-header .site-nav a{display:block;width:100%}.site-header .mobile-menu-button{display:inline-flex}.site-header .brand{align-items:flex-start}}@media (max-width: 768px){.sidebar,.ads{padding:1rem;border-radius:.75rem}}@media (max-width: 480px){.sidebar{display:none}.ads{padding:.75rem;border-radius:.5rem}.ads .blog-ad{padding:.75rem}.ads .blog-ad h3{font-size:.95rem;margin-bottom:.4rem}.ads .blog-ad p{font-size:.85rem}}.sidebar details{margin-bottom:.85rem;border-radius:.85rem;padding:.5rem .75rem;transition:background .2s ease}.sidebar details[open]{background:#ffffff14}.sidebar summary{cursor:pointer;font-weight:700;list-style:none;display:flex;align-items:center;justify-content:space-between;padding:.25rem .15rem}.sidebar summary::-webkit-details-marker{display:none}.sidebar details summary:after{content:"▸";transform:rotate(0);transition:transform .2s ease;font-size:.8rem;color:var(--muted)}.sidebar details[open] summary:after{transform:rotate(90deg)}.sidebar ul{margin:.6rem 0 0;padding-left:1rem}.ads{position:sticky;top:1rem;align-self:start}.content{min-width:0}.hero{background:var(--surface);border:1px solid var(--panel-border);border-radius:1rem;padding:2rem;margin-bottom:1.5rem}.hero h2{margin-top:0;margin-bottom:.75rem;font-size:clamp(2rem,3vw,3rem);line-height:1.05}.hero p{margin:0;max-width:62ch;color:var(--text)}@media (max-width: 768px){.hero{padding:1.5rem;margin-bottom:1rem}.hero h2{font-size:clamp(1.5rem,2.5vw,2.5rem);margin-bottom:.5rem}.hero p{font-size:.95rem}}@media (max-width: 480px){.hero{padding:1rem;margin-bottom:.75rem;border-radius:.5rem}.hero h2{font-size:clamp(1.25rem,2vw,2rem);margin-bottom:.5rem}.hero p{font-size:.9rem}}.post-grid{display:grid;gap:1.2rem}.post-card{background:var(--surface);border:1px solid var(--panel-border);border-radius:1rem;padding:1.5rem;transition:transform .2s ease,box-shadow .2s ease}.post-card,.post-card h2,.post-card p,.post-card a{color:var(--text)}.post-card:hover{transform:translateY(-1px);box-shadow:0 12px 30px #0f172a14}.post-card h2{margin:0 0 .75rem;font-size:1.4rem}.post-card p{margin:0 0 1rem;color:var(--text)}.post-card .meta{font-size:.95rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:.75rem}@media (max-width: 768px){.post-card{padding:1.25rem;border-radius:.75rem}.post-card h2{font-size:1.2rem;margin-bottom:.5rem}.post-card p{font-size:.95rem;margin-bottom:.75rem}.post-card .meta{font-size:.85rem;gap:.5rem}}@media (max-width: 480px){.post-card{padding:1rem;border-radius:.5rem}.post-card h2{font-size:1.1rem;margin-bottom:.4rem}.post-card p{font-size:.9rem;margin-bottom:.6rem}.post-card .meta{font-size:.8rem;gap:.4rem}}.post-card .tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.post-card .tag{background:#e0f2fe;color:#0369a1;padding:.3rem .65rem;border-radius:9999px;font-size:.85rem}.post-article{background:var(--surface);border:1px solid var(--panel-border);border-radius:1rem;padding:2rem}.post-navigation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:2.5rem;padding-top:2rem;border-top:1px solid var(--panel-border)}.post-navigation-link{display:flex;flex-direction:column;gap:.35rem;padding:1.25rem;border-radius:1rem;background:#ffffff0d;border:1px solid var(--panel-border);color:var(--text);text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.post-navigation-link:hover{transform:translateY(-1px);box-shadow:0 10px 24px #00000014;background:#ffffff14}.post-navigation-link span{color:var(--muted);font-size:.9rem}.post-navigation-link strong{color:var(--text);font-size:1rem}.post-navigation-link.prev{align-items:flex-start}.post-navigation-link.next{align-items:flex-end;text-align:right}.post-article h1{margin-top:0;margin-bottom:1rem;font-size:clamp(2rem,2.8vw,2.8rem)}@media (max-width: 768px){.post-article{padding:1.5rem;border-radius:.75rem}.post-article h1{font-size:clamp(1.5rem,2.2vw,2.2rem);margin-bottom:.75rem}}@media (max-width: 480px){.post-article{padding:1rem;border-radius:.5rem}.post-article h1{font-size:clamp(1.25rem,1.8vw,1.8rem);margin-bottom:.5rem}.post-article h2{font-size:1.2rem;margin-top:1rem}.post-article h3{font-size:1rem}.post-article p{font-size:.9rem;line-height:1.6}.post-article code{font-size:.8rem}}.post-meta{margin-bottom:1.75rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:.75rem;font-size:.95rem}.post-meta .category,.post-meta .date{background:var(--panel-border);padding:.45rem .75rem;border-radius:9999px}.post-meta .tags{display:flex;flex-wrap:wrap;gap:.5rem}.tag-pill{background:#38bdf826;color:var(--link);padding:.35rem .7rem;border-radius:9999px;font-size:.85rem}.info-card{border-left:4px solid #0284c7;background:#eff6ff;padding:1rem 1.1rem;border-radius:.9rem;margin:1.5rem 0}.info-card h3{margin:0 0 .65rem;font-size:1.1rem}.info-card p{margin:0;color:#334155}.sidebar nav{font-size:.95rem;line-height:1.7}.sidebar h2{margin-top:0;margin-bottom:1rem;font-size:1.1rem}.sidebar ul{padding-left:1rem;margin:0}.sidebar li{margin-bottom:.5rem}.sidebar a{color:var(--text)}.sidebar a.active{font-weight:700;color:var(--link)}.blog-ad{background:var(--surface);border:1px dashed rgba(148,163,184,.3);padding:1rem;border-radius:1rem}.blog-ad,.blog-ad h3,.blog-ad p{color:var(--text)}.blog-ad h3{margin-top:0}.blog-ad p{margin:.75rem 0 0;color:var(--text)}.site-footer{padding:1.5rem 1.25rem;margin-top:0}.site-footer .footer-inner{max-width:100%;margin:0 auto;display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem}.site-footer p{margin:0;color:#cbd5e1}@media (max-width: 768px){.site-footer{padding:1rem}.site-footer .footer-inner{gap:.75rem}.site-footer p{font-size:.9rem}}@media (max-width: 480px){.site-footer{padding:.75rem}.site-footer .footer-inner{flex-direction:column;gap:.5rem}.site-footer p{font-size:.8rem}}
