@font-face{font-family:"Brygada 1918";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/brygada1918-400.woff2)format("woff2")}@font-face{font-family:"Brygada 1918";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/brygada1918-600.woff2)format("woff2")}@font-face{font-family:"Brygada 1918";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/brygada1918-700.woff2)format("woff2")}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/sourceserif4-400.woff2)format("woff2")}@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/sourceserif4-italic-400.woff2)format("woff2")}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/sourceserif4-600.woff2)format("woff2")}@font-face{font-family:Source Code Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/sourcecodepro-400.woff2)format("woff2")}@font-face{font-family:Source Code Pro;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/sourcecodepro-italic-400.woff2)format("woff2")}@font-face{font-family:Goudy Initialen;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/goudyinitialen.woff2)format("woff2")}:root{color-scheme:light;--font-heading:"Brygada 1918", "Source Han Serif KR", Georgia, "Times New Roman", serif;--font-body:"Source Serif 4", "Source Han Serif KR", Georgia, "Times New Roman", serif;--bg:#fdfdfc;--fg:#1a1a1a;--muted:#6b6b6b;--link:#92406f;--highlight:#c8aabf;--rule:#e4e4e0;--font-mono:"Source Code Pro", ui-monospace, Menlo, Consolas, monospace;--code-bg:#f4f3ef;--code-keyword:#92406f;--code-literal:#4d6b45;--viz-pos:#d74545;--viz-neg:#3b6fd6;--max:46rem;--sidebar:12rem;--sidenote:14rem}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}::selection{background:var(--highlight);color:var(--fg)}body{background:var(--bg);color:var(--fg);font-family:var(--font-body);margin:0;padding:0 1.25rem;font-size:19px;line-height:1.65}h1,h2,h3,h4,h5,h6,.site-title{font-family:var(--font-heading);font-weight:600;line-height:1.25}ul{list-style-type:"– "}.layout{max-width:calc(var(--max) + var(--sidebar) + 3rem);margin:0 auto;padding-top:2.5rem}.site-header{max-width:var(--max);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1.5rem;margin-bottom:2.5rem;display:flex}.site-title{color:var(--fg);font-size:1.15em;font-weight:600;text-decoration:none}.site-nav{gap:1.25rem;display:flex}.sidebar{flex-direction:column;align-items:flex-start;display:flex}.site-nav a{color:var(--link);font-size:1em;text-decoration:none}.site-nav a:hover{text-decoration:underline}main{max-width:var(--max)}main>:first-child,main>.post>:first-child,main>.post>.post-content:first-child>:first-child{margin-top:0}.site-title,.toc-title{text-box:trim-start cap alphabetic}@media (width>=52rem){.layout{grid-template-columns:minmax(var(--sidebar), 1fr) minmax(0, var(--max)) minmax(0, 1fr);grid-template-rows:auto 1fr;align-items:start;column-gap:3rem;max-width:none;display:grid}.site-header,main{grid-column:2}.sidebar{width:var(--sidebar);grid-area:1/1/span 2;justify-self:end;max-height:calc(100vh - 5rem);position:sticky;top:2.5rem}.sidebar:has(.toc){height:calc(100dvh - 4rem);max-height:none}}.toc{flex-direction:column;flex:1;width:100%;min-height:0;font-size:.85rem;line-height:1.4;display:none}.toc-title{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.75rem}.toc ol{margin:0;padding:0;list-style:none}.toc>ol{--fade:1.25rem;overscroll-behavior:contain;scrollbar-width:thin;min-height:0;padding-block:calc(var(--fade) - .35rem) var(--fade);mask-image:linear-gradient(transparent, #000 var(--fade), #000 calc(100% - var(--fade)), transparent);margin-left:-.6rem;padding-left:.6rem;overflow-y:auto}.toc ol ol{padding-left:.85rem}.toc li{margin-top:.35rem}.toc a{color:var(--muted);text-decoration:none;display:block;position:relative}.toc a:hover,.toc a[aria-current]{color:var(--fg)}.toc a[aria-current]:before{content:"";background:var(--link);border-radius:1px;width:2px;position:absolute;top:.2em;bottom:.2em;left:-.6rem}@media (width>=52rem){.toc{display:flex}}:is(h2,h3,h4,h5,h6)[id]{scroll-margin-top:2.5rem}:is(h2,h3,h4,h5,h6)[id] .heading-link{color:inherit;text-decoration:none;transition:color .15s}:is(h2,h3,h4,h5,h6)[id] .heading-anchor{width:.7em;color:var(--muted);margin-left:-.7em;font-weight:400;text-decoration:none;display:inline-block;translate:0 -.125em}:is(h2,h3,h4,h5,h6)[id] .heading-copy{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;margin-left:.3em;padding:.1em;line-height:1}.heading-copy svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:.6em;height:.6em;display:block}.heading-copy:not([data-copied]) .heading-copied-icon,.heading-copy[data-copied] .heading-copy-icon{display:none}:is(h2,h3,h4,h5,h6)[id] :is(.heading-anchor,.heading-copy){opacity:0;transition:opacity .15s,color .15s}:is(h2,h3,h4,h5,h6)[id] :is(.heading-link:hover,.heading-link:hover .heading-anchor,a.heading-anchor:hover,.heading-copy:hover,.heading-copy[data-copied]){color:var(--link)}:is(h2,h3,h4,h5,h6)[id]:is(:hover,:target,:has(:focus-visible)) .heading-anchor,:is(h2,h3,h4,h5,h6)[id]:hover .heading-copy,:is(h2,h3,h4,h5,h6)[id] .heading-copy:is(:focus-visible,[data-copied]){opacity:1}main{min-height:60vh;padding-bottom:3rem}.post-list{margin:0;padding-left:1.25rem}.post-list li{padding:.35rem 0}.post-list a{color:var(--fg);font-weight:500;text-decoration:none}.post-list a:hover{text-decoration:underline}.post-list time{margin-left:.6rem}.post-list time,.post time{color:var(--muted);white-space:nowrap;font-size:.85rem}.post h1{margin-bottom:.25rem}.post-tags{color:var(--muted);flex-wrap:wrap;margin:.6rem 0 0;padding:0;font-size:.9rem;font-style:italic;list-style:none;display:flex}.post-tags li:not(:last-child):after{content:",";margin-right:.3em}.post-tags a{color:inherit;text-underline-offset:.2em;text-decoration:underline dashed}.post-tags a:hover{color:var(--fg)}.post-content{margin-top:1.5rem}.post-content p{margin:0}.post-content p+p{text-indent:1.5em}.post-content math[display=block]{margin:.6em 0;overflow:auto hidden}.post-content .revise{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:-.4em 0 .4em;font-size:.75rem}.post-content .nowrap{white-space:nowrap}.qed{float:right;background:var(--link);width:.55em;height:.55em;margin:.66em 0 0 .5em}.post-content p:has(>.qed){display:flow-root}.post-content .proof{margin-top:.75em;display:flow-root}.post-content .sidenote{text-indent:0}.book-list{margin:0;padding-left:1.25rem}.book-list li{padding:.2rem 0}.book-title{font-weight:500}.book-author:before{content:"by "}.book-author,.book-rating,.book-count{color:var(--muted)}.book-rating,.book-count{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.85rem}.book-rating{margin-left:.4rem}.book-favourite{color:var(--link)}.book-shelf summary{cursor:pointer;margin-top:2rem}.book-shelf summary h2{display:inline}.book-shelf summary{position:relative}.book-shelf summary .heading-anchor{position:absolute;right:100%}.book-count{margin-left:.4rem;font-weight:400}.post-content.drop-cap>p:first-child:first-letter{float:left;font-family:"Goudy Initialen", var(--font-heading);text-transform:uppercase;color:var(--link);margin:.07em .06em 0 0;font-size:5.25em;line-height:.8}.post-content h2,.post-content h3{margin-top:2rem}.post-content pre{background:var(--code-bg);border-radius:4px;padding:1rem;line-height:1.5;overflow-x:auto}.post-content code{font-family:var(--font-mono);font-size:.85em}.post-content :not(pre)>code{background:var(--code-bg);border-radius:3px;padding:.1em .3em}.post-content a{color:var(--link)}.post-content a[style*=--brand]:is(:hover,:focus-visible){color:var(--brand)}.link-icon-nowrap{white-space:nowrap}.link-icon{vertical-align:-.05em;width:.75em;height:.75em;fill:var(--muted);margin-left:.2em}a:hover .link-icon,a:focus-visible .link-icon{fill:var(--brand)}.post-content .katex-display{padding:.25rem 0;overflow:auto hidden}.sidenote-number{vertical-align:super;font-size:.7em;line-height:0}input.margin-toggle{display:none}.sidenote{color:var(--muted);font-size:.9rem;line-height:1.5;display:none}.sidenote-paragraph{display:block}.sidenote-paragraph+.sidenote-paragraph{margin-top:.5em}.sidenote>.sidenote-number+.sidenote-paragraph{display:inline}@media (width<77rem){label.sidenote-number{color:var(--link);cursor:pointer}.margin-toggle:checked+.sidenote{border-left:2px solid var(--rule);margin:.5rem 0 .75rem;padding-left:1rem;display:block}}@media (width>=83rem){.sidenote{float:right;clear:right;width:var(--sidenote);margin:.3rem calc(-1 * (var(--sidenote) + 3rem)) 1rem 0;display:block}}.post-content blockquote{border-left:2px solid var(--rule);color:var(--muted);margin:1rem 0;padding-left:1rem}.post-content img{max-width:100%;height:auto}.post-content figure{margin:1.5rem 0}.post-content figcaption{color:var(--muted);text-align:center;margin-top:.5rem;font-size:.85rem}@media (width>=40rem){.post-content figure.right{float:right;width:min(40%,16rem);margin:.3rem 0 1rem 1.5rem}}.post-content figure.right img{display:block}.post-content figure.right figcaption{text-align:left}.viz{outline-offset:.5rem;border-radius:6px;outline:2px solid #0000;margin:2rem 0;transition:outline-color .15s}.viz.viz-linked{outline-color:color-mix(in srgb, var(--highlight) 70%, transparent)}@media (prefers-reduced-motion:reduce){.viz{transition:none}}@media (width>=83rem){.viz-wide{margin-right:calc(-1 * (var(--sidenote) + 3rem))}}.post-meta{color:var(--muted);margin:0;font-size:.85rem}.post-meta a{color:var(--muted)}.post-meta a:hover{color:var(--fg)}.post-status{text-transform:uppercase;letter-spacing:.06em;font-size:.75rem}.photos-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1.5rem;display:flex}.photos-header h1{margin:0}.photo-crop{color:var(--muted);cursor:pointer;user-select:none;align-items:center;gap:.4rem;font-size:.85rem;display:flex}.photo-crop input{accent-color:var(--link);cursor:pointer;margin:0}.photo-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.25rem;margin:1.5rem 0 0;padding:0;list-style:none;display:grid}.photo-grid a{aspect-ratio:1;display:block}.photo-grid a:focus-visible{outline:2px solid var(--link);outline-offset:2px}.photo-grid picture{display:contents}.photo-grid img{object-fit:contain;width:100%;height:100%;display:block}.photos:has(.photo-crop input:checked) .photo-grid img{object-fit:cover}.photo-viewer{color:#e8e8e8;background:#0a0a0a;border:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0}.photo-viewer::backdrop{background:#0a0a0a}html:has(.photo-viewer[open]){overflow:hidden}.photo-viewer figure{flex-direction:column;justify-content:center;align-items:center;gap:.75rem;height:100%;margin:0;padding:3rem 3.5rem 1.5rem;display:flex}.photo-viewer picture{display:contents}.photo-viewer img{--room:calc(100dvh - 7rem);aspect-ratio:var(--ratio);width:min(100%, var(--room) * (var(--ratio)));height:auto;display:block}.photo-viewer figcaption{color:#a8a8a8;font-size:.85rem}.photo-viewer button{color:inherit;font:inherit;opacity:.7;cursor:pointer;background:0 0;border:0;padding:.25rem .75rem;font-size:2rem;line-height:1;position:absolute}.photo-viewer button:is(:hover,:focus-visible){opacity:1}.photo-viewer-close{top:.5rem;right:.5rem}.photo-viewer-prev{top:50%;left:.25rem;translate:0 -50%}.photo-viewer-next{top:50%;right:.25rem;translate:0 -50%}@media (width<=40rem){.photo-viewer figure{padding-inline:.5rem}.photo-viewer :is(.photo-viewer-prev,.photo-viewer-next){display:none}}
