@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500;600;700;800&family=Fira+Code:wght@300;400;500;600;700&display=swap');
:root{--primary:#00ff41;--primary-dim:#00cc33;--secondary:#39ff14;--accent:#00d4ff;--danger:#ff4444;--warning:#f59e0b;--bg:#0a0a0a;--surface:#0f1117;--surface-2:#131820;--surface-3:#1a2030;--border:#1a2a1a;--border-bright:#2a4a2a;--text:#e2e8f0;--text-dim:#8892a4;--text-muted:#4a5568;--text-bright:#f8fafc;--font-mono:'JetBrains Mono','Fira Code','Courier New',monospace;--radius:4px;--radius-lg:8px;--glow:0 0 20px rgba(0,255,65,.15);--glow-strong:0 0 40px rgba(0,255,65,.3);--transition:.25s ease}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:15px}
body{font-family:var(--font-mono);background:var(--bg);color:var(--text);line-height:1.7;min-height:100vh;overflow-x:hidden}
#network-canvas{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.35}
#page-wrapper{position:relative;z-index:1}
::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--primary-dim);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--primary)}
::selection{background:rgba(0,255,65,.2);color:var(--primary)}
h1,h2,h3,h4,h5,h6{font-family:var(--font-mono);color:var(--text-bright);font-weight:700;letter-spacing:-.02em;line-height:1.3}
h1{font-size:2.2rem}h2{font-size:1.7rem}h3{font-size:1.3rem}h4{font-size:1.1rem}
a{color:var(--primary);text-decoration:none;transition:color var(--transition),text-shadow var(--transition)}
a:hover{color:var(--secondary);text-shadow:0 0 8px rgba(0,255,65,.5)}
p{margin-bottom:1rem;color:var(--text)}
code,kbd{font-family:var(--font-mono);background:var(--surface-3);color:var(--primary);padding:2px 6px;border-radius:var(--radius);font-size:.875em;border:1px solid var(--border)}
pre{background:var(--surface-2);border:1px solid var(--border-bright);border-left:3px solid var(--primary);border-radius:var(--radius-lg);padding:1.25rem;overflow-x:auto;margin:1.25rem 0;position:relative}
pre code{background:transparent;border:none;padding:0;color:var(--text);font-size:.875rem}
blockquote{border-left:3px solid var(--primary);padding:1rem 1.25rem;background:var(--surface-2);border-radius:0 var(--radius-lg) var(--radius-lg) 0;color:var(--text-dim);margin:1.25rem 0}
ul,ol{padding-left:1.5rem;margin-bottom:1rem}li{margin-bottom:.35rem}
img{max-width:100%;height:auto;border-radius:var(--radius)}
hr{border:none;border-top:1px solid var(--border);margin:2rem 0}
table{width:100%;border-collapse:collapse;margin:1rem 0}
th,td{padding:.625rem .875rem;border:1px solid var(--border);text-align:left}
th{background:var(--surface-3);color:var(--primary);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}
tr:nth-child(even) td{background:var(--surface-2)}
.container{max-width:1200px;margin:0 auto;padding:0 1.5rem}
.container-sm{max-width:800px;margin:0 auto;padding:0 1.5rem}
.text-primary{color:var(--primary)!important}.text-accent{color:var(--accent)!important}.text-dim{color:var(--text-dim)!important}.text-muted{color:var(--text-muted)!important}
.d-flex{display:flex}.align-center{align-items:center}.gap-1{gap:.5rem}.gap-2{gap:1rem}
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1.25rem;border-radius:var(--radius);border:1px solid transparent;font-family:var(--font-mono);font-size:.875rem;font-weight:600;cursor:pointer;transition:all var(--transition);text-decoration:none}
.btn-primary{background:transparent;border-color:var(--primary);color:var(--primary)}.btn-primary:hover{background:var(--primary);color:var(--bg);box-shadow:var(--glow)}
.btn-accent{background:transparent;border-color:var(--accent);color:var(--accent)}.btn-accent:hover{background:var(--accent);color:var(--bg)}
.btn-ghost{background:transparent;border-color:var(--border);color:var(--text-dim)}.btn-ghost:hover{border-color:var(--border-bright);color:var(--text)}
.btn-sm{padding:.35rem .75rem;font-size:.8rem}.btn-lg{padding:.85rem 1.75rem;font-size:1rem}
.badge{display:inline-block;padding:.2rem .55rem;border-radius:var(--radius);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;border:1px solid currentColor}
.badge-primary{color:var(--primary);background:rgba(0,255,65,.1)}.badge-accent{color:var(--accent);background:rgba(0,212,255,.1)}
input[type=text],input[type=email],input[type=password],input[type=search],input[type=url],textarea,select{width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:var(--font-mono);font-size:.9rem;padding:.6rem .875rem;transition:border-color var(--transition),box-shadow var(--transition);outline:none}
input:focus,textarea:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 2px rgba(0,255,65,.15)}
label{display:block;font-size:.8rem;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.4rem}
.form-group{margin-bottom:1.25rem}textarea{resize:vertical;min-height:120px}
/* Navbar */
.navbar{position:sticky;top:0;z-index:100;background:rgba(10,10,10,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);padding:0 1.5rem;height:60px;display:flex;align-items:center}
.navbar-inner{width:100%;max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between}
.logo{font-size:1.4rem;font-weight:800;letter-spacing:-.03em;color:var(--text-bright);text-decoration:none;display:flex;align-items:center;transition:text-shadow var(--transition)}
.logo:hover{text-shadow:var(--glow-strong);color:var(--text-bright)}
.logo-bracket{color:var(--primary)}.logo-main{color:var(--text-bright)}
.logo-cursor{display:inline-block;width:10px;height:20px;background:var(--primary);margin-left:2px;vertical-align:middle;animation:blink 1s step-end infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}
.nav-links{display:flex;align-items:center;gap:.25rem;list-style:none}
.nav-links a{color:var(--text-dim);font-size:.875rem;font-weight:500;padding:.4rem .75rem;border-radius:var(--radius);border:1px solid transparent;transition:all var(--transition);display:flex;align-items:center;gap:.4rem;text-decoration:none}
.nav-links a:hover,.nav-links a.active{color:var(--primary);border-color:var(--border-bright);background:rgba(0,255,65,.05);text-shadow:none}
.nav-search{background:var(--surface)!important;border:1px solid var(--border)!important;color:var(--text-dim)!important;padding:.35rem .75rem!important;font-size:.8rem!important;width:160px!important;border-radius:var(--radius)!important;transition:width var(--transition),border-color var(--transition)!important}
.nav-search:focus{border-color:var(--primary)!important;width:220px!important;color:var(--text)!important}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;color:var(--text);flex-direction:column;gap:5px;padding:4px}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--text);border-radius:2px}
@media(max-width:768px){.nav-toggle{display:flex}.nav-links{display:none}.nav-links.open{display:flex;flex-direction:column;position:absolute;top:60px;left:0;right:0;background:var(--surface);border-bottom:1px solid var(--border);padding:1rem 1.5rem;gap:.25rem;z-index:99}.nav-links.open a{width:100%}}
/* Hero */
.hero{padding:5rem 1.5rem 4rem;text-align:center;position:relative}
.hero-label{display:inline-block;font-size:.75rem;color:var(--primary);text-transform:uppercase;letter-spacing:.2em;border:1px solid var(--border-bright);background:rgba(0,255,65,.05);padding:.3rem .875rem;border-radius:var(--radius);margin-bottom:1.5rem}
.hero-label::before{content:'> '}
.hero-title{font-size:clamp(2rem,5vw,3.5rem);font-weight:800;line-height:1.15;margin-bottom:1.25rem;background:linear-gradient(135deg,var(--text-bright) 0%,var(--primary) 50%,var(--accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.hero-subtitle{font-size:1.05rem;color:var(--text-dim);max-width:600px;margin:0 auto 2rem;line-height:1.7}
.hero-subtitle::before{content:'// ';color:var(--text-muted)}
.hero-terminal{display:inline-block;background:var(--surface);border:1px solid var(--border-bright);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;text-align:left;font-size:.85rem;max-width:520px;width:100%;margin:2rem auto 0;box-shadow:var(--glow)}
.terminal-bar{display:flex;align-items:center;gap:.5rem;margin-bottom:.875rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}
.terminal-dot{width:10px;height:10px;border-radius:50%}.terminal-dot.red{background:#ff5f57}.terminal-dot.yellow{background:#febc2e}.terminal-dot.green{background:#28c840}
.terminal-title{font-size:.75rem;color:var(--text-muted);margin-left:.25rem}
.terminal-line{display:block;line-height:1.9;min-height:1.6em}
.terminal-prompt{color:var(--primary)}.terminal-prompt::before{content:'$ ';color:var(--text-muted)}
.terminal-output{color:var(--text-dim);padding-left:1.25rem}
.terminal-cursor{display:inline-block;width:8px;height:14px;background:var(--primary);animation:blink 1s step-end infinite;vertical-align:middle;margin-left:2px}
/* Sections */
.section{padding:3.5rem 0}
.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2.5rem;gap:1rem}
.section-header h2{font-size:1.4rem;display:flex;align-items:center;gap:.625rem;color:var(--text-bright)}
.section-header h2::before{content:'';display:inline-block;width:3px;height:1.2em;background:var(--primary);border-radius:2px;box-shadow:0 0 8px var(--primary)}
.section-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.12em}
.section-link{font-size:.8rem;color:var(--text-muted);border:1px solid var(--border);padding:.3rem .75rem;border-radius:var(--radius);transition:all var(--transition);white-space:nowrap;text-decoration:none}
.section-link:hover{color:var(--primary);border-color:var(--primary);text-shadow:none}
/* Post cards */
.post-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.25rem}
.post-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;transition:border-color var(--transition),transform var(--transition),box-shadow var(--transition);display:flex;flex-direction:column;position:relative;overflow:hidden}
.post-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--cat-color,var(--primary));opacity:0;transition:opacity var(--transition)}
.post-card:hover{border-color:var(--border-bright);transform:translateY(-2px);box-shadow:var(--glow)}.post-card:hover::before{opacity:1}
.post-card-meta{display:flex;align-items:center;gap:.75rem;margin-bottom:.875rem;font-size:.75rem;color:var(--text-muted);flex-wrap:wrap}
.post-cat-badge{padding:.2rem .5rem;border-radius:var(--radius);border:1px solid;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;text-decoration:none}
.post-card h3 a,.post-card h2 a{color:var(--text-bright)}.post-card h3 a:hover,.post-card h2 a:hover{color:var(--primary);text-shadow:none}
.post-excerpt{font-size:.85rem;color:var(--text-dim);line-height:1.6;margin-bottom:1rem;flex-grow:1}
.post-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:1rem;border-top:1px solid var(--border);font-size:.75rem;color:var(--text-muted);gap:.5rem;flex-wrap:wrap}
.post-card-footer a{color:var(--primary);font-size:.8rem;font-weight:600}
.post-card.featured{border-color:rgba(0,255,65,.2);background:linear-gradient(135deg,var(--surface) 0%,rgba(0,255,65,.03) 100%)}
@media(max-width:640px){.post-grid{grid-template-columns:1fr}}
/* Category cards */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}
.cat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;text-decoration:none;display:flex;align-items:center;gap:.875rem;transition:all var(--transition);position:relative;overflow:hidden}
.cat-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--cat-color,var(--primary));transform:scaleX(0);transition:transform var(--transition);transform-origin:left}
.cat-card:hover{border-color:var(--border-bright);transform:translateY(-2px)}.cat-card:hover::after{transform:scaleX(1)}
.cat-icon{width:40px;height:40px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0;background:rgba(255,255,255,.04)}
.cat-name{font-size:.9rem;font-weight:600;color:var(--text-bright);margin-bottom:.2rem}.cat-count{font-size:.75rem;color:var(--text-muted)}
/* Stats */
.stats-bar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem 2rem;display:flex;align-items:center;justify-content:space-around;gap:1rem;flex-wrap:wrap}
.stat-item{text-align:center}
.stat-value{display:block;font-size:2rem;font-weight:800;color:var(--primary);line-height:1;text-shadow:0 0 15px rgba(0,255,65,.4)}
.stat-label{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-top:.25rem}
.stat-divider{width:1px;height:40px;background:var(--border)}
@media(max-width:600px){.stat-divider{display:none}}
/* Blog layout */
.blog-layout{display:grid;grid-template-columns:1fr 280px;gap:2rem;align-items:start;padding:2.5rem 1.5rem;max-width:1200px;margin:0 auto}
@media(max-width:900px){.blog-layout{grid-template-columns:1fr}}
.sidebar-widget{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;margin-bottom:1.25rem}
.widget-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--primary);margin-bottom:1rem;padding-bottom:.625rem;border-bottom:1px solid var(--border)}
.widget-title::before{content:'> '}
/* Post page */
.post-hero{padding:3rem 1.5rem 2rem;max-width:860px;margin:0 auto}
.post-title{font-size:clamp(1.6rem,3.5vw,2.5rem);line-height:1.25;margin-bottom:1rem}
.post-meta{display:flex;align-items:center;gap:1rem;font-size:.8rem;color:var(--text-muted);flex-wrap:wrap;margin-bottom:1.5rem}
.post-meta .sep{color:var(--border-bright)}
.post-body{max-width:860px;margin:0 auto;padding:0 1.5rem 4rem}
.post-body h2{font-size:1.5rem;margin:2.5rem 0 1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border);color:var(--primary)}
.post-body h3{font-size:1.2rem;margin:2rem 0 .75rem;color:var(--text-bright)}
.post-body a{color:var(--accent)}.post-body a:hover{color:var(--primary)}
.post-body strong{color:var(--text-bright);font-weight:600}
.post-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin:2rem 0;padding:1.25rem 0;border-top:1px solid var(--border)}
.tag-chip{padding:.25rem .7rem;border:1px solid var(--border-bright);border-radius:2px;font-size:.75rem;color:var(--text-dim);transition:all var(--transition);text-decoration:none}
.tag-chip:hover{border-color:var(--primary);color:var(--primary);background:rgba(0,255,65,.05);text-shadow:none}.tag-chip::before{content:'#';color:var(--text-muted);margin-right:1px}
.post-share{display:flex;align-items:center;gap:.75rem;font-size:.8rem;color:var(--text-muted);margin:2rem 0;flex-wrap:wrap}
.related-section{padding:2rem 1.5rem 4rem}
/* About */
.about-hero{padding:4rem 1.5rem 2rem;max-width:900px;margin:0 auto;display:grid;grid-template-columns:1fr auto;gap:3rem;align-items:start}
@media(max-width:680px){.about-hero{grid-template-columns:1fr}}
.about-avatar{width:160px;height:160px;border-radius:var(--radius-lg);background:var(--surface-3);border:2px solid var(--border-bright);display:flex;align-items:center;justify-content:center;font-size:3.5rem;color:var(--primary);flex-shrink:0;box-shadow:var(--glow);overflow:hidden}
.about-avatar img{width:100%;height:100%;object-fit:cover}
.about-handle{font-size:2rem;font-weight:800;color:var(--primary);margin-bottom:.25rem}.about-handle::before{content:'~ ';color:var(--text-muted)}
.about-tagline{font-size:.95rem;color:var(--text-dim);margin-bottom:1.25rem}
.about-bio{font-size:.9rem;color:var(--text);line-height:1.8;margin-bottom:1.5rem}
.skill-bar{margin-bottom:1rem}
.skill-header{display:flex;justify-content:space-between;font-size:.8rem;margin-bottom:.4rem}
.skill-name{color:var(--text)}.skill-pct{color:var(--primary)}
.skill-track{height:4px;background:var(--surface-3);border-radius:2px;overflow:hidden}
.skill-fill{height:100%;background:linear-gradient(90deg,var(--primary-dim),var(--primary));border-radius:2px;transition:width 1s ease;box-shadow:0 0 8px var(--primary)}
.social-links{display:flex;gap:.625rem;flex-wrap:wrap}
.social-link{display:flex;align-items:center;gap:.4rem;padding:.4rem .875rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.8rem;color:var(--text-dim);transition:all var(--transition);text-decoration:none}
.social-link:hover{border-color:var(--primary);color:var(--primary);background:rgba(0,255,65,.05);text-shadow:none}
/* Pagination */
.pagination{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:2rem 0;flex-wrap:wrap}
.pagination a,.pagination span{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--border);border-radius:var(--radius);font-size:.85rem;color:var(--text-dim);transition:all var(--transition);text-decoration:none}
.pagination a:hover{border-color:var(--primary);color:var(--primary);text-shadow:none}
.pagination .current{border-color:var(--primary);color:var(--primary);background:rgba(0,255,65,.1)}
.pagination .disabled{opacity:.3;pointer-events:none}
/* Search */
.search-hero{padding:3.5rem 1.5rem 2rem;max-width:700px;margin:0 auto;text-align:center}
.search-bar-wrap{position:relative;margin-top:1.5rem}
.search-bar-wrap input{font-size:1rem;padding:.875rem 1.25rem .875rem 3rem;border-radius:var(--radius-lg);border-color:var(--border-bright)}
.search-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}
/* 404 */
.error-page{min-height:80vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3rem}
.error-code{font-size:7rem;font-weight:800;color:var(--primary);line-height:1;text-shadow:var(--glow-strong);margin-bottom:.5rem}
.error-msg{font-size:1.1rem;color:var(--text-dim);margin-bottom:2rem}
/* Flash */
.flash-container{padding:.75rem 1.5rem}
.flash{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:var(--radius);font-size:.875rem;margin-bottom:.5rem;border:1px solid}
.flash-success{background:rgba(0,255,65,.05);border-color:var(--primary);color:var(--primary)}
.flash-error{background:rgba(255,68,68,.05);border-color:var(--danger);color:var(--danger)}
.flash-info{background:rgba(0,212,255,.05);border-color:var(--accent);color:var(--accent)}
/* Footer */
.footer{border-top:1px solid var(--border);background:var(--surface);padding:3rem 1.5rem 1.5rem;margin-top:4rem}
.footer-inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr;gap:3rem;margin-bottom:2rem}
@media(max-width:768px){.footer-inner{grid-template-columns:1fr 1fr}}@media(max-width:520px){.footer-inner{grid-template-columns:1fr;gap:2rem}}
.footer-col h4{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:var(--primary);margin-bottom:1rem}
.footer-col ul{list-style:none;padding:0}.footer-col ul li{margin-bottom:.5rem}
.footer-col ul li a{font-size:.85rem;color:var(--text-dim);transition:color var(--transition)}.footer-col ul li a:hover{color:var(--primary);text-shadow:none}
.footer-bottom{max-width:1200px;margin:0 auto;padding-top:1.5rem;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.footer-bottom p{font-size:.75rem;color:var(--text-muted)}
/* Animations */
@keyframes fadeInUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes glowPulse{0%,100%{text-shadow:0 0 10px rgba(0,255,65,.4)}50%{text-shadow:0 0 25px rgba(0,255,65,.8)}}
.fade-in-up{animation:fadeInUp .5s ease both}.glow-text{animation:glowPulse 3s ease infinite}
@media(max-width:480px){html{font-size:14px}.hero{padding:3rem 1rem 2rem}.hero-title{font-size:1.8rem}.section{padding:2.5rem 0}}
