@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:400;src:url(/_astro/ibm-plex-sans-latin-ext-400-normal.C5H60-Va.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-400-normal.RBey6euL.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-latin-500-normal.6ng42L7E.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-500-normal.BgVn5rGT.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-latin-ext-500-normal.DakdToA3.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-500-normal.D0aIdm-b.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")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-latin-ext-600-normal.DOrvGEcy.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-600-normal.DIrixKbi.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-sans-latin-700-normal.Bxkt5Cjx.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-700-normal.Bth3BMcD.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-sans-latin-ext-700-normal.aMgXseD4.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-700-normal.DZH6Xh-4.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-ext-500-normal.CAhNIIs5.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-500-normal.CZ70TYgx.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-mono-latin-600-normal.BgSNZQsw.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-600-normal.DWFSQ4vo.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-mono-latin-ext-600-normal.D38SheWl.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-600-normal.DmB0ttJJ.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-mono-latin-700-normal.7sUh57Bg.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-700-normal.CNHXzs6v.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-mono-latin-ext-700-normal.Dhimjc7-.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-700-normal.Cwsjk1Jb.woff)format("woff")}:root{color-scheme:dark;--page:#0a0a0a;--surface:#09090b;--surface-raised:#111113;--border:#2b2b30;--border-strong:#3f3f46;--text:#e8e8e8;--muted:#9a9aa3;--quiet:#8a8a95;--accent:#c8e64a;--accent-ink:#11140a;--max-width:1100px;--border-width:1px;--font-sans:"IBM Plex Sans", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;min-width:320px;font-family:var(--font-sans);scroll-padding-top:2rem}body{background:var(--page);min-width:320px;color:var(--text);font-family:var(--font-sans);text-rendering:optimizelegibility;margin:0;font-size:1rem;line-height:1.65}button,input,select,textarea,summary{font-family:inherit}body:before{z-index:-1;content:"";pointer-events:none;background-image:linear-gradient(#ffffff05 1px,#0000 1px),linear-gradient(90deg,#ffffff05 1px,#0000 1px);background-size:48px 48px;position:fixed;inset:0;mask-image:linear-gradient(#000,#0000 72%)}::selection{background:var(--accent);color:var(--accent-ink)}a{color:inherit;text-underline-offset:.22em}a:hover{color:var(--accent)}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}[hidden]{display:none!important}.visually-hidden{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}img,svg{max-width:100%;display:block}h1,h2,h3,h4,p,dl,dd{margin-top:0}h1,h2,h3,h4{text-wrap:balance;line-height:1.18}ul{margin:0;padding:0}.skip-link{z-index:100;background:var(--accent);color:var(--accent-ink);font-family:var(--font-mono);padding:.65rem .9rem;position:fixed;top:.75rem;left:.75rem;transform:translateY(-160%)}.skip-link:focus{color:var(--accent-ink);transform:translateY(0)}.page-shell{width:min(var(--max-width), calc(100% - 2rem));margin:0 auto;padding:0 0 1.5rem}.site-header{border-bottom:var(--border-width) solid var(--border);min-height:4rem;color:var(--muted);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;grid-template-columns:1fr auto 1fr;align-items:center;margin-bottom:5rem;font-size:.75rem;display:grid}.wordmark,.domain-link,.site-header nav a{text-decoration:none}.wordmark{width:fit-content;color:var(--text);align-items:center;gap:.75rem;font-weight:600;display:inline-flex}.wordmark-mark{background:var(--accent);width:2rem;height:2rem;color:var(--accent-ink);place-items:center;font-size:.72rem;display:grid}.desktop-nav{gap:clamp(1rem,3vw,2rem);display:flex}.domain-link{justify-self:end;align-items:center;gap:.5rem;display:inline-flex}.mobile-nav{justify-self:end;display:none;position:relative}.mobile-nav summary{border:var(--border-width) solid var(--border-strong);min-height:3rem;color:var(--text);cursor:pointer;user-select:none;align-items:center;gap:.6rem;padding:.7rem .85rem;list-style:none;display:inline-flex}.mobile-nav summary::-webkit-details-marker{display:none}.mobile-nav summary:hover,.mobile-nav[open] summary{border-color:var(--accent);color:var(--accent)}.menu-icon{fill:none;stroke:currentColor;stroke-linecap:square;stroke-width:1.5px}.mobile-nav-panel{z-index:20;border:var(--border-width) solid var(--border-strong);background:var(--surface-raised);width:min(28rem,100vw - 1rem);display:grid;position:absolute;top:calc(100% + .6rem);right:0;box-shadow:0 0 2rem #00000073}.mobile-nav-panel a{border-bottom:var(--border-width) solid var(--border);align-items:center;min-height:3.5rem;padding:1rem 1.1rem;font-size:.85rem;display:flex}.mobile-nav-panel a:last-child{border-bottom:0}.mobile-nav-panel a:hover{background:var(--surface)}.arrow-icon{flex:none}.hero,.panel,.project-card{background:var(--surface);box-shadow:0 0 0 var(--border-width) var(--border)}.hero{overflow:hidden}.demo-notice{border-bottom:var(--border-width) solid var(--border);color:var(--accent);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.055em;align-items:center;gap:.65rem;margin:0;padding:.85rem 1rem;font-size:.72rem;display:flex}.demo-notice span{font-size:.55rem}.hero-copy{text-align:center;padding:clamp(3rem,8vw,6.5rem) clamp(1.25rem,6vw,5rem);position:relative}.hero-copy-control{position:absolute;top:1rem;right:1rem}.eyebrow{color:var(--accent);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;margin-bottom:1rem;font-size:.72rem}.hero h1{letter-spacing:-.07em;margin-bottom:1.5rem;font-size:clamp(2.8rem,9vw,7.5rem);font-weight:500}.positioning{text-wrap:balance;max-width:780px;margin:0 auto 1rem;font-size:clamp(1.05rem,2.4vw,1.5rem);line-height:1.45}.summary{max-width:660px;color:var(--muted);margin:0 auto}.facts-grid{border-top:var(--border-width) solid var(--border);font-family:var(--font-mono);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.fact{border-right:var(--border-width) solid var(--border);border-bottom:var(--border-width) solid var(--border);min-width:0;padding:1.35rem 1.25rem}.fact:nth-child(2n){border-right:0}.fact dt{color:var(--quiet);text-transform:uppercase;letter-spacing:.07em;margin-bottom:.3rem;font-size:.68rem}.fact dd{overflow-wrap:anywhere;margin:0}.primary-actions{border-bottom:var(--border-width) solid var(--border);flex-wrap:wrap;justify-content:center;gap:.75rem;padding:1.5rem 1.25rem;display:flex}.button{border:var(--border-width) solid var(--border-strong);min-height:2.9rem;color:var(--text);font:inherit;font-family:var(--font-mono);background:0 0;justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem .9rem;font-size:.78rem;text-decoration:none;transition:background-color .16s,border-color .16s,color .16s;display:inline-flex}.button:hover{border-color:var(--accent)}.button-primary{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.button-primary:hover{color:var(--accent-ink);background:#d8f45a}.contact-rows>a{border-bottom:var(--border-width) solid var(--border);min-width:0;color:var(--muted);font-family:var(--font-mono);justify-content:space-between;align-items:center;gap:1rem;padding:1.15rem 1.25rem;text-decoration:none;display:flex}.contact-rows>a:last-child{border-bottom:0}.contact-rows>a:hover{background:var(--surface-raised);color:var(--text)}.contact-value{min-width:0;color:var(--text);overflow-wrap:anywhere;text-align:right;align-items:center;gap:.5rem;display:inline-flex}.resume-section{margin-top:clamp(5rem,10vw,9rem)}.section-heading{font-family:var(--font-mono);grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;gap:.75rem;margin-bottom:1.2rem;display:grid;position:relative}.section-heading span{color:var(--accent);font-size:.7rem}.section-heading h2{text-transform:uppercase;letter-spacing:.09em;margin:0;font-size:.85rem;font-weight:500}.section-copy{place-self:center end}.copy-button{border:var(--border-width) solid var(--border-strong);min-height:2rem;color:var(--muted);font:inherit;font-family:var(--font-mono);cursor:pointer;background:0 0;align-items:center;gap:.5rem;padding:.35rem .55rem;font-size:.68rem;transition:border-color .16s,color .16s,background-color .16s;display:inline-flex}.copy-button:hover{border-color:var(--accent);color:var(--text)}.copy-button:disabled{cursor:wait}.copy-button[data-state=success]{border-color:var(--accent);color:var(--accent)}.copy-button[data-state=error]{color:#ffb0b0;border-color:#ff8a8a}.copy-button svg{fill:none;stroke:currentColor;stroke-width:1.25px}.experience-item{border-bottom:var(--border-width) solid var(--border);grid-template-columns:4.5rem minmax(0,1fr);display:grid}.experience-item:last-child{border-bottom:0}.item-index{border-right:var(--border-width) solid var(--border);min-height:100%;color:var(--quiet);font-family:var(--font-mono);place-items:start center;padding-top:2rem;font-size:.72rem;display:grid}.experience-content{min-width:0;padding:clamp(1.5rem,4vw,2.5rem)}.item-header{justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-bottom:1.5rem;display:flex}.item-header>div{min-width:0}.item-header h3,.project-card h3,.contact-panel h3{margin-bottom:.45rem;font-size:clamp(1.1rem,2vw,1.35rem);font-weight:500}.organization{color:var(--accent);margin-bottom:0}.item-meta{color:var(--quiet);font-family:var(--font-mono);text-align:right;flex-direction:column;flex:none;align-items:flex-end;margin-bottom:0;font-size:.7rem;display:flex}.item-meta>span[aria-hidden]{display:none}.item-summary{max-width:760px;color:var(--muted)}.achievement-list{gap:.65rem;margin-top:1.25rem;list-style:none;display:grid}.achievement-list li{padding-left:1.35rem;position:relative}.achievement-list li:before{color:var(--accent);content:"+";position:absolute;top:0;left:0}.engagement-list{gap:1.5rem;margin-top:2rem;display:grid}.engagement-item{border-top:var(--border-width) solid var(--border);padding-top:1.5rem}.engagement-header{justify-content:space-between;align-items:flex-start;gap:1.5rem;display:flex}.engagement-header>div{min-width:0}.engagement-label{color:var(--accent);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.45rem;font-size:.68rem}.engagement-header h4{margin:0;font-size:clamp(1rem,1.8vw,1.2rem);font-weight:500}.engagement-meta{margin:0}.tag-list{font-family:var(--font-mono);flex-wrap:wrap;gap:.5rem;margin-top:1.4rem;list-style:none;display:flex}.tag-list li{border:var(--border-width) solid var(--border);color:var(--muted);padding:.25rem .55rem;font-size:.68rem}.project-grid{gap:var(--border-width);background:var(--border);box-shadow:0 0 0 var(--border-width) var(--border);display:grid}.project-row{gap:var(--border-width);background:var(--border);grid-template-columns:1fr;display:grid}.project-card{min-width:0;padding:clamp(1.5rem,4vw,2.25rem);position:relative}.project-number{color:var(--accent);font-family:var(--font-mono);margin-bottom:1.25rem;font-size:.7rem}.project-card>p{color:var(--muted)}.project-description{min-width:0}.project-outcome{border-top:var(--border-width) solid var(--border);padding-top:1rem;color:var(--text)!important}.project-links{font-family:var(--font-mono);gap:1rem;margin-top:1.5rem;display:flex}.project-links a{align-items:center;gap:.5rem;font-size:.75rem;display:inline-flex}.qualifications-grid{grid-template-columns:1fr;gap:1rem;display:grid}.skills-panel,.profile-panel{padding:clamp(1.5rem,4vw,2.25rem)}.skills-panel>h3,.profile-panel h3{color:var(--muted);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;margin-bottom:1.5rem;font-size:.72rem;font-weight:500}.skill-groups{gap:2rem;display:grid}.skill-groups h4,.education-item h4{margin-bottom:.7rem;font-size:.95rem;font-weight:600}.skill-groups ul{color:var(--muted);flex-wrap:wrap;gap:.45rem 1rem;list-style:none;display:flex}.skill-groups li:before{color:var(--accent);content:"/";margin-right:.45rem}.profile-panel{align-content:space-between;gap:3rem;display:grid}.education-item p{margin-bottom:.35rem}.muted{color:var(--muted)}.micro{color:var(--quiet);font-family:var(--font-mono);font-size:.7rem}.availability{border-top:var(--border-width) solid var(--border);padding-top:1.5rem}.availability p{margin-bottom:0}.language-panel{padding:clamp(1.5rem,4vw,2.25rem)}.language-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;margin:0;display:grid}.language-list>div{border-left:var(--border-width) solid var(--border);padding-left:1rem}.language-list dt{color:var(--accent);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.45rem;font-size:.72rem}.language-list dd{color:var(--muted);margin:0}.contact-panel{gap:2rem;padding:clamp(1.5rem,5vw,3rem);display:grid}.contact-panel h3{max-width:620px;font-size:clamp(1.5rem,4vw,2.5rem)}.contact-panel .muted{max-width:650px;margin-bottom:0}.contact-actions{flex-wrap:wrap;gap:.75rem;display:flex}.site-footer{border-top:var(--border-width) solid var(--border);color:var(--quiet);font-family:var(--font-mono);justify-content:space-between;align-items:center;gap:1.5rem;margin-top:7rem;padding:1.5rem 0 0;font-size:.7rem;display:flex}.site-footer p{margin-bottom:0}.site-footer nav{flex-wrap:wrap;gap:1.25rem;display:flex}.not-found{place-content:center;width:min(680px,100% - 2rem);min-height:100vh;margin:0 auto;display:grid}.not-found-code{color:var(--surface-raised);font-family:var(--font-mono);letter-spacing:-.1em;margin-bottom:-1.5rem;font-size:clamp(7rem,30vw,16rem);font-weight:700;line-height:.9}.not-found h1{font-size:clamp(2rem,6vw,4rem)}.not-found .button{width:fit-content;margin-top:1rem}@media (width>=700px){:root{--border-width:1.5px}.page-shell{width:min(var(--max-width), 90vw);padding-top:0}.facts-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.fact{border-bottom:var(--border-width) solid var(--border)}.fact:nth-child(2n){border-right:var(--border-width) solid var(--border)}.fact:last-child{border-right:0}.primary-actions{padding:1.5rem 2rem}.contact-rows>a{padding:1.15rem 2rem}.project-grid{grid-template-columns:1fr}.project-row{gap:0 var(--border-width);grid-template-rows:repeat(6,auto);grid-template-columns:repeat(3,minmax(0,1fr))}.project-card{grid-row:1/span 6;grid-template-rows:subgrid;row-gap:0;display:grid}.project-card .project-number{grid-row:1}.project-card h3{grid-row:2}.project-description{grid-row:3}.project-outcome{grid-row:4}.project-links{grid-row:5}.project-card>.tag-list{grid-row:6}.qualifications-grid{grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr)}.contact-panel{grid-template-columns:minmax(0,1fr) auto;align-items:end}}@media (width<=760px){.site-header{grid-template-columns:1fr auto;margin-bottom:2.5rem;position:relative}.desktop-nav,.domain-link{display:none}.mobile-nav{display:block}.item-header{gap:.75rem}.item-meta{text-align:right;align-items:flex-end}.language-list{grid-template-columns:1fr}.site-footer{text-align:center;flex-direction:column;align-items:center}.site-footer nav{justify-content:center}}@media (width<=420px){.page-shell{width:calc(100% - 1rem)}.facts-grid{grid-template-columns:1fr}.fact,.fact:nth-child(2n){border-right:0}.hero-copy{padding-inline:1rem}.experience-item{grid-template-columns:2.5rem minmax(0,1fr)}.item-index{font-size:.62rem}.primary-actions,.contact-actions{flex-direction:column}.button{width:100%}.contact-rows>a{flex-direction:column;align-items:flex-start}.contact-value{text-align:left}}@media (prefers-reduced-motion:no-preference){.hero,.resume-section{animation:.5s both settle}.resume-section:nth-of-type(2){animation-delay:80ms}.resume-section:nth-of-type(3){animation-delay:.14s}@keyframes settle{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{:root{color-scheme:light;--page:#fff;--surface:#fff;--surface-raised:#fff;--border:#bbb;--border-strong:#777;--text:#111;--muted:#333;--quiet:#555;--accent:#111;--accent-ink:#fff}@page{margin:14mm}body{color:#111;background:#fff;font-size:9pt}body:before,.site-header,.no-print,.site-footer,.skip-link{display:none!important}.page-shell{width:100%;padding:0}.hero-copy{padding:12mm 8mm}.hero h1{font-size:34pt}.resume-section{margin-top:10mm}.hero,.panel,.project-card{box-shadow:0 0 0 .5pt #bbb}.experience-item,.project-card,.qualifications-grid,.contact-panel{break-inside:avoid}.project-grid{grid-template-columns:repeat(3,1fr)}a{text-decoration:none}}
