:root{--bg: #060606;--bg2: #0c0c0c;--bg3: #111111;--green: #00ff88;--green2: #00cc6a;--cyan: #00d4ff;--red: #ff4444;--yellow: #ffcc00;--dim: #3a3a4a;--dim2: #5a5a6a;--text: #d0f0e0;--border: rgba(0,255,136,.1);--border2: rgba(0,255,136,.25);--glow: 0 0 20px rgba(0,255,136,.15);--glow2: 0 0 40px rgba(0,255,136,.25);--r: 6px;--t: .2s ease}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box;scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:Inter,sans-serif;font-size:1rem;line-height:1.7;overflow-x:hidden}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.04) 2px,rgba(0,0,0,.04) 4px);pointer-events:none;z-index:9999}#canvas{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}.cursor{display:inline-block;color:var(--green);animation:blink 1s step-end infinite;font-weight:300}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:1rem 2.5rem;background:#060606eb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.nav-logo{font-family:JetBrains Mono,monospace;font-size:1rem;color:var(--green);font-weight:600;letter-spacing:2px;text-shadow:var(--glow)}.nav-links{display:flex;gap:2rem;list-style:none}.nav-links a{font-family:JetBrains Mono,monospace;font-size:.75rem;color:var(--dim2);text-decoration:none;letter-spacing:2px;transition:color var(--t),text-shadow var(--t)}.nav-links a:before{content:"./";color:var(--dim)}.nav-links a:hover{color:var(--green);text-shadow:var(--glow)}.terminal-window{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r);overflow:hidden;box-shadow:var(--glow2),inset 0 0 0 1px #00ff880d}.terminal-bar{display:flex;align-items:center;gap:.5rem;padding:.65rem 1rem;background:var(--bg3);border-bottom:1px solid var(--border)}.t-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.t-red{background:#ff5f57}.t-yellow{background:#febc2e}.t-green{background:#28c840}.t-title{font-family:JetBrains Mono,monospace;font-size:.7rem;color:var(--dim2);margin-left:.5rem;letter-spacing:1px}.terminal-body{padding:1.4rem 1.6rem;display:flex;flex-direction:column;gap:.3rem}.t-line{font-family:JetBrains Mono,monospace;font-size:.82rem;line-height:1.6}.t-prompt{color:var(--green);font-weight:600;margin-right:.5rem}.t-cmd{color:var(--cyan)}.t-out{color:var(--text);padding-left:1rem}.t-dim{color:var(--dim2)}.t-skills{color:var(--green);opacity:.75}.code-block{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:1rem 1.2rem;margin-top:1.5rem;font-family:JetBrains Mono,monospace;font-size:.78rem;display:flex;flex-direction:column;gap:.2rem}.code-block .t-prompt{color:var(--green2)}.code-block .t-out{color:var(--text);opacity:.7;padding-left:0}.code-block .t-dim{font-size:.72rem}#hero{position:relative;z-index:1;min-height:100vh;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:4rem;padding:8rem 5rem 4rem;max-width:1300px;margin:0 auto}.hero-content{display:flex;flex-direction:column;gap:1.2rem}.hero-eyebrow{font-family:JetBrains Mono,monospace;font-size:.7rem;color:var(--green);letter-spacing:4px;opacity:.7}.hero-name{font-size:clamp(3.5rem,6vw,6rem);font-weight:700;line-height:.92;letter-spacing:-3px;color:#fff}.name-accent{color:var(--green);text-shadow:0 0 30px rgba(0,255,136,.4);font-weight:800}.hero-bio{font-family:JetBrains Mono,monospace;font-size:.85rem;color:var(--dim2);letter-spacing:2px}.hero-ctas{display:flex;gap:1rem;flex-wrap:wrap}.btn-primary{display:inline-block;padding:.75rem 1.8rem;background:var(--green);color:#060606;font-family:JetBrains Mono,monospace;font-weight:700;font-size:.8rem;text-decoration:none;border-radius:var(--r);letter-spacing:1px;transition:box-shadow var(--t),transform var(--t);box-shadow:0 0 20px #00ff884d}.btn-primary:hover{box-shadow:0 0 35px #00ff888c;transform:translateY(-2px)}.btn-ghost{display:inline-block;padding:.75rem 1.8rem;background:transparent;color:var(--green);font-family:JetBrains Mono,monospace;font-weight:500;font-size:.8rem;text-decoration:none;border-radius:var(--r);border:1px solid var(--border2);letter-spacing:1px;transition:background var(--t),box-shadow var(--t),transform var(--t)}.btn-ghost:hover{background:#00ff8812;box-shadow:var(--glow);transform:translateY(-2px)}.hero-status{display:flex;gap:.7rem;flex-wrap:wrap}.status-item{display:flex;align-items:center;gap:.45rem;font-family:JetBrains Mono,monospace;font-size:.65rem;letter-spacing:1px;color:var(--dim2);background:var(--bg2);border:1px solid var(--border);padding:.35rem .9rem;border-radius:3px}.dot{width:7px;height:7px;border-radius:50%;background:var(--dim);flex-shrink:0}.dot.online{background:var(--green);box-shadow:0 0 8px var(--green);animation:pulse-dot 2s ease infinite}.dot.offline{background:var(--red)}.scroll-hint{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);font-family:JetBrains Mono,monospace;font-size:.62rem;color:var(--dim);letter-spacing:4px;animation:fade-hint 2s ease-in-out infinite}.section{position:relative;z-index:1;border-top:1px solid var(--border);padding:6rem 0}.section-inner{max-width:1200px;margin:0 auto;padding:0 5rem}.section-label{font-family:JetBrains Mono,monospace;font-size:.68rem;color:var(--green);letter-spacing:5px;margin-bottom:.5rem;opacity:.7}.section-title{font-size:clamp(1.8rem,3vw,2.8rem);font-weight:700;color:#fff;letter-spacing:-1.5px;margin-bottom:3rem}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--r);overflow:hidden}.skill-card{background:var(--bg);padding:2rem;position:relative;transition:background var(--t)}.skill-card:hover{background:var(--bg2)}.skill-card:hover .skill-num{color:var(--green);text-shadow:var(--glow)}.skill-num{position:absolute;top:1.2rem;right:1.4rem;font-family:JetBrains Mono,monospace;font-size:.65rem;color:var(--dim);letter-spacing:2px;transition:color var(--t),text-shadow var(--t)}.skill-icon{font-size:1.8rem;margin-bottom:.8rem}.skill-card h3{font-size:1rem;font-weight:600;color:#fff;margin-bottom:.5rem}.skill-card p{font-size:.82rem;color:var(--dim2);line-height:1.6}.stats-bar{position:relative;z-index:1;display:flex;justify-content:center;align-items:center;gap:3rem;padding:2.5rem 5rem;background:var(--bg2);border-top:1px solid var(--border);border-bottom:1px solid var(--border);flex-wrap:wrap}.stat{text-align:center}.stat-num{display:block;font-family:JetBrains Mono,monospace;font-size:2.2rem;font-weight:700;color:var(--green);text-shadow:var(--glow);letter-spacing:-1px}.stat-label{font-family:JetBrains Mono,monospace;font-size:.65rem;color:var(--dim2);letter-spacing:3px;text-transform:uppercase}.stat-sep{font-family:JetBrains Mono,monospace;font-size:2rem;color:var(--border2)}.homelab-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}.homelab-desc p{font-size:.9rem;color:var(--dim2);line-height:1.7;margin-bottom:1rem}.services-list{display:flex;flex-direction:column;gap:.5rem}.service-row{display:flex;align-items:center;gap:1rem;padding:.9rem 1.2rem;background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);transition:border-color var(--t),background var(--t)}.service-row:hover{border-color:var(--border2);background:var(--bg3)}.svc-icon{font-size:1.2rem;flex-shrink:0}.svc-name{font-size:.88rem;font-weight:600;color:#fff}.svc-type{font-family:JetBrains Mono,monospace;font-size:.6rem;color:var(--dim2);letter-spacing:2px;margin-top:.1rem}.svc-badge{margin-left:auto;font-family:JetBrains Mono,monospace;font-size:.6rem;padding:.2rem .6rem;border-radius:3px;letter-spacing:2px;flex-shrink:0}.svc-badge.online{background:#00ff881a;color:var(--green);border:1px solid rgba(0,255,136,.25)}.tools-intro{font-family:JetBrains Mono,monospace;font-size:.78rem;color:var(--dim2);letter-spacing:1px;margin-bottom:2rem}.tools-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.tool-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:1.8rem;display:flex;flex-direction:column;gap:.8rem;text-decoration:none;transition:border-color var(--t),box-shadow var(--t),background var(--t);position:relative;overflow:hidden}.tool-card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--green),transparent);opacity:0;transition:opacity .3s}.tool-card:hover{border-color:var(--border2);box-shadow:var(--glow2);background:var(--bg3)}.tool-card:hover:before{opacity:1}.tool-card-top{display:flex;align-items:center;justify-content:space-between}.tool-icon{font-size:1.8rem}.tool-badge{font-family:JetBrains Mono,monospace;font-size:.6rem;padding:.2rem .6rem;border-radius:3px;background:#00ff881a;color:var(--green);border:1px solid rgba(0,255,136,.25);letter-spacing:2px}.tool-card h3{font-size:1.2rem;font-weight:700;color:#fff;letter-spacing:-.5px}.tool-card p{font-size:.83rem;color:var(--dim2);line-height:1.6;flex:1}.tool-meta{display:flex;flex-wrap:wrap;gap:.4rem}.tool-tag{font-family:JetBrains Mono,monospace;font-size:.6rem;padding:.2rem .55rem;border-radius:3px;background:#00ff880f;border:1px solid var(--border);color:var(--green);letter-spacing:1px}.tool-link{font-family:JetBrains Mono,monospace;font-size:.72rem;color:var(--green);letter-spacing:2px;margin-top:.3rem;transition:text-shadow var(--t)}.tool-card:hover .tool-link{text-shadow:var(--glow)}.claude-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.claude-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:1.4rem;display:flex;flex-direction:column;gap:.6rem;transition:border-color var(--t),background var(--t),box-shadow var(--t);position:relative;overflow:hidden}.claude-card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--green),transparent);opacity:0;transition:opacity .3s}.claude-card:hover{border-color:var(--border2);box-shadow:var(--glow)}.claude-card:hover:before{opacity:1}.claude-card-top{display:flex;align-items:center;justify-content:space-between}.claude-category{font-family:JetBrains Mono,monospace;font-size:.58rem;letter-spacing:2px;padding:.2rem .6rem;border-radius:3px;background:#00d4ff14;border:1px solid rgba(0,212,255,.2);color:var(--cyan)}.claude-icon{font-size:.85rem;opacity:.3;color:var(--green)}.claude-card h3{font-size:.9rem;font-weight:600;color:#fff;line-height:1.35}.claude-card p{font-size:.78rem;color:var(--dim2);line-height:1.5;flex:1}.claude-tags{display:flex;flex-wrap:wrap;gap:.3rem}.claude-tag{font-family:JetBrains Mono,monospace;font-size:.58rem;padding:.15rem .45rem;border-radius:3px;background:#00ff880f;border:1px solid var(--border);color:var(--green)}.claude-link{font-family:JetBrains Mono,monospace;font-size:.68rem;color:var(--green);text-decoration:none;opacity:.7;transition:opacity var(--t)}.claude-link:hover{opacity:1}.news-ts{font-family:JetBrains Mono,monospace;font-size:.62rem;color:var(--dim2);letter-spacing:2px;margin-bottom:1.5rem;display:block}.news-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.news-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:border-color var(--t),box-shadow var(--t)}.news-card:hover{border-color:var(--border2);box-shadow:var(--glow)}.news-card-img{width:100%;height:140px;object-fit:cover;background:var(--bg3);filter:grayscale(30%)}.news-card-body{padding:1rem;display:flex;flex-direction:column;gap:.45rem;flex:1}.news-meta{display:flex;align-items:center;justify-content:space-between}.news-category{font-family:JetBrains Mono,monospace;font-size:.58rem;letter-spacing:2px;padding:.15rem .55rem;border-radius:3px;border:1px solid var(--border2);color:var(--green);background:#00ff880f}.news-source{font-size:.68rem;color:var(--dim2);font-family:JetBrains Mono,monospace}.news-card h3{font-size:.85rem;font-weight:600;color:#fff;line-height:1.35}.news-card p{font-size:.76rem;color:var(--dim2);line-height:1.5}.section-contact{background:var(--bg)}.contact-inner{display:flex;flex-direction:column;align-items:center;text-align:center}.contact-terminal{width:100%;max-width:600px}.contact-body{gap:.4rem}.contact-actions{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;padding:1.2rem 0 .5rem}footer{position:relative;z-index:1;text-align:center;padding:1.5rem;border-top:1px solid var(--border);font-family:JetBrains Mono,monospace;font-size:.65rem;letter-spacing:2px}#now-playing{align-items:center;gap:.8rem;background:var(--bg2);border:1px solid var(--border);border-radius:3px;padding:.5rem .9rem;font-family:JetBrains Mono,monospace;width:fit-content;max-width:280px}.np-bars{display:flex;align-items:flex-end;gap:2px;height:14px;flex-shrink:0}.np-bars span{display:block;width:3px;background:var(--green);border-radius:1px;box-shadow:0 0 6px var(--green);animation:np-bounce 1s ease-in-out infinite}.np-bars span:nth-child(2){animation-delay:.15s}.np-bars span:nth-child(3){animation-delay:.3s}@keyframes np-bounce{0%,to{height:4px}50%{height:14px}}.np-info{display:flex;flex-direction:column;gap:.1rem;min-width:0}.np-label{font-size:.58rem;color:var(--green);letter-spacing:2px;opacity:.7}.np-title{font-size:.72rem;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.np-bars.np-idle span{animation:none;height:4px;background:var(--dim);box-shadow:none}.np-artist{font-size:.65rem;color:var(--dim2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}@keyframes fade-hint{0%,to{opacity:.2}50%{opacity:.7}}@media (max-width: 1024px){#hero{grid-template-columns:1fr;gap:2.5rem;padding:7rem 2.5rem 3rem}.terminal-window{order:-1}.section-inner{padding:0 2.5rem}.stats-bar{padding:2rem 2.5rem;gap:2rem}.homelab-grid{grid-template-columns:1fr;gap:2rem}.skills-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 600px){nav{padding:.9rem 1.2rem}.nav-links{display:none}#hero{padding:6rem 1.5rem 2rem}.section-inner{padding:0 1.5rem}.stats-bar{padding:1.5rem;gap:1.5rem}.stat-sep{display:none}.skills-grid{grid-template-columns:1fr}.hero-name{letter-spacing:-2px}}
