:root{color-scheme:dark;--paper:#151311;--ink:#ece7df;--muted:#a59e94;--rule:#34302b;--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 .3'/%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}*,: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:var(--step--1);line-height:1.55}.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:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:1.5rem;font-size:.75rem;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}.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;grid-template-areas:"home toggle""tools tools";align-items:center;gap:.75rem 1.5rem;padding-block:1.5rem;display:grid}.site-header .home{grid-area:home;justify-self:start}.site-tools{grid-area:tools}.site-header .theme-toggle{grid-area:toggle}@media (width>=44rem){.site-header{grid-template-columns:auto 1fr auto;grid-template-areas:"home tools toggle"}.site-tools{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-tools,.site-tools ul{font-size:var(--step--1);flex-wrap:wrap;align-items:center;gap:.5rem clamp(.85rem,3vw,1.25rem);display:flex}.site-tools 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{border:1px solid var(--rule);width:2.25rem;height:2.25rem;color:var(--ink);cursor:pointer;background:0 0;border-radius:50%;place-items:center;padding:0;transition:color .2s,border-color .2s;display:none}:root[data-theme-ready] .theme-toggle{display:inline-grid}.theme-toggle:hover{color:var(--accent);border-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 .credit{flex-basis:100%}.site-footer p{margin:0}.site-header,.band,.sky-body,.site-footer{--ink:#f7f0e8;--muted:#c9bdd3;--accent:#ffb38f;--rule:#ffffff2e;color:var(--ink)}.dusk{--hz:clamp(7rem, 18vw, 15rem);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(2rem,6vw,4rem)}.nightfall{--hz:clamp(4.5rem, 10vw, 9rem);background:var(--grain), linear-gradient(var(--sky-low), var(--sky-top));background-blend-mode:soft-light, normal;margin-top:clamp(4rem,10vw,7rem)}.flip{transform:scaleY(-1)}main{container-type:inline-size}.sky{--hz:clamp(4.5rem, 10vw, 9rem);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(3.5rem,9vw,6rem) calc(50% - 50cqw) 0}.sky-body{padding-block:clamp(1rem,3vw,2rem) clamp(2rem,6vw,4rem)}.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>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}.rule{width:100%;height:clamp(2.25rem,5vw,3.5rem);margin-bottom:clamp(1.25rem,3vw,2rem)}.rule path{fill:none;stroke:color-mix(in oklab, var(--glow), var(--accent) calc(var(--t) * 100%));stroke-opacity:calc(.4 + .4 * var(--t));stroke-width:1.25px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.hero{grid-template-areas:"portrait""name""text";gap:1.25rem 3rem;display:grid}.hero h1{font-size:var(--step-3);letter-spacing:-.02em;grid-area:name}.hero-text{grid-area:text}.portrait{grid-area:portrait}.honorific{color:var(--muted);font-weight:400}.hero .meta{margin-bottom:1.4rem}.lede{font-size:var(--step-1);line-height:1.45}.hero .links{margin-top:1.5rem}.portrait img{aspect-ratio:1;object-fit:cover;width:min(100%,18rem);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;row-gap:1rem}.portrait img{width:clamp(14rem,24vw,18rem)}}.project{font-size:var(--step-1)}.project+.meta{margin:.2rem 0 1rem}.page-head{max-width:var(--column)}.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}}.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){@view-transition{navigation:auto}.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{--ink:#000;--muted:#444;--rule:#ccc;--accent:#9b2226}.site-header,.dusk,.sky{background:0 0}.dusk{padding-bottom:2rem}.site-tools,.nightfall,.skip,.horizon{display:none}a{text-decoration:none}}
