:root{color-scheme:dark;--paper:#1e1a17;--ink:#ece7df;--muted:#a59e94;--rule:#3a352f;--accent:#f0907f;--glow:#f2a65a;--sky-top:#0e1430;--sky-mid:#262555;--sky-low:#4e2a5a;--haze:#5b2c58;--mono:ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--step--1:clamp(.875rem, .85rem + .1vw, .9375rem);--step-0:clamp(1.0625rem, 1rem + .25vw, 1.1875rem);--step-1:clamp(1.2rem, 1.1rem + .45vw, 1.45rem);--step-2:clamp(1.5rem, 1.25rem + 1vw, 2rem);--step-3:clamp(2.25rem, 1.7rem + 2.4vw, 3.25rem);--column:46rem;--wide:64rem;--gutter:clamp(1.25rem, 5vw, 2.5rem);--ease:cubic-bezier(.2, .7, .2, 1);--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='g' color-interpolation-filters='sRGB'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 .18'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url%28%23g%29'/%3E%3C/svg%3E")}:root[data-theme=light]{color-scheme:light;--paper:#fbfaf7;--ink:#1d1b18;--muted:#615b54;--rule:#e2ddd4;--accent:#9b2226;--glow:#d9822b;--sky-top:#303a62;--sky-mid:#42437a;--sky-low:#6a4378;--haze:#784674}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-serif);font-size:var(--step-0);font-variant-numeric:oldstyle-nums;-webkit-font-smoothing:antialiased;margin:0;line-height:1.6}h1,h2,h3{letter-spacing:-.01em;text-wrap:balance;margin:0;font-weight:600;line-height:1.2}h3{font-size:var(--step-0)}p,li{text-wrap:pretty}p{margin:0 0 1em}img,svg{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration-line:underline;text-decoration-color:color-mix(in srgb, var(--accent) 50%, transparent);text-underline-offset:.22em;text-decoration-thickness:1px;transition:color .2s,text-decoration-color .2s}a:hover{color:var(--accent);text-decoration-color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}::selection{background:color-mix(in srgb, var(--accent) 25%, transparent)}.wrap{max-width:calc(var(--column) + 2 * var(--gutter));padding-inline:var(--gutter);margin-inline:auto}.meta{font-family:var(--mono);font-size:var(--step--1);font-variant-numeric:tabular-nums;color:var(--muted);letter-spacing:0}.muted{color:var(--muted)}.small{font-size:1rem;line-height:1.6}.plain{margin:0;padding:0;list-style:none}.inline{flex-wrap:wrap;gap:.25rem 1.25rem;display:flex}.kicker{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:1.5rem;font-size:.9375rem;font-weight:400}.block{margin-top:clamp(3.5rem,9vw,6rem)}.entries{gap:1.75rem;display:grid}.entries.tight{gap:1.1rem}.entry h3+.meta,.entry>.meta:first-child{margin-top:.15rem}.entry p{margin-bottom:.4rem}.columns{grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:2rem 2.5rem;display:grid}.subhead{margin:2.5rem 0 1rem}.more{margin-top:1.75rem}.shot,.photo{margin:1.25rem 0 1.75rem}.shot img,.photo img{border-radius:10px;width:100%;height:auto}.photo img{aspect-ratio:3/2;object-fit:cover;object-position:50% 40%}.shot figcaption,.photo figcaption{font-size:var(--step--1);color:var(--muted);margin-top:.6rem}.shot.placeholder .frame{aspect-ratio:16/9;border:1px dashed var(--rule);background:linear-gradient(color-mix(in srgb, var(--ink) 4%, transparent), transparent);border-radius:10px}.contact{margin-top:clamp(3rem,7vw,4.5rem)}.plain-weight{font-weight:400}.skip{position:absolute;left:-999rem}.skip:focus{z-index:1;background:var(--paper);padding:.5rem .75rem;top:1rem;left:1rem}.site-header{max-width:none;padding-inline:max(var(--gutter), (100% - var(--wide)) / 2);background:var(--grain), var(--sky-top);background-blend-mode:soft-light;grid-template-columns:1fr auto auto;grid-template-areas:"home lang toggle""nav nav nav";align-items:center;gap:.25rem clamp(.75rem,3vw,1.5rem);padding-block:1rem;display:grid}.site-header .home{grid-area:home;justify-self:start}.site-nav{grid-area:nav}.site-header .lang{grid-area:lang}.site-header .theme-toggle{grid-area:toggle}@media (width>=44rem){.site-header{grid-template-columns:auto 1fr auto auto;grid-template-areas:"home nav lang toggle"}.site-nav{justify-self:end}}.site-header a{text-decoration:none}.site-header .home{align-items:center;gap:.6rem;min-height:2.25rem;font-weight:600;display:inline-flex}.mark{fill:none;width:1.75rem;height:1.75rem;stroke:var(--accent);stroke-width:3px;stroke-linecap:round;stroke-dasharray:1 1}.site-nav ul{flex-wrap:wrap;align-items:center;column-gap:clamp(.7rem,3vw,1.25rem);display:flex}@media (width<=24rem){.site-nav ul{justify-content:space-between;column-gap:.5rem}.site-nav .tag{display:none}.site-header .home span{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.site-nav a,.site-header .lang{font-size:var(--step--1);padding-block:.7rem;display:inline-block}.site-nav a[aria-current=page]{text-decoration:underline;text-decoration-color:var(--accent)}.tag{font-family:var(--mono);letter-spacing:.05em;color:var(--muted);font-size:.7em}.lang{color:var(--muted)}.theme-toggle{width:2.75rem;height:2.75rem;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;transition:color .2s;display:none;position:relative}.theme-toggle:before{content:"";border:1px solid var(--rule);border-radius:50%;transition:border-color .2s;position:absolute;inset:.25rem}.theme-toggle:hover:before{border-color:var(--accent)}:root[data-theme-ready] .theme-toggle{display:inline-grid}.theme-toggle:hover{color:var(--accent)}.theme-toggle svg{width:1.1rem;height:1.1rem}.theme-toggle circle{fill:none;stroke:currentColor;stroke-width:1.5px}.theme-toggle path{fill:currentColor}:root:not([data-theme=light]) .theme-toggle svg{transform:rotate(180deg)}.site-footer{flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;padding-block:1.5rem 3rem;display:flex}.site-footer .about{flex-basis:100%}.about summary{cursor:pointer;width:fit-content;text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--accent) 50%, transparent);text-underline-offset:.22em;padding-block:.35rem}.about p{max-width:62ch;margin-top:.5rem}.site-footer p{margin:0}.site-header,.band,.sky-body,.site-footer{--ink:#f7f0e8;--muted:#c9bdd3;--accent:#ffb38f;--rule:#ffffff2e;color:var(--ink)}:root[data-theme=light] :is(.site-header,.band,.sky-body,.site-footer){--ink:#fbf6f0;--muted:#dbd1e4;--accent:#ffc8a6}.dusk{--hz:clamp(5rem, 12vw, 10rem);background:var(--grain), radial-gradient(50% calc(var(--hz) * .8) at 62% calc(100% - var(--hz) * .7), #ffd08a, #f2894ed9 30%, #c2456a00 75%), linear-gradient(var(--sky-top), var(--sky-mid) 50%, var(--sky-low));background-blend-mode:soft-light, normal, normal}.band{width:min(var(--wide), 100% - 2 * var(--gutter));margin-inline:auto;padding-top:clamp(1rem,4vw,2.5rem)}.horizon{width:100%;height:var(--hz)}.dusk .horizon{margin-top:clamp(1.5rem,4vw,2.5rem)}.nightfall{--hz:clamp(3rem, 6vw, 5.5rem);background:var(--grain), linear-gradient(var(--sky-low), var(--sky-top));background-blend-mode:soft-light, normal;margin-top:clamp(4rem,10vw,7rem)}main{container-type:inline-size}.sky{--hz:clamp(3rem, 6vw, 5.5rem);background:var(--grain), radial-gradient(45% calc(var(--hz) * .6) at var(--glow-x) calc(100% - var(--hz) * .7), #ffd08a, #f2894ed9 30%, #c2456a00 75%), linear-gradient(var(--sky-low), var(--sky-top) 30%, var(--sky-mid) 75%, var(--sky-low));background-blend-mode:soft-light, normal, normal;width:100cqw;margin:clamp(2rem,5vw,3.5rem) calc(50% - 50cqw) 0}.sky-body>:first-child{margin-top:0}.sky-body{padding-block:clamp(.75rem,2vw,1.5rem) clamp(1.5rem,4vw,3rem)}.sky.end{background:var(--grain), linear-gradient(var(--sky-low), var(--sky-mid));background-blend-mode:soft-light, normal}body:has(.sky.end) .nightfall{background:var(--grain), linear-gradient(var(--sky-mid), var(--sky-top));margin-top:0}body:has(.sky.end) .nightfall>.horizon{display:none}.horizon g>path{fill:color-mix(in oklab, var(--haze), var(--paper) calc(var(--t) * 100%));stroke:color-mix(in oklab, #ffd7b5, var(--accent) calc(var(--t) * 100%));stroke-opacity:calc(.85 - .45 * var(--t));stroke-width:1.25px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.horizon.soft g>path{stroke:none}.rule{width:100%;height:clamp(1rem,2.5vw,1.5rem);margin-bottom:clamp(1.5rem,3vw,2.25rem);overflow:visible}.rule path{fill:none;stroke-width:1.25px;stroke-linecap:round;vector-effect:non-scaling-stroke}.rule .glow{stop-color:var(--glow);stop-opacity:.75}.rule .accent{stop-color:var(--accent);stop-opacity:.75}.rule .fade{stop-opacity:0}.hero{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"portrait name""text text";align-items:center;gap:1.25rem;display:grid}.hero h1{letter-spacing:-.02em;grid-area:name;font-size:clamp(1.8rem,1rem + 4vw,3.25rem)}.hero-text{grid-area:text}.portrait{grid-area:portrait}.honorific{letter-spacing:0;color:var(--muted);font-size:.5em;font-weight:400}.hero .meta{margin-bottom:1.4rem}.lede{font-size:var(--step-1);line-height:1.45}.actions{flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;margin:1.75rem 0 1rem;display:flex}.cta{border:1px solid var(--accent);border-radius:999px;padding:.6rem 1.1rem;text-decoration:none;transition:background-color .2s,color .2s;display:inline-block}.cta:hover{background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--ink)}.portrait img{aspect-ratio:1;object-fit:cover;width:clamp(6.5rem,30vw,9rem);box-shadow:0 0 0 1px var(--rule), 0 1.5rem 3rem -1.25rem #000a;border-radius:10px}@media (width>=50rem){.hero{grid-template:"name portrait""text portrait"1fr/minmax(0,1fr) auto;align-items:start;gap:1rem 3rem}.portrait img{width:clamp(14rem,24vw,18rem)}}.project{font-size:clamp(1.5rem,1.2rem + 1vw,2rem)}.page-head{max-width:var(--column);margin-inline:auto}.jump{margin-top:1.25rem}.jump a{padding-block:.45rem;display:inline-block}.page-head h1{font-size:var(--step-3);letter-spacing:-.02em;margin-bottom:1.25rem}.fig{margin:0 0 2.5rem}.fig svg{width:100%;max-width:34rem;overflow:visible}.fig .grid{stroke:var(--rule)}.fig .axis{stroke:var(--muted)}.fig .curve{fill:none;stroke:var(--accent);stroke-width:2.25px;stroke-linejoin:round;stroke-dasharray:1 1}.fig .wash-top{stop-color:var(--accent);stop-opacity:.2}.fig .wash-bottom{stop-color:var(--glow);stop-opacity:0}.fig .peak circle{fill:var(--paper);stroke:var(--accent);stroke-width:2px}.fig text{font-family:var(--mono);fill:var(--muted);font-size:14px}@media (width<=36rem){.fig text{font-size:18px}}.research-lead{align-items:center;gap:1.5rem 2.5rem;display:grid}.research-lead .lede,.fig.compact{margin:0}.fig.compact text{font-size:18px}@media (width>=50rem){.research-lead{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}}.fig figcaption{font-size:var(--step--1);color:var(--muted);margin-top:.75rem}.fig figcaption b{font-family:var(--mono);color:var(--ink);font-weight:400}@media (prefers-reduced-motion:no-preference){.home:hover .mark{animation:.9s ease-in-out draw}.theme-toggle svg{transition:transform .6s cubic-bezier(.65,0,.35,1)}.hero h1,.hero-text>*,.portrait{animation:rise .8s var(--ease) both}.hero-text>:first-child{animation-delay:80ms}.hero-text>:nth-child(2){animation-delay:.16s}.hero-text>:nth-child(3){animation-delay:.24s}.portrait{animation-name:fade;animation-duration:1.2s}.dusk .horizon path:not(:last-of-type){animation:rise 1.4s var(--ease) both;animation-delay:calc(.1s + var(--t) * .6s)}.fig .curve{animation:1.8s ease-in-out .3s both draw}.fig .peak,.fig .wash{animation:.6s 1.9s both fade}@supports (animation-timeline:view()){.reveal{animation:linear both rise view();animation-range:entry entry 40%}.reveal .fig svg{view-timeline-name:--fig}.reveal .fig .curve,.reveal .fig .peak,.reveal .fig .wash{animation-duration:auto;animation-delay:0s;animation-timeline:--fig}.reveal .fig .curve{animation-timing-function:linear;animation-range:entry 10% entry 90%}.reveal .fig .peak,.reveal .fig .wash{animation-range:entry 90%}}}@keyframes rise{0%{opacity:0;transform:translateY(.75rem)}}@keyframes fade{0%{opacity:0}}@keyframes draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@media print{*,:before,:after{animation:none!important}:root,:root[data-theme=light]{color-scheme:light;--paper:#fff;--ink:#000;--muted:#444;--rule:#ccc;--accent:#9b2226}.site-header,.band,.sky-body,:root[data-theme=light] :is(.site-header,.band,.sky-body){--ink:#000;--muted:#444;--rule:#ccc;--accent:#9b2226}.site-header,.dusk,.sky{background:0 0}.dusk{padding-bottom:2rem}.site-nav,.site-header .lang,.nightfall,.skip,.horizon{display:none}a{text-decoration:none}}
