:root{--step--1: clamp(.82rem, .79rem + .14vw, .9rem);--step-0: clamp(1rem, .96rem + .2vw, 1.12rem);--step-1: clamp(1.2rem, 1.12rem + .38vw, 1.45rem);--step-2: clamp(1.5rem, 1.36rem + .7vw, 2rem);--step-3: clamp(2.1rem, 1.7rem + 2vw, 3.6rem);--font-sans: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, "Helvetica Neue", Arial, sans-serif;--font-serif: ui-serif, "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--measure: 66ch;--gutter: clamp(1.25rem, 5vw, 3.5rem);--band-gap: clamp(3.5rem, 9vw, 7rem);--radius: 4px;--bg: #f7f6f3;--bg-raise: #fffefb;--ink: #16181c;--ink-soft: #4a4f58;--ink-faint: #878d97;--rule: #e0ddd6;--rule-soft: #ebe8e1;--accent: #8c4a1f;--accent-bg: #f0e7df;--focus: #1a5fb4;--shadow: 0 1px 2px rgb(22 24 28 / .04), 0 8px 24px -12px rgb(22 24 28 / .12)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #111214;--bg-raise: #17191c;--ink: #e9e7e2;--ink-soft: #a8adb6;--ink-faint: #71767f;--rule: #2a2d32;--rule-soft: #212429;--accent: #e0a173;--accent-bg: #241b14;--focus: #7cb0ff;--shadow: 0 1px 2px rgb(0 0 0 / .3), 0 8px 24px -12px rgb(0 0 0 / .6)}}:root[data-theme=dark]{--bg: #111214;--bg-raise: #17191c;--ink: #e9e7e2;--ink-soft: #a8adb6;--ink-faint: #71767f;--rule: #2a2d32;--rule-soft: #212429;--accent: #e0a173;--accent-bg: #241b14;--focus: #7cb0ff;--shadow: 0 1px 2px rgb(0 0 0 / .3), 0 8px 24px -12px rgb(0 0 0 / .6)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5.5rem}html{background:var(--bg)}body{margin:0;color:var(--ink);font-family:var(--font-sans);font-size:var(--step-0);line-height:1.6;font-synthesis-weight:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}h1,h2,h3{line-height:1.15;text-wrap:balance;margin:0;font-weight:600}p{margin:0 0 1em;text-wrap:pretty}p:last-child{margin-bottom:0}ul,ol,dl,dd{margin:0;padding:0}li{list-style:none}strong{font-weight:640;color:var(--ink)}abbr[title]{text-decoration:none}a{color:inherit;text-decoration-color:color-mix(in oklab,var(--accent) 55%,transparent);text-decoration-thickness:1px;text-underline-offset:.22em;transition:color .12s ease,text-decoration-color .12s ease}a:hover{color:var(--accent);text-decoration-color:var(--accent)}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:2px}.skip{position:absolute;left:-9999px;top:0;z-index:10;padding:.7em 1.1em;background:var(--bg-raise);border:1px solid var(--rule);border-radius:var(--radius);text-decoration:none}.skip:focus{left:var(--gutter);top:.75rem}.shell{max-width:62rem;margin-inline:auto;padding-inline:var(--gutter);padding-block:clamp(1rem,3vw,2rem) clamp(3rem,8vw,6rem)}.dim{color:var(--ink-faint)}.masthead__bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:1rem;margin-inline:calc(var(--gutter) * -1);padding:.7rem var(--gutter);background:color-mix(in oklab,var(--bg) 82%,transparent);backdrop-filter:saturate(1.6) blur(12px);-webkit-backdrop-filter:saturate(1.6) blur(12px);border-bottom:1px solid transparent;transition:border-color .2s ease}.masthead__bar[data-stuck]{border-bottom-color:var(--rule)}.mark{font-family:var(--font-mono);font-size:var(--step--1);font-weight:600;letter-spacing:.08em;padding:.25em .5em;border:1px solid var(--rule);border-radius:var(--radius);color:var(--ink-soft)}.tabs{display:flex;gap:clamp(.6rem,2vw,1.4rem);margin-inline-start:auto;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs a{font-size:var(--step--1);color:var(--ink-faint);text-decoration:none;white-space:nowrap;padding-block:.2em;border-bottom:1.5px solid transparent}.tabs a:hover{color:var(--ink)}.tabs a[aria-current=true]{color:var(--ink);border-bottom-color:var(--accent)}.theme{flex:none;font:inherit;font-size:var(--step--1);color:var(--ink-faint);background:none;border:1px solid var(--rule);border-radius:var(--radius);padding:.3em .7em;cursor:pointer;transition:color .12s ease,border-color .12s ease}.theme:hover{color:var(--ink);border-color:var(--ink-faint)}.lang{text-decoration:none;margin-left:-.5rem}@media(max-width:36rem){.masthead__bar{flex-wrap:wrap;row-gap:.5rem}.theme:not(.lang){margin-inline-start:auto}.tabs{order:1;flex:1 0 100%;justify-content:space-between;margin-inline-start:0;overflow:visible}.tabs:empty{display:none}}.eyebrow{font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin:clamp(3rem,12vw,7rem) 0 0}.eyebrow+.name{margin-top:.6rem}.name{font-family:var(--font-serif);font-size:var(--step-3);font-weight:500;letter-spacing:-.02em;margin-top:clamp(3rem,12vw,7rem)}.role{font-size:var(--step-1);color:var(--ink-soft);margin:.45em 0 0}@media(max-width:30rem){.role .sep{display:none}.role__b{display:block}}.meta{font-size:var(--step--1);color:var(--ink-faint);margin:1.1em 0 0;letter-spacing:.01em}.lede{font-family:var(--font-serif);font-size:var(--step-1);line-height:1.55;max-width:var(--measure);margin-top:clamp(1.75rem,4vw,2.75rem);color:var(--ink)}.contact{display:flex;flex-wrap:wrap;gap:.5rem 1.75rem;margin-top:1.75rem;font-size:var(--step--1);font-family:var(--font-mono);color:var(--ink-soft)}.figures{margin-top:var(--band-gap);padding-block:clamp(1.75rem,4vw,2.5rem);border-block:1px solid var(--rule)}.figures dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(6.5rem,1fr));gap:clamp(1.25rem,3vw,2rem)}.figures dt{text-wrap:balance;font-size:var(--step--1);color:var(--ink-faint);line-height:1.35;order:2;margin-top:.35em}.figures div{display:flex;flex-direction:column}.figures dd{order:1;margin:0;display:flex;align-items:baseline;gap:.1em}.num{font-family:var(--font-serif);font-size:var(--step-2);font-weight:500;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.unit{font-size:var(--step-0);color:var(--ink-soft)}.band{margin-top:var(--band-gap)}.band__title{font-family:var(--font-serif);font-size:var(--step-2);font-weight:500;letter-spacing:-.015em;margin-bottom:clamp(1.75rem,4vw,2.5rem);padding-bottom:.5rem;border-bottom:1px solid var(--rule)}.cards{display:grid;gap:clamp(1rem,2.5vw,1.5rem);grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr))}.card{background:var(--bg-raise);border:1px solid var(--rule);border-radius:var(--radius);padding:clamp(1.25rem,3vw,1.85rem);box-shadow:var(--shadow);display:flex;flex-direction:column}.card h3{font-size:var(--step-1);margin-bottom:.75em;color:var(--ink)}.card p{color:var(--ink-soft)}.card__so{margin-top:auto;padding-block-start:1em;padding-top:.9em;border-top:1px solid var(--rule-soft);font-size:var(--step--1);color:var(--ink-faint)}.card:first-child{grid-column:1 / -1}.card:first-child p{max-width:var(--measure)}.record{display:grid;gap:0;counter-reset:rec}.record>li{display:grid;grid-template-columns:3rem 1fr;gap:0 1rem;padding-block:clamp(1.25rem,3vw,1.85rem);border-top:1px solid var(--rule-soft);counter-increment:rec}.record>li:first-child{border-top:0;padding-top:0}.record>li:before{content:counter(rec,decimal-leading-zero);font-family:var(--font-mono);font-size:var(--step--1);color:var(--accent);padding-top:.25em}.record h3,.record>li>p{grid-column:2}.record h3{font-size:var(--step-1);margin-bottom:.5em}.record>li>p{color:var(--ink-soft);max-width:var(--measure)}@media(max-width:34rem){.record>li{grid-template-columns:1fr}.record h3,.record>li>p{grid-column:1}}.fit dl{display:grid;gap:0}.fit dl>div{display:grid;grid-template-columns:minmax(7rem,13rem) 1fr;gap:.35rem 2rem;padding-block:1.1rem;border-top:1px solid var(--rule-soft)}.fit dl>div:first-child{border-top:0;padding-top:0}.fit dt{font-size:var(--step--1);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);padding-top:.25em}.fit dd{color:var(--ink-soft);max-width:var(--measure)}@media(max-width:40rem){.fit dl>div{grid-template-columns:1fr}}.history{display:grid;gap:0}.job{padding-block:clamp(1.25rem,3vw,1.85rem);border-top:1px solid var(--rule-soft)}.job:first-child{border-top:0;padding-top:0}.job__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.25rem 1.5rem;margin-bottom:.9em}.job__head h3{font-size:var(--step-1)}.job__when{margin:0;font-family:var(--font-mono);font-size:var(--step--1);color:var(--ink-faint);white-space:nowrap}@media(max-width:23rem){.job__when{white-space:normal}}.job__what{color:var(--ink-soft);max-width:var(--measure)}.job ul{display:grid;gap:1.1rem;margin-top:1.25rem}.job li{color:var(--ink-soft);max-width:var(--measure);padding-left:1rem;border-left:2px solid var(--accent-bg)}.job .years{font-family:var(--font-mono);font-size:var(--step--1);color:var(--ink-faint);margin-left:.5em}.job--quiet .job__head h3{font-size:var(--step-0);color:var(--ink-faint)}.job--quiet .job__what{font-size:var(--step--1)}.stack{display:grid;gap:clamp(1.5rem,3vw,2rem);grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr))}.stack h3{font-size:var(--step--1);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);padding-bottom:.6rem;margin-bottom:.9rem;border-bottom:1px solid var(--rule-soft)}.stack ul{display:grid;gap:.5rem}.stack li{font-size:var(--step--1);color:var(--ink-soft);line-height:1.45}.band--end .close{font-family:var(--font-serif);font-size:var(--step-1);max-width:var(--measure);color:var(--ink)}.cta{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.75rem}.btn{display:inline-block;padding:.7em 1.3em;border:1px solid var(--ink);border-radius:var(--radius);background:var(--ink);color:var(--bg);font-size:var(--step--1);text-decoration:none;transition:opacity .12s ease,background .12s ease,color .12s ease}.btn:hover{opacity:.85;color:var(--bg)}.btn--ghost{background:none;color:var(--ink);border-color:var(--rule)}.btn--ghost:hover{border-color:var(--ink);color:var(--ink);opacity:1}.foot{margin-top:var(--band-gap);padding-top:1.75rem;border-top:1px solid var(--rule);font-size:var(--step--1);color:var(--ink-faint)}.foot p{margin-bottom:.4em}@media(prefers-reduced-motion:no-preference){.reveal{opacity:0;transform:translateY(12px);transition:opacity .6s cubic-bezier(.22,1,.36,1),transform .6s cubic-bezier(.22,1,.36,1)}.reveal[data-shown]{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}@page{margin:16mm 14mm}@media print{:root,:root:not([data-theme=light]),:root[data-theme=dark],:root[data-theme=light]{--bg: #fff;--bg-raise: #fff;--ink: #000;--ink-soft: #222;--ink-faint: #555;--rule: #bbb;--rule-soft: #ddd;--accent: #000;--accent-bg: #ddd;--shadow: none;--band-gap: 1.6rem;--gutter: 0}html{font-size:10.5pt}body{background:#fff;color:#000}.masthead__bar,.theme,.skip,.cta,.bg,.strata,.daemon{display:none!important}:root[data-look] body:before,:root[data-look] body:after{display:none!important}:root[data-look] body{background:#fff!important;text-shadow:none!important}:root[data-look] .name:after{display:none!important}:root[data-look] .card,:root[data-look] .figures dl{transform:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:#fff!important}:root[data-look] .card:before,:root[data-look] .card:after{display:none!important}:root[data-look] .band__title:before,:root[data-look] .band__title:after{display:none!important}:root[data-look] .name{background:none!important;-webkit-text-fill-color:#000!important;color:#000!important}:root[data-look] body,:root[data-look] .name,:root[data-look] .role,:root[data-look] .lede,:root[data-look] .band__title,:root[data-look] .band--end .close,:root[data-look] .num,:root[data-look] .card h3,:root[data-look] .record h3,:root[data-look] .job__head h3{font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,Helvetica Neue,Arial,sans-serif!important;text-transform:none!important;letter-spacing:normal!important;font-weight:600}:root[data-look] .name,:root[data-look] .lede,:root[data-look] .band__title,:root[data-look] .band--end .close{font-family:ui-serif,Iowan Old Style,Georgia,Times New Roman,serif!important;font-weight:500}:root[data-look] body,:root[data-look] .card p,:root[data-look] .record p,:root[data-look] .fit dd,:root[data-look] .job__what{font-weight:400}.shell{max-width:none;padding:0}.eyebrow{display:none}.name{margin-top:0;font-size:22pt}.role{font-size:12pt}.lede,.close{font-size:11pt}.band__title{font-size:13pt}.card h3,.record h3,.job__head h3{font-size:11.5pt}.card{box-shadow:none;border:0;border-top:1px solid var(--rule-soft);padding:.6rem 0 0}.cards{gap:.9rem;grid-template-columns:1fr 1fr}.card:first-child{grid-column:1 / -1}.card__so{border-top:0;padding-top:.3em;font-style:italic}.figures{padding-block:.8rem}.num{font-size:15pt}.card,.record>li,.job,.fit dl>div,.stack>div{break-inside:avoid}.band__title{break-after:avoid}section{break-inside:auto}a{text-decoration:none;color:#000}.reveal{opacity:1!important;transform:none!important}}.sentinel{position:absolute;top:0;width:1px;height:1px}@media(prefers-reduced-motion:no-preference){.reveal:nth-child(1){transition-delay:0ms}.reveal:nth-child(2){transition-delay:45ms}.reveal:nth-child(3){transition-delay:90ms}.reveal:nth-child(4){transition-delay:135ms}.reveal:nth-child(n+5){transition-delay:.18s}}.bg{position:fixed;inset:0;z-index:-1;display:block;width:100%;height:100%;pointer-events:none;opacity:0;transition:opacity .9s ease}.bg[data-ready]{opacity:1}.strata{margin:0 0 clamp(2rem,5vw,3rem);border:1px solid var(--rule-soft);border-radius:var(--radius);overflow:hidden;background:var(--bg-raise)}.strata[hidden]{display:none}.strata__svg{display:block}.stratum{cursor:default;outline:none}.stratum__fill{fill:transparent;transition:fill .2s ease}.stratum:hover .stratum__fill,.stratum.is-open .stratum__fill{fill:var(--accent-bg)}.stratum:focus-visible .stratum__fill{stroke:var(--focus);stroke-width:1}.stratum__edge{fill:none;stroke:var(--olive, var(--accent));stroke-opacity:.4;stroke-width:1}.stratum__edge--index{stroke-opacity:.75;stroke-width:1.5}.stratum__label{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;fill:var(--olive, var(--accent))}.stratum__elev{font-family:var(--font-mono);font-size:10px;fill:var(--ink-faint)}.stratum__members{font-family:var(--font-sans);font-size:13px;fill:var(--ink-faint)}.stratum__gloss{font-family:var(--font-serif);font-style:italic;font-size:14px;fill:var(--ink-soft)}.stratum.is-open .stratum__label{fill:var(--accent)}.stratum.is-open .stratum__members{font-size:15px;fill:var(--ink)}.stratum.is-open .stratum__elev{fill:var(--ink-soft)}.strata__caption{padding:.55rem .9rem;border-top:1px solid var(--rule-soft);font-family:var(--font-mono);font-size:var(--step--1);color:var(--ink-faint)}@media(prefers-reduced-motion:reduce){.stratum__fill{transition:none}}.daemon{position:fixed;left:0;bottom:clamp(.25rem,1.5vw,.75rem);width:max-content;transform:translate3d(var(--dx, 0px),0,0);will-change:transform;z-index:8;display:flex;align-items:flex-end;pointer-events:none}.daemon__body{pointer-events:auto;display:block;padding:.2rem;background:none;border:1px solid transparent;border-radius:10px;cursor:pointer;transition:border-color .16s ease}.daemon__body:hover{border-color:var(--rule)}.bot{display:block;width:52px;height:52px;overflow:visible}.daemon__close{pointer-events:auto;align-self:flex-start;font:inherit;font-size:.75rem;line-height:1;padding:.15rem .35rem;background:var(--bg);border:1px solid transparent;border-radius:999px;color:var(--ink-faint);cursor:pointer;opacity:0;transition:opacity .16s ease,color .16s ease}.daemon:hover .daemon__close,.daemon__close:focus-visible{opacity:1}.daemon__close:hover{color:var(--ink);border-color:var(--rule)}.bot__all{transform-box:fill-box;transform-origin:50% 100%;transition:transform .12s ease}.bot__head,.bot__antenna line,.bot__leg,.bot__mouth,.bot__flat,.bot__happy,.bot__x{stroke:var(--ink);stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round}.bot__head{fill:var(--bg)}.bot__mouth,.bot__flat,.bot__happy,.bot__x{fill:none}.bot__ring{fill:none;stroke:var(--cv-index, var(--rule));stroke-width:1px}.bot__tip{fill:var(--accent)}.bot__eye{fill:var(--ink);transform-box:fill-box;transform-origin:center;transition:transform .12s ease,translate .12s ease}.bot__leg{transition:transform 80ms ease}.bot__z{font:700 9px/1 var(--font-sans);fill:var(--ink-faint)}.bot__happy,.bot__x,.bot__flat,.bot__z{display:none}.daemon[data-face=l] .bot__eye{translate:-2.2px 0}.daemon[data-face=r] .bot__eye{translate:2.2px 0}.daemon[data-pose=peer] .bot__eye{translate:none;transform:translateY(-3px)}.daemon[data-pose=perk] .bot__eye{translate:none;transform:scale(1.45)}.daemon[data-pose=blink] .bot__eye,.daemon[data-pose=doze] .bot__eye{transform:scaleY(.14)}.daemon[data-pose=happy] .bot__eye{display:none}.daemon[data-pose=happy] .bot__happy{display:inline}.daemon[data-pose=doze] .bot__mouth,.daemon[data-pose=dizzy] .bot__mouth,.daemon[data-pose=dizzy] .bot__eye{display:none}.daemon[data-pose=doze] .bot__flat,.daemon[data-pose=dizzy] .bot__flat,.daemon[data-pose=dizzy] .bot__x,.daemon[data-pose=doze] .bot__z{display:inline}.daemon[data-dozing] .bot{opacity:.6}.daemon[data-step="1"] .bot__leg--l,.daemon[data-step="2"] .bot__leg--r{transform:translateY(-2.6px)}.daemon[data-step="1"] .bot__all,.daemon[data-step="2"] .bot__all{transform:translateY(-1px)}@media(prefers-reduced-motion:no-preference){.daemon[data-trick=hop] .bot__all{animation:bot-hop .6s cubic-bezier(.3,.7,.4,1)}.daemon[data-trick=flip] .bot__all{transform-origin:50% 50%;animation:bot-flip .8s cubic-bezier(.4,.1,.3,1)}.daemon[data-trick=wave] .bot__antenna{transform-box:fill-box;transform-origin:50% 100%;animation:bot-wave .45s ease-in-out 3}.daemon[data-pose=dizzy] .bot__all{animation:bot-wobble .5s ease-in-out 2}.daemon[data-pose=doze] .bot__z{animation:bot-zz 2.4s ease-in-out infinite}@keyframes bot-hop{0%,to{transform:translateY(0)}40%{transform:translateY(-22px)}70%{transform:translateY(0) scaleY(.9)}}@keyframes bot-flip{0%{transform:translateY(0) rotate(0)}45%{transform:translateY(-26px) rotate(180deg)}to{transform:translateY(0) rotate(360deg)}}@keyframes bot-wave{0%,to{transform:rotate(0)}50%{transform:rotate(28deg)}}@keyframes bot-wobble{0%,to{transform:rotate(0)}25%{transform:rotate(-10deg)}75%{transform:rotate(10deg)}}@keyframes bot-zz{0%{opacity:0;transform:translateY(4px)}30%{opacity:1}to{opacity:0;transform:translate(6px,-8px)}}}
