@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:dark;--background:#171717;--text:#eeeeee;--body:#bdbdbb;--muted:#999b99;--rule:#30312f;--field:#62675f;--accent:#a5bce8;--selection:#353b46;--header:rgb(23 23 23 / 94%)}[data-theme="light"]{color-scheme:light;--background:#ffffff;--text:#262626;--body:#555853;--muted:#6d716b;--rule:#e3e5e0;--field:#8b9087;--accent:#3c5e9c;--selection:#e5ebf5;--header:rgb(255 255 255 / 94%)}*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-padding-top:112px}body{margin:0;background:var(--background);color:var(--body);font-family:"DM Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;line-height:1.8;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,p,ul,ol,dl,dd{margin:0}h1,h2,h3,h4{color:var(--text);font-weight:500;text-wrap:pretty}h1{font-size:72px;line-height:1.08;letter-spacing:-.065em}h2{font-size:36px;line-height:1.2;letter-spacing:-.045em}h3{font-size:22px;line-height:1.45;letter-spacing:-.025em}h4{font-size:17px;line-height:1.5;letter-spacing:-.015em}a{color:var(--text);text-decoration-color:var(--field);text-decoration-thickness:1px;text-underline-offset:5px}a:hover{color:var(--accent);text-decoration-color:currentColor}::selection{background:var(--selection);color:var(--text)}button,input,textarea{font:inherit}button,summary{cursor:pointer}:is(a,button,summary,input,textarea):focus-visible{outline:2px solid var(--accent);outline-offset:5px}.page-width{width:min(1140px,calc(100% - 96px));margin-inline:auto}.meta{color:var(--muted);font-size:14px;line-height:1.7}.skip-link{position:fixed;z-index:30;top:12px;left:12px;padding:10px 16px;background:var(--background);transform:translateY(-160%)}.skip-link:focus{transform:none}.theme-label,.visually-hidden-field{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;padding:0;border:0}.site-header{position:sticky;top:0;z-index:20}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:88px}.site-header::after{content:"";position:absolute;inset:auto 0 0;height:1px;background:var(--rule);opacity:0;pointer-events:none}.site-header.is-scrolled{background:var(--header);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.site-header.is-scrolled::after{opacity:1}.home-link{display:inline-flex;align-items:center;min-height:44px;font-size:15px;font-weight:500;text-decoration:none;white-space:nowrap}.header-actions{display:flex;align-items:center;gap:28px}.site-header nav{display:flex;gap:32px}.site-header nav a{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;color:var(--muted);font-size:14px;text-decoration:none}.site-header nav a::after{content:"";position:absolute;inset:auto 0 6px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left}.site-header nav a:is(:hover,:focus-visible,[aria-current="location"]){color:var(--text)}.site-header nav a:is(:hover,:focus-visible,[aria-current="location"])::after{transform:scaleX(1)}.theme-toggle{position:relative;display:inline-flex;justify-content:center;align-items:center;width:44px;height:44px;flex-shrink:0;padding:0;border:1px solid transparent;border-radius:8px;background:none;color:var(--muted)}.theme-toggle::before{content:"";width:16px;height:16px;border:1.5px solid currentColor;border-radius:50%;background:linear-gradient(90deg,currentColor 50%,transparent 50%)}.theme-toggle:hover{color:var(--text);border-color:var(--rule)}.intro{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:center;gap:80px;padding-block:88px 104px}.intro-copy{min-width:0}.intro-role{margin-top:20px;color:var(--text);font-size:20px;line-height:1.6;letter-spacing:-.02em}.intro-heading .meta{margin-top:8px}.intro-summary{max-width:620px;margin-top:30px;font-size:20px;line-height:1.75;letter-spacing:-.015em;text-wrap:pretty}.portrait-picture{display:block;justify-self:end;width:min(100%,320px)}.portrait{display:block;width:100%;height:auto;aspect-ratio:10 / 11;object-fit:cover;object-position:50% 35%;border-radius:10px}.profile-links{display:flex;flex-wrap:wrap;gap:8px 28px;margin-top:24px;font-size:14px}.profile-links a{display:inline-flex;align-items:center;min-width:44px;min-height:44px}.section{padding-block:64px;border-top:1px solid var(--rule)}.section>h2{margin-bottom:44px}.section-content{min-width:0}.project{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);grid-template-rows:min-content 1fr;column-gap:72px;row-gap:10px;padding-block:36px}.project:first-child{padding-top:0}.project + .project{border-top:1px solid var(--rule)}.project h3{grid-column:1;grid-row:1;align-self:end}.project .meta{grid-column:1;grid-row:2;align-self:start}.project>p:not(.meta){grid-column:2;grid-row:1 / span 2;max-width:640px}.project h3 a{display:inline-block;min-height:44px;padding-block:6px;margin-block:-6px;text-decoration-color:var(--field)}.project h3 a::after{content:"";display:inline-block;width:16px;height:16px;margin-left:12px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 15 15 5M5 5h10v10' fill='none' stroke='black' stroke-width='1.4'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 15 15 5M5 5h10v10' fill='none' stroke='black' stroke-width='1.4'/%3E%3C/svg%3E") center / contain no-repeat}summary{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:44px;padding-block:8px;color:var(--body);font-size:15px;width:fit-content;list-style:none}summary::-webkit-details-marker{display:none}summary::marker{content:""}summary::after{content:"";width:7px;height:7px;margin:-4px 3px 0 0;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg);flex-shrink:0}summary:is(:hover,:focus-visible),details[open]>summary{color:var(--text)}details[open]>summary::after{transform:translateY(4px) rotate(225deg)}.project-archive{border-top:1px solid var(--rule);padding-top:16px}.archive-content{padding-top:28px}.archive-content .project:last-child{padding-bottom:8px}.about-copy{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:28px 88px}.about-narrative{grid-column:1;grid-row:1;max-width:680px}.about-narrative>p + p{margin-top:20px}.outcomes{grid-column:2;grid-row:1 / span 2;align-self:start;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 32px;list-style:none;padding:0}.outcomes li{display:flex;flex-direction:column;align-items:start;gap:12px;font-size:14px;line-height:1.7}.outcomes li span{color:var(--text);font-size:52px;font-weight:500;line-height:1.08;letter-spacing:-.055em;font-variant-numeric:lining-nums}.about-principles{grid-column:1;grid-row:2;padding-top:22px;border-top:1px solid var(--rule)}.about-principles>p + p{margin-top:6px}.employer{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;column-gap:32px}.employer>h3{grid-column:1;font-size:24px}.employer>.meta{grid-column:2;justify-self:end;text-align:right}.employer + .employer{margin-top:56px}.role{grid-column:1 / -1;display:grid;grid-template-columns:208px minmax(0,1fr);gap:12px 32px;margin-top:24px;padding-top:24px;border-top:1px solid var(--rule)}.role h4{grid-column:2;grid-row:1;font-size:18px}.role>.meta{grid-column:1;grid-row:1 / span 2;padding-top:2px}.role ul{grid-column:2;padding-left:18px;max-width:720px}.role li{padding-left:3px}.role li::marker{color:var(--field);font-size:.75em}.role li + li{margin-top:8px}.skills{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 64px}.skills dt{margin-bottom:12px;color:var(--text);font-size:18px;font-weight:500;letter-spacing:-.02em}.skills dd ul{display:flex;flex-wrap:wrap;list-style:none;padding:0;line-height:1.95}.skills dd li:not(:last-child)::after{content:",";margin-right:6px}.credential-record + .credential-record{margin-top:36px}.credential-record>summary{width:100%;padding-block:10px 18px;border-bottom:1px solid var(--rule)}.credential-record>summary h3{font-size:21px}.record-content{padding-top:8px}.compact-list>div{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:6px 64px;padding-block:20px}.compact-list>div + div{border-top:1px solid var(--rule)}.compact-list h4{grid-column:1;grid-row:1 / span 3;font-size:16px}.compact-list p{grid-column:2;font-size:14px;line-height:1.8}.cert-timeline{list-style:none;padding:0}.cert-timeline li{display:grid;grid-template-columns:128px minmax(0,1fr);gap:24px;padding-block:18px}.cert-timeline li + li{border-top:1px solid var(--rule)}.cert-timeline time{padding-top:2px;font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums}.credential-title-row{display:flex;justify-content:space-between;align-items:start;gap:24px}.credential-title-row h4{padding-top:1px;font-size:16px}.verify-link{display:inline-flex;align-items:center;justify-content:end;min-width:44px;min-height:44px;margin-block:-8px;font-size:13px;flex-shrink:0}.cert-timeline p{max-width:720px;margin-top:5px;padding-right:72px;font-size:14px;color:var(--muted);overflow-wrap:anywhere;line-height:1.75}.contact-content{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:80px}.contact-info>p:first-child{color:var(--text);font-size:24px;line-height:1.5;letter-spacing:-.025em}.email-link{display:inline-flex;align-items:center;min-height:44px;font-size:19px;margin-top:12px;letter-spacing:-.02em;overflow-wrap:anywhere}.contact-info>.meta{margin-top:8px}.message-details{min-width:0}.message-details>summary{width:100%;padding-block:0}.message-details>summary h3{font-size:21px}.contact-form{display:grid;gap:8px;margin-top:22px}.contact-form label{font-size:14px;color:var(--text)}.contact-form label:not(:first-of-type){margin-top:12px}.contact-form input:not([type="hidden"]):not(.visually-hidden-field),.contact-form textarea{width:100%;min-height:48px;padding:11px 14px;border:1px solid var(--field);border-radius:8px;background:transparent;color:var(--text);line-height:1.5;font-size:16px}.contact-form input:hover,.contact-form textarea:hover{border-color:var(--muted)}.contact-form input:focus-visible,.contact-form textarea:focus-visible{border-color:var(--accent);outline-offset:3px}.contact-form textarea{resize:vertical;min-height:136px}.submit-button{justify-self:start;min-height:48px;background:var(--text);color:var(--background);border:1px solid var(--text);border-radius:8px;padding:10px 24px;margin-top:12px;font-size:14px;font-weight:500}.submit-button:hover{background:var(--body);border-color:var(--body)}.elsewhere{display:grid;grid-template-columns:208px minmax(0,1fr);gap:32px;padding-block:40px}.elsewhere>h2{margin:8px 0 0;font-size:20px;letter-spacing:-.025em}.tool-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:8px 28px;font-size:14px}.tool-links a{display:flex;align-items:center;min-height:44px;color:var(--body);width:fit-content}.tool-links a:hover{color:var(--accent)}.site-footer{display:flex;align-items:center;padding-block:28px 40px;border-top:1px solid var(--rule);color:var(--muted);font-size:13px}.not-found{padding-block:120px}.not-found h1{margin-top:16px;font-size:clamp(42px,6vw,72px)}.not-found .return-link{display:inline-flex;align-items:center;min-height:44px;margin-top:28px;font-size:15px}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}a{transition:color 180ms ease,text-decoration-color 180ms ease}.site-header{transition:background-color 180ms ease}.site-header nav a::after,.project h3 a::after,summary::after{transition:transform 180ms ease}.site-header::after{transition:opacity 180ms ease}.project h3 a:is(:hover,:focus-visible)::after{transform:translate(2px,-2px)}summary,.theme-toggle{transition:color 180ms ease,border-color 180ms ease}.contact-form input,.contact-form textarea{transition:border-color 180ms ease}.submit-button{transition:background-color 180ms ease,border-color 180ms ease}html.theme-transition::view-transition{pointer-events:none}html.theme-transition::view-transition-group(root),html.theme-transition::view-transition-old(root),html.theme-transition::view-transition-new(root){animation:none;mix-blend-mode:normal}html.theme-transition::view-transition-old(root){z-index:1}html.theme-transition::view-transition-new(root){z-index:2;animation:theme-dissolve 200ms ease both}@keyframes theme-dissolve{from{opacity:0}to{opacity:1}}}@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}::view-transition-group(root),::view-transition-old(root),::view-transition-new(root){animation:none!important}}@media (max-width:1000px){.page-width{width:calc(100% - 80px)}.intro{gap:48px}h1{font-size:64px}.intro-role{font-size:18px}.intro-summary{font-size:18px}.project{column-gap:40px}.about-copy{gap:28px 48px}.outcomes{column-gap:24px}.outcomes li span{font-size:44px}.skills{gap:36px 40px}.contact-content{gap:48px}.tool-links{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){html{scroll-padding-top:96px}.page-width{width:calc(100% - 48px)}.header-inner{min-height:76px;gap:16px}.header-actions{gap:16px}.site-header nav{gap:24px}.intro{grid-template-columns:1fr;gap:36px;padding-block:52px 64px}h1{font-size:48px}h2{font-size:32px}.intro-role{margin-top:16px}.intro-summary{margin-top:24px;max-width:620px}.profile-links{margin-top:20px}.portrait-picture{justify-self:start;width:216px;max-width:100%}.section{padding-block:40px}.section>h2{margin-bottom:32px}.project{grid-template-columns:1fr;gap:8px;padding-block:28px}.project h3{font-size:21px}.project>p:not(.meta){grid-column:1;grid-row:3;margin-top:8px}.about-copy{grid-template-columns:1fr;gap:32px}.about-narrative,.about-principles,.outcomes{grid-column:1;grid-row:auto}.outcomes{gap:32px 36px;padding-block:8px}.outcomes li span{font-size:48px}.about-principles{padding-top:24px}.employer{grid-template-columns:1fr}.employer>h3{font-size:22px}.employer>.meta{grid-column:1;justify-self:start;margin-top:6px;text-align:left}.role{grid-template-columns:148px minmax(0,1fr);column-gap:24px}.role>.meta{font-size:13px}.employer + .employer{margin-top:36px}.skills{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 36px}.compact-list>div{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);column-gap:28px}.cert-timeline li{grid-template-columns:84px minmax(0,1fr);gap:20px}.cert-timeline p{padding-right:0}.contact-content{grid-template-columns:1fr;gap:36px}.contact-info>p:first-child{font-size:22px}.message-details{max-width:620px;width:100%}.elsewhere{grid-template-columns:1fr;gap:20px;padding-block:32px}.elsewhere>h2{margin:0;font-size:20px}.site-footer{padding-block:24px 32px}}@media (max-width:520px){.page-width{width:calc(100% - 40px)}.home-link{font-size:13px}.header-inner{gap:10px}.header-actions{gap:8px}.site-header nav{gap:14px}.site-header nav a{font-size:13px}h1{font-size:46px}.intro{padding-top:40px}.intro-role{font-size:18px}.intro-heading .meta{max-width:310px}.intro-summary{font-size:18px;line-height:1.75}.project h3{font-size:20px}.project .meta{font-size:13px}.outcomes{column-gap:28px}.outcomes li{font-size:13px}.outcomes li span{font-size:44px}.role{grid-template-columns:1fr;gap:8px}.role>.meta{grid-column:1;grid-row:1;padding:0}.role h4{grid-column:1;grid-row:2}.role ul{grid-column:1;grid-row:3;margin-top:4px}.skills{grid-template-columns:1fr;gap:28px}.skills dt{margin-bottom:6px}.compact-list>div{grid-template-columns:1fr;gap:6px;padding-block:18px}.compact-list h4{grid-column:1;grid-row:auto;margin-bottom:4px}.compact-list p{grid-column:1}.credential-record + .credential-record{margin-top:28px}.credential-record>summary h3{font-size:20px}.cert-timeline li{grid-template-columns:1fr;gap:6px;padding-block:18px}.cert-timeline time{font-size:13px}.credential-title-row{gap:16px}.verify-link{font-size:13px}.email-link{font-size:18px}.tool-links{gap:4px 20px;font-size:13px}}@media (max-width:360px){.home-link{font-size:12px}.header-actions{gap:4px}.site-header nav{gap:6px}.site-header nav a{font-size:12px}h1{font-size:42px}.outcomes{column-gap:20px}.outcomes li span{font-size:40px}}