*,:after,:before{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}:root{--bg:#e2e2e2;--bg2:#d8d8d8;--bg3:#cecece;--card:#ebebeb;--teal:#00a8b5;--teal-d:#007f8a;--teal-l:#00c4d4;--teal-glow:rgba(0,168,181,.18);--text:#1a1a1a;--text-2:#555;--text-3:#888;--border:rgba(0,0,0,.1);--mono:"Space Mono","Fira Code",monospace;--sans:"Inter",sans-serif;--radius:50px}body{background:var(--bg);color:var(--text);font-family:var(--sans);overflow-x:hidden}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg2)}::-webkit-scrollbar-thumb{background:var(--teal);border-radius:2px}a{text-decoration:none;color:inherit}ul{list-style:none}.container{max-width:1100px;margin:0 auto;padding:0 2.5rem}.s-tag{font-family:var(--mono);font-size:.7rem;letter-spacing:.3em;color:var(--teal);text-transform:uppercase;margin-bottom:.6rem}.s-tag:before{content:"// "}.s-title{font-family:var(--mono);font-size:clamp(1.8rem,3.5vw,2.5rem);font-weight:700;color:var(--text);line-height:1.1;margin-bottom:.7rem}.s-title .hl{color:var(--teal)}.s-rule{width:48px;height:2px;background:var(--teal);margin-bottom:3.5rem}@keyframes fadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes float{0%,to{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-8px)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.reveal{opacity:0;transform:translateY(24px);transition:opacity .65s ease,transform .65s ease}.reveal.in{opacity:1;transform:none}.navbar{position:fixed;top:0;left:0;right:0;z-index:1000;height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 2.5rem;background:hsla(0,0%,89%,.85);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:background .3s,border-color .3s,box-shadow .3s}.navbar.scrolled{background:hsla(0,0%,89%,.97);border-bottom-color:var(--border);box-shadow:0 2px 20px rgba(0,0,0,.08)}.nav-brand{gap:.55rem;font-family:var(--mono);font-size:.92rem;font-weight:700;color:var(--teal);letter-spacing:.04em}.nav-brand,.nav-brand-icon{display:flex;align-items:center}.nav-brand-icon{width:32px;height:32px;background:var(--teal);justify-content:center;-webkit-clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)}.nav-brand-icon svg{width:16px;height:16px}.nav-brand-tag{font-size:.85rem;color:var(--text-3);font-weight:400}.nav-right{gap:1rem}.nav-icon,.nav-right{display:flex;align-items:center}.nav-icon{color:var(--teal);transition:color .2s,transform .2s;opacity:.8}.nav-icon:hover{opacity:1;transform:translateY(-2px)}.nav-toggle{display:none;background:transparent;border:1px solid var(--teal);color:var(--teal);padding:.3rem .6rem;cursor:pointer;font-size:.95rem}.mobile-nav{display:none;position:fixed;top:64px;left:0;right:0;background:hsla(0,0%,89%,.98);border-bottom:1px solid var(--border);padding:1.5rem 2.5rem;z-index:999;flex-direction:column;gap:1rem}.mobile-nav.open{display:flex}.mobile-nav a{font-family:var(--mono);font-size:.8rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-2);transition:color .2s}.mobile-nav a:hover{color:var(--teal)}.hero-section{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-top:64px;text-align:center;position:relative}.hero-photo-wrap{position:relative;width:170px;height:170px;margin-bottom:1.2rem;opacity:0;animation:fadeIn .8s ease .1s forwards}.hero-photo{width:170px;height:170px;border-radius:50%;object-fit:cover;object-position:center top;filter:grayscale(100%);transition:filter .35s}.hero-photo:hover{filter:grayscale(0)}.hero-photo-ring{position:absolute;inset:-6px;border-radius:50%;border-style:solid;opacity:.45;animation:spin 18s linear infinite;border:2px dashed var(--teal)}.hero-avatar-fallback{width:170px;height:170px;border-radius:50%;background:linear-gradient(135deg,#c8c8c8,#b0b0b0);border:3px solid var(--teal);display:flex;align-items:center;justify-content:center;font-size:3rem;font-weight:700}.hero-avatar-fallback,.hero-role{font-family:var(--mono);color:var(--teal)}.hero-role{font-size:.78rem;letter-spacing:.4em;text-transform:uppercase;margin-bottom:1rem;opacity:0;animation:fadeUp .5s ease .4s forwards}.hero-typed-wrap{font-family:var(--mono);font-size:clamp(1.6rem,4.5vw,3rem);font-weight:700;color:var(--teal);margin-bottom:2.5rem;min-height:3.6rem;display:flex;align-items:center;justify-content:center;opacity:0;animation:fadeUp .5s ease .6s forwards}.typed-cursor{color:var(--teal);animation:blink 1s step-end infinite}.hero-nav-pills{display:flex;gap:.8rem;flex-wrap:wrap;justify-content:center;opacity:0;animation:fadeUp .5s ease .8s forwards}.pill{font-family:var(--mono);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;padding:.55rem 1.6rem;border:1.5px solid var(--teal);color:var(--teal);border-radius:var(--radius);background:transparent;transition:all .22s;cursor:pointer;text-decoration:none}.pill:hover{background:var(--teal);color:#fff;box-shadow:0 4px 16px var(--teal-glow)}.hero-scroll{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);flex-direction:column;gap:.5rem;animation:float 2.5s ease-in-out infinite;cursor:pointer}.hero-scroll,.scroll-avatar{display:flex;align-items:center}.scroll-avatar{width:36px;height:36px;border-radius:50%;border:2px solid var(--teal);overflow:hidden;background:var(--bg2);justify-content:center}.scroll-avatar img{width:100%;height:100%;object-fit:cover;filter:grayscale(100%)}.scroll-avatar-fallback{font-family:var(--mono);font-size:.75rem;color:var(--teal);font-weight:700}.scroll-line{width:1px;height:28px;background:linear-gradient(to bottom,var(--teal),transparent)}.btn{font-family:var(--mono);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;padding:.7rem 1.8rem;cursor:pointer;border:none;display:inline-flex;align-items:center;gap:.5rem;transition:all .22s;text-decoration:none;border-radius:4px}.btn-primary{background:var(--teal);color:#fff}.btn-primary:hover{background:var(--teal-d);box-shadow:0 4px 16px var(--teal-glow);transform:translateY(-2px)}.btn-ghost{background:transparent;color:var(--teal);border:1.5px solid var(--teal)}.btn-ghost:hover{background:var(--teal);color:#fff}.about-section{background:var(--bg);padding:7rem 0}.about-grid{display:grid;grid-template-columns:3fr 2fr;grid-gap:4rem;gap:4rem;align-items:start}.about-text{font-size:.95rem;line-height:1.9;color:var(--text-2)}.about-text p+p{margin-top:1.1rem}.about-text strong{color:var(--teal);font-weight:600}.about-cta{margin-top:2rem;display:flex;gap:.8rem;flex-wrap:wrap}.about-stats{display:grid;grid-template-columns:1fr 1fr;grid-gap:.75rem;gap:.75rem}.stat-box{background:var(--card);border:1px solid var(--border);border-top:2.5px solid var(--teal);padding:1.3rem 1rem;text-align:center;transition:transform .25s,box-shadow .25s}.stat-box:hover{transform:translateY(-3px);box-shadow:0 6px 20px rgba(0,0,0,.1)}.stat-n{font-family:var(--mono);font-size:1.7rem;font-weight:700;color:var(--teal)}.stat-l{font-size:.68rem;color:var(--text-2);margin-top:.3rem}.skills-section{background:var(--bg2);padding:7rem 0}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1.4rem;gap:1.4rem}.sk-card{background:var(--card);border:1px solid var(--border);border-top:3px solid var(--teal);padding:1.6rem;transition:transform .25s,box-shadow .25s}.sk-card.c2{border-top-color:#5b6abf}.sk-card.c3{border-top-color:#e67e22}.sk-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,.1)}.sk-hd{display:flex;align-items:center;gap:.7rem;margin-bottom:.9rem}.sk-icon{font-size:1.2rem}.sk-label{font-size:.82rem;font-weight:700;color:var(--text);flex:1 1}.sk-count,.sk-label{font-family:var(--mono)}.sk-count{font-size:.62rem;padding:.1rem .5rem;background:rgba(0,168,181,.1);border:1px solid rgba(0,168,181,.3);color:var(--teal)}.sk-card.c2 .sk-count{background:rgba(91,106,191,.1);border-color:rgba(91,106,191,.3);color:#5b6abf}.sk-card.c3 .sk-count{background:rgba(230,126,34,.1);border-color:rgba(230,126,34,.3);color:#e67e22}.sk-div{height:1px;background:var(--border);margin-bottom:.9rem}.sk-chips{display:flex;flex-wrap:wrap;gap:.4rem}.sk-chip{font-family:var(--mono);font-size:.66rem;padding:.26rem .7rem;background:rgba(0,0,0,.05);border:1px solid var(--border);color:var(--text-2);transition:all .18s;cursor:default;border-radius:2px}.sk-chip:hover{border-color:var(--teal);color:var(--teal);background:rgba(0,168,181,.06)}.sk-card.c2 .sk-chip:hover{border-color:#5b6abf;color:#5b6abf}.sk-card.c3 .sk-chip:hover{border-color:#e67e22;color:#e67e22}.projects-section{background:var(--bg);padding:7rem 0}.carousel-outer{position:relative}.carousel-viewport{overflow:hidden}.carousel-track{display:flex;gap:1.4rem;transition:transform .45s cubic-bezier(.25,.46,.45,.94)}.pj-card{flex-shrink:0;min-width:calc(50% - .7rem);background:var(--card);border:1px solid var(--border);position:relative;overflow:hidden;transition:transform .25s,box-shadow .25s;display:flex;flex-direction:column}.pj-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--teal);transform:scaleX(0);transform-origin:left;transition:transform .35s}.pj-card:hover{transform:translateY(-5px);box-shadow:0 12px 32px rgba(0,0,0,.12)}.pj-card:hover:before{transform:scaleX(1)}.pj-body{padding:1.5rem;display:flex;flex-direction:column;flex:1 1}.pj-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.pj-badge{font-family:var(--mono);font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;padding:.2rem .65rem;border:1px solid;border-radius:2px}.pj-badge.tool{color:#e67e22;border-color:rgba(230,126,34,.4);background:rgba(230,126,34,.06)}.pj-badge.net{color:#5b6abf;border-color:rgba(91,106,191,.4);background:rgba(91,106,191,.06)}.pj-badge.crypto{color:var(--teal);border-color:rgba(0,168,181,.4);background:rgba(0,168,181,.06)}.pj-icon{font-size:1.4rem;opacity:.55}.pj-name{font-family:var(--mono);font-size:1.05rem;font-weight:700;color:var(--text);margin-bottom:.5rem}.pj-desc{font-size:.82rem;color:var(--text-2);line-height:1.75;margin-bottom:1rem;flex:1 1}.pj-tags{display:flex;flex-wrap:wrap;gap:.32rem;margin-bottom:1.2rem}.pj-tag{font-family:var(--mono);font-size:.6rem;padding:.14rem .5rem;background:rgba(0,0,0,.06);border:1px solid var(--border);color:var(--text-2);border-radius:2px}.pj-foot{justify-content:space-between;margin-top:auto}.pj-foot,.pj-link{display:flex;align-items:center}.pj-link{font-family:var(--mono);font-size:.7rem;color:var(--text-2);gap:.35rem;transition:color .2s}.pj-arrow,.pj-link:hover{color:var(--teal)}.carousel-ctrls{gap:1rem;margin-top:2rem}.c-btn,.carousel-ctrls{display:flex;align-items:center;justify-content:center}.c-btn{width:40px;height:40px;background:var(--card);border:1px solid var(--border);color:var(--text-2);cursor:pointer;font-size:1rem;transition:all .2s;border-radius:4px}.c-btn:hover{border-color:var(--teal);color:var(--teal);background:rgba(0,168,181,.07)}.c-dots{display:flex;gap:.5rem;align-items:center}.c-dot{width:8px;height:8px;background:var(--border);cursor:pointer;transition:all .2s;border-radius:2px}.c-dot.on{background:var(--teal);width:22px}.certs-section{background:var(--bg2);padding:7rem 0}.certs-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1rem;gap:1rem}.cert-row{background:var(--card);border:1px solid var(--border);border-left:3px solid var(--teal);padding:1.1rem 1.2rem;display:flex;align-items:flex-start;gap:.8rem;transition:transform .25s,box-shadow .25s}.cert-row:hover{transform:translateX(4px);box-shadow:0 4px 16px rgba(0,0,0,.08)}.cert-ico{font-size:1.15rem;flex-shrink:0;margin-top:.1rem}.cert-name{font-family:var(--mono);font-size:.8rem;font-weight:600;color:var(--text);line-height:1.5}.cert-org{font-size:.68rem;color:var(--text-2);margin-top:.2rem}.contact-section{background:var(--bg);padding:7rem 0}.contact-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:4rem;gap:4rem}.contact-lead{font-size:.92rem;color:var(--text-2);line-height:1.9;margin-bottom:2rem}.contact-links{display:flex;flex-direction:column;gap:.55rem}.c-link{display:flex;align-items:center;gap:.85rem;padding:.65rem .9rem;border:1px solid transparent;color:var(--text-2);font-size:.85rem;transition:all .2s}.c-link:hover{color:var(--teal);background:var(--card);border-color:var(--border)}.c-link-ico{color:var(--teal);min-width:1.1rem;display:flex}.form{display:flex;flex-direction:column;gap:.9rem}.form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:.9rem;gap:.9rem}.field{display:flex;flex-direction:column;gap:.3rem}.field label{font-family:var(--mono);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-2)}.field input,.field textarea{background:var(--card);border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:.8rem;padding:.72rem 1rem;outline:none;transition:border-color .2s,box-shadow .2s;resize:none;width:100%}.field input:focus,.field textarea:focus{border-color:var(--teal);box-shadow:0 0 0 2px rgba(0,168,181,.15)}.field input::placeholder,.field textarea::placeholder{color:var(--text-3)}.form-ok{display:none;font-family:var(--mono);font-size:.72rem;color:var(--teal);padding:.5rem .8rem;border-left:2px solid var(--teal)}.form-ok.show{display:block}.site-footer{background:var(--bg2);border-top:1px solid var(--border);padding:2rem 2.5rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.foot-brand{font-family:var(--mono);font-weight:700;font-size:.95rem;color:var(--teal)}.foot-copy{font-size:.72rem;color:var(--text-2)}.foot-status{display:flex;align-items:center;gap:.45rem;font-family:var(--mono);font-size:.62rem;color:var(--text-2)}.live-dot{width:7px;height:7px;border-radius:50%;background:var(--teal);flex-shrink:0;animation:pulse 2s infinite}@media (max-width:960px){.about-grid{grid-template-columns:1fr}.certs-grid,.skills-grid{grid-template-columns:1fr 1fr}.contact-grid{grid-template-columns:1fr}.pj-card{min-width:100%}}@media (max-width:650px){.navbar{padding:0 1.4rem}.nav-toggle{display:block}.hero-typed-wrap{font-size:1.5rem}.hero-nav-pills{gap:.5rem}.pill{padding:.45rem 1.1rem;font-size:.65rem}.certs-grid,.form-row,.skills-grid{grid-template-columns:1fr}}