@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-cyrillic-ext-500-normal.BqneJy0T.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-500-normal.BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-cyrillic-500-normal.Bq9vWWag.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-500-normal.Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-vietnamese-500-normal.DZ4AoWbu.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-500-normal.C8zxqsMH.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-ext-500-normal.CAhNIIs5.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-500-normal.CZ70TYgx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@media print{@page{margin:14mm 16mm}html:root{--ground:#fff;--card:#fff;--ink:#111;--quiet:#444;--line:#ccc}html body{background:#fff;font-size:10.5pt;line-height:1.45}header.card{border:0;border-bottom:1px solid var(--line);border-radius:0;margin:0 0 1.2rem;padding:0 0 1rem}h1{font-size:26pt}main{padding:0}main .sec{grid-template-columns:8.5rem minmax(0,1fr);column-gap:1.5rem;padding:.7rem 0 .4rem}main .sec h2{break-after:avoid}.sec li,.path>*,.papers>*{break-inside:avoid}.papers a:after{content:" praiseoketola.com" attr(href);color:var(--quiet);font:8pt IBM Plex Mono,monospace}.side-projects{grid-template-columns:1fr 1fr}footer.legal .extras{display:none}}.has-cite{position:relative}.cited{text-decoration:underline dotted;text-decoration-color:color-mix(in srgb, var(--quiet) 60%, transparent);text-underline-offset:.2em}.cite-toggle{color:var(--quiet);cursor:pointer;background:0 0;border:0;padding:.3rem .4rem;font:400 .7rem/1 IBM Plex Mono,ui-monospace,monospace;position:absolute;bottom:.55rem;right:.6rem}.cite-toggle:hover,.cite-toggle[aria-expanded=true]{color:var(--accent)}.cite-note{z-index:2;background:var(--card);border:1px solid var(--line);color:var(--quiet);border-radius:0 0 10px 10px;padding:.55rem .8rem;font:400 .72rem/1.5 IBM Plex Mono,ui-monospace,monospace;display:none;position:absolute;top:calc(100% - 1px);left:0;right:0}.side-projects .cite-note a{font-size:inherit;color:var(--link);border:0;padding:0;text-decoration:underline;display:inline}.cite-note.open,.cite-note:hover,.has-cite:has(.cited:hover,.cite-toggle:hover,:focus-visible) .cite-note{display:block}.count[data-astro-cid-myyq6mha]:empty{display:none}.appended[data-astro-cid-myyq6mha]:before{content:", "}.live[data-astro-cid-myyq6mha]{white-space:nowrap;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.88em}.live[data-astro-cid-myyq6mha] i{background:var(--accent);border-radius:50%;width:.4em;height:.4em;margin:0 .4em .1em .1em;display:inline-block}.lens-margin[data-astro-cid-r7vx2sps]{flex-direction:column;align-items:flex-start;gap:.4rem;display:flex}.lens-margin[data-astro-cid-r7vx2sps] h2[data-astro-cid-r7vx2sps]{margin-bottom:.4rem}.lens-toggle[data-astro-cid-r7vx2sps]{color:var(--quiet);cursor:pointer;background:0 0;border:0;align-items:center;gap:.5em;padding:0;font:400 .75rem/1.4 IBM Plex Mono,ui-monospace,monospace;display:inline-flex}.lens-toggle[data-astro-cid-r7vx2sps]:before{content:"";border:1px solid;border-radius:1px;width:.6em;height:.6em;transition:background-color .2s}.lens-toggle[data-astro-cid-r7vx2sps]:hover,.lens-toggle[data-astro-cid-r7vx2sps][aria-pressed=true]{color:var(--accent)}.lens-toggle[data-astro-cid-r7vx2sps][aria-pressed=true]:before{background:currentColor}.lens-count[data-astro-cid-r7vx2sps]{visibility:hidden;color:var(--quiet);margin:0;font:400 .75rem/1.4 IBM Plex Mono,ui-monospace,monospace}.lens-count[data-astro-cid-r7vx2sps] span[data-astro-cid-r7vx2sps]{display:block}.lens-count[data-astro-cid-r7vx2sps].shown{visibility:visible}.lens[data-astro-cid-r7vx2sps]{border-radius:2px;position:relative}.lens[data-astro-cid-r7vx2sps]:focus-visible{outline:1px dashed var(--accent);outline-offset:6px}.lens[data-astro-cid-r7vx2sps] p[data-astro-cid-r7vx2sps] span[data-astro-cid-r7vx2sps]{border-radius:2px;transition:background-color .35s}.lens[data-astro-cid-r7vx2sps].on p[data-astro-cid-r7vx2sps] span[data-astro-cid-r7vx2sps]:nth-child(odd){background:color-mix(in srgb, var(--accent) 10%, transparent)}.lens[data-astro-cid-r7vx2sps].on p[data-astro-cid-r7vx2sps] span[data-astro-cid-r7vx2sps]:nth-child(2n){background:color-mix(in srgb, var(--accent) 22%, transparent)}.lens[data-astro-cid-r7vx2sps].on p[data-astro-cid-r7vx2sps] span[data-astro-cid-r7vx2sps].active{background:color-mix(in srgb, var(--accent) 38%, transparent)}.lens-tag[data-astro-cid-r7vx2sps]{white-space:pre;pointer-events:none;color:var(--ink);background:var(--card);border:1px solid var(--line);opacity:0;border-radius:3px;padding:.1rem .4rem;font:400 .72rem/1.5 IBM Plex Mono,ui-monospace,monospace;transition:opacity .15s;position:absolute;top:0;left:0}.lens-tag[data-astro-cid-r7vx2sps].shown{opacity:1}@media (width<=860px){.lens-margin[data-astro-cid-r7vx2sps]{flex-flow:wrap;align-items:baseline;column-gap:1.25rem;margin-bottom:1.75rem}.lens-margin[data-astro-cid-r7vx2sps] h2[data-astro-cid-r7vx2sps]{margin:0}.lens-margin[data-astro-cid-r7vx2sps]{position:relative}.lens-count[data-astro-cid-r7vx2sps]{margin-top:.3rem;position:absolute;top:100%}.lens-count[data-astro-cid-r7vx2sps] span[data-astro-cid-r7vx2sps]{display:inline}.lens-count[data-astro-cid-r7vx2sps] span[data-astro-cid-r7vx2sps]:before{content:", "}}@media (prefers-reduced-motion:reduce){.lens[data-astro-cid-r7vx2sps] p[data-astro-cid-r7vx2sps] span[data-astro-cid-r7vx2sps],.lens-tag[data-astro-cid-r7vx2sps],.lens-toggle[data-astro-cid-r7vx2sps]:before{transition:none}}.map-margin[data-astro-cid-3iu2wvxp]{flex-direction:column;align-items:flex-start;display:flex}.map-margin[data-astro-cid-3iu2wvxp] h2[data-astro-cid-3iu2wvxp]{margin-bottom:.4rem}.map-views[data-astro-cid-3iu2wvxp]{color:var(--quiet);margin:0;font:400 .75rem/1.4 IBM Plex Mono,ui-monospace,monospace}.map-views[data-astro-cid-3iu2wvxp] button[data-astro-cid-3iu2wvxp]{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.map-views[data-astro-cid-3iu2wvxp] button[data-astro-cid-3iu2wvxp]:hover,.map-views[data-astro-cid-3iu2wvxp] button[data-astro-cid-3iu2wvxp][aria-pressed=true]{color:var(--accent)}.map-views[data-astro-cid-3iu2wvxp] button[data-astro-cid-3iu2wvxp][aria-pressed=true]{text-underline-offset:.25em;text-decoration:underline}.map-views-body[data-astro-cid-3iu2wvxp]>[hidden]{display:none}.work-map[data-astro-cid-3iu2wvxp]{margin:0}.plot[data-astro-cid-3iu2wvxp]{aspect-ratio:16/10;border:1px solid var(--line);--inset:2.25rem;border-radius:4px;margin:.5rem 0 0;position:relative}.plot[data-astro-cid-3iu2wvxp]>svg[data-astro-cid-3iu2wvxp],.point[data-astro-cid-3iu2wvxp]{position:absolute}.plot[data-astro-cid-3iu2wvxp]>svg[data-astro-cid-3iu2wvxp]{inset:var(--inset);width:calc(100% - 2 * var(--inset));height:calc(100% - 2 * var(--inset));pointer-events:none;overflow:visible}.edges[data-astro-cid-3iu2wvxp] line[data-astro-cid-3iu2wvxp]{stroke:var(--quiet);stroke-opacity:.45;stroke-width:1px;vector-effect:non-scaling-stroke}.point[data-astro-cid-3iu2wvxp]{--left:var(--x);--top:var(--y);left:calc(var(--inset) + var(--left) * (100% - 2 * var(--inset)));top:calc(var(--inset) + var(--top) * (100% - 2 * var(--inset)));width:0;height:0;color:var(--ink);text-decoration:none}.point[data-astro-cid-3iu2wvxp] svg[data-astro-cid-3iu2wvxp],.legend[data-astro-cid-3iu2wvxp] svg[data-astro-cid-3iu2wvxp]{fill:var(--accent);stroke:var(--accent);stroke-width:1.2px}.point[data-astro-cid-3iu2wvxp] svg[data-astro-cid-3iu2wvxp]{z-index:1;width:12px;height:12px;margin:-6px;padding:6px;position:absolute;top:-6px;left:-6px;overflow:visible}.paper[data-astro-cid-3iu2wvxp] svg[data-astro-cid-3iu2wvxp]{fill:var(--ground)}.label[data-astro-cid-3iu2wvxp]{white-space:nowrap;background:color-mix(in srgb, var(--ground) 80%, transparent);padding:1px 2px;font:400 .68rem/1 IBM Plex Mono,ui-monospace,monospace;position:absolute;transform:translate(10px,-50%)}.point[data-astro-cid-3iu2wvxp][data-side=left] .label[data-astro-cid-3iu2wvxp]{transform:translate(calc(-100% - 10px),-50%)}.point[data-astro-cid-3iu2wvxp][data-side=below] .label[data-astro-cid-3iu2wvxp]{transform:translate(-50%,10px)}.point[data-astro-cid-3iu2wvxp][data-side=above] .label[data-astro-cid-3iu2wvxp]{transform:translate(-50%,calc(-100% - 10px))}.point[data-astro-cid-3iu2wvxp][data-side=below-start] .label[data-astro-cid-3iu2wvxp]{transform:translate(-6px,10px)}.point[data-astro-cid-3iu2wvxp][data-side=above-start] .label[data-astro-cid-3iu2wvxp]{transform:translate(-6px,calc(-100% - 10px))}.point[data-astro-cid-3iu2wvxp][data-side=below-end] .label[data-astro-cid-3iu2wvxp]{transform:translate(calc(6px - 100%),10px)}.point[data-astro-cid-3iu2wvxp][data-side=above-end] .label[data-astro-cid-3iu2wvxp]{transform:translate(calc(6px - 100%),calc(-100% - 10px))}.point[data-astro-cid-3iu2wvxp]:hover .label[data-astro-cid-3iu2wvxp],.point[data-astro-cid-3iu2wvxp]:focus-visible .label[data-astro-cid-3iu2wvxp],.point[data-astro-cid-3iu2wvxp].active .label[data-astro-cid-3iu2wvxp]{color:var(--accent)}.point[data-astro-cid-3iu2wvxp]:focus-visible{outline:none}.point[data-astro-cid-3iu2wvxp]:focus-visible svg[data-astro-cid-3iu2wvxp]{outline:1px solid var(--accent);outline-offset:2px}.tip[data-astro-cid-3iu2wvxp]{z-index:1;background:var(--card);border:1px solid var(--line);pointer-events:none;opacity:0;border-radius:4px;flex-direction:column;gap:.15rem;max-width:17rem;margin:0;padding:.4rem .6rem;font-size:.78rem;line-height:1.4;transition:opacity .15s;display:flex;position:absolute;top:0;left:0}.tip[data-astro-cid-3iu2wvxp].shown{opacity:1}.tip[data-astro-cid-3iu2wvxp] .meta[data-astro-cid-3iu2wvxp],figcaption[data-astro-cid-3iu2wvxp]{color:var(--quiet);font:400 .7rem/1.5 IBM Plex Mono,ui-monospace,monospace}figcaption[data-astro-cid-3iu2wvxp]{flex-direction:column;gap:.3rem;margin-top:.6rem;display:flex}.legend[data-astro-cid-3iu2wvxp]{flex-wrap:wrap;gap:.25rem 1rem;display:flex}.legend[data-astro-cid-3iu2wvxp] span[data-astro-cid-3iu2wvxp]{align-items:center;gap:.4em;display:inline-flex}.legend[data-astro-cid-3iu2wvxp] svg[data-astro-cid-3iu2wvxp]{width:9px;height:9px;overflow:visible}.legend[data-astro-cid-3iu2wvxp] .paper[data-astro-cid-3iu2wvxp] svg[data-astro-cid-3iu2wvxp]{fill:none}@media (width<=860px){.map-margin[data-astro-cid-3iu2wvxp]{flex-flow:wrap;align-items:baseline;column-gap:1.25rem;margin-bottom:1rem}.map-margin[data-astro-cid-3iu2wvxp] h2[data-astro-cid-3iu2wvxp]{margin:0}}@media (width<=600px){.plot[data-astro-cid-3iu2wvxp]{aspect-ratio:2/3;--inset:1.5rem}.point[data-astro-cid-3iu2wvxp]{--left:var(--y);--top:var(--x)}.edges[data-astro-cid-3iu2wvxp]{transform:matrix(0,1,1,0,0,0)}}@media (prefers-reduced-motion:reduce){.tip[data-astro-cid-3iu2wvxp]{transition:none}}.page-search[data-astro-cid-ac66eqjo]{display:grid;position:relative}.page-search[data-astro-cid-ac66eqjo]>*{grid-area:1/1}.page-search[data-astro-cid-ac66eqjo]>p{transition:opacity .25s,translate .35s cubic-bezier(.2,.7,.2,1)}.searching .page-search[data-astro-cid-ac66eqjo]>p{opacity:0;translate:0 -.4em}.search-bar[data-astro-cid-ac66eqjo]{opacity:0;visibility:hidden;font:400 1em/1.6 IBM Plex Mono,ui-monospace,monospace;transition:opacity .25s,translate .35s cubic-bezier(.2,.7,.2,1),visibility 0s .35s;translate:0 .4em}.searching .search-bar[data-astro-cid-ac66eqjo]{opacity:1;visibility:visible;transition-delay:60ms,60ms,0s;translate:0}.bar-label[data-astro-cid-ac66eqjo]{display:none}.search-field[data-astro-cid-ac66eqjo]{align-items:center;gap:.75rem;display:flex;position:relative}.search-field[data-astro-cid-ac66eqjo]:after{content:"";border-bottom:1px solid var(--accent);transform-origin:0;transition:scale .5s cubic-bezier(.2,.7,.2,1);position:absolute;inset:auto 0 -1px;scale:0 1}.searching .search-field[data-astro-cid-ac66eqjo]:after{transition-delay:80ms;scale:1}input[data-astro-cid-ac66eqjo]{min-width:0;font:inherit;color:var(--ink);caret-color:var(--accent);background:0 0;border:0;outline:none;flex:1;padding:0;font-size:max(16px,1em)}input[data-astro-cid-ac66eqjo]::placeholder{color:var(--quiet)}input[data-astro-cid-ac66eqjo]::-webkit-search-cancel-button{display:none}kbd[data-astro-cid-ac66eqjo]{font:inherit;color:var(--quiet);border:1px solid var(--line);border-radius:3px;padding:0 .4em;font-size:.65em;line-height:1.5}@media (hover:none){kbd[data-astro-cid-ac66eqjo]{display:none}}.search-status[data-astro-cid-ac66eqjo]{color:var(--quiet);flex-wrap:wrap;align-items:baseline;gap:0 .75rem;margin:0;font-size:.75rem;line-height:1.5;display:flex;position:absolute;top:calc(100% + .5rem);left:0;right:0}.search-status[data-astro-cid-ac66eqjo] a[data-astro-cid-ac66eqjo]{color:var(--accent)}.search-step[data-astro-cid-ac66eqjo] button[data-astro-cid-ac66eqjo]{font:inherit;color:var(--quiet);cursor:pointer;background:0 0;border:0;padding:0 .3em}.search-step[data-astro-cid-ac66eqjo] button[data-astro-cid-ac66eqjo]:hover{color:var(--accent)}.search-bar[data-astro-cid-ac66eqjo].docked{z-index:10;padding:.55rem max(clamp(1.25rem, 4vw, 4rem), (100% - var(--column)) / 2);background:var(--ground);border-bottom:1px solid var(--line);grid-template-columns:13rem minmax(0,42rem);align-items:center;column-gap:3rem;font-size:.85rem;display:grid;position:fixed;inset:0 0 auto}@media (prefers-reduced-motion:no-preference){.search-bar[data-astro-cid-ac66eqjo].docked{animation:.3s cubic-bezier(.2,.7,.2,1) dock}}@keyframes dock{0%{translate:0 -100%}}.docked[data-astro-cid-ac66eqjo] .bar-label[data-astro-cid-ac66eqjo]{color:var(--accent);align-items:center;gap:.6rem;font-weight:500;display:flex}.docked[data-astro-cid-ac66eqjo] .search-line[data-astro-cid-ac66eqjo]{flex-wrap:wrap;align-items:baseline;gap:.2rem 1.25rem;display:flex}.docked[data-astro-cid-ac66eqjo] .search-field[data-astro-cid-ac66eqjo]{flex:12rem}.docked[data-astro-cid-ac66eqjo] .search-status[data-astro-cid-ac66eqjo]{position:static}.docked[data-astro-cid-ac66eqjo] .search-status[data-astro-cid-ac66eqjo]:has(.search-message:empty){display:none}.search-hit{background-color:color-mix(in srgb, var(--accent) 16%, transparent);box-shadow:0 0 0 .35rem color-mix(in srgb, var(--accent) 16%, transparent);border-radius:4px}@media (prefers-reduced-motion:no-preference){.search-hit{animation:3.5s ease-in forwards search-fade}}@keyframes search-fade{60%{background-color:color-mix(in srgb, var(--accent) 16%, transparent);box-shadow:0 0 0 .35rem color-mix(in srgb, var(--accent) 16%, transparent)}to{background-color:#0000;box-shadow:0 0 0 .35rem #0000}}@media (width<=860px){.search-bar[data-astro-cid-ac66eqjo].docked{grid-template-columns:auto minmax(0,1fr);column-gap:.9rem}.docked[data-astro-cid-ac66eqjo] .bar-label[data-astro-cid-ac66eqjo] span[data-astro-cid-ac66eqjo]{display:none}}@media (prefers-reduced-motion:reduce){.page-search[data-astro-cid-ac66eqjo]>p,.search-bar[data-astro-cid-ac66eqjo],.search-field[data-astro-cid-ac66eqjo]:after{transition:none}}@media print{.search-bar[data-astro-cid-ac66eqjo]{display:none}}:root{--ground:#f4f6f3;--card:#fbfcfa;--line:#dde3de;--ink:#1d2a2a;--quiet:#5e6b68;--accent:#0e7a63;--link:#0e7a63;--glyph-accent:#0e7a63;--glyph-muted:#5e6b68;--glyph-alert:#b0502a;--column:68rem}@media (prefers-color-scheme:dark){:root{--ground:#12181b;--card:#172024;--line:#26302f;--ink:#e4ebe8;--quiet:#8e9c98;--accent:#53c4a2;--link:#53c4a2;--glyph-accent:#53c4a2;--glyph-muted:#8e9c98;--glyph-alert:#e3906a}}body{font:400 19px/1.6 "Source Serif 4 Variable",Charter,Georgia,serif}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:2rem;max-width:68rem;margin:3rem auto 3.5rem;padding:3rem clamp(1.25rem,4vw,4rem);display:flex}@media (width<=1100px){.card{margin:1.25rem}}h1{margin:0 0 .75rem;font-size:clamp(2.6rem,6vw,4rem);font-weight:400;line-height:1}.mono,h2,.glyphs span,.path .when,.toolkit dt,.open-work .links,.papers .venue{font-family:IBM Plex Mono,ui-monospace,monospace}.mono{color:var(--quiet);margin:0}.glyphs{flex-wrap:wrap;gap:1.2rem;display:flex}.glyphs li{flex-direction:column;align-items:center;gap:.3rem;display:flex}.glyphs span{color:var(--quiet);font-size:.75rem}.glyphs li{transition:opacity .3s}.searching .glyphs li:not(:has(.seek)){opacity:.25}.seek{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;flex-direction:column;align-items:center;gap:.3rem;padding:0;display:flex;position:relative}.seek:after{content:"";background:var(--accent);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);width:7px;height:7px;filter:drop-shadow(0 0 2px var(--accent));opacity:.35;pointer-events:none;animation:3.6s ease-in-out infinite twinkle;position:absolute;top:-3px;right:-5px}.searching .seek:after,.seek:is(:hover,:focus-visible):after{opacity:0;transition:opacity .3s;animation:none}@keyframes twinkle{0%,to{opacity:.2;transform:scale(.8)}50%{opacity:.75;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.seek:after{animation:none}}.seek:focus-visible{outline:1px solid var(--accent);outline-offset:5px}.seek-label{justify-items:center;display:grid}.seek-label>span{grid-area:1/1;transition:opacity .2s}.seek-label>span+span,.card:not(.searching) .seek:is(:hover,:focus-visible) .seek-label>span:first-child{opacity:0}.card:not(.searching) .seek:is(:hover,:focus-visible) .seek-label>span+span{opacity:1}.searching .seek-label>span:first-child{color:var(--accent)}.seek kbd{font:inherit;color:var(--accent)}.card.searching{row-gap:3.5rem}@media (prefers-reduced-motion:no-preference){.card{transition:row-gap .35s}}main{padding:0 clamp(1.25rem,4vw,4rem) 4rem}.sec{border-top:1px solid var(--line);grid-template-columns:13rem minmax(0,42rem);align-items:start;column-gap:3rem;padding:1.5rem 0 1rem;display:grid}.sec.intro{border-top:0;padding-top:0}.sec>div>p:first-child{margin-top:0}.sec h2{color:var(--accent);margin:.35rem 0 1rem;font-size:.85rem;font-weight:500}.papers a{color:var(--ink);text-decoration-color:var(--accent)}.focus li{border-bottom:1px dashed var(--line)}.focus b{font-weight:600}.sec .contact{margin-top:0}.contact .mail{color:var(--accent)}.side-projects a:hover,.contact li a:hover{border-color:var(--accent)}.legal{border-top:1px solid var(--line);color:var(--quiet);flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;margin-top:3rem;padding-top:1rem;font-size:.75rem;display:flex}.legal .extras{gap:1.5rem;display:flex}.legal .print{font:inherit;color:inherit;cursor:pointer;text-underline-offset:.18em;background:0 0;border:0;padding:0;text-decoration:underline}.legal .print:hover{color:var(--accent)}.legal .try{user-select:all;font-family:IBM Plex Mono,ui-monospace,monospace}@media (width<=860px){.sec{grid-template-columns:1fr}}.toolkit dt{color:var(--accent);padding-top:.1em;font-size:.78rem;font-weight:500}
