*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0a0a0a;--bg2:#0f0f0f;--bg3:#141414;--border:#1e1e1e;--border2:#2a2a2a;--cyan:#00d4ff;--cyan-dim:#00d4ff1f;--cyan-glow:#00d4ff59;--green:#39ff6e;--orange:#ff7b39;--purple:#a259ff;--text:#e0e0e0;--text-dim:#888;--text-mute:#444;--font:"JetBrains Mono", monospace;--radius:6px;--transition:.25s ease}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.7;overflow-x:hidden}::selection{background:var(--cyan-dim);color:var(--cyan)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--cyan)}body:before{content:"";pointer-events:none;z-index:0;background-image:linear-gradient(#00d4ff08 1px,#0000 1px),linear-gradient(90deg,#00d4ff08 1px,#0000 1px);background-size:40px 40px;position:fixed;inset:0}.container{z-index:1;max-width:900px;margin:0 auto;padding:0 24px;position:relative}section{border-bottom:1px solid var(--border);padding:80px 0}section:last-child{border-bottom:none}.section-label{letter-spacing:.2em;color:var(--cyan);text-transform:uppercase;opacity:.8;margin-bottom:8px;font-size:11px}.section-title{color:var(--text);margin-bottom:40px;font-size:28px;font-weight:700;line-height:1.2}.section-title span{color:var(--cyan)}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scanline{0%{transform:translateY(-100%)}to{transform:translateY(100vh)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes pulse-border{0%,to{box-shadow:0 0 0 0 var(--cyan-glow)}50%{box-shadow:0 0 12px 2px var(--cyan-glow)}}@keyframes progress-fill{0%{width:0}}.fade-up{opacity:0;animation:.6s forwards fadeUp}.stagger>*{opacity:0;animation:.5s forwards fadeUp}.stagger>:first-child{animation-delay:.1s}.stagger>:nth-child(2){animation-delay:.2s}.stagger>:nth-child(3){animation-delay:.3s}.stagger>:nth-child(4){animation-delay:.4s}.stagger>:nth-child(5){animation-delay:.5s}.stagger>:nth-child(6){animation-delay:.6s}nav{z-index:100;backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background:#0a0a0ad9;position:fixed;top:0;left:0;right:0}.nav-inner{justify-content:space-between;align-items:center;max-width:900px;height:52px;margin:0 auto;padding:0 24px;display:flex}.nav-logo{color:var(--cyan);letter-spacing:.05em;font-size:13px;font-weight:700;text-decoration:none}.nav-logo:before{content:"~/";color:var(--text-dim)}.nav-links{gap:28px;list-style:none;display:flex}.nav-links a{color:var(--text-dim);letter-spacing:.05em;transition:color var(--transition);font-size:12px;text-decoration:none}.nav-links a:hover{color:var(--cyan)}.hamburger{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:5px;padding:4px;display:none}.hamburger span{background:var(--text-dim);width:22px;height:1.5px;transition:all var(--transition);display:block}.hamburger.open span:first-child{transform:translateY(6.5px)rotate(45deg)}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){transform:translateY(-6.5px)rotate(-45deg)}.mobile-menu{border-bottom:1px solid var(--border);z-index:99;background:#0a0a0af7;padding:20px 24px;display:none;position:fixed;top:52px;left:0;right:0}.mobile-menu.open{display:block}.mobile-menu a{color:var(--text-dim);border-bottom:1px solid var(--border);transition:color var(--transition);padding:10px 0;font-size:13px;text-decoration:none;display:block}.mobile-menu a:last-child{border-bottom:none}.mobile-menu a:hover{color:var(--cyan)}@media (width<=640px){.nav-links{display:none}.hamburger{display:flex}}#hero{border-bottom:1px solid var(--border);align-items:center;min-height:100vh;padding-top:52px;display:flex;position:relative;overflow:hidden}#hero:after{content:"";background:linear-gradient(90deg, transparent, var(--cyan-dim), transparent);pointer-events:none;height:2px;animation:6s linear infinite scanline;position:absolute;left:0;right:0}.hero-content{padding:40px 0}.hero-prefix{color:var(--cyan);letter-spacing:.15em;opacity:0;margin-bottom:16px;font-size:12px;animation:.5s .2s forwards fadeUp}.hero-name{letter-spacing:-.02em;color:var(--text);opacity:0;margin-bottom:16px;font-size:clamp(36px,7vw,68px);font-weight:800;line-height:1.05;animation:.6s .35s forwards fadeUp}.hero-name .accent{color:var(--cyan)}.hero-typing-wrap{color:var(--text-dim);opacity:0;min-height:28px;margin-bottom:20px;font-size:clamp(14px,2.5vw,20px);animation:.6s .5s forwards fadeUp}.hero-typing-wrap .prefix{color:var(--cyan);margin-right:8px}#typed-text{color:var(--text)}.cursor{background:var(--cyan);vertical-align:text-bottom;width:2px;height:1.1em;margin-left:2px;animation:1s step-end infinite blink;display:inline-block}.hero-location{color:var(--text-dim);background:var(--bg3);border:1px solid var(--border2);opacity:0;border-radius:20px;align-items:center;gap:6px;margin-bottom:36px;padding:5px 12px;font-size:12px;animation:.6s .65s forwards fadeUp;display:inline-flex}.hero-location .dot{background:var(--green);width:6px;height:6px;box-shadow:0 0 6px var(--green);border-radius:50%;animation:2s infinite pulse-border}.hero-cta{opacity:0;flex-wrap:wrap;gap:12px;animation:.6s .8s forwards fadeUp;display:flex}.btn{border-radius:var(--radius);font-family:var(--font);cursor:pointer;transition:all var(--transition);letter-spacing:.03em;align-items:center;gap:8px;padding:10px 20px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{background:var(--cyan);color:var(--bg);border:1px solid var(--cyan)}.btn-primary:hover{color:var(--cyan);box-shadow:0 0 16px var(--cyan-glow);background:0 0}.btn-ghost{color:var(--text-dim);border:1px solid var(--border2);background:0 0}.btn-ghost:hover{border-color:var(--cyan);color:var(--cyan)}.hero-stats{border-top:1px solid var(--border);opacity:0;flex-wrap:wrap;gap:32px;margin-top:48px;padding-top:32px;animation:.6s 1s forwards fadeUp;display:flex}.stat-item{text-align:left}.stat-num{color:var(--cyan);font-size:24px;font-weight:800;line-height:1}.stat-label{color:var(--text-mute);letter-spacing:.1em;text-transform:uppercase;margin-top:4px;font-size:11px}.about-grid{grid-template-columns:1fr 1fr;align-items:start;gap:48px;display:grid}@media (width<=640px){.about-grid{grid-template-columns:1fr;gap:32px}}.about-bio{color:var(--text-dim);font-size:15px;line-height:1.8}.about-bio strong{color:var(--cyan);font-weight:700}.about-bio p{margin-bottom:16px}.about-bio p:last-child{margin-bottom:0}.meta-item{border-bottom:1px solid var(--border);align-items:flex-start;gap:12px;padding:12px 0;display:flex}.meta-item:last-child{border-bottom:none}.meta-key{color:var(--text-mute);letter-spacing:.1em;text-transform:uppercase;min-width:80px;padding-top:2px;font-size:11px}.meta-val{color:var(--text);font-size:13px}.meta-val a{color:var(--cyan);text-decoration:none}.meta-val a:hover{text-decoration:underline}.skills-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}@media (width<=640px){.skills-grid{grid-template-columns:1fr}}.skill-col{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);transition:border-color var(--transition);padding:24px}.skill-col:hover{border-color:var(--cyan)}.skill-col-header{align-items:center;gap:10px;margin-bottom:20px;display:flex}.skill-col-dot{border-radius:50%;width:8px;height:8px}.dot-expert{background:var(--cyan);box-shadow:0 0 8px var(--cyan)}.dot-inter{background:var(--green);box-shadow:0 0 8px var(--green)}.dot-learning{background:var(--orange);box-shadow:0 0 8px var(--orange)}.skill-col-title{letter-spacing:.15em;text-transform:uppercase;font-size:11px;font-weight:700}.col-expert .skill-col-title{color:var(--cyan)}.col-inter .skill-col-title{color:var(--green)}.col-learning .skill-col-title{color:var(--orange)}.skill-tag{border:1px solid;border-radius:3px;margin:3px 3px 3px 0;padding:4px 10px;font-size:11px;display:inline-block}.col-expert .skill-tag{color:var(--cyan);background:#00d4ff0f;border-color:#00d4ff4d}.col-inter .skill-tag{color:var(--green);background:#39ff6e0f;border-color:#39ff6e4d}.col-learning .skill-tag{color:var(--orange);background:#ff7b390f;border-color:#ff7b394d}.certs-earned{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;margin-bottom:40px;display:grid}.cert-badge{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);text-align:center;transition:all var(--transition);cursor:default;padding:16px 12px}.cert-badge:hover{border-color:var(--cyan);background:var(--cyan-dim);transform:translateY(-2px)}.cert-icon{margin-bottom:8px;font-size:22px}.cert-name{color:var(--text);font-size:12px;font-weight:700;line-height:1.3}.cert-org{color:var(--text-mute);margin-top:4px;font-size:10px}.certs-progress-label{letter-spacing:.15em;color:var(--text-mute);text-transform:uppercase;margin-bottom:16px;font-size:11px}.cert-progress-item{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:1fr auto;align-items:center;gap:12px;margin-bottom:10px;padding:16px 20px;display:grid}.cert-progress-name{color:var(--text);margin-bottom:4px;font-size:13px;font-weight:700}.cert-progress-meta{color:var(--text-dim);font-size:11px}.cert-progress-pct{color:var(--orange);font-size:12px;font-weight:700}.progress-bar-wrap{background:var(--border);border-radius:2px;height:3px;margin-top:10px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--orange), var(--cyan));border-radius:2px;height:100%;animation:1.5s forwards progress-fill}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:20px;display:grid}@media (width<=640px){.projects-grid{grid-template-columns:1fr}}.project-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);transition:all var(--transition);padding:28px;position:relative;overflow:hidden}.project-card:before{content:"";background:linear-gradient(90deg, var(--cyan), var(--purple));transform-origin:0;height:2px;transition:transform var(--transition);position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.project-card:hover{border-color:var(--border2);transform:translateY(-3px)}.project-card:hover:before{transform:scaleX(1)}.project-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.project-name{color:var(--text);font-size:16px;font-weight:800;line-height:1.3}.project-status{letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;border-radius:3px;padding:3px 8px;font-size:10px;font-weight:700}.status-active{color:var(--green);background:#39ff6e1a;border:1px solid #39ff6e4d}.status-progress{color:var(--cyan);background:#00d4ff1a;border:1px solid #00d4ff4d}.project-desc{color:var(--text-dim);margin-bottom:16px;font-size:13px;line-height:1.7}.project-tags{flex-wrap:wrap;gap:6px;display:flex}.tag{background:var(--bg3);border:1px solid var(--border2);color:var(--text-dim);border-radius:3px;padding:3px 8px;font-size:10px}.project-progress{border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.project-progress-header{color:var(--text-mute);justify-content:space-between;margin-bottom:8px;font-size:11px;display:flex}.timeline{padding-left:28px;position:relative}.timeline:before{content:"";background:linear-gradient(to bottom, var(--cyan), transparent);width:1px;position:absolute;top:8px;bottom:0;left:6px}.tl-item{margin-bottom:28px;position:relative}.tl-item:before{content:"";border:1.5px solid var(--cyan);background:var(--bg);border-radius:50%;width:8px;height:8px;position:absolute;top:6px;left:-22px}.tl-item.completed:before{background:var(--cyan)}.tl-item.upcoming:before{border-color:var(--orange)}.tl-date{color:var(--text-mute);letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px;font-size:11px}.tl-title{color:var(--text);margin-bottom:4px;font-size:14px;font-weight:700}.tl-desc{color:var(--text-dim);font-size:12px}.tl-badge{letter-spacing:.05em;border-radius:3px;margin-top:6px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-block}.badge-done{color:var(--green);background:#39ff6e1a}.badge-upcoming{color:var(--orange);background:#ff7b391a}.badge-active{color:var(--cyan);background:#00d4ff1a}.contact-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;display:grid}.contact-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);transition:all var(--transition);align-items:center;gap:14px;padding:20px;text-decoration:none;display:flex}.contact-card:hover{border-color:var(--cyan);background:var(--cyan-dim);transform:translateY(-2px)}.contact-icon{background:var(--bg3);border:1px solid var(--border2);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;display:flex}.contact-label{color:var(--text-mute);letter-spacing:.1em;text-transform:uppercase;margin-bottom:2px;font-size:11px}.contact-value{color:var(--text);font-size:13px;font-weight:600}footer{text-align:center;color:var(--text-mute);letter-spacing:.05em;z-index:1;padding:32px 0;font-size:11px;position:relative}footer a{color:var(--cyan);text-decoration:none}.term-prompt{color:var(--text-mute);align-items:center;gap:6px;margin-bottom:8px;font-size:12px;display:inline-flex}.term-prompt .ps1{color:var(--cyan)}.term-prompt .host{color:var(--green)}.term-prompt .sep{color:var(--text-mute)}.term-prompt .path{color:var(--purple)}.reveal{opacity:1;transform:none}.reveal.reveal-pending{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(24px)}.reveal.reveal-pending.visible{opacity:1;transform:translateY(0)}.skip-link{z-index:1000;border-radius:var(--radius);background:var(--cyan);color:var(--bg);transition:top var(--transition);padding:10px 14px;font-weight:700;text-decoration:none;position:fixed;top:-80px;left:16px}.skip-link:focus{top:16px}:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}.nav-links a.active{color:var(--cyan)}.mobile-menu[aria-hidden=true]{display:none}.mobile-menu.open[aria-hidden=false]{display:block}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal,.reveal.reveal-pending,.reveal.reveal-pending.visible{opacity:1;transform:none}}
