@font-face{font-family:literata;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/literata.woff2)format("woff2")}@font-face{font-family:literata;font-style:italic;font-weight:400 700;font-display:swap;src:url(/fonts/literata-italic.woff2)format("woff2")}@font-face{font-family:hanken grotesk;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/hanken-grotesk.woff2)format("woff2")}@font-face{font-family:jetbrains mono;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/jetbrains-mono.woff2)format("woff2")}:root{--ground:#FCFCFE;--sheet:#FFFFFF;--ink:#231F38;--ink-2:#575080;--accent:#473B8F;--lav-500:#8F85C2;--lav-300:#C9C3E4;--lav-200:#DDD9EE;--lav-100:#F3F1FA;--code-bg:#F8F7FC;--code-string:#1F5C40;--code-number:#8A2B6A;--code-type:#1D4F7A;--code-comment:#4E4D63;--serif:"Literata", Georgia, "Times New Roman", serif;--sans:"Hanken Grotesk", ui-sans-serif, system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--sheet-w:50rem;--gutter:clamp(0.75rem, 3vw, 2rem);--pad-x:clamp(1.375rem, 7vw, 5.5rem);--ease-out:cubic-bezier(0.16, 1, 0.3, 1)}*,*::before,*::after{box-sizing:border-box}html{background:var(--ground);color:var(--ink);scrollbar-color:var(--lav-300)var(--ground);-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;padding:0 var(--gutter);min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--ground);font-family:var(--serif);line-height:1.6;font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .6s var(--ease-out)}::selection{background:#d6d0ee;color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}a{color:var(--accent)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip{position:absolute;left:var(--gutter);top:-4rem;z-index:10;padding:.625rem 1rem;background:var(--ink);color:#fff;font:500 .9375rem/1 var(--sans);border-radius:4px;text-decoration:none}.skip:focus{top:.75rem}.site-header,.page,.site-footer{position:relative;z-index:1}.site-header{width:100%;max-width:var(--sheet-w);margin:0 auto;padding:1.5rem .125rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;transition:opacity .4s var(--ease-out)}.brand{display:inline-flex;align-items:center;min-height:2.75rem;text-decoration:none;user-select:none;-webkit-user-select:none}.brand .mark{width:2.875rem;height:2.875rem;flex:none;margin-left:-.28rem}.site-nav{display:flex;gap:.5rem}.site-nav a{display:inline-flex;align-items:center;min-height:2.75rem;padding:0 .625rem;color:var(--ink-2);text-decoration:none;font:500 .9375rem/1 var(--sans);letter-spacing:.01em;transition:color .2s}.site-nav a:last-child{padding-right:0}.site-nav a span{position:relative;padding:.375rem 0}.site-nav a span::after{content:"";position:absolute;left:50%;bottom:-.25rem;width:.3125rem;height:.3125rem;margin-left:-.15625rem;border-radius:50%;background:var(--lav-500);opacity:0;transform:scale(.4);transition:opacity .2s,transform .3s var(--ease-out)}.site-nav a:hover{color:var(--ink)}.site-nav a:hover span::after{opacity:.5;transform:scale(1)}.site-nav a.is-active{color:var(--ink)}.site-nav a.is-active span::after{opacity:1;transform:scale(1)}.mark{display:block;overflow:visible}.mark-fe{fill:var(--accent)}.mark-dot{fill:var(--lav-500)}.is-loose .mark-dot{visibility:hidden}.mark-count{display:none;fill:var(--lav-500);font:600 22px var(--serif);font-variant-numeric:lining-nums;font-optical-sizing:auto;transform-box:fill-box}.is-loose .mark-count{display:block}.brand.is-near .mark-dot{animation:stop-bob .9s ease-in-out 4 alternate}@keyframes stop-bob{from{transform:translateY(0)}to{transform:translateY(-5px)}}.playing,.playing *{cursor:none !important}.can-grab,.can-grab *{cursor:grab !important}.grabbing,.grabbing *{cursor:grabbing !important;user-select:none;-webkit-user-select:none}.playing a{-webkit-tap-highlight-color:transparent}.stop{color:var(--lav-500)}.page{flex:1;display:grid;grid-template-columns:minmax(0,1fr)minmax(0,var(--sheet-w))minmax(0,1fr);align-items:start}.sheet{grid-column:2;min-width:0;background:var(--sheet);border-radius:6px;padding:clamp(2rem,6vw,4.5rem)var(--pad-x)clamp(2.5rem,6vw,5rem);box-shadow:0 0 0 1px rgba(71,59,143,7%),0 2px 4px rgba(53,44,110,5%),0 12px 24px -8px rgba(53,44,110,.12),0 40px 80px -28px rgba(53,44,110,.3);transition:box-shadow .6s var(--ease-out)}.post-header{margin-bottom:2.5rem;padding-bottom:2rem;border-bottom:1px solid var(--lav-200)}.post-header h1{margin:0;font:500 clamp(2rem,1.35rem + 2.8vw,3rem)/1.12 var(--serif);letter-spacing:-.015em;text-wrap:balance}.post-meta{margin:1.125rem 0 0;color:var(--ink-2);font:.9375rem/1.4 var(--sans);letter-spacing:.01em;font-variant-numeric:tabular-nums}.post-meta{overflow:hidden}.meta-row{display:flex;flex-wrap:wrap;row-gap:.125rem;margin-left:-1.375rem}.meta-row>span{position:relative;padding-left:1.375rem;white-space:nowrap}.meta-row>span::before{content:"";position:absolute;left:.5625rem;top:50%;width:.25rem;height:.25rem;margin-top:-.125rem;border-radius:50%;background:var(--lav-500)}.tag{display:inline-block;margin-left:.5rem;padding:.125rem .5rem;border-radius:999px;background:var(--lav-100);color:var(--accent);font:600 .75rem/1.5 var(--sans);letter-spacing:.02em;vertical-align:.1em}.prose{font-size:clamp(1.0625rem,1rem + .35vw,1.1875rem);line-height:1.7;overflow-wrap:break-word}.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}.prose p{margin:0 0 1.35em;text-wrap:pretty}.prose h2,.prose h3{scroll-margin-top:1.5rem;text-wrap:balance}.prose h2{margin:3.25rem 0 1rem;font:600 clamp(1.4375rem,1.3rem + .6vw,1.625rem)/1.25 var(--serif);letter-spacing:-.01em}.prose h3{margin:2.5rem 0 .75rem;font:600 1.25rem/1.3 var(--serif)}.prose strong{font-weight:600}.prose a{color:var(--accent);text-decoration:underline;text-decoration-color:var(--lav-500);text-decoration-thickness:2px;text-underline-offset:.2em;transition:text-decoration-color .2s}.prose a:hover{text-decoration-color:var(--accent)}.prose ul,.prose ol{margin:0 0 1.35em;padding-left:1.35em}.prose li{padding-left:.2em}.prose li+li{margin-top:.45em}.prose ol>li::marker{color:var(--ink-2);font-family:var(--sans);font-weight:600;font-size:.9em}.prose ul{list-style:none}.prose ul>li{position:relative}.prose ul>li::before{content:"";position:absolute;left:-1.05em;top:.74em;width:.32em;height:.32em;border-radius:50%;background:var(--lav-500)}.prose hr{width:3.75rem;height:.3125rem;margin:3rem 0;border:0;background:radial-gradient(circle at center,var(--lav-500) 0 .15rem,transparent .16rem)0 0/1.25rem .3125rem repeat-x}.prose blockquote{margin:2rem 0;padding:1.375rem 1.5rem;background:var(--lav-100);border-radius:6px;font-style:italic}.prose blockquote p{margin-bottom:.9em}.prose blockquote p:last-child{margin-bottom:0}.prose blockquote .attribution{font:500 .9375rem/1.4 var(--sans);font-style:normal;color:var(--ink-2)}.prose img{display:block;max-width:100%;height:auto;margin:2rem 0;border-radius:4px}.prose table{width:100%;margin:2rem 0;border-collapse:collapse;font:.9375rem/1.5 var(--sans);font-variant-numeric:tabular-nums}.prose th,.prose td{padding:.625rem .75rem;text-align:left;border-bottom:1px solid var(--lav-200)}.prose th{font-weight:600}.prose code{font-family:var(--mono);font-size:.86em;font-variant-ligatures:none;padding:.14em .36em;background:var(--lav-100);border-radius:4px}.code,.prose>.highlight,.prose>pre{margin:2rem 0;background:var(--code-bg);border:1px solid var(--lav-200);border-radius:6px}.code .highlight{margin:0}.prose pre{margin:0;padding:1.125rem 1.25rem;overflow-x:auto;font:.875rem/1.7 var(--mono);tab-size:4;scrollbar-color:var(--lav-300)transparent;background:0 0}.prose>pre{background:var(--code-bg)}.prose pre code{padding:0;background:0 0;font-size:inherit;border-radius:0}.code-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.25rem .375rem .25rem 1.25rem;border-bottom:1px solid var(--lav-200);color:var(--ink-2);font:500 .8125rem/1 var(--sans);letter-spacing:.02em}.copy{min-height:2rem;padding:0 .75rem;border:0;border-radius:4px;background:0 0;color:var(--accent);font:inherit;font-weight:600;cursor:pointer;transition:background-color .2s}.copy:hover{background:var(--lav-200)}.copy:active{background:var(--lav-300)}@media(pointer:coarse){.copy{min-height:2.75rem}}@media(min-width:48rem){.code,.prose>.highlight,.prose>pre{margin-inline:-1.5rem}.code-head{padding-left:1.5rem}.prose pre{padding-inline:1.5rem}}@media(max-width:40rem){.prose pre{tab-size:2;font-size:.8125rem}}.chroma .c,.chroma .ch,.chroma .cm,.chroma .c1,.chroma .cs,.chroma .cp,.chroma .cpf{color:var(--code-comment);font-style:italic}.chroma .k,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr{color:var(--accent);font-weight:700}.chroma .nt{color:var(--accent);font-weight:600}.chroma .kt,.chroma .nb,.chroma .nc,.chroma .nn{color:var(--code-type)}.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .sd,.chroma .s2,.chroma .se,.chroma .sh,.chroma .si,.chroma .sx,.chroma .sr,.chroma .s1,.chroma .ss{color:var(--code-string)}.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo,.chroma .kc,.chroma .na{color:var(--code-number)}.chroma .kc{font-weight:600}.chroma .nf,.chroma .fm{font-weight:700}.chroma .gd{color:var(--code-number)}.chroma .gi{color:var(--code-string)}.chroma .err{color:inherit}.toc-rail{display:none}.toc-rail ul,.toc-inline ul{margin:0;padding:0;list-style:none}.toc-inline{margin:0 0 2.25rem;border:1px solid var(--lav-200);border-radius:6px;font:.9375rem/1.45 var(--sans)}.toc-inline summary{display:flex;align-items:center;justify-content:space-between;min-height:2.75rem;padding:0 1rem;font-weight:600;cursor:pointer;list-style:none}.toc-inline summary::-webkit-details-marker{display:none}.toc-inline summary::after{content:"";width:.875rem;height:.875rem;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='none' stroke='%238F85C2' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 5l4 4 4-4'/%3E%3C/svg%3E")50%/contain no-repeat;transition:transform .25s var(--ease-out)}.toc-inline[open] summary::after{transform:rotate(180deg)}.toc-inline nav{padding:.25rem 1rem .875rem}.toc-inline li a{display:block;padding:.4375rem 0;color:var(--ink-2);text-decoration:none}.toc-inline li a:hover{color:var(--accent)}.toc-rail{grid-column:3;position:sticky;top:1.5rem;max-width:16.5rem;max-height:calc(100vh - 3rem);margin-left:1.5rem;overflow-y:auto;padding:1.125rem .75rem .875rem;background:var(--sheet);border-radius:6px;box-shadow:0 0 0 1px rgba(71,59,143,7%),0 2px 4px rgba(53,44,110,4%),0 14px 28px -14px rgba(53,44,110,.22);font:.9375rem/1.35 var(--sans);transition:opacity .4s var(--ease-out),visibility 0s}.toc-title{margin:0 .5rem .625rem 1.125rem;color:var(--ink-2);font-weight:600;font-size:.8125rem;letter-spacing:.02em}.toc-rail li+li{margin-top:.0625rem}.toc-rail a{position:relative;display:block;padding:.4375rem .5rem .4375rem 1.125rem;border-radius:4px;color:var(--ink);text-decoration:none;transition:background-color .2s,color .2s}.toc-rail a:hover{background:var(--lav-100)}.toc-rail a[aria-current]{color:var(--accent)}.toc-rail a[aria-current]::before{content:"";position:absolute;left:.375rem;top:1.0625rem;width:.3125rem;height:.3125rem;margin-top:-.15625rem;border-radius:50%;background:var(--lav-500)}@media(min-width:84rem){.toc-inline{display:none}.toc-rail{display:block;width:calc(100% - 1.5rem)}}@media(min-width:70rem) and (max-width:83.99rem){@supports selector(:has(a)){body:has(.toc-rail) .toc-inline{display:none}body:has(.toc-rail) .toc-rail{display:block;width:15.5rem;margin-left:1.25rem}body:has(.toc-rail) .page{grid-template-columns:minmax(0,1fr)minmax(0,var(--sheet-w))16.75rem minmax(0,1fr)}body:has(.toc-rail) .site-header,body:has(.toc-rail) .site-footer{max-width:calc(var(--sheet-w) + 16.75rem);padding-right:16.875rem}}}.post-footer{margin-top:3.5rem}.post-end .mark{width:2rem;height:2rem;margin-left:-.196rem}.post-nav{margin-top:2.5rem;padding-top:1.75rem;border-top:1px solid var(--lav-200);display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1.5rem 2.5rem}.post-nav a{display:block;text-decoration:none;color:var(--ink)}.post-nav small{display:block;margin-bottom:.375rem;color:var(--ink-2);font:500 .8125rem/1.3 var(--sans);letter-spacing:.02em}.post-nav span{font:500 1.0625rem/1.35 var(--serif);color:var(--accent);text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:2px;text-underline-offset:.2em;transition:text-decoration-color .2s}.post-nav a:hover span{text-decoration-color:var(--lav-300)}.list-title{margin:0;padding-bottom:1.75rem;border-bottom:1px solid var(--lav-200);font:500 clamp(2rem,1.35rem + 2.8vw,3rem)/1.12 var(--serif);letter-spacing:-.015em}.posts{margin:0;padding:0;list-style:none}.post-row{padding:1.75rem 0;border-bottom:1px solid var(--lav-200)}.post-row:last-child{border-bottom:0;padding-bottom:0}.post-row h2{margin:0;font:500 clamp(1.3125rem,1.2rem + .5vw,1.5rem)/1.25 var(--serif);letter-spacing:-.01em;text-wrap:balance}.post-row h2 a{color:var(--ink);text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:2px;text-underline-offset:.18em;transition:color .2s,text-decoration-color .2s}.post-row h2 a:hover{color:var(--accent);text-decoration-color:var(--lav-300)}.post-row-desc{margin:.625rem 0 0;color:var(--ink-2);font-size:1.0625rem;line-height:1.6;text-wrap:pretty}.post-row-meta{margin:.75rem 0 0;color:var(--ink-2);font:.875rem/1.4 var(--sans);letter-spacing:.01em;font-variant-numeric:tabular-nums}@media(min-width:44rem){.post-row{display:grid;grid-template-columns:7.25rem minmax(0,1fr);column-gap:1.5rem}.post-row-date{grid-column:1;grid-row:1/span 3;margin:.4375rem 0 0}.post-row>:not(.post-row-date){grid-column:2}}.post-row-date{margin:0 0 .5rem;color:var(--ink-2);font:.875rem/1.4 var(--sans);letter-spacing:.01em;font-variant-numeric:tabular-nums}.lost h1{margin:0 0 1rem;font:500 clamp(1.875rem,1.4rem + 2vw,2.5rem)/1.15 var(--serif);letter-spacing:-.015em}.lost p{margin:0 0 1.25em}.site-footer{width:100%;max-width:var(--sheet-w);margin:0 auto;padding:1.75rem .125rem 2.5rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1.5rem;color:var(--ink-2);font:.875rem/1.4 var(--sans);letter-spacing:.01em;transition:opacity .4s var(--ease-out)}.site-footer p{margin:0}.site-footer nav{display:flex;gap:1.25rem}.site-footer a{display:inline-flex;align-items:center;min-height:2.75rem;color:var(--ink-2);text-decoration:underline;text-decoration-color:var(--lav-500);text-decoration-thickness:1.5px;text-underline-offset:.25em;transition:color .2s,text-decoration-color .2s}.site-footer a:hover{color:var(--accent);text-decoration-color:var(--accent)}.motif{position:absolute;top:0;left:0;width:100%;height:440px;z-index:0;overflow:hidden;pointer-events:none;-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 48%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0,#000 48%,transparent 100%);transition:opacity .6s var(--ease-out)}.motif svg{display:block;width:100%;height:100%}@media(max-width:44rem){.motif svg{transform:translateY(-5.5rem)}}.play{position:fixed;inset:0;width:100%;height:100%;z-index:4;pointer-events:none}.play-hint{position:fixed;left:50%;bottom:1.25rem;z-index:5;margin:0;padding:.4375rem .875rem;border-radius:999px;background:var(--sheet);box-shadow:0 0 0 1px rgba(71,59,143,7%),0 2px 4px rgba(53,44,110,4%),0 14px 28px -14px rgba(53,44,110,.22);color:var(--ink-2);font:500 .8125rem/1.3 var(--sans);letter-spacing:.01em;white-space:nowrap;opacity:0;transform:translate(-50%,.5rem);pointer-events:none;transition:opacity .3s var(--ease-out),transform .4s var(--ease-out)}.playing .play-hint{opacity:1;transform:translate(-50%,0)}.playing .whisper{bottom:4rem}.zen body{background:var(--sheet)}.zen .motif{opacity:0}.zen .sheet{box-shadow:none}.zen .site-header,.zen .site-footer,.zen .toc-rail{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .4s var(--ease-out),visibility 0s .4s}.zen .toc-inline,.zen .post-nav{display:none}.whisper{position:fixed;left:50%;bottom:1.5rem;z-index:5;margin:0;padding:.625rem 1rem;border-radius:999px;background:var(--ink);color:#fff;font:500 .875rem/1.3 var(--sans);letter-spacing:.01em;white-space:nowrap;opacity:0;transform:translate(-50%,.75rem);pointer-events:none;transition:opacity .3s var(--ease-out),transform .5s var(--ease-out)}.whisper.is-shown{opacity:1;transform:translate(-50%,0)}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none !important;transition-duration:.01ms !important;transition-delay:0s !important}}@media print{html,body{background:#fff !important}body{padding:0}.site-header,.site-footer,.toc-rail,.toc-inline,.post-nav,.code-head,.motif,.play,.play-hint,.whisper,.skip{display:none !important}.page{display:block}.sheet{box-shadow:none;padding:0}.prose a{text-decoration:none;color:inherit}}