:root{--bg-primary:#000000;--text-primary:#00ff00;--accent-red:#ff0000;--accent-blue:#0080ff;--accent-yellow:#ffff00;--text-muted:#808080;--border-color:#00ff00;--selection-bg:#333333;--font-mono:'Monaco', 'Menlo', 'Ubuntu Mono', monospace;--font-ui:'Arial', 'Helvetica', sans-serif;--space-1:8px;--space-2:16px;--space-3:24px;--space-4:32px;--space-5:40px;--space-6:48px;--space-8:64px;--space-10:80px;--space-12:96px;--grid-gap:var(--space-3);--container-max:1200px;--content-max:800px}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-ui);background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;font-weight:400;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}::selection{background-color:var(--selection-bg);color:var(--accent-yellow)}::-moz-selection{background-color:var(--selection-bg);color:var(--accent-yellow)}h1,h2,h3,h4,h5,h6{font-family:var(--font-mono);font-weight:700;line-height:1.2;margin-bottom:var(--space-2);text-transform:uppercase}h1{font-size:2.5rem;margin-bottom:var(--space-4)}h2{font-size:2rem;margin-bottom:var(--space-3)}h3{font-size:1.5rem}h4{font-size:1.25rem}p{margin-bottom:var(--space-2)}a{color:var(--accent-blue);text-decoration:underline;transition:none}a:hover{color:var(--accent-yellow);text-decoration:none}a:visited{color:#f0f}code{font-family:var(--font-mono);background-color:rgba(240,246,252,.1);padding:2px 6px;border-radius:4px;font-size:.9em}pre{font-family:var(--font-mono);background-color:rgba(240,246,252,5%);padding:var(--space-2);border-radius:8px;overflow-x:auto;margin:var(--space-2)0;border:1px solid rgba(240,246,252,.1)}pre code{background:0 0;padding:0}.container{max-width:var(--container-max);margin:0 auto;padding:0 var(--space-2)}.content{max-width:var(--content-max);margin:0 auto}.site-header{padding:var(--space-4)0;border-bottom:2px solid var(--border-color);margin-bottom:var(--space-6);background:repeating-linear-gradient( 90deg,transparent,transparent 1px,rgba(0,255,0,2%) 1px,rgba(0,255,0,2%) 2px )}.site-nav{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:var(--space-4)}.site-title{font-family:var(--font-mono);font-size:1.2rem;font-weight:700;color:var(--text-primary);text-decoration:none;text-transform:uppercase}.site-title:hover{color:var(--accent-red);text-decoration:none}.nav-menu{display:flex;gap:var(--space-4);list-style:none;justify-self:end}.nav-menu a{font-family:var(--font-mono);font-weight:400;text-transform:lowercase}.nav-menu a:hover{color:var(--accent-red);text-decoration:none}.terminal-window{background-color:var(--bg-primary);border:2px solid var(--border-color);padding:var(--space-2);margin:var(--space-3)0;font-family:var(--font-mono)}.terminal-header{display:flex;align-items:center;gap:var(--space-1);margin-bottom:var(--space-2);padding-bottom:var(--space-1);border-bottom:1px solid var(--text-muted)}.terminal-dot{width:12px;height:12px;border-radius:50%}.terminal-dot.red{background-color:#ff5f56}.terminal-dot.yellow{background-color:#ffbd2e}.terminal-dot.green{background-color:#27ca3f}.terminal-content{font-family:var(--font-mono);line-height:1.4}.prompt{color:var(--accent-red)}.command{color:var(--text-primary)}.ascii-art{font-family:var(--font-mono);font-size:.75rem;line-height:1.2;white-space:pre;color:var(--text-muted);margin:var(--space-3)0;text-align:left}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:var(--space-4);margin:var(--space-4)0}.blog-grid{display:grid;grid-template-columns:1fr;gap:var(--space-4);margin:var(--space-4)0}.blog-card{background-color:var(--bg-primary);border:2px solid var(--border-color);padding:var(--space-4);transition:border-color .3s ease}.blog-card:hover{border-color:var(--accent-blue)}.blog-header h2{margin-bottom:var(--space-2)}.blog-header h2 a{color:var(--text-primary);text-decoration:none;font-size:1.5rem}.blog-header h2 a:hover{color:var(--accent-blue)}.blog-meta{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3);align-items:center}.blog-meta .date{color:var(--text-muted);font-family:var(--font-mono);font-size:.9rem}.blog-meta .tags{display:flex;gap:var(--space-1)}.blog-meta .tag{background-color:var(--selection-bg);color:var(--accent-yellow);padding:2px 8px;border-radius:3px;font-size:.8rem;font-family:var(--font-mono)}.blog-summary{margin-bottom:var(--space-3);color:var(--text-primary);line-height:1.6}.blog-footer .read-more{color:var(--accent-blue);text-decoration:none;font-family:var(--font-mono);font-weight:700}.blog-footer .read-more:hover{color:var(--accent-yellow)}.project-card{background-color:var(--bg-primary);border:2px solid var(--border-color);padding:var(--space-3);margin-bottom:var(--space-3)}.project-card:hover{border-color:var(--accent-red)}.project-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.project-icon{width:24px;height:24px;color:var(--accent-blue)}.project-title{font-family:var(--font-code);font-size:1.25rem;color:var(--text-primary);margin:0}.project-meta{display:flex;gap:var(--space-2);margin-bottom:var(--space-2);font-size:.9rem;color:var(--text-muted)}.project-category{background-color:rgba(88,166,255,.1);color:var(--accent-blue);padding:2px var(--space-1);border-radius:4px;font-family:var(--font-mono);font-size:.8rem}.project-description{margin-bottom:var(--space-3);line-height:1.6}.tech-stack{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-bottom:var(--space-3)}.tech-tag{background-color:rgba(240,246,252,.1);color:var(--text-muted);padding:2px var(--space-1);border-radius:4px;font-family:var(--font-mono);font-size:.75rem}.project-links{display:flex;gap:var(--space-2);margin-top:auto}.btn-primary{background-color:var(--text-primary);color:var(--bg-primary);padding:var(--space-1)var(--space-2);border:2px solid var(--text-primary);font-family:var(--font-mono);font-weight:700;text-decoration:none;display:inline-block;font-size:.8rem;text-transform:uppercase}.btn-primary:hover{background-color:var(--accent-red);color:var(--text-primary);border-color:var(--accent-red)}.btn-secondary{background-color:transparent;color:var(--text-primary);border:2px solid var(--text-primary);padding:var(--space-1)var(--space-2);font-family:var(--font-mono);font-weight:700;text-decoration:none;display:inline-block;font-size:.8rem;text-transform:uppercase}.btn-secondary:hover{background-color:var(--text-primary);color:var(--bg-primary)}.site-footer{margin-top:var(--space-12);padding:var(--space-6)0;border-top:1px solid rgba(240,246,252,.1);text-align:center;color:var(--text-muted);font-family:var(--font-mono)}@media(max-width:768px){.site-nav{grid-template-columns:1fr;gap:var(--space-2);text-align:center}.nav-menu{justify-self:center;flex-wrap:wrap;gap:var(--space-2)}.projects-grid{grid-template-columns:1fr}h1{font-size:2rem}h2{font-size:1.75rem}.ascii-art{font-size:.7rem}}@media(max-width:480px){:root{--space-2:12px;--space-3:18px;--space-4:24px}.container{padding:0 var(--space-2)}.project-card{padding:var(--space-3)}h1{font-size:1.75rem}.ascii-art{font-size:.6rem}}.text-center{text-align:center}.text-muted{color:var(--text-muted)}.mb-0{margin-bottom:0}.mb-2{margin-bottom:var(--space-2)}.mb-4{margin-bottom:var(--space-4)}.mt-4{margin-top:var(--space-4)}.mt-8{margin-top:var(--space-8)}.matrix-bg{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:-1;opacity:.03;background:radial-gradient(circle at 25% 25%,var(--text-primary) 1px,transparent 1px),radial-gradient(circle at 75% 75%,var(--text-primary) 1px,transparent 1px);background-size:50px 50px;animation:matrix-scroll 20s linear infinite}@keyframes matrix-scroll{0%{transform:translateY(0)}100%{transform:translateY(50px)}}.cursor-blink{animation:cursor-blink 1s infinite}@keyframes cursor-blink{0%,50%{opacity:1}51%,100%{opacity:0}}.ascii-banner{font-family:var(--font-mono);font-size:.6rem;line-height:1;color:var(--accent-blue);text-shadow:0 0 5px var(--accent-blue);white-space:pre;overflow-x:auto;margin:var(--space-4)0;padding:var(--space-2);border:1px solid var(--accent-blue);background:rgba(0,128,255,5%)}.glitch-text{position:relative;color:var(--text-primary)}.glitch-text::before,.glitch-text::after{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%}.glitch-text::before{animation:glitch-1 .3s infinite;color:var(--accent-red);z-index:-1}.glitch-text::after{animation:glitch-2 .3s infinite;color:var(--accent-blue);z-index:-2}@keyframes glitch-1{0%,14%,15%,49%,50%,99%,100%{transform:translateX(0)}15%,49%{transform:translateX(-2px)}}@keyframes glitch-2{0%,20%,21%,62%,63%,99%,100%{transform:translateX(0)}21%,62%{transform:translateX(2px)}}