*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0b1120;--bg-surface: #131b2e;--bg-surface-hover: #1a2440;--bg-surface-alt: #0f1729;--accent: #818cf8;--accent-bright: #a5b4fc;--accent-dim: #4f46e5;--warm: #f59e0b;--warm-dim: rgba(245, 158, 11, 0.15);--text: #e2e8f0;--text-muted: #94a3b8;--text-dim: #64748b;--border: rgba(255, 255, 255, 0.06);--border-accent: rgba(129, 140, 248, 0.2);--radius: 12px;--font-display: "Syne", sans-serif;--font-body: "DM Sans", sans-serif;--font-mono: "JetBrains Mono", monospace;--max-width: 800px;--grain: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E")}html{scroll-behavior:smooth}body{font-family:var(--font-body);background:var(--bg);color:var(--text);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}body::after{content:"";position:fixed;inset:0;background:var(--grain);pointer-events:none;z-index:9999;opacity:.4}a{color:var(--accent-bright);text-decoration:none;transition:color .3s}a:hover{color:var(--warm)}.nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:12px 0;background:rgba(11,17,32,.85);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid var(--border)}.nav-inner{display:flex;align-items:center;justify-content:space-between;max-width:1100px;margin:0 auto;padding:0 24px}.nav-logo{font-family:var(--font-display);font-weight:800;font-size:1.15rem;color:var(--text)}.nav-logo:hover{color:var(--accent-bright)}.nav-links{display:flex;gap:8px}.nav-links a{font-family:var(--font-mono);font-size:13px;color:var(--text-muted);padding:6px 14px;border-radius:8px;transition:all .3s}.nav-links a:hover,.nav-links a.active{color:var(--text);background:hsla(0,0%,100%,.05)}.container{max-width:var(--max-width);margin:0 auto;padding:0 24px}.blog-hero{padding:140px 0 60px;text-align:center}.blog-hero h1{font-family:var(--font-display);font-size:clamp(2rem,4vw,3rem);font-weight:800;color:#fff;letter-spacing:-0.03em;margin-bottom:12px}.blog-hero p{color:var(--text-muted);font-size:1rem;max-width:500px;margin:0 auto}.year-divider{font-family:var(--font-display);font-size:1.3rem;font-weight:800;color:#fff;margin-top:48px;margin-bottom:24px;padding-bottom:12px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px}.year-divider::after{content:"";flex:1;height:1px;background:var(--border)}.blog-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-bottom:16px;transition:all .3s cubic-bezier(0.16, 1, 0.3, 1)}.blog-card:hover{border-color:var(--border-accent);transform:translateY(-2px);box-shadow:0 12px 40px rgba(0,0,0,.3)}.blog-tags{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}.blog-tag{font-family:var(--font-mono);font-size:11px;padding:3px 10px;border-radius:6px;background:rgba(129,140,248,.08);color:var(--accent);border:1px solid rgba(129,140,248,.12)}.blog-card h3{font-family:var(--font-display);font-size:1.15rem;font-weight:700;margin-bottom:6px;line-height:1.3}.blog-card h3 a{color:#fff}.blog-card h3 a:hover{color:var(--accent-bright)}.blog-date{font-family:var(--font-mono);font-size:12px;color:var(--text-dim);margin-bottom:10px}.blog-excerpt{font-size:14px;color:var(--text-muted);line-height:1.6}.reveal{opacity:0;transform:translateY(20px);transition:opacity .6s cubic-bezier(0.16, 1, 0.3, 1),transform .6s cubic-bezier(0.16, 1, 0.3, 1)}.reveal.visible{opacity:1;transform:translateY(0)}.footer{border-top:1px solid var(--border);padding:40px 0;margin-top:80px;text-align:center}.footer-links{display:flex;justify-content:center;gap:24px;margin-bottom:16px}.footer-link{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--text-muted)}.footer-link:hover{color:var(--accent-bright)}.footer-link svg{width:18px;height:18px}.footer-copy{font-size:13px;color:var(--text-dim)}@media(max-width: 600px){.blog-hero{padding:120px 0 40px}.blog-card{padding:18px}}