@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(../media/2e482247ef29dcb9-s.3gj6ciom31zjc.woff2)format("woff2");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:Archivo;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(../media/068feab4deafcd0f-s.0_kz_z3o_slvt.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(../media/db545dba463279ae-s.p.1cp9-4nby68jc.woff2)format("woff2");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}@font-face{font-family:Archivo Fallback;src:local(Arial);ascent-override:88.96%;descent-override:21.28%;line-gap-override:0.0%;size-adjust:98.7%}.X0UCVa_className{font-family:Archivo,Archivo Fallback;font-style:normal}.X0UCVa_variable{--f-sans:"Archivo", "Archivo Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/258bd0ab5fdd762a-s.2f7nqdagzwx2-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/99a2019bdfa8519b-s.176arc174-8zp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/44e0cb21b0d052b7-s.0bp8oijd_gu96.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/f9cd5a77d065db98-s.1fby2rem9ngyr.woff2)format("woff2");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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/954d21e04331b2ae-s.0vfdmo25voy_0.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/53897e768d329f66-s.p.3t6q91iet4nsy.woff2)format("woff2");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}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.ZSAxjG_className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.ZSAxjG_variable{--f-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--text-primary:#1a1a1a;--text-secondary:#757575;--text-secondary-on-soft:#6b6b6b;--text-accent:#1a00ff;--text-inverse:#fff;--text-inverse-secondary:#9a9a9a;--text-accent-on-inverse:#8f85ff;--bg-default:#fff;--bg-soft:#f4f3f0;--bg-soft-hover:#e8e6e1;--bg-inverse:#141414;--bg-inverse-raised:#2a2a2a;--bg-placeholder:#ebe9e4;--border-default:#e3e1dc;--border-strong:#949494;--bg-hover-on-soft:#e0ded8;--bg-hover-on-inverse:#333;--border-on-soft:#dcdad4;--border-on-inverse:#333;--fill-accent:#1a00ff;--fill-strong:#1a1a1a;--font:var(--f-sans), "Helvetica Neue", Helvetica, Arial, sans-serif;--mono:var(--f-mono), ui-monospace, "SF Mono", Menlo, Consolas, monospace;--gutter:12px;--outer:12px;--header:56px;--page-max:1440px;--content:min(100vw - 2 * var(--outer), var(--page-max));--col:calc((var(--content) - 11 * var(--gutter)) / 12);--s3:.5rem;--s4:.75rem;--s5:1rem;--s6:1.5rem;--s7:2rem;--s8:2.5rem;--s9:3rem;--s10:4rem;--s11:5rem;--s12:6rem;--s13:8rem;--s-chapter:5.25rem;--s-foot:5.5rem;--type-wide:112%;--type-display-size:40px;--type-display-lh:44px;--type-display-tr:-.02em;--type-title-size:28px;--type-title-lh:32px;--type-title-tr:-.015em;--type-heading-size:20px;--type-heading-lh:26px;--type-heading-tr:-.005em;--type-body-size:17px;--type-body-lh:26px;--type-ui-size:15px;--type-ui-lh:20px;--type-ui-tr:.005em;--type-caption-size:14px;--type-caption-lh:20px;--type-data-size:13px;--type-data-lh:18px;--type-display:400 var(--type-display-size)/var(--type-display-lh) var(--font);--type-title:400 var(--type-title-size)/var(--type-title-lh) var(--font);--type-heading:500 var(--type-heading-size)/var(--type-heading-lh) var(--font);--type-body:400 var(--type-body-size)/var(--type-body-lh) var(--font);--type-ui:500 var(--type-ui-size)/var(--type-ui-lh) var(--font);--type-caption:400 var(--type-caption-size)/var(--type-caption-lh) var(--font);--type-data:400 var(--type-data-size)/var(--type-data-lh) var(--mono);--s-p:20px;--ease:cubic-bezier(.4, 0, .2, 1);--ease-reveal:cubic-bezier(.33, 1, .68, 1);--ease-page:cubic-bezier(0, 0, .58, 1);--ease-hero:cubic-bezier(.61, 1, .88, 1);--r-control:2px;--d-fast:.15s;--d:.3s;--d-page:.3s;--d-slow:.5s;--d-reveal:.6s;--d-image:.7s;--z-raise:1;--z-header:99;--z-sheet:999;--z-skip:1000;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (min-width:900px){:root{--gutter:16px;--outer:24px;--header:64px;--s3:.75rem;--s4:1rem;--s5:1.5rem;--s6:2rem;--s7:3rem;--s8:4rem;--s9:5rem;--s10:6rem;--s11:8rem;--s12:10rem;--s13:12rem;--s-chapter:7rem;--s-foot:8rem;--type-display-size:72px;--type-display-lh:72px;--type-display-tr:-.025em;--type-title-size:44px;--type-title-lh:48px;--type-title-tr:-.02em;--type-heading-size:24px;--type-heading-lh:30px;--type-heading-tr:-.01em;--type-body-size:19px;--type-body-lh:30px;--type-ui-size:16px;--type-caption-size:15px;--type-caption-lh:22px;--type-data-size:14px;--type-data-lh:20px;--s-p:30px}}@media (min-width:1200px){:root{--outer:32px}}html.site-black{--text-primary:#fff;--text-secondary:#9a9a9a;--text-secondary-on-soft:#9a9a9a;--text-accent:#8f85ff;--text-inverse:#111;--text-inverse-secondary:#555;--text-accent-on-inverse:#8f85ff;--bg-default:#000;--bg-soft:#141414;--bg-soft-hover:#262626;--bg-inverse:#ececec;--bg-inverse-raised:#d6d6d6;--bg-placeholder:#0a0a0a;--border-default:#2a2a2a;--border-strong:#6b6b6b;--bg-hover-on-soft:#262626;--bg-hover-on-inverse:#333;--border-on-soft:#2a2a2a;--border-on-inverse:#333;--fill-accent:#8f85ff;--fill-strong:#fff;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#000}html.site-black .theme-soft{--bg-default:#141414;--bg-soft:#1f1f1f}html.site-black ::selection{color:#fff;background:#1a00ff}html.site-black img[src$=\.svg]{mix-blend-mode:normal;filter:invert()hue-rotate(180deg)}.theme-soft{--text-secondary:var(--text-secondary-on-soft);--bg-default:#f4f3f0;--bg-soft:#ebe9e4;--bg-soft-hover:var(--bg-hover-on-soft);--border-default:var(--border-on-soft);background:var(--bg-default);color:var(--text-primary)}.theme-inverse,.log,.code{--text-primary:#fff;--text-secondary:var(--text-inverse-secondary);--text-accent:var(--text-accent-on-inverse);--text-inverse:#1a1a1a;--bg-default:#141414;--bg-soft:#2a2a2a;--bg-soft-hover:var(--bg-hover-on-inverse);--bg-placeholder:#2a2a2a;--border-default:var(--border-on-inverse);--fill-accent:var(--text-accent-on-inverse);--fill-strong:#fff;background:var(--bg-default);color:var(--text-primary)}.f-display,.intro>h1,.block.intro>h1,.post-head h1{font:var(--type-display);font-stretch:var(--type-wide);letter-spacing:var(--type-display-tr)}.f-title,.post-body>h2,.about .block>h2,.upnext>h2,.lost>h1,.block.lost>h1,.sheet ul,.post-body>blockquote,.stats dd,.principles h3,.principles p{font:var(--type-title);font-stretch:var(--type-wide);letter-spacing:var(--type-title-tr)}.f-heading,.post-body>h2.plain,.post-body>h3,.work b,.duo .card h3,.readout b,.fnode b{font:var(--type-heading);letter-spacing:var(--type-heading-tr);font-stretch:100%}.f-body,.post-body>p,.post-body>ul,.block>p,.about .block>p,.intro>p,.post-head .lede,.rows b,.steps h3,.steps p,.pair ul,.shift ul,.fixes p,.bugs li,.lost>p{font:var(--type-body);letter-spacing:0}.f-ui,.top,.sheet .bar,.btn,.chip,.foot li{font:var(--type-ui);letter-spacing:var(--type-ui-tr)}.f-caption,.cap,.hint,figcaption,.block>h1,.block>h2,.rows span,.work .meta,.post-head .meta,.post-head .links,.chapters,.ptable table,.stats dt,.foot,.ctl>label,.ctl>b,.val,.readout span,.jump b,.said b,.post-head .where,.fnode i,.fnode span,.fnode em,.fnote,.ret span,.fixes .fx-head,.bugs li:before,.strip b,.strip li span,.strip .axis,.bars li,.bars b,.sources{font:var(--type-caption);letter-spacing:0}.f-data,.proof{font:var(--type-data);letter-spacing:0;font-variant-numeric:tabular-nums}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header) + 16px);scrollbar-width:thin;scrollbar-color:var(--border-strong) var(--bg-default)}body{background:var(--bg-default);color:var(--text-primary);font:var(--type-body);-webkit-font-smoothing:antialiased;font-variant-numeric:slashed-zero;margin:0;overflow-x:clip}a{color:inherit}:focus-visible{outline:2px solid var(--fill-accent);outline-offset:2px}::selection{background:var(--fill-accent);color:#fff}b,strong{font-weight:500}h1,h2,h3{text-wrap:balance;margin:0;font-weight:400}p{text-wrap:pretty;margin:0}button{font:inherit;color:inherit;border-radius:var(--r-control)}input,select,textarea{border-radius:var(--r-control)}code,pre{font-family:var(--mono)}.post-body>figure,.wide{font:var(--type-caption)}.proof{color:var(--text-primary);align-items:flex-start;gap:8px;display:flex}.proof i{width:8px;height:8px;margin-top:calc((var(--type-data-lh) - 8px) / 2);background:var(--fill-accent);transition:background-color var(--d-fast) steps(2);flex:none}@media (prefers-reduced-motion:no-preference){.js .proof:not([data-lit]) i{box-shadow:inset 0 0 0 1px var(--text-secondary);background:0 0}.js [data-behavior~=wordmarkLight]:not([data-lit]) .dot:after{background:0 0;box-shadow:inset 0 0 0 1px}}.wordmark{height:32px;color:inherit;white-space:nowrap;font:560 20px/1 var(--font);font-stretch:var(--type-wide);letter-spacing:-.01em;align-items:center;text-decoration:none;display:inline-flex}@media (min-width:600px){.wordmark{font-size:22px}}@media (min-width:900px){.wordmark{font-size:24px}}.wordmark .dot{display:inline-block;position:relative}.wordmark .dot:after{content:"";background:var(--fill-accent);width:.17em;height:.17em;transition:background-color var(--d-fast) steps(2);margin-left:-.085em;position:absolute;top:.08em;left:50%}a,button,summary,.chip,.btn{-webkit-tap-highlight-color:transparent}.btn,.chip{transition:background-color var(--d) var(--ease), color var(--d) var(--ease)}.card{background:var(--bg-default);min-width:0;padding:24px}.duo{gap:var(--gutter);grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:stretch;display:grid}.duo .card{grid-template-columns:minmax(0,1fr);align-content:start;gap:16px;display:grid}.figure{padding:16px;overflow:hidden}.figure svg,.figure canvas,.figure video,.figure img{max-width:100%;display:block}.figure svg text{font-family:var(--font)}.cap,.hint{color:var(--text-secondary)}.ctl{gap:8px;display:grid}.ctl>label,.ctl>b{justify-content:space-between;gap:8px;font-weight:400;display:flex}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{color:var(--text-primary);border-radius:var(--r-control);cursor:pointer;text-align:left;min-height:40px;transition:background-color var(--d) var(--ease), color var(--d) var(--ease);background:0 0;border:0;align-items:center;gap:8px;padding:0 16px;display:inline-flex}.chip[aria-pressed=true],.chip[aria-current=page]{background:var(--bg-soft)}.chip.on-raise[aria-pressed=true],.chip.on-raise[aria-current=page],.btn.on-raise{background:var(--bg-default)}.chip:disabled{opacity:.5;cursor:not-allowed}.btn{background:var(--bg-soft);color:var(--text-primary);border-radius:var(--r-control);cursor:pointer;border:0;align-items:center;min-height:44px;padding:0 16px;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}@media (min-width:900px){.btn{min-height:54px;padding:0 24px}}.btns{flex-wrap:wrap;gap:8px;display:flex}.range{width:100%;accent-color:var(--fill-strong);min-height:28px;margin:4px 0 6px}.val{color:var(--text-primary);font-weight:400}.readout{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:12px;display:grid}.readout b{font-weight:400;display:block}.readout span{color:var(--text-secondary)}.log{font:var(--type-data);white-space:pre-wrap;min-height:64px;padding:12px 16px;overflow:hidden}.log .dim{color:var(--text-secondary)}.log .hot,.log .ok{color:var(--text-primary)}.code{font:var(--type-data);margin:0;padding:12px 0;overflow-x:auto}.code .ln{white-space:pre;padding:0 16px;display:block}.code .ln.on{background:var(--bg-soft)}.code .c{color:var(--text-secondary)}.code .k{color:var(--text-primary)}.code .pc{background:var(--text-secondary);color:var(--text-primary)}.chip[data-state]{cursor:default;font-weight:400}.chip[data-state=ok]{background:var(--bg-soft);color:var(--text-primary)}.chip[data-state=bad]{background:var(--bg-default);color:var(--text-primary)}.chip[data-state=todo]{color:var(--text-secondary)}.jump{gap:6px;display:grid}.jump button{text-align:left;border-radius:var(--r-control);background:var(--bg-soft);color:var(--text-primary);font:inherit;cursor:pointer;border:0;grid-template-columns:56px minmax(0,1fr);gap:10px;padding:8px 10px;display:grid}.jump button[aria-pressed=true]{background:var(--bg-soft-hover)}.jump .val{color:var(--text-secondary)}.jump [aria-pressed=true] .val,.jump b,.said b,.code .s{color:var(--text-primary)}.gallery{gap:var(--gutter);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.gallery figure{gap:8px;margin:0;display:grid}.gallery img,.gallery video{background:var(--bg-placeholder);width:100%;height:auto;display:block}.gallery figure{min-width:0}.gallery figcaption{color:var(--text-secondary)}.post-body>.gallery.strip{gap:var(--gutter);grid-column:1/-1;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc(5 * var(--col) + 4 * var(--gutter));margin:var(--s10) calc(50% - 50vw) var(--s9) 0;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;padding-right:calc(50vw - 50%);display:grid;overflow-x:auto}.post-body>.gallery.strip::-webkit-scrollbar{display:none}.post-body>.gallery.strip>figure{scroll-snap-align:start}.post-body>.gallery.strip:has(+.strip-nav){margin-bottom:0}.post-body>.strip-nav{margin:var(--s7) 0 var(--s9);grid-column:1/-1;gap:8px;display:flex}.strip-nav button{background:var(--bg-soft);width:54px;height:54px;color:var(--text-primary);cursor:pointer;transition:background-color var(--d) var(--ease);border:0;place-items:center;display:grid}@media (hover:hover) and (pointer:fine){.strip-nav button:hover{background:var(--bg-soft-hover)}}.post-body>.strip-nav+p{margin-top:0}@media (max-width:599px){.post-body>.gallery.strip{grid-auto-columns:calc(8 * var(--col) + 7 * var(--gutter))}}@media (min-width:900px){.post-body>.gallery:has(>:nth-child(2):last-child){grid-template-columns:calc(7 * var(--col) + 6 * var(--gutter)) minmax(0, 1fr)}.post-body>.gallery:has(>:nth-child(2):last-child)~.gallery:has(>:nth-child(2):last-child){grid-template-columns:minmax(0, 1fr) calc(7 * var(--col) + 6 * var(--gutter))}.post-body>.gallery:has(>:nth-child(2):last-child)~.gallery:has(>:nth-child(2):last-child)~.gallery:has(>:nth-child(2):last-child){grid-template-columns:calc(7 * var(--col) + 6 * var(--gutter)) minmax(0, 1fr)}.post-body>.gallery:has(>:nth-child(2):last-child)~.gallery:has(>:nth-child(2):last-child)~.gallery:has(>:nth-child(2):last-child)~.gallery:has(>:nth-child(2):last-child){grid-template-columns:minmax(0, 1fr) calc(7 * var(--col) + 6 * var(--gutter))}}.sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.block{width:calc(100% - 2 * var(--outer));max-width:var(--page-max);margin-inline:auto}.top{z-index:var(--z-header);width:100%;height:var(--header);padding:0 max(var(--outer), calc((100% - var(--page-max)) / 2));background:color-mix(in srgb, var(--bg-default) 96%, transparent);transition:background-color var(--d) var(--ease), color var(--d) var(--ease), top var(--d) var(--ease);view-transition-name:header;justify-content:space-between;align-items:center;gap:24px;display:flex;position:relative;top:0}@view-transition{navigation:auto}.top[data-pinned]{position:sticky}.top[data-hide]{top:calc(-1 * var(--header) - 1px)}::view-transition-group(header){animation-duration:var(--d-page)}::view-transition-old(root){animation:var(--d-page) var(--ease-page) both page-out}::view-transition-new(root){animation:var(--d-page) var(--ease-page) var(--d-page) both page-in}@keyframes page-out{to{opacity:0}}@keyframes page-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}.skip{left:var(--outer);z-index:var(--z-skip);background:var(--bg-inverse);color:var(--text-inverse);padding:8px 12px;position:absolute;top:8px;transform:translateY(-200%)}.skip:focus{transform:none}.top a{text-decoration:none}.top nav{align-items:center;gap:4px;display:flex}@media (min-width:900px){.top nav{gap:12px}}.top nav a,.top .clock{height:32px;color:var(--text-secondary);transition:color var(--d-fast) var(--ease);align-items:center;padding:0 12px;display:inline-flex;position:relative}.top nav a[aria-current=page]{color:var(--text-primary)}.top nav a[aria-current=page]:after{content:"";background:var(--fill-accent);height:2px;position:absolute;bottom:2px;left:12px;right:12px}.top .clock{font-variant-numeric:tabular-nums;gap:.3em;padding-right:0;font-weight:400}.top .menu{width:32px;height:32px;color:inherit;cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:none}.top .menu i{border-block:1px solid;width:20px;height:9px;display:block}.top[data-over]{color:#fff;--text-primary:#fff;--text-secondary:#fff;--fill-accent:var(--text-accent-on-inverse);background:0 0}.sheet{z-index:var(--z-sheet);padding:12px var(--outer) 24px;background:var(--bg-default);opacity:0;pointer-events:none;visibility:hidden;transition:opacity var(--d) var(--ease), visibility 0s var(--d);grid-template-rows:auto 1fr auto;display:grid;position:fixed;inset:0}.sheet[data-open]{opacity:1;pointer-events:auto;visibility:visible;transition:opacity var(--d) var(--ease)}.sheet .bar{justify-content:space-between;align-items:center;height:32px;display:flex}.sheet .bar button{cursor:pointer;background:0 0;border:0;place-items:center;width:32px;height:32px;padding:0;display:grid}.sheet nav{align-self:start}.sheet ul{margin:var(--s11) 0 0;align-content:start;padding:0;list-style:none;display:grid}.sheet ul a{color:var(--text-secondary);transition:color var(--d-fast) var(--ease);padding-block:6px;text-decoration:none;display:block}.sheet ul a[aria-current=page]{color:var(--text-primary)}.sheet .small{font:var(--type-caption);color:var(--text-secondary);gap:16px;display:flex}.sheet .small a{color:var(--text-primary);text-decoration:none}@media (max-width:899px){.top nav{display:none}.top .menu{display:grid}}.block{margin-top:var(--s9)}.block>h1,.block>h2{color:var(--text-secondary);margin-bottom:var(--s6)}.block>p{max-width:calc(6 * var(--col) + 5 * var(--gutter));color:var(--text-primary)}@media (max-width:899px){.block>p{max-width:none}}.block>p+p{margin-top:var(--s5)}.block a,.post-body>p a,.post-body li a,.post-head .links a{color:var(--text-primary);text-underline-offset:.2em;text-decoration-line:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--text-secondary);text-decoration-color:var(--text-secondary);transition:text-decoration-color var(--d-fast) var(--ease)}.block .wordmark{text-decoration:none}.rows{gap:0;margin:0;padding:0;list-style:none;display:grid}.rows.still li{border-top:1px solid var(--border-default);gap:4px;padding:16px 0;text-decoration:none;display:grid}.rows b{color:var(--text-primary);font-weight:400}.rows span{color:var(--text-secondary)}.rows .yr{text-align:right;grid-area:1/2}.rows li:has(.yr){column-gap:var(--gutter);grid-template-columns:minmax(0,1fr) auto}.rows li:has(.yr)>:not(.yr){grid-column:1}.about .rows{border-bottom:1px solid var(--border-default)}.about .rows.still li{padding:var(--s4) 0}.about .rows .yr{color:var(--text-primary);font:var(--type-body)}.post-page{background:var(--bg-default)}.post-body{column-gap:var(--gutter);width:100%;max-width:calc(var(--page-max) + 2 * var(--outer));padding:0 var(--outer);grid-template-columns:repeat(12,minmax(0,1fr));row-gap:0;margin-inline:auto;display:grid}.post-body>*{grid-column:1/-1}@media (min-width:600px){.post-body>*{grid-column:3/span 8}}@media (min-width:1024px){.post-body>*{grid-column:4/span 6}}.post-body>.post-head,.post-body>.wide{grid-column:1/-1}.post-body>.post-head{grid-template-columns:subgrid;margin-top:calc(var(--header) * -1);margin-bottom:var(--s10);display:grid}.post-head>*{grid-column:1/-1}@media (min-width:600px){.post-head>.sum,.post-head>.chapters{grid-column:3/span 8}}@media (min-width:1024px){.post-head>.sum,.post-head>.chapters{grid-column:4/span 6}}@media (min-width:600px){.post-body>h2{padding-right:calc(var(--col) + var(--gutter));grid-column:1/-1}}@media (min-width:900px){.post-head>h1,.post-head>.meta{grid-column:1/span 10}.post-body>h2{padding-right:calc(3 * (var(--col) + var(--gutter)))}}@media (min-width:1200px){.post-body>h2{padding-right:calc(4 * (var(--col) + var(--gutter)))}}.post-head .meta{gap:0 var(--s4);color:var(--text-secondary);flex-wrap:wrap;margin-top:16px;display:flex}.post-head .meta a{color:var(--text-primary)}.post-body>.post-head:not(:has(>.post-hero)){margin-top:var(--s-chapter)}.post-head:not(:has(>.post-hero))>.meta{margin-top:0}.post-head h1{margin-top:12px}.post-head .proof{margin-top:var(--s4)}@media (max-width:1023px){.post-head h1{margin-top:8px}}.post-head .meta a{text-underline-offset:.2em;transition:text-decoration-color var(--d-fast) var(--ease);-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:1px}.post-hero{aspect-ratio:16/9;background:var(--bg-placeholder);view-timeline:--hero block;view-timeline-inset:0;width:auto;max-height:80svh;margin:0 calc(50% - 50vw);position:relative;overflow:hidden}@media (min-width:900px){.post-hero{aspect-ratio:auto;height:min(56.25vw,80svh)}}.post-hero .hero-fix{height:100%;position:relative}@keyframes hold{to{translate:0 100%}}@supports (animation-timeline:view()){.post-hero .hero-fix{animation:linear both hold;animation-timeline:--hero;animation-range:exit-crossing}}.post-hero img,.post-hero video{object-fit:cover;width:100%;height:100%;display:block}.post-hero video{object-position:top}.post-hero .hero-fix:before{content:"";height:calc(var(--header) * 2);z-index:1;pointer-events:none;background:linear-gradient(#0000004d,#0000);position:absolute;inset:0 0 auto}.post-hero.contain .hero-fix{place-items:start center;padding:6% 10% 0;display:grid}.post-hero.contain img{object-fit:contain;object-position:top;width:auto;max-width:100%;height:106%}.post-head .sum{gap:var(--s5);margin-top:var(--s11);display:grid}.post-hero .hero-cap{z-index:var(--z-raise);background:var(--bg-default);max-width:min(616px,100% - 80px);color:var(--text-primary);margin:0;padding:4px 12px;position:absolute;bottom:12px;left:12px}.post-head .where,.post-head .hero-cap{color:var(--text-secondary)}.post-head .post-hero .hero-cap{color:var(--text-primary)}.post-head .links{flex-wrap:wrap;gap:8px 24px;display:flex}.chapters{--text-secondary:var(--text-secondary-on-soft);margin-top:var(--s8);background:var(--bg-soft);padding:var(--s5)}.chapters p{color:var(--text-secondary);margin:0 0 24px}.chapters ol{gap:16px;margin:0;padding:0;list-style:none;display:grid}.post-head .chapters a{text-underline-offset:.2em;gap:16px;padding:0;text-decoration:none;display:flex}.chapters a span{color:var(--text-secondary);font-variant-numeric:tabular-nums;min-width:20px}.tape-scroll{overflow-x:auto}.tape-scroll svg{min-width:520px;display:block}.post-body>p{margin:0}.post-body>p+p,.post-body>*+p,.post-body>*+ul,.post-body>*+figure,.post-body>*+ol{margin-top:var(--s-p)}.post-body>p code,.post-body li code,.steps code{font:var(--type-data);background:var(--bg-soft);padding:0 4px}.post-body>h2{margin:var(--s-chapter) 0 var(--s8);border-top:1px solid var(--text-primary);scroll-margin-top:calc(var(--header) + 16px);padding-top:12px}.post-body>h2.plain{margin:var(--s10) 0 var(--s5)}.post-body>h3{margin:var(--s9) 0 0}.post-body>h3+p{margin-top:var(--s6)}.post-body>ul{margin-bottom:0;padding-left:1.075em}.post-body>ul li+li{margin-top:12px}.post-body>blockquote{margin:var(--s9) 0;text-indent:-.42em;padding:0}.post-body>blockquote p{margin:0}.post-body>blockquote p:before{content:"“"}.post-body>blockquote p:after{content:"”"}.post-body>blockquote+p,.post-body>blockquote+ul{margin-top:0}.post-body>.wide{margin:var(--s10) 0 var(--s9);background:var(--bg-soft);padding:16px}@media (min-width:900px){.post-body>.wide{padding:48px}}.post-body>.wide .card{background:0 0;padding:0}.wide,.ret{--text-secondary:var(--text-secondary-on-soft)}.post-body>.media.wide,.post-body>.gallery.wide{--text-secondary:#757575;background:0 0;padding:0}.post-body>.wide+p,.post-body>.wide+ul{margin-top:0}.post-body>.wide:has(+.wide){margin-bottom:var(--gutter)}.post-body>.wide+.wide{margin-top:0}.wide .gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.wide .media img,.wide .gallery img{background:#fff}.flow{gap:24px;display:grid}.flow ol{justify-content:center;align-items:stretch;margin:0;padding:0;list-style:none;display:flex}.flow li{flex:1 1 0;align-items:flex-start;min-width:0;display:flex}.flow li:first-child{flex:.82 1 0}.fnode{text-align:center;flex:1;align-content:start;justify-items:center;gap:4px;min-width:0;padding:4px 2px;display:grid}.fnode i{color:var(--text-secondary);margin-bottom:2px}.fnode i.on{color:var(--text-primary)}.fnode b{font-weight:400}.fnode span{color:var(--text-secondary)}.fnode em{color:var(--text-primary);margin-top:6px}.edge{background:var(--border-strong);flex:0 0 34px;height:1px;margin-top:40px;position:relative}.edge:before{content:"";border:4.5px solid #0000;border-left:6px solid var(--border-strong);border-right:0;position:absolute;top:-4px;right:-1px}.fnote{text-align:center;color:var(--text-secondary);justify-self:center}.flow .cap{text-align:center}.steps{margin:var(--s6) 0 0;gap:0;padding:0;list-style:none;display:grid}.steps li{border-top:1px solid var(--border-default);padding:16px 0 24px}.steps .k{display:none}.steps h3{margin:0 0 4px;font-weight:400}.steps p{color:var(--text-secondary)}.media{gap:8px;display:grid}.media img,.media video{background:var(--bg-placeholder);width:100%;height:auto;display:block}.ptable{margin:var(--s7) 0 0;gap:12px;display:grid}.ptable .scroll{overflow-x:auto}.ptable table{border-collapse:collapse;width:100%}.ptable th{text-align:left;color:var(--text-secondary);border-top:1px solid var(--border-default);padding:12px 16px 12px 0;font-weight:400}.ptable td{vertical-align:top;border-top:1px solid var(--border-default);padding:12px 16px 12px 0}.pair{gap:var(--gutter);margin:var(--s7) 0 0;border-top:1px solid var(--border-default);grid-template-columns:repeat(2,minmax(0,1fr));padding-top:16px;display:grid}.pair h3{font:var(--type-caption);color:var(--text-secondary)}.pair ul{gap:10px;margin:12px 0 0;padding-left:1.075em;display:grid}.flow.loop ol{padding-bottom:2px}.ret{border:1px solid var(--border-strong);text-align:center;border-top:0;height:26px;margin:0 9%;position:relative}.ret:before{content:"";border:5.5px solid #0000;border-bottom:8px solid var(--border-strong);border-top:0;position:absolute;top:-8px;left:-6px}.ret span{color:var(--text-secondary);background:var(--bg-soft);padding:0 12px;position:relative;top:13px}.flow.loop .fnote{margin-top:12px}.stats{gap:var(--gutter);margin:var(--s7) 0 0;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.stats div{--text-secondary:var(--text-secondary-on-soft);background:var(--bg-soft);align-content:space-between;gap:8px;min-height:120px;padding:16px;display:grid}@media (min-width:900px){.stats div{min-height:200px}}.post-body>.stats{margin:var(--s9) 0}.stats dd{color:var(--text-primary);margin:0}.stats dt{color:var(--text-secondary);text-wrap:balance}.shift{margin:var(--s7) 0 0;gap:14px;display:grid}.shift .sides{grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr);align-items:start;display:grid}.shift h3{font:var(--type-caption);color:var(--text-secondary)}.shift .now h3{color:var(--text-primary)}.shift .was ul{color:var(--text-secondary)}.shift ul{gap:8px;margin:10px 0 0;padding-left:1.075em;display:grid}.shift .arrow,.fixes .arrow{color:var(--text-primary);place-self:start center;margin-top:2px;font-weight:400}.shift .fnote{margin:0}.fixes{margin:var(--s7) 0 0;gap:8px;display:grid}.fixes .fx-head{color:var(--text-secondary);grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr);display:grid}.fixes ol{gap:0;margin:0;padding:0;list-style:none;display:grid}.fixes li{border-top:1px solid var(--border-default);grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr);align-items:stretch;padding:12px 0;display:grid}.fixes p{margin:0}.fixes .bad{color:var(--text-secondary)}.bugs{margin:var(--s7) 0 0;counter-reset:bug;gap:var(--s6) var(--gutter);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));padding:0;list-style:none;display:grid}.bugs li{counter-increment:bug;border-top:1px solid var(--border-default);align-content:start;gap:8px;padding-top:16px;display:grid}.bugs li:before{content:counter(bug, decimal-leading-zero);color:var(--text-secondary)}.strip{margin:var(--s7) 0 0;gap:8px;display:grid}.strip ol{gap:2px;margin:0;padding:0;list-style:none;display:flex}.strip li{background:var(--bg-soft-hover);flex-basis:0;gap:2px;min-width:0;padding:10px 8px;display:grid;overflow:hidden}.strip li.hot{background:var(--fill-strong);color:var(--text-inverse)}.strip b{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.strip li span{opacity:.8;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.strip .axis{color:var(--text-secondary);justify-content:space-between;display:flex}.bars{margin:var(--s7) 0 0;gap:14px;display:grid}.bars ul{gap:14px;margin:0;padding:0;list-style:none;display:grid}.bars li{grid-template-columns:minmax(120px,1.1fr) minmax(0,3fr) auto;align-items:center;gap:16px;display:grid}.bars .track{background:var(--bg-soft);height:12px;overflow:hidden}.bars .fill{background:var(--text-secondary);transform-origin:0;height:100%;display:block}.bars .fill.hot{background:var(--fill-strong)}.bars b{text-align:right;min-width:56px}@media (hover:hover) and (pointer:fine){.chip:hover:not(:disabled):not([data-state]){background:var(--bg-soft)}.chip.on-raise:hover:not(:disabled){background:var(--bg-default)}.btn:hover:not(:disabled){background:var(--bg-soft-hover)}.sheet ul a:hover,.top nav a:hover{color:var(--text-primary)}.top .menu:hover,.sheet .bar button:hover{background:var(--bg-soft)}.top[data-over] .menu:hover{background:#fff3}.post-head .chapters a:hover{text-decoration:underline;text-decoration-thickness:1px}.post-head .meta a:hover,.foot li a:hover,.work a:hover b{text-decoration-color:currentColor}.block a:hover,.post-body>p a:hover,.post-body li a:hover,.post-head .links a:hover{-webkit-text-decoration-color:var(--text-accent);text-decoration-color:var(--text-accent)}}@keyframes rise{0%{opacity:0;transform:translateY(.625rem)}}@keyframes grow{0%{opacity:0}}.js .post-page img:not([data-no-reveal]),.js .works img,.js .gallery img{opacity:0;transition:opacity var(--d-image) var(--ease-reveal)}.js .post-page img[data-in-view][data-loaded],.js .works img[data-in-view][data-loaded],.js .gallery img[data-in-view][data-loaded]{opacity:1}.js .works .work{opacity:0;transition:opacity var(--d-reveal) var(--ease), transform var(--d-reveal) var(--ease);transition-delay:var(--dly,0s);transform:translateY(10px)}.js .works .work[data-in-viewport]{opacity:1;transform:none}@media (prefers-reduced-motion:no-preference){.post-head>.meta,.post-head>h1,.intro>*{animation:rise var(--d) var(--ease-hero) .2s both}@supports (animation-timeline:view()){.bars .fill{animation:linear both grow;animation-timeline:view();animation-range:entry 20% cover 45%}}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:0s!important;transition-delay:0s!important;animation-duration:1ms!important;animation-iteration-count:1!important}.js img,.js .works .work{opacity:1!important;transform:none!important}}@media (max-width:1199px){.duo{grid-template-columns:minmax(0,1fr)}}@media (max-width:899px){.flow ol{flex-direction:column;align-items:center}.flow li,.flow li:first-child{flex-direction:column;flex:none;align-items:center;width:100%}.edge{flex:none;align-self:center;width:1px;height:26px;margin:4px 0}.edge:before{border:4.5px solid #0000;border-top:6px solid var(--border-strong);border-bottom:0;top:auto;bottom:-1px;right:-4px}}@media (max-width:599px){.pair{grid-template-columns:minmax(0,1fr)}.gallery:not(.strip,:has(>:nth-child(2):last-child)){grid-template-columns:minmax(0,1fr)}.wide .gallery:not(:has(>:nth-child(2):last-child)){grid-template-columns:minmax(0,1fr)}.shift .sides{grid-template-columns:minmax(0,1fr)}.shift .arrow,.fixes .arrow{height:36px;transform:rotate(90deg)}.fixes .fx-head{display:none}.fixes li{grid-template-columns:minmax(0,1fr)}.bars li{grid-template-columns:minmax(0,1fr) auto;gap:6px 10px}.bars .track{grid-area:2/1/auto/-1}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stats dd{overflow-wrap:normal}.strip ol{flex-direction:column}.strip li,.strip li:first-child,.strip li:last-child{flex-basis:auto;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;padding:8px 12px;flex-grow:0!important}.strip .axis{display:none}.card{padding:18px}.figure{padding:8px}.post-hero:not(:has(video)){aspect-ratio:auto;max-height:none}.post-hero:not(:has(video)) img{height:auto}.post-hero.contain{aspect-ratio:auto}.post-hero.contain .hero-fix{padding:10% 6% 0}.post-hero.contain img{height:auto}}.intro{margin-top:var(--s13)}.intro>h1,.block.intro>h1{color:var(--text-primary);margin:0}@media (min-width:900px){.intro>h1,.block.intro>h1{max-width:calc(10 * var(--col) + 9 * var(--gutter))}}.intro h1 span{color:var(--text-secondary);display:block}.intro>p{margin-top:var(--s9);color:var(--text-primary)}@media (min-width:600px){.intro>p,.about .block>p,.about .block>.rows{margin-left:calc(2 * (var(--col) + var(--gutter)));max-width:calc(8 * var(--col) + 7 * var(--gutter))}}@media (min-width:900px){.intro>p,.about .block>p,.about .block>.rows{margin-left:calc(3 * (var(--col) + var(--gutter)));max-width:calc(6 * var(--col) + 5 * var(--gutter))}}.block.lost>h1{color:var(--text-primary);margin:0}.lost>p{margin-top:var(--s6);max-width:none}.lost .go{flex-wrap:wrap;gap:8px 24px;display:flex}.intro.home>h1{letter-spacing:-.015em;text-wrap:balance;max-width:none;font-size:clamp(40px,8.334vw,120px);font-weight:500;font-stretch:100%;line-height:1.02}.intro.home>p{margin-top:40px;margin-left:0}.block.index{justify-content:space-between;gap:var(--gutter);margin-top:var(--s-foot);border-top:1px solid var(--text-primary);font:var(--type-caption);color:var(--text-secondary);padding-top:12px;display:flex}.block.index>h2{color:var(--text-primary);margin:0}.works.lead{margin-top:32px}@media (min-width:900px){.works.lead{grid-template-columns:repeat(3,minmax(0,1fr))}.works.lead>:first-child{grid-column:1/-1}}.works{margin-top:var(--s10);gap:var(--s9) var(--gutter);grid-template-columns:minmax(0,1fr);align-items:start;padding:0;list-style:none;display:grid}@media (min-width:900px){.works{grid-template-columns:repeat(2,minmax(0,1fr))}}.work a{gap:0;text-decoration:none;display:grid}.work:has(a:focus-visible){outline:2px solid var(--fill-accent);outline-offset:2px}.work:has(a:focus-visible) a:focus-visible{outline:none}.work .fig{aspect-ratio:16/9;background:var(--bg-placeholder);margin-bottom:var(--s4);display:block;overflow:hidden}.work .fig.field{background:#1a00ff}.work .fig.two{gap:var(--gutter);background:0 0;grid-template-columns:1fr 1fr;display:grid}.work .fig.mat{justify-content:center;align-items:flex-end;gap:3%;padding:5% 18% 0;display:flex}.work .fig.mat:not(.two) img{object-fit:cover;object-position:top;width:100%;height:auto;max-height:100%}.work .fig.mat img{object-fit:contain;object-position:bottom;width:auto;max-width:100%;height:100%}.work .fig.mat.fit{align-items:center;padding:6% 18%}.work .fig.mat.fit img{object-fit:contain;object-position:center;width:100%;height:auto;max-height:100%}.work .fig.mat.two{padding:5% 8% 0}.work .fig.mat.two img{object-fit:cover;object-position:top;max-width:46%;height:100%}.work .fig img,.work .fig video{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.work .fig.two img{object-position:top}.work b{text-wrap:balance;text-underline-offset:.2em;transition:text-decoration-color var(--d-fast) var(--ease);font-weight:500;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:1px;display:block}.work .meta{gap:var(--s4);margin-top:4px;display:flex}.work .meta span{color:var(--text-secondary)}.work .proof{margin-top:8px}.works.topic .who{display:none}.upnext{margin-top:var(--s-chapter)}.upnext>h2{color:var(--text-primary);border-top:1px solid var(--text-primary);margin-bottom:var(--s10);padding-top:12px}.upnext .works{margin-top:0}.home-black{--bg-default:#000;--bg-placeholder:#0a0a0a;--ink-accent:#1a00ff}.home-black+.foot{margin-top:0}.home-light{--ink-accent:#1a00ff}.plate{margin-top:var(--s-foot);color:inherit;text-decoration:none;display:block}.plate-head{border-top:1px solid var(--border-default);align-items:end;gap:12px;padding-top:16px;display:grid}.plate-fig{letter-spacing:-.02em;text-wrap:balance;transition:font-weight var(--d) var(--ease);font-size:clamp(48px,8.334vw,120px);font-weight:400;font-stretch:100%;line-height:1}.plate-head h2{color:var(--text-primary);text-wrap:balance;margin:0;font-size:clamp(20px,1.95vw,28px);font-weight:400;line-height:1.14}.plate-head p{max-width:none;font:var(--type-caption);color:var(--text-secondary);margin:12px 0 0}.notation{gap:24px var(--gutter);grid-template-columns:repeat(4,minmax(0,1fr));margin:24px 0 0;padding:0 0 clamp(32px,4vw,56px);list-style:none;display:grid}.notation li{min-width:0;color:var(--text-primary)}.notation svg{aspect-ratio:1;fill:none;stroke:currentColor;stroke-width:9px;width:100%;max-width:96px;margin-bottom:14px;font-family:inherit;display:block;overflow:visible}.notation svg .f{fill:currentColor;stroke:none}.notation svg.on{color:var(--text-accent)}.notation span{font:var(--type-caption);color:var(--text-secondary);text-wrap:balance;display:block}.plate-wide.field{background:var(--ink-accent)}.plate-wide video,.plate-wide img{aspect-ratio:16/9;object-fit:cover;width:100%;display:block}.plate-details{gap:var(--gutter);padding-top:var(--gutter);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.plate-details figure{margin:0}.plate-details figure:first-child{grid-column:1/-1}.plate-details img{aspect-ratio:1;object-fit:cover;background:var(--bg-placeholder);width:100%;display:block}.plate-details figcaption{font:var(--type-caption);color:var(--text-secondary);margin-top:8px}.close-block{column-gap:var(--gutter);margin-top:var(--s-foot);padding-inline:max(var(--outer), calc((100% - var(--page-max)) / 2));background:var(--ink-accent);color:#fff;grid-template-columns:repeat(12,minmax(0,1fr));text-decoration:none;display:grid;overflow:hidden}.close-block span{text-transform:uppercase;letter-spacing:-.025em;grid-column:1/-1;padding-block:clamp(48px,6vw,88px);font-size:clamp(40px,8.9vw,128px);font-weight:800;font-stretch:125%;line-height:.94}.close-block img{object-fit:contain;object-position:bottom;grid-column:1/-1;width:100%;max-height:760px}@media (hover:hover){.plate:hover .plate-fig{font-weight:500}}@media (min-width:900px){.plate-head{column-gap:var(--gutter);gap:0 var(--gutter);grid-template-columns:repeat(12,minmax(0,1fr))}.plate-fig{grid-column:1/8}.plate-head>div{grid-column:8/13;padding-bottom:12px}.notation{grid-template-columns:repeat(8,minmax(0,1fr))}.plate-details{grid-template-columns:repeat(3,minmax(0,1fr))}.plate-details figure:first-child{grid-column:auto}.close-block span{grid-column:1/8;align-self:end}.close-block img{grid-column:8/13;align-self:end}}.foot{margin-top:var(--s-foot);padding-block:var(--s8) var(--s6)}.foot-in{width:calc(100% - 2 * var(--outer));max-width:var(--page-max);gap:var(--s7) var(--gutter);grid-template-columns:repeat(2,minmax(0,1fr));margin-inline:auto;display:grid}.foot-in>.wordmark{grid-column:1/-1;justify-self:start}.foot h2{font:var(--type-caption);color:var(--text-secondary);margin:0 0 var(--s4)}.foot ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.foot li{color:var(--text-primary)}.foot li a{text-underline-offset:.2em;transition:text-decoration-color var(--d-fast) var(--ease);-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:1px}.foot .projects{grid-column:1/-1}.foot .legal{color:var(--text-secondary);border-top:1px solid var(--border-default);padding-top:var(--s4);grid-column:1/-1}@media (min-width:900px){.foot-in{grid-template-columns:repeat(12,minmax(0,1fr))}.foot-in>.wordmark{grid-column:1/span 3;align-self:start}.foot .topics{grid-column:4/span 2}.foot .projects{grid-column:6/span 4}.foot .contact{grid-column:10/span 3}}.about .block{margin-top:var(--s-chapter)}.about .block>h2{margin:0 0 var(--s9);color:var(--text-primary);text-wrap:balance}.about .block>p+p{margin-top:var(--s-p)}@media (min-width:900px){.about .block>h2{max-width:calc(10 * var(--col) + 9 * var(--gutter))}}.principles{gap:var(--s10);margin:0;padding:0;list-style:none;display:grid}.principles>li{gap:var(--s6) var(--gutter);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}@media (min-width:900px){.principles>li{grid-template-columns:repeat(12,minmax(0,1fr))}.principles>li>div{top:calc(var(--header) + var(--s5));grid-column:1/span 7;position:sticky}.principles>li>figure{grid-column:8/-1}}.principles figure{margin:0}.principles>li>div{padding-right:var(--s6)}.principles figure img{background:var(--bg-placeholder);width:100%;height:auto;display:block}@media (max-width:899px){.principles figure img{object-fit:cover;width:auto;max-width:100%;height:320px}}.principles figcaption{margin-top:var(--s3);color:var(--text-secondary)}.principles figcaption a{color:inherit;text-underline-offset:.2em;transition:text-decoration-color var(--d-fast) var(--ease);-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:1px}@media (hover:hover) and (pointer:fine){.principles figcaption a:hover{color:var(--text-primary);-webkit-text-decoration-color:var(--text-accent);text-decoration-color:var(--text-accent)}}.principles h3,.principles p{text-wrap:balance;margin:0}.principles p{color:var(--text-secondary)}.about .block.intro{margin-top:var(--s13)}.formula{background:var(--bg-soft);font:var(--type-data);padding:18px 20px;overflow-x:auto}.diagram>:is(figcaption,.cap){max-width:720px;margin-inline:auto}.diagram img{mix-blend-mode:multiply;width:100%;max-width:720px;height:auto;margin:0 auto;display:block}.diagram figcaption{color:var(--text-secondary);text-align:center;margin-top:10px}.sources{color:var(--text-secondary);padding-left:1.075em}.sources li{margin:6px 0}.post-head .links a{padding-block:12px;display:inline-block}@media (max-width:599px){:is(.card.figure:has(>svg[viewBox="0 0 600 300"]),.card.figure:has(>svg[viewBox="0 0 600 180"]),.wide.diagram){overflow-x:auto}.card.figure>svg[viewBox="0 0 600 300"],.card.figure>svg[viewBox="0 0 600 180"]{min-width:560px}.wide.diagram img{min-width:640px}.formula{white-space:pre-wrap;overflow-wrap:anywhere}}.post-body>h2+.wide,.post-body>h2+figure{margin-top:0}.post-body>:has(+h2){margin-bottom:0!important}.post-body>:is(p,ul)+:not(p,ul,h2,h3,.wide,.stats,blockquote){margin-top:var(--s10)}.post-body>:not(p,ul,h2,h3,.wide,.stats,blockquote,header)+:is(p,ul){margin-top:var(--s9)}.post-body>.wide+:is(figure,.steps,.stats){margin-top:0}.vid{min-width:0;display:block;position:relative}.hero-fix>.vid,.work .fig>.vid{width:100%;height:100%}.vid-btn{z-index:var(--z-raise);color:#fff;cursor:pointer;width:36px;height:36px;transition:opacity var(--d) var(--ease);background:#00000080;border:0;place-items:center;padding:0;display:grid;position:absolute;bottom:12px;right:12px}.vid-btn svg{display:block}.top .menu,.sheet .bar button{position:relative}.top .menu:after,.sheet .bar button:after{content:"";position:absolute;inset:-6px}.vid-btn:after{content:"";position:absolute;inset:-4px}@media (pointer:coarse){.chip{min-height:44px;margin-block:-2px;padding-block:2px}.top nav a{height:44px;margin-block:-6px;padding-block:6px}.top nav a[aria-current=page]:after{bottom:8px}.foot ul{gap:0}.foot li a{align-items:center;min-height:44px;display:flex}}@media (hover:hover) and (pointer:fine){.vid-btn{opacity:0}.vid:hover .vid-btn,.vid-btn:focus-visible{opacity:1}.vid:has(video[data-paused-manual]) .vid-btn{opacity:1}}@media (max-width:899px){.post-hero:has(video){aspect-ratio:auto;height:min(133.333vw,80svh)}}.post-body>h2+p,.post-body>h2+ul{margin-top:0}
