:root{color-scheme: light;--paper: #F6F5F1;--panel: #FFFFFF;--sunk: #EDEBE5;--ink: #15171B;--ink-2: #474C54;--ink-3: #636973;--line: #80858D;--rule: #D8D5CC;--grid: #E7E4DC;--accent: #1F4ED8;--accent-ink: #FFFFFF;--signal: #BF2F1C;--ok: #1D7048;--logo-chip: transparent;--font-sans: Archivo,"Archivo Fallback","Helvetica Neue",Arial,sans-serif;--font-mono: "IBM Plex Mono","IBM Plex Mono Fallback",ui-monospace,"SF Mono",Menlo,Consolas,monospace;--t-display: clamp(2.75rem,1.66rem + 4.46vw,5.75rem);--t-tagline: clamp(1.5rem,1.14rem + 1.43vw,2.5rem);--t-h2: clamp(2rem,1.6rem + 1.67vw,3.25rem);--t-display-2: clamp(1.75rem,1.3rem + 1.9vw,3rem);--t-h3: clamp(1.375rem,1.24rem + 0.57vw,1.75rem);--t-h4: 1.1875rem;--t-lede: clamp(1.0625rem,1rem + 0.29vw,1.25rem);--t-body: 1.0625rem;--t-small: 0.9375rem;--t-label: 0.75rem;--t-readout: 0.9375rem;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--s-8: 64px;--s-9: 96px;--s-10: 128px;--s-11: 160px;--pad: clamp(16px,4vw,48px);--section-pad: clamp(72px,10vw,144px);--container: min(100% - 2 * var(--pad),1280px);--ease-draw: cubic-bezier(.33,0,.2,1);--ease-ui: cubic-bezier(.2,0,0,1);--ease-machine: cubic-bezier(.45,0,.55,1);--d-press: 80ms;--d-hover: 120ms;--d-ui: 180ms}@media (max-width: 767px){:root{--t-h4: 1.0625rem;--t-body: 1rem;--t-label: 0.6875rem;--t-readout: 0.8125rem}}@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){color-scheme: dark;--paper: #0F1114;--panel: #16191E;--sunk: #1C2026;--ink: #ECEAE4;--ink-2: #B3B7BE;--ink-3: #8D939C;--line: #737A84;--rule: #272B32;--grid: #1B1F25;--accent: #8AA6FF;--accent-ink: #0F1114;--signal: #FF7462;--ok: #5BC98F;--logo-chip: #F6F5F1}}:root[data-theme="dark"]{color-scheme: dark;--paper: #0F1114;--panel: #16191E;--sunk: #1C2026;--ink: #ECEAE4;--ink-2: #B3B7BE;--ink-3: #8D939C;--line: #737A84;--rule: #272B32;--grid: #1B1F25;--accent: #8AA6FF;--accent-ink: #0F1114;--signal: #FF7462;--ok: #5BC98F;--logo-chip: #F6F5F1}.fig svg{overflow: visible}.fig svg text{font-family: var(--font-mono);fill: var(--ink-2);letter-spacing: 0.04em}.fig svg .txt-ink{fill: var(--ink)}.fig svg .txt-3{fill: var(--ink-3)}.fig svg .txt-signal{fill: var(--signal)}.fig svg .txt-ok{fill: var(--ok)}.fig svg .txt-accent{fill: var(--accent)}.ln-thick,.ln-thin,.ln-dim,.ln-center,.ln-hidden,.ln-phantom,.ln-frame,.ln-grid,.ln-signal,.ln-accent{fill: none;vector-effect: non-scaling-stroke;stroke-linecap: butt;stroke-linejoin: miter}.ln-thick{stroke: var(--ink);stroke-width: 2px}.ln-thin{stroke: var(--ink-2);stroke-width: 1px}.ln-dim{stroke: var(--ink-2);stroke-width: 1px}.ln-center{stroke: var(--ink-2);stroke-width: 1px}.ln-hidden{stroke: var(--ink-2);stroke-width: 1px}.ln-phantom{stroke: var(--ink-2);stroke-width: 1px}.ln-frame{stroke: var(--line);stroke-width: 1px}.ln-grid{stroke: var(--grid);stroke-width: 1px}.ln-signal{stroke: var(--signal);stroke-width: 1.5px}.ln-accent{stroke: var(--accent);stroke-width: 1.5px}.fill-paper{fill: var(--paper)}.fill-panel{fill: var(--panel)}.fill-sunk{fill: var(--sunk)}.fill-ink{fill: var(--ink)}.fill-ink-2{fill: var(--ink-2)}.fill-line{fill: var(--line)}.fill-grid{fill: var(--grid)}.fill-accent{fill: var(--accent)}.fill-signal{fill: var(--signal)}.js-draw [data-piece]:not(.is-drawn) [data-draw]{stroke-dasharray: 1 2;stroke-dashoffset: 1}.js-draw [data-piece]:not(.is-drawn) [data-draw="fade"]{stroke-dasharray: none;stroke-dashoffset: 0;opacity: 0}html.js-draw[data-seen~="hero"] [data-piece="hero"]:not(.is-drawn) [data-draw],html.js-draw[data-seen~="view-a"] [data-piece="view-a"]:not(.is-drawn) [data-draw],html.js-draw[data-seen~="view-b"] [data-piece="view-b"]:not(.is-drawn) [data-draw],html.js-draw[data-seen~="sheet"] [data-piece="sheet"]:not(.is-drawn) [data-draw]{stroke-dasharray: none;stroke-dashoffset: 0;opacity: 1}.sr-only{position: absolute !important;width: 1px;height: 1px;padding: 0;margin: -1px;overflow: hidden;clip: rect(0 0 0 0);white-space: nowrap;border: 0}@media (prefers-reduced-motion: reduce){*,*::before,*::after{scroll-behavior: auto !important}}*,*::before,*::after{box-sizing: border-box}html{-webkit-text-size-adjust: 100%;text-size-adjust: 100%;scroll-behavior: smooth;scroll-padding-top: 64px}#top{scroll-margin-top: 1px}body{margin: 0;background: var(--paper);color: var(--ink);font-family: var(--font-sans);font-size: var(--t-body);line-height: 1.6;font-synthesis: none;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale}h1,h2,h3,h4,p,ul,ol,dl,dd,figure,blockquote,pre{margin: 0}h1,h2,h3,h4{font-weight: 600;text-wrap: balance}p{text-wrap: pretty}img,picture{display: block;max-width: 100%;height: auto}button,input,select{font: inherit;color: inherit}button{cursor: pointer}a{color: inherit;text-decoration-thickness: 1px;text-underline-offset: 3px}a:hover{color: var(--accent)}:focus-visible{outline: 2px solid var(--accent);outline-offset: 2px}::selection{background: var(--accent);color: var(--accent-ink)}[hidden]{display: none !important}time,.meta,.readouts dd,table{font-variant-numeric: tabular-nums}html:not(.js) .js-only{display: none !important}.js .nojs-only{display: none !important}html.menu-open{overflow: hidden}.sprite{position: absolute;width: 0;height: 0;overflow: hidden}.nowrap{white-space: nowrap}h2{font-size: var(--t-h2);font-weight: 650;font-stretch: 106%;line-height: 1.02;letter-spacing: -0.02em}h3{font-size: var(--t-h3);line-height: 1.2;letter-spacing: -0.01em}h4{font-size: var(--t-h4);line-height: 1.3}.lede,.intro{font-size: var(--t-lede);line-height: 1.5}.intro{color: var(--ink-2);max-width: 60ch}.label,.kicker,.meta,.link--mono,.plate,.strip,.tb-cell,.theme-opt,.photo-fig figcaption,.readouts dt,.math>summary,.table caption,.table thead th,.skills h3,.cert-list span,.tool-list .level,.row-label,.spec-notes li,.resume h2,.general-notes>p::before{font-family: var(--font-mono);font-weight: 500;font-size: var(--t-label);line-height: 1.4;letter-spacing: 0.06em}.label,.kicker,.link--mono,.plate,.strip,.tb-cell,.theme-opt,.photo-fig figcaption,.readouts dt,.math>summary,.table caption,.table thead th,.skills h3,.cert-list span,.tool-list .level,.resume h2{text-transform: uppercase}.label,.kicker,.photo-fig figcaption,.readouts dt,.table caption,.table thead th,.skills h3,.cert-list span,.tool-list .level,.row-label,.general-notes>p::before{color: var(--ink-3)}.meta{color: var(--ink-3);letter-spacing: 0.02em}.turn{font-size: var(--t-display-2);font-weight: 600;font-stretch: 104%;line-height: 1.1;letter-spacing: -0.015em;max-width: 24ch}.wrap{width: var(--container);margin-inline: auto}.exp-grid,.story-head,.views-row,.detail,.about-grid,.foot-grid,.item-body,.cs-body{display: grid;grid-template-columns: repeat(4,minmax(0,1fr));column-gap: 16px}.exp-grid>*,.story-head>*,.views-row>*,.detail>*,.about-grid>*,.foot-grid>*,.item-body>*,.cs-body>*{grid-column: 1 / -1}@media (min-width: 768px){.exp-grid,.story-head,.views-row,.detail,.about-grid,.foot-grid,.item-body,.cs-body{grid-template-columns: repeat(8,minmax(0,1fr));column-gap: 20px}}@media (min-width: 1024px){.exp-grid,.story-head,.views-row,.detail,.about-grid,.foot-grid,.item-body,.cs-body{grid-template-columns: repeat(12,minmax(0,1fr));column-gap: 24px}}.section{padding-bottom: var(--section-pad)}.section-head{display: grid;gap: var(--s-5);margin-bottom: var(--s-8)}.head-action{margin-top: calc(var(--s-2) * -1)}.kicker{position: relative;margin-bottom: var(--s-7);padding-top: var(--s-4);border-top: 1px solid var(--rule)}@media (min-width: 1024px){.kicker::before{content: "";position: absolute;inset: 0 0 auto;height: 6px;background: linear-gradient(var(--rule),var(--rule)) right top / 1px 100% no-repeat,repeating-linear-gradient(90deg,var(--rule) 0 1px,transparent 1px calc((100% + 24px) / 12))}}@media (max-width: 767px){html{scroll-padding-top: 56px}.kicker{margin-bottom: var(--s-6)}.section-head{margin-bottom: var(--s-7)}}.icon{display: inline-block;flex: none;width: 20px;height: 20px;vertical-align: middle;overflow: visible}.icon--sm{width: 18px;height: 18px}.icon--mark{width: 16px;height: 16px}.link{--hit: calc((44px - 1.25em) / 2);position: relative;display: inline-flex;align-items: center;gap: 6px;padding-block: var(--hit);margin-block: calc(var(--hit) * -1);line-height: 1.25;text-decoration: none;color: var(--ink)}.link::after,.link::before{content: "";position: absolute;left: 0;right: 0;pointer-events: none}.link::after{bottom: calc(var(--hit) - 2px);height: 1px;background: currentColor;transition: opacity var(--d-hover) var(--ease-ui)}.link::before{bottom: calc(var(--hit) - 4px);height: 6px;border-inline: 1px solid var(--accent);background: linear-gradient(var(--accent),var(--accent)) center bottom 2px / 0 1px no-repeat;opacity: 0;transition: opacity var(--d-hover) var(--ease-ui),background-size var(--d-hover) var(--ease-ui)}.link:hover,.link:focus-visible{color: var(--accent)}.link:hover::after,.link:focus-visible::after{opacity: 0}.link:hover::before,.link:focus-visible::before{opacity: 1;background-size: 100% 1px}.link--mono{color: var(--ink-2)}button.link{padding-inline: 0;border: 0;background: none}.btn{position: relative;display: inline-flex;align-items: center;justify-content: center;gap: 8px;min-height: 48px;padding: 0 20px;border: 1px solid var(--ink);border-radius: 0;background: transparent;color: var(--ink);font: 600 1rem/1 var(--font-sans);text-decoration: none;transition: background-color var(--d-hover) var(--ease-ui),color var(--d-hover) var(--ease-ui),border-color var(--d-hover) var(--ease-ui)}.btn:hover{border-color: var(--accent);color: var(--accent)}.btn:active{transform: translateY(1px)}.btn--primary{background: var(--ink);color: var(--paper)}.btn--primary:hover{background: var(--accent);border-color: var(--accent);color: var(--accent-ink)}.btn--hold{min-width: 48px;touch-action: pan-y;user-select: none;-webkit-user-select: none;-webkit-touch-callout: none}.btn--hold.is-held,.btn--hold[aria-pressed="true"]{background: var(--accent);border-color: var(--accent);color: var(--accent-ink)}.plate{display: inline-flex;align-items: center;gap: 6px;padding: 4px 8px;border: 1px solid var(--line);color: var(--ink-2);font-size: 0.6875rem}@media (min-width: 768px){.plate{font-size: 0.75rem}}.plate--link{position: relative;text-decoration: none}.plate--link::after{content: "";position: absolute;inset: -10px 0}.plate--link:hover{border-color: var(--accent)}.readouts{display: grid;grid-template-columns: repeat(auto-fit,minmax(9.5rem,1fr));gap: 1px;background: var(--rule);border: 1px solid var(--rule)}.readouts>div{padding: 10px 14px;background: var(--sunk)}.readouts dd,.readouts output{font: 500 var(--t-readout)/1.3 var(--font-mono);letter-spacing: 0.02em;color: var(--ink)}.range{--fill: var(--accent);--edge: var(--line);--slot: var(--sunk);--knob: var(--paper);--gap: var(--paper);--halo: color-mix(in srgb,var(--accent) 18%,transparent);-webkit-appearance: none;appearance: none;display: block;width: 100%;height: 44px;margin: 0;background: transparent;cursor: pointer}.range:disabled{--fill: var(--line);cursor: not-allowed}.range:focus-visible{outline: none}.range::-webkit-slider-runnable-track{box-sizing: border-box;height: 8px;border: 1px solid transparent;border-radius: 4px;background: linear-gradient(90deg,var(--fill) 0 calc(12px + var(--p,0) * (100% - 24px)),#0000 0) border-box,linear-gradient(var(--slot) 0 0) padding-box,var(--edge)}.range::-webkit-slider-thumb{-webkit-appearance: none;box-sizing: border-box;width: 22px;height: 22px;margin-top: -8px;border: 2px solid var(--fill);border-radius: 50%;background: var(--knob);transition: box-shadow var(--d-hover) var(--ease-ui),background-color var(--d-press) var(--ease-ui)}.range::-moz-range-track{box-sizing: border-box;height: 8px;border: 1px solid var(--edge);border-radius: 4px;background: var(--slot)}.range::-moz-range-progress{box-sizing: border-box;height: 8px;border-radius: 4px;background: var(--fill)}.range::-moz-range-thumb{box-sizing: border-box;width: 22px;height: 22px;border: 2px solid var(--fill);border-radius: 50%;background: var(--knob);transition: box-shadow var(--d-hover) var(--ease-ui),background-color var(--d-press) var(--ease-ui)}.range:enabled:hover::-webkit-slider-thumb{box-shadow: 0 0 0 6px var(--halo)}.range:enabled:hover::-moz-range-thumb{box-shadow: 0 0 0 6px var(--halo)}.range:enabled:active::-webkit-slider-thumb{--knob: var(--fill);box-shadow: 0 0 0 8px var(--halo)}.range:enabled:active::-moz-range-thumb{--knob: var(--fill);box-shadow: 0 0 0 8px var(--halo)}.range:focus-visible::-webkit-slider-thumb{box-shadow: 0 0 0 2px var(--gap),0 0 0 4px var(--fill)}.range:focus-visible::-moz-range-thumb{box-shadow: 0 0 0 2px var(--gap),0 0 0 4px var(--fill)}.toggle{--track: var(--sunk);--edge: var(--line);--knob: var(--line);--on: var(--accent);--on-knob: var(--accent-ink);--gap: var(--paper);position: relative;display: flex;align-items: center;justify-content: space-between;gap: 16px;width: 100%;min-height: 44px;padding: 0;border: 0;background: none;color: var(--ink-2);font: 500 var(--t-label)/1.4 var(--font-mono);letter-spacing: 0.06em;text-transform: uppercase;text-align: left}.toggle::before{content: "";order: 1;flex: none;box-sizing: border-box;width: 40px;height: 24px;border: 1px solid var(--edge);border-radius: 12px;background: var(--track);transition: background-color var(--d-ui) var(--ease-ui),border-color var(--d-ui) var(--ease-ui)}.toggle::after{content: "";position: absolute;right: 20px;top: calc(50% - 8px);width: 16px;height: 16px;border-radius: 50%;background: var(--knob);transition: transform var(--d-ui) var(--ease-ui),background-color var(--d-ui) var(--ease-ui)}.toggle:hover{--edge: var(--ink-2)}.toggle[aria-pressed="true"]{--track: var(--on);--edge: var(--on);--knob: var(--on-knob);color: var(--ink)}.toggle[aria-pressed="true"]:hover{--track: color-mix(in srgb,var(--accent) 86%,var(--ink));--edge: var(--track)}.toggle[aria-pressed="true"]::after{transform: translateX(16px)}.toggle:focus-visible{outline: none}.toggle:focus-visible::before{box-shadow: 0 0 0 2px var(--gap),0 0 0 4px var(--on)}@media (prefers-reduced-motion: reduce){.range::-webkit-slider-thumb,.toggle::before,.toggle::after{transition: none}.range::-moz-range-thumb{transition: none}}.math{min-width: 0;max-width: 100%;margin-top: var(--s-4)}.math>summary{display: inline-flex;align-items: center;gap: 8px;min-height: 44px;list-style: none;cursor: pointer;color: var(--ink-2)}.math>summary::-webkit-details-marker{display: none}.math>summary::before{content: "";width: 11px;height: 11px;border: 1px solid currentColor;background: linear-gradient(currentColor,currentColor) center / 5px 1px no-repeat,linear-gradient(currentColor,currentColor) center / 1px 5px no-repeat}.math[open]>summary::before{background: linear-gradient(currentColor,currentColor) center / 5px 1px no-repeat}.math>summary:hover{color: var(--accent)}.math pre,.math .math-body{max-width: 100%;padding: 16px;background: var(--sunk);font: 400 0.8125rem/1.7 var(--font-mono);color: var(--ink);overflow-x: auto;white-space: pre;tab-size: 2}.table{width: 100%;border-collapse: collapse}.table caption{caption-side: top;padding-bottom: var(--s-3);text-align: left}.table th,.table td{height: 44px;padding: 10px 12px 10px 0;border-bottom: 1px solid var(--rule);text-align: left;vertical-align: top;font-size: var(--t-small);line-height: 1.5;transition: background-color var(--d-hover) var(--ease-ui)}.table thead th{border-bottom: 2px solid var(--ink)}.table tbody th{font-weight: 600;width: 40%}.table tbody tr:hover>*,.table tbody tr:focus-within>*{background: var(--sunk)}.table tbody tr>:first-child{padding-left: 8px}.table thead th:first-child{padding-left: 8px}@media (max-width: 599px){.table thead{position: absolute;width: 1px;height: 1px;overflow: hidden;clip: rect(0 0 0 0)}.table,.table caption,.table tbody,.table tr,.table th,.table td{display: block;width: auto;height: auto}.table tbody{border-top: 2px solid var(--ink)}.table tr{min-height: 48px;padding: 10px 8px;border-bottom: 1px solid var(--rule)}.table tbody th,.table td{padding: 0 !important;border: 0}.table tbody th{font: 500 var(--t-label)/1.4 var(--font-mono);letter-spacing: 0.06em;text-transform: uppercase;color: var(--ink-3)}}.photo-fig{margin: 0}.photo{position: relative;padding: 8px;background: var(--panel);border: 1px solid var(--line)}.photo img{width: 100%}.photo::before{content: "";position: absolute;inset: -8px;pointer-events: none;--c: var(--ink-3);background: linear-gradient(var(--c),var(--c)) left top / 10px 1px,linear-gradient(var(--c),var(--c)) left top / 1px 10px,linear-gradient(var(--c),var(--c)) right top / 10px 1px,linear-gradient(var(--c),var(--c)) right top / 1px 10px,linear-gradient(var(--c),var(--c)) left bottom / 10px 1px,linear-gradient(var(--c),var(--c)) left bottom / 1px 10px,linear-gradient(var(--c),var(--c)) right bottom / 10px 1px,linear-gradient(var(--c),var(--c)) right bottom / 1px 10px;background-repeat: no-repeat}.photo-fig figcaption{margin-top: var(--s-4)}.fig{margin: 0}.fig>figcaption{margin-top: var(--s-4);max-width: 72ch;font-size: var(--t-small);line-height: 1.5;color: var(--ink-2)}.fig svg .txt-paper{fill: var(--paper)}.logo-chip{display: inline-flex;padding: 6px;background: var(--logo-chip)}.logo{width: auto}.logo--equipter{height: 22px}.logo--scenic{height: 44px}.skip{position: absolute;top: 8px;left: 16px;z-index: 100;padding: 12px 16px;background: var(--ink);color: var(--paper);font-weight: 600;text-decoration: none;transform: translateY(-200%)}.skip:focus{transform: none;color: var(--paper)}.site-header{position: sticky;top: 0;z-index: 50}.nav-bar{background: var(--paper);border-bottom: 1px solid var(--rule)}.nav-inner{display: flex;align-items: center;justify-content: space-between;gap: 16px;height: 64px}.wordmark{display: inline-flex;align-items: center;gap: 10px;min-height: 44px;color: var(--ink);font-size: 1rem;font-weight: 600;line-height: 1;text-decoration: none;white-space: nowrap}.wordmark:hover{color: var(--ink)}.monogram{display: grid;place-items: center;width: 26px;height: 26px;border: 1.5px solid currentColor;font: 600 13.5px/1 var(--font-mono);letter-spacing: -0.02em}.nav,.nav-list{display: flex;align-items: center}.nav-list{gap: 4px;padding: 0;list-style: none}.nav-link{position: relative;display: inline-flex;align-items: center;height: 44px;padding: 0 12px;color: var(--ink-2);font-size: 0.9375rem;font-weight: 500;text-decoration: none;transition: color var(--d-hover) var(--ease-ui)}.nav-link.is-active{color: var(--ink)}.nav-link::after{content: "";position: absolute;left: 12px;right: 12px;bottom: -6px;height: 3px;background: currentColor;mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 3'%3E%3Cpath d='M0 1.5 9 0v3z'/%3E%3C/svg%3E") left center / 9px 3px no-repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 3'%3E%3Cpath d='M9 1.5 0 0v3z'/%3E%3C/svg%3E") right center / 9px 3px no-repeat,linear-gradient(#000 0 0) center / 100% 1px no-repeat;opacity: 0;transition: opacity var(--d-hover) var(--ease-ui)}.nav-link.is-active::after{opacity: 1}.nav-contact{margin-left: 8px;padding: 0 16px;color: var(--ink)}.nav-contact::before,.nav-menu::before{content: "";position: absolute;inset: 4px 0;border: 1px solid currentColor;pointer-events: none}.nav-link:hover,.nav-menu:hover{color: var(--accent)}.nav-menu{position: relative;display: none;align-items: center;height: 44px;margin-left: 8px;padding: 0 14px;border: 0;background: none;color: var(--ink);font-size: 0.9375rem;font-weight: 500;text-decoration: none}.wordmark{min-width: 0}.wordmark-name{min-width: 0;overflow: hidden;text-overflow: ellipsis}.monogram,.nav,.menu-close{flex: none}@media (max-width: 767px){.nav-inner{height: 56px}.nav-wide{display: none}.nav-menu{display: inline-flex}.nav-list .nav-link{padding: 0 10px}.nav-list .nav-link::after{left: 10px;right: 10px;bottom: -2px}}@media (max-width: 359px){.wordmark{gap: 8px}.nav-list .nav-link{padding: 0 8px}.nav-list .nav-link::after{left: 8px;right: 8px}.nav-menu{margin-left: 2px;padding: 0 10px}}.menu{position: fixed;inset: 0;z-index: 60;display: none;flex-direction: column;background: var(--paper);overflow-y: auto;overscroll-behavior: contain}.menu.is-open,.menu:target{display: flex}@media (min-width: 768px){.menu.is-open,.menu:target{display: none}}.menu-bar{display: flex;flex: none;align-items: center;justify-content: space-between;height: 56px;padding: 0 16px;border-bottom: 1px solid var(--rule)}.menu-close{display: inline-flex;align-items: center;gap: 6px;min-height: 44px;margin-right: -10px;padding: 0 10px;border: 0;background: none;color: var(--ink);font-size: 0.9375rem;font-weight: 500;text-decoration: none}.menu-body{padding: 0 16px 40px}.menu-list{padding: 0;list-style: none}.menu-list a{display: flex;align-items: center;min-height: 56px;border-bottom: 1px solid var(--rule);color: var(--ink);font-size: 1.375rem;font-weight: 600;letter-spacing: -0.01em;text-decoration: none}.menu-links{display: grid;justify-items: start;gap: 24px;margin-top: 28px;padding: 0;list-style: none}.site-footer{padding: var(--s-8) 0 var(--s-7);border-top: 1px solid var(--rule)}.titleblock{display: grid;grid-template-columns: 1.6fr 1.3fr 0.8fr 1fr 1.2fr auto;gap: 1px;border: 1px solid var(--line);background: var(--line)}.tb-cell{display: flex;align-items: center;min-height: 48px;padding: 8px 14px;background: var(--paper);color: var(--ink-2)}.tb-name{color: var(--ink)}.tb-proj{justify-content: center}.proj{overflow: visible}.proj-line,.proj-center{fill: none;vector-effect: non-scaling-stroke}.proj-line{stroke: var(--ink);stroke-width: 1.25px}.proj-center{stroke: var(--ink-2);stroke-width: 0.75px}@media (max-width: 767px){.titleblock{grid-template-columns: 1fr 1fr}}.foot-grid{row-gap: var(--s-7);margin-top: var(--s-7)}.foot-notes .label{margin-bottom: var(--s-3)}.notes{padding-left: 2.25em;font: 400 0.75rem/1.6 var(--font-mono);color: var(--ink-2)}.notes li + li{margin-top: 6px}.notes li::marker{color: var(--ink-3)}.notes-refs{display: inline-flex;flex-wrap: wrap;gap: 0 16px}.notes .link{color: var(--ink-2)}.notes .link:hover,.notes .link:focus-visible,.crumb .link:hover,.crumb .link:focus-visible{color: var(--accent)}.theme{display: inline-flex;border: 1px solid var(--line)}.theme-opt{min-height: 44px;padding: 0 16px;border: 0;background: transparent;color: var(--ink-2);transition: background-color var(--d-hover) var(--ease-ui),color var(--d-hover) var(--ease-ui)}.theme-opt + .theme-opt{border-left: 1px solid var(--line)}.theme-opt:hover{color: var(--accent)}.theme-opt[aria-pressed="true"]{background: var(--ink);color: var(--paper)}.nav{margin-left: auto}.theme--nav{flex: none}.theme--nav .theme-opt{display: inline-flex;align-items: center;gap: 8px;min-height: 40px;padding: 0 12px}.theme-swatch{width: 12px;height: 12px;border: 1px solid var(--line)}.theme-swatch--paper{background: #F6F5F1}.theme-swatch--graphite{background: #0F1114}@media (max-width: 1023px){.theme--nav .theme-opt{justify-content: center;width: 40px;padding: 0}.theme--nav .theme-name{position: absolute;width: 1px;height: 1px;overflow: hidden;clip: rect(0 0 0 0);white-space: nowrap}}@media (max-width: 479px){.nav-inner{gap: 8px}.wordmark-name{position: absolute;width: 1px;height: 1px;overflow: hidden;clip: rect(0 0 0 0);white-space: nowrap}}.copyright{margin-top: var(--s-7);color: var(--ink-3);font: 500 0.75rem/1.4 var(--font-mono);letter-spacing: 0.06em}@media (min-width: 768px){.foot-notes{grid-column: 1 / span 5}.foot-rocket{grid-column: 1 / -1}}@media (min-width: 1024px){.foot-notes{grid-column: 1 / span 6}.foot-meta{grid-column: 7 / span 3}.foot-rocket{grid-column: 10 / span 3;justify-self: end;align-self: end}}.page-head{padding-top: var(--s-8)}.page-head .crumb{display: flex;flex-wrap: wrap;align-items: center;gap: 8px;margin-bottom: var(--s-7);color: var(--ink-3)}.crumb .link{color: var(--ink-2)}.page-head>p.label{margin-bottom: var(--s-4)}.page-title{font-size: clamp(2.5rem,1.75rem + 3.1vw,4.5rem);font-weight: 700;font-stretch: 112%;line-height: 0.98;letter-spacing: -0.03em}.deck{margin-top: var(--s-5);max-width: 56ch;color: var(--ink-2)}@media (prefers-reduced-motion: reduce){html{scroll-behavior: auto}.link::before,.link::after,.nav-link,.nav-link::after,.btn,.theme-opt,.table th,.table td{transition: none}}@media (forced-colors: active){.range{--fill: Highlight;--edge: CanvasText;--slot: Canvas;--knob: Canvas;--gap: Canvas;--halo: transparent}.range:disabled{--fill: GrayText;--edge: GrayText}.range::-webkit-slider-runnable-track,.range::-webkit-slider-thumb{forced-color-adjust: none}.range::-moz-range-track,.range::-moz-range-progress,.range::-moz-range-thumb{forced-color-adjust: none}.toggle{--track: Canvas;--edge: ButtonText;--knob: ButtonText;--on: Highlight;--on-knob: HighlightText;--gap: Canvas}.toggle::before,.toggle::after{forced-color-adjust: none}.toggle[aria-pressed="true"]:hover{--track: Highlight;--edge: Highlight}.theme-opt[aria-pressed="true"]{forced-color-adjust: none;background: Highlight;color: HighlightText}.btn--hold.is-held,.btn--hold[aria-pressed="true"]{forced-color-adjust: none;background: Highlight;border-color: Highlight;color: HighlightText}.link::after,.link::before,.nav-link::after,.math>summary::before{forced-color-adjust: none}.link::after,.nav-link::after{background-color: LinkText}.link::before{border-color: LinkText;background-image: linear-gradient(LinkText,LinkText)}.math>summary::before{color: CanvasText}}@media print{:root,:root[data-theme],:root:not([data-theme="light"]){color-scheme: light;--paper: #fff;--panel: #fff;--sunk: #fff;--ink: #000;--ink-2: #222;--ink-3: #444;--line: #777;--rule: #bbb;--grid: #eee;--accent: #000;--logo-chip: transparent}@page{size: Letter;margin: 0.6in}html{scroll-padding-top: 0}body{background: #fff}.site-header,.site-footer,.sprite,.skip,.fig,.btn,.head-action,.section-close,.role-link,#story,#machines,#workbench,#about,details,button,.socials,.kicker::before{display: none !important}#top .tsheet,#top .hero__tag,#top .hero__body{display: none !important}#top{padding: 0 0 12pt !important;min-height: 0 !important}.wrap,#top .hero__in{width: auto}.section{padding-bottom: 18pt;break-inside: auto}.kicker{margin-bottom: 8pt}.section-head{margin-bottom: 12pt}.exp-grid{display: block}.skills{margin-top: 18pt}.role,.company-head,.skill-block{break-inside: avoid}a{color: inherit;text-decoration: none}.link::after,.link::before{display: none}.email{font-size: 18pt}}