:root{--font: "JetBrains Mono", ui-monospace, Menlo, monospace;--fs: 14px;--lh: 18px;--fs-sm: 12px;--lh-sm: 13.5px;--bold-weight: 600;--color: #000;--color-bg: #fff;--muted: #747474;--faint: #c5c5c5;--border-faint: #e7e7e7;--bw: 1px;--tracking: 0em;--pad-x: 2ch;--gap: 1rlh;--prose-length: 74ch;--outset: 24ch;--outset-wider: 48ch;--wall-height: 16rlh;--wall-image-max: 56ch;--wall-gap: 3ch;--wall-rotate: 1deg;--wall-shift-y: .5rlh;--image-grid-min: 24ch;--image-grid-ratio: 5 / 7;--image-grid-filter: grayscale( 0 );--caption-lines: 2}:root[data-theme=dark]{--color: #fff;--color-bg: #000;--muted: #8b8b8b;--faint: #3a3a3a;--border-faint: #3a3a3a}@font-face{font-family:JetBrains Mono;src:url(/assets/fonts/jetbrains-mono.woff2) format("woff2");font-weight:100 800;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/fonts/jetbrains-mono-italic.woff2) format("woff2");font-weight:100 800;font-style:italic;font-display:swap}*,*:before,*:after{box-sizing:border-box}:root{font-family:var(--font);font-size:var(--fs);line-height:var(--lh);letter-spacing:var(--tracking);font-variant-numeric:tabular-nums slashed-zero;font-feature-settings:"kern" 1,"liga" 0,"calt" 0,"zero" 1,"tnum" 1;color:var(--color);background:var(--color-bg);-webkit-font-smoothing:antialiased}body{margin:0}h1,h2,h3,h4{font-size:inherit;font-weight:inherit;margin:0;text-decoration:underline}p,figure,blockquote,dl,dd,ul,ol{margin:0}ul,ol{padding:0;list-style:none}cite{font-style:normal}small,figcaption{font-size:var(--fs-sm);line-height:var(--lh-sm);color:var(--muted)}a{color:inherit;text-decoration-color:var(--faint);text-underline-offset:2px;text-decoration-thickness:1px}.emoji{display:inline-block;margin-inline-end:1ch}a:hover{text-decoration-color:currentColor}input,select,button{font:inherit;color:inherit;background:var(--color-bg);border:var(--bw) solid var(--color);border-radius:0;padding:0 .5ch}input[type=checkbox],input[type=range]{accent-color:var(--color)}:focus-visible{outline:var(--bw) dotted var(--color);outline-offset:1px}::selection{background:var(--color);color:var(--color-bg)}.visually-hidden{position:absolute;clip-path:inset(50%);inline-size:1px;block-size:1px;overflow:hidden;white-space:nowrap}img{display:block;max-width:100%;height:auto}.site-header{display:flex;align-items:flex-start;gap:var(--pad-x);padding:1rlh var(--pad-x)}.theme-toggle{margin-inline-start:auto;border:0;padding:0;background:none;cursor:pointer}.root,.path{flex:1;min-inline-size:0}.path ol{display:flex;flex-wrap:wrap}.path li{white-space:nowrap}.path li+li:before{content:"/";margin-inline:1ch;color:var(--muted)}.path a{text-decoration:none}.path a:hover{text-decoration:underline}.path h1{display:inline;font-weight:var(--bold-weight);text-decoration:none}h1.tree__label{text-decoration:none}.tree h1.tree__label,.tree [aria-current=page]{font-weight:var(--bold-weight)}div.tree__row:hover>h1.tree__label{text-decoration:none}details[data-branch]>.tree>li:not(.is-branch),details[data-branch]>nav>.tree>li:not(.is-branch){display:none}details[data-branch]>.tree>li.is-branch:before,details[data-branch]>nav>.tree>li.is-branch:before{inset-block-end:auto;block-size:calc(var(--lh) / 2)}.root__intro{margin-inline-start:1ch;padding-inline-start:calc(2ch - var(--bw));border-inline-start:var(--bw) solid var(--color);max-inline-size:64ch;padding-block-end:1rlh}main{padding-block-end:4rlh}main>h1,main>.intro{padding-inline:var(--pad-x)}.page{display:grid;grid-template-columns:[edge-start] var(--pad-x) [full-start wider-start wide-start content-start] min(var(--prose-length),100% - 2 * var(--pad-x)) [content-end] minmax(0,var(--outset)) [wide-end] minmax(0,calc(var(--outset-wider) - var(--outset))) [wider-end] minmax(0,1fr) [full-end] var(--pad-x) [edge-end];row-gap:2rlh;padding-block:1rlh 2rlh}.page>*{grid-column:content}.page>.prose{grid-column:edge;display:grid;grid-template-columns:subgrid;max-inline-size:none}.page>.prose>*{grid-column:content}.page>.prose>figure,.page>.prose>[data-width=wide]{grid-column:wide}.page>.prose>[data-width=wider]{grid-column:wider}.page>.prose>[data-width=full]{grid-column:full}.page>header{display:grid;gap:1rlh}.toc ul{list-style:none;counter-reset:toc-h2 toc-h3}.toc li{display:flex;gap:1ch;color:var(--muted)}.toc__h2{counter-increment:toc-h2;counter-reset:toc-h3}.toc__h2:before{content:counter(toc-h2,decimal-leading-zero)}.toc__h3{counter-increment:toc-h3;padding-inline-start:3ch}.toc__h3:before{content:counter(toc-h2,decimal-leading-zero) "." counter(toc-h3)}.toc a{color:var(--muted);text-decoration:none}.toc a:hover{color:var(--color);text-decoration:underline}@media(min-width:900px){.page{position:relative}.page>.toc{grid-column:content-end / full-end;position:absolute;inset-block:1rlh 0;inset-inline-start:4ch;inline-size:24ch}.toc ul{position:sticky;inset-block-start:1rlh}}.prose :is(h2,h3)[id]{scroll-margin-block-start:1rlh}.prose{max-inline-size:var(--prose-length)}.prose>*+*{margin-block-start:1rlh}.prose h2{margin-block-start:2rlh}.prose>:is(h2,h3):first-child{margin-block-start:0}.prose ul{list-style:square outside;padding-inline-start:2ch}.prose ol{list-style:decimal outside;padding-inline-start:3ch}.prose blockquote{border-inline-start:var(--bw) solid var(--color);padding-inline-start:2ch}.prose hr{border:0;border-block-start:var(--bw) solid var(--border-faint)}.tree{max-inline-size:64ch}.tree li{position:relative}:is(.tree .tree,.root>nav>.tree){margin-inline-start:1ch}:is(.tree .tree,.root>nav>.tree)>li{padding-inline-start:2ch}:is(.tree .tree,.root>nav>.tree)>li:before,:is(.tree .tree,.root>nav>.tree)>li:after{content:"";position:absolute;inset-inline-start:0;border:0 solid var(--color)}:is(.tree .tree,.root>nav>.tree)>li:before{inset-block:0;border-inline-start-width:var(--bw)}:is(.tree .tree,.root>nav>.tree)>li:last-child:before{inset-block-end:auto;block-size:calc(var(--lh) / 2)}:is(.tree .tree,.root>nav>.tree)>li:after{inset-block-start:calc(var(--lh) / 2);inline-size:1.5ch;border-block-start-width:var(--bw)}.tree__row{display:flex;align-items:baseline;gap:1ch}details:has(+.tree__open)>.tree__row{padding-inline-end:3ch}summary.tree__row{cursor:pointer;list-style:none}summary.tree__row::-webkit-details-marker{display:none}.tree__label{text-decoration:none}.tree__row:hover>.tree__label{text-decoration:underline}.tree__icon{display:inline-block;inline-size:2ch;margin-inline-end:.5ch}.icon{display:inline-block;vertical-align:-2px;fill:none;stroke:currentColor;stroke-width:var(--bw);stroke-linejoin:round}details>summary .icon--folder-open,details[open]>summary .icon--folder{display:none}details[open]>summary .icon--folder-open{display:inline-block}.tree__open{position:absolute;inset-block-start:0;inset-inline-end:0;text-decoration:none}.prose .page-links{display:grid;grid-template-columns:repeat(var(--columns, 1),minmax(0,1fr));gap:.25rlh var(--pad-x);list-style:none;padding:0}@media(max-width:600px){.prose .page-links{grid-template-columns:minmax(0,1fr)}}.page-links a{display:flex;align-items:baseline;text-decoration:none}.page-links__icon{flex:none;inline-size:2ch;margin-inline-end:.5ch}.page-links__title{text-decoration:underline;text-decoration-color:var(--faint)}.page-links a:hover .page-links__title{text-decoration-color:currentColor}.file-page{display:grid;gap:2rlh var(--pad-x);padding:0 var(--pad-x) 1rlh}.file-page__file{display:grid;place-items:center;min-block-size:0}.file-page__file img{max-block-size:80svh;max-inline-size:100%;inline-size:auto;block-size:auto;object-fit:contain;background-size:contain;background-repeat:no-repeat;background-position:center}.file-page__info{display:grid;align-content:start;gap:2rlh}.file-page__info header p{color:var(--muted)}@media(min-width:900px)and (orientation:landscape){main:has(>.file-page){padding-block-end:0}.file-page{grid-template-columns:minmax(0,1fr) minmax(28ch,40ch);grid-template-rows:minmax(0,1fr);block-size:calc(100svh - 3rlh)}.file-page__file img{max-block-size:100%;min-block-size:0}.file-page__info{overflow-y:auto}}.file-meta{display:grid;grid-template-columns:max-content 1fr;gap:0 2ch}.file-meta dt{color:var(--muted)}.inline-list,.inline-list li{display:inline}.inline-list li+li:before{content:", "}.poster-wall__posters{display:flex;flex-wrap:wrap;justify-content:flex-start;row-gap:var(--wall-gap);padding-block:var(--wall-shift-y)}.poster-wall__posters:has(>.poster-wall__row){flex-direction:column}.poster-wall__row{display:flex;flex-wrap:nowrap;justify-content:flex-start}.poster-wall__poster{position:relative;flex:none;display:flex;flex-direction:column;margin-inline-start:var(--wall-gap);text-decoration:none;translate:0 calc(var(--y, 0) * var(--wall-shift-y))}.poster-wall__poster img{rotate:calc(var(--r, 0) * var(--wall-rotate))}.poster-wall__caption{inline-size:0;min-inline-size:100%;padding-block-start:.5rlh;font-size:var(--fs-sm);line-height:var(--lh-sm);color:var(--muted)}a.poster-wall__poster:hover .poster-wall__caption{color:var(--color)}.poster-wall__row>.poster-wall__poster:first-child{margin-inline-start:0}.poster-wall img{display:block;block-size:var(--h, var(--wall-height));inline-size:auto;max-inline-size:none}@media(max-width:70ch){.poster-wall img{block-size:var(--h, calc(var(--wall-height) / 2))}}image-grid{display:block}image-grid .filters{display:flex;align-items:stretch;min-block-size:2rlh;margin-inline:var(--pad-x);border:var(--bw) solid var(--border-faint);border-block-end:0;border-start-start-radius:5px;border-start-end-radius:5px;background:var(--color-bg)}image-grid .filters>*{align-self:center;margin-inline:1ch}image-grid .filters__search{flex:0 1 32ch;align-self:stretch;inline-size:auto;min-inline-size:16ch;margin:0;padding:0 1ch;border:0;border-inline-end:var(--bw) solid var(--border-faint);border-start-start-radius:5px;background:var(--color-bg);-webkit-appearance:none;appearance:none}image-grid .filters__search::placeholder{color:var(--muted)}image-grid .filters__search:focus-visible{outline:var(--bw) dotted var(--color);outline-offset:calc(var(--bw) * -3)}image-grid .filters__order{display:inline-flex;padding:0;border:var(--bw) solid var(--color)}image-grid .filters__order legend{position:absolute;clip-path:inset(50%)}image-grid .filters__order :is(label,button){padding:0 1ch;border:0;background:none;cursor:pointer;white-space:nowrap}image-grid .filters__order :is(label,button)+:is(label,button){border-inline-start:var(--bw) solid var(--color)}image-grid .filters__order :is(label:has(:checked),[aria-pressed=true]){background:var(--color);color:var(--color-bg)}image-grid .filters__order input{position:absolute;opacity:0;pointer-events:none}image-grid .filters__order label:has(:focus-visible){outline:var(--bw) dotted var(--color);outline-offset:1px}image-grid .filters__size{margin-inline-start:auto;display:inline-flex;align-items:center;gap:.5ch}image-grid .filters__glyph{color:var(--muted)}image-grid .filters input[type=range]{--thumb: 1ch;appearance:none;-webkit-appearance:none;inline-size:16ch;block-size:1rlh;margin:0;padding:0;border:0;background:linear-gradient(var(--color),var(--color)) center / 100% var(--bw) no-repeat;cursor:pointer}image-grid .filters input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;inline-size:var(--thumb);block-size:var(--thumb);border:0;border-radius:50%;background:var(--color)}image-grid .filters input[type=range]::-moz-range-thumb{inline-size:var(--thumb);block-size:var(--thumb);border:0;border-radius:50%;background:var(--color)}image-grid .filters input[type=range]::-moz-range-track{background:none}image-grid .filters input[type=range]:focus-visible{outline:var(--bw) dotted var(--color);outline-offset:2px}image-grid{container-type:inline-size}@container (max-width: 64ch){image-grid .filters{flex-wrap:wrap;row-gap:.5rlh;padding-block-end:.5rlh}image-grid .filters__search{flex:1 1 100%;min-block-size:2rlh;border-inline-end:0;border-block-end:var(--bw) solid var(--border-faint)}image-grid .filters__order :is(label,button){padding-inline:.5ch}}@container (max-width: 42ch){image-grid .filters__order{flex:1 1 100%}image-grid .filters__order :is(label,button){flex:1 1 0;white-space:normal;text-align:center}}image-grid:has(>.filters) .grid{border-start-start-radius:0;border-start-end-radius:0}image-grid .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(var(--image-grid-min),100%),1fr));grid-auto-flow:row dense;gap:var(--bw);background:var(--border-faint);border:var(--bw) solid var(--border-faint);margin-inline:var(--pad-x);border-radius:5px}image-grid .empty{padding-inline:var(--pad-x);color:var(--muted)}.image-grid__item{background:var(--color-bg);padding:1ch;scroll-margin-block-start:1rlh;border-radius:5px}.image-grid__item figure>button{display:block;inline-size:100%;aspect-ratio:var(--image-grid-ratio);padding:0;border:0;background:none;cursor:zoom-in}.image-grid__item img{inline-size:100%;block-size:100%;object-fit:contain;object-position:left top}image-grid[data-greyscale] .image-grid__item img{filter:var(--image-grid-filter)}image-grid[data-greyscale] .image-grid__item:is(:focus-within,.is-open) img{filter:none}.image-grid__item figcaption{box-sizing:content-box;block-size:calc(var(--caption-lines) * var(--lh-sm));padding-block-start:.5rlh;display:-webkit-box;-webkit-box-orient:vertical;line-clamp:var(--caption-lines);-webkit-line-clamp:var(--caption-lines);overflow:hidden}.image-grid__item.is-open{grid-column:span var(--span, 1);grid-row:span var(--rows, 1);display:grid;grid-template-columns:minmax(0,max-content) minmax(28ch,1fr);gap:1rlh var(--pad-x);align-items:start}.image-grid__item.is-open figure>button{aspect-ratio:auto;cursor:zoom-out}.image-grid__item.is-open img{inline-size:auto;block-size:auto}.image-grid__item.is-open[data-fit] figure{block-size:var(--open-h);display:grid;grid-template-rows:minmax(0,1fr) auto}.image-grid__item.is-open[data-fit] figure>button{block-size:100%}.image-grid__item.is-open[data-fit] img{block-size:100%}.image-grid__item.is-open[data-fit] .image-grid__meta{max-block-size:var(--open-h);overflow:auto}.image-grid__item.is-open:not([data-fit]) img{max-block-size:calc(100svh - 4rlh)}@media(max-width:70ch){.image-grid__item.is-open{grid-template-columns:1fr}.image-grid__item.is-open img{inline-size:100%;max-block-size:none}}.image-grid__meta:not([hidden]){display:grid;gap:1rlh;align-content:start}.image-grid__meta dl{display:grid;grid-template-columns:max-content 1fr;gap:0 2ch}.image-grid__meta dt{color:var(--muted)}.image-grid__meta button{justify-self:start}
