@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-latin-400-normal.C38fXH4l.woff2) format("woff2"),url(/_astro/inter-latin-400-normal.CyCys3Eg.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/inter-latin-600-normal.LgqL8muc.woff2) format("woff2"),url(/_astro/inter-latin-600-normal.CiBQ2DWP.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/inter-latin-700-normal.Yt3aPRUw.woff2) format("woff2"),url(/_astro/inter-latin-700-normal.BLAVimhd.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2) format("woff2"),url(/_astro/jetbrains-mono-latin-400-normal.6-qcROiO.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/jetbrains-mono-latin-500-normal.BWZEU5yA.woff2) format("woff2"),url(/_astro/jetbrains-mono-latin-500-normal.CJOVTJB7.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/jetbrains-mono-latin-600-normal.C8RAYTDA.woff2) format("woff2"),url(/_astro/jetbrains-mono-latin-600-normal.BfsvjouI.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/jetbrains-mono-latin-700-normal.BYuf6tUa.woff2) format("woff2"),url(/_astro/jetbrains-mono-latin-700-normal.D3wTyLJW.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:800;src:url(/_astro/jetbrains-mono-latin-800-normal.D2mQHRMK.woff2) format("woff2"),url(/_astro/jetbrains-mono-latin-800-normal.Dj9qwObk.woff) format("woff")}:root{--acc: #4ade80;--acc-2: #38bdf8;--warn: #fbbf24;--crit: #f87171;--acc-dim: color-mix(in srgb, var(--acc) 16%, transparent);--radius-sm: 6px;--radius: 10px;--radius-lg: 12px;--maxw: 980px;--gutter: clamp(18px, 5vw, 30px);--ease: cubic-bezier(.2, .7, .2, 1);--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--bg: #0a0e14;--bg-elev: #0f151e;--bg-inset: #0c1119;--fg: #d7e0ea;--muted: #7d8aa0;--faint: #55627a;--line: rgba(140, 165, 200, .14);--line-2: rgba(140, 165, 200, .22);--grid: rgba(140, 165, 200, .05);--shadow: 0 20px 50px -28px rgba(0, 0, 0, .85);color-scheme:dark}[data-theme=light]{--bg: #f5f7f9;--bg-elev: #ffffff;--bg-inset: #eef1f5;--fg: #0c1119;--muted: #56627a;--faint: #8a94a8;--line: rgba(20, 35, 60, .12);--line-2: rgba(20, 35, 60, .2);--grid: rgba(20, 35, 60, .05);--acc: #16a34a;--acc-2: #0284c7;--acc-dim: color-mix(in srgb, var(--acc) 12%, transparent);--shadow: 0 20px 45px -28px rgba(20, 40, 80, .3);color-scheme:light}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:92px;-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);background:var(--bg);color:var(--fg);line-height:1.6;min-height:100dvh;overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-webkit-tap-highlight-color:transparent;transition:background .4s var(--ease),color .4s var(--ease)}img{max-width:100%;display:block}a{color:inherit}:focus-visible{outline:2px solid var(--acc);outline-offset:3px;border-radius:3px}::selection{background:var(--acc-dim);color:var(--fg)}.mono{font-family:var(--font-mono)}.skip-link{position:absolute;left:12px;top:-60px;z-index:1000;padding:10px 16px;border-radius:var(--radius-sm);background:var(--acc);color:#04120a;font-weight:700;font-family:var(--font-mono);text-decoration:none;transition:top .2s var(--ease)}.skip-link:focus{top:12px}.backdrop{position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(60% 45% at 50% -8%,var(--acc-dim),transparent 70%),linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:100% 100%,44px 44px,44px 44px;-webkit-mask-image:radial-gradient(120% 90% at 50% 0%,#000 55%,transparent 100%);mask-image:radial-gradient(120% 90% at 50% 0%,#000 55%,transparent 100%)}.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-left:max(var(--gutter),env(safe-area-inset-left));padding-right:max(var(--gutter),env(safe-area-inset-right))}main{padding-bottom:90px}.section{margin-top:clamp(56px,9vw,88px);scroll-margin-top:92px}.section-label{font-family:var(--font-mono);font-size:.82rem;letter-spacing:.02em;color:var(--muted);margin-bottom:22px;display:flex;align-items:center;gap:10px}.section-label:before{content:"//";color:var(--acc)}.section-label:after{content:"";height:1px;flex:1;background:linear-gradient(90deg,var(--line-2),transparent)}.accent{color:var(--acc)}.site-header{position:fixed;inset:0 0 auto;z-index:100;display:flex;justify-content:center;padding:calc(12px + env(safe-area-inset-top)) var(--gutter) 12px}.site-header:before{content:"";position:absolute;inset:0;background:color-mix(in srgb,var(--bg) 72%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid transparent;opacity:0;transition:opacity .3s var(--ease)}.site-header[data-scrolled=true]:before{opacity:1;border-bottom-color:var(--line)}.nav{position:relative;width:100%;max-width:var(--maxw);display:flex;align-items:center;justify-content:space-between;gap:16px;font-family:var(--font-mono)}.nav-brand{font-weight:700;font-size:.95rem;text-decoration:none;white-space:nowrap}.nav-brand .accent{color:var(--acc)}.nav-brand .path{color:var(--muted)}.nav-links{display:flex;align-items:center;gap:2px;list-style:none}.nav-links a{display:inline-block;padding:7px 11px;border-radius:var(--radius-sm);color:var(--muted);text-decoration:none;font-size:.85rem;transition:color .2s var(--ease),background .2s var(--ease)}.nav-links a:before{content:"/";color:var(--faint);margin-right:1px}.nav-links a:hover,.nav-links a.is-active{color:var(--acc);background:var(--acc-dim)}.nav-actions{display:flex;align-items:center;gap:8px}.status-pill{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:.76rem;color:var(--muted);border:1px solid var(--line);background:var(--bg-elev);padding:6px 10px;border-radius:var(--radius-sm)}.theme-toggle{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--bg-elev);color:var(--fg);cursor:pointer;transition:transform .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease)}.theme-toggle:hover{transform:translateY(-1px);border-color:var(--acc);color:var(--acc)}.theme-toggle .icon-sun{display:none}[data-theme=light] .theme-toggle .icon-sun{display:block}[data-theme=light] .theme-toggle .icon-moon{display:none}.dot{width:8px;height:8px;border-radius:50%;background:var(--acc);box-shadow:0 0 color-mix(in srgb,var(--acc) 70%,transparent);animation:pulse 2.4s var(--ease) infinite}@keyframes pulse{0%{box-shadow:0 0 color-mix(in srgb,var(--acc) 60%,transparent)}70%{box-shadow:0 0 0 7px transparent}to{box-shadow:0 0 0 0 transparent}}.hero{padding-top:clamp(108px,18vh,168px)}.term{border:1px solid var(--line);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg-elev) 88%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:var(--shadow);overflow:hidden}.term-head{display:flex;align-items:center;gap:10px;padding:11px 14px;border-bottom:1px solid var(--line);background:var(--bg-inset);font-family:var(--font-mono);font-size:.78rem;color:var(--muted)}.dots{display:inline-flex;gap:6px}.dots i{width:11px;height:11px;border-radius:50%;display:block}.dots i:nth-child(1){background:#ff5f57}.dots i:nth-child(2){background:#febc2e}.dots i:nth-child(3){background:#28c840}.term-title{margin-inline:auto;padding-right:30px}.term-body{padding:clamp(20px,4vw,34px);font-family:var(--font-mono)}.cmd{color:var(--muted);font-size:.92rem}.cmd .prompt{color:var(--acc);margin-right:8px}.cmd .flag{color:var(--acc-2)}.hero h1{font-family:var(--font-mono);font-size:clamp(2.1rem,7vw,3.6rem);font-weight:800;letter-spacing:-.02em;line-height:1.05;margin:10px 0 6px}.hero h1 .accent{color:var(--acc)}.cursor{display:inline-block;width:.62ch;height:1.05em;background:var(--acc);translate:0 .14em;animation:blink 1.1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.hero .role{font-family:var(--font-mono);color:var(--fg);font-size:clamp(.98rem,2.6vw,1.18rem);font-weight:600}.hero .role:before{content:"# ";color:var(--faint)}.hero .bio{font-family:var(--font-sans);color:var(--muted);max-width:64ch;margin-top:16px;font-size:clamp(.98rem,2.3vw,1.05rem)}.cta-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}.btn{display:inline-flex;align-items:center;gap:9px;padding:10px 16px;min-height:44px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--bg-elev);color:var(--fg);text-decoration:none;font-family:var(--font-mono);font-weight:500;font-size:.9rem;cursor:pointer;transition:transform .2s var(--ease),border-color .2s var(--ease),box-shadow .2s var(--ease),color .2s var(--ease)}.btn svg{width:17px;height:17px}.btn:hover{transform:translateY(-2px);border-color:var(--acc);color:var(--acc);box-shadow:0 12px 28px -18px var(--acc)}.btn-primary{border-color:color-mix(in srgb,var(--acc) 60%,var(--line));background:var(--acc-dim);color:var(--acc)}.btn-primary:hover{background:color-mix(in srgb,var(--acc) 22%,transparent)}.metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:14px}@media(min-width:720px){.metrics{grid-template-columns:repeat(4,1fr)}}.metric{position:relative;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elev);padding:16px 16px 14px;overflow:hidden}.metric:before{content:"";position:absolute;inset:0 auto 0 0;width:2px;background:var(--acc);opacity:.7}.metric .m-label{font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.metric .m-value{font-family:var(--font-mono);font-size:clamp(1.5rem,4.5vw,1.9rem);font-weight:800;color:var(--acc);line-height:1.1;margin-top:6px}.metric .m-note{font-family:var(--font-mono);font-size:.72rem;color:var(--faint);margin-top:3px}.uptime{margin-top:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elev);padding:14px 16px}.uptime-head{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:.74rem;color:var(--muted);margin-bottom:10px}.uptime-bars{display:flex;gap:2px;height:30px;align-items:stretch}.uptime-bars i{flex:1;border-radius:2px;background:var(--acc);opacity:.65;transition:opacity .2s var(--ease),transform .2s var(--ease)}.uptime-bars i:hover{opacity:1;transform:scaleY(1.08)}.uptime-bars i.warn{background:var(--warn)}.skill-groups{display:grid;gap:20px}@media(min-width:720px){.skill-groups{grid-template-columns:repeat(2,1fr)}}.skill-group{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elev);padding:18px 18px 20px}.skill-group h3{font-family:var(--font-mono);font-size:.76rem;letter-spacing:.04em;color:var(--muted);margin-bottom:14px;font-weight:600}.skill-group h3:before{content:"▸ ";color:var(--acc)}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{font-family:var(--font-mono);font-size:.82rem;color:var(--fg);padding:6px 11px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--bg-inset);transition:border-color .2s var(--ease),color .2s var(--ease),transform .2s var(--ease)}.chip:hover{color:var(--acc);border-color:var(--acc);transform:translateY(-2px)}.timeline{display:grid;gap:12px}.xp{position:relative;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elev);padding:18px 20px;transition:border-color .25s var(--ease),box-shadow .25s var(--ease)}.xp:hover{border-color:var(--line-2);box-shadow:var(--shadow)}.xp-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}.xp-status{width:8px;height:8px;border-radius:50%;background:var(--faint);flex:none}.xp[data-current=true] .xp-status{background:var(--acc);box-shadow:0 0 0 4px var(--acc-dim)}.xp-role{font-weight:700;font-size:1.05rem}.xp-company{font-family:var(--font-mono);color:var(--acc-2);font-size:.92rem}.xp-company a{text-decoration:none}.xp-meta{font-family:var(--font-mono);font-size:.78rem;color:var(--muted);margin:8px 0 0 18px}.xp-summary{color:var(--muted);margin:10px 0 0 18px}.xp-highlights{margin:12px 0 0 18px;display:grid;gap:7px;list-style:none}.xp-highlights li{position:relative;padding-left:22px;color:var(--muted);font-size:.96rem}.xp-highlights li:before{content:"✓";position:absolute;left:0;top:0;color:var(--acc);font-family:var(--font-mono);font-size:.85rem}.grid{display:grid;gap:14px}@media(min-width:720px){.grid-2{grid-template-columns:repeat(2,1fr)}}.panel{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elev);overflow:hidden;transition:transform .25s var(--ease),border-color .25s var(--ease),box-shadow .25s var(--ease)}.panel:hover{transform:translateY(-3px);border-color:var(--line-2);box-shadow:var(--shadow)}.panel-head{display:flex;align-items:center;gap:8px;padding:11px 16px;border-bottom:1px solid var(--line);background:var(--bg-inset);font-family:var(--font-mono);font-size:.82rem}.panel-head .svc{color:var(--acc)}.panel-head .name{color:var(--fg);font-weight:600}.panel-body{padding:16px;flex:1}.panel-body p{color:var(--muted);font-size:.96rem}.card-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}.tag{font-family:var(--font-mono);font-size:.72rem;color:var(--muted);padding:3px 9px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--bg-inset)}.card-links{display:flex;gap:14px;margin-top:16px;font-family:var(--font-mono)}.card-links a{font-size:.84rem;font-weight:600;color:var(--fg);text-decoration:none;display:inline-flex;align-items:center;gap:5px}.card-links a:hover{color:var(--acc)}.about-text p{color:var(--muted);max-width:70ch;margin-bottom:14px;font-size:1.02rem}.about-text p:last-child{margin-bottom:0}.edu{display:grid;gap:12px}.edu-item{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elev);padding:16px 20px}.edu-school{font-weight:700}.edu-degree{font-family:var(--font-mono);color:var(--acc-2);font-size:.9rem;margin-top:2px}.edu-period{font-family:var(--font-mono);color:var(--muted);font-size:.78rem;margin-top:6px}.contact{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-elev);overflow:hidden}.contact .term-head{border-radius:0}.contact-body{padding:clamp(28px,5vw,44px);text-align:center}.contact-body h2{font-family:var(--font-mono);font-size:clamp(1.4rem,4.5vw,2rem);font-weight:800;letter-spacing:-.01em;margin-bottom:12px}.contact-body p{color:var(--muted);max-width:50ch;margin:0 auto 24px}.contact-body .prompt-line{font-family:var(--font-mono);color:var(--muted);font-size:.9rem;margin-bottom:22px}.contact-body .prompt-line .prompt{color:var(--acc)}.contact-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.site-footer{margin-top:clamp(64px,9vw,100px);padding:24px var(--gutter);border-top:1px solid var(--line);color:var(--muted);font-family:var(--font-mono);font-size:.8rem;display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center;justify-content:space-between;max-width:var(--maxw);margin-inline:auto}.site-footer .comment{color:var(--faint)}.site-footer a{color:var(--fg);text-decoration:none}.site-footer a:hover{color:var(--acc)}.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease),transform .6s var(--ease);will-change:opacity,transform}.reveal.is-visible,.no-js .reveal{opacity:1;transform:none}@media(max-width:680px){.nav-links,.status-pill .txt{display:none}}@media(max-width:640px){.site-footer{flex-direction:column;align-items:flex-start;padding-bottom:calc(24px + env(safe-area-inset-bottom))}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.reveal{opacity:1;transform:none}.cursor{animation:none}}
