@font-face{font-family:Charis;src:url(/assets/charis-regular-Rzt_kuiG.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Charis;src:url(/assets/charis-italic-JkHTLuGw.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Charis;src:url(/assets/charis-bold-BdCOrzi8.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Charis name;src:url(/assets/charis-bold-name-CZ_mQhq8.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap;unicode-range:U+20,U+62,U+65,U+69,U+6C,U+6F,U+72,U+74,U+76}@font-face{font-family:IBM Plex Sans;src:url(/assets/plex-sans-latin-wght-IvpUvPa2.woff2)format("woff2");font-weight:100 700;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/assets/plex-mono-latin-400-DMJ8VG8y.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Charis fallback mac;src:local(Charter Roman),local(Charter-Roman),local(Charter);size-adjust:101.63%}@font-face{font-family:Charis fallback mac;src:local(Charter Bold),local(Charter-Bold);font-weight:700;size-adjust:102.63%}@font-face{font-family:Charis fallback mac;src:local(Charter Italic),local(Charter-Italic);font-style:italic;size-adjust:99.11%}@font-face{font-family:Charis fallback;src:local(Georgia);size-adjust:101.09%}@font-face{font-family:Charis fallback;src:local(Georgia Bold),local(Georgia-Bold);font-weight:700;size-adjust:93.17%}@font-face{font-family:Charis fallback;src:local(Georgia Italic),local(Georgia-Italic);font-style:italic;size-adjust:92.23%}@font-face{font-family:Plex fallback;src:local(Helvetica Neue);font-weight:100 700;size-adjust:99.34%}@font-face{font-family:Plex fallback win;src:local(Arial);font-weight:100 700;size-adjust:100.3%}:root{--r-1:6px;--r-2:8px;--r-3:12px;--font-voice:Charis, "Charis fallback mac", "Charis fallback", Charter, "Bitstream Charter", Georgia, serif;--font-furniture:"IBM Plex Sans", "Plex fallback", "Plex fallback win", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--text-label:.8125rem;--text-furniture:.875rem;--text-sub:.9375rem;--text-body:1.125rem;--text-reading:1.1875rem;--text-title:1.25rem;--text-name:1.75rem;--text-intro:1.125rem;--column:38rem;--wide:50rem;--gutter:1.5rem;--settle:cubic-bezier(.32, .72, 0, 1);--settle-ms:.52s;font-family:var(--font-voice);font-synthesis:none;font-kerning:normal;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ground:oklch(100% 0 0);--fill:oklch(25% .01 85/.05);--line:oklch(25% .01 85/.12);--strong:oklch(20% .008 85);--text:oklch(33% .008 90);--reading:oklch(33% .008 90);--quiet:oklch(52% .008 90);--faint:oklch(66% .008 90);--accent:oklch(56% .19 33);--surface:oklch(100% 0 0/.88);--surface-2:oklch(25% .01 85/.08);--surface-shadow:oklch(25% .01 85/.14)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ground:oklch(16.5% .004 85);--fill:oklch(100% 0 0/.06);--line:oklch(29% .005 85);--strong:oklch(97% .004 85);--text:oklch(89% .005 85);--reading:oklch(85% .005 85);--quiet:oklch(69% .006 85);--faint:oklch(54% .006 85);--accent:oklch(72% .15 38);--surface:oklch(20% .004 85/.88);--surface-2:oklch(100% 0 0/.1);--surface-shadow:oklch(0% 0 0/.55)}}*{box-sizing:border-box}body{background:var(--ground);color:var(--text);font-size:var(--text-body);margin:0;line-height:1.55}h1,h2,h3,p,ul,ol,figure,blockquote{margin:0}h1,h2,h3{font:inherit;color:var(--strong);text-wrap:balance}ul[role=list]{padding:0;list-style:none}a{color:inherit;touch-action:manipulation;text-decoration:none;transition:color .15s ease-out,text-decoration-color .15s ease-out}button{font:inherit;color:inherit;touch-action:manipulation}:is(a,button):focus-visible{outline:2px solid var(--strong);outline-offset:3px;border-radius:4px}main:focus{outline:none}::selection{background:color-mix(in oklch, var(--accent) 22%, transparent);color:var(--strong)}.site{min-height:100dvh;display:flow-root;overflow-x:clip}.column{max-width:calc(var(--column) + 2 * var(--gutter));padding:0 var(--gutter);grid-template-columns:minmax(0,1fr);margin-inline:auto;display:grid}.ui{font-family:var(--font-furniture);font-size:var(--text-furniture);font-variant-numeric:tabular-nums;line-height:1.4}.quiet{color:var(--quiet)}.name{font-size:var(--text-name);letter-spacing:-.015em;color:var(--strong);font-weight:700;line-height:1.2}.draft-flag{font-size:var(--text-label);color:var(--quiet);margin-inline-start:.6em}.masthead{justify-content:space-between;align-items:center;gap:1rem;min-height:44px;padding-block:clamp(1rem,4vh,2rem) 0;display:flex}.brand{min-height:44px;font-family:"Charis name", var(--font-voice);letter-spacing:-.01em;color:var(--strong);align-items:center;font-size:1.125rem;font-weight:700;display:inline-flex}.footer{color:var(--quiet);justify-content:space-between;gap:1rem;padding-block:5rem 3rem;display:flex}.email{color:var(--quiet);align-items:center;gap:.375rem;display:inline-flex;position:relative}.email-words{position:relative}.email-words>*,.email svg{transition:opacity .15s ease-out}.email-address{white-space:nowrap;position:absolute;top:0;right:0}.email-address,.email:focus-visible .email-label{opacity:0}.email:focus-visible .email-address{opacity:1}.email:before{content:"";height:44px;position:absolute;inset:50% -.4rem auto;translate:0 -50%}.at:before{content:"@"}.intro{font-size:var(--text-intro);color:var(--quiet);padding-top:clamp(2rem,7vh,5.5rem);line-height:1.6}.intro-name{color:var(--strong)}.invites{justify-items:start;gap:.25rem;margin-top:1.75rem;display:grid}.invite{letter-spacing:-.01em;text-wrap:pretty;font-size:1.25rem;line-height:1.45}.invite-link{color:var(--strong);white-space:nowrap;text-underline-offset:.2em;padding-block:.25em;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:1px;transition:color .2s ease-out,text-decoration-color .15s ease-out}.invite[data-playing] .invite-link{color:var(--piece,var(--strong))}@media (prefers-color-scheme:dark){.invite[data-playing] .invite-link{color:var(--piece-dark,var(--strong))}}.invite-link svg{vertical-align:-.1em;margin-inline-start:.2em;overflow:visible}.invite-link svg path{transform-box:fill-box;transform-origin:0;transition:transform .2s var(--settle)}.reel>.clip-frame{margin-top:2rem}.unfold-action{white-space:nowrap;border-radius:var(--r-2);min-height:36px;color:var(--quiet);cursor:pointer;background:0 0;border:0;align-items:center;gap:.3rem;padding:0 .5rem;font-weight:500;transition:color .15s ease-out,background-color .15s ease-out,transform .15s ease-out;display:inline-flex;position:relative}.unfold-action:before{content:"";position:absolute;inset:-4px 0}.unfold-action[aria-pressed=true]{color:var(--strong);background:var(--surface-2)}.unfold-action:active{transform:scale(.96)}.unfold-action kbd{background:var(--fill);font:inherit;color:var(--quiet);opacity:0;border-radius:4px;padding:0 .3em;font-size:.75rem;transition:opacity .15s ease-out}[data-slow-key]:focus-within:not(:has(:is(textarea,select,input:not([type=radio],[type=checkbox],[type=range],[type=button],[type=submit],[type=reset]),[contenteditable]:not([contenteditable=false])):focus)) .unfold-action kbd{opacity:1}@supports not selector(:has(a)){[data-slow-key]:focus-within .unfold-action kbd{opacity:1}}@media (hover:none){.unfold-action kbd{display:none}}.home-more{gap:1.25rem;margin-top:clamp(4rem,12vh,7rem);display:grid}.section-title{color:var(--quiet)}.rows{display:grid}.row{border-radius:var(--r-2);grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:.25rem 1.5rem;min-height:44px;margin-inline:-.65rem;padding:.55rem .65rem;transition:background-color .12s ease-out;display:grid}.row-title{color:var(--strong);font-size:var(--text-title);text-wrap:pretty;overflow-wrap:anywhere;line-height:1.35}.row-date{color:var(--quiet);font-size:var(--text-label);white-space:nowrap}.empty{color:var(--quiet);padding-block:.75rem}.page,.article{grid-template-columns:minmax(0,1fr);justify-items:start;gap:.4rem;display:grid}.page{padding-top:clamp(2.5rem,10vh,5.5rem)}.page>.rows{justify-self:stretch;margin-top:1.5rem}.back-inline{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--faint);text-decoration-color:var(--faint)}.article .name{text-wrap:balance}.prose{font-size:var(--text-reading);word-spacing:-.035em;color:var(--reading);overflow-wrap:break-word;text-wrap:pretty;justify-self:stretch;margin-block:1.75rem 1rem;line-height:1.55}.prose :is(code,pre,figcaption){word-spacing:normal}.prose>*+*{margin-top:1.05em}.prose :is(h2,h3){letter-spacing:-.01em;color:var(--strong);margin-top:2.1em;font-size:1.08em;font-weight:700;line-height:1.3}.prose :is(h2,h3)+*{margin-top:.45em}.prose a{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--faint);text-decoration-color:var(--faint)}.prose ul,.prose ol{padding-inline-start:1.2em}.prose li+li{margin-top:.35em}.prose li::marker{color:var(--faint)}.prose blockquote{padding-inline-start:1.25em;font-style:italic;position:relative}.prose blockquote:before{content:"";background:var(--line);border-radius:3px;width:3px;position:absolute;inset-block:.2em;inset-inline-start:0}.prose code{font-family:var(--font-mono);font-size:.82em}.prose :not(pre)>code{border-radius:var(--r-1);background:var(--fill);padding:.1em .3em}.prose pre{border-radius:var(--r-2);border:1px solid var(--line);padding:1em 1.15em;line-height:1.55;overflow-x:auto}.code span{color:var(--diffs-token-light)}@media (prefers-color-scheme:dark){.code span{color:var(--diffs-token-dark)}}.prose img,.prose video{border-radius:var(--r-2);max-width:100%;height:auto}.prose video{aspect-ratio:16/10;background:var(--fill);width:100%;display:block}.prose figure{justify-items:start;gap:.5rem;margin-block:1.75em;margin-inline:0;display:grid}.prose figure :is(img,video){box-shadow:0 0 0 1px var(--line);display:block}.prose figcaption{font-family:var(--font-furniture);font-size:var(--text-label);color:var(--quiet);text-wrap:balance;line-height:1.45}.post{padding-top:.5rem}.post-head{justify-self:stretch;display:grid}.post-heading{gap:.5rem;margin-top:clamp(1.5rem,4vw,2.25rem);display:grid}.post-head+.prose{margin-top:clamp(2.25rem,5vw,3rem)}.cover{aspect-ratio:16/10;width:min(100%,21rem);color:var(--strong);-webkit-tap-highlight-color:transparent;margin-top:clamp(.5rem,3vw,1.5rem);position:relative}.cover-wash{background:var(--wash-light);--edges:radial-gradient(closest-side, #000 55%, transparent);-webkit-mask-image:var(--grain), var(--edges);-webkit-mask-image:var(--grain), var(--edges);mask-image:var(--grain), var(--edges);-webkit-mask-composite:source-in;position:absolute;inset:-14% -10%;-webkit-mask-size:160px,100% 100%;mask-size:160px,100% 100%;-webkit-mask-composite:source-in;mask-composite:intersect}@media (prefers-color-scheme:dark){.cover-wash{background:var(--wash-dark)}}.cover-art{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.cover-line,.cover-arc{fill:none;stroke:currentColor;stroke-opacity:.5;stroke-width:1px}.cover-bar{stroke:currentColor;stroke-opacity:.55;stroke-width:3.5px;stroke-linecap:round}.cover-bar-mark{stroke:var(--accent);stroke-opacity:1}.cover-ink{fill:currentColor;fill-opacity:.72}.cover-mark{fill:var(--accent)}@media (prefers-reduced-motion:no-preference){.cover-wash{animation:1.4s cubic-bezier(.2,0,0,1) both cover-wash}.cover-line{stroke-dasharray:1;animation:cover-draw 1.1s var(--settle) both;animation-delay:calc(var(--i,0) * 70ms)}.cover-arc,.cover-bar{animation:.7s ease-out both cover-in;animation-delay:calc(var(--i,0) * 40ms)}.cover-ink,.cover-mark{animation:.6s ease-out .35s both cover-in}}@keyframes cover-wash{0%{opacity:0;transform:scale(.96)}}@keyframes cover-draw{0%{stroke-dashoffset:1px}}@keyframes cover-in{0%{opacity:0}}.clip{aspect-ratio:16/10;border-radius:var(--r-3);background:var(--fill) center / cover no-repeat;width:100%;height:auto;box-shadow:0 0 0 1px var(--line);display:block}.clip-frame{justify-self:stretch;position:relative}.page>.clip-frame{margin-top:1.5rem}.clip-frame .clip-toggle{position:absolute;bottom:10px;right:10px}.clip-toggle{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;background:#00000080;border:0;border-radius:50%;place-items:center;width:28px;height:28px;padding:0;transition:opacity .15s ease-out,transform .15s ease-out;display:grid}.clip-toggle[hidden]{display:none}.clip-toggle:before{content:"";position:absolute;inset:-8px}.clip-toggle:active{transform:scale(.96)}.craft-stage{isolation:isolate;border-radius:var(--r-3);box-shadow:0 0 0 1px var(--line);grid-template-columns:minmax(0,1fr);display:grid;overflow:clip}.craft-stage[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:oklch(34% .008 85);background:#fff}.craft-stage[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:oklch(89% .006 250);background:oklch(15.5% .004 55)}.bess-live{background:oklch(96% .02 85);height:min(34rem,75svh);overflow:hidden}.bess-live iframe{border:0;transition:opacity .2s ease-out;display:block}.bess-live iframe:not([data-loaded]){opacity:0}@media (prefers-color-scheme:dark){.craft-stage{box-shadow:0 0 0 1px oklch(100% 0 0/.1)}}.piece-head{flex-wrap:wrap;justify-content:space-between;justify-self:stretch;align-items:center;gap:.5rem 1rem;display:flex}.piece-stage{width:min(var(--wide), 100vw - 2 * var(--gutter));justify-self:center;margin-top:1.75rem}.piece-stage[data-bleed]{width:100vw}.piece-stage[data-bleed] .craft-stage{box-shadow:0 -1px 0 var(--line), 0 1px 0 var(--line);border-radius:0}.craft-steps{flex-wrap:wrap;justify-content:space-between;justify-self:stretch;gap:0 1.5rem;margin-top:1.5rem;display:flex}.craft-step{min-height:44px;color:var(--quiet);grid-auto-flow:column;align-content:center;align-items:baseline;gap:.2rem;font-weight:500;display:inline-grid}.craft-step[rel=next]{margin-inline-start:auto}.piece-head>.unfold-action{margin-inline:-.5rem}.back{min-height:44px;color:var(--quiet);grid-auto-flow:column;align-content:center;align-items:baseline;gap:.2rem;margin-inline-start:-.35rem;font-weight:500;display:inline-grid}.back svg,.craft-step svg{translate:0 calc(50% - .5cap)}.page:has(>.back-top){padding-top:.5rem}.back-top{margin-inline-start:-2.6px}.page:has(.piece-title){padding-top:calc(.9rem + 44px + clamp(1.5rem,8vh,4.5rem))}.piece-title{align-items:baseline;min-width:0;display:flex;position:relative}.piece-back{display:flex;position:absolute;bottom:100%;left:0}@media (width>=52rem){.piece-back{justify-content:flex-end;width:0;position:static}.piece-back>.back{margin-inline:0 1.5rem}}.skip{z-index:3;background:var(--ground);color:var(--strong);font-family:var(--font-furniture);padding:12px;position:absolute;top:0;transform:translateY(-150%)}.skip:focus{transform:none}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (hover:hover) and (pointer:fine){.email:hover,.back:hover,.craft-step:hover,.unfold-action:hover{color:var(--strong)}.email:hover .email-label{opacity:0}.email:hover .email-address{opacity:1}.unfold-action:hover{background:var(--fill)}.unfold-action[aria-pressed=true]:hover{background:var(--surface-2)}.row:hover{background:var(--fill)}.prose a:hover{-webkit-text-decoration-color:var(--strong);text-decoration-color:var(--strong)}.invite-link:hover{text-decoration-color:currentColor}.invite-link:hover svg path:first-child{transform:scaleX(1.26667)}.invite-link:hover svg path:last-child{transform:translate(4px)}.clip-toggle{opacity:0}.clip-frame:hover .clip-toggle,.clip-toggle:focus-visible,.clip-toggle[data-held]{opacity:1}}@media (width<=40rem){.intro{padding-top:2.5rem}}@media (width<=30rem){.prose{font-size:1.0625rem;line-height:1.55}.cover{width:min(100%,16rem)}.row{grid-template-columns:minmax(0,1fr)}.footer{flex-direction:column;gap:.25rem}.footer .email-address{left:0;right:auto}.footer .email:focus-visible svg{opacity:0}}@media (width<=30rem) and (hover:hover) and (pointer:fine){.footer .email:hover svg{opacity:0}}@media (prefers-reduced-motion:reduce){.unfold-action{transition:none}.unfold-action:active,.clip-toggle:active{transform:none}.invite-link svg path{transition:none}}
