@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap";html,html *{cursor:none!important}.cursor-dot.svelte-su73kz,.cursor-ring.svelte-su73kz{position:fixed;left:0;top:0;pointer-events:none;z-index:9999}.cursor-dot.svelte-su73kz{width:6px;height:6px;margin-left:-3px;margin-top:-3px;border-radius:50%;background:var(--accent-2);box-shadow:0 0 8px #80b3ff99;transition:opacity .12s ease}.cursor-ring.svelte-su73kz{width:26px;height:26px;margin-left:-13px;margin-top:-13px;border-radius:50%;border:1.5px solid rgba(200,220,255,.35);color:#c8dcff00;box-shadow:none;background:transparent;transition:width .1s ease,height .1s ease,margin .1s ease,border-color .1s ease,color .1s ease;backdrop-filter:none}.cursor-ring.svelte-su73kz:before,.cursor-ring.svelte-su73kz:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:currentColor;opacity:0;transition:opacity .1s ease;pointer-events:none}.cursor-ring.svelte-su73kz:before{width:60%;height:2px}.cursor-ring.svelte-su73kz:after{width:2px;height:60%}html.cursor-over-clickable .cursor-ring.svelte-su73kz{width:58px;height:58px;margin-left:-29px;margin-top:-29px;border-width:3px;border-color:var(--accent-2);color:var(--accent-2)}@media (pointer: coarse){.cursor-dot.svelte-su73kz,.cursor-ring.svelte-su73kz{display:none}}.cursor-ripples.svelte-su73kz{position:fixed;inset:0;pointer-events:none;z-index:10000}@keyframes svelte-su73kz-cursor-ripple{0%{transform:translate(-50%,-50%) scale(.2);opacity:.95}60%{opacity:.45}to{transform:translate(-50%,-50%) scale(4);opacity:0}}.bg-particles.svelte-3ee210{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}@media (max-width: 820px){.bg-particles.svelte-3ee210{opacity:.6}}.glow.svelte-p0ytyh{position:fixed;left:0;top:0;width:640px;height:640px;pointer-events:none;border-radius:50%;background:radial-gradient(220px 220px at 50% 50%,rgba(128,179,255,.14),rgba(126,231,135,.06) 55%,transparent 72%);filter:blur(60px);opacity:.42;mix-blend-mode:screen;z-index:0}@media (max-width: 800px){.glow.svelte-p0ytyh{display:none}}.retro-overlay.svelte-1cyn7jn{position:fixed;inset:0;pointer-events:none;z-index:0}.scanlines.svelte-1cyn7jn{position:absolute;inset:0;background-image:repeating-linear-gradient(to bottom,rgba(255,255,255,.03) 0px,rgba(0,0,0,0) 1px,transparent 2px);opacity:.04}.vignette.svelte-1cyn7jn{position:absolute;inset:0;background:radial-gradient(120% 100% at 50% 40%,transparent 60%,rgba(0,0,0,.35) 100%);opacity:.35}.grain.svelte-1cyn7jn{position:absolute;inset:0;background-image:url("data:image/svg+xml;utf8,<svg xmlns=%22http://www.w3.org/2000/svg%22 width=%22200%22 height=%22200%22><filter id=%22n%22><feTurbulence type=%22fractalNoise%22 baseFrequency=%220.9%22 numOctaves=%222%22 stitchTiles=%22stitch%22/></filter><rect width=%22200%22 height=%22200%22 filter=%22url(%23n)%22 opacity=%220.04%22/></svg>");background-size:200px 200px;mix-blend-mode:overlay;opacity:.06}@media (max-width: 820px){.retro-overlay.svelte-1cyn7jn{opacity:.7}}.sidenav.svelte-11vgzsw{display:flex;flex-direction:row;gap:12px;flex-wrap:wrap;margin-top:12px}.sidenav.svelte-11vgzsw button:where(.svelte-11vgzsw){all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:var(--step--1);padding:4px 0}.sidenav.svelte-11vgzsw button:where(.svelte-11vgzsw) svg:where(.svelte-11vgzsw){color:var(--muted)}.sidenav.svelte-11vgzsw button:where(.svelte-11vgzsw) span:where(.svelte-11vgzsw){position:relative;display:inline-block}.sidenav.svelte-11vgzsw button:where(.svelte-11vgzsw) span:where(.svelte-11vgzsw):after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:2px;background:linear-gradient(90deg,var(--accent-2),var(--accent));transform:scaleX(0);transform-origin:left;transition:transform .2s ease;opacity:.9}.sidenav.svelte-11vgzsw button:where(.svelte-11vgzsw):hover{color:var(--text)}.sidenav.svelte-11vgzsw button.active:where(.svelte-11vgzsw){color:var(--accent-2)}.sidenav.svelte-11vgzsw button.active:where(.svelte-11vgzsw) span:where(.svelte-11vgzsw):after{transform:scaleX(1)}.timeline.svelte-149cc9k{position:relative;display:grid;gap:16px;padding-left:28px}.timeline.svelte-149cc9k:before{content:"";position:absolute;left:8px;top:0;bottom:0;width:2px;background:linear-gradient(180deg,#7ee78773,#80b3ff59);border-radius:2px}.timeline.svelte-149cc9k .item:where(.svelte-149cc9k){position:relative;opacity:1;transform:none}.timeline.svelte-149cc9k .item:where(.svelte-149cc9k):before{content:"";position:absolute;left:-25px;top:14px;width:10px;height:10px;border-radius:50%;background:var(--accent-2);box-shadow:0 0 0 3px #80b3ff26;transform:scale(.7);transition:transform .2s ease}.timeline.svelte-149cc9k .range:where(.svelte-149cc9k){margin:0 0 6px;color:var(--muted)}.timeline.svelte-149cc9k .title:where(.svelte-149cc9k){margin:0;font-size:var(--step-0)}.timeline.svelte-149cc9k .title:where(.svelte-149cc9k) .role:where(.svelte-149cc9k){color:var(--text)}.timeline.svelte-149cc9k .title:where(.svelte-149cc9k) .org:where(.svelte-149cc9k){color:var(--accent-2)}.timeline.svelte-149cc9k .blurb:where(.svelte-149cc9k){margin-top:8px;color:var(--text);font-size:var(--step--1);line-height:1.6}@keyframes svelte-149cc9k-ping{0%{box-shadow:0 0 #80b3ff59}to{box-shadow:0 0 0 10px #80b3ff00}}@media (prefers-reduced-motion: reduce){.timeline.svelte-149cc9k .item:where(.svelte-149cc9k){opacity:1;transform:none}}@media (max-width: 720px){.timeline.svelte-149cc9k{padding-left:0}.timeline.svelte-149cc9k:before,.timeline.svelte-149cc9k .item:where(.svelte-149cc9k):before{display:none}}.filters.svelte-21pp1n{display:grid;gap:8px;margin-bottom:var(--space-4)}.controls.svelte-21pp1n{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.dd.svelte-21pp1n{position:relative}.dd.svelte-21pp1n summary:where(.svelte-21pp1n){list-style:none;display:inline-flex;align-items:center;gap:6px;cursor:pointer;color:var(--accent-2);padding:4px 6px;border-radius:8px;background:transparent;text-decoration:none}.dd.svelte-21pp1n summary:where(.svelte-21pp1n)::-webkit-details-marker{display:none}.dd.svelte-21pp1n summary:where(.svelte-21pp1n):hover{color:color-mix(in srgb,var(--accent-2) 90%,white)}.dd.svelte-21pp1n .ico:where(.svelte-21pp1n){display:inline-flex;align-items:center;color:var(--muted)}.dd.svelte-21pp1n .caret:where(.svelte-21pp1n){color:var(--muted)}.dd[open].svelte-21pp1n .menu:where(.svelte-21pp1n){animation:svelte-21pp1n-menuIn .12s ease}.menu.svelte-21pp1n{position:absolute;top:calc(100% + 6px);left:0;background:color-mix(in srgb,var(--panel) 85%,transparent);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:6px;border-radius:10px;box-shadow:0 6px 24px #00000059;display:grid;gap:2px;min-width:140px;z-index:10}.item.svelte-21pp1n{all:unset;cursor:pointer;color:var(--text);padding:6px 8px;border-radius:6px}.item.svelte-21pp1n:hover{background:#ffffff0f}@keyframes svelte-21pp1n-menuIn{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.chips.svelte-21pp1n{display:flex;flex-wrap:wrap;gap:8px}.chip.svelte-21pp1n{background:#ffffff0f;color:var(--muted);padding:6px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.08);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:background .12s ease,color .12s ease,border-color .12s ease}.chip.svelte-21pp1n:hover{color:var(--text)}.chip.active.svelte-21pp1n{background:#80b3ff24;color:var(--text);border-color:#80b3ff59}.chip.svelte-21pp1n .close:where(.svelte-21pp1n){opacity:.8}.active-note.svelte-21pp1n{grid-column:1 / -1;color:var(--muted);font-size:var(--step--1)}:root{--bg: #0b0d10;--panel: #11141a;--elev: #151a22;--text: #e6edf3;--muted: #a9b1bb;--accent: #7ee787;--accent-2: #45F0DF;--danger: #ff6b6b;--shadow-1: 0 4px 16px rgba(0, 0, 0, .35);--font-sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, Helvetica Neue, Arial, "Apple Color Emoji", "Segoe UI Emoji";--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--step--1: clamp(.76rem, .74rem + .06vw, .86rem);--step-0: clamp(.9rem, .86rem + .16vw, 1.02rem);--step-1: clamp(1.08rem, 1rem + .42vw, 1.3rem);--step-2: clamp(1.26rem, 1.08rem + .85vw, 1.66rem);--step-3: clamp(1.54rem, 1.3rem + 1.4vw, 2.18rem);--step-4: clamp(1.9rem, 1.48rem + 2.1vw, 2.78rem);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--radius-1: 8px;--radius-2: 14px;--maxw: 1200px}@media (prefers-color-scheme: light){:root{--bg: #ffffff;--panel: #f6f7f9;--elev: #eef1f6;--text: #0b0d10;--muted: #4b5563;--accent: #45F0DF;--accent-2: #16a34a}}*{box-sizing:border-box}html,body{height:100%}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-mono);color:var(--text);background:radial-gradient(1200px 800px at 70% -10%,rgba(128,179,255,.08),transparent),radial-gradient(1000px 700px at 0% 20%,rgba(126,231,135,.06),transparent),var(--bg)}::selection{background:color-mix(in srgb,var(--accent-2) 28%,transparent);color:var(--text)}main{min-height:100%}.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--space-5)}.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}.skip-link:focus{left:var(--space-5);top:var(--space-5);width:auto;height:auto;padding:var(--space-3) var(--space-4);background:var(--panel);color:var(--text);border-radius:var(--radius-1);outline:2px solid var(--accent);box-shadow:var(--shadow-1)}h1{font-size:var(--step-3);line-height:1.05;margin:0 0 var(--space-5);letter-spacing:.3px;text-shadow:0 0 12px rgba(128,179,255,.18),0 0 6px rgba(126,231,135,.12)}h2{font-size:var(--step-2);line-height:1.15;margin:var(--space-7) 0 var(--space-4);letter-spacing:.25px;text-shadow:0 0 10px rgba(128,179,255,.16)}h3{font-size:var(--step-1);line-height:1.25;margin:var(--space-5) 0 var(--space-3);letter-spacing:.2px}p{font-size:var(--step-0);color:var(--muted)}.section{padding:var(--space-8) 0;border-top:1px solid rgba(255,255,255,.06)}.panel{background:linear-gradient(180deg,var(--panel),var(--elev));border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-2);padding:var(--space-6);box-shadow:var(--shadow-1)}.hero{padding:calc(var(--space-8) + 16px) 0 var(--space-8);position:relative;z-index:1}.hero .links{display:flex;align-items:center;gap:12px}.hero .icon{color:var(--muted);display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;transition:color .16s ease;line-height:0;vertical-align:middle}.hero .links .icon svg{display:block;width:20px;height:20px;transition:none}.hero .icon{color:var(--muted);display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;line-height:0;vertical-align:middle;border:none;background:transparent;transition:color .2s ease}.hero .icon:hover{color:var(--accent-2)}.hero .icon[data-icon=github] svg{transform:scale(.94)}.hero .icon[data-icon=linkedin] svg{transform:scale(.88)}.hero .icon[data-icon=email] svg{transform:scale(.92)}.tagline{font-size:var(--step-1);color:var(--muted)}.kpis{margin-top:var(--space-6);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}@media (min-width: 800px){.kpis{grid-template-columns:repeat(4,1fr)}}.kpi{display:grid;gap:var(--space-2)}.kpi .value{font-family:var(--font-mono);font-size:var(--step-2);color:var(--accent)}.kpi .label{font-size:var(--step--1);color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-5)}.layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:var(--space-6);height:100vh;padding:var(--space-6);position:relative;z-index:5}.left{position:sticky;top:0;align-self:start;height:calc(100vh - var(--space-6)*2);overflow:auto;display:grid;align-content:start;gap:var(--space-6);z-index:1}.right{height:calc(100vh - var(--space-6)*2);overflow:auto;scroll-snap-type:y proximity}.right .section{min-height:100%;scroll-snap-align:start;display:flex;align-items:center}.about .chips{margin-top:12px}*{scrollbar-color:var(--accent-2) transparent}body::-webkit-scrollbar,.right::-webkit-scrollbar,.overlay__panel::-webkit-scrollbar{width:10px;height:10px}body::-webkit-scrollbar-track,.right::-webkit-scrollbar-track,.overlay__panel::-webkit-scrollbar-track{background:transparent}body::-webkit-scrollbar-thumb,.right::-webkit-scrollbar-thumb,.overlay__panel::-webkit-scrollbar-thumb{background:linear-gradient(180deg,color-mix(in srgb,var(--accent-2) 85%,transparent),color-mix(in srgb,var(--accent) 70%,transparent));border-radius:10px;border:2px solid rgba(0,0,0,0);background-clip:padding-box}body::-webkit-scrollbar-thumb:hover,.right::-webkit-scrollbar-thumb:hover,.overlay__panel::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,color-mix(in srgb,var(--accent-2) 100%,transparent),color-mix(in srgb,var(--accent) 85%,transparent))}@media (max-width: 980px){.layout{grid-template-columns:1fr;height:auto}.left,.right{position:static;height:auto;overflow:visible}.right{scroll-snap-type:none}.right .section{min-height:auto}}.stack{display:grid;gap:var(--space-5)}main{height:100vh;overflow-y:auto;scroll-snap-type:y mandatory}.section{min-height:100vh;scroll-snap-align:start;display:flex;align-items:center}.section>.container{width:100%}.right{scrollbar-color:var(--accent-2) rgba(255,255,255,.06);scrollbar-width:thin}.right::-webkit-scrollbar{width:10px}.right::-webkit-scrollbar-track{background:#ffffff0f;border-radius:8px}.right::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#80b3ff8c,#7ee78773);border-radius:8px;border:2px solid transparent;background-clip:padding-box}.overlay__panel{scrollbar-color:var(--accent-2) rgba(255,255,255,.06);scrollbar-width:thin}.overlay__panel::-webkit-scrollbar{width:10px}.overlay__panel::-webkit-scrollbar-track{background:#ffffff0f;border-radius:8px}.overlay__panel::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#80b3ff8c,#7ee78773);border-radius:8px;border:2px solid transparent;background-clip:padding-box}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.chip{border:1px solid rgba(255,255,255,.1);background:#ffffff0a;color:var(--text);padding:6px 10px;border-radius:999px;font-size:var(--step--1)}.card{display:grid;gap:var(--space-3);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.card.panel{background:linear-gradient(180deg,color-mix(in srgb,var(--panel) 70%,transparent),color-mix(in srgb,var(--elev) 45%,transparent));border:1px solid rgba(255,255,255,.05);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.card:hover,.card:focus-within{transform:translateY(-2px);box-shadow:0 8px 28px #00000059}.card h3,.card p{margin:0}.card h3,.card h3 a{color:var(--accent-2);text-decoration:none}a{color:var(--accent-2);text-decoration:none;text-underline-offset:3px}a:hover{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1.5px}button,input,select,textarea{font:inherit}button,.button{background:var(--accent-2);color:#031226;border:none;border-radius:var(--radius-1);padding:var(--space-3) var(--space-4);cursor:pointer}button:focus-visible,.button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.text-button{display:inline-flex;align-items:center;gap:8px;color:var(--accent-2);text-decoration:none;font-weight:500;text-underline-offset:5px}.text-button .ico{transition:transform .16s ease}.text-button:hover{text-decoration:underline}.text-button:hover .ico{transform:translate(2px)}.form,.row{display:grid;gap:var(--space-4)}@media (min-width: 720px){.row{grid-template-columns:1fr 1fr}}.input{background:var(--panel);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-1);padding:var(--space-3) var(--space-4);color:var(--text)}.input::placeholder{color:var(--muted)}.note{font-size:var(--step--1);color:var(--muted)}footer{padding:var(--space-7) 0 var(--space-8);color:var(--muted)}.badges{display:flex;flex-wrap:wrap;gap:6px}.badge{display:inline-flex;align-items:center;gap:6px;background:#ffffff0f;color:var(--text);padding:4px 8px;border-radius:10px;font-size:var(--step--1)}.badge .ico{width:14px;height:14px;display:inline-flex;align-items:center;justify-content:center;color:var(--muted)}.badge .txt{vertical-align:middle}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.chip{background:#ffffff0f;color:var(--muted);padding:4px 8px;border-radius:999px;font-size:var(--step--1);border:none}.techs{display:flex;flex-wrap:wrap;align-items:center;margin-top:8px;color:var(--muted);font-size:var(--step--1)}.techs .tech{line-height:1.6}.techs .tech+.tech:before{content:"·";opacity:.6;margin:0 8px}.proj-links{display:flex;gap:12px;margin-top:10px}.proj-links a{color:var(--accent-2);text-decoration:none;font-size:var(--step--1)}.proj-links a:hover,.card h3 a:hover{text-decoration:none}.overlay[data-astro-cid-j7pv25f6]{position:fixed;inset:0;background:#0000008c;opacity:0;pointer-events:none;transition:opacity .18s ease;z-index:50}.overlay[data-astro-cid-j7pv25f6]:target{opacity:1;pointer-events:auto}.overlay__panel[data-astro-cid-j7pv25f6]{position:absolute;inset:6%;background:var(--bg);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-2);padding:var(--space-5);overflow:auto;box-shadow:var(--shadow-1)}.overlay__header[data-astro-cid-j7pv25f6]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.overlay__back[data-astro-cid-j7pv25f6]{color:var(--accent-2);text-decoration:none;border:none;background:transparent;display:inline-flex;align-items:center;gap:6px}.overlay__back[data-astro-cid-j7pv25f6]:hover{color:var(--danger);text-decoration:none}.overlay__content[data-astro-cid-j7pv25f6]{display:block}
