.hero-graph[data-astro-cid-7ybtft24]{width:100%;height:auto;overflow:visible}.dots[data-astro-cid-7ybtft24] rect[data-astro-cid-7ybtft24]{fill:var(--text-muted);opacity:.5}.line[data-astro-cid-7ybtft24]{fill:none;stroke:var(--line-strong);stroke-width:1px;stroke-dasharray:1;stroke-dashoffset:1px;animation:draw 1.6s var(--ease-out) .5s forwards}.box[data-astro-cid-7ybtft24]{fill:var(--bg);stroke:var(--text);stroke-width:1px}.box[data-astro-cid-7ybtft24].last{fill:var(--text)}text[data-astro-cid-7ybtft24]{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;fill:var(--text);font-size:10px;font-weight:500}.idx[data-astro-cid-7ybtft24]{fill:var(--text-muted)}.node[data-astro-cid-7ybtft24]{opacity:0;animation:fade var(--dur-slow) var(--ease-out) forwards;animation-delay:calc(.6s + var(--i) * .28s)}.packet[data-astro-cid-7ybtft24]{fill:var(--text);opacity:0}.is-moving[data-astro-cid-7ybtft24] .packet[data-astro-cid-7ybtft24]{animation:fade var(--dur-base) linear 1.8s forwards}@keyframes draw{to{stroke-dashoffset:0}}@keyframes fade{to{opacity:1}}.hero[data-astro-cid-ge2uvauf]{gap:var(--space-12);min-height:100svh;padding-top:calc(var(--nav-h) + var(--space-12));padding-bottom:var(--space-6);grid-template-rows:1fr auto;display:grid}.bottom[data-astro-cid-ge2uvauf]{justify-content:space-between;align-items:center;gap:var(--space-4);padding-top:var(--space-6);border-top:1px solid var(--line);flex-wrap:wrap;display:flex}.body[data-astro-cid-ge2uvauf]{align-content:center;row-gap:var(--space-8)}.kicker[data-astro-cid-ge2uvauf]{grid-column:1/-1}.name[data-astro-cid-ge2uvauf]{font:inherit;flex-direction:column;grid-column:1/-1;display:flex}.name[data-astro-cid-ge2uvauf] .last[data-astro-cid-ge2uvauf]{align-self:flex-end;position:relative}.dot[data-astro-cid-ge2uvauf]{background:var(--accent);width:.16em;height:.16em;margin-left:.04em;display:inline-block}.intro[data-astro-cid-ge2uvauf]{gap:var(--space-8);grid-column:1/span 6;display:grid}.lead[data-astro-cid-ge2uvauf]{max-width:34ch}.graph[data-astro-cid-ge2uvauf]{grid-column:9/span 4;align-self:end}.actions[data-astro-cid-ge2uvauf]{gap:var(--space-4);flex-wrap:wrap;display:flex}.scroll[data-astro-cid-ge2uvauf]{color:var(--text);transition:color var(--dur-fast)}.scroll[data-astro-cid-ge2uvauf] span[data-astro-cid-ge2uvauf]{animation:nudge 2s var(--ease-out) infinite;display:inline-block}.scroll[data-astro-cid-ge2uvauf]:hover{color:var(--accent)}.reveal[data-astro-cid-ge2uvauf]{opacity:0;animation:reveal var(--dur-slow) var(--ease-out) forwards;animation-delay:calc(var(--d) * 90ms + .1s);transform:translateY(1.5rem)}@keyframes reveal{to{opacity:1;transform:none}}@keyframes nudge{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}@media (width<=960px){.intro[data-astro-cid-ge2uvauf]{grid-column:1/-1}.graph[data-astro-cid-ge2uvauf]{display:none}}@media (width<=720px){.name[data-astro-cid-ge2uvauf] .last[data-astro-cid-ge2uvauf]{align-self:flex-start}.bottom[data-astro-cid-ge2uvauf] .scroll[data-astro-cid-ge2uvauf]{width:100%}}.about[data-astro-cid-oxgmilyn]{padding-block:var(--space-32)}.head[data-astro-cid-oxgmilyn]{gap:var(--space-8);margin-bottom:var(--space-16);display:grid}.head[data-astro-cid-oxgmilyn] h2[data-astro-cid-oxgmilyn]{max-width:14ch}.intro[data-astro-cid-oxgmilyn]{row-gap:var(--space-12);margin-bottom:var(--space-24)}.photo[data-astro-cid-oxgmilyn]{grid-column:1/span 4}.portrait[data-astro-cid-oxgmilyn]{aspect-ratio:4/5;object-fit:cover;object-position:50% 30%;background:var(--surface);filter:grayscale()contrast(1.15);width:100%;height:auto;transition:filter var(--dur-slow) var(--ease-out)}.photo[data-astro-cid-oxgmilyn]:hover .portrait[data-astro-cid-oxgmilyn]{filter:grayscale(0)contrast()}.text[data-astro-cid-oxgmilyn]{gap:var(--space-6);grid-column:7/span 5;align-content:start;display:grid}.facts[data-astro-cid-oxgmilyn]{gap:var(--space-4);padding-top:var(--space-6);border-top:1px solid var(--line);display:grid}.facts[data-astro-cid-oxgmilyn] div[data-astro-cid-oxgmilyn]{gap:var(--space-4);grid-template-columns:6rem 1fr;display:grid}dd[data-astro-cid-oxgmilyn]{margin:0}.timeline[data-astro-cid-oxgmilyn]{padding:0;list-style:none;position:relative}.timeline[data-astro-cid-oxgmilyn]:before{content:"";background:var(--line-strong);width:1px;position:absolute;top:.6rem;bottom:.6rem;left:3px}.step[data-astro-cid-oxgmilyn]{column-gap:var(--gutter);padding:0 0 var(--space-12) var(--space-8);grid-template-columns:minmax(0,3fr) minmax(0,9fr);display:grid;position:relative}.step[data-astro-cid-oxgmilyn]:last-child{padding-bottom:0}.node[data-astro-cid-oxgmilyn]{background:var(--bg);border:1px solid var(--text);width:7px;height:7px;position:absolute;top:.45rem;left:0}.current[data-astro-cid-oxgmilyn] .node[data-astro-cid-oxgmilyn]{background:var(--accent);border-color:var(--accent)}.period[data-astro-cid-oxgmilyn]{padding-top:.35rem}.body[data-astro-cid-oxgmilyn]{gap:var(--space-2);max-width:60ch;display:grid}.place[data-astro-cid-oxgmilyn]{color:var(--accent-2)}.highlights[data-astro-cid-oxgmilyn]{margin-top:var(--space-3);gap:var(--space-2);padding-left:1.1em;font-size:.95rem;display:grid}@media (width<=960px){.about[data-astro-cid-oxgmilyn]{padding-block:var(--space-24)}.photo[data-astro-cid-oxgmilyn]{grid-column:1/span 6}.text[data-astro-cid-oxgmilyn]{grid-column:1/-1}}@media (width<=720px){.photo[data-astro-cid-oxgmilyn]{grid-column:1/-1;max-width:22rem}.step[data-astro-cid-oxgmilyn]{row-gap:var(--space-2);grid-template-columns:1fr}}.row[data-astro-cid-kvy7xguz]{align-items:baseline;gap:var(--gutter);padding:var(--space-8) 0;border-top:1px solid var(--line-strong);transition:padding var(--dur-base) var(--ease-out);grid-template-columns:4rem 1fr auto 5rem;display:grid;position:relative}.title[data-astro-cid-kvy7xguz]{letter-spacing:-.035em;transition:transform var(--dur-base) var(--ease-out), color var(--dur-fast);font-size:clamp(2rem,4.5vw,3.75rem);font-weight:500}.year[data-astro-cid-kvy7xguz]{text-align:right}.node[data-astro-cid-kvy7xguz]{background:var(--accent);width:7px;height:7px;transition:transform var(--dur-base) var(--ease-out);position:absolute;top:-4px;left:0;transform:scale(0)}.row[data-astro-cid-kvy7xguz]:hover .title[data-astro-cid-kvy7xguz],.row[data-astro-cid-kvy7xguz]:focus-visible .title[data-astro-cid-kvy7xguz]{transform:translateX(var(--space-4));color:var(--accent)}.row[data-astro-cid-kvy7xguz]:hover .node[data-astro-cid-kvy7xguz],.row[data-astro-cid-kvy7xguz]:focus-visible .node[data-astro-cid-kvy7xguz]{transform:scale(1)}@media (width<=720px){.row[data-astro-cid-kvy7xguz]{grid-template-columns:2.5rem 1fr}.role[data-astro-cid-kvy7xguz],.year[data-astro-cid-kvy7xguz]{text-align:left;grid-column:2}}.works[data-astro-cid-rcgqestb]{padding-block:var(--space-32)}.head[data-astro-cid-rcgqestb]{row-gap:var(--space-8);margin-bottom:var(--space-16);align-items:end}.label[data-astro-cid-rcgqestb]{grid-column:1/-1}.title[data-astro-cid-rcgqestb]{grid-column:1/span 7}.intro[data-astro-cid-rcgqestb]{grid-column:9/span 4;max-width:36ch}.count[data-astro-cid-rcgqestb]{grid-column:1/-1}.list[data-astro-cid-rcgqestb]{border-bottom:1px solid var(--line-strong)}@media (width<=960px){.works[data-astro-cid-rcgqestb]{padding-block:var(--space-24)}.title[data-astro-cid-rcgqestb],.intro[data-astro-cid-rcgqestb]{grid-column:1/-1}}.skills[data-astro-cid-2zwc476k]{padding-block:var(--space-32)}.head[data-astro-cid-2zwc476k]{gap:var(--space-8);margin-bottom:var(--space-16);display:grid}.cols[data-astro-cid-2zwc476k],.row[data-astro-cid-2zwc476k]{column-gap:var(--gutter);grid-template-columns:4rem minmax(0,3fr) minmax(0,4fr) minmax(0,4fr);display:grid}.cols[data-astro-cid-2zwc476k]{padding-bottom:var(--space-4)}.row[data-astro-cid-2zwc476k]{padding-block:var(--space-8);border-top:1px solid var(--line-strong);align-items:start;position:relative}.row[data-astro-cid-2zwc476k]:last-child{border-bottom:1px solid var(--line-strong)}.row[data-astro-cid-2zwc476k]:before{content:"";background:var(--accent);width:7px;height:7px;transition:transform var(--dur-base) var(--ease-out);position:absolute;top:-4px;left:0;transform:scale(0)}.row[data-astro-cid-2zwc476k]:hover:before{transform:scale(1)}.idx[data-astro-cid-2zwc476k]{padding-top:.5rem}.area[data-astro-cid-2zwc476k]{transition:color var(--dur-fast)}.row[data-astro-cid-2zwc476k]:hover .area[data-astro-cid-2zwc476k]{color:var(--accent)}.items[data-astro-cid-2zwc476k],.certs[data-astro-cid-2zwc476k]{gap:var(--space-3);padding:0;list-style:none;display:grid}.items[data-astro-cid-2zwc476k]{padding-top:.3rem}.certs[data-astro-cid-2zwc476k] li[data-astro-cid-2zwc476k]{gap:var(--space-1);display:grid}.cert-title[data-astro-cid-2zwc476k]{line-height:1.35}.certs[data-astro-cid-2zwc476k]{padding-top:.3rem}.tools[data-astro-cid-2zwc476k]{column-gap:var(--gutter);row-gap:var(--space-4);margin-top:var(--space-16);grid-template-columns:minmax(0,3fr) minmax(0,9fr);display:grid}.tag-list[data-astro-cid-2zwc476k]{gap:var(--space-2);flex-wrap:wrap;padding:0;list-style:none;display:flex}@media (width<=960px){.skills[data-astro-cid-2zwc476k]{padding-block:var(--space-24)}.cols[data-astro-cid-2zwc476k]{display:none}.row[data-astro-cid-2zwc476k]{row-gap:var(--space-4);grid-template-columns:2.5rem minmax(0,1fr)}.items[data-astro-cid-2zwc476k],.certs[data-astro-cid-2zwc476k]{grid-column:2}.certs[data-astro-cid-2zwc476k]{padding-top:var(--space-4);border-top:1px solid var(--line)}.certs[data-astro-cid-2zwc476k]:has(li.muted){display:none}.tools[data-astro-cid-2zwc476k]{grid-template-columns:1fr}}.text-link[data-astro-cid-twzuq6vf]{transition:background-size var(--dur-base) var(--ease-out), color var(--dur-fast);background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0% 1px;padding-bottom:2px}.text-link[data-astro-cid-twzuq6vf]:hover,.text-link[data-astro-cid-twzuq6vf]:focus-visible{color:var(--accent);background-size:100% 1px}.contact[data-astro-cid-he3spzz3]{padding-top:var(--space-32);padding-bottom:var(--space-6)}.head[data-astro-cid-he3spzz3]{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-12);flex-wrap:wrap;display:flex}.mail[data-astro-cid-he3spzz3]{align-items:flex-end;gap:var(--space-4) var(--space-8);padding-bottom:var(--space-12);border-bottom:1px solid var(--line-strong);flex-wrap:wrap;display:flex}.address[data-astro-cid-he3spzz3]{font-family:var(--font-display);letter-spacing:-.04em;background-image:linear-gradient(var(--accent), var(--accent));transition:color var(--dur-fast), background-size var(--dur-slow) var(--ease-out);background-position:0 100%;background-repeat:no-repeat;background-size:0% 2px;padding-bottom:.08em;font-size:clamp(1.25rem,5vw,5rem);font-weight:500;line-height:1.05}.address[data-astro-cid-he3spzz3]:hover,.address[data-astro-cid-he3spzz3]:focus-visible{color:var(--accent);background-size:100% 2px}.copy[data-astro-cid-he3spzz3]{padding:var(--space-2) var(--space-4);border:1px solid var(--line-strong);color:var(--text-muted);transition:color var(--dur-fast), border-color var(--dur-fast)}.copy[data-astro-cid-he3spzz3]:hover,.copy[data-astro-cid-he3spzz3]:focus-visible{color:var(--text);border-color:var(--text)}.copy[data-astro-cid-he3spzz3].is-done{color:var(--accent);border-color:var(--accent)}.details[data-astro-cid-he3spzz3]{row-gap:var(--space-12);padding-block:var(--space-12) var(--space-24)}.block[data-astro-cid-he3spzz3]{gap:var(--space-4);align-content:start;display:grid}.links[data-astro-cid-he3spzz3]{font-size:var(--fs-lead);grid-column:1/span 4}.link-list[data-astro-cid-he3spzz3]{gap:var(--space-2) var(--space-8);flex-wrap:wrap;padding:0;list-style:none;display:flex}.bottom[data-astro-cid-he3spzz3]{justify-content:space-between;gap:var(--space-4);padding-top:var(--space-6);border-top:1px solid var(--line);flex-wrap:wrap;display:flex}.top-link[data-astro-cid-he3spzz3]{color:var(--text);transition:color var(--dur-fast)}.top-link[data-astro-cid-he3spzz3]:hover{color:var(--accent)}@media (width<=960px){.contact[data-astro-cid-he3spzz3]{padding-top:var(--space-24)}.links[data-astro-cid-he3spzz3]{grid-column:1/-1}}
