:root{--bg:#080808;--surface:#0f0f0f;--border:#1e1e1e;--accent:#0f8;--accent2:#ff3c5f;--text:#e8e8e8;--muted:#555;--mono:"DM Mono", monospace;--sans:"Syne", sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--mono);cursor:none;overflow-x:hidden}.cursor{background:var(--accent);pointer-events:none;z-index:9999;mix-blend-mode:difference;border-radius:50%;width:8px;height:8px;transition:transform .1s;position:fixed;top:0;left:0}.cursor-ring{border:1px solid var(--accent);pointer-events:none;z-index:9998;opacity:.5;border-radius:50%;width:32px;height:32px;transition:all .15s;position:fixed;top:0;left:0}body:before{content:"";pointer-events:none;z-index:1000;opacity:.4;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");position:fixed;inset:0}body:after{content:"";pointer-events:none;z-index:1;background-image:linear-gradient(#00ff8805 1px,#0000 1px),linear-gradient(90deg,#00ff8805 1px,#0000 1px);background-size:60px 60px;position:fixed;inset:0}.code-badge{font-family:var(--mono);color:#00ff8826;letter-spacing:.05em;white-space:nowrap;pointer-events:none;z-index:2;-webkit-user-select:none;user-select:none;font-size:.58rem;animation:12s ease-in-out infinite floatBadge;position:fixed}.code-snippet{background:var(--surface);border:1px solid var(--border);border-left:2px solid var(--accent);margin:2rem 0;padding:1rem 1.25rem;font-size:.68rem;line-height:1.9;position:relative;overflow:hidden}.code-snippet:before{content:attr(data-lang);color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:.55rem;position:absolute;top:.4rem;right:.75rem}nav{z-index:100;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#080808d9;justify-content:space-between;align-items:center;padding:1.5rem 4rem;display:flex;position:fixed;top:0;left:0;right:0}.nav-logo{font-family:var(--sans);letter-spacing:-.03em;color:var(--text);font-size:1.1rem;font-weight:800;text-decoration:none}.nav-logo span{color:var(--accent)}.nav-links{gap:2.5rem;list-style:none;display:flex}.nav-links a{letter-spacing:.15em;text-transform:uppercase;color:var(--muted);font-size:.7rem;text-decoration:none;transition:color .2s}.nav-links a:hover{color:var(--accent)}.nav-toggle{cursor:pointer;z-index:200;flex-direction:column;gap:5px;padding:4px;display:none}.nav-toggle span{background:var(--text);transform-origin:50%;width:24px;height:1.5px;transition:all .3s;display:block}.nav-toggle.open span:first-child{transform:translateY(6.5px)rotate(45deg)}.nav-toggle.open span:nth-child(2){opacity:0}.nav-toggle.open span:nth-child(3){transform:translateY(-6.5px)rotate(-45deg)}.mobile-menu{z-index:150;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#080808f7;flex-direction:column;justify-content:center;align-items:center;gap:2.5rem;display:none;position:fixed;inset:0}.mobile-menu.open{display:flex}.mobile-menu a{font-family:var(--sans);color:var(--text);letter-spacing:-.03em;font-size:2.5rem;font-weight:800;text-decoration:none;transition:color .2s}.mobile-menu a:hover{color:var(--accent)}.hero{align-items:center;min-height:100vh;padding:8rem 4rem 4rem;display:flex;position:relative;overflow:hidden}.hero-content{z-index:2;max-width:900px}.hero-tag{letter-spacing:.2em;text-transform:uppercase;color:var(--accent);align-items:center;gap:.75rem;margin-bottom:2rem;font-size:.65rem;display:flex}.hero-tag:before{content:"";background:var(--accent);width:24px;height:1px;display:block}h1{font-family:var(--sans);letter-spacing:-.04em;opacity:0;margin-bottom:1.5rem;font-size:clamp(3.5rem,9vw,7.5rem);font-weight:800;line-height:.95;animation:.8s .2s forwards fadeUp}h1 .line2{color:var(--muted)}h1 .accent{color:var(--accent)}.hero-desc{color:var(--muted);opacity:0;max-width:480px;margin-bottom:0;font-size:.9rem;line-height:1.8;animation:.8s .4s forwards fadeUp}.hero-cta{opacity:0;align-items:center;gap:1.5rem;margin-top:2rem;animation:.8s .8s forwards fadeUp;display:flex}.btn{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:.9rem 2rem;font-size:.7rem;text-decoration:none;transition:all .2s;display:inline-block}.btn-primary{background:var(--accent);color:#000;font-weight:500}.btn-primary:hover{color:var(--accent);outline:1px solid var(--accent);background:0 0}.btn-ghost{color:var(--muted);border-bottom:1px solid var(--border)}.btn-ghost:hover{color:var(--text);border-color:var(--text)}.terminal{background:var(--surface);border:1px solid var(--border);opacity:0;z-index:2;width:380px;font-size:.72rem;animation:1s 1s forwards fadeIn;position:absolute;top:50%;right:4rem;transform:translateY(-50%)}.terminal-bar{background:var(--border);align-items:center;gap:.5rem;padding:.6rem 1rem;display:flex}.dot{border-radius:50%;width:8px;height:8px}.dot.r{background:#ff5f57}.dot.y{background:#febc2e}.dot.g{background:#28c840}.terminal-title{color:var(--muted);letter-spacing:.1em;margin-left:auto;font-size:.6rem}.terminal-body{padding:1.25rem;line-height:2}.t-comment{color:var(--muted);font-style:italic}.t-key{color:#7dd3fc}.t-val{color:var(--accent)}.t-str{color:#fbbf24}.t-cursor{background:var(--accent);vertical-align:middle;width:8px;height:13px;margin-left:2px;animation:1s infinite blink;display:inline-block}.hero-number{font-family:var(--sans);color:#0000;-webkit-text-stroke:1px #ffffff08;letter-spacing:-.05em;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:1;font-size:28vw;font-weight:800;position:absolute;bottom:-4rem;right:-2rem}section{z-index:2;padding:7rem 4rem;position:relative}.section-header{align-items:baseline;gap:1.5rem;margin-bottom:4rem;display:flex}.section-num{color:var(--accent);letter-spacing:.2em;font-size:.6rem}.section-title{font-family:var(--sans);text-transform:uppercase;letter-spacing:.2em;color:var(--muted);font-size:.65rem}.skills{border-top:1px solid var(--border)}.skills-filters{flex-wrap:wrap;gap:.5rem;margin-bottom:3rem;display:flex}.skills-filter-btn{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;padding:.45rem 1rem;font-size:.65rem;transition:all .2s}.skills-filter-btn:hover{color:var(--text);border-color:#0f86}.skills-filter-btn.active{border-color:var(--accent);color:var(--accent);background:#00ff880d}.skills-grid{background:var(--border);border:1px solid var(--border);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1px;display:grid}.skill-card{background:var(--bg);opacity:0;padding:2.5rem;transition:background .3s,opacity .4s,transform .4s;position:relative;overflow:hidden;transform:translateY(12px)}.skill-card--visible{opacity:1;transform:translateY(0)}.skill-card:before{content:"";background:var(--accent);transform-origin:0;width:100%;height:2px;transition:transform .4s;position:absolute;top:0;left:0;transform:scaleX(0)}.skill-card:hover{background:var(--surface)}.skill-card:hover:before{transform:scaleX(1)}.skill-card-top{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.skill-icon{font-size:1.5rem}.skill-years{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border:1px solid var(--border);padding:.2rem .5rem;font-size:.58rem}.skill-label{font-family:var(--sans);color:var(--text);margin-bottom:.75rem;font-size:1.1rem;font-weight:700}.skill-desc{color:var(--muted);font-size:.75rem;line-height:1.7}.skill-level{margin-top:1.25rem}.skill-level-header{justify-content:space-between;align-items:center;margin-bottom:.4rem;display:flex}.skill-level-label{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:.58rem}.skill-level-pct{color:var(--accent);letter-spacing:.05em;font-size:.65rem}.skill-bar-track{background:var(--border);width:100%;height:2px;overflow:hidden}.skill-bar-fill{background:var(--accent);width:0;height:100%;transition:width 1s}.skill-card--visible .skill-bar-fill{width:var(--target)}.skill-tags{flex-wrap:wrap;gap:.4rem;margin-top:1rem;display:flex}.tag{letter-spacing:.1em;border:1px solid var(--border);color:var(--muted);text-transform:uppercase;padding:.25rem .6rem;font-size:.6rem;transition:all .2s}.skill-card:hover .tag{color:var(--text);border-color:#0f83}.experience{border-top:1px solid var(--border)}.exp-list{flex-direction:column;display:flex}.exp-item{border-bottom:1px solid var(--border);opacity:0;grid-template-columns:200px 1fr;align-items:start;gap:3rem;padding:2.5rem 0;transition:all .5s;display:grid;transform:translateY(20px)}.exp-item.visible{opacity:1;transform:translateY(0)}.exp-period{color:var(--muted);letter-spacing:.08em;margin-bottom:.4rem;font-size:.65rem}.exp-location{color:var(--border);letter-spacing:.1em;text-transform:uppercase;font-size:.6rem}.exp-role{font-family:var(--sans);letter-spacing:-.02em;margin-bottom:.3rem;font-size:1.3rem;font-weight:700}.exp-company{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.75rem;font-size:.7rem}.exp-desc{color:var(--muted);max-width:500px;font-size:.8rem;line-height:1.8}.education{border-top:1px solid var(--border)}.edu-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;display:grid}.edu-card{border:1px solid var(--border);padding:2rem;transition:border-color .3s}.edu-card:hover{border-color:#00ff884d}.edu-year{color:var(--accent);letter-spacing:.15em;text-transform:uppercase;margin-bottom:.75rem;font-size:.6rem}.edu-degree{font-family:var(--sans);margin-bottom:.4rem;font-size:1rem;font-weight:700;line-height:1.3}.edu-school{color:var(--muted);letter-spacing:.08em;font-size:.7rem}.projects{border-top:1px solid var(--border)}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;display:grid}.project-card{border:1px solid var(--border);opacity:0;flex-direction:column;gap:.75rem;padding:2rem;transition:all .5s;display:flex;position:relative;overflow:hidden;transform:translateY(20px)}.project-card:before{content:"";background:var(--accent);transform-origin:0;width:100%;height:2px;transition:transform .4s;position:absolute;top:0;left:0;transform:scaleX(0)}.project-card:hover:before{transform:scaleX(1)}.project-card:hover{border-color:#00ff884d}.project-card.visible{opacity:1;transform:translateY(0)}.project-card-top{align-items:center;gap:.75rem;display:flex}.project-lang{letter-spacing:.15em;text-transform:uppercase;color:var(--accent);border:1px solid #00ff884d;padding:.2rem .6rem;font-size:.6rem}.project-highlight{letter-spacing:.1em;color:var(--muted);font-size:.6rem}.project-name{font-family:var(--sans);font-size:1.05rem;font-weight:700;line-height:1.2}.project-desc{color:var(--muted);flex:1;font-size:.75rem;line-height:1.7}.project-tags{flex-wrap:wrap;gap:.4rem;display:flex}.project-link{letter-spacing:.08em;color:var(--accent);align-self:flex-start;margin-top:auto;font-size:.7rem;text-decoration:none;transition:opacity .2s}.project-link:hover{opacity:.7}.contact{border-top:1px solid var(--border);background:var(--surface)}.contact-inner{grid-template-columns:1fr 1fr;align-items:center;gap:6rem;display:grid}.contact-heading{font-family:var(--sans);letter-spacing:-.04em;margin-bottom:1.5rem;font-size:clamp(2.5rem,5vw,4.5rem);font-weight:800;line-height:1}.contact-heading .hl{color:var(--accent)}.contact-sub{color:var(--muted);max-width:350px;font-size:.8rem;line-height:1.8}.contact-links{flex-direction:column;display:flex}.contact-link{border-bottom:1px solid var(--border);color:var(--text);justify-content:space-between;align-items:center;padding:1.5rem 0;text-decoration:none;transition:all .2s;display:flex}.contact-link:hover{padding-left:.5rem}.contact-link:hover .cl-label{color:var(--accent)}.contact-link:hover .cl-arrow{color:var(--accent);transform:translate(3px,-3px)}.cl-label{font-family:var(--sans);font-size:1.1rem;font-weight:600;transition:color .2s}.cl-sub{color:var(--muted);margin-top:.2rem;font-size:.65rem}.cl-arrow{color:var(--muted);font-size:1.2rem;transition:all .2s}.contact-form{flex-direction:column;gap:1.25rem;width:100%;display:flex}.cf-row{grid-template-columns:1fr 1fr;gap:1.25rem;display:grid}.cf-field{flex-direction:column;gap:.4rem;display:flex}.cf-field label{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:.62rem}.cf-field input,.cf-field textarea{background:var(--bg);border:1px solid var(--border);color:var(--text);font-family:var(--mono);resize:none;outline:none;width:100%;padding:.75rem 1rem;font-size:.8rem;transition:border-color .2s}.cf-field input:focus,.cf-field textarea:focus{border-color:var(--accent)}.cf-field input::placeholder,.cf-field textarea::placeholder{color:var(--muted)}.cf-captcha{display:flex}.cf-submit{cursor:pointer;border:none;align-self:flex-start;width:auto;margin-top:.25rem}.cf-submit:disabled{opacity:.5;cursor:not-allowed}.cf-error{color:var(--accent2);font-size:.72rem}.cf-success{border:1px solid var(--border);border-left:2px solid var(--accent);flex-direction:column;gap:1rem;padding:2rem;display:flex}.cf-success-icon{color:var(--accent);font-size:1.5rem}.cf-success p{color:var(--muted);font-size:.82rem;line-height:1.7}.cf-reset{border:1px solid var(--border);color:var(--muted);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;width:fit-content;padding:.5rem 1rem;font-size:.65rem;transition:all .2s}.cf-reset:hover{border-color:var(--accent);color:var(--accent)}@media (width<=768px){.cf-row{grid-template-columns:1fr}.cf-submit{width:100%}}footer{border-top:1px solid var(--border);z-index:2;justify-content:space-between;align-items:center;padding:2rem 4rem;display:flex;position:relative}.footer-copy{color:var(--muted);letter-spacing:.1em;font-size:.6rem}.footer-status{color:var(--muted);letter-spacing:.1em;align-items:center;gap:.5rem;font-size:.6rem;display:flex}.status-dot{background:var(--accent);border-radius:50%;width:6px;height:6px;animation:2s infinite pulse}@keyframes fadeUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes pulse{0%,to{box-shadow:0 0 #0f86}50%{box-shadow:0 0 0 6px #0f80}}@keyframes floatBadge{0%,to{opacity:.15;transform:translateY(0)}50%{opacity:.28;transform:translateY(-10px)}}::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border)}::-webkit-scrollbar-thumb:hover{background:var(--accent)}@media (width<=1024px){.terminal{width:300px;font-size:.65rem;right:2rem}.hero{padding:8rem 3rem 4rem}.skills-grid{grid-template-columns:repeat(2,1fr)}.contact-inner{gap:3rem}.code-badge{display:none}}@media (width<=768px){body{cursor:auto}.cursor,.cursor-ring{display:none}nav{padding:1.25rem 1.5rem}.nav-links{display:none}.nav-toggle{display:flex}section{padding:4rem 1.5rem}.hero{flex-direction:column;min-height:auto;padding:7rem 1.5rem 3rem}.hero-content{max-width:100%}h1{margin-bottom:1rem;font-size:clamp(2.8rem,14vw,5rem)}.hero-desc{max-width:100%;font-size:.85rem}.hero-cta{flex-direction:column;align-items:flex-start;gap:1rem}.btn{text-align:center;width:100%;padding:1rem 1.5rem}.terminal,.hero-number,.code-badge{display:none}.section-header{margin-bottom:2rem}.skills-grid{grid-template-columns:1fr}.skill-card{padding:1.75rem}.exp-item{grid-template-columns:1fr;gap:.5rem;padding:1.75rem 0}.exp-meta{flex-wrap:wrap;align-items:baseline;gap:1rem;display:flex}.exp-role{font-size:1.1rem}.exp-desc{max-width:100%;font-size:.78rem}.edu-grid{grid-template-columns:1fr;gap:1rem}.edu-card{padding:1.5rem}.contact-inner{grid-template-columns:1fr;gap:2.5rem}.contact-heading{font-size:clamp(2rem,10vw,3rem)}.cl-label{font-size:1rem}footer{text-align:center;flex-direction:column;gap:.75rem;padding:1.5rem}.code-snippet{font-size:.62rem}}@media (width<=400px){h1{font-size:clamp(2.2rem,16vw,3.5rem)}.skill-card{padding:1.25rem}}
