*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--c-bg);color:var(--c-text);font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:var(--ls-body);font-optical-sizing:auto}h1,h2,h3,h4,h5,h6,p,figure,blockquote,ol,ul,dl,dd,pre{margin:0}button,input,select,textarea,optgroup{font:inherit;color:inherit;letter-spacing:inherit}img,video,iframe{max-width:100%;height:auto}a{color:var(--c-link);text-decoration:underline;text-underline-offset:.15em}a:hover{color:var(--c-heading)}:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px}hr{border:0;border-top:1px solid var(--c-rule);margin:2.5rem 0}.wrap{max-width:var(--shell-w,42rem);margin:0 auto;padding:0 2rem;display:flex;min-height:100vh;min-height:100dvh;flex-direction:column}.with-rail{position:relative;display:flex;flex:1;flex-direction:column}main{flex:1;padding:3rem 0 1rem}.skip-link{position:absolute;left:-9999px;top:0;z-index:60}.skip-link:focus{left:.5rem;top:.5rem;padding:.5rem .75rem;background:var(--c-bg);border:1px solid var(--c-rule);border-radius:.5rem;color:var(--c-heading);text-decoration:none}header.site{padding:1.75rem 0}header.site .title{font-family:var(--font-sans);font-weight:600;color:var(--c-heading);text-decoration:none;font-size:var(--fs-h4);line-height:var(--lh-h4);letter-spacing:var(--ls-h4)}header.site .logo{display:block;height:auto}header.site .logo-dark{display:none}html.dark header.site .title:has(.logo-dark) .logo{display:none}html.dark header.site .logo-dark{display:block}header.site .tagline{color:var(--c-meta);font-size:var(--fs-small);line-height:var(--lh-small);letter-spacing:var(--ls-small);margin:.75rem 0 0}article > header h1{color:var(--c-heading);margin:0}article > header .t-small{margin:0}.deck{margin:1rem 0 0;color:var(--c-meta);font-family:var(--font-reading);font-size:var(--fs-h4);line-height:var(--lh-h4);letter-spacing:var(--ls-h4)}#post-body{margin-top:2.5rem}.post-taxo p{margin:0 0 .25rem}.anchor{display:block;height:0;scroll-margin-top:6rem}.post-info{display:none}.post-info p{margin:0}.post-info p + p{margin-top:.35rem}.post-info .info-action{margin-top:1.25rem;color:var(--c-heading);font-weight:500}.post-info time,.post-info .num{color:var(--c-heading)}.related{font-size:var(--fs-small);line-height:var(--lh-small);letter-spacing:var(--ls-small)}.related h2{font-size:var(--fs-small);line-height:var(--lh-small);letter-spacing:var(--ls-small);font-weight:600;color:var(--c-meta);margin:0 0 1.25rem}.related ul{list-style:none;padding:0;margin:0}.related li + li{margin-top:1rem}.related a{font-weight:600;color:var(--c-heading)}.related p{margin:.125rem 0 0}article + .subscribe-card,article + #comments{margin-top:2.5rem}.prose{font-family:var(--font-reading);font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:var(--ls-body);color:var(--c-text)}.prose > * + *{margin-top:1.4em}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5{color:var(--c-heading);font-weight:600;scroll-margin-top:2rem}.prose h1{font-size:var(--fs-h1);line-height:var(--lh-h1);letter-spacing:var(--ls-h1);margin-top:1.9em}.prose h2{font-size:var(--fs-h2);line-height:var(--lh-h2);letter-spacing:var(--ls-h2);margin-top:1.85em}.prose h3{font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--ls-h3);margin-top:1.8em}.prose h4{font-size:var(--fs-h4);line-height:var(--lh-h4);letter-spacing:var(--ls-h4);margin-top:1.75em}.prose h5{font-size:var(--fs-h5);line-height:var(--lh-h5);letter-spacing:var(--ls-h5);margin-top:1.7em}.prose > :is(h1,h2) + *{margin-top:.75em}.prose > :is(h3,h4,h5) + *{margin-top:.6em}.prose strong,.prose b{font-weight:var(--reading-bold,700)}.prose a{color:var(--c-link);text-decoration:underline;text-underline-offset:.18em;text-decoration-thickness:1px;text-decoration-color:var(--c-rule)}.prose a:hover{text-decoration-color:var(--c-accent)}.prose ul{list-style:disc;padding-left:1.4em}.prose ol{list-style:decimal;padding-left:1.4em}.prose li{margin:calc(var(--sp) * .25) 0}.prose blockquote{border-left:2px solid var(--c-rule);margin-left:0;padding-left:var(--sp);color:var(--c-meta)}.prose code{font-family:var(--font-mono);font-size:var(--fs-code);line-height:var(--lh-code);letter-spacing:var(--ls-code)}.prose :not(pre) > code{background:var(--c-rule);padding:.15em .38em}.prose pre{padding:var(--sp);border-radius:.5rem;overflow-x:auto;font-size:var(--fs-code);line-height:var(--lh-code);letter-spacing:var(--ls-code)}.prose pre code{font-size:inherit;line-height:inherit;letter-spacing:inherit}.prose hr:not(.fn-rule){width:6em;margin:2.6em auto;border-top:1px solid var(--c-rule)}.prose table{border-collapse:collapse;width:100%}.prose th,.prose td{border:1px solid var(--c-rule);padding:calc(var(--sp) * .4) calc(var(--sp) * .6);text-align:left}.book-text .prose p{margin-top:.65em;text-indent:1.6em}.book-text .prose > p:first-child{text-indent:0}.book-text .prose :is(blockquote,figure,pre,ul,ol,hr,table,.gallery,.video-embed) + p{text-indent:0;margin-top:1.4em}.book-text .prose :is(h1,h2,h3,h4,h5) + p{text-indent:0}.book-text .prose li p,.book-text .prose blockquote p{text-indent:0}@media (min-width:600px){.book-text .prose p,.book-text .prose li{text-align:justify;hyphens:auto}}.listing-head{margin:0 0 2rem}.listing-head h1{font-size:var(--fs-h1);line-height:var(--lh-h1);letter-spacing:var(--ls-h1);color:var(--c-heading);margin:0;font-weight:700}.lower{text-transform:lowercase}.fs-h1{font-size:var(--fs-h1);line-height:var(--lh-h1);letter-spacing:var(--ls-h1)}.fs-h2{font-size:var(--fs-h2);line-height:var(--lh-h2);letter-spacing:var(--ls-h2)}.fs-h3{font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--ls-h3)}.t-small{font-size:var(--fs-small);line-height:var(--lh-small);letter-spacing:var(--ls-small)}.t-body{font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:var(--ls-body)}.text-meta{color:var(--c-meta)}.text-text{color:var(--c-text)}.reading-font{font-family:var(--font-reading)}.font-semibold{font-weight:600}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.link-accent{color:var(--c-heading);text-decoration:none}.link-accent:hover{text-decoration:underline;text-decoration-color:var(--c-accent);text-decoration-thickness:1px;text-underline-offset:4px}.post-list{display:flex;flex-direction:column;gap:4rem}.post-list > article > p:first-of-type{margin:0}.post-list.tl-feed{display:block}.tl-feed .tl-yr article{margin-top:4rem}.tl-feed > .tl-yr:first-child > article:first-of-type{margin-top:0}[data-list=grid] .tl-yr{display:contents}[data-list=grid] .tl-feed article{margin-top:0}.tl-mark{align-items:center;gap:.5rem;white-space:nowrap;color:var(--c-meta);background:var(--c-bg);padding:.1rem 3rem .1rem 0;z-index:1}.tl-year-tag{align-items:center;gap:.5rem;white-space:nowrap;color:var(--c-heading);font-weight:600;background:var(--c-bg);padding:.1rem 3rem .1rem 0;font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--ls-h3)}.tl-year-tag .tl-dot{background:var(--c-accent)}.tl-dot{flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:var(--c-meta)}.empty{color:var(--c-meta)}.pager{display:flex;justify-content:space-between;align-items:center;gap:1rem;border-top:1px solid var(--c-rule);padding-top:1rem;margin-top:1rem;font-size:var(--fs-small);line-height:var(--lh-small);letter-spacing:var(--ls-small)}.pager-count{color:var(--c-meta)}form.search{display:flex;gap:.5rem;margin:0 0 2rem}form.search input{min-width:0;flex:1;padding:.5rem .75rem;border:1px solid var(--c-rule);border-radius:.5rem;background:var(--c-bg);color:var(--c-text);font:inherit}form.search button{padding:.5rem 1rem;border:1px solid var(--c-rule);border-radius:.5rem;background:var(--c-bg);color:var(--c-heading);font:inherit;cursor:pointer;white-space:nowrap}@media (max-width:639px){form.search{flex-direction:column}}aside.series{border:1px solid var(--c-rule);border-radius:.5rem;padding:1.25rem 1.5rem;margin:2rem 0 0;font-size:var(--fs-small);line-height:var(--lh-small);letter-spacing:var(--ls-small)}aside.series .series-head{margin:0;color:var(--c-meta)}aside.series ol{margin:1rem 0 0;padding-left:1.25rem}aside.series li{margin-top:.5rem}aside.series li a{color:var(--c-meta);text-decoration:none}aside.series li a:hover{color:var(--c-heading)}aside.series li[aria-current]{color:var(--c-heading);font-weight:600}p.tags{margin-top:1.5rem;font-size:var(--fs-small);line-height:var(--lh-small);letter-spacing:var(--ls-small);color:var(--c-meta)}figure{margin:calc(var(--sp) * 2) 0}figure img{display:block;margin:0 auto;border-radius:.5rem}figcaption{color:var(--c-meta);font-size:var(--fs-caption);line-height:var(--lh-caption);letter-spacing:var(--ls-caption);text-align:center;margin-top:calc(var(--sp) * .5)}.img-left img{margin-left:0}.img-right img{margin-right:0}.img-wide{margin-left:calc(-1 * clamp(0px,4vw,4rem));margin-right:calc(-1 * clamp(0px,4vw,4rem))}.gallery{display:grid;gap:calc(var(--sp) * .5);margin:calc(var(--sp) * 2) 0}.gallery figure{margin:0}.gallery-cols-2{grid-template-columns:repeat(2,1fr)}.gallery-cols-3{grid-template-columns:repeat(3,1fr)}.gallery-cols-4{grid-template-columns:repeat(4,1fr)}.video-embed,.video-file{margin:calc(var(--sp) * 2) 0}.video-embed{position:relative;padding-top:56.25%}.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.video-file video{width:100%;display:block}.audio-embed iframe{width:100%;height:9.25rem;border:0}.callout{border-left:2px solid var(--c-accent);padding:calc(var(--sp) * .75) 0 calc(var(--sp) * .75) var(--sp);margin:calc(var(--sp) * 1.75) 0}.callout-label{font-weight:600;color:var(--c-heading);margin:0 0 calc(var(--sp) * .35)}.callout p:last-child{margin-bottom:0}.prose .fn-rule{margin-top:2.5em}.footnotes{font-size:var(--fs-small);line-height:var(--lh-small);letter-spacing:var(--ls-small);color:var(--c-meta)}.footnotes ol{padding-left:calc(var(--sp) * 1.25)}sup.fnref a{text-decoration:none}footer.site{padding:3rem 0;text-align:center;color:var(--c-meta);font-size:var(--fs-small);line-height:var(--lh-small);letter-spacing:var(--ls-small)}.footer-text{margin:0}footer.site a{text-decoration:underline;text-underline-offset:2px}footer.site a:hover{color:var(--c-text)}.dark .shiki,.dark .shiki span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important}:root{--rail-w:250px;--rail-gap:40px;--rail-pad:14px;--rail-top:3rem}.rail{position:fixed;top:0;bottom:0;left:0;z-index:40;width:min(300px,84vw);overflow-y:auto;overscroll-behavior:contain;padding:4.5rem 1.25rem 2rem;background:var(--c-bg);border-right:1px solid var(--c-rule);transform:translateX(-100%);transition:transform .25s ease}html[data-rail=open] .rail{transform:none}.rail-left{display:none}.rail-scrim{position:fixed;inset:0;z-index:39}.rail-inner{position:sticky;top:2.5rem}.rail-inner > * + *,.drawer-only > * + *{margin-top:1.75rem}.rail h2{margin:0 0 .75rem;padding-left:var(--rail-pad);font-weight:600;color:var(--c-heading);font-size:var(--fs-small);line-height:var(--lh-small);letter-spacing:var(--ls-small)}.rail ul{list-style:none;margin:0;padding:0}.rail li{margin-top:.5rem}.rail li:first-child{margin-top:0}.rail-row{position:relative;display:flex;justify-content:space-between;gap:.875rem;padding-left:var(--rail-pad);color:var(--c-meta)}.rail-row:hover,.rail-tags a:hover{color:var(--c-heading)}.rail-row[aria-current]::after{content:"";position:absolute;left:0;top:3px;bottom:3px;width:2px;background:var(--c-accent)}.rail-count{min-width:var(--count-w,1ch);text-align:right;flex-shrink:0;font-variant-numeric:tabular-nums}.rail-tags{display:flex;flex-wrap:wrap;column-gap:.75rem;row-gap:.25rem;padding-left:var(--rail-pad)}.rail-tags a{color:var(--c-meta)}.rail-tags.lower a{text-transform:lowercase}.term-count{margin-left:.25rem;font-variant-numeric:tabular-nums}.term-count::before{content:"("}.term-count::after{content:")"}.rail-row.is-active,.rail-tags a.is-active{font-weight:500;color:var(--c-heading)}.rail-tags a.is-active{text-decoration:underline;text-decoration-color:var(--c-accent);text-underline-offset:4px}.rail-lead::before{content:"•";font-size:.72em;margin-inline-end:.5em;vertical-align:.12em;color:var(--c-meta)}.rail-sub{font-size:var(--fs-caption);line-height:var(--lh-caption);letter-spacing:var(--ls-caption)}.toc-end{margin-top:1rem}.toc li{margin-top:.5rem}.code-copy{position:absolute;top:.4rem;right:.4rem;padding:.15rem .5rem;font-size:var(--fs-caption);line-height:var(--lh-caption);letter-spacing:var(--ls-caption);font-family:var(--font-sans);border:1px solid var(--c-rule);background:var(--c-bg);color:var(--c-meta);cursor:pointer;opacity:0;transition:opacity .15s}.prose pre{position:relative}.prose pre:hover .code-copy,.code-copy:focus-visible{opacity:1}.progress{display:none;position:fixed;inset-inline:0;top:0;height:2px;z-index:50}.progress-fill{height:100%;background:var(--c-heading);transform:scaleX(0);transform-origin:0 50%}@supports (animation-timeline:scroll()){.progress{display:block}.progress-fill{animation:read-progress linear both;animation-timeline:scroll(root block)}}@keyframes read-progress{to{transform:scaleX(1)}}.to-top{position:fixed;bottom:1.25rem;right:1.25rem;z-index:40;display:flex;width:2.5rem;height:2.5rem;align-items:center;justify-content:center;border:1px solid var(--c-rule);border-radius:999px;background:var(--c-bg);color:var(--c-meta);cursor:pointer;opacity:0;pointer-events:none;transition:opacity .2s,color .2s}.to-top.shown{opacity:1;pointer-events:auto}.to-top:hover{color:var(--c-heading)}.lightbox[open]{display:flex}.lightbox{width:100%;max-width:100%;height:100%;max-height:100%;border:0;overflow:hidden;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:1rem;background:rgba(0,0,0,.9);color:#fff}.lightbox::backdrop{background:rgba(0,0,0,.9)}.lightbox-caption:empty{display:none}.lightbox-img{max-height:85vh;max-width:100%;object-fit:contain}.lightbox-caption{max-width:42rem;text-align:center;font-size:var(--fs-small);line-height:var(--lh-small);letter-spacing:var(--ls-small);color:rgba(255,255,255,.7);margin:0}.lightbox button{position:absolute;display:flex;align-items:center;justify-content:center;border:0;border-radius:999px;background:transparent;color:rgba(255,255,255,.8);cursor:pointer;line-height:1}.lightbox button:hover{background:rgba(255,255,255,.1);color:#fff}.lightbox-close{top:.75rem;right:.75rem;width:2.5rem;height:2.5rem;font-size:1.5rem}.lightbox-prev,.lightbox-next{top:50%;transform:translateY(-50%);width:3rem;height:3rem;font-size:1.875rem}.lightbox-prev{left:.5rem}.lightbox-next{right:.5rem}.lightbox-count{position:absolute;bottom:1rem;font-size:var(--fs-caption);line-height:var(--lh-caption);letter-spacing:var(--ls-caption);font-variant-numeric:tabular-nums;color:rgba(255,255,255,.6)}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){html[data-motion=on] .reveal{animation:reveal-in linear both;animation-timeline:view();animation-range:entry 0% cover 20%}}}@keyframes reveal-in{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:no-preference){html[data-reveal-js=on] .reveal:not(.is-in){opacity:0;transform:translateY(24px)}html[data-reveal-js=on] .reveal{transition:opacity .5s ease,transform .5s ease}}html[data-chunked] .post-list article[data-more]{display:none}.preview-note{border:1px solid var(--c-rule);background:var(--c-rule);color:var(--c-meta);border-radius:.5rem;padding:.5rem 1rem;font-size:var(--fs-small);line-height:var(--lh-small);letter-spacing:var(--ls-small);margin:0 0 1.5rem}.book-mode-toggle{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;text-underline-offset:3px}.book-mode-toggle:hover{color:var(--c-heading);text-decoration:underline}@media (max-width:767px){.meta-book,.book-mode-toggle{display:none}}body:has(.book-overlay[open]){overflow:hidden}.book-overlay[open]{display:grid}.book-overlay{position:fixed;inset:0;z-index:60;width:100%;max-width:100%;height:100%;max-height:100%;border:0;padding:0;grid-template-rows:auto 1fr;font-family:var(--font-reading);letter-spacing:var(--ls-body);--book-paper:#f9f4ec;--c-bg:var(--book-paper);--type-scale:1.15;--c-text:#211f1a;--c-heading:#16130d;--c-meta:#6f6a5c;--c-link:#2f2c25;--c-accent:#2f2c25;--c-rule:#d8cfbc;color:var(--c-text);background-color:var(--book-paper);background-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.72' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.62'/%3E%3C/svg%3E")}.book-overlay::backdrop{background:#f9f4ec}.book-chrome{position:relative;display:flex;align-items:center;justify-content:center;min-height:56px;padding:0 clamp(16px,4vw,48px)}.book-top{border-bottom:1px solid var(--c-rule)}.book-title{font-size:var(--fs-small);line-height:var(--lh-small);letter-spacing:var(--ls-small);font-weight:400;color:var(--c-meta);text-align:center;max-width:min(70%,720px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-topright{position:absolute;right:clamp(12px,4vw,44px);top:0;height:100%;display:flex;align-items:center;gap:16px}.book-x{background:none;border:0;cursor:pointer;color:var(--c-meta);font-size:1rem;line-height:1;padding:8px}.book-x:hover{color:var(--c-heading)}.book-count{font-size:var(--fs-caption);line-height:var(--lh-caption);letter-spacing:var(--ls-caption);color:var(--c-meta);font-variant-numeric:tabular-nums}.book-stage{position:relative;display:flex;align-items:center;justify-content:center;min-height:0;padding:clamp(20px,4vh,52px) 0}.book-viewport{position:relative;height:100%;flex:0 0 auto;max-width:100%;overflow:hidden;padding:clamp(4px,2vh,24px) 0;transition:opacity .13s ease}.book-flow{height:100%;column-gap:56px;column-width:var(--book-col-w,340px);column-fill:auto;max-width:none;font-feature-settings:"onum" 1,"liga" 1,"dlig" 1}.book-flow :is(img,video,iframe,pre,table,blockquote,figure){break-inside:avoid}.book-flow :is(img,video,iframe){max-width:100%;max-height:var(--book-page-h,70vh);object-fit:contain}.book-flow pre{max-height:var(--book-page-h,70vh);overflow:auto}.book-flow.prose figure.img-wide,.book-flow.prose .video-wide{width:100%;max-width:100%;margin-left:auto;margin-right:auto}.book-flow.prose > :first-child{margin-top:0}.book-flow.prose > p:first-child::first-letter{float:left;margin:.02em .09em 0 0;font-size:3.1em;line-height:.72;font-weight:600;color:var(--c-heading)}.book-flow.prose > p:first-child{text-indent:0}.book-flow hr,.book-flow hr:not(.fn-rule){border:0;border-top:0;width:auto;height:auto;margin:1.5em 0;text-align:center;background:none}.book-flow hr::before{content:"⁂";color:var(--c-meta);font-size:1.05em;letter-spacing:.35em}.book-viewport::after{content:"";position:absolute;top:7%;bottom:7%;left:50%;width:1px;background:var(--c-rule);opacity:.7;pointer-events:none}.book-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;background:none;border:0;cursor:pointer;color:var(--c-meta);font-size:2rem;line-height:1;padding:12px 16px}.book-arrow:hover{color:var(--c-heading)}.book-prev{left:clamp(4px,2vw,28px)}.book-next{right:clamp(4px,2vw,28px)}[data-list="grid"] .post-list{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr))}[data-list="grid"] .post-list > article{margin:0}[data-list="grid"] .post-list h2{font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--ls-h3)}[data-list="grid"] .post-list .t-body{display:none}.listing-sentinel{height:1px}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.post-list > article{animation:card-in linear both;animation-timeline:view();animation-range:entry 0% entry 40%}}}@keyframes card-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.site-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem}.site-actions{display:flex;align-items:center;gap:.125rem;flex-shrink:0;margin-right:-.625rem}.icon-btn{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border:0;border-radius:.5rem;background:none;color:var(--c-meta);cursor:pointer;text-decoration:none}.icon-btn:hover{color:var(--c-heading);background:var(--c-rule)}.btn-token{display:none;font-size:var(--fs-caption);line-height:var(--lh-caption);letter-spacing:var(--ls-caption)}.overlay[open]{display:flex}.overlay{flex-direction:column;border:1px solid var(--c-rule);border-radius:.5rem;padding:1.25rem;width:min(36rem,92vw);max-height:70vh;background:var(--c-bg);color:var(--c-text);margin-top:8vh}.overlay::backdrop{background:rgba(0,0,0,.4)}.search-close{position:absolute;top:.5rem;right:.5rem;border:0;background:none;color:var(--c-meta);font-size:1.25rem;line-height:1;cursor:pointer}.search-input{padding:.6rem .75rem;border:1px solid var(--c-rule);border-radius:.5rem;background:var(--c-bg);color:var(--c-text);font:inherit;margin-right:2rem}.search-results{list-style:none;padding:0;margin:1rem 0 0;overflow-y:auto}.search-results li{margin:0 0 .6rem}.search-results a{color:var(--c-heading);text-decoration:none}.search-results a:hover{text-decoration:underline}.subscribe-overlay{border:0;padding:0;background:none;width:min(28rem,92vw);margin-top:12vh}.subscribe-overlay .subscribe-card{background:var(--c-bg);box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.theme-wrap{position:relative;display:inline-flex}.theme-menu{position:absolute;right:0;top:100%;margin-top:.5rem;z-index:50;width:11rem;overflow:hidden;border:1px solid var(--c-rule);background:var(--c-bg);padding:.25rem 0;box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1)}.theme-menu[hidden]{display:none}.theme-menu button{display:flex;width:100%;align-items:center;justify-content:space-between;padding:.5rem .75rem;border:0;background:none;cursor:pointer;text-align:left;font:inherit;font-size:var(--fs-small);line-height:var(--lh-small);letter-spacing:var(--ls-small);color:var(--c-meta)}.theme-menu button:hover{background:var(--c-rule)}.theme-menu button.is-current{font-weight:600;color:var(--c-heading)}.theme-menu button.is-current::after{content:"✓"}.subscribe-card{border:1px solid var(--c-rule);border-radius:.5rem;padding:1.25rem;font-size:var(--fs-small);line-height:var(--lh-small);letter-spacing:var(--ls-small)}.subscribe-card h2{font-size:inherit;font-weight:600;color:var(--c-heading);margin:0 0 .75rem}form.subscribe{display:flex;gap:.5rem;margin:0}form.subscribe input{min-width:0;flex:1;padding:.5rem .75rem;border:1px solid var(--c-rule);border-radius:.5rem;background:var(--c-bg);color:var(--c-text);font:inherit}form.subscribe input:focus{border-color:var(--c-heading)}form.subscribe button{padding:.5rem 1rem;border:1px solid var(--c-rule);border-radius:.5rem;background:var(--c-bg);color:var(--c-heading);font:inherit;font-weight:500;cursor:pointer}form.subscribe button:hover{background:var(--c-rule)}form.subscribe button:disabled{opacity:.5}@media (max-width:639px){form.subscribe{flex-direction:column}}.subscribe-status:empty{display:none}.subscribe-status{color:var(--c-meta);margin:.5rem 0 0}#comments{border-top:1px solid var(--c-rule);margin-top:3rem;padding-top:1.5rem;font-size:var(--fs-small);line-height:var(--lh-small);letter-spacing:var(--ls-small)}#comments h2{font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--ls-h3);color:var(--c-heading);font-weight:600;margin:0 0 1.5rem}.comment-list,.comment-replies{list-style:none;padding:0;margin:0}.comment-replies{margin-left:1.25rem;padding-left:1rem;border-left:1px solid var(--c-rule)}.comment{margin:0 0 1.5rem}.comment-meta{color:var(--c-meta);margin:0 0 .35rem}.comment-name{color:var(--c-heading);font-weight:600}.comment-body{font-family:var(--font-reading);letter-spacing:var(--ls-small);color:var(--c-text)}.comment-body p:last-child{margin-bottom:0}.comment-reply{border:0;background:none;padding:0;margin-top:.35rem;color:var(--c-meta);font:inherit;cursor:pointer;text-decoration:underline}.comment-reply:hover{color:var(--c-heading)}#comments .empty{color:var(--c-meta);margin:0}.comment-form{margin-top:1.5rem}.comment-field{margin:0 0 .75rem}.comment-field label{display:block;color:var(--c-meta);margin-bottom:.25rem}.comment-form input,.comment-form textarea{width:100%;padding:.5rem .75rem;border:1px solid var(--c-rule);border-radius:.5rem;background:var(--c-bg);color:var(--c-text);font:inherit}.comment-form button{margin-top:.75rem;padding:.5rem 1rem;border:1px solid var(--c-rule);border-radius:.5rem;background:var(--c-bg);color:var(--c-heading);font:inherit;cursor:pointer}.comment-status:empty{display:none}.comment-status{color:var(--c-meta);margin:.5rem 0 0}.comment-identity{margin:0 0 .75rem;color:var(--c-meta)}.comment-identity strong{color:var(--c-heading);font-weight:600}.comment-google{display:inline-block;padding:.5rem 1rem;border:1px solid var(--c-rule);border-radius:.5rem;color:var(--c-heading);font:inherit;text-decoration:none}.comment-google:hover{border-color:var(--c-heading)}.comment-form .comment-signout{margin:0;border:0;background:none;padding:0;color:var(--c-meta);font:inherit;cursor:pointer;text-decoration:underline}.comment-form .comment-signout:hover{color:var(--c-heading)}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}html[data-motion=off] *{animation:none!important;transition:none!important}html[data-ide-chrome=on] .rail h2::before,html[data-ide-chrome=on] header.site .tagline::before,html[data-ide-chrome=on] aside.series .series-head::before,html[data-ide-chrome=on] .related h2::before,html[data-ide-chrome=on] .subscribe-card h2::before,html[data-ide-chrome=on] #comments h2::before,html[data-ide-chrome=on] .empty::before,html[data-ide-chrome=on] .info-action::before{content:"// ";color:var(--c-meta)}html[data-ide-chrome=on] #comments .empty::before{content:none}html[data-ide-chrome=on] .rail-count,html[data-ide-chrome=on] .term-count,html[data-ide-chrome=on] .pager-count,html[data-ide-chrome=on] .t-small time,html[data-ide-chrome=on] .comment-meta time,html[data-ide-chrome=on] .related p,html[data-ide-chrome=on] .num{color:var(--c-text)}html[data-ide-chrome=on] .term-count{opacity:1}html[data-ide-chrome=on] .rail-count::before,html[data-ide-chrome=on] .term-count::before,html[data-ide-chrome=on] .pager-count::before,html[data-ide-chrome=on] .t-small time::before,html[data-ide-chrome=on] .comment-meta time::before,html[data-ide-chrome=on] .related p::before,html[data-ide-chrome=on] .num::before{content:"[";color:var(--c-meta)}html[data-ide-chrome=on] .rail-count::after,html[data-ide-chrome=on] .term-count::after,html[data-ide-chrome=on] .pager-count::after,html[data-ide-chrome=on] .t-small time::after,html[data-ide-chrome=on] .comment-meta time::after,html[data-ide-chrome=on] .related p::after,html[data-ide-chrome=on] .num::after{content:"]";color:var(--c-meta)}html[data-ide-chrome=on] .post-info time,html[data-ide-chrome=on] .post-info .num{color:var(--c-heading)}html[data-ide-chrome=on] .term-list::before{content:"[";color:var(--c-meta)}html[data-ide-chrome=on] .term-list::after{content:"]";color:var(--c-meta)}html[data-ide-chrome=on] .related ul{counter-reset:rel}html[data-ide-chrome=on] .related li{counter-increment:rel;position:relative;padding-left:4ch}html[data-ide-chrome=on] .related li::before{content:"[" counter(rel) "]";position:absolute;left:0;top:0;color:var(--c-meta);font-variant-numeric:tabular-nums}html[data-ide-chrome=on] aside.series ol{list-style:none;padding-left:0;counter-reset:part}html[data-ide-chrome=on] aside.series li{counter-increment:part;position:relative;padding-left:4ch}html[data-ide-chrome=on] aside.series li::before{content:"[" counter(part) "]";position:absolute;left:0;top:0;color:var(--c-meta);font-variant-numeric:tabular-nums}html[data-ide-chrome=on] .tl-year-tag::after{content:"/";margin-left:-.5rem;color:var(--c-meta)}@media (min-width:640px){html[data-ide-chrome=on] .icon-btn svg{display:none}html[data-ide-chrome=on] .btn-token{display:inline}html[data-ide-chrome=on] .btn-token::before{content:"[";color:var(--c-meta)}html[data-ide-chrome=on] .btn-token::after{content:"]";color:var(--c-meta)}html[data-ide-chrome=on] .icon-btn{width:auto;height:auto;padding:.15rem .2rem;min-height:2.25rem}html[data-ide-chrome=on] .site-actions{gap:.4rem;margin-right:-.2rem}}html[data-ide-chrome=on] .rail ul{counter-reset:ln}html[data-ide-chrome=on] .rail li{counter-increment:ln;position:relative}html[data-ide-chrome=on] .rail li::before{content:counter(ln);position:absolute;top:.05em;right:-23px;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--c-bg);border:1px solid var(--c-rule);color:var(--c-meta);box-shadow:0 0 0 5px var(--c-bg);font-size:.62em;font-variant-numeric:tabular-nums;pointer-events:none}html[data-ide-chrome=on] .rail-inner{width:calc(100% + 24px);padding-right:24px}html[data-ide-chrome=on] .rail-row[aria-current]::after{right:3px}html[data-ide-chrome=on] .toc li:first-child,html[data-ide-chrome=on] .toc li:has(.toc-end){counter-increment:none}html[data-ide-chrome=on] .toc li:first-child::before,html[data-ide-chrome=on] .toc li:has(.toc-end)::before{content:none}html[data-ide-chrome=on] .rail-tags{counter-reset:none}html[data-ide-chrome=on] .rail-lead::before{content:none}html[data-ide-chrome=on] .rail-sub{font-size:var(--fs-small);line-height:var(--lh-small);letter-spacing:var(--ls-small)}html[data-ide-chrome=on] .toc .rail-sub{gap:0}html[data-ide-chrome=on] .rail-sub::before{content:"/";color:var(--c-meta);margin-inline-end:.35em}html[data-ide-chrome=on] .toc ul{counter-reset:ln h2 h3}html[data-ide-chrome=on] .toc li:has(.rail-lead){counter-increment:h2;counter-set:h3 0}html[data-ide-chrome=on] .toc li:has(.rail-lead)::before{content:counter(h2)}html[data-ide-chrome=on] .toc li:has(.rail-sub){counter-increment:h3}html[data-ide-chrome=on] .toc li:has(.rail-sub)::before{content:counter(h2) "." counter(h3);width:30px;right:-29px;border-radius:999px}html[data-ide-chrome=on] .toc .rail-inner{width:calc(100% + 32px);padding-right:32px}@media (max-width:639px){form.search input,form.subscribe input,.search-input,.comment-form input,.comment-form textarea{font-size:max(16px,1em)}.rail-row{padding-block:.6rem}.rail-tags a{padding-block:.4rem}footer.site a{display:inline-block;padding-block:.35rem}.rail-scrim{background:rgba(0,0,0,.15)}}@media (hover:none){.code-copy{opacity:1}}.to-top{bottom:calc(1.25rem + env(safe-area-inset-bottom,0px))}.rail{padding-left:calc(1.25rem + env(safe-area-inset-left,0px))}