*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #07090f;--bg-card: #0d1220;--bg-code: #060810;--border: rgba(255,255,255,.06);--border-hover: rgba(34,211,238,.3);--text: #94a3b8;--text-strong: #e2e8f0;--text-muted: #475569;--accent: #22d3ee;--accent-dim: rgba(34,211,238,.12);--font-sans: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Courier New", monospace}html{font-size:18px}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased;selection:background-color rgba(34,211,238,.25)}::selection{background:#22d3ee40}.bg-layer{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}.bg-grid{position:absolute;inset:0;background-image:linear-gradient(to right,rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.03) 1px,transparent 1px);background-size:32px 32px}.bg-orb-1{position:absolute;left:-5%;top:0;width:500px;height:500px;border-radius:50%;background:#22d3ee;opacity:.05;filter:blur(120px)}.bg-orb-2{position:absolute;right:-5%;top:10%;width:400px;height:400px;border-radius:50%;background:#818cf8;opacity:.06;filter:blur(100px)}.bg-orb-3{position:absolute;left:40%;top:60%;width:300px;height:300px;border-radius:50%;background:#3b82f6;opacity:.04;filter:blur(90px)}#bg-spotlight{position:absolute;inset:0;background:radial-gradient(700px circle at var(--x, 50%) var(--y, 50%),rgba(56,139,253,.08),transparent 50%)}#progress-bar{position:fixed;top:0;left:0;width:0%;height:2px;background:linear-gradient(90deg,#22d3ee,#818cf8);z-index:100;transition:width .1s linear}.blog-nav{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--border);background:#07090fd9;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.blog-nav-inner{max-width:860px;margin:0 auto;padding:0 20px;height:56px;display:flex;align-items:center;justify-content:space-between;gap:12px}.blog-nav a{text-decoration:none;font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);transition:color .15s;white-space:nowrap}.blog-nav a:hover{color:var(--accent)}.nav-logo{font-weight:600;color:#64748b!important;display:flex;align-items:center;gap:6px;font-size:.82rem!important;flex-shrink:0}.nav-logo span{color:var(--accent)!important}.nav-links{display:flex;gap:20px;align-items:center}.nav-back{display:flex;align-items:center;gap:6px;color:#475569!important;font-size:.75rem!important}.nav-back:hover{color:var(--accent)!important}.nav-portfolio{color:#334155!important}main{min-height:calc(100vh - 136px)}.fade-up{opacity:0;transform:translateY(24px);transition:opacity .7s ease-out,transform .7s ease-out}.fade-up.in-view{opacity:1;transform:translateY(0)}.delay-100{transition-delay:.1s}.delay-200{transition-delay:.2s}.delay-300{transition-delay:.3s}.list-hero{max-width:860px;margin:0 auto;padding:72px 20px 48px}.list-eyebrow{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}.list-title{font-size:clamp(2rem,5vw,3rem);font-weight:700;color:var(--text-strong);line-height:1.15;margin-bottom:12px;letter-spacing:-.02em}.list-subtitle{color:#64748b;font-size:.95rem;max-width:440px;line-height:1.6}.posts-grid{max-width:860px;margin:0 auto;padding:0 20px 80px}.post-featured{display:block;text-decoration:none;border:1px solid var(--border);border-radius:16px;padding:32px 36px;background:var(--bg-card);margin-bottom:20px;position:relative;overflow:hidden;transition:border-color .25s,transform .25s,box-shadow .25s}.post-featured:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:0;transition:opacity .3s}.post-featured:hover{border-color:var(--border-hover);transform:translateY(-3px);box-shadow:0 20px 60px #22d3ee0f}.post-featured:hover:before{opacity:1}.post-featured .post-tag{display:inline-block;font-family:var(--font-mono);font-size:.65rem;padding:3px 10px;border-radius:999px;background:var(--accent-dim);border:1px solid rgba(34,211,238,.2);color:var(--accent);margin-bottom:14px;letter-spacing:.06em;text-transform:uppercase}.post-featured h2{font-size:clamp(1.15rem,3vw,1.5rem);font-weight:700;color:var(--text-strong);line-height:1.3;margin-bottom:10px;letter-spacing:-.015em}.post-featured p{color:#64748b;font-size:.95rem;line-height:1.65;margin-bottom:20px}.post-meta{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-family:var(--font-mono);font-size:.7rem;color:var(--text-muted)}.post-meta .dot{color:#1e293b}.posts-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),1fr));gap:16px}.post-card{display:block;text-decoration:none;color:#e2e8f0;border:1px solid var(--border);border-radius:12px;padding:24px 26px;background:var(--bg-card);transition:border-color .25s,transform .25s,box-shadow .25s;position:relative;overflow:hidden}.post-card:hover{border-color:#22d3ee33;transform:translateY(-2px);box-shadow:0 12px 40px #22d3ee0d}.post-card h2{font-size:1.05rem;font-weight:600;color:#e2e8f0;line-height:1.4;margin-bottom:8px}.post-card p{font-size:.84rem;color:#64748b;line-height:1.6;margin-bottom:16px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.error-box{max-width:860px;margin:48px auto;padding:0 20px}.error-card{background:#110a0a;border:1px solid #3d1515;border-radius:12px;padding:24px 28px;font-family:var(--font-mono);font-size:.78rem}.error-title{color:#fca5a5;font-weight:600;margin-bottom:8px}.error-msg{color:#7f1d1d;margin-bottom:12px}.error-hint{color:#451a1a;font-size:.72rem;line-height:1.6}.error-hint code{color:#f87171}.empty-state{text-align:center;padding:80px 24px;color:var(--text-muted);font-size:.9rem;font-style:italic}.article-container{max-width:680px;margin:0 auto;padding:64px 24px 100px}.article-header{margin-bottom:48px;padding-bottom:36px;border-bottom:1px solid var(--border)}.article-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted);margin-bottom:20px}.article-meta .read-badge{background:var(--accent-dim);border:1px solid rgba(34,211,238,.2);color:var(--accent);padding:2px 10px;border-radius:999px}h1.article-title{font-size:clamp(1.7rem,5vw,2.6rem);font-weight:700;line-height:1.2;color:var(--text-strong);letter-spacing:-.025em;margin-bottom:16px}.article-summary{font-size:1.05rem;color:#4a5568;line-height:1.7;border-left:2px solid rgba(34,211,238,.3);padding-left:16px}.article-body{line-height:1.85}.article-body h2{font-size:clamp(1.2rem,3vw,1.45rem);font-weight:700;color:var(--text-strong);margin:56px 0 16px;letter-spacing:-.015em;line-height:1.3;scroll-margin-top:80px}.article-body h3{font-size:clamp(1rem,2.5vw,1.15rem);font-weight:600;color:#cbd5e1;margin:40px 0 12px;scroll-margin-top:80px}.article-body h4{font-size:.95rem;font-weight:600;color:#94a3b8;margin:28px 0 8px;text-transform:uppercase;letter-spacing:.06em;font-family:var(--font-mono)}.article-body p{margin:0 0 28px;color:var(--text)}.article-body strong{color:var(--text-strong);font-weight:600}.article-body em{font-style:italic}.article-body a{color:var(--accent);text-decoration:underline;text-decoration-color:#22d3ee4d;text-underline-offset:3px;transition:text-decoration-color .15s}.article-body a:hover{text-decoration-color:var(--accent)}.article-body ul,.article-body ol{padding-left:1.6rem;margin:0 0 28px;color:var(--text)}.article-body li{margin-bottom:6px}.article-body li::marker{color:var(--accent)}.article-body blockquote{border-left:3px solid rgba(34,211,238,.4);margin:40px 0;padding:20px 24px;background:linear-gradient(135deg,rgba(34,211,238,.04),transparent);border-radius:0 8px 8px 0;font-style:italic;color:#64748b;font-size:1.05rem}.article-body table{width:100%;min-width:480px;border-collapse:collapse;margin:32px 0;font-size:.875rem;font-family:var(--font-mono)}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:32px 0;border-radius:8px}.table-scroll table{margin:0}.article-body th{text-align:left;padding:10px 16px;background:#ffffff08;border:1px solid rgba(255,255,255,.07);color:#94a3b8;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}.article-body td{padding:10px 16px;border:1px solid rgba(255,255,255,.05);color:#64748b;vertical-align:top}.article-body tr:hover td{background:#ffffff05}.article-body pre{background:var(--bg-code);border:1px solid rgba(255,255,255,.07);border-radius:10px;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:32px 0;position:relative}.article-body pre code{background:transparent!important;padding:22px 26px;display:block;font-family:var(--font-mono);font-size:.82rem;line-height:1.7;color:#e2e8f0}.article-body code:not(pre code){background:#22d3ee14;border:1px solid rgba(34,211,238,.15);color:#67e8f9;padding:1px 7px;border-radius:5px;font-family:var(--font-mono);font-size:.82em;word-break:break-word}.article-body img{max-width:100%;height:auto;border-radius:10px;border:1px solid rgba(255,255,255,.07);margin:28px 0}.article-body hr{border:none;border-top:1px solid var(--border);margin:56px 0}.author-bio{margin-top:64px;padding:24px 28px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;display:flex;gap:20px;align-items:flex-start}.author-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#22d3ee,#818cf8);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:700;color:#0a0e1a;font-size:1rem;font-family:var(--font-mono)}.author-info h4{font-size:.9rem;font-weight:600;color:var(--text-strong);margin-bottom:4px}.author-info p{font-size:.8rem;color:var(--text-muted);line-height:1.5}.blog-footer{border-top:1px solid var(--border);padding:28px 20px;text-align:center}.blog-footer-inner{max-width:860px;margin:0 auto;display:flex;gap:16px;justify-content:center;align-items:center;flex-wrap:wrap}.blog-footer a{font-family:var(--font-mono);font-size:.72rem;color:#475569;text-decoration:none;transition:color .15s}.blog-footer a:hover{color:var(--accent)}.blog-footer .sep,.blog-footer .copy{color:#334155;font-family:var(--font-mono);font-size:.72rem}.hero-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:12px}.hero-row .list-title{margin-bottom:0}.btn-new-post{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:.72rem;padding:6px 14px;border-radius:999px;border:1px solid rgba(34,211,238,.35);background:#22d3ee14;color:var(--accent);text-decoration:none;transition:background .2s,border-color .2s,transform .15s;white-space:nowrap}.btn-new-post:hover{background:#22d3ee26;border-color:#22d3ee99;transform:translateY(-1px)}.admin-hint{font-family:var(--font-mono);font-size:.68rem;color:#334155;margin-top:8px}.admin-hint a{color:#475569;text-decoration:none;transition:color .15s}.admin-hint a:hover{color:var(--accent)}.edit-link{font-family:var(--font-mono);font-size:.65rem;color:#475569;text-decoration:none;padding:2px 8px;border:1px solid rgba(255,255,255,.08);border-radius:4px;transition:color .15s,border-color .15s;margin-left:4px}.edit-link:hover{color:var(--accent);border-color:#22d3ee4d}.post-featured-badges{display:flex;gap:8px;align-items:center;margin-bottom:14px}.post-featured .post-tag{margin-bottom:0}.draft-tag{display:inline-block;font-family:var(--font-mono);font-size:.6rem;padding:2px 8px;border-radius:999px;background:#fbbf241a;border:1px solid rgba(251,191,36,.25);color:#fbbf24;letter-spacing:.06em;text-transform:uppercase}.post-draft{opacity:.65}.draft-banner{background:#fbbf2414;border:1px solid rgba(251,191,36,.2);border-radius:8px;padding:8px 16px;font-family:var(--font-mono);font-size:.72rem;color:#fbbf24;margin-bottom:20px}.article-edit-link{font-family:var(--font-mono);font-size:.65rem;color:var(--accent);text-decoration:none;padding:2px 10px;border:1px solid rgba(34,211,238,.25);border-radius:4px;background:#22d3ee0f;transition:background .15s,border-color .15s;margin-left:4px}.article-edit-link:hover{background:#22d3ee1f;border-color:#22d3ee66}@media(max-width:768px){html{font-size:17px}.list-hero{padding:56px 20px 40px}.posts-grid{padding:0 16px 64px}.article-container{padding:48px 20px 80px}.post-featured{padding:28px}.article-body pre code{padding:18px 20px;font-size:.78rem}}@media(max-width:640px){html{font-size:16px}.blog-nav-inner{padding:0 16px}.nav-portfolio{display:none}.list-hero{padding:48px 16px 36px}.posts-grid{padding:0 16px 60px}.post-featured{padding:22px 20px;border-radius:12px}.posts-list{grid-template-columns:1fr;gap:12px}.post-card{padding:20px}.article-container{padding:36px 16px 72px}.article-header{margin-bottom:36px;padding-bottom:28px}.author-bio{flex-direction:column;gap:12px;padding:20px}.article-body blockquote,.article-body pre code{padding:16px 18px}}@media(max-width:400px){.blog-nav-inner{height:52px}.list-hero{padding:40px 14px 28px}.posts-grid{padding:0 14px 48px}}
