@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(../media/13bf9871fe164e7f-s.2f7nqdagzwx2-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(../media/cc545e633e20c56d-s.176arc174-8zp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(../media/71b036adf157cdcf-s.0bp8oijd_gu96.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(../media/89b21bb081cb7469-s.1fby2rem9ngyr.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(../media/3fe682a82f50d426-s.0vfdmo25voy_0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/13bf9871fe164e7f-s.2f7nqdagzwx2-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/cc545e633e20c56d-s.176arc174-8zp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/71b036adf157cdcf-s.0bp8oijd_gu96.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/89b21bb081cb7469-s.1fby2rem9ngyr.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/3fe682a82f50d426-s.0vfdmo25voy_0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/13bf9871fe164e7f-s.2f7nqdagzwx2-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/cc545e633e20c56d-s.176arc174-8zp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/71b036adf157cdcf-s.0bp8oijd_gu96.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/89b21bb081cb7469-s.1fby2rem9ngyr.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/3fe682a82f50d426-s.0vfdmo25voy_0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/13bf9871fe164e7f-s.2f7nqdagzwx2-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/cc545e633e20c56d-s.176arc174-8zp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/71b036adf157cdcf-s.0bp8oijd_gu96.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/89b21bb081cb7469-s.1fby2rem9ngyr.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/3fe682a82f50d426-s.0vfdmo25voy_0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/13bf9871fe164e7f-s.2f7nqdagzwx2-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/cc545e633e20c56d-s.176arc174-8zp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/71b036adf157cdcf-s.0bp8oijd_gu96.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/89b21bb081cb7469-s.1fby2rem9ngyr.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/3fe682a82f50d426-s.0vfdmo25voy_0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_34ce8da2-module__hF6DPa__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_34ce8da2-module__hF6DPa__variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--bg:#000;--surface:#080808;--border:#00ff871f;--border-dim:#00ff870f;--text:#e0ffe0;--muted:#4a6a4a;--accent:#00ff87;--accent-dim:#00ff8714;--accent-glow:0 0 16px #00ff8740;--danger:#ff5f56;--warning:#ffbd2e;--max-width:520px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg)}body{min-height:100vh;color:var(--text);font-family:var(--font-mono), "JetBrains Mono", monospace;-webkit-font-smoothing:antialiased;background:radial-gradient(circle,#00ff870f 1px,#0000 1px) 0 0/28px 28px,#000;margin:0;font-size:17px;line-height:1.6;overflow-x:hidden}body:after{z-index:100;pointer-events:none;content:"";background:repeating-linear-gradient(0deg,#0000,#0000 2px,#00000005 2px 4px);position:fixed;inset:0}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}@media (pointer:fine){body,a,button,.tag{cursor:none}}button,input,textarea{font:inherit}main{z-index:1;position:relative}.nav{z-index:20;border-bottom:1px solid var(--border-dim);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#000000e0;justify-content:space-between;align-items:center;width:100%;min-height:56px;padding:0 5%;display:flex;position:fixed;top:0;left:0;right:0}.nav__logo{color:var(--accent);letter-spacing:.02em;font-size:.9rem;font-weight:700}.nav__logo:before{color:var(--muted);content:"~/";font-weight:400}.nav__logo span{display:none}.nav__links{color:var(--muted);align-items:center;gap:1.55rem;font-size:.82rem;display:flex}.nav__links a{transition:color .18s;position:relative}.nav__links a:before{color:var(--accent);content:"//";opacity:.45;margin-right:.3em}.nav__links a:hover,.nav__links a.active,.nav__language:hover{color:var(--accent)}.nav__links a.active:before{opacity:1}.nav__language{border:1px solid var(--border);min-height:28px;color:var(--accent);background:#00ff870a;padding:0 9px;transition:color .18s,border-color .18s,box-shadow .18s}.nav__language:hover{box-shadow:var(--accent-glow);border-color:#00ff8780}.nav__toggle{border:1px solid var(--border);width:42px;height:42px;color:var(--accent);background:0 0;padding:0;display:none}.nav__toggle span{background:currentColor;width:18px;height:1px;margin:5px auto;display:block}.section{width:min(100% - 40px, var(--max-width));margin:0 auto;padding:82px 0 46px}.hero{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1.05rem;min-height:calc(100vh - 56px);padding-top:56px;display:flex;position:relative}.hero__prompt,.section-label,.project-card__stack,.timeline__meta{color:var(--muted);font-size:.85rem}.hero__prompt:first-letter{color:var(--accent)}.hero__name{color:#fff;min-height:1.2em;margin:0;font-size:clamp(2.7rem,6.4vw,3.8rem);font-weight:700;line-height:1.1}.hero__cursor{width:auto;height:auto;color:var(--accent);box-shadow:none;content:"_";background:0 0;margin-left:2px;animation:.9s step-end infinite blink;display:inline-block}.hero__cursor:before{content:"_"}.hero__tagline{width:100%;max-width:560px;color:var(--muted);letter-spacing:.01em;text-align:center;margin:0;font-size:.92rem;line-height:1.8;display:block}.hero__role{color:#d8f8d8;font-weight:700}.hero__location{color:var(--accent);font-weight:700}.hero__stack{color:var(--muted);display:block}.hero__separator{color:var(--muted);margin:0 .28em}.hero__actions,.contact__actions{flex-wrap:wrap;justify-content:center;gap:.75rem;width:min(100%,390px);margin:1.25rem auto 0;display:flex}.hero__socials a:hover,.contact__details a:hover,.meta-list a:hover{color:var(--accent)}.button{letter-spacing:.04em;border:1px solid #0000;border-radius:3px;justify-content:center;align-items:center;min-width:126px;min-height:46px;padding:0 1.1rem;font-size:.9rem;font-weight:500;transition:transform .18s,box-shadow .18s,background .18s;display:inline-flex}.button:before{content:">";margin-right:8px}.button:hover{box-shadow:var(--accent-glow);transform:none}.button--primary{color:#000;background:var(--accent);font-weight:700}.button--ghost{color:var(--accent);border-color:var(--border);background:0 0}.terminal-card,.project-card,.education__block,.contact__details{border:1px solid var(--border);background:var(--surface);border-radius:4px}.hero__avatar-wrap{width:150px;height:150px;margin-bottom:.5rem;position:relative}.avatar{z-index:1;border:1px solid var(--accent);color:#fff;background:radial-gradient(circle at 40% 30%, #00ff8733, transparent 55%), var(--surface);filter:saturate(.72)brightness(.88);border-radius:50%;place-items:center;width:150px;height:150px;font-size:2.4rem;font-weight:700;animation:8s ease-in-out infinite float-loop;display:grid;position:relative}.avatar--photo{object-fit:cover;display:block}.avatar:hover{filter:saturate()brightness();transition:filter .4s}.avatar-glow{z-index:0;filter:blur(16px);opacity:.6;background:radial-gradient(circle,#00ff872e 0%,#0000 70%);border-radius:50%;width:220px;height:220px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.status{border:1px solid var(--border);color:#8aaa8a;background:#00ff870a;align-items:center;gap:10px;padding:10px 12px;font-size:.85rem;display:inline-flex}.status__dot{background:var(--accent);width:8px;height:8px;box-shadow:0 0 16px var(--accent);border-radius:999px}.hero__stats,.meta-list{margin:24px 0 0}.hero__stats div,.meta-list div{border-top:1px solid var(--border-dim);padding:14px 0}dt{color:var(--muted);text-transform:uppercase;font-size:.78rem}dd{margin:2px 0 0}.scroll-hint{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;flex-direction:column;align-items:center;gap:.4rem;margin:0;font-size:.62rem;display:flex;position:absolute;bottom:2rem;left:50%;transform:translate(-50%)}.scroll-hint i{background:linear-gradient(to bottom, var(--accent), transparent);opacity:.5;width:1px;height:36px;animation:2.2s ease-in-out infinite scroll-line}.section-label{letter-spacing:.08em;margin:0 0 1.7rem;font-weight:600;display:inline-block}.section__line{display:none}.about__copy p{color:#8aaa8a;letter-spacing:.01em;margin:0 0 .9rem;line-height:1.85}.meta-list{padding:0}.skills__groups{gap:1.1rem;display:grid}.skill-group h2{color:var(--muted);letter-spacing:.1em;margin:0 0 .6rem;font-size:.8rem}.tag-list{flex-wrap:wrap;gap:.42rem;display:flex}.tag{border:1px solid var(--border);min-height:27px;color:var(--accent);background:#00ff8714;border-radius:2px;align-items:center;padding:.22rem .48rem;font-size:.78rem;transition:color .18s,border-color .18s,transform .18s;display:inline-flex}.tag:before{color:var(--accent);content:"["}.tag:after{color:var(--accent);content:"]"}.tag:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px);box-shadow:0 0 10px #00ff8714}.terminal-section{padding-top:72px}.terminal-card{overflow:hidden}.terminal-card__bar{border-bottom:1px solid var(--border);background:#ffffff08;align-items:center;gap:8px;min-height:42px;padding:0 14px;display:flex}.terminal-card__dot{border-radius:999px;width:11px;height:11px}.terminal-card__dot--red{background:var(--danger)}.terminal-card__dot--yellow{background:var(--warning)}.terminal-card__dot--green{background:var(--accent)}.terminal-card__title{color:var(--muted);margin-left:10px;font-size:.78rem}.terminal-card__body{color:#5a7a5a;min-height:180px;font:inherit;white-space:pre-wrap;margin:0;padding:24px;overflow-x:auto}.tag-list--terminal{margin-top:16px}.timeline{position:relative}.timeline:before{content:"";background:var(--border);width:1px;position:absolute;top:10px;bottom:10px;left:4px}.timeline__item{grid-template-columns:25px minmax(0,1fr);padding-bottom:2.25rem;display:grid;position:relative}.timeline__dot{z-index:1;border:1px solid var(--accent);background:var(--bg);border-radius:999px;width:8px;height:8px;margin-top:9px;transition:background .18s,box-shadow .18s,transform .18s}.timeline__item:hover .timeline__dot{background:var(--accent);box-shadow:var(--accent-glow)}.timeline__content h2,.education__block h2,.project-card h2,.contact h2{color:var(--text);margin:0;font-size:1.05rem;line-height:1.25}.timeline__content h2 span{color:var(--accent)}.timeline__meta,.project-card__stack{margin:0 0 8px}.timeline ul{color:#5a7a5a;margin:16px 0 0;padding-left:20px}.timeline li+li{margin-top:8px}.education{padding-top:24px}.education__block{padding:24px}.education__block p,.project-card p,.contact p{color:#6a8a6a}.projects__grid{grid-template-columns:1fr;gap:1rem;display:grid}.project-card{flex-direction:column;gap:16px;min-height:100%;padding:24px;display:flex}.project-card__tech{margin:0}.project-card__tech span{color:var(--text);font-weight:700}.project-card__bullets{color:#6a8a6a;margin:0;padding-left:18px}.project-card__bullets li+li{margin-top:8px}.project-card .button{align-self:flex-start;margin-top:auto}.contact{padding-bottom:64px}.contact__grid{gap:1.5rem;display:grid}.contact__lead{color:var(--accent);margin-top:10px}.contact .contact__actions{justify-content:flex-start;width:auto;margin:1.45rem 0 0}.contact__details{gap:14px;padding:24px;font-style:normal;display:grid}.cursor__dot,.cursor__ring{z-index:120;pointer-events:none;will-change:transform;position:fixed;top:0;left:0}.cursor__dot{background:var(--accent);border-radius:999px;width:5px;height:5px;margin:-2.5px 0 0 -2.5px}.cursor__ring{opacity:.75;border:1px solid #00ff8780;border-radius:999px;width:26px;height:26px;margin:-13px 0 0 -13px;transition:width .16s,height .16s,margin .16s,opacity .16s}.cursor__ring--hover{opacity:.95;width:40px;height:40px;margin:-20px 0 0 -20px}@keyframes blink{50%{opacity:0}}@keyframes float-loop{50%{transform:translateY(-7px)}}@keyframes scroll-line{0%{opacity:.5;transform-origin:top;transform:scaleY(0)}50%{opacity:.5;transform-origin:top;transform:scaleY(1)}to{opacity:0;transform-origin:bottom;transform:scaleY(1)}}@media (max-width:760px){.hero__grid,.about__grid,.contact__grid,.projects__grid{grid-template-columns:1fr}.hero{min-height:auto}}@media (max-width:640px){.nav{width:100%;min-height:64px;padding:0 16px}.nav__toggle{display:block}.nav__links{border-bottom:1px solid var(--border);background:#000000f5;flex-direction:column;align-items:flex-start;gap:0;padding:10px 16px 16px;display:none;position:absolute;top:64px;left:0;right:0}.nav__links--open{display:flex}.nav__links a{width:100%;padding:10px 0}.nav__language{margin-top:8px}.section{width:min(100% - 40px, var(--max-width));padding:64px 0}.hero__panel,.project-card,.education__block,.contact__details{padding:20px}}@media (pointer:coarse){.cursor__dot,.cursor__ring{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.cursor__dot,.cursor__ring{display:none}}
