@font-face{font-family:"DM Sans";font-style:normal;font-weight:400;font-display:swap;src:url("../assets/fonts/dm-sans-regular-latin.f847bce8dc65.woff2") format("woff2")}@font-face{font-family:"DM Sans";font-style:normal;font-weight:500;font-display:swap;src:url("../assets/fonts/dm-sans-medium-latin.e048fa54d1d1.woff2") format("woff2")}:root{color-scheme:light;--background:#ffffff;--text:#262626;--body:#555555;--muted:#767676;--rule:#eaeaea;--field:#d8d8d8;--selection:#eeeeee}[data-theme="dark"]{color-scheme:dark;--background:#171717;--text:#eeeeee;--body:#bdbdbd;--muted:#a0a0a0;--rule:#2e2e2e;--field:#494949;--selection:#383838}*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-padding-top:100px}body{margin:0;background:var(--background);color:var(--body);font-family:"DM Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px;line-height:1.8;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,p,ul,ol,dl,dd{margin:0}a{color:var(--text);text-decoration-color:var(--field);text-decoration-thickness:1px;text-underline-offset:4px}a:hover{text-decoration-color:var(--text)}::selection{background:var(--selection);color:var(--text)}button,input,textarea{font:inherit}button,summary{cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--text);outline-offset:5px}.page-width{width:min(840px,calc(100% - 64px));margin-inline:auto}.meta{color:var(--muted);font-size:12px;line-height:1.7}.skip-link{position:fixed;z-index:20;top:12px;left:12px;padding:8px 14px;background:var(--background);transform:translateY(-150%)}.skip-link:focus{transform:none}.site-header{position:sticky;top:-24px;z-index:10;display:flex;align-items:center;justify-content:space-between;padding-block:40px 20px;background:var(--background)}.site-header::after{content:"";position:absolute;inset:auto 0 0;height:1px;background:var(--rule);opacity:0;pointer-events:none}.site-header.is-scrolled::after{opacity:1}.home-link{font-size:13px;font-weight:500;text-decoration:none}.site-header nav{display:flex;gap:25px}.site-header nav a{position:relative;color:var(--muted);font-size:12px;text-decoration:none;padding-block:8px}.site-header nav a::after{content:"";position:absolute;inset:auto 0 5px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left}.site-header nav a:is(:hover,[aria-current="location"]){color:var(--text)}.site-header nav a:is(:hover,:focus-visible,[aria-current="location"])::after{transform:scaleX(1)}.intro{padding-block:46px 62px}.intro-heading{display:flex;justify-content:space-between;align-items:start;gap:28px}h1{color:var(--text);font-size:34px;font-weight:500;line-height:1.2;letter-spacing:-.04em}.intro-role{color:var(--body);font-size:14px;margin-top:10px}.intro-heading .meta{margin-top:4px}.portrait-picture{display:block;flex-shrink:0}.portrait{display:block;width:72px;height:72px;object-fit:cover;object-position:50% 27%;border-radius:8px;flex-shrink:0;outline:1px solid var(--rule);outline-offset:-1px}.intro-summary{max-width:620px;margin-top:28px;color:var(--text);font-size:18px;line-height:1.7;letter-spacing:-.015em;text-wrap:pretty}.profile-links{display:flex;flex-wrap:wrap;gap:24px;margin-top:22px;font-size:12px}.section{display:grid;grid-template-columns:118px minmax(0,1fr);gap:32px;padding-block:42px;border-top:1px solid var(--rule)}.section h2{position:sticky;top:100px;align-self:start;color:var(--muted);font-size:12px;font-weight:400;line-height:1.8}.section:target h2{color:var(--text)}.section-content{min-width:0}h3{color:var(--text);font-size:16px;font-weight:500;line-height:1.55;letter-spacing:-.015em}h4{color:var(--text);font-size:14px;font-weight:500;line-height:1.6}.project + .project{margin-top:30px}.project h3 a{text-decoration:underline;text-decoration-color:var(--field)}.project h3 a:hover{text-decoration-color:var(--text)}.project .meta{margin-top:4px}.project>p:not(.meta){margin-top:10px}summary{display:flex;align-items:center;gap:12px;min-height:32px;padding-block:4px;color:var(--body);font-size:13px;width:fit-content;list-style:none}summary::-webkit-details-marker{display:none}summary::marker{content:""}summary::after{content:"";width:6px;height:6px;margin-top:-3px;border-right:1px solid var(--muted);border-bottom:1px solid var(--muted);transform:rotate(45deg);flex-shrink:0}summary:is(:hover,:focus-visible),details[open]>summary{color:var(--text)}details[open]>summary::after{transform:translateY(3px) rotate(225deg)}.project-archive{margin-top:26px}.archive-content{padding-top:24px}.about-copy>p + p{margin-top:17px}.outcomes{list-style:none;padding:20px 0 0;margin-top:24px;border-top:1px solid var(--rule);font-size:13px}.outcomes li{display:grid;grid-template-columns:48px 1fr;gap:12px;line-height:1.8}.outcomes li + li{margin-top:8px}.outcomes li span{color:var(--text);font-weight:500;font-variant-numeric:tabular-nums}.about-copy>.principles{margin-top:24px}.about-copy>.meta + .meta{margin-top:4px}.employer + .employer{margin-top:36px}.employer>.meta{margin-top:4px}.role{margin-top:20px}.role>.meta{margin-top:3px}.role ul{padding-left:17px;margin-top:8px}.role li + li{margin-top:5px}.skills>div{display:grid;grid-template-columns:135px minmax(0,1fr);gap:18px}.skills>div + div{margin-top:18px}.skills dt{color:var(--text);font-size:13px}.skills dd ul{display:flex;flex-wrap:wrap;list-style:none;padding:0;font-size:13px}.skills dd li:not(:last-child)::after{content:",";margin-right:5px}.credential-record + .credential-record{margin-top:14px}.record-content{padding-top:20px;padding-bottom:8px}.compact-list>div + div{margin-top:20px}.compact-list p{margin-top:5px;font-size:13px}.cert-timeline{list-style:none;padding:0}.cert-timeline li{display:grid;grid-template-columns:72px minmax(0,1fr);gap:16px}.cert-timeline li + li{margin-top:25px}.cert-timeline time{font-size:11px;color:var(--muted);padding-top:3px;font-variant-numeric:tabular-nums}.credential-title-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px}.credential-title-row h4{font-size:13px}.verify-link{font-size:11px;flex-shrink:0}.cert-timeline p{font-size:11px;color:var(--muted);margin-top:4px;overflow-wrap:anywhere}.contact-content>p:first-child{color:var(--text)}.email-link{display:inline-block;font-size:15px;margin-top:8px}.contact-content>.meta{margin-top:8px}.message-details{margin-top:24px}.contact-form{display:grid;gap:7px;margin-top:24px;max-width:460px}.contact-form label{font-size:12px;color:var(--body)}.contact-form label:not(:first-of-type){margin-top:13px}.contact-form input:not([type="hidden"]):not(.visually-hidden-field),.contact-form textarea{width:100%;padding:9px 10px;border:1px solid var(--field);border-radius:3px;background:var(--background);color:var(--text);line-height:1.5;font-size:14px}.contact-form input:hover,.contact-form textarea:hover{border-color:var(--muted)}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--text);outline:1px solid var(--text);outline-offset:0}.contact-form textarea{resize:vertical;min-height:100px}.submit-button{justify-self:start;background:var(--text);color:var(--background);border:1px solid var(--text);border-radius:3px;padding:8px 14px;margin-top:10px;font-size:12px}.submit-button:hover{background:var(--body);border-color:var(--body)}.visually-hidden-field{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);padding:0;border:0}.tool-links{display:flex;flex-wrap:wrap;align-items:start;gap:10px 20px;font-size:12px}.tool-links a{color:var(--body)}.site-footer{display:flex;justify-content:space-between;align-items:center;padding-block:24px 48px;border-top:1px solid var(--rule);color:var(--muted);font-size:11px}.theme-toggle{display:inline-flex;align-items:center;gap:7px;padding:6px 0 6px 12px;border:0;background:none;color:var(--muted);font-size:11px}.theme-toggle::before{content:"";width:10px;height:10px;border:1px solid currentColor;border-radius:50%;background:linear-gradient(90deg,currentColor 50%,transparent 50%)}.theme-toggle:hover{color:var(--text)}.not-found{padding-block:100px}.not-found h1{margin-top:12px}.not-found .return-link{display:inline-block;margin-top:28px;font-size:13px}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}a{transition:color 160ms ease,text-decoration-color 160ms ease,text-underline-offset 160ms ease}a:hover{text-underline-offset:6px}.site-header nav a::after{transition:transform 180ms ease}.site-header::after{transition:opacity 180ms ease}.portrait{transition:transform 220ms ease}summary,.theme-toggle{transition:color 160ms ease}summary::after{transition:transform 180ms ease}details[open]>:not(summary){animation:detail-in 180ms ease-out}.contact-form input,.contact-form textarea{transition:border-color 160ms ease}.submit-button{transition:background-color 160ms ease,border-color 160ms ease,transform 160ms ease}.submit-button:active{transform:translateY(1px)}@keyframes detail-in{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}}@media (hover:hover) and (prefers-reduced-motion:no-preference){.portrait-picture:hover .portrait{transform:translateY(-2px)}}@media (max-width:680px){html{scroll-padding-top:88px}.page-width{width:calc(100% - 48px)}.site-header{top:-12px;padding-top:25px}.site-header nav{gap:18px}.intro{padding-block:34px 42px}h1{font-size:30px}.intro-heading{gap:20px}.portrait{width:60px;height:60px}.intro-summary{font-size:17px;margin-top:25px}.section{grid-template-columns:1fr;gap:20px;padding-block:32px}.section h2{position:static;font-size:12px}.skills>div{grid-template-columns:125px minmax(0,1fr);gap:16px}}@media (max-width:380px){.page-width{width:calc(100% - 40px)}.site-header nav{gap:15px}.home-link{font-size:12px}.intro-heading{gap:14px}.portrait{width:48px;height:48px}h1{font-size:28px}.intro-role{font-size:13px}.intro-heading .meta{font-size:11px}.skills>div{grid-template-columns:1fr;gap:3px}.cert-timeline li{grid-template-columns:1fr;gap:4px}}