.reading{display:grid;grid-template-columns:12.5rem minmax(0,1fr);align-items:start;gap:clamp(.85rem,2vw,1.5rem)}.reading--wide{grid-template-columns:minmax(0,1fr)}.reading__column{display:flex;flex-direction:column;gap:clamp(.85rem,2vw,1.15rem);min-width:0}.toc{position:sticky;top:1rem;max-height:calc(100dvh - 2rem);overflow-y:auto;overscroll-behavior:contain}.toc__inner{padding:.75rem .85rem;background:color-mix(in srgb,var(--paper) calc(var(--paper-alpha) * 92%),transparent);border:2px solid var(--rule);border-radius:var(--panel-radius);box-shadow:var(--panel-lift)}.toc__label{margin:0 0 .5rem;padding-bottom:.45rem;font-family:var(--font-pixel);font-size:.625rem;color:var(--ink-faint);border-bottom:1px dashed var(--rule);letter-spacing:.05em}.toc ol{display:flex;flex-direction:column;gap:.05rem;margin:0;padding:0;list-style:none}.toc a{display:block;padding:.2rem .35rem;font-size:.86rem;line-height:1.4;color:var(--ink-soft);text-decoration:none;border-left:2px solid transparent;border-radius:0 3px 3px 0;transition:color .14s ease,background .14s ease,border-color .14s ease}.toc a:hover{color:var(--accent);background:var(--accent-wash)}.toc a.active{color:var(--ink);font-weight:600;background:var(--accent-wash);border-left-color:var(--accent)}.toc__sub a{padding-left:1.1rem;font-size:.8rem;color:var(--ink-faint)}.article-head{padding-bottom:1.1rem;margin-bottom:1.4rem;border-bottom:2px dashed var(--rule)}.article-head__back{margin:0 0 .6rem;font-family:var(--font-pixel);font-size:.625rem;letter-spacing:.05em}.article-head__back a{color:var(--ink-faint);text-decoration:none}.article-head__back a:hover{color:var(--accent)}.article-head__meta{display:flex;flex-wrap:wrap;gap:.5rem;margin:.6rem 0 0;font-family:var(--font-mono);font-size:.78rem;color:var(--ink-faint)}.article-head__share{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.95rem}.prose{font-size:1.075rem;line-height:1.72;color:var(--ink);hanging-punctuation:first}.prose>p,.prose>ul,.prose>ol,.prose>blockquote,.prose>h2,.prose>h3,.prose>h4{max-width:68ch}.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}.prose p{margin:0 0 1.05em}.prose h1,.prose h2,.prose h3,.prose h4{position:relative;scroll-margin-top:1.5rem;text-shadow:var(--title-glow)}.prose h2{margin:2.2rem 0 .75rem;padding-bottom:.35rem;font-size:1.62rem;font-variation-settings:"SOFT" 44,"WONK" 1,"opsz" 48;font-weight:700;border-bottom:2px solid var(--rule)}.prose h2:before{margin-right:.5rem;font-family:var(--font-body);font-size:.72em;color:var(--accent);content:var(--motif)}.prose h3{margin:1.8rem 0 .6rem;font-size:1.28rem;font-weight:660}.prose h4{margin:1.5rem 0 .5rem;font-size:1.08rem;font-weight:640}.prose-anchor{margin-left:.45rem;font-family:var(--font-mono);font-size:.7em;color:var(--ink-faint);text-decoration:none;opacity:0;transition:opacity .14s ease,color .14s ease}.prose h2:hover .prose-anchor,.prose h3:hover .prose-anchor,.prose h4:hover .prose-anchor,.prose-anchor:focus-visible{opacity:1}.prose-anchor:hover{color:var(--accent)}.prose a{color:var(--accent);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent) 45%,transparent);text-decoration-thickness:1px;text-underline-offset:2.5px}.prose a:hover{color:var(--accent-hover);text-decoration-color:currentcolor;background:var(--accent-wash)}.prose strong{font-weight:650;color:var(--ink)}.prose ul,.prose ol{margin:0 0 1.05em;padding-left:1.5rem}.prose ul{list-style:disc}.prose ol{list-style:decimal}.prose li ul{list-style:circle}.prose li li ul{list-style:square}.prose li ol{list-style:lower-alpha}.prose li li ol{list-style:lower-roman}.prose li{margin-bottom:.4em}.prose li::marker{color:var(--accent)}.prose li>p{margin:0}.prose li>p+p{margin-top:.75em}.prose li>ul,.prose li>ol{margin:.4em 0 0}.prose blockquote{margin:1.4em 0;padding:.7em 1.1em;color:var(--ink-soft);background:color-mix(in srgb,var(--paper-2) 70%,transparent);border-left:3px solid var(--accent);border-radius:0 4px 4px 0}.prose blockquote>:first-child{margin-top:0}.prose blockquote>:last-child{margin-bottom:0}.prose hr{margin:2rem 0;border-top:2px dashed var(--rule)}.prose img,.prose video{display:block;max-width:100%;max-height:78vh;width:auto;height:auto;margin:1.4em auto;padding:.35rem;background:var(--paper-2);border:2px solid var(--rule);border-radius:4px;box-shadow:0 2px 0 var(--shade)}.prose a.zoom{display:block;border:0;text-decoration:none}.prose a.zoom img{cursor:default}.prose a.zoom[data-zoomable] img{cursor:zoom-in}.prose a.zoom[data-zoomable]:hover img{border-color:var(--accent)}.prose a.zoom:focus-visible img{outline:2px solid var(--accent);outline-offset:3px}.prose figure{margin:1.4em 0}.prose figcaption{margin-top:.5em;font-family:var(--font-mono);font-size:.78rem;color:var(--ink-faint);text-align:center}.lightbox{max-width:none;max-height:none;padding:0;background:none;border:0}.lightbox[open]{display:grid;place-items:center;inset:0;width:100vw;height:100dvh}.lightbox::backdrop{background:var(--veil)}html:has(.lightbox[open]){overflow:hidden}.lightbox__window{display:flex;flex-direction:column;width:min(94vw,1600px);height:min(92dvh,1100px);overflow:hidden}@media(max-width:40rem){.lightbox__window{width:98vw;height:96dvh}}.lightbox__bar{flex:none;border-radius:calc(var(--panel-radius) - 2px) calc(var(--panel-radius) - 2px) 0 0}.lightbox__close{padding:0;font-family:var(--font-pixel);font-size:.625rem;color:var(--ink-faint);letter-spacing:.04em;background:none;border:0;cursor:pointer}.lightbox__close:hover,.lightbox__close:focus-visible{color:var(--accent)}@media(max-width:56rem){.lightbox__bar{padding-top:0;padding-right:0;padding-bottom:0}.lightbox__close{display:grid;place-items:center;min-width:44px;min-height:44px}}.lightbox__stage{display:grid;flex:1;place-items:center;min-height:0;overflow:hidden;background:var(--paper-3);touch-action:none}.lightbox__image{display:block;max-width:none;max-height:none;will-change:transform}@media(prefers-reduced-motion:no-preference){.lightbox[open]{animation:lightbox-in .18s cubic-bezier(.2,.9,.3,1)}.lightbox[open]::backdrop{animation:lightbox-veil .18s ease-out}}@keyframes lightbox-in{0%{opacity:0;transform:translateY(6px) scale(.985)}}@keyframes lightbox-veil{0%{opacity:0}}.prose table{display:block;width:100%;margin:1.4em 0;overflow-x:auto;font-size:.94rem;border-collapse:collapse}.prose th,.prose td{padding:.5em .75em;text-align:left;border:1px solid var(--rule)}.prose th{font-family:var(--font-pixel);font-size:.625rem;font-weight:400;letter-spacing:.03em;background:var(--paper-3)}.prose tbody tr:nth-child(2n){background:color-mix(in srgb,var(--paper-2) 55%,transparent)}.prose :not(pre)>code{padding:.1em .34em;font-family:var(--font-mono);font-size:.83em;color:var(--ink);background:color-mix(in srgb,var(--paper-3) 62%,transparent);border:1px solid color-mix(in srgb,var(--rule) 45%,transparent);border-radius:3px;word-break:break-word}.prose a>code{color:var(--accent)}.code-block{position:relative;margin:1.4em 0}.prose pre{margin:1.4em 0;padding:.95rem 1.05rem;overflow-x:auto;font-size:.845rem;line-height:1.62;border:2px solid var(--rule);border-radius:4px;box-shadow:0 2px 0 var(--shade);tab-size:2;background-image:linear-gradient(to right,var(--code-bg),transparent),linear-gradient(to left,var(--code-bg),transparent),linear-gradient(to right,var(--shade-deep),transparent),linear-gradient(to left,var(--shade-deep),transparent);background-repeat:no-repeat;background-position:0 0,100% 0,0 0,100% 0;background-size:2.5rem 100%,2.5rem 100%,.85rem 100%,.85rem 100%;background-attachment:local,local,scroll,scroll}.code-block pre{margin:0}.prose pre code{font-family:var(--font-mono);background:none;border:0;padding:0;color:inherit}.code-block__copy{position:absolute;top:.5rem;right:.5rem;padding:.28rem .5rem .24rem;font-family:var(--font-pixel);font-size:.625rem;color:var(--ink-soft);cursor:pointer;background:var(--paper);border:1px solid var(--rule-strong);border-radius:3px;opacity:0;letter-spacing:.04em;transition:opacity .14s ease,color .14s ease}.code-block:hover .code-block__copy,.code-block__copy:focus-visible{opacity:1}.code-block__copy:hover{color:var(--accent)}[data-time=night] .astro-code,[data-time=night] .astro-code span{color:var(--shiki-dark)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}.prose pre.astro-code{background-color:var(--code-bg)!important}.pagination{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(15rem,100%),1fr));gap:clamp(.6rem,2vw,.9rem)}.pagination__link{display:grid;gap:.15rem;padding:.8rem 1rem;color:var(--ink);text-decoration:none;background:color-mix(in srgb,var(--paper) calc(var(--paper-alpha) * 94%),transparent);border:2px solid var(--rule);border-radius:var(--panel-radius);box-shadow:var(--panel-lift);transition:border-color .16s ease,transform .16s ease}.pagination__link:hover{border-color:var(--accent);transform:translateY(-2px)}.pagination__link--next{text-align:right}.pagination__dir,.pagination__link time{font-family:var(--font-pixel);font-size:.625rem;color:var(--ink-faint);letter-spacing:.05em}.pagination__title{font-family:var(--font-display);font-size:1.02rem;font-variation-settings:"SOFT" 30,"WONK" 1,"opsz" 24;font-weight:620;line-height:1.3}.pagination__link:hover .pagination__title{color:var(--accent)}.toc-toggle,.toc-backdrop,.toc-sheet{display:none}.to-top{position:fixed;right:clamp(.75rem,3vw,1.4rem);bottom:clamp(.75rem,3vw,1.4rem);z-index:40;display:grid;place-items:center;width:2.75rem;height:2.75rem;font-size:.9rem;color:var(--ink);cursor:pointer;background:color-mix(in srgb,var(--paper) 96%,transparent);border:2px solid var(--rule-strong);border-radius:50%;box-shadow:var(--panel-lift);opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease,color .16s ease}.to-top.visible{opacity:1;visibility:visible}.to-top:hover{color:var(--accent)}.to-top__ring{position:absolute;inset:-2px;width:calc(100% + 4px);height:calc(100% + 4px);transform:rotate(-90deg);pointer-events:none}.to-top__ring circle{fill:none;stroke:var(--accent);stroke-width:2.5;opacity:.85}@media(max-width:60rem){.reading{grid-template-columns:minmax(0,1fr);padding-bottom:4.5rem}.toc{display:none}.code-block__copy{min-height:2.75rem;padding-inline:.75rem;opacity:1}.toc-sheet a{display:flex;align-items:center;min-height:2.75rem}.article-head__back a{display:inline-flex;align-items:center;min-height:2.75rem}.toc-toggle{position:fixed;left:clamp(.75rem,3vw,1.4rem);bottom:clamp(.75rem,3vw,1.4rem);z-index:40;display:flex;align-items:center;min-height:2.75rem;padding:.55rem .9rem .5rem;font-family:var(--font-pixel);font-size:.6875rem;color:var(--ink);cursor:pointer;background:color-mix(in srgb,var(--paper) 96%,transparent);border:2px solid var(--rule-strong);border-radius:var(--panel-radius);box-shadow:var(--panel-lift);letter-spacing:.04em}.toc-backdrop{position:fixed;inset:0;z-index:50;display:block;background:#0a081880;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}.toc-backdrop.open{opacity:1;visibility:visible}.toc-sheet{position:fixed;right:0;bottom:0;left:0;z-index:60;display:block;max-height:72dvh;padding:0 1rem 1.25rem;overflow-y:auto;background:var(--paper);border-top:2px solid var(--rule-strong);border-radius:8px 8px 0 0;transform:translateY(102%);transition:transform .26s cubic-bezier(.22,1,.36,1)}.toc-sheet.open{transform:translateY(0)}.toc-sheet header{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;padding:.9rem 0 .6rem;background:var(--paper);border-bottom:1px dashed var(--rule)}.toc-sheet h2{margin:0;font-family:var(--font-pixel);font-size:.6875rem;font-variation-settings:normal;font-weight:400}.toc-sheet header button{display:grid;place-items:center;min-width:2.75rem;min-height:2.75rem;padding:0 .4rem;font-size:1.3rem;line-height:1;color:var(--ink-soft);cursor:pointer;background:none;border:0}.toc-sheet ol{margin:.6rem 0 0;padding:0;list-style:none}.toc-sheet a{display:block;padding:.5rem .4rem;color:var(--ink-soft);text-decoration:none;border-bottom:1px dotted var(--rule)}.toc-sheet a.active{color:var(--accent);font-weight:600}.toc-sheet .toc__sub a{padding-left:1.2rem;font-size:.92rem;color:var(--ink-faint)}body.sheet-open{overflow:hidden}}
