:root{--bg-primary:#0a0b0f;--bg-secondary:#0d0f14;--bg-card:#12141b;--bg-card-hover:#171a23;--bg-code:#0c0d12;--border-color:#23272f;--border-accent:#8b5cf6;--text-primary:#d7dce2;--text-secondary:#7a828d;--text-muted:#4d545e;--accent:#8b5cf6;--accent-2:#a78bfa;--accent-dim:rgba(139, 92, 246, 0.14);--accent-secondary:#a78bfa;--accent-tertiary:#34d399;--ok:#34d399;--link:#a78bfa;--link-hover:#c4b5fd;--font-sans:'Spline Sans Mono', ui-monospace, Menlo, monospace;--font-mono:'Spline Sans Mono', ui-monospace, Menlo, monospace;--font-display:'Martian Mono', monospace;--max-width:1060px;--narrow-width:780px;--radius:10px;--transition:0.15s ease}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{font-size:15px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-mono);background:var(--bg-primary);color:var(--text-primary);line-height:1.65;min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden}.grain{position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E")}.scan{position:fixed;inset:0;pointer-events:none;z-index:9998;opacity:.5;background:repeating-linear-gradient(0,transparent 0 3px,rgba(0,0,0,.14) 3px 4px)}.container{max-width:var(--max-width);margin:0 auto;padding:0 24px;position:relative;z-index:1}.container-narrow{max-width:var(--narrow-width)}a{color:var(--link);text-decoration:none;transition:color var(--transition)}a:hover{color:var(--link-hover)}img{max-width:100%;height:auto}.site-header{position:sticky;top:0;z-index:100;background:rgba(10,11,15,.82);backdrop-filter:blur(10px);border-bottom:1px solid var(--border-color)}.header-inner{display:flex;align-items:center;justify-content:space-between;height:60px}.site-logo{font-family:var(--font-display);font-size:.85rem;font-weight:800;color:var(--accent-2);letter-spacing:3px;text-transform:uppercase}.site-logo:hover{color:var(--accent-2)}.logo-bracket{color:var(--text-muted)}.logo-text{color:var(--accent-2)}.site-logo:hover .logo-text{text-shadow:0 0 24px rgba(139,92,246,.6)}.nav-toggle{display:none;background:0 0;border:1px solid var(--border-color);border-radius:8px;cursor:pointer;padding:8px 10px;flex-direction:column;gap:5px}.nav-toggle span{display:block;width:22px;height:2px;background:var(--text-primary);transition:var(--transition)}.nav-list{display:flex;list-style:none;gap:1.5rem;align-items:center}.nav-list a{color:var(--text-secondary);font-size:.85rem;letter-spacing:.02em;padding:.25rem 0;transition:color var(--transition)}.nav-list a:hover,.nav-list a.active{color:var(--accent-2)}.external-icon{font-size:.75rem;opacity:.7}.hero{padding:5.5rem 0 4rem;border-bottom:1px solid var(--border-color);margin-bottom:3rem;position:relative}.hero::before{content:"";position:absolute;pointer-events:none;z-index:0;width:900px;height:900px;border-radius:50%;background:radial-gradient(circle,rgba(139,92,246,.14) 0%,rgba(139,92,246,5%) 40%,transparent 70%);top:-420px;left:50%;transform:translateX(-50%)}.hero::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(rgba(139,92,246,4%) 1px,transparent 1px),linear-gradient(90deg,rgba(139,92,246,4%) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(ellipse 90% 80% at 50% 0%,#000 30%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse 90% 80% at 50% 0%,#000 30%,transparent 75%)}.hero-content{position:relative;z-index:1}.terminal-prompt{font-family:var(--font-mono);font-size:.9rem;margin-bottom:1.5rem;color:var(--text-muted)}.prompt-symbol{color:var(--accent-2);margin-right:.5rem}.typed-text{color:var(--text-secondary)}.typed-text::after{content:'';display:inline-block;width:.6em;height:1.1em;background:var(--accent-2);vertical-align:text-bottom;margin-left:4px;animation:blink 1.1s steps(1)infinite}@keyframes blink{50%{opacity:0}}@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.hero-badge{display:inline-flex;gap:10px;align-items:center;flex-wrap:wrap;row-gap:2px;font-size:.8rem;color:var(--text-secondary);border:1px solid var(--border-color);border-radius:99px;padding:5px 14px;background:var(--bg-card);margin-bottom:.5rem;animation:rise .9s cubic-bezier(.2,.7,.2,1)both}.hero-badge b{color:var(--ok);font-weight:500}.hero-badge .sep{color:var(--text-muted)}.hero-badge .bi{white-space:nowrap}.hero-title{font-family:var(--font-display);font-size:clamp(2.2rem,6vw,3.6rem);font-weight:800;letter-spacing:.1em;line-height:1.15;margin:1rem 0;color:#edf0f4;text-shadow:0 0 60px rgba(139,92,246,.35);animation:rise .9s .05s cubic-bezier(.2,.7,.2,1)both}.hero-title .accent{color:var(--accent)}.hero-tagline{font-size:clamp(1rem,2.4vw,1.25rem);color:var(--accent-2);letter-spacing:.04em;margin-bottom:1.4rem;animation:rise .9s .1s cubic-bezier(.2,.7,.2,1)both}.hero-tagline .cursor{display:inline-block;width:.6em;height:1.1em;background:var(--accent-2);vertical-align:text-bottom;margin-left:3px;animation:blink 1.1s steps(1)infinite}.hero-subtitle{font-size:1rem;color:var(--text-secondary);max-width:640px;line-height:1.7;margin-bottom:2rem;animation:rise .9s .15s cubic-bezier(.2,.7,.2,1)both}.hero-subtitle strong{color:var(--text-primary);font-weight:500}.hero-links{display:flex;gap:14px;flex-wrap:wrap;animation:rise .9s .25s cubic-bezier(.2,.7,.2,1)both}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:11px 22px;font-size:.9rem;font-weight:600;font-family:var(--font-mono);letter-spacing:.5px;border-radius:7px;transition:all var(--transition);cursor:pointer;text-decoration:none}.btn-primary{background:var(--accent);color:var(--bg-primary);border:1px solid var(--accent)}.btn-primary:hover{background:var(--accent-2);border-color:var(--accent-2);color:var(--bg-primary);box-shadow:0 0 30px rgba(139,92,246,.4)}.btn-outline{background:0 0;color:var(--text-primary);border:1px solid var(--border-color)}.btn-outline:hover{border-color:var(--accent);background:var(--accent-dim);color:var(--text-primary)}.posts-section{padding-bottom:4rem}.section-header{display:flex;align-items:baseline;gap:1rem;margin-bottom:2.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.section-title{font-family:var(--font-display);font-size:1.15rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--accent)}.section-title::before{content:"// ";color:var(--text-muted)}.tag-prefix{color:var(--accent-2);font-family:var(--font-mono)}.section-count{font-size:.85rem;color:var(--text-muted);font-family:var(--font-mono)}.posts-grid{display:grid;gap:1.25rem}.post-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;overflow:hidden;transition:border-color .2s,transform .2s,background .2s;display:grid;grid-template-columns:1fr;position:relative}.post-card::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent),transparent);opacity:0;transition:opacity .2s;z-index:1}.post-card:hover{border-color:rgba(139,92,246,.5);background:var(--bg-card-hover);transform:translateY(-3px)}.post-card:hover::before{opacity:1}.post-card-image{aspect-ratio:16/9;overflow:hidden}.post-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.post-card:hover .post-card-image img{transform:scale(1.03)}.post-card-content{padding:1.5rem}.post-meta{display:flex;align-items:center;gap:.5rem;font-size:.8rem;font-family:var(--font-mono);color:var(--text-muted);margin-bottom:.75rem;flex-wrap:wrap}.meta-sep{color:var(--text-muted)}.post-tag{color:var(--accent-2);font-size:.8rem}.post-tag:hover{color:var(--link-hover)}.post-title{font-family:var(--font-display);font-size:1.1rem;font-weight:600;letter-spacing:.02em;line-height:1.4;margin-bottom:.75rem}.post-title a{color:var(--text-primary)}.post-title a:hover{color:var(--accent-2)}.post-excerpt{color:var(--text-secondary);font-size:.9rem;line-height:1.65;margin-bottom:1rem}.read-more{font-family:var(--font-mono);font-size:.85rem;color:var(--accent-2);display:inline-flex;align-items:center;gap:.35rem}.read-more::before{content:"▸ ";color:var(--accent)}.read-more span{transition:transform var(--transition)}.read-more:hover span{transform:translateX(4px)}.post-single{padding:3rem 0 4rem}.post-header{margin-bottom:2.5rem}.post-single .post-title{font-size:clamp(1.5rem,3.6vw,2.1rem);line-height:1.35;letter-spacing:.02em;margin-bottom:1rem;color:#e8ebef}.post-description{font-size:1.05rem;color:var(--text-secondary);line-height:1.7}.post-featured-image{margin-bottom:2.5rem;border-radius:12px;overflow:hidden;border:1px solid var(--border-color);box-shadow:0 0 0 1px rgba(139,92,246,8%),0 24px 60px rgba(0,0,0,.5)}.post-featured-image img{width:100%;display:block}.post-content{font-size:1rem;line-height:1.85}.post-content h2{font-family:var(--font-display);font-size:1.35rem;font-weight:600;letter-spacing:.02em;margin-top:3rem;margin-bottom:1rem;color:#e8ebef;padding-bottom:.5rem;border-bottom:1px solid var(--border-color)}.post-content h3{font-family:var(--font-display);font-size:1.05rem;font-weight:600;letter-spacing:.02em;margin-top:2.5rem;margin-bottom:.75rem;color:var(--accent-2)}.post-content h4{font-size:.9rem;font-weight:600;margin-top:2rem;margin-bottom:.5rem;color:var(--accent);font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase}.post-content p{margin-bottom:1.25rem;color:var(--text-secondary)}.post-content a{color:var(--link);text-decoration:underline;text-decoration-color:rgba(167,139,250,.35);text-underline-offset:3px;transition:all var(--transition)}.post-content a:hover{color:var(--link-hover);text-decoration-color:var(--link-hover)}.post-content strong{color:var(--text-primary);font-weight:500}.post-content ul,.post-content ol{margin-bottom:1.25rem;padding-left:1.5rem;color:var(--text-secondary)}.post-content li{margin-bottom:.5rem}.post-content ul li::marker{color:var(--accent);content:"▸ "}.post-content ol li::marker{color:var(--accent)}.post-content blockquote{border:1px solid var(--border-color);border-left:3px solid var(--accent);padding:1rem 1.5rem;margin:1.5rem 0;background:var(--bg-card);border-radius:0 var(--radius)var(--radius)0;color:var(--text-secondary)}.post-content code{font-family:var(--font-mono);font-size:.88em;background:var(--bg-card-hover);color:var(--accent-2);padding:.15em .4em;border-radius:4px;border:1px solid var(--border-color)}.post-content pre{margin:1.5rem 0;padding:1.25rem;background:var(--bg-code);border:1px solid var(--border-color);border-radius:var(--radius);overflow-x:auto;position:relative;box-shadow:0 0 0 1px rgba(139,92,246,6%),0 12px 32px rgba(0,0,0,.4)}.post-content pre code{background:0 0;border:none;padding:0;color:var(--text-primary);font-size:.88rem;line-height:1.6}.post-content img{border-radius:var(--radius);border:1px solid var(--border-color);margin:1.5rem 0}.post-content hr{border:none;border-top:1px solid var(--border-color);margin:2.5rem 0}.post-content table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:.9rem}.post-content th,.post-content td{padding:.75rem 1rem;border:1px solid var(--border-color);text-align:left}.post-content th{background:var(--bg-secondary);color:var(--accent-2);font-family:var(--font-display);font-size:.75rem;text-transform:uppercase;letter-spacing:.1em}.post-content td{color:var(--text-secondary)}.post-content tr:hover td{background:var(--bg-card)}.post-footer{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--border-color)}.post-author{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.author-avatar{width:48px;height:48px;border-radius:50%;border:2px solid var(--accent);filter:drop-shadow(0 0 16px rgba(139,92,246,.35))}.author-info{display:flex;flex-direction:column}.author-name{font-family:var(--font-display);font-weight:600;font-size:.9rem;letter-spacing:.05em;color:var(--text-primary)}.author-location{font-size:.85rem;color:var(--text-muted);font-family:var(--font-mono)}.post-tags{display:flex;flex-wrap:wrap;gap:.5rem}.tag-pill{font-family:var(--font-display);font-size:.72rem;font-weight:600;letter-spacing:.1em;padding:.45rem 1rem;background:rgba(139,92,246,6%);color:var(--accent-2);border:1px solid rgba(139,92,246,.35);border-radius:99px;transition:all var(--transition)}.tag-pill:hover{background:rgba(139,92,246,.16);border-color:var(--accent);color:var(--accent-2);transform:translateY(-2px)}.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:2rem;padding-top:2rem;border-top:1px solid var(--border-color)}.post-nav-link{padding:1rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius);transition:all var(--transition);display:flex;flex-direction:column;gap:.25rem}.post-nav-link:hover{border-color:rgba(139,92,246,.5);background:var(--bg-card-hover)}.post-nav-next{text-align:right;grid-column:2}.nav-label{font-family:var(--font-display);font-size:.7rem;color:var(--accent);text-transform:uppercase;letter-spacing:.15em}.nav-title{font-size:.9rem;color:var(--text-primary);font-weight:500}.taxonomy-section{padding:3rem 0 4rem}.tag-cloud{display:flex;flex-wrap:wrap;gap:.75rem}.tag-cloud-item{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:rgba(139,92,246,6%);border:1px solid rgba(139,92,246,.35);border-radius:99px;font-family:var(--font-mono);font-size:.85rem;transition:all var(--transition)}.tag-cloud-item:hover{border-color:var(--accent);background:rgba(139,92,246,.16);transform:translateY(-2px)}.tag-name{color:var(--accent-2)}.tag-count{color:var(--text-muted);font-size:.75rem;background:var(--bg-secondary);padding:.1rem .4rem;border-radius:3px}.pagination{display:flex;justify-content:center;align-items:center;gap:.5rem;margin-top:3rem;padding-top:2rem;border-top:1px solid var(--border-color);list-style:none}.page-item .page-link{font-family:var(--font-mono);font-size:.85rem;padding:.5rem .85rem;color:var(--text-secondary);border:1px solid var(--border-color);border-radius:6px;transition:all var(--transition);display:inline-block}.page-item .page-link:hover,.page-item.active .page-link{color:var(--accent-2);border-color:var(--accent);background:var(--accent-dim)}.page-item.disabled .page-link{opacity:.3;pointer-events:none}.site-footer{margin-top:auto;border-top:1px solid var(--border-color);padding:2.5rem 0;background:var(--bg-secondary)}.footer-inner{display:flex;justify-content:space-between;align-items:center}.footer-info p{font-size:.85rem;color:var(--text-muted)}.footer-location{font-family:var(--font-mono);font-size:.8rem!important}.footer-links{display:flex;align-items:center;gap:1.25rem}.footer-links a{color:var(--text-secondary);transition:color var(--transition);font-size:.85rem}.footer-links a:hover{color:var(--accent-2)}.about-page .post-content{font-size:1rem}.rv{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}.rv.in{opacity:1;transform:none}@media(max-width:768px){.container{padding:0 1.25rem}.nav-toggle{display:flex}.nav-list{position:fixed;top:60px;left:0;right:0;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-direction:column;padding:1.5rem;gap:1rem;transform:translateY(-100%);opacity:0;transition:all .3s ease;pointer-events:none}.nav-list.active{transform:translateY(0);opacity:1;pointer-events:all}.hero{padding:3rem 0 2.5rem}.hero-subtitle{font-size:.95rem}.post-nav{grid-template-columns:1fr}.post-nav-next{grid-column:1;text-align:left}.footer-inner{flex-direction:column;gap:1rem;text-align:center}.section-header{flex-direction:column;gap:.25rem}}@media(min-width:769px){.post-card:has(.post-card-image){grid-template-columns:280px 1fr}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}}::selection{background:var(--accent);color:#0a0b0f}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}