@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: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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-400-normal.CYLoc0-x.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-600-normal.Cu4Hd6ag.woff)format("woff")}:root{--accent-light:#0f766e;--accent-dark:#5eead4;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--font-body:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--measure:45rem;--bg:#fbfbf9;--fg:#1b1c1b;--muted:#5b5d5a;--rule:#e3e3df;--tag-bg:#f1f1ee;--accent:var(--accent-light);color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#121413;--fg:#e6e7e3;--muted:#a2a5a0;--rule:#2a2d2b;--tag-bg:#1c1f1d;--accent:var(--accent-dark);color-scheme:dark}}:root[data-theme=dark]{--bg:#121413;--fg:#e6e7e3;--muted:#a2a5a0;--rule:#2a2d2b;--tag-bg:#1c1f1d;--accent:var(--accent-dark);color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{max-width:calc(var(--measure) + 2rem);background:var(--bg);color:var(--fg);font-family:var(--font-body);overflow-wrap:break-word;margin:0 auto;padding:3.5rem 1rem 4rem;font-size:1rem;line-height:1.6}h1,h2,h3,p,ul,dl,dd{margin:0}a{color:var(--accent);text-underline-offset:.2em;text-decoration:underline 1px;text-decoration-color:color-mix(in srgb, var(--accent) 35%, transparent);transition:text-decoration-color .15s}a:hover{text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.skip-link{background:var(--fg);color:var(--bg);font-family:var(--font-mono);padding:.4rem .7rem;font-size:.8rem;position:absolute;top:-3rem;left:1rem}.skip-link:focus{top:1rem}.muted{color:var(--muted)}.masthead-bar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.75rem;display:flex}.prompt{font-family:var(--font-mono);color:var(--muted);font-size:.8rem}.prompt-sign{color:var(--accent)}.theme-toggle{font:inherit;font-family:var(--font-mono);color:var(--muted);border:1px solid var(--rule);cursor:pointer;background:0 0;border-radius:4px;min-height:2rem;padding:.3rem .6rem;font-size:.75rem;transition:color .15s,border-color .15s}.theme-toggle:hover{color:var(--fg);border-color:var(--muted)}.name{font-family:var(--font-mono);letter-spacing:-.02em;font-size:clamp(1.75rem,5vw,2.25rem);font-weight:600;line-height:1.15}.headline{margin-top:.5rem;font-size:1.05rem}.location{color:var(--muted);margin-top:.15rem}.header-links{font-family:var(--font-mono);flex-wrap:wrap;gap:.35rem 1.25rem;margin-top:1rem;padding:0;font-size:.8rem;list-style:none;display:flex}.header-links a{padding:.2rem 0;display:inline-block}.resume-link:before{content:"↓ "}.section{margin-top:3rem}.section-title{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--rule);margin-bottom:1.25rem;padding-bottom:.5rem;font-size:.8rem;font-weight:600}.section-title:before{content:"## ";color:var(--accent)}.subhead{font-family:var(--font-mono);color:var(--muted);margin:1.5rem 0 .5rem;font-size:.8rem;font-weight:600}.plain-list{padding-left:1.1rem}.entry,.project{break-inside:avoid}.entry+.entry,.project+.project{margin-top:1.75rem}.entry-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:0 1rem;display:flex}.entry-title{font-size:1rem;font-weight:600;line-height:1.4}.entry-dates{font-family:var(--font-mono);color:var(--muted);white-space:nowrap;font-size:.75rem}.entry-sub{color:var(--muted);font-size:.95rem}.entry-org{color:var(--fg)}.entry-body ul{margin-top:.6rem;padding-left:1.1rem}.entry-body li+li{margin-top:.3rem}.entry-body li::marker{color:var(--muted)}.project-desc{margin-top:.3rem}.tags{flex-wrap:wrap;gap:.35rem;margin-top:.6rem;padding:0;list-style:none;display:flex}.tag{font-family:var(--font-mono);background:var(--tag-bg);color:var(--muted);border-radius:3px;padding:.1rem .45rem;font-size:.7rem;line-height:1.5}.project-links{font-family:var(--font-mono);flex-wrap:wrap;gap:.25rem 1rem;margin-top:.5rem;padding:0;font-size:.8rem;list-style:none;display:flex}.project-links a:after{content:" ↗"}.skill-row,.contact-row{grid-template-columns:12rem 1fr;gap:.15rem 1.25rem;display:grid}.skill-row+.skill-row,.contact-row+.contact-row{margin-top:.6rem}.skill-row dt,.contact-row dt{font-family:var(--font-mono);color:var(--muted);font-size:.8rem;line-height:1.6rem}.skill-level,.skill-note{color:var(--muted)}.skill-note{font-style:italic}.footer{border-top:1px solid var(--rule);font-family:var(--font-mono);color:var(--muted);margin-top:4rem;padding-top:1rem;font-size:.75rem}@media (width<=40rem){body{padding-top:1.5rem}.skill-row,.contact-row{grid-template-columns:1fr}.skill-row+.skill-row,.contact-row+.contact-row{margin-top:.9rem}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}@media print{@page{margin:11mm 14mm}.header-links{margin-top:.5rem}.skill-row,.contact-row{grid-template-columns:11rem 1fr}.skill-row dt{line-height:inherit}.project-desc,.tags,.project-links{margin-top:.2rem}:root,:root[data-theme=dark],:root:not([data-theme=light]){--bg:#fff;--fg:#000;--muted:#444;--rule:#bbb;--tag-bg:transparent;--accent:#000;color-scheme:light}html{font-size:8.6pt}body{max-width:none;padding:0;line-height:1.35}.name{font-size:2rem}.entry,.project{break-inside:auto}.entry-head,.entry-sub{break-after:avoid}.entry-body li,.skill-row{break-inside:avoid}.no-print,.skip-link{display:none!important}a{color:inherit;text-decoration:none}.project-links a:after{content:none}.section{margin-top:.9rem}.subhead{margin:.6rem 0 .2rem}.section-title{break-after:avoid;margin-bottom:.6rem}.section-title:before{content:none}.entry+.entry,.project+.project{margin-top:.8rem}.entry-body ul{margin-top:.3rem}.entry-body li+li{margin-top:.1rem}.tag{padding:0;font-size:7.5pt}.tag:not(:last-child):after{content:" ·"}.skill-row+.skill-row,.contact-row+.contact-row{margin-top:.2rem}#contact{display:none}}
