:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--paper:#fff;--paper-2:#f7f7f7;--ink:#111;--ink-2:#333;--ink-3:#5c5c5c;--ink-4:#8a8a8a;--rule:#e2e2e2;--rule-2:#cfcfcf;--measure:72ch;--gap:clamp(2.25rem, 5vw, 3.5rem);--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Inter, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme]){--paper:#0e0e0e;--paper-2:#171717;--ink:#f2f2f2;--ink-2:#d6d6d6;--ink-3:#a3a3a3;--ink-4:#767676;--rule:#262626;--rule-2:#3a3a3a}}:root[data-theme=dark]{--paper:#0e0e0e;--paper-2:#171717;--ink:#f2f2f2;--ink-2:#d6d6d6;--ink-3:#a3a3a3;--ink-4:#767676;--rule:#262626;--rule-2:#3a3a3a}:root[data-theme=light]{--paper:#fff;--paper-2:#f7f7f7;--ink:#111;--ink-2:#333;--ink-3:#5c5c5c;--ink-4:#8a8a8a;--rule:#e2e2e2;--rule-2:#cfcfcf}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}body{background:var(--paper);color:var(--ink-2);font-family:var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:16px;line-height:1.65}a{color:var(--ink);border-bottom:1px solid var(--rule-2);text-decoration:none}a:hover{border-bottom-color:var(--ink)}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:2px}.wrap{max-width:60rem;margin:0 auto;padding:clamp(2rem,6vw,4.5rem) clamp(1.25rem,5vw,3rem) 5rem}.toolbar{z-index:20;background:color-mix(in srgb, var(--paper) 86%, transparent);-webkit-backdrop-filter:saturate(0)blur(10px);backdrop-filter:saturate(0)blur(10px);border-bottom:1px solid var(--rule);justify-content:flex-end;gap:.5rem;padding:.75rem clamp(1.25rem,5vw,3rem);display:flex;position:sticky;top:0}.btn{font:inherit;letter-spacing:.01em;color:var(--ink-2);border:1px solid var(--rule-2);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:.45rem;padding:.4rem .9rem;font-size:.8125rem;font-weight:500;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.btn:hover{color:var(--ink);border-color:var(--ink);background:var(--paper-2)}.btn svg{flex:none;width:15px;height:15px}.masthead{border-bottom:1px solid var(--rule);align-items:flex-start;gap:clamp(1.25rem,4vw,2.25rem);padding-bottom:2rem;display:flex}.monogram{border:1.5px solid var(--ink);letter-spacing:.04em;width:76px;height:76px;color:var(--ink);border-radius:50%;flex:none;place-items:center;font-size:1.35rem;font-weight:600;display:grid}.masthead h1{letter-spacing:-.035em;color:var(--ink);margin:0;font-size:clamp(2rem,6vw,3.15rem);font-weight:600;line-height:1.04}.role{color:var(--ink-3);letter-spacing:-.005em;margin:.55rem 0 0;font-size:clamp(.95rem,2.2vw,1.0625rem)}.role b{color:var(--ink-2);font-weight:500}.contact{color:var(--ink-3);flex-wrap:wrap;gap:.4rem 1.5rem;margin:1.1rem 0 0;padding:0;font-size:.9rem;list-style:none;display:flex}.contact li{align-items:center;gap:.5rem;display:inline-flex}.contact svg{width:15px;height:15px;color:var(--ink-4);flex:none}.contact a{border-bottom-color:var(--rule)}.section{padding-top:var(--gap)}.section+.section{border-top:1px solid var(--rule);margin-top:var(--gap)}.section-head{align-items:baseline;gap:.75rem;margin-bottom:1.5rem;display:flex}.section-head .num{font-family:var(--mono);color:var(--ink-4);letter-spacing:.04em;font-size:.75rem}.section-head h2{text-transform:uppercase;letter-spacing:.14em;color:var(--ink);margin:0;font-size:.8125rem;font-weight:600}.lede{max-width:var(--measure);color:var(--ink-2);white-space:pre-line;margin:0;font-size:1.0625rem;line-height:1.7}.note{max-width:var(--measure);color:var(--ink-3);white-space:pre-line;margin:0 0 1.25rem}.offers{grid-template-columns:repeat(auto-fit,minmax(15.5rem,1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.offers li{background:var(--paper);border:1px solid var(--rule);border-radius:8px;padding:1rem 1.1rem 1.1rem}.offers b{color:var(--ink);margin-bottom:.2rem;font-size:.9375rem;font-weight:600;display:block}.offers span{color:var(--ink-3);font-size:.875rem;line-height:1.55}.entry{border-top:1px solid var(--rule);grid-template-columns:12.5rem 1fr;gap:0 2rem;padding:1.35rem 0;display:grid}.entry:first-of-type{border-top:0;padding-top:0}.entry .when{font-family:var(--mono);color:var(--ink-4);letter-spacing:-.01em;margin:0;padding-top:.28rem;font-size:.78rem;line-height:1.6}.entry .when .where{color:var(--ink-4);display:block}.entry h3{letter-spacing:-.015em;color:var(--ink);margin:0;font-size:1.0625rem;font-weight:600}.entry .at{color:var(--ink-3);margin:.1rem 0 .55rem;font-size:.9375rem}.entry ul{max-width:var(--measure);margin:0;padding-left:1.05rem}.entry li{color:var(--ink-2);padding:.12rem 0;font-size:.9375rem}.entry li::marker{color:var(--ink-4)}.projects{background:var(--rule);border:1px solid var(--rule);gap:1px;display:grid}.project{background:var(--paper);padding:1.4rem 1.5rem}.project h3{letter-spacing:-.015em;color:var(--ink);margin:0;font-size:1.0625rem;font-weight:600}.project .stack{font-family:var(--mono);color:var(--ink-4);letter-spacing:-.01em;margin:.3rem 0 .7rem;font-size:.75rem}.project ul{max-width:var(--measure);margin:0;padding-left:1.05rem}.project li{padding:.12rem 0;font-size:.9375rem}.project li::marker{color:var(--ink-4)}.skills{grid-template-columns:repeat(auto-fit,minmax(19rem,1fr));gap:.75rem;display:grid}.skill-group{background:var(--paper);border:1px solid var(--rule);border-radius:8px;padding:1.05rem 1.15rem 1.15rem}.skill-label{text-transform:uppercase;letter-spacing:.13em;color:var(--ink-4);margin:0 0 .3rem;font-size:.7rem;font-weight:600}.skill-note{color:var(--ink-3);max-width:40ch;margin:0 0 .8rem;font-size:.8125rem;line-height:1.45}.skill-lead{letter-spacing:-.015em;color:var(--ink);margin:0;font-size:1.0625rem;font-weight:600;line-height:1.5}.skill-lead span+span:before{content:"·";color:var(--ink-4);margin:0 .45rem;font-weight:400}.skill-rest{color:var(--ink-3);margin:.5rem 0 0;font-size:.875rem;line-height:1.6}.cols{gap:var(--gap);grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));display:grid}.fact{border-bottom:1px solid var(--rule);justify-content:space-between;gap:1rem;padding:.35rem 0;font-size:.9375rem;display:flex}.fact:last-child{border-bottom:0}.fact span:last-child{color:var(--ink-4)}.edu h3{letter-spacing:-.015em;color:var(--ink);margin:0;font-size:1.0625rem;font-weight:600}.edu .at{color:var(--ink-3);margin:.1rem 0 .15rem;font-size:.9375rem}.edu .when{font-family:var(--mono);color:var(--ink-4);margin:0;font-size:.78rem}.edu p.note-line{max-width:var(--measure);white-space:pre-line;margin:.6rem 0 0;font-size:.9375rem}.edu+.edu{margin-top:1.25rem}.foot{margin-top:var(--gap);border-top:1px solid var(--rule);color:var(--ink-4);flex-wrap:wrap;justify-content:space-between;gap:.75rem;padding-top:1.5rem;font-size:.8125rem;display:flex}@media (max-width:720px){.masthead{flex-direction:column;gap:1.1rem}.monogram{width:60px;height:60px;font-size:1.1rem}.entry{grid-template-columns:1fr;gap:.5rem}.entry .when{padding-top:0}.entry .when .where{display:inline}.entry .when .where:before{content:" · "}}@media print{@page{size:A4;margin:14mm 14mm 12mm}:root{--paper:#fff;--paper-2:#fff;--ink:#000;--ink-2:#1a1a1a;--ink-3:#444;--ink-4:#666;--rule:#d4d4d4;--rule-2:#b8b8b8;--gap:1.4rem}body{font-size:10.5pt;line-height:1.45}.toolbar,.no-print{display:none!important}.wrap{max-width:none;padding:0}a{border-bottom:0}.masthead h1{font-size:24pt}.section-head{margin-bottom:.8rem}.lede{font-size:10.5pt}.entry,.project,.edu,.offers li,.section-head,.skills>div,.cols>div{break-inside:avoid;page-break-inside:avoid}.section-head{break-after:avoid;page-break-after:avoid}.offers,.projects{background:0 0}}.project h3 .project-link{color:var(--ink);border-bottom:0;align-items:center;gap:.4rem;display:inline-flex}.project h3 .project-link svg{color:var(--ink-4);transition:transform .15s,color .15s}.project h3 .project-link:hover svg{color:var(--ink);transform:translate(3px)}.project h3 .project-link:hover{text-underline-offset:3px;text-decoration:underline}@media print{.project h3 .project-link svg{display:none}}
