:root{--desk:#547076;--recess:#5c6e72;--cream:#ffefae;--sage:#dce3c9;--mist:#c4d9da;--flax:#e5d9b9;--code:#476267;--ink:#304c52;--desk-ink:#ffefae;--quiet:#41585c;--line:rgba(48,76,82,.22);--serif:Georgia,serif;--sans:Arial,sans-serif;--mono:Menlo,Consolas,monospace;color-scheme:light;font-family:var(--sans);font-synthesis:none;scroll-behavior:smooth}*{box-sizing:border-box}body,html{margin:0}body{background:var(--desk);color:var(--desk-ink);-webkit-font-smoothing:antialiased;overflow-wrap:break-word}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{color:inherit;cursor:pointer;border:0;background:none;padding:0}button:disabled{cursor:default;opacity:.4}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid currentColor;outline-offset:5px}a:hover{text-decoration:underline;text-underline-offset:4px}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400}img{display:block;max-width:100%}section[id]{scroll-margin-top:35px}.paper-desk{display:grid;grid-template-columns:minmax(0,1fr)}#paper-lighting{position:-webkit-sticky;position:sticky;top:0;grid-area:1/1;align-self:start;display:block;width:100%;height:100vh;pointer-events:none;z-index:0}.site-content{grid-area:1/1;width:100%;min-height:100vh;display:flex;flex-direction:column;position:relative;z-index:1;max-width:1440px;margin:0 auto;padding:0 clamp(24px,4.7vw,72px)}.site-content>main{flex:1 0 auto}#paper-background{grid-area:1/1;position:relative;align-self:stretch;min-width:0;overflow:hidden;z-index:0;pointer-events:none;background:var(--desk)}#paper-background>.paper-tile{position:absolute;left:0;width:100%;max-width:none;pointer-events:none}#paper-background>.paper-underlay{position:absolute;inset:0}.paper-underlay>div{position:absolute}#paper-bake{grid-area:1/1;position:relative;align-self:stretch;min-width:0;overflow:hidden;z-index:0}#paper-bake,.paper-bake-worker{pointer-events:none;visibility:hidden}.paper-bake-worker{position:absolute;left:0;width:100%}#paper-fallback{grid-area:1/1;position:relative;align-self:stretch;min-width:0;overflow:hidden;z-index:0;pointer-events:none}#paper-fallback>div{position:absolute}#paper-grain{grid-area:1/1;position:relative;align-self:stretch;min-width:0;pointer-events:none}html[data-lighting]:not([data-lighting=unavailable]) #paper-grain{display:none}#paper-background>.paper-grain{position:absolute;inset:0}.paper-grain:after,.paper-grain:before{content:"";position:absolute;inset:0;pointer-events:none}.paper-grain:before{mix-blend-mode:multiply}.paper-grain:after{mix-blend-mode:color-dodge}.paper-grain>div{position:absolute;overflow:hidden}.paper-grain>div>div{position:absolute;inset:0;background-repeat:repeat;background-size:var(--grain-tile) auto}.paper-grain .grain-dark{mix-blend-mode:multiply}.paper-grain .grain-light{mix-blend-mode:color-dodge}[data-paper]{background:var(--surface-color,var(--cream))}html[data-lighting=ready] [data-paper]{background:transparent}.topbar{display:flex;align-items:center;justify-content:flex-end;gap:28px;padding:36px 0 28px;border-bottom:1px solid #ffefae44}.topbar-page{justify-content:space-between}.wordmark{font:30px/1 var(--serif);letter-spacing:-.04em}.wordmark:hover{text-decoration:none}.topbar nav{display:flex;align-items:center;gap:23px;font-size:12px}.lighting-sun{position:relative;flex:0 0 auto;display:grid;place-items:center;width:2.1em;height:2.1em;color:var(--desk-ink);border:1px solid transparent;border-radius:50%;transition:background .15s,border-color .15s}.lighting-sun svg{width:1.5em;height:1.5em}.lighting-sun:after{content:"";position:absolute;inset:-8px}.lighting-sun:hover,.lighting-sun[aria-expanded=true]{background:#ffefae12;border-color:#ffefae55}.lighting-sun:focus-visible{outline-offset:3px}footer.site{display:flex;justify-content:space-between;padding:32px 0 40px;margin-top:65px;border-top:1px solid #ffefae44;font-size:11px}.hero{display:grid;grid-template-columns:1fr .88fr;grid-gap:clamp(36px,6vw,86px);gap:clamp(36px,6vw,86px);padding-top:32px}.hero-intro{grid-column:1;grid-row:1}.hero-popular{grid-column:2;grid-row:1}.intro,.popular{min-height:420px}.popular{padding:28px 30px 22px}.col-label h2,.home-projects-head h2{font:12px/1.4 var(--sans)}.popular .col-label{margin-bottom:34px}.popular-list{display:grid;grid-gap:0;gap:0}.popular-item{display:grid;grid-template-columns:1fr 30px;grid-gap:6px;gap:6px;position:relative;padding:15px 0 21px;min-height:76px}.popular-item:first-child{padding-top:0}.popular-item:not(:last-child):after{content:"";position:absolute;left:0;right:36px;bottom:7px;height:1px;background:#ffefae33}.popular-item .meta{font:10px/1.6 var(--sans);text-align:right;opacity:.65}.popular-item .t{font:clamp(21px,2vw,28px)/1.12 var(--serif);letter-spacing:-.02em}.intro{padding:36px 40px;color:var(--ink)}.intro-name{font:clamp(58px,6.2vw,88px)/.96 var(--serif);letter-spacing:-.055em;max-width:380px;margin:6px 0 28px}.intro-bio{font:clamp(18px,1.8vw,23px)/1.4 var(--serif);max-width:440px}.cta,.intro-cta,.papers-cta,.podcast-cta{display:inline-block;margin-top:25px;font:11px/1.4 var(--sans);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid;padding-bottom:6px}.section-heading{display:flex;justify-content:space-between;gap:24px;margin-bottom:22px;font-size:11px;letter-spacing:.03em}.home-projects{margin-top:64px;padding:34px 40px 30px;color:var(--ink)}.home-projects-head{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-bottom:28px;border-bottom:1px solid var(--line)}.home-feature-body{display:grid;grid-template-columns:1fr 1.05fr;grid-gap:48px;gap:48px;padding:35px 0 38px}.home-feature-text{min-width:0}.home-feature-text .kicker{font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.home-feature-text h1,.home-feature-text h3{font:60px/1 var(--serif);letter-spacing:-.045em;margin:18px 0;overflow-wrap:anywhere}.home-feature-text .tag{font:21px/1.35 var(--serif);margin-bottom:20px}.home-feature-text .desc{font:14px/1.7 var(--sans);max-width:470px}.project-links{list-style:none;margin:24px 0 0;padding:0;display:grid;grid-gap:8px;gap:8px;font:12px/1.5 var(--sans)}.project-links li{display:flex;gap:14px}.project-links .k{min-width:40px;text-transform:uppercase;letter-spacing:.08em;font-size:10px;line-height:18px;opacity:.7}.project-links a{overflow-wrap:anywhere;border-bottom:1px solid}.project-links a:hover{text-decoration:none}.home-feature-code{align-self:start;min-width:0;padding:20px 17px 24px;color:var(--cream)}.home-projects-body{display:grid;grid-template-columns:190px minmax(0,1fr);grid-gap:44px;gap:44px;padding:32px 0 6px}.home-projects-list{align-self:start;display:flex;flex-direction:column}.home-projects-row{display:block;width:100%;padding:11px 0;text-align:left;border-bottom:1px solid var(--line)}.home-projects-row:first-child{padding-top:0}.home-projects-row:last-child{border-bottom:0}.home-projects-row .name{font:19px/1.2 var(--serif)}.home-feature{display:grid}.home-feature>.home-feature-body{grid-area:1/1;padding:0}.home-feature-sizer{visibility:hidden}.home-feature .home-feature-text h3{margin-top:0}.home-feature .home-feature-code{align-self:stretch;min-height:360px}.home-feature-code.is-fixed{position:relative;padding:0}.well-scroll{position:absolute;inset:20px 17px 24px;overflow:auto;overscroll-behavior:contain}.well-scroll .proj-imgblock{height:100%}.well-scroll .proj-imgblock img,.well-scroll .proj-imgblock video{flex:1 1 auto;min-height:0;object-fit:contain}.home-projects-row:hover .name{text-decoration:underline;text-underline-offset:4px}.home-projects-row[aria-pressed=true] .name{font-style:italic}.proj-codeblock-bar{display:flex;justify-content:space-between;gap:12px;font:10px/1.3 var(--sans);border-bottom:1px solid #ffefae33;padding:0 3px 12px;margin-bottom:15px}.proj-codeblock-file{opacity:.65}.proj-codeblock-pre{font:11px/1.8 var(--mono);margin:0;overflow-x:auto;white-space:normal}.proj-codeblock-line{display:flex;white-space:pre}.proj-codeblock-ln{min-width:29px;color:#c4d9da88;-webkit-user-select:none;-moz-user-select:none;user-select:none}.proj-codeblock-code{display:block}.proj-codeblock .tok-kw,.proj-codeblock .tok-num,.proj-codeblock .tok-str{color:inherit}.proj-codeblock .tok-cmt{color:#c4d9da99;font-style:italic}.proj-terminal{font:11px/1.8 var(--mono)}.proj-terminal-bar{display:flex;justify-content:space-between;font:10px/1.3 var(--sans);border-bottom:1px solid #ffefae33;padding:0 3px 12px;margin-bottom:15px}.proj-terminal-dots{display:none}.proj-terminal-body{white-space:pre;overflow-x:auto}.proj-terminal-line{display:flex;gap:10px;align-items:baseline}.proj-terminal-prompt{width:12px;color:var(--sage)}.proj-terminal-out{padding-left:22px}.proj-terminal-muted{color:#c4d9da99}.proj-terminal-caret{display:inline-block;width:7px;height:13px;background:currentColor;vertical-align:-2px;animation:blink 1.05s steps(1) infinite}@keyframes blink{50%{opacity:0}}.proj-imgblock{margin:0;display:flex;flex-direction:column;gap:12px}.proj-imgblock img,.proj-imgblock video{display:block;width:100%;height:auto}.proj-imgblock figcaption{font:11px/1.6 var(--sans);opacity:.8}.proj-imgblock-phone img{max-width:280px;margin:0 auto;border-radius:28px}.proj-archlist,.proj-perftable{margin-top:34px;font:12px/1.5 var(--sans)}.proj-perftable-head,.proj-perftable-row{display:grid;grid-template-columns:minmax(0,1fr) 70px 58px;grid-gap:12px;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}.proj-perftable-head{font-size:10px;text-transform:uppercase;letter-spacing:.08em}.proj-perftable-head span:not(:first-child),.proj-perftable-row span:not(:first-child){text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.proj-perftable-row{font-family:var(--mono);font-size:11px}.proj-perftable-row.is-highlight{font-weight:700}.proj-perftable-caption,.proj-perftable-note{margin-top:10px;font-size:11px;color:var(--quiet)}.proj-perftable-note{font-style:italic}.proj-archlist-title{font-size:10px;text-transform:uppercase;letter-spacing:.08em;padding-bottom:12px;border-bottom:1px solid var(--line)}.proj-archlist-items{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px 24px;gap:16px 24px;padding-top:16px}.proj-archlist-item{display:grid;grid-template-columns:24px 1fr;grid-gap:6px;gap:6px;align-items:baseline}.proj-archlist-num{font-size:10px}.proj-archlist-body b{display:block;font:16px/1.25 var(--serif);font-weight:400;margin-bottom:4px}.proj-archlist-body p{font-size:12px;line-height:1.55;color:var(--quiet)}.podcast-band{margin:60px 0 65px;padding:40px;color:var(--ink)}.green-dark-stock,.green-dark-stock *{color:#ffefae!important}.podcast-band-inner{display:grid;grid-template-columns:1fr 220px;grid-gap:70px;gap:70px;align-items:center}.podcast-text{font:29px/1.3 var(--serif);max-width:670px;letter-spacing:-.02em}.podcast-art{width:220px;height:220px;object-fit:contain}.writing-heading{margin-top:12px}#posts{padding:30px 36px 35px;color:var(--cream)}#posts .col-label{margin-bottom:30px}.posts-list{column-count:2;column-gap:60px}.posts-year-row{display:grid;grid-template-columns:38px minmax(0,1fr);grid-gap:14px;gap:14px;page-break-inside:avoid;break-inside:avoid;padding:13px 0;border-bottom:1px solid #ffefae2b;font:22px/1.2 var(--serif);letter-spacing:-.015em}.posts-year-row .y{font:10px/1.5 var(--sans);opacity:.65;padding-top:3px}.advent{margin-top:65px;color:var(--ink);padding:40px}.advent-wrap{display:grid;grid-template-columns:.75fr 1fr;grid-gap:75px;gap:75px}.advent-intro .kicker{font-size:11px;margin-bottom:23px}.advent-intro h2{font:48px/1.05 var(--serif);letter-spacing:-.04em;margin-bottom:22px;max-width:260px}.advent-intro p{font:17px/1.5 var(--serif);max-width:330px}.advent-item{display:grid;grid-template-columns:30px 1fr;grid-gap:12px;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.advent-item .day{font-size:10px;line-height:1.7}.advent-item b{font:21px/1.2 var(--serif)}.advent-foot{font-size:11px;margin-top:24px}.advent-foot a{text-decoration:underline;text-underline-offset:4px}.reference-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:60px;gap:60px;margin-top:65px}.reference-grid>section{padding:34px 36px 38px;color:var(--ink)}.reference-grid .col-label{margin-bottom:28px}.papers-block>p:first-child{font:26px/1.3 var(--serif);letter-spacing:-.02em}.papers-aside{margin-top:30px;font:12px/1.5 var(--sans);color:var(--quiet)}.papers-aside a{text-decoration:underline}.talks-grid{display:grid}.talk-card{display:flex;flex-direction:column;gap:12px;padding-bottom:22px}.talk-card+.talk-card{padding-top:22px;border-top:1px solid var(--line)}.talk-card b{font:25px/1.15 var(--serif);letter-spacing:-.02em;font-weight:400}.talk-card .play,.talk-card .venue{font:10px/1.4 var(--sans)}.talk-card .play{text-transform:uppercase;letter-spacing:.08em}.talk-card .venue{color:var(--quiet)}.post-page{padding-top:56px}.post-sheet{max-width:880px;margin:0 auto;padding:60px clamp(24px,6vw,72px) 64px;color:var(--ink);--ink-body:var(--ink);--ink-soft:#41585c;--ink-mute:#6c7c74;--rule:rgba(48,76,82,.2);--bg-soft:rgba(48,76,82,.06);--bg-code:rgba(48,76,82,.08);--c-blue:#3c6a7e;--c-cyan:#2f6f6c;--c-lime:#57702b;--c-orange:#a5532c;--c-violet:#66568a;--c-green:#2d7149;--tok-text:#304c52;--tok-comment:#7b8a83;--tok-punctuation:#586b6a;--tok-keyword:#8a4a2c;--tok-string:#4e6a26;--tok-number:#a24e33;--tok-function:#2f6378;--tok-class:#84651c;--tok-operator:#66568a;--tok-property:#4e6a26}.article-head{max-width:680px;margin:0 auto 44px}.article-date{font:11px/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;margin-bottom:22px;opacity:.75}.article-title{font:clamp(38px,5vw,58px)/1.04 var(--serif);letter-spacing:-.035em;text-wrap:balance}.article{max-width:680px;margin:0 auto;font:19px/1.65 var(--serif)}.article ol,.article p,.article ul{margin:0 0 1.25em;color:var(--ink-body)}.article p{text-wrap:pretty}.article strong{font-weight:700}.article em{font-style:italic}.article a{border-bottom:1px solid color-mix(in srgb,currentColor 45%,transparent);padding-bottom:1px}.article a:hover{text-decoration:none;border-bottom-color:currentColor;background:var(--bg-soft)}.article ol,.article ul{padding-left:1.4em}.article li{margin-bottom:.4em}.article li::marker{color:var(--ink-mute)}.article h2{font:400 clamp(26px,3vw,32px)/1.15 var(--serif);letter-spacing:-.02em;margin:2.6em 0 .7em}.article h3{font:400 italic clamp(20px,2vw,23px)/1.25 var(--serif);margin:2.2em 0 .6em}.article h4{font:11px/1.4 var(--sans);letter-spacing:.1em;text-transform:uppercase;margin:2em 0 .6em;color:var(--ink-soft)}.article h1,.article h2,.article h3,.article h4{position:relative;scroll-margin-top:1.5em}.article .heading-anchor{position:absolute;left:-.85em;top:0;padding-right:.35em;border-bottom:none;color:var(--ink-mute);opacity:0;transition:opacity .12s ease-in-out}.article .heading-anchor:focus,.article h1:hover .heading-anchor,.article h2:hover .heading-anchor,.article h3:hover .heading-anchor,.article h4:hover .heading-anchor{opacity:.55}.article .heading-anchor:hover{opacity:1;background:none}.article figure{margin:1.8em 0}.article figure img,.article figure video,.article p>img,.article>img{display:block;width:100%;height:auto}.article figcaption{font:12px/1.5 var(--sans);color:var(--ink-soft);margin-top:8px;text-align:center}.article blockquote{margin:1.8em 0 2.5em;padding:.6em;border-left:2px solid;background-image:linear-gradient(color-mix(in srgb,#476267 10%,transparent),color-mix(in srgb,#476267 10%,transparent));font-style:italic;font-size:21px;line-height:1.5}.article blockquote p{margin:0 0 .6em}.article blockquote p:last-child{margin-bottom:0}.article blockquote cite{display:block;margin-top:10px;font:normal 11px/1.4 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.article code{font-family:var(--mono);font-size:.8em;background:var(--bg-code);padding:1px 5px;border-radius:2px}.article pre{background:var(--bg-code);border:0;border-radius:2px;padding:1.1em;overflow-x:auto;margin:2em 0 1.6em;font:13.5px/1.6 var(--mono)}.article pre code{background:none;padding:0;font-size:inherit}.article hr{border:0;border-top:1px solid var(--rule);margin:2.5em 0}.article .lede:first-letter,.article>p:first-of-type:has(+p):first-letter{font-family:var(--serif);font-size:4.4em;line-height:.88;float:left;padding:.06em .12em 0 0}.article .fn-ref{font:.7em var(--mono);vertical-align:super;border-bottom:0;padding:0 1px}.article hr.fn-rule{margin:3em 0 1.4em}.article .footnotes ol{padding-left:1.2em;font-size:15px}.article .footnotes li{color:var(--ink-soft);margin-bottom:.6em}.article .footnotes a.back{border-bottom:0;margin-left:6px}.article>.bit-table-wrapper{max-width:100%;margin:1.8em 0;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.article>.bit-table-wrapper>table{max-width:none;margin:0}.article table{width:auto;max-width:100%;margin:1.8em 0;border-collapse:collapse;font:13.5px/1.55 var(--mono)}.article table thead{background:var(--bg-soft)}.article table td,.article table th{padding:9px 14px;text-align:left;border-bottom:1px solid var(--rule);border-right:1px solid var(--rule);vertical-align:top}.article table td:last-child,.article table th:last-child{border-right:0}.article table th{font:10.5px/1.4 var(--sans);letter-spacing:.08em;text-transform:uppercase}.article table tr:last-child td{border-bottom:0}.article table code{font-size:.92em}.article details summary{cursor:pointer}.article-foot{max-width:880px;margin:56px auto 0;padding:26px 34px 28px;display:grid;grid-template-columns:1fr 1fr;grid-gap:24px;gap:24px;font:18px/1.3 var(--serif)}.article-foot .label{display:block;font:10px/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px;opacity:.75}.article-foot .next{text-align:right}.page-head{padding:56px 0 44px;max-width:760px}.triplets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:40px;gap:40px;align-items:start}.triplets>section{padding:30px 32px 26px;color:var(--ink)}.triplet-head{font:12px/1.4 var(--sans);margin-bottom:22px}.triplet-item{display:grid;grid-template-columns:1fr auto;grid-gap:14px;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);font:19px/1.25 var(--serif)}.triplet-item:last-child{border-bottom:0}.triplet-item .meta{font:12px/1.6 var(--sans);opacity:.7}.projpage-preface{max-width:760px;padding:56px 0 48px}.projpage-preface-label{display:block;font-size:12px;margin-bottom:22px}.projpage-preface p{font:clamp(19px,1.8vw,23px)/1.45 var(--serif)}.projpage-layout{display:grid;grid-template-columns:minmax(0,1fr) 230px;grid-gap:40px;gap:40px;align-items:start}.projpage-sheet{margin-top:0}.projpage-foot{display:grid;grid-template-columns:1fr 1fr;grid-gap:24px;gap:24px;padding-top:22px;border-top:1px solid var(--line);font:18px/1.3 var(--serif)}.projpage-foot .label{display:block;font:10px/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px;opacity:.75}.projpage-foot .next{text-align:right}.projpage-rail{position:-webkit-sticky;position:sticky;top:24px;padding:24px 24px 18px}.projpage-rail-head{font:12px/1.4 var(--sans);margin-bottom:16px}.projpage-rail ol{list-style:none;margin:0;padding:0}.projpage-rail a{display:block;padding:9px 0;border-top:1px solid var(--line);font:17px/1.2 var(--serif)}.projpage-rail a[aria-current=page] .name{font-style:italic}#paper-settings.lighting-panel{--light-0:#476b70;--light-1:#8c8956;--light-2:#747b9a;--light-3:#8a6f82;--panel-ink:#304c52;position:fixed;inset:66px 22px auto auto;margin:0;width:min(540px,calc(100vw - 36px));max-height:calc(100svh - 88px);overflow:auto;padding:0;border:0;border-radius:18px;background:transparent;color:var(--panel-ink);font:12px/1.4 var(--sans);box-shadow:0 14px 34px rgba(16,30,34,.38),0 2px 5px rgba(16,30,34,.22);overscroll-behavior:contain}.lighting-sheet{--sheet-top:27px;--sheet-side:30px;position:relative;isolation:isolate;padding:var(--sheet-top) var(--sheet-side) 21px;background:#dfe8e5}.lighting-heading{margin:calc(-1 * var(--sheet-top)) calc(-1 * var(--sheet-side)) 0;padding-top:var(--sheet-top);padding-left:var(--sheet-side);padding-right:var(--sheet-side);cursor:-webkit-grab;cursor:grab;touch-action:none}.lighting-heading:active{cursor:-webkit-grabbing;cursor:grabbing}html:not([data-lighting=ready]) #paper-settings.lighting-panel{background:#dfe8e5}#paper-settings.lighting-panel::-webkit-backdrop{background:transparent}#paper-settings.lighting-panel::backdrop{background:transparent}.lighting-panel h2,.lighting-panel h3,.lighting-panel p{margin:0;font-weight:400}.lighting-panel button{color:inherit}.lighting-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:22px}.lighting-heading h2{font:22px/1.2 var(--serif);letter-spacing:-.04em}.lighting-heading p{margin-top:9px;font-size:12px;color:#647574}#close-settings{display:grid;place-items:center;width:28px;height:28px;border:1px solid #304c522b;border-radius:50%}#close-settings:hover{background:#304c5209}.lighting-map-label{display:flex;justify-content:space-between;gap:15px;margin-bottom:10px;font-size:10px}.lighting-map-label>span:first-child{text-transform:uppercase;letter-spacing:.09em}#study-light-pad.lighting-map{position:relative;width:100%;aspect-ratio:2.35;background:transparent;border:0;border-radius:4px;touch-action:none;cursor:crosshair;overflow:hidden}.lighting-page{position:absolute;left:33.333%;top:33.333%;width:33.333%;height:33.333%;background:transparent;border:0;border-radius:1px;box-shadow:none;padding:10px 12px;display:grid;grid-template-columns:1fr 1fr;grid-gap:6px;gap:6px}.lighting-page>div{height:23px;background:#54707644;border:1px solid #54707622}.lighting-page>div+div{background:#ffffff88}.lighting-page i{height:2px;background:#54707622;grid-column:1/-1}#light-points{position:absolute;inset:0;pointer-events:none}.lighting-panel .light-point{position:absolute;pointer-events:auto;transform:translate(-50%,-50%);width:28px;height:28px;padding:0;display:grid;place-items:center;border-radius:50%;border:0;background:transparent;color:var(--light-color);font:11px/1 var(--sans);box-shadow:none;touch-action:none;cursor:-webkit-grab;cursor:grab}.lighting-panel .light-point:active{cursor:-webkit-grabbing;cursor:grabbing}.lighting-panel .light-point[aria-pressed=true]{background:transparent;color:#304c52;text-decoration:none;outline:1px solid #476267;outline-offset:3px}.lighting-panel .light-point[data-muted=true]{opacity:.5}.lighting-sources-heading{display:flex;justify-content:space-between;align-items:center;margin:19px 0 12px;font-size:10px;letter-spacing:.09em;text-transform:uppercase}.lighting-sources-heading button{font-size:11px;letter-spacing:0;text-transform:none;border-bottom:1px solid #304c5233;padding-bottom:2px}.lighting-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.lighting-card{padding:15px 16px 12px;border:0;border-top:1px solid #304c5233;border-radius:0;background:transparent}.lighting-card-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.lighting-card-title{display:flex;align-items:center;gap:8px;font-size:12px}.lighting-card-dot{width:7px;height:7px;border-radius:50%;background:var(--light-color)}.lighting-card-actions{display:flex;align-items:center;gap:10px}.lighting-toggle{position:relative;width:28px;height:16px;border-radius:20px;border:1px solid #9ca99d;background:#bdc8b9;transition:background .15s}.lighting-toggle:after{content:"";position:absolute;top:2px;left:2px;width:10px;height:10px;border-radius:50%;background:#f8f4e8;transition:transform .15s}.lighting-toggle[aria-checked=true]{background:var(--light-color);border-color:var(--light-color)}.lighting-toggle[aria-checked=true]:after{transform:translateX(12px)}.lighting-remove{font:16px/1 var(--sans);color:#74847a!important}.lighting-source-kind{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:10px}.lighting-source-kind select{padding:3px 4px;font-size:10px;background:#fff9;border:1px solid #304c5244;color:var(--panel-ink)}.lighting-range{display:grid;grid-template-columns:1fr auto;align-items:center;grid-gap:7px;gap:7px;font-size:10px;margin:13px 0 0}.lighting-range output{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:#566d6c}.lighting-range input[type=range]{grid-column:1/-1;-moz-appearance:none;appearance:none;-webkit-appearance:none;width:100%;height:16px;background:transparent;margin:0;cursor:pointer}.lighting-panel .lighting-range input[type=range]::-webkit-slider-runnable-track{height:2px;background:transparent}.lighting-panel .lighting-range input[type=range]::-moz-range-progress,.lighting-panel .lighting-range input[type=range]::-moz-range-track{background:transparent}.lighting-panel .lighting-range input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;margin-top:-6px;background:transparent;border:0;box-shadow:none}.lighting-panel .lighting-range input[type=range]::-moz-range-thumb{width:14px;height:14px;background:transparent;border:0;box-shadow:none}html:not([data-lighting=ready]) .lighting-panel .lighting-range input[type=range]::-webkit-slider-runnable-track{background:#bbc4b5}html:not([data-lighting=ready]) .lighting-panel .lighting-range input[type=range]::-webkit-slider-thumb{background:var(--light-color,#547076);border-radius:50%}.lighting-coordinates{font:9px/1.3 var(--sans);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:#7d8b7c;margin-top:12px!important}.lighting-surface{border-top:1px solid #b9c1ae88;margin-top:22px}.lighting-surface summary{display:flex;justify-content:space-between;list-style:none;font-size:11px;padding:15px 0;cursor:pointer}.lighting-surface summary::-webkit-details-marker{display:none}.lighting-surface summary span{font-size:15px;color:#718476}.lighting-surface[open] summary span{transform:rotate(45deg)}.lighting-surface-controls{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:20px;gap:20px;padding:0 0 16px}.lighting-footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #b9c1ae88;padding-top:15px;font-size:10px}.lighting-footer #reset-lighting{margin:0;color:#647674}.lighting-footer #reset-lighting:hover{text-decoration:underline}#render-status{font-size:11px;margin-top:12px}#render-status:empty{display:none}.lighting-material-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}html:not([data-dev-tools=visible]) :is(#open-paper-editor,#paper-editor,#open-section-explorer,#section-explorer,.green-lab,.post-ink-lab,#open-type-editor,#type-editor){display:none!important}[data-paper-node]{background-color:var(--surface-color)}html[data-lighting=ready] [data-paper-node]{background-color:transparent}#open-paper-editor,#open-section-explorer{position:fixed;bottom:20px;z-index:61;padding:11px 16px;border:1px solid #9aa9a3;border-radius:3px;background:#f0ead8;color:#304c52;font:12px/1.2 var(--sans);box-shadow:0 2px 12px #172b3233}#open-paper-editor{right:20px}#open-section-explorer{left:20px}.paper-editor{position:fixed;z-index:60;top:18px;right:18px;width:340px;max-height:calc(100svh - 90px);overflow:auto;padding:20px;background:#f0ead8;color:#304c52;border:1px solid #9aa9a3;border-radius:3px;font:12px/1.4 var(--sans);box-shadow:0 8px 32px #172b3233;overscroll-behavior:contain}.paper-editor[hidden]{display:none}.paper-editor[data-dock=left]{right:auto;left:18px}.paper-editor header{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:14px}.paper-editor h2{font:25px/1.2 var(--serif)}.paper-editor h3,.paper-editor p{margin:0}.paper-editor header button{font-size:12px}.paper-editor label{display:block;margin:13px 0 6px;font-size:11px}.paper-editor input[type=text],.paper-editor select{width:100%;padding:8px;background:#fff8;border:1px solid #304c5244;color:inherit;border-radius:2px}.paper-editor input[type=range]{width:100%;accent-color:#547076}.paper-editor input[type=color]{width:36px;height:30px;padding:1px;background:transparent;border:1px solid #304c5244}.editor-actions,.editor-color-row,.editor-layer-buttons,.editor-toolbar{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.paper-editor button{padding:6px 9px;border:1px solid #304c5233;border-radius:2px}.paper-editor button[aria-pressed=true]{background:#547076;color:#ffefae;border-color:#547076}.editor-toolbar{margin-bottom:12px}.editor-toolbar button:first-child{flex:1 1}.editor-help{font-size:11px;color:#41585c;margin:8px 0 14px!important}.editor-breadcrumb{display:flex;flex-wrap:wrap;gap:4px;margin:10px 0}.editor-breadcrumb button{padding:3px 6px;font-size:10px}.editor-target{font:18px/1.2 var(--serif);margin-top:12px!important;overflow-wrap:anywhere}.editor-selector{font:10px/1.4 var(--mono);margin-top:5px!important;color:#41585c;overflow-wrap:anywhere}.paper-editor hr{margin:18px 0;border:0;border-top:1px solid #304c522b}.editor-swatches{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0}.editor-swatches button{width:27px;height:27px;border:1px solid #304c5266;padding:0}.editor-swatches button[aria-pressed=true]{outline:2px solid #304c52;outline-offset:2px}.editor-note{font-size:10px;line-height:1.4;color:#41585c;margin-top:6px!important}.editor-layer-definition{padding:10px;margin-top:12px;border:1px solid #304c5233}.editor-number{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;float:right}.editor-status{margin-top:12px!important;font-size:11px;min-height:16px}.editor-status:empty{display:none}.editor-variation-actions{display:flex;gap:7px;margin-top:8px}.editor-variation-actions button{flex:1 1}.paper-editor summary{cursor:pointer;margin-top:15px;font-size:11px}.editor-stack fieldset{margin:12px 0;padding:10px;border:1px solid #304c5244;min-width:0}.editor-stack legend{font-size:11px;padding:0 5px}.editor-stack input[type=number]{display:block;width:100%;padding:6px;border:1px solid #304c5244;background:#fff8;color:inherit}.editor-stack label select{margin-top:5px}html.paper-exploring .site-content,html.paper-exploring .site-content *,html.paper-picking .site-content,html.paper-picking .site-content *{cursor:crosshair!important}.paper-editor-hover,.paper-explorer-hover{outline:1px dashed #ffefae!important;outline-offset:3px}.section-explorer{width:370px}#open-type-editor{position:fixed;bottom:20px;right:132px;z-index:61;padding:11px 16px;border:1px solid #9aa9a3;border-radius:3px;background:#f0ead8;color:#304c52;font:12px/1.2 var(--sans);box-shadow:0 2px 12px #172b3233}#open-type-editor[hidden]{display:none}.type-editor{width:400px}.type-editor .editor-toolbar button:first-child{flex:1 1}.type-variations{display:flex;flex-wrap:wrap;gap:6px}.type-variations button{font-size:11px}.type-variations [data-forget]{opacity:.6}.type-save-row{display:flex;gap:7px;margin-top:8px}.type-save-row input{flex:1 1}.type-group{font:600 10px/1.4 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:#41585c;margin:18px 0 4px!important;padding-top:12px;border-top:1px solid #304c522b}.type-row{display:grid;grid-template-columns:1fr 140px 22px 56px;grid-gap:6px;gap:6px;align-items:center;margin:6px 0}.type-lock{padding:3px 6px!important;font-size:10px}.type-clear[hidden]{display:block!important;visibility:hidden}.type-random{margin-top:12px}.type-editor .explore-actions button,.type-random button{flex:1 1}.type-row .type-label{font-size:11px}.type-row .type-label output{float:right;font-size:10px;color:#41585c}.type-row[data-overridden=true] .type-label{font-weight:700}.type-row select{padding:4px 6px!important}.type-color{display:flex;gap:6px;align-items:center}.type-color select{flex:1 1;min-width:0}.type-color input[type=color]{width:30px!important;height:24px!important}.type-clear{padding:2px 6px!important}.type-review{margin-top:10px}.type-review .explore-save{margin:0}.type-editor-match{outline:1px dashed #547076aa;outline-offset:4px}.section-explorer h2{font-size:23px}.explore-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.explore-actions button{flex:1 1}.explore-progress{font-size:11px;margin:10px 0!important;color:#41585c}.explore-count{font-size:11px;margin:12px 0!important}.explore-property{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid #304c5226}.explore-label{display:block;font-size:10px;color:#41585c;margin-bottom:4px}.explore-property strong{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:400;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.explore-property strong i{display:inline-block;width:20px;height:20px;border:1px solid #304c5255}.explore-property button{min-width:60px}.explore-save{display:block;width:100%;margin:16px 0 10px;background:#547076!important;color:#ffefae!important;padding:10px!important}.explore-status{margin-top:12px!important;font-size:11px}.green-lab{margin:-43px 0 58px;justify-content:space-between;gap:24px;font:10px/1.4 var(--sans);color:var(--desk-ink)}.green-lab,.green-lab-modes{display:flex;flex-wrap:wrap;align-items:center}.green-lab-modes{gap:6px}.green-lab-modes>span{opacity:.65;margin-right:10px}.green-lab button{border:1px solid #ffefae33;border-radius:2px;padding:6px 9px}.green-lab button[aria-pressed=true]{background:#ffefae;color:#304c52;border-color:#ffefae}.green-lab-sliders{display:flex;flex-wrap:wrap;gap:18px;align-items:center}.green-lab label{display:flex;gap:8px;align-items:center;white-space:nowrap}.green-lab input{width:72px;accent-color:#0c8;height:12px;margin:0}.green-lab output{min-width:29px;font-size:9px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.green-randomness{flex:0 0 100%;border-top:1px solid #ffefae26;padding-top:12px}.green-randomness summary{cursor:pointer;font-size:10px;opacity:.8}.green-random-controls{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:12px}.green-random-controls>button{padding:6px 10px;border:1px solid #ffefae55;border-radius:2px}.green-random-controls input[type=number]{width:68px;height:auto;padding:5px;background:#ffefae11;border:1px solid #ffefae44;border-radius:2px;color:inherit;font:inherit;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.green-random-controls label{display:flex;align-items:center;gap:8px}.post-ink-lab{max-width:880px;margin:-36px auto 20px;gap:12px 20px;font:10px/1.4 var(--sans);color:var(--desk-ink)}.post-ink-lab,.post-ink-options{display:flex;flex-wrap:wrap;align-items:center}.post-ink-options{gap:6px}.post-ink-options>span{opacity:.65;margin-right:10px}.post-ink-lab button{display:inline-flex;align-items:center;gap:6px;border:1px solid #ffefae33;border-radius:2px;padding:6px 9px}.post-ink-lab button[aria-pressed=true]{background:#ffefae;color:#304c52;border-color:#ffefae}.post-ink-lab button i{width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 1px #ffefae88}.post-ink-custom{display:inline-flex;align-items:center;gap:8px}.post-ink-custom input{width:30px;height:22px;padding:0;border:1px solid #ffefae44;border-radius:2px;background:none}.post-ink-readout{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;opacity:.8}@media (max-width:900px){.green-lab{align-items:flex-start;flex-direction:column;gap:15px}}@media (max-width:700px){.paper-editor,.paper-editor[data-dock=left]{top:auto;left:12px;right:12px;bottom:65px;width:auto;max-height:48svh;padding:16px}#open-paper-editor{right:12px;bottom:14px}#open-section-explorer{left:12px;bottom:14px}.section-explorer{width:auto}.green-lab{margin:-26px 0 38px;font-size:9px;gap:12px}}@media (min-width:1440px){.hero{gap:86px}.intro,.popular{min-height:460px}.popular-item{min-height:86px}.popular-item .t{font-size:29px}.intro-name{font-size:88px}}@media (max-width:1000px){.topbar{gap:18px}.topbar nav{gap:15px;font-size:11px}.hero{gap:35px}.popular{padding:24px}.popular-item{grid-template-columns:1fr}.popular-item .meta{display:none}.intro{padding:30px}.intro-name{font-size:66px}.intro-bio{font-size:20px}.home-projects{padding:30px}.home-feature-body{gap:30px;grid-template-columns:1fr 1fr}.home-feature-text h1,.home-feature-text h3{font-size:50px}.home-feature-text .tag{font-size:19px}.home-feature-text .desc{font-size:13px}.proj-archlist-items{grid-template-columns:1fr}.podcast-band-inner{gap:35px;grid-template-columns:1fr 170px}.podcast-art{width:170px;height:170px}.podcast-text{font-size:25px}.posts-list{column-gap:35px}.posts-year-row{font-size:20px}.advent-wrap{gap:40px}.reference-grid{gap:35px}.reference-grid>section{padding:30px}.triplets{gap:32px}.projpage-layout,.triplets{grid-template-columns:1fr}.projpage-rail{position:static}.home-projects-body{grid-template-columns:1fr;gap:26px}.home-projects-list{flex-direction:row;flex-wrap:wrap;gap:6px 20px}.home-projects-row{width:auto;padding:0;border-bottom:0}}@media (max-width:700px){.site-content{padding:0 24px}.topbar{flex-wrap:wrap;padding:28px 0 22px;gap:24px}.topbar nav{width:auto;justify-content:flex-end;flex-wrap:wrap;gap:10px;font-size:10px}.topbar-page{gap:14px}.wordmark{font-size:26px}.hero{grid-template-columns:1fr;gap:40px;padding-top:26px}.hero-intro{grid-column:1;grid-row:1}.hero-popular{grid-column:1;grid-row:2}.intro,.popular{min-height:0}.intro{padding:30px 28px 34px}.intro-name{font-size:64px;max-width:300px}.intro-bio{font-size:21px}.intro-cta{margin-top:24px}.popular{padding:26px 25px 22px}.popular .col-label{margin-bottom:28px}.popular-item{min-height:76px;grid-template-columns:1fr}.popular-item .t{font-size:24px}.popular-item:not(:last-child):after{left:0;right:0}.section-heading{font-size:10px;gap:15px}.home-projects{margin-top:45px;padding:26px 25px}.home-feature-body{grid-template-columns:1fr;gap:30px;padding:28px 0}.home-feature-text h1,.home-feature-text h3{font-size:56px}.home-feature-text .tag{font-size:22px}.home-feature-text .desc{font-size:14px;line-height:1.65}.home-feature-code{padding:18px 12px;width:100%}.proj-codeblock-pre,.proj-terminal{font-size:10px}.home-projects-row .name{font-size:18px}.home-feature .home-feature-code{min-height:0;height:340px}.podcast-band{margin:45px 0;padding:28px 25px}.podcast-band-inner{grid-template-columns:1fr;gap:25px}.podcast-text{font-size:27px}.podcast-art{width:130px;height:130px;justify-self:end}.podcast-cta{font-size:10px}.posts-list{column-count:1}#posts{padding:26px 25px}.posts-year-row{font-size:22px;grid-template-columns:31px minmax(0,1fr);gap:10px;padding:15px 0}.advent{margin-top:45px;padding:28px 25px}.advent-wrap{grid-template-columns:1fr;gap:30px}.advent-intro h2{font-size:46px}.advent-intro p{font-size:19px}.advent-item b{font-size:22px}.reference-grid{grid-template-columns:1fr;gap:40px;margin-top:45px}.reference-grid>section{padding:28px 25px}.papers-block>p:first-child{font-size:27px}.talk-card b{font-size:26px}footer.site{margin-top:45px;font-size:10px;padding-bottom:30px}.post-page{padding-top:32px}.post-sheet{padding:36px 22px 40px}.article{font-size:18px}.article .heading-anchor{display:none}.article-foot{grid-template-columns:1fr;padding:22px 25px;margin-top:40px}.article-foot .next{text-align:left}.page-head,.projpage-preface{padding:36px 0 32px}.triplets>section{padding:26px 24px 20px}.projpage-foot{grid-template-columns:1fr}.projpage-foot .next{text-align:left}#paper-settings.lighting-panel{inset:58px 12px auto auto;width:calc(100vw - 24px);max-height:calc(100svh - 72px)}.lighting-sheet{--sheet-top:22px;--sheet-side:18px;padding-bottom:17px}.lighting-map{min-height:175px}.lighting-cards{gap:9px}.lighting-card{padding:12px 11px 10px}.lighting-card-title{font-size:11px}.lighting-card-heading{gap:5px}.lighting-card-actions{gap:7px}.lighting-surface-controls{gap:12px}.lighting-coordinates{font-size:8px}.lighting-page{padding:7px;gap:4px}.lighting-page>div{height:16px}}@media (max-width:389px){.article-title{font-size:min(38px,calc((100vw - 92px) / 8))}.post-sheet h1:not(.article-title){font-size:min(2em,calc((100vw - 92px) / 8))}.home-feature-text h1,.home-feature-text h3{font-size:min(56px,calc((100vw - 98px) / 4.6))}}@media (max-width:360px){.topbar nav{gap:7px;font-size:9px}.lighting-card-title{font-size:10px;gap:5px}}@media (prefers-reduced-motion:reduce){:root{scroll-behavior:auto}.lighting-sun,.lighting-toggle,.lighting-toggle:after{transition:none}.proj-terminal-caret{animation:none}}::view-transition-group(root),::view-transition-new(root),::view-transition-old(root){animation:none}