.contact-main{margin-top:var(--space-7)}.contact-unavailable{margin-top:0}.contact-unavailable p{max-width:var(--measure-lead);color:var(--color-text-muted)}.contact-lead{max-width:var(--measure-lead);margin-top:var(--space-4);color:var(--color-text-muted);font-size:var(--type-lead);line-height:var(--leading-lead)}.social-list{margin-top:var(--space-6);border-top:1px solid var(--color-border);display:block}.social-list a{align-items:center;gap:var(--space-4);border-bottom:1px solid var(--color-border);padding:14px 0;text-decoration:none;display:flex}.s-ico{border:1px solid var(--color-border);border-radius:var(--radius-key);background:var(--color-surface);flex:none;place-items:center;width:40px;height:40px;display:grid}.s-ico svg{width:18px;height:18px}.s-name{min-width:max-content;font-size:var(--type-label);font-stretch:var(--wdth-label);font-weight:var(--weight-label);flex:0 84px}.s-handle{color:var(--color-text-muted);font-size:var(--type-small)}.s-ext{color:var(--color-text-muted);margin-left:auto;display:inline-flex}.s-ext svg{width:16px;height:16px}.form-plate{padding:var(--space-5);border:1px solid var(--color-border);background:var(--color-surface);border-radius:20px}.form-grid{gap:var(--space-5) var(--space-4);grid-template-columns:1fr;display:grid}.field{min-width:0}.field.full{grid-column:1/-1}.field label{margin-bottom:var(--space-2);font-size:var(--type-label);font-stretch:var(--wdth-label);font-weight:var(--weight-label);line-height:var(--leading-label);display:block}.field label .opt{color:var(--color-text-muted);font-weight:400}.input{border:1.5px solid var(--color-border-strong);border-radius:var(--radius-input);background:var(--color-bg);width:100%;min-height:48px;color:var(--color-text);font:inherit;font-size:var(--type-body);transition-property:border-color,box-shadow;transition-duration:var(--dur-fast);transition-timing-function:var(--ease-standard);margin:0;padding:12px 14px;line-height:1.45;display:block}.input::placeholder{color:var(--color-text-subtle);opacity:1}.input.textarea{resize:vertical;min-height:176px}.input:focus{border-color:var(--color-text);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-signal) 70%, transparent)}.input.is-invalid{border-color:var(--color-danger)}.input[readonly]{border-color:var(--color-border);background:var(--color-sunken);color:var(--color-text-muted)}.hint{color:var(--color-text-subtle);font-size:var(--type-small);line-height:var(--leading-small);margin-top:6px}.field-error{color:var(--color-danger);font-size:var(--type-small);font-weight:500;line-height:var(--leading-small);align-items:flex-start;gap:6px;margin-top:6px;display:flex}.field-error svg{flex:none;width:16px;height:16px;margin-top:2px}.turnstile{max-width:100%;min-height:65px;margin-top:var(--space-5)}.form-foot{gap:var(--space-4);margin-top:var(--space-6);flex-direction:column-reverse;justify-content:space-between;align-items:stretch;display:flex}.form-foot p{color:var(--color-text-muted);font-size:var(--type-small)}.form-foot .key{width:100%}.contact-alert{gap:var(--space-3);margin-bottom:var(--space-6);padding:var(--space-4) var(--space-5);border:1.5px solid var(--color-danger);border-radius:var(--radius-input);background:color-mix(in srgb, var(--color-danger) 7%, var(--color-surface));display:flex}.contact-alert:focus{outline:2px solid var(--color-focus);outline-offset:3px}.contact-alert>svg{width:22px;height:22px;color:var(--color-danger);flex:none;margin-top:2px}.contact-alert-title{font-size:var(--type-label);font-stretch:var(--wdth-label);margin-bottom:4px;font-weight:640}.contact-alert p:not(.contact-alert-title),.contact-alert li{font-size:var(--type-small);line-height:1.5}.contact-alert ul{gap:2px;margin-top:6px;display:grid}.contact-alert a{text-underline-offset:.2em}.spinner{border:2px solid color-mix(in srgb, var(--color-on-signal) 30%, transparent);border-top-color:var(--color-on-signal);border-radius:var(--radius-round);flex:none;width:16px;height:16px}.success-panel{gap:var(--space-4);text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:440px;display:flex}.success-panel:focus{outline:none}.success-panel:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.success-ok{border:2px solid var(--color-success);border-radius:var(--radius-round);width:64px;height:64px;color:var(--color-success);place-items:center;display:grid}.success-ok svg{width:28px;height:28px}.success-title{font-size:var(--type-h3);font-stretch:var(--wdth-h3);font-weight:var(--weight-h3);line-height:var(--leading-h3);letter-spacing:var(--tracking-h3)}.success-panel p{max-width:30em;color:var(--color-text-muted)}.success-panel .key{margin-top:var(--space-3)}@media (prefers-reduced-motion:no-preference){.contact-alert{animation:contact-drop-in var(--dur-base) var(--ease-out) both}.spinner{animation:.9s linear infinite contact-spin}.success-panel{animation:contact-panel-in var(--dur-base) var(--ease-out) both}.success-ok path{stroke-dasharray:24;animation:contact-draw .32s var(--ease-out) .12s both}}@keyframes contact-drop-in{0%{opacity:0;transform:translateY(-4px)}}@keyframes contact-spin{to{transform:rotate(360deg)}}@keyframes contact-panel-in{0%{opacity:0;transform:scale(.98)}}@keyframes contact-draw{0%{stroke-dashoffset:24px}}@media (min-width:720px){.social-list{margin-top:var(--space-7)}.form-plate{padding:var(--space-7);border-radius:var(--radius-plate)}.form-grid{grid-template-columns:1fr 1fr}.form-foot{flex-direction:row;align-items:center}.form-foot .key{width:auto}.success-panel{min-height:560px}}@media (min-width:1024px){.contact-grid{column-gap:var(--grid-gutter);grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;display:grid}.contact-intro{grid-column:1/6}.contact-main{grid-column:6/13;margin-top:0}}
.edu-route{gap:var(--space-8);margin:var(--space-7) 0 0;padding:0;list-style:none;display:grid}.edu-stop{isolation:isolate;padding-left:40px;position:relative}.edu-stop:after{content:"";inset:calc(-1 * var(--space-3));left:calc(40px - var(--space-3));z-index:-1;border-radius:var(--radius-key);background:color-mix(in srgb, var(--color-signal) 6%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--color-signal) 35%, transparent);opacity:0;pointer-events:none;transition:opacity var(--dur-fast) var(--ease-standard);position:absolute}.edu-stop:focus-within:after{opacity:1}@media (hover:hover){.edu-stop:hover:after{opacity:1}}.edu-stop:before{content:"";top:14px;bottom:calc(-1 * (var(--space-8) + 14px));width:var(--rule);background:var(--color-text);position:absolute;left:7px}.edu-stop:last-child:before{display:none}.edu-station{z-index:1;background:var(--color-bg);width:16px;height:16px;box-shadow:inset 0 0 0 var(--rule) var(--color-text);border-radius:50%;position:absolute;top:6px;left:0}.edu-station.is-lit{background:var(--color-signal);box-shadow:0 0 0 1.5px var(--color-lamp-ring), 0 0 0 6px color-mix(in srgb, var(--color-signal) 18%, transparent);translate:var(--edu-dot-to,0px 0px)}.edu-station:has(+.is-lit){opacity:0}@media (hover:hover){.edu-route[data-dot]:has(>.edu-stop:first-child:hover){--edu-dot-to:var(--edu-dot-1)}.edu-route[data-dot]:has(>.edu-stop:nth-child(2):hover){--edu-dot-to:var(--edu-dot-2)}.edu-route[data-dot]:has(>.edu-stop:nth-child(3):hover){--edu-dot-to:var(--edu-dot-3)}.edu-route[data-dot]:has(>.edu-stop:not(:last-child):hover) .edu-station:has(+.is-lit){opacity:1;transition-delay:0s}}.edu-route[data-dot]:has(>.edu-stop:first-child:focus-within){--edu-dot-to:var(--edu-dot-1)}.edu-route[data-dot]:has(>.edu-stop:nth-child(2):focus-within){--edu-dot-to:var(--edu-dot-2)}.edu-route[data-dot]:has(>.edu-stop:nth-child(3):focus-within){--edu-dot-to:var(--edu-dot-3)}.edu-route[data-dot]:has(>.edu-stop:not(:last-child):focus-within) .edu-station:has(+.is-lit){opacity:1;transition-delay:0s}.edu-route[data-dot]:has(>.edu-stop:last-child:focus-within) .edu-station:has(+.is-lit){opacity:0}@media (prefers-reduced-motion:no-preference){.edu-station.is-lit{transition:translate var(--dur-slow) var(--ease-in-out)}.edu-station:has(+.is-lit){transition:opacity 0s linear var(--dur-slow)}}.edu-name{font-size:var(--type-h3);font-stretch:var(--wdth-h3);font-weight:var(--weight-h3);line-height:var(--leading-h3);letter-spacing:var(--tracking-h3)}.edu-outcome{margin-top:var(--space-2);font-size:var(--type-title);font-stretch:var(--wdth-title);font-weight:var(--weight-title);line-height:var(--leading-title)}.edu-dates{margin-top:var(--space-3);color:var(--color-text-subtle);font-size:var(--type-small);font-variant-numeric:tabular-nums}.edu-body{max-width:var(--measure-body);margin-top:var(--space-4);color:var(--color-text-muted)}.edu-details{max-width:var(--measure-body);margin-top:var(--space-4)}.edu-built{margin-top:var(--space-5)}.edu-built-label{font-size:var(--type-label);font-stretch:var(--wdth-label);font-weight:var(--weight-label);line-height:var(--leading-label)}.edu-built ul{justify-items:start;gap:var(--space-2);margin-top:var(--space-2);display:grid}@media (min-width:720px){.edu-stop{padding-left:48px}.edu-stop:after{left:calc(48px - var(--space-3))}.edu-stop:before{top:19px;bottom:calc(-1 * (var(--space-8) + 19px))}.edu-station{top:11px}}@media (min-width:1024px){.edu-route{column-gap:var(--grid-gutter);grid-template-columns:repeat(12,1fr);row-gap:0;position:relative}.edu-route:before{content:"";width:calc((100% - 11 * var(--grid-gutter)) / 12 * 6 + 6 * var(--grid-gutter) - 8px);height:var(--rule);background:var(--color-text);position:absolute;top:7px;left:8px}.edu-stop{grid-column:1/6;padding:48px 0 0}.edu-stop+.edu-stop{grid-column:7/12}.edu-stop:after{top:calc(48px - var(--space-3));left:calc(-1 * var(--space-3))}.edu-stop:before{display:none}.edu-station{top:0}}
.hero{padding:var(--space-8) 0}.hero-headshot{width:80px;height:80px;margin-bottom:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-media);background:var(--color-sunken);object-fit:cover;display:block}.hero-name{font-size:var(--type-display);font-stretch:var(--wdth-display);font-weight:var(--weight-display);line-height:var(--leading-display);letter-spacing:var(--tracking-display);white-space:nowrap}.hero-name span{display:block}.hero-grid{margin-top:var(--space-6)}.hero-title{font-size:var(--type-title);font-stretch:var(--wdth-title);font-weight:var(--weight-title);line-height:var(--leading-title)}.hero-intro{max-width:30em;margin-top:var(--space-4);color:var(--color-text-muted);font-size:var(--type-lead);line-height:var(--leading-lead)}.hero-career{margin-top:var(--space-4)}.hero-keys{gap:var(--space-3);margin-top:var(--space-6);flex-wrap:wrap;display:flex}.hero .key{flex:1 1 0}.hero-side{margin-top:var(--space-7)}.index-plate{padding:var(--space-5) var(--space-5) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-plate);background:var(--color-surface)}.index-plate h2{margin-bottom:var(--space-2);color:var(--color-text-muted);font-size:var(--type-label);font-stretch:var(--wdth-label);font-weight:var(--weight-label);line-height:var(--leading-label)}.index-plate li+li{border-top:1px solid var(--color-border)}.index-plate a{justify-content:space-between;align-items:center;gap:var(--space-4);padding:14px 0;text-decoration:none;display:flex}.index-plate a span{font-size:19px;font-stretch:var(--wdth-title);font-weight:var(--weight-title);line-height:1.25}.index-plate svg{color:var(--color-text-muted);transition-property:transform,color;transition-duration:var(--dur-base);transition-timing-function:var(--ease-out);flex:none}.index-plate a:hover svg{color:var(--color-text);transform:translateY(2px)}@media (min-width:720px){.hero{padding-top:var(--space-9)}.hero-headshot{width:112px;height:112px;margin-bottom:var(--space-6);border-radius:var(--radius-plate)}.hero-name span{display:inline}.hero-grid{grid-template-columns:repeat(var(--grid-columns), minmax(0, 1fr));column-gap:var(--grid-gutter);margin-top:var(--space-7);align-items:start;display:grid}.hero-text,.hero-side{grid-column:1/-1}.hero-keys{margin-top:var(--space-7)}.hero .key{flex:0 auto}}@media (min-width:1024px){.hero-text{grid-column:1/8}.hero-side{grid-column:9/13;margin-top:0}}@media (prefers-reduced-motion:no-preference) and (scripting:enabled){.hero-name{animation:hero-name-set var(--dur-hero) var(--ease-settle) 80ms backwards}.hero-fade{animation:hero-fade-in var(--dur-slow) var(--ease-out) backwards;animation-delay:calc(.36s + var(--i,0) * var(--stagger))}body:has(.hero) .site-header .brand .lamp{animation:hero-lamp-on var(--dur-slow) var(--ease-out) .76s backwards}}@keyframes hero-name-set{0%{opacity:0;font-stretch:100%}to{font-stretch:var(--wdth-display);opacity:1}}@keyframes hero-fade-in{0%{opacity:0}}@keyframes hero-lamp-on{0%{background-color:var(--color-border);box-shadow:0 0 0 1.5px var(--color-lamp-ring), 0 0 0 0 transparent}55%{background-color:var(--color-signal);box-shadow:0 0 0 1.5px var(--color-lamp-ring), 0 0 0 8px color-mix(in srgb, var(--color-signal) 28%, transparent)}to{background-color:var(--color-signal);box-shadow:0 0 0 1.5px var(--color-lamp-ring), 0 0 0 0 transparent}}.hero-runway,.hero-skip{display:none}@media (prefers-reduced-motion:no-preference) and (scripting:enabled){.hero{--hero-pad:var(--space-8);--name-lines:2;--headshot-block:0px;--content-width:min(100cqi - 2 * var(--page-margin), var(--content-max));--s0:min(1.28, tan(atan2(var(--content-width), 3.41 * var(--type-display))));--ty0:calc(50svh - var(--header-height) - var(--hero-pad) - var(--headshot-block) - var(--type-display) * var(--leading-display) * var(--name-lines) / 2);padding-top:0;overflow-x:clip}.hero:has(.hero-headshot){--headshot-block:calc(80px + var(--space-5))}.hero-stage{top:var(--header-height);padding-top:var(--hero-pad);position:sticky;container-type:inline-size}.hero-stage>.container{position:relative}.hero-runway{height:60svh;display:block}.hero-name-wrap{transform-origin:0;transform:translateY(calc((1 - var(--p,0)) * var(--ty0))) scale(calc(var(--s0) + (1 - var(--s0)) * var(--p,0)))}.hero-grid{transform:translateY(calc((1 - var(--p,0)) * (var(--ty0) + 48px)))}.hero-headshot,.hero-fade{opacity:clamp(0, calc((var(--p,0) - .3) / .7), 1)}.hero-skip{top:calc(100vh - var(--header-height) - var(--hero-pad) - 80px);top:calc(100svh - var(--header-height) - var(--hero-pad) - 80px);left:var(--page-margin);border:var(--key-border) solid var(--color-key-border);width:48px;height:48px;color:var(--color-text);opacity:clamp(0, calc(1 - var(--p,0) * 4), 1);border-radius:50%;place-items:center;display:inline-grid;position:absolute}.hero-keys:focus-within,.index-plate:focus-within{opacity:1!important}@media (min-width:720px){.hero{--hero-pad:var(--space-9);--name-lines:1;--s0:min(1.25, tan(atan2(var(--content-width), 5.83 * var(--type-display))))}.hero:has(.hero-headshot){--headshot-block:calc(112px + var(--space-6))}}@media (min-width:1024px){.hero{--s0:min(1.45, tan(atan2(var(--content-width), 5.83 * var(--type-display))))}}@supports (animation-timeline:scroll()){.hero-name-wrap,.hero-grid,.hero-headshot,.hero-skip{animation-timing-function:linear;animation-fill-mode:both;animation-timeline:scroll(root);animation-range:0 60svh}.hero-name-wrap{animation-name:hero-shrink-name}.hero-grid{animation-name:hero-shrink-rise}.hero-headshot{animation-name:hero-shrink-fade-in}.hero-skip{animation-name:hero-shrink-cue-out}.hero-fade{animation:hero-fade-in var(--dur-slow) var(--ease-out) backwards, hero-shrink-fade-in linear both;animation-delay:calc(.36s + var(--i,0) * var(--stagger)), 0s;animation-timeline:auto,scroll(root);animation-range:normal,0 60svh}}}@keyframes hero-shrink-name{0%{transform:translateY(var(--ty0)) scale(var(--s0))}to{transform:none}}@keyframes hero-shrink-rise{0%{transform:translateY(calc(var(--ty0) + 48px))}to{transform:none}}@keyframes hero-shrink-fade-in{0%,30%{opacity:0}to{opacity:1}}@keyframes hero-shrink-cue-out{0%{opacity:1}25%,to{opacity:0}}
.x-card{gap:var(--space-4);min-width:0;padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-media);flex-direction:column;display:flex}.exhibit .x-card{transition-property:transform,box-shadow,border-color;transition-duration:var(--dur-base);transition-timing-function:var(--ease-out)}@media (hover:hover){.exhibit:hover .x-card{border-color:var(--color-border-strong);box-shadow:var(--ledge-raised)}}@media (hover:hover) and (prefers-reduced-motion:no-preference){.exhibit:hover .x-card{transform:translateY(var(--lift))}}.x-card-head{align-items:center;gap:var(--space-3);min-width:0;display:flex}.x-card-avatar{border-radius:var(--radius-round);flex:none;width:40px;height:40px}.x-card-byline{flex-direction:column;flex:1;min-width:0;display:flex}.x-card-name{font-size:var(--type-label);font-weight:var(--weight-label);line-height:var(--leading-label)}.x-card-meta{color:var(--color-text-subtle);font-size:var(--type-small);line-height:var(--leading-small);overflow-wrap:anywhere}.x-card-text{white-space:pre-line;overflow-wrap:anywhere;margin:0;line-height:1.55}.x-card-text-link{text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--color-border-strong);text-decoration-color:var(--color-border-strong);text-underline-offset:.2em}.x-card-text-link:hover{text-decoration-color:currentColor;text-decoration-thickness:2px}.x-card-media{gap:var(--space-2);display:grid}.x-card-media img{border-radius:var(--radius-input);background:var(--color-sunken);width:100%;height:auto;display:block}.x-card-media-2,.x-card-media-3,.x-card-media-4{grid-template-columns:repeat(2,1fr)}.x-card-media-2 img,.x-card-media-3 img,.x-card-media-4 img{aspect-ratio:1;object-fit:cover}.x-card-view{font-size:var(--type-label);align-self:flex-start;margin-top:auto}
.text-link{color:var(--color-text);transition:text-decoration-color var(--dur-fast) var(--ease-standard), text-decoration-thickness var(--dur-fast) var(--ease-standard)}.key-icon{width:40px;height:40px;padding:0}.car-keys .key:active{transform:translateY(2px);box-shadow:0 0 #0000}.car-keys .key[aria-disabled=true]{background:var(--color-sunken);color:var(--color-text-subtle);border-color:var(--color-border);box-shadow:none;cursor:default;transform:none}.icon-key{width:18px;height:18px}.head-links{gap:var(--space-3) var(--space-5);flex-wrap:wrap;display:flex}.carousel{margin-top:var(--space-6)}.car-track{gap:var(--space-4);scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;outline:none;padding-bottom:4px;display:flex;overflow-x:auto}.car-track::-webkit-scrollbar{display:none}.car-track:after{content:"";flex:0 0 calc(14% - var(--space-4))}.post{scroll-snap-align:start;flex:0 0 86%;display:flex}.post-card{flex:1;min-height:280px}.post-text{overflow-wrap:anywhere;line-height:1.55}.post-link{font-size:var(--type-label);align-self:flex-start}.car-controls{justify-content:space-between;align-items:center;gap:var(--space-4);margin-top:var(--space-4);display:flex}.car-controls[hidden]{display:none}.car-pos{color:var(--color-text-muted);font-size:var(--type-small);font-variant-numeric:tabular-nums}.car-keys{gap:var(--space-2);display:flex}.stale-notice{align-items:flex-start;gap:var(--space-2);margin-top:var(--space-4);color:var(--color-text-muted);font-size:var(--type-small);line-height:1.5;display:flex}.icon-notice{flex:none;width:16px;height:16px;margin-top:.2em}.state-disc{border-radius:var(--radius-round);background:var(--color-sunken);place-items:center;width:56px;height:56px;display:grid}.icon-disc{width:24px;height:24px}.empty-links{justify-content:center;gap:var(--space-3) var(--space-5);flex-wrap:wrap;display:flex}.big-links{justify-items:start;gap:var(--space-4);margin-top:var(--space-7);display:grid}.big-links .big-link{margin-top:0}@media (min-width:720px){.car-track{gap:var(--space-5)}.car-track:after{display:none}.post{flex-basis:calc((100% - var(--space-5)) / 2)}}@media (min-width:1024px){.post{flex-basis:calc((100% - 2 * var(--space-5)) / 3)}.car-controls{justify-content:flex-end}}
.project-links{align-items:center;gap:var(--space-3);margin-top:var(--space-6);flex-wrap:wrap;display:flex}.project-links .key{flex:auto}.project-links .key-primary{flex-basis:100%}.project-links .key svg{flex:none;width:18px;height:18px}.project-links .project-key-ghost{box-shadow:none;text-decoration:underline;-webkit-text-decoration-color:var(--color-border-strong);text-decoration-color:var(--color-border-strong);text-underline-offset:.25em;background:0 0;border-color:#0000;flex:0 auto;padding:0 6px}.project-links .project-key-ghost:hover{-webkit-text-decoration-color:var(--color-text);text-decoration-color:var(--color-text);background:0 0}.project-links .project-key-ghost:active{transform:none}@media (min-width:720px){.project-links .key,.project-links .key-primary{flex:0 auto}}
