*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0d0d0d;--bg-card:#141414;--bg-card2:#1a1a1a;--accent:#0fa;--accent2:#0cf;--text:#e0e0e0;--text-muted:#888;--border:#00ffaa26;--border-hover:#0fa;--font-mono:"JetBrains Mono", monospace;--font-sans:"Syne", sans-serif;--radius:14px;--max-w:780px}#read-progress{background:linear-gradient(90deg, var(--accent), var(--accent2));width:0%;height:3px;box-shadow:0 0 12px var(--accent);z-index:1000;transition:width .1s linear;position:fixed;top:0;left:0}.blog-index-wrap{max-width:900px;margin:0 auto;padding:24px 24px 0}.blog-hero{text-align:center;padding:72px 24px 48px;position:relative;overflow:hidden}.blog-hero:before{content:"";pointer-events:none;background:radial-gradient(60% 50% at 50% 0,#00ffaa12,#0000);position:absolute;inset:0}.blog-hero h1{font-family:var(--font-mono);color:var(--accent);letter-spacing:-.02em;text-shadow:0 0 40px #00ffaa4d;font-size:clamp(2rem,6vw,3.5rem);font-weight:700;line-height:1.1}.blog-hero p{color:var(--text-muted);font-size:1rem;font-family:var(--font-mono);margin-top:12px}.blog-container{max-width:900px;margin:0 auto;padding:48px 24px}.blog-header{text-align:center;margin-bottom:48px}.blog-header h1{font-family:var(--font-mono);color:var(--accent);letter-spacing:-.02em;text-shadow:0 0 40px #00ffaa4d;margin-bottom:12px;font-size:clamp(2rem,6vw,3.5rem);font-weight:700;line-height:1.1}.blog-subtitle{color:var(--text-muted);font-size:1rem;font-family:var(--font-mono)}.posts-grid{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}@media (max-width:640px){.posts-grid{grid-template-columns:1fr}}.post-card:first-child{grid-column:span 2}@media (max-width:640px){.post-card:first-child{grid-column:span 1}}.post-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;padding:28px 32px;transition:border-color .2s,transform .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.post-card:before{content:"";background:linear-gradient(90deg, var(--accent), var(--accent2));opacity:0;height:2px;transition:opacity .2s;position:absolute;top:0;left:0;right:0}.post-card:hover{border-color:var(--border-hover);transform:translateY(-2px);box-shadow:0 8px 32px #00ffaa14}.post-card:hover:before{opacity:1}.post-image{width:calc(100% + 64px);margin:-28px -32px 20px;display:block}.post-image img{object-fit:cover;border-radius:calc(var(--radius) - 2px) calc(var(--radius) - 2px) 0 0;border-bottom:1px solid var(--border);opacity:.85;width:100%;height:180px;transition:opacity .2s;display:block}.post-card:hover .post-image img{opacity:1}.post-content{flex-direction:column;flex:1;display:flex}.post-meta{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px;display:flex}.post-meta time{font-family:var(--font-mono);color:var(--text-muted);font-size:.75rem}.reading-time{font-family:var(--font-mono);color:var(--accent2);background:#00ccff14;border:1px solid #0cf3;border-radius:20px;padding:2px 8px;font-size:.75rem}.post-title{margin-bottom:8px;font-size:1.25rem;font-weight:700;line-height:1.3}.post-title a{color:var(--text);text-decoration:none}.post-title a:hover{color:var(--accent);text-decoration:none}.post-description{color:var(--text-muted);flex:1;margin-bottom:16px;font-size:.92rem;line-height:1.6}.post-tags{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.tag{font-family:var(--font-mono);color:var(--accent);background:#00ffaa0d;border:1px solid #00ffaa4d;border-radius:20px;padding:2px 10px;font-size:.72rem}.read-more{font-family:var(--font-mono);color:var(--accent);align-items:center;gap:6px;width:fit-content;margin-top:auto;font-size:.85rem;display:inline-flex}.read-more:hover{color:var(--accent2);text-decoration:none}.article-container{max-width:var(--max-w);margin:0 auto;padding:48px 24px 100px}.back-link{font-family:var(--font-mono);color:var(--text-muted);align-items:center;gap:6px;margin-bottom:32px;font-size:.85rem;transition:color .2s;display:inline-flex}.back-link:hover{color:var(--accent);text-decoration:none}.article{margin-top:24px}.article-header{margin-bottom:40px}.article-meta{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:16px;display:flex}.article-meta time{font-family:var(--font-mono);color:var(--text-muted);font-size:.8rem}.article-title{font-family:var(--font-mono);color:var(--text);margin-bottom:12px;font-size:clamp(1.6rem,5vw,2.4rem);font-weight:700;line-height:1.2}.article-tags{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.article-image{margin-bottom:36px}.article-image img{object-fit:cover;border-radius:var(--radius);border:1px solid var(--border);width:100%;max-height:420px;display:block}.article-body{font-size:1rem;line-height:1.85}.article-body h2{font-family:var(--font-mono);color:var(--accent);border-bottom:1px solid var(--border);margin:2.5em 0 .8em;padding-bottom:8px;font-size:1.4rem;font-weight:700}.article-body h3{font-family:var(--font-mono);color:var(--accent2);margin:2em 0 .6em;font-size:1.1rem;font-weight:700}.article-body p{margin-bottom:1.4em}.article-body ul,.article-body ol{margin:1em 0 1.4em 1.5em}.article-body li{margin-bottom:.4em}.article-body a{color:var(--accent);border-bottom:1px solid #00ffaa4d}.article-body a:hover{border-color:var(--accent);text-decoration:none}.article-body code{font-family:var(--font-mono);color:var(--accent);background:#00ffaa14;border:1px solid #00ffaa26;border-radius:4px;padding:2px 6px;font-size:.85em}.article-body pre{background:#0a0a0a;border:1px solid #00ffaa26;border-radius:10px;margin:1.5em 0;padding:20px 24px;position:relative;overflow-x:auto}.article-body pre:before{content:"";background:linear-gradient(90deg, var(--accent), var(--accent2));border-radius:10px 10px 0 0;height:2px;position:absolute;top:0;left:0;right:0}.article-body pre code{color:#cdd6f4;background:0 0;border:none;padding:0;font-size:.88em;line-height:1.7}.article-body blockquote{border-left:3px solid var(--accent);color:var(--text-muted);background:#00ffaa08;border-radius:0 8px 8px 0;margin:1.5em 0;padding:12px 20px;font-style:italic}.article-body img{border:1px solid var(--border);border-radius:10px;max-width:100%;margin:1.5em 0;display:block}.article-body table{border-collapse:collapse;width:100%;font-family:var(--font-mono);margin:1.5em 0;font-size:.88em}.article-body th{color:var(--accent);text-align:left;border:1px solid var(--border);background:#00ffaa14;padding:10px 14px}.article-body td{border:1px solid var(--border);color:var(--text-muted);padding:9px 14px}.no-posts{text-align:center;color:var(--text-muted);padding:60px 24px}@media (max-width:640px){.post-card{padding:20px}.post-image{width:calc(100% + 40px);margin:-20px -20px 16px}.article-container{padding:32px 16px 80px}.blog-container{padding:32px 16px}.blog-header{margin-bottom:32px}}.back-to-blog{margin-top:25px}.breadcrumb-wrapper{max-width:var(--max-w);margin:0 auto;padding:24px 24px 0}@media (max-width:640px){.breadcrumb-wrapper{padding:16px 16px 0}}.article-breadcrumb{font-family:var(--font-mono);color:var(--text-muted);align-items:center;gap:8px;margin-bottom:20px;font-size:.78rem;display:flex}.article-breadcrumb a{color:var(--text-muted);text-decoration:none}.article-breadcrumb a:hover{color:var(--accent)}.article-breadcrumb span{color:var(--border-hover)}.crumb-current{color:var(--text-muted)}.crumb-pin{display:none}@media (max-width:640px){.article-breadcrumb .crumb-current{display:none}.article-breadcrumb .crumb-pin{color:var(--accent);align-items:center;gap:4px;font-size:.85rem;display:inline-flex}.blog-container .article-breadcrumb .crumb-current{display:inline}}.article-share{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);text-align:center;margin-top:60px;padding:40px 32px;position:relative;overflow:hidden}.article-share:before{content:"";background:linear-gradient(90deg, var(--accent), var(--accent2));height:2px;position:absolute;top:0;left:0;right:0}.share-title{color:var(--text);margin-bottom:8px;font-size:1.3rem;font-weight:600}.share-emoji{font-size:1.4rem;animation:2s ease-in-out infinite pulse;display:inline-block}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.share-subtitle{color:var(--text-muted);margin-bottom:28px;font-size:.95rem}.share-buttons{flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:24px;display:flex}.share-button{background:var(--bg-card2);border:1px solid var(--border);font-family:var(--font-mono);color:var(--text);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:10px 20px;font-size:.85rem;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.share-button:hover{text-decoration:none;transform:translateY(-2px);box-shadow:0 4px 12px #00ffaa26}.share-twitter:hover{color:#fff;background:#1da1f2;border-color:#1da1f2}.share-linkedin:hover{color:#fff;background:#0077b5;border-color:#0077b5}.share-hn:hover{color:#fff;background:#f60;border-color:#f60}.share-facebook:hover{color:#fff;background:#1877f2;border-color:#1877f2}.share-reddit:hover{color:#fff;background:#ff4500;border-color:#ff4500}.share-copy:hover{background:var(--accent);border-color:var(--accent);color:var(--bg)}.share-copy.copied{color:#fff;background:#00c853;border-color:#00c853}.share-email:hover{background:var(--accent2);border-color:var(--accent2);color:var(--bg)}.share-note{color:var(--text-muted);margin-top:16px;font-size:.8rem;font-style:italic}@media (max-width:640px){.article-share{padding:32px 20px}.share-buttons{gap:8px}.share-button{padding:8px 16px;font-size:.8rem}.share-title{font-size:1.1rem}}.article-body picture{margin:1.5em 0;display:block}.article-body picture img{border:1px solid var(--border);border-radius:10px;width:100%;max-width:100%;height:auto;display:block}
