@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(/_next/static/media/8a053b136321ec99-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(/_next/static/media/2a8fe189f1a8dd0c-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(/_next/static/media/c214ffb7f5362987-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Archivo Fallback;src:local("Arial");ascent-override:88.96%;descent-override:21.28%;line-gap-override:0.00%;size-adjust:98.70%}.__className_7347c0{font-family:Archivo,Archivo Fallback;font-style:normal}.__variable_7347c0{--font-archivo:"Archivo","Archivo Fallback"}@font-face{font-family:Martian Mono;font-style:normal;font-weight:100 800;font-stretch:75% 112.5%;font-display:swap;src:url(/_next/static/media/a9c4660489455b7f-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Martian Mono;font-style:normal;font-weight:100 800;font-stretch:75% 112.5%;font-display:swap;src:url(/_next/static/media/d12495fd73f80d35-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Martian Mono;font-style:normal;font-weight:100 800;font-stretch:75% 112.5%;font-display:swap;src:url(/_next/static/media/dd0bd310798f6639-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Martian Mono;font-style:normal;font-weight:100 800;font-stretch:75% 112.5%;font-display:swap;src:url(/_next/static/media/1127fb4e4fa79faf-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Martian Mono Fallback;src:local("Arial");ascent-override:63.69%;descent-override:12.74%;line-gap-override:0.00%;size-adjust:157.02%}.__className_5acc54{font-family:Martian Mono,Martian Mono Fallback;font-style:normal}.__variable_5acc54{--font-martian:"Martian Mono","Martian Mono Fallback"}

/*! tailwindcss v4.3.5 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:block))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-border-style:solid;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:host,:root{--font-sans:var(--font-sans);--font-mono:var(--font-mono);--spacing:.25rem;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.static{position:static}.top-5{top:calc(var(--spacing) * 5)}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.border{border-style:var(--tw-border-style);border-width:1px}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, )}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{color-scheme:light;--paper:#f3f4f1;--paper-2:#e7eae5;--paper-3:#dce0da;--ink:#121614;--ink-2:#39413e;--ink-3:#59625e;--rule:#c3c9c2;--rule-strong:#121614;--accent:#0b6e63;--accent-hover:#085a51;--accent-ink:#fff;--accent-soft:#d3e7e1;--band:#0b4a43;--band-ink:#f3f4f1;--band-ink-2:#c2dcd5;--band-rule:#2c6a62;--band-accent:#8fe3d1;--focus:#0b6e63;--selection:#bfe2d8;--font-sans:var(--font-archivo),"Archivo",ui-sans-serif,system-ui,sans-serif;--font-mono:var(--font-martian),"Martian Mono",ui-monospace,monospace;--wdth-display:72;--wdth-head:84;--wdth-text:100;--wdth-mono:87.5;--fs-2xs:.75rem;--fs-xs:.8125rem;--fs-sm:.9375rem;--fs-base:1.0625rem;--fs-lg:clamp(1.1875rem,1.1rem + .35vw,1.375rem);--fs-xl:clamp(1.5rem,1.3rem + .9vw,2rem);--fs-2xl:clamp(2rem,1.55rem + 2vw,3.25rem);--fs-3xl:clamp(2.5rem,1.6rem + 3.6vw,4.5rem);--fs-display:clamp(3.25rem,1.4rem + 7.4vw,6rem);--fs-metric:clamp(2.5rem,1.7rem + 3.4vw,4.25rem);--lh-tight:.94;--lh-snug:1.15;--lh-text:1.6;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--space-10:8rem;--gutter:clamp(1rem,.6rem + 1.8vw,2.5rem);--measure:68ch;--page-max:88rem;--radius-0:0;--radius-1:2px;--rule-w:1px;--rule-w-strong:3px;--lift:0 10px 24px -14px #12161459;--ease-out:cubic-bezier(.22,1,.36,1);--ease-in:cubic-bezier(.55,0,1,.45);--ease-in-out:cubic-bezier(.65,0,.35,1);--dur-quick:.14s;--dur-base:.24s;--dur-slow:.38s}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--paper:#0d1110;--paper-2:#151b19;--paper-3:#1d2522;--ink:#e6ebe8;--ink-2:#b3bcb8;--ink-3:#8f9894;--rule:#2b3431;--rule-strong:#e6ebe8;--accent:#5cc8b4;--accent-hover:#7fd9c8;--accent-ink:#06241f;--accent-soft:#123a34;--band:#0f2d29;--band-ink:#e6ebe8;--band-ink-2:#a9c9c1;--band-rule:#24504a;--band-accent:#7fe0cd;--focus:#7fd9c8;--selection:#1f5a51;--lift:0 12px 28px -14px #000000b3}}:root[data-theme=dark]{color-scheme:dark;--paper:#0d1110;--paper-2:#151b19;--paper-3:#1d2522;--ink:#e6ebe8;--ink-2:#b3bcb8;--ink-3:#8f9894;--rule:#2b3431;--rule-strong:#e6ebe8;--accent:#5cc8b4;--accent-hover:#7fd9c8;--accent-ink:#06241f;--accent-soft:#123a34;--band:#0f2d29;--band-ink:#e6ebe8;--band-ink-2:#a9c9c1;--band-rule:#24504a;--band-accent:#7fe0cd;--focus:#7fd9c8;--selection:#1f5a51;--lift:0 12px 28px -14px #000000b3}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scrollbar-color:var(--ink-3) var(--paper-2);scrollbar-gutter:stable}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-text);font-variation-settings:"wdth" var(--wdth-text);font-kerning:normal;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;flex-direction:column;min-height:100dvh;margin:0;display:flex}::selection{background:var(--selection);color:var(--ink)}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:var(--radius-1)}a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:1px}h1,h2,h3,h4{font-weight:700;line-height:var(--lh-snug);text-wrap:balance;font-variation-settings:"wdth" var(--wdth-head);letter-spacing:-.015em;margin:0}p{text-wrap:pretty}ol,p,ul{margin:0}ol,ul{padding:0}img,svg{max-width:100%;display:block}.mono,code,kbd{font-family:var(--font-mono);font-variation-settings:"wdth" var(--wdth-mono);font-variant-numeric:tabular-nums}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}.wrap{width:100%;max-width:var(--page-max);padding-inline:var(--gutter);margin-inline:auto}.skip-link{left:var(--gutter);top:var(--space-2);z-index:100;padding:var(--space-2) var(--space-4);background:var(--ink);color:var(--paper);transition:transform var(--dur-quick) var(--ease-out);font-weight:600;position:absolute;transform:translateY(-200%)}.skip-link:focus-visible{transform:translateY(0)}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.page-head{border-bottom:var(--rule-w-strong) solid var(--rule-strong);padding-block:var(--space-8) var(--space-6)}.page-head h1{font-size:var(--fs-3xl);line-height:var(--lh-tight);font-variation-settings:"wdth" var(--wdth-display);letter-spacing:-.025em;font-weight:800}.page-head .lede{margin-top:var(--space-4);max-width:56ch;font-size:var(--fs-lg);color:var(--ink-2)}.panel-title{font-size:var(--fs-xl);font-variation-settings:"wdth" var(--wdth-head);padding-top:var(--space-3);border-top:var(--rule-w-strong) solid var(--rule-strong)}.prose-col{max-width:var(--measure)}.meta{font-family:var(--font-mono);font-variation-settings:"wdth" var(--wdth-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-2xs);color:var(--ink-3);letter-spacing:0;line-height:1.5}.btn{align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-5);font-weight:600;font-size:var(--fs-sm);border:var(--rule-w) solid;border-radius:var(--radius-1);transition:background-color var(--dur-quick) var(--ease-out),color var(--dur-quick) var(--ease-out),transform var(--dur-quick) var(--ease-out);cursor:pointer;white-space:nowrap;text-decoration:none;display:inline-flex}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-ghost{color:var(--ink);background:0 0}.btn-ghost:hover{background:var(--ink);color:var(--paper)}.on-band .btn-primary{background:var(--band-accent);border-color:var(--band-accent);color:#06241f}.on-band .btn-primary:hover{background:var(--band-ink);border-color:var(--band-ink)}.on-band .btn-ghost{color:var(--band-ink)}.on-band .btn-ghost:hover{background:var(--band-ink);color:var(--band)}.on-band :focus-visible{outline-color:var(--band-accent)}.link{color:var(--accent);text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.link{-webkit-text-decoration-color:color-mix(in srgb,var(--accent) 45%,transparent);text-decoration-color:color-mix(in srgb,var(--accent) 45%,transparent)}}.link{transition:text-decoration-color var(--dur-quick) var(--ease-out)}.link:hover{text-decoration-color:currentColor}.arrow-link{align-items:center;gap:var(--space-2);transition:background-size var(--dur-base) var(--ease-out);background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0 1px;padding-bottom:2px;font-weight:600;text-decoration:none;display:inline-flex}.arrow-link:focus-visible,.arrow-link:hover{background-size:100% 1px}.arrow-link svg{transition:transform var(--dur-base) var(--ease-out)}.arrow-link:hover svg{transform:translate(3px)}.status{font-family:var(--font-mono);font-variation-settings:"wdth" var(--wdth-mono);font-size:var(--fs-2xs);color:var(--ink-2);white-space:nowrap;align-items:center;gap:.5em;line-height:1;display:inline-flex}.status:before{content:"";border:1.5px solid var(--accent);flex:none;width:.7em;height:.7em}.status[data-status=production]:before{background:var(--accent)}.status[data-status=in-progress]:before{background:linear-gradient(90deg,var(--accent) 50%,transparent 50%)}.status[data-status=coursework]:before{border-style:dotted;border-width:2px}.tag{font-family:var(--font-mono);font-variation-settings:"wdth" var(--wdth-mono);font-size:var(--fs-2xs);border:var(--rule-w) solid var(--rule);color:var(--ink-2);border-radius:var(--radius-1);padding:.2em .55em;line-height:1.4;display:inline-block}.mdx{max-width:var(--measure)}.mdx>*+*{margin-top:var(--space-4)}.mdx h2{font-size:var(--fs-xl);margin-top:var(--space-8);padding-top:var(--space-3);border-top:var(--rule-w-strong) solid var(--rule-strong)}.mdx h2+*{margin-top:var(--space-4)}.mdx h3{font-size:var(--fs-lg);margin-top:var(--space-6)}.mdx ol,.mdx ul{padding-left:1.25em}.mdx li+li{margin-top:var(--space-2)}.mdx li::marker{color:var(--accent)}.mdx a{color:var(--accent)}.mdx strong{font-weight:650}.mdx code{background:var(--paper-2);border-radius:var(--radius-1);padding:.1em .35em;font-size:.86em}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@keyframes page-in{0%{transform:translateY(8px)}}.page-in{animation:page-in var(--dur-slow) var(--ease-out) both}@property --n{syntax:"<integer>";initial-value:0;inherits:false}@keyframes count-up{0%{--n:0}to{--n:var(--to)}}.count{--n:var(--to);counter-reset:n var(--n);animation:count-up .9s var(--ease-out) both;font-variant-numeric:tabular-nums}.count:after{content:counter(n)}@media (prefers-reduced-motion:reduce){.count,.page-in{animation:none!important}}.site-header{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:var(--rule-w) solid var(--rule)}.site-header__row{display:flex;align-items:center;gap:var(--space-5);min-height:64px}.wordmark{display:inline-flex;flex-direction:column;text-decoration:none;line-height:1.05;margin-right:auto}.wordmark__name{font-weight:800;font-size:1.0625rem;font-variation-settings:"wdth" var(--wdth-head);letter-spacing:-.01em}.wordmark__role{font-family:var(--font-mono);font-variation-settings:"wdth" var(--wdth-mono);font-size:.6875rem;color:var(--ink-3)}.site-nav__list{list-style:none;display:flex;gap:var(--space-1)}.site-nav__link{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:0 var(--space-3);font-size:var(--fs-sm);font-weight:500;text-decoration:none;color:var(--ink-2);transition:color var(--dur-quick) var(--ease-out)}.site-nav__link:hover,.site-nav__link[aria-current=page]{color:var(--ink)}.site-nav__indicator{position:absolute;left:var(--space-3);right:var(--space-3);bottom:6px;height:2px;background:var(--accent)}.site-header__actions{display:flex;align-items:center;gap:var(--space-2)}.btn-sm{min-height:40px;padding:0 var(--space-4);font-size:var(--fs-xs)}.icon-btn{display:inline-grid;place-items:center;width:44px;height:44px;border:0;background:transparent;color:var(--ink);border-radius:var(--radius-1);cursor:pointer;transition:background-color var(--dur-quick) var(--ease-out)}.icon-btn:hover{background:var(--paper-2)}.menu-btn{display:none}.mobile-menu{border-top:var(--rule-w) solid var(--rule);background:var(--paper);padding-block:var(--space-4) var(--space-6)}.mobile-menu[hidden]{display:none}.mobile-menu ul{list-style:none}.mobile-menu__link{display:flex;align-items:center;min-height:52px;font-size:var(--fs-xl);font-weight:700;font-variation-settings:"wdth" var(--wdth-head);text-decoration:none;border-bottom:var(--rule-w) solid var(--rule)}.mobile-menu__link[aria-current=page]{color:var(--accent)}.mobile-menu__cv{margin-top:var(--space-5);width:100%;justify-content:center}@media (max-width:1023px){.site-nav{display:none}.menu-btn{display:inline-grid}}@media (max-width:520px){.cv-btn{display:none}}.site-footer{margin-top:auto;border-top:var(--rule-w-strong) solid var(--rule-strong);padding-top:var(--space-7);background:var(--paper)}.site-footer__grid{display:grid;gap:var(--space-6);grid-template-columns:1.2fr 1fr 1fr}.site-footer__name{font-weight:800;font-size:var(--fs-lg);font-variation-settings:"wdth" var(--wdth-head)}.site-footer__contact,.site-footer__links{list-style:none;display:grid;gap:var(--space-1);font-size:var(--fs-sm)}.site-footer__contact a,.site-footer__links a{display:inline-flex;align-items:center;gap:var(--space-2);min-height:32px;color:var(--ink-2);text-decoration:none}.site-footer__contact a:hover,.site-footer__links a:hover{color:var(--accent);text-decoration:underline}.site-footer__links{grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer__base{margin-top:var(--space-7);padding-block:var(--space-4);border-top:var(--rule-w) solid var(--rule)}@media (max-width:767px){.site-footer__grid{grid-template-columns:1fr}}.hero{background:var(--band);color:var(--band-ink);padding-block:clamp(3rem,2rem + 5vw,6.5rem) clamp(2.5rem,2rem + 3vw,4.5rem)}.hero__grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:clamp(2rem,1rem + 4vw,5rem);align-items:end}.hero__title{display:flex;flex-direction:column;gap:var(--space-3);line-height:1}.hero__name{display:block;font-size:var(--fs-display);line-height:.92;font-weight:800;font-variation-settings:"wdth" var(--wdth-display);letter-spacing:-.03em}.hero__role{font-size:var(--fs-xl);font-weight:600;font-variation-settings:"wdth" var(--wdth-head);color:var(--band-accent);letter-spacing:-.01em}.hero__tagline{margin-top:var(--space-5);max-width:34ch;font-size:var(--fs-lg);line-height:1.45;color:var(--band-ink)}.hero__affil{margin-top:var(--space-3);font-size:var(--fs-sm);color:var(--band-ink-2)}.hero__actions{margin-top:var(--space-6);display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.hero__social{display:inline-flex;gap:var(--space-1);margin-left:var(--space-1)}.icon-link{display:inline-grid;place-items:center;width:44px;height:44px;color:inherit;border-radius:var(--radius-1);transition:background-color var(--dur-quick) var(--ease-out)}.on-band .icon-link:hover{background:var(--band-rule)}.hero__metrics{display:grid;grid-template-columns:auto 1fr;gap:0;margin:0;border-top:var(--rule-w-strong) solid var(--band-ink)}.metric{display:grid;grid-column:1/-1;grid-template-columns:subgrid;align-items:baseline;gap:var(--space-4);padding-block:var(--space-4);border-bottom:var(--rule-w) solid var(--band-rule)}.metric__value{order:-1;margin:0;font-size:var(--fs-metric);line-height:1;font-weight:500;letter-spacing:-.04em;color:var(--band-ink)}.metric__label{font-size:var(--fs-sm);line-height:1.4;color:var(--band-ink-2)}@media (max-width:899px){.hero__grid{grid-template-columns:1fr;align-items:start}}.section{padding-top:clamp(3.5rem,2.5rem + 4vw,6.5rem)}.section--last{padding-bottom:clamp(3.5rem,2.5rem + 4vw,6.5rem)}.section__head{display:grid;gap:var(--space-3);margin-bottom:var(--space-6)}.section__head--row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:var(--space-3);padding-top:var(--space-3);border-top:var(--rule-w-strong) solid var(--rule-strong)}.section__head--row .panel-title{border-top:0;padding-top:0}.section__lede{max-width:60ch;color:var(--ink-2);font-size:var(--fs-lg);line-height:1.5}.pipe{margin:0}.pipe__groups{display:grid;gap:var(--space-3);margin-bottom:var(--space-4)}.pipe__group{position:relative;padding-top:var(--space-2);border-top:var(--rule-w) solid var(--ink-3)}.pipe__group:after,.pipe__group:before{content:"";position:absolute;top:-1px;width:1px;height:8px;background:var(--ink-3)}.pipe__group:before{left:0}.pipe__group:after{right:0}.pipe__group-name{font-family:var(--font-mono);font-variation-settings:"wdth" var(--wdth-mono);font-size:var(--fs-2xs);color:var(--ink-2)}.pipe__track{position:relative}.pipe__line{position:absolute;overflow:visible;pointer-events:none}.pipe__path{fill:none;stroke:var(--accent);stroke-width:3px}.pipe__line--h{left:calc(100% / 18);right:calc(100% / 18);top:11px;height:4px;width:calc(100% - 100% / 9)}.pipe__line--v{display:none}.pipe__nodes{list-style:none;display:grid;position:relative}.pipe__item{position:relative;display:flex;justify-content:center}.pipe__node{position:relative;display:grid;justify-items:center;gap:var(--space-2);padding-bottom:var(--space-2);text-decoration:none;text-align:center;min-width:44px}.pipe__dot{width:26px;height:26px;border-radius:50%;background:var(--paper);border:3px solid var(--accent);transition:transform var(--dur-base) var(--ease-out)}.pipe__item[data-layer=model] .pipe__dot{background:var(--accent)}.pipe__idx{font-size:var(--fs-2xs);color:var(--ink-3)}.pipe__label{font-weight:700;font-size:var(--fs-base);font-variation-settings:"wdth" var(--wdth-head);line-height:1.15}.pipe__node:focus-visible .pipe__dot,.pipe__node:hover .pipe__dot{transform:scale(1.18)}.pipe__node:focus-visible .pipe__label,.pipe__node:hover .pipe__label{color:var(--accent)}.pipe__note{position:absolute;top:calc(100% + 6px);left:50%;z-index:5;width:max-content;max-width:15rem;padding:var(--space-3) var(--space-4);background:var(--ink);color:var(--paper);font-size:var(--fs-xs);line-height:1.45;text-align:left;border-radius:var(--radius-1);box-shadow:var(--lift);opacity:0;transform:translate(-50%,4px);pointer-events:none;transition:opacity var(--dur-quick) var(--ease-out),transform var(--dur-quick) var(--ease-out)}.pipe__item:last-child .pipe__note,.pipe__item:nth-last-child(2) .pipe__note{left:auto;right:0;transform:translateY(4px)}.pipe__item:first-child .pipe__note,.pipe__item:nth-child(2) .pipe__note{left:0;transform:translateY(4px)}.pipe__node:focus-visible .pipe__note,.pipe__node:hover .pipe__note{opacity:1;transform:translate(-50%)}.pipe__item:first-child .pipe__node:is(:hover,:focus-visible) .pipe__note,.pipe__item:last-child .pipe__node:is(:hover,:focus-visible) .pipe__note,.pipe__item:nth-child(2) .pipe__node:is(:hover,:focus-visible) .pipe__note,.pipe__item:nth-last-child(2) .pipe__node:is(:hover,:focus-visible) .pipe__note{transform:translate(0)}.pipe__note-link{display:block;margin-top:var(--space-2);font-weight:600;color:var(--accent-soft)}:root[data-theme=dark] .pipe__note-link{color:var(--accent-ink)}.pipe__caption{margin-top:var(--space-7);max-width:70ch;font-size:var(--fs-sm);color:var(--ink-2)}.pipe__caption .mono{font-size:var(--fs-2xs);font-weight:600;color:var(--ink);margin-right:var(--space-2)}@media (max-width:899px){.pipe__groups,.pipe__line--h{display:none}.pipe__line--v{display:block;left:11px;top:13px;bottom:13px;width:4px;height:calc(100% - 26px)}.pipe__nodes{grid-template-columns:1fr!important;gap:var(--space-4)}.pipe__item{justify-content:flex-start}.pipe__item[data-boundary]{margin-top:var(--space-4)}.pipe__node{grid-template-columns:26px 2.5rem 1fr;justify-items:start;align-items:start;column-gap:var(--space-3);row-gap:var(--space-1);text-align:left;padding:0}.pipe__idx{padding-top:5px}.pipe__label{padding-top:1px}.pipe__note{position:static;grid-column:3;width:auto;max-width:none;padding:0;background:none;color:var(--ink-2);box-shadow:none;opacity:1;transform:none!important;font-size:var(--fs-sm)}.pipe__note-link{color:var(--accent)}.pipe__item[data-repeat] .pipe__note-link{display:none}:root[data-theme=dark] .pipe__note-link{color:var(--accent)}}.pcard{position:relative;display:flex;flex-direction:column;gap:var(--space-3);height:100%;padding:var(--space-5);background:var(--paper-2);border-top:var(--rule-w-strong) solid var(--rule-strong);transition:transform var(--dur-base) var(--ease-out)}.pcard:before{content:"";position:absolute;inset:0;box-shadow:var(--lift);opacity:0;pointer-events:none;transition:opacity var(--dur-base) var(--ease-out)}.pcard:hover{transform:translateY(-2px)}.pcard:hover:before{opacity:1}.pcard:focus-within{outline:2px solid var(--focus);outline-offset:3px}.pcard__top{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap}.pcard__title{font-size:var(--fs-lg);line-height:1.2}.pcard[data-size=lead] .pcard__title{font-size:var(--fs-2xl);font-variation-settings:"wdth" var(--wdth-display);font-weight:800;line-height:1.02;letter-spacing:-.02em;max-width:18ch}.pcard__link{text-decoration:none}.pcard__link:after{content:"";position:absolute;inset:0}.pcard__link:focus-visible{outline:none}.pcard__summary{color:var(--ink-2);font-size:var(--fs-sm);line-height:1.55}.pcard[data-size=lead] .pcard__summary{font-size:var(--fs-base);max-width:52ch}.pcard__metrics{display:flex;flex-wrap:wrap;gap:var(--space-5);margin:var(--space-2) 0 0}.pcard__metric{display:flex;flex-direction:column-reverse;gap:var(--space-1)}.pcard__metric dt{max-width:26ch;font-size:var(--fs-xs);line-height:1.35;color:var(--ink-3)}.pcard__metric dd{margin:0;font-size:var(--fs-xl);line-height:1;letter-spacing:-.03em}.pcard[data-size=lead] .pcard__metric dd{font-size:var(--fs-metric)}.pcard__foot{margin-top:auto;padding-top:var(--space-3);display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);border-top:var(--rule-w) solid var(--rule)}.pcard__more{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--fs-xs);font-weight:600;color:var(--accent)}.pcard__more svg{transition:transform var(--dur-base) var(--ease-out)}.pcard:hover .pcard__more svg{transform:translateX(3px)}.code-mark{display:inline-flex;align-items:center;gap:.4em;font-family:var(--font-mono);font-variation-settings:"wdth" var(--wdth-mono);font-size:var(--fs-2xs);color:var(--ink-2)}.code-mark--none{color:var(--ink-3)}@keyframes building{50%{opacity:.35}}.pcard[data-status=in-progress] .status:before{animation:building 2.4s var(--ease-in-out) infinite}.featured{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--space-4)}.featured__lead{grid-column:span 7;grid-row:span 2}.featured__item{grid-column:span 5}.featured__item:last-child{grid-column:1/-1}@media (max-width:899px){.featured__item,.featured__item:last-child,.featured__lead{grid-column:1/-1;grid-row:auto}}.index-list{list-style:none;margin-top:var(--space-2)}.index-list__link{display:grid;grid-template-columns:minmax(8rem,14rem) 1fr auto;align-items:baseline;gap:var(--space-4);padding-block:var(--space-4);border-bottom:var(--rule-w) solid var(--rule);text-decoration:none}.index-list__title{font-size:var(--fs-xl);font-weight:700;font-variation-settings:"wdth" var(--wdth-head);transition:color var(--dur-quick) var(--ease-out)}.index-list__line{color:var(--ink-2)}.index-list__arrow{align-self:center;transition:transform var(--dur-base) var(--ease-out)}.index-list__link:hover .index-list__title{color:var(--accent)}.index-list__link:hover .index-list__arrow{transform:translateX(4px)}@media (max-width:640px){.index-list__link{grid-template-columns:1fr auto}.index-list__line{grid-column:1;font-size:var(--fs-sm)}.index-list__arrow{grid-row:1/span 2;grid-column:2}}.explorer__controls{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--space-4);padding-block:var(--space-5);border-bottom:var(--rule-w) solid var(--rule);margin-bottom:var(--space-6)}.filters{display:flex;flex-wrap:wrap}.filter,.filters{gap:var(--space-2)}.filter{display:inline-flex;align-items:center;min-height:44px;padding:0 var(--space-4);font:inherit;font-size:var(--fs-sm);font-weight:500;color:var(--ink);background:transparent;border:var(--rule-w) solid var(--rule);border-radius:var(--radius-1);cursor:pointer;transition:background-color var(--dur-quick) var(--ease-out),border-color var(--dur-quick) var(--ease-out),color var(--dur-quick) var(--ease-out)}.filter:hover{border-color:var(--ink)}.filter[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.filter__count{font-size:var(--fs-2xs);color:inherit;opacity:.75}.toggle{display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px;font-size:var(--fs-sm);cursor:pointer}.toggle input{width:18px;height:18px;accent-color:var(--accent)}.explorer__grid{list-style:none;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--space-4)}.explorer__cell{grid-column:span 2}.explorer__cell[data-featured]{grid-column:span 3}@media (max-width:1099px){.explorer__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.explorer__cell,.explorer__cell[data-featured]{grid-column:span 1}}@media (max-width:679px){.explorer__grid{grid-template-columns:1fr}}.explorer__empty{padding-block:var(--space-7);color:var(--ink-2)}.link-btn{font:inherit;color:var(--accent);background:none;border:0;padding:0;text-decoration:underline;cursor:pointer}.scroll-progress{position:fixed;left:0;right:0;top:64px;height:3px;background:var(--accent);transform-origin:0 50%;z-index:49}.case-head{padding-block:var(--space-7) var(--space-6);border-bottom:var(--rule-w-strong) solid var(--rule-strong)}.case-head__back{display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px;font-size:var(--fs-sm);font-weight:600;color:var(--ink-2);text-decoration:none}.case-head__back:hover{color:var(--accent)}.case-head h1{margin-top:var(--space-4);font-size:var(--fs-3xl);font-weight:800;font-variation-settings:"wdth" var(--wdth-display);line-height:.98;letter-spacing:-.025em;max-width:22ch}.case-head__summary{margin-top:var(--space-4);max-width:60ch;font-size:var(--fs-lg);color:var(--ink-2);line-height:1.5}.case-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-5);margin:var(--space-6) 0 0}.case-facts>div{border-top:var(--rule-w) solid var(--rule);padding-top:var(--space-3)}.case-facts dt{font-family:var(--font-mono);font-variation-settings:"wdth" var(--wdth-mono);font-size:var(--fs-2xs);color:var(--ink-3)}.case-facts dd{margin:var(--space-1) 0 0;font-size:var(--fs-sm)}.case-facts .stack-list{display:flex;flex-wrap:wrap;gap:var(--space-1);list-style:none}.case-facts__stack{grid-column:span 2}@media (max-width:899px){.case-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:480px){.case-facts{grid-template-columns:1fr}.case-facts__stack{grid-column:auto}}.case-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:var(--space-4);margin:var(--space-6) 0 0}.case-metrics>div{display:flex;flex-direction:column-reverse;gap:var(--space-2);padding:var(--space-4) var(--space-5);background:var(--paper-2);border-top:var(--rule-w-strong) solid var(--accent)}.case-metrics dt{font-size:var(--fs-xs);color:var(--ink-2);line-height:1.4}.case-metrics dd{margin:0;font-size:var(--fs-metric);line-height:1;letter-spacing:-.04em}.case-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(14rem,18rem);gap:clamp(2rem,1rem + 4vw,5rem);padding-bottom:var(--space-9)}.case-aside{padding-top:var(--space-8)}.case-aside__sticky{position:sticky;top:96px;display:grid;gap:var(--space-4)}.case-code{display:grid;gap:var(--space-3);padding:var(--space-5);background:var(--paper-2);border-top:var(--rule-w-strong) solid var(--rule-strong);font-size:var(--fs-sm)}.case-code p{color:var(--ink-2)}@media (max-width:899px){.case-body{grid-template-columns:1fr}.case-aside{padding-top:0;order:-1}}.arch{margin:var(--space-7) 0 var(--space-2);padding:var(--space-5);background:var(--paper-2)}.arch__flow{list-style:none;display:flex;flex-wrap:nowrap;align-items:stretch;row-gap:var(--space-4)}.arch__item{display:flex;align-items:center;flex:1 1 0;min-width:0}.arch__item:last-child{flex:0 1 auto}.arch__step{display:grid;gap:var(--space-1);padding:var(--space-3) var(--space-4);background:var(--paper);border:var(--rule-w) solid var(--rule);border-top:var(--rule-w-strong) solid var(--accent);flex:1 1 auto;min-width:0;align-self:stretch}.arch__idx{font-size:var(--fs-2xs);color:var(--ink-3)}.arch__label{font-size:var(--fs-sm);font-weight:600;line-height:1.3}.arch__link{position:relative;flex:none;width:22px;height:2px;margin-inline:var(--space-1);background:var(--accent)}.arch__link:after{content:"";position:absolute;right:-1px;top:-4px;width:8px;height:10px;background:var(--accent);clip-path:polygon(0 0,100% 50%,0 100%)}.arch__caption{margin-top:var(--space-4);font-size:var(--fs-xs);color:var(--ink-2)}.arch__caption .mono{font-weight:600;color:var(--ink);margin-right:var(--space-2)}@media (max-width:1023px){.arch__flow{flex-direction:column;flex-wrap:nowrap;row-gap:0}.arch__item,.arch__item:last-child{flex:none;flex-direction:column;align-items:flex-start}.arch__step{max-width:none;width:100%}.arch__link{width:2px;height:20px;margin:var(--space-1) 0 var(--space-1) var(--space-5)}.arch__link:after{right:auto;top:auto;bottom:-1px;left:-4px;width:10px;height:8px;clip-path:polygon(0 0,100% 0,50% 100%)}}.case-nav{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);padding-block:var(--space-6) var(--space-9);border-top:var(--rule-w-strong) solid var(--rule-strong)}.case-nav a{display:grid;gap:var(--space-1);padding:var(--space-4) 0;text-decoration:none}.case-nav a:last-child{text-align:right;justify-items:end}.case-nav__dir{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-variation-settings:"wdth" var(--wdth-mono);font-size:var(--fs-2xs);color:var(--ink-3)}.case-nav__title{font-size:var(--fs-lg);font-weight:700;font-variation-settings:"wdth" var(--wdth-head);line-height:1.2;transition:color var(--dur-quick) var(--ease-out)}.case-nav a:hover .case-nav__title{color:var(--accent)}@media (max-width:640px){.case-nav{grid-template-columns:1fr}.case-nav a:last-child{text-align:left;justify-items:start}}.role-head{display:grid;grid-template-columns:1fr auto;gap:var(--space-2) var(--space-5);align-items:baseline;padding-block:var(--space-7) var(--space-5)}.role-head h2{font-size:var(--fs-2xl);font-variation-settings:"wdth" var(--wdth-display);font-weight:800;line-height:1}.role-head__role{grid-column:1;font-size:var(--fs-lg);color:var(--ink-2)}.role-head__period{grid-column:2;grid-row:1;font-size:var(--fs-sm);color:var(--ink-2)}.role-summary{max-width:var(--measure);font-size:var(--fs-lg);line-height:1.55}.timeline{position:relative;margin-top:var(--space-7);padding-left:2.75rem;padding-bottom:var(--space-9)}.timeline__rail{position:absolute;left:9px;top:6px;bottom:var(--space-9);width:3px;background:var(--rule)}.timeline__fill{position:absolute;inset:0;background:var(--accent);transform-origin:50% 0}.tl-group{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(12rem,16rem);gap:var(--space-3) var(--space-7);padding-bottom:var(--space-8)}.tl-group:last-child{padding-bottom:0}.timeline__marker{position:absolute;left:calc(-2.75rem + 2px);top:4px;width:17px;height:17px;border-radius:50%;border:3px solid var(--accent);background:var(--paper);display:grid;place-items:center}.timeline__marker-fill{width:100%;height:100%;border-radius:50%;background:var(--accent)}.tl-group h3{grid-column:1/-1;font-size:var(--fs-xl)}.tl-group ul{padding-left:1.15em;max-width:var(--measure);color:var(--ink)}.tl-group li+li{margin-top:var(--space-3)}.tl-group li::marker{color:var(--accent)}.tl-links{display:grid;align-content:start;gap:var(--space-2);padding-top:var(--space-1)}.tl-links .arrow-link{justify-self:start}.tl-links .meta{margin-bottom:var(--space-1)}@media (max-width:899px){.tl-group{grid-template-columns:1fr}}@media (max-width:480px){.timeline{padding-left:2rem}.timeline__marker{left:calc(-2rem + 2px)}.role-head{grid-template-columns:1fr}.role-head__period{grid-column:1;grid-row:auto}}.two-col{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:clamp(2rem,1rem + 4vw,5rem);padding-block:var(--space-7) var(--space-9)}@media (max-width:899px){.two-col{grid-template-columns:1fr}}.bio>*+*{margin-top:var(--space-5)}.bio p{font-size:var(--fs-lg);line-height:1.6;max-width:var(--measure)}.bio h2{margin-top:var(--space-7)}.facts{display:grid;gap:var(--space-5);align-content:start}.facts dl{margin:0;display:grid;gap:var(--space-4)}.facts dt{font-family:var(--font-mono);font-variation-settings:"wdth" var(--wdth-mono);font-size:var(--fs-2xs);color:var(--ink-3)}.facts dd{margin:var(--space-1) 0 0}.panel{padding:var(--space-5);background:var(--paper-2);border-top:var(--rule-w-strong) solid var(--rule-strong)}.edu-list{list-style:none;display:grid;gap:var(--space-7);padding-block:var(--space-7) 0}.edu{display:grid;grid-template-columns:minmax(9rem,12rem) minmax(0,1fr);gap:var(--space-3) var(--space-6);padding-top:var(--space-4);border-top:var(--rule-w-strong) solid var(--rule-strong)}.edu__period{font-size:var(--fs-sm);color:var(--ink-2);padding-top:.35em}.edu h2{font-size:var(--fs-2xl);font-variation-settings:"wdth" var(--wdth-display);font-weight:800;line-height:1.02}.edu__degree{margin-top:var(--space-2);font-size:var(--fs-lg)}.edu__gpa{margin-top:var(--space-3);font-size:var(--fs-xl)}.edu__notes{margin-top:var(--space-4);padding-left:1.15em;color:var(--ink-2);max-width:var(--measure)}.edu__notes li::marker{color:var(--accent)}.edu__links{margin-top:var(--space-4);display:flex;flex-wrap:wrap;gap:var(--space-5)}@media (max-width:640px){.edu{grid-template-columns:1fr}}.cert-list{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:var(--space-4);margin-top:var(--space-5);padding-bottom:var(--space-9)}.cert-list li{padding:var(--space-4) var(--space-5);background:var(--paper-2);font-weight:600}.contact-list{list-style:none;border-top:var(--rule-w-strong) solid var(--rule-strong)}.contact-list a{display:grid;grid-template-columns:2rem minmax(7rem,10rem) 1fr auto;align-items:center;gap:var(--space-4);min-height:72px;padding-block:var(--space-4);border-bottom:var(--rule-w) solid var(--rule);text-decoration:none}.contact-list__kind{font-family:var(--font-mono);font-variation-settings:"wdth" var(--wdth-mono);font-size:var(--fs-2xs);color:var(--ink-3)}.contact-list__value{font-size:var(--fs-xl);font-weight:700;font-variation-settings:"wdth" var(--wdth-head);overflow-wrap:anywhere;transition:color var(--dur-quick) var(--ease-out)}.contact-list a:hover .contact-list__value{color:var(--accent)}.contact-list a svg:last-child{transition:transform var(--dur-base) var(--ease-out)}.contact-list a:hover svg:last-child{transform:translate(2px,-2px)}@media (max-width:640px){.contact-list a{grid-template-columns:2rem 1fr auto}.contact-list__kind{grid-column:2}.contact-list__value{grid-column:2;font-size:var(--fs-lg)}.contact-list a>svg:first-child{grid-row:1/span 2}.contact-list a>svg:last-child{grid-row:1/span 2;grid-column:3}}.skillmap{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(16rem,1fr);gap:clamp(2rem,1rem + 4vw,5rem);padding-block:var(--space-7) var(--space-9)}.skillmap__groups{display:grid;gap:var(--space-8)}.skill-group__title{font-size:var(--fs-xl);padding-top:var(--space-3);border-top:var(--rule-w-strong) solid var(--rule-strong)}.skill-group__list{list-style:none;margin-top:var(--space-4);display:grid;gap:var(--space-1)}.skill{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-1) var(--space-5);padding-block:var(--space-2);border-bottom:var(--rule-w) solid var(--rule)}.skill,.skill__btn{align-items:baseline}.skill__btn{display:inline-flex;justify-content:space-between;gap:var(--space-3);width:100%;min-height:40px;padding:var(--space-2) var(--space-2);margin-left:calc(var(--space-2) * -1);font:inherit;font-weight:600;text-align:left;color:var(--ink);background:transparent;border:0;border-radius:var(--radius-1);cursor:pointer;transition:background-color var(--dur-quick) var(--ease-out),color var(--dur-quick) var(--ease-out)}.skill__btn[aria-pressed=true],.skill__btn[data-on]{background:var(--accent-soft)}.skill__btn:disabled{cursor:default;font-weight:500;color:var(--ink-2)}.skill__count{font-size:var(--fs-2xs);color:var(--ink-3)}.skill__uses{font-size:var(--fs-xs);line-height:1.5}.skill__uses,.skill__uses a{color:var(--ink-2)}.skill__uses a:hover{color:var(--accent)}.skillmap__sticky{position:sticky;top:88px}.skillmap__readout{min-height:3.2em;padding:var(--space-3) var(--space-4);background:var(--ink);color:var(--paper);font-size:var(--fs-sm)}.skillmap__readout .mono{font-weight:700;color:var(--accent-soft)}:root[data-theme=dark] .skillmap__readout .mono{color:var(--accent-ink)}.skillmap__list{list-style:none;margin-top:var(--space-3)}.skillmap__list li{transition:opacity var(--dur-base) var(--ease-out)}.skillmap__list a{display:flex;align-items:center;gap:var(--space-3);min-height:36px;padding-block:var(--space-1);font-size:var(--fs-sm);text-decoration:none;border-bottom:var(--rule-w) solid var(--rule)}.skillmap__list a:hover{color:var(--accent)}.skillmap__list .status{font-size:.8rem}.skillmap[data-active] .skillmap__list li{opacity:.32}.skillmap[data-active] .skillmap__list li[data-lit]{opacity:1}.skillmap[data-active] .skillmap__list li[data-lit] a{font-weight:650}@media (max-width:899px){.skillmap{grid-template-columns:1fr}.skillmap__projects{display:none}.skill{grid-template-columns:1fr}}.notfound{padding-block:var(--space-9)}.notfound__code{font-size:clamp(5rem,3rem + 10vw,11rem);line-height:.85;letter-spacing:-.06em;color:var(--accent)}.notfound h1{margin-top:var(--space-5);font-size:var(--fs-2xl);font-variation-settings:"wdth" var(--wdth-display);font-weight:800}.notfound p{margin-top:var(--space-3);max-width:48ch;color:var(--ink-2);font-size:var(--fs-lg)}.notfound .btn{margin-top:var(--space-6)}