@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}@font-face{font-family:Inter;src:url(/fonts/InterVariable.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/InterVariable-Italic.woff2)format("woff2");font-weight:100 900;font-style:italic;font-display:swap}@font-face{font-family:Commit Mono;src:url(/fonts/commit-mono/CommitMono-200.woff2)format("woff2");font-weight:200;font-style:normal;font-display:swap}@font-face{font-family:Commit Mono;src:url(/fonts/commit-mono/CommitMono-200-Italic.woff2)format("woff2");font-weight:200;font-style:italic;font-display:swap}@font-face{font-family:Commit Mono;src:url(/fonts/commit-mono/CommitMono-300.woff2)format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Commit Mono;src:url(/fonts/commit-mono/CommitMono-300-Italic.woff2)format("woff2");font-weight:300;font-style:italic;font-display:swap}@font-face{font-family:Commit Mono;src:url(/fonts/commit-mono/CommitMono-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Commit Mono;src:url(/fonts/commit-mono/CommitMono-400-Italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Commit Mono;src:url(/fonts/commit-mono/CommitMono-500.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Commit Mono;src:url(/fonts/commit-mono/CommitMono-500-Italic.woff2)format("woff2");font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:Commit Mono;src:url(/fonts/commit-mono/CommitMono-600.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Commit Mono;src:url(/fonts/commit-mono/CommitMono-600-Italic.woff2)format("woff2");font-weight:600;font-style:italic;font-display:swap}@font-face{font-family:Commit Mono;src:url(/fonts/commit-mono/CommitMono-700.woff2)format("woff2");font-weight:700 800;font-style:normal;font-display:swap}@font-face{font-family:Commit Mono;src:url(/fonts/commit-mono/CommitMono-700-Italic.woff2)format("woff2");font-weight:700 800;font-style:italic;font-display:swap}@font-face{font-family:Frank Ruhl Libre;src:url(/fonts/frank-ruhl-libre/FrankRuhlLibre-300.woff2)format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Frank Ruhl Libre;src:url(/fonts/frank-ruhl-libre/FrankRuhlLibre-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Frank Ruhl Libre;src:url(/fonts/frank-ruhl-libre/FrankRuhlLibre-500.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Frank Ruhl Libre;src:url(/fonts/frank-ruhl-libre/FrankRuhlLibre-700.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:iA Quattro;src:url(/fonts/ia-writer/iAWriterQuattroS-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:iA Quattro;src:url(/fonts/ia-writer/iAWriterQuattroS-Italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:iA Quattro;src:url(/fonts/ia-writer/iAWriterQuattroS-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:iA Quattro;src:url(/fonts/ia-writer/iAWriterQuattroS-BoldItalic.woff2)format("woff2");font-weight:700;font-style:italic;font-display:swap}:root{--font-primary:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-body:var(--font-primary);--font-display:"Frank Ruhl Libre", "iA Quattro", "Iowan Old Style", "Palatino Linotype", Georgia, serif;--font-mono:"Commit Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--serif:var(--font-primary);--sans:var(--font-primary);--size:13px;--lh:1.7;--pad-left:clamp(1.25rem, 5vw, 3rem);--text-max:640px;--img-col:260px;--gap:3.5rem;--fs-xs:.78rem;--fs-sm:.88rem;--fs-md:.94rem;--fs-base:1.04rem;--fs-lg:1.2rem;--fs-xl:1.45rem;--bg:#fcfcfb;--bg2:#f3f3f1;--text:#3a3a38;--text-title:#111110;--text-sub:#4f4f4a;--text-muted:#62625c;--text-dim:#6f6f69;--border:#e8e8e4;--marker-color:#fadb5a66;--q-azul:#3182ce;--q-amarillo:#d69e2e;--q-verde:#38a169;--q-rojo:#e53e3e;--callout-bg:#f5f5f5;--callout-bg-hover:#eee;--callout-border:#e5e5e5;--callout-text:#202020;--callout-text-title:#0a0a0a;--callout-icon:#6b6b6b;--callout-icon-hover:#111}html.dark{--bg:#111110;--bg2:#1b1b1a;--text:#b4b4af;--text-title:#ececea;--text-sub:#a8a8a3;--text-muted:#999994;--text-dim:#8b8b86;--border:#232321;--q-azul:#63b3ed;--q-amarillo:#ecc94b;--q-verde:#48bb78;--q-rojo:#fc8181;--callout-bg:#1c1c1c;--callout-bg-hover:#232323;--callout-border:#2b2b2b;--callout-text:#dedede;--callout-text-title:#fff;--callout-icon:#9e9e9e;--callout-icon-hover:#fff}@media (width>=951px){:root{--pad-left:2.5rem;--page-left-offset:0px}}*,:before,:after{box-sizing:border-box}html{font-size:var(--size);-webkit-font-smoothing:antialiased;background-color:var(--bg)}body{font-family:var(--serif);line-height:var(--lh);background:var(--bg);color:var(--text);margin:0;padding:0}a{color:inherit;text-decoration:none}mark{background-color:var(--marker-color);color:inherit;border-radius:2px;padding:1px 4px}.page{padding:3rem var(--pad-left) 8rem;grid-template-columns:minmax(0, var(--text-max)) var(--img-col);gap:0 var(--gap);align-items:start;display:grid}@media (width>=1600px){:root{--page-left-offset:calc((100vw - 1450px) / 2)}.page{width:100%;max-width:1450px;margin:0 auto}}.page-header{grid-column:1;margin-bottom:3rem}.page-left{grid-column:1;min-width:0}.page-right{grid-column:2;position:relative}.site-logo{font-family:var(--sans);color:var(--text-muted);letter-spacing:.01em;font-size:13px;font-weight:400;text-decoration:none}.site-logo:hover{color:var(--text)}.site-nav,.nav-left{flex-wrap:wrap;align-items:baseline;gap:1.5rem;display:flex}.site-nav-link{font-family:var(--sans);color:var(--text-muted);letter-spacing:.01em;font-size:13px;font-weight:400;text-decoration:none}.site-nav-link:hover{color:var(--text)}.ksd-full{display:none}.ksd-short{display:inline}@media (width>=700px){.ksd-full{display:inline}.ksd-short{display:none}}.nav-more{align-items:baseline;display:inline-flex;position:relative}.nav-more-toggle{font-family:var(--sans);color:var(--text-muted);cursor:pointer;font-size:13px;font-weight:400;line-height:inherit;letter-spacing:.01em;user-select:none;background:0 0;border:none;margin:0;padding:0;transition:color .15s}.nav-more-toggle:hover,.nav-more:hover .nav-more-toggle,.nav-more:focus-within .nav-more-toggle,.nav-more.is-open .nav-more-toggle,.nav-more.is-hover-linger .nav-more-toggle,.about-page .nav-more:not(.is-closed) .nav-more-toggle{color:var(--text)}.nav-more-menu{opacity:0;pointer-events:none;white-space:nowrap;align-items:baseline;gap:1.5rem;max-width:0;padding-left:0;transition:max-width .28s cubic-bezier(.4,0,.2,1),opacity .2s,padding-left .2s;display:inline-flex;overflow:hidden}.nav-more:hover .nav-more-menu,.nav-more:focus-within .nav-more-menu,.nav-more.is-open .nav-more-menu,.nav-more.is-hover-linger .nav-more-menu,.about-page .nav-more:not(.is-closed) .nav-more-menu{opacity:1;pointer-events:auto;max-width:500px;padding-left:1.5rem}.nav-more.is-closed .nav-more-menu{opacity:0!important;pointer-events:none!important;max-width:0!important;padding-left:0!important}@media (width<=600px){.site-nav{flex-direction:column;align-items:flex-start;gap:.75rem}.nav-left{justify-content:flex-start;gap:1.2rem;width:100%}.nav-more-menu{gap:1.2rem}.nav-more:hover .nav-more-menu,.nav-more:focus-within .nav-more-menu,.nav-more.is-open .nav-more-menu,.nav-more.is-hover-linger .nav-more-menu,.about-page .nav-more:not(.is-closed) .nav-more-menu{padding-left:1.2rem}}.site-logo.nav-active,.site-nav-link.nav-active{color:var(--text-title);text-shadow:.02em 0}.entry-list{margin:0;padding:0;list-style:none}.entry-item{padding:.5rem 0}.entry-item:first-child{padding-top:0}.entry-link{color:var(--text-sub);align-items:baseline;gap:.6rem;padding:.35rem 0;text-decoration:none;display:flex}.entry-link:hover .entry-title{color:var(--text-title);text-underline-offset:3px;text-decoration:underline}.entry-date{font-family:var(--sans);color:var(--text-muted);white-space:nowrap;flex-shrink:0;font-size:.78rem}.entry-title{font-family:var(--serif);color:var(--text);font-size:.95rem;font-style:italic;line-height:1.4}.entrylog-list{--entrylog-title-color:var(--text);margin:0;padding:0;list-style:none}.entrylog-item{padding:.3rem 0}.entrylog-link{color:var(--text);justify-content:flex-start;align-items:baseline;gap:.4rem;text-decoration:none;display:flex;position:relative}.entrylog-date{font-family:var(--sans);white-space:nowrap;letter-spacing:.01em;color:var(--text-title);opacity:.15;flex-shrink:0;margin-left:auto;font-size:.8rem;font-weight:500;transition:opacity .15s}.entrylog-link:hover .entrylog-date{opacity:1}.entrylog-title{font-family:var(--serif);color:var(--entrylog-title-color);font-size:.85rem;transition:color .15s}.pinned-dot{background:#8e8e93;border-radius:50%;flex-shrink:0;width:4px;height:4px;display:inline-block;position:absolute;top:.6em;left:-12px;box-shadow:0 0 0 1.5px #8e8e9333}.entrylog-tag{color:var(--text-dim);margin-left:.1rem;font-size:.7rem}.entrylog-empty{color:var(--text-muted);padding:1rem 0;font-style:italic}.entrylog-year{font-family:var(--sans);color:var(--text-dim);letter-spacing:.06em;margin:1.6rem 0 .6rem;font-size:.7rem;font-weight:600}.entrylog-year:first-child{margin-top:0}.entry-label{font-family:var(--sans);color:var(--text-muted);letter-spacing:.02em;text-transform:uppercase;margin:0 0 .5rem;font-size:.67rem}h1,h2,h3,h4,h5,h6,:target{scroll-margin-top:5.5rem}@keyframes markerHighlight{0%{background-color:#0000}20%{background-color:var(--marker-color)}80%{background-color:var(--marker-color)}to{background-color:#0000}}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{animation:2.5s ease-out forwards markerHighlight}.entry-h1{font-family:var(--sans);letter-spacing:.01em;color:var(--text-title);margin:0 0 2rem;font-size:.82rem;font-weight:500}.entry-desc{font-family:var(--serif);color:var(--text-sub);margin-top:-1.5rem;margin-bottom:2.5rem;font-size:.9em;font-style:italic}.prose{color:var(--text);font-size:1.12rem;line-height:1.72}.prose p{margin:0 0 1.2em}.prose p br{content:"";margin-bottom:1.2em;display:block}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{background-color:#0000;width:fit-content}.prose h2{font-family:var(--sans);font-size:var(--fs-xl);color:var(--text-title);margin:1.1em 0 .6em;font-weight:600;line-height:1.3}.prose h3{font-family:var(--sans);color:var(--text-title);margin:1.4em 0 .5em;padding-left:.8rem;font-size:1.28rem;font-weight:600;line-height:1.35}.prose h4{font-family:var(--sans);font-size:var(--fs-md);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin:1.3em 0 .4em;padding-left:1.6rem;font-weight:600;line-height:1.4}.prose em{font-style:italic}.prose strong{font-weight:700}.md-comment{color:#b8b8b8;font-style:normal}html.dark .md-comment{color:#5c5c5c}.md-comment-mark{color:var(--q-rojo);font-weight:600}.prose blockquote{border-left:2px solid var(--text-dim);color:var(--text-sub);margin:1.5em 0;padding-left:1.1em;font-style:italic}.prose blockquote p{margin:0}.prose a{text-underline-offset:2px;text-decoration:underline}.prose a:hover{color:var(--text-muted)}.prose h2 a,.prose h3 a,.prose h4 a{color:inherit;text-decoration:none}.prose hr{border:none;border-top:1px solid var(--border);margin:2em 0}.prose figure.side-hidden,.prose img.side-hidden{display:none}.prose img:not(.side-hidden):not(.msn-emoji){border-radius:2px;max-width:100%;height:auto;margin:2em auto;display:block}img.msn-emoji{vertical-align:-.15em;border-radius:0;width:19px;max-width:none;height:19px;margin:0 .05em;display:inline-block!important}.prose ul,.prose ol{margin-bottom:1.2em;padding-left:1.55em}.prose li{margin-bottom:.35em}.prose li:last-child{margin-bottom:0}.prose li li{margin-top:.3em;margin-bottom:0}.prose li li:first-child{margin-top:.15em}.prose li>ul,.prose li>ol{margin-top:0;margin-bottom:.3em}.prose ul.contains-task-list{padding-left:.2rem;list-style:none!important}.prose li.task-list-item{margin-bottom:.4rem;padding-left:1.6rem;position:relative;list-style-type:none!important}.prose li.task-list-item input[type=checkbox]{border:1px solid var(--text-muted);background:var(--bg);-webkit-appearance:none;appearance:none;cursor:default;border-radius:2px;justify-content:center;align-items:center;width:14px;height:14px;margin:0;display:inline-flex;position:absolute;top:.35em;left:0}.prose li.task-list-item input[type=checkbox]:checked{background:var(--text-title);border-color:var(--text-title)}.prose li.task-list-item input[type=checkbox]:checked:after{content:"";border:solid var(--bg);border-width:0 1.5px 1.5px 0;width:4px;height:7px;margin-bottom:1.5px;transform:rotate(45deg)}.prose table{border-collapse:collapse;width:100%;font-family:var(--sans);font-size:var(--fs-sm);text-align:left;margin:2.5rem 0;line-height:1.5}.prose th{color:var(--text-sub);border-bottom:2px solid var(--border);font-weight:500;font-size:var(--fs-xs);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;padding:10px 14px 6px}.prose td{color:var(--text);border-bottom:1px solid var(--border);vertical-align:middle;padding:12px 14px}.prose tr:last-child td{border-bottom:none}.prose tr:nth-child(2n) td{background-color:color-mix(in srgb, var(--bg2) 15%, transparent)}.prose tr:hover td{background-color:var(--bg2)}.md-icon{vertical-align:-.15em}:not(pre)>code .md-icon{vertical-align:-.125em;width:1em;height:1em}.plugin-dl{color:var(--text-muted);transition:color .15s;display:inline-flex}.plugin-dl:hover{color:var(--text)}@media (width<=700px){.prose table{-webkit-overflow-scrolling:touch;width:100%;display:block;overflow-x:auto}}.remark-code-title{font-family:var(--sans);font-size:var(--fs-xs);color:var(--text-sub);background-color:color-mix(in srgb, var(--bg2) 30%, var(--bg));border:1px solid var(--border);box-sizing:border-box;border-bottom:none;border-top-left-radius:6px;border-top-right-radius:6px;width:100%;margin-top:1.8em;margin-bottom:0;padding:.55rem 1rem;font-weight:500;display:block}.remark-code-title+pre.astro-code{border-top-left-radius:0;border-top-right-radius:0;margin-top:0!important}.astro-code{border:1px solid var(--border);border-radius:6px;max-width:100%;margin:1.8em 0;padding:0;font-size:.86rem;position:relative;box-shadow:0 2px 8px #00000005;background-color:color-mix(in srgb, var(--bg2) 30%, var(--bg))!important;line-height:1.15!important;overflow:visible!important}html.dark .astro-code{box-shadow:none}.prose pre code,pre.astro-code code{box-sizing:border-box;width:100%;padding:2.6rem 1.2rem 1.2rem;display:block;overflow-x:auto;line-height:1.15!important}pre.astro-code:not(.remark-code-title+pre):not([data-language=""]):not([data-language=undefined]):not([data-language=none]):after{content:"";background-color:color-mix(in srgb, var(--border) 10%, color-mix(in srgb, var(--bg2) 30%, var(--bg)));pointer-events:none;border-top-left-radius:5px;border-top-right-radius:5px;height:32px;position:absolute;top:0;left:0;right:0;border-bottom:none!important}pre.astro-code[data-language]:not([data-language=""]):not([data-language=undefined]):not([data-language=none]):before{content:attr(data-language);font-family:var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);opacity:.8;pointer-events:none;z-index:5;font-size:10px;font-weight:500;position:absolute;top:10px;left:14px}.prose pre[data-language=""] code,.prose pre:not([data-language]) code,pre.astro-code[data-language=""] code,pre.astro-code:not([data-language]) code,pre.astro-code[data-language=undefined] code,pre.astro-code[data-language=none] code,.remark-code-title+pre.astro-code code{padding-top:1.2rem!important}.astro-code *,pre.astro-code *,pre.astro-code span,pre.astro-code .line,.prose pre *,.prose pre span,.prose pre .line{font-family:var(--font-mono);line-height:1.15!important}pre.astro-code code,.prose pre code{counter-reset:line}pre.astro-code .line,.prose pre .line{counter-increment:line;width:fit-content;min-width:100%;display:block;margin-top:0!important;margin-bottom:-.15em!important;padding-top:0!important;padding-bottom:0!important}pre.astro-code .line:before,.prose pre .line:before{content:counter(line);width:2em;color:var(--text-muted);opacity:.45;text-align:right;user-select:none;margin-right:1.2rem;font-size:.82em;display:inline-block;border-right:none!important}pre.astro-code .line:only-child:before,.prose pre .line:only-child:before{display:none}.prose :not(pre)>code,.side-item.is-callout :not(pre)>code,.callout-body :not(pre)>code,.callout-content :not(pre)>code{font-family:var(--font-mono);border:1px solid var(--border);background-color:var(--bg2);color:var(--text-title);white-space:nowrap;border-radius:3px;padding:.1em .45em;font-size:.86em}:not(pre)>code.code-long{white-space:normal;overflow-wrap:anywhere}.prose pre code::-webkit-scrollbar,pre.astro-code code::-webkit-scrollbar{height:8px}.prose pre code::-webkit-scrollbar-track,pre.astro-code code::-webkit-scrollbar-track{background:0 0}.prose pre code::-webkit-scrollbar-thumb,pre.astro-code code::-webkit-scrollbar-thumb{background:0 0;border-radius:4px}.prose pre:hover code::-webkit-scrollbar-thumb,pre.astro-code:hover code::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--text-muted) 35%, transparent)}.prose pre code::-webkit-scrollbar-thumb:hover,pre.astro-code code::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.footnotes{border-top:1px solid var(--border);color:var(--text-muted);margin-top:3rem;padding-top:1.5rem;font-size:.78rem}.footnotes ol{margin:0;padding-left:0;list-style:none}.footnotes li{margin-bottom:.8em;line-height:1.55}.footnotes li p{margin:0;display:inline}.footnotes li p+p{margin-top:.5em;display:block}.footnote-num{color:var(--text-muted);font-variant-numeric:tabular-nums;margin-right:.35em;font-weight:600}.data-footnote-backref{color:var(--text-muted);margin-left:.3em;display:inline}.data-footnote-backref:hover{color:var(--text-title)}.tooltip{border-bottom:1px dashed var(--text-muted);cursor:help;font-weight:500;display:inline;position:relative}@media (width>=951px){.tooltip .tooltiptext{display:none!important}}@media (width<=950px){.tooltip .tooltiptext{visibility:hidden;background-color:var(--bg2);border:1px solid var(--border);min-width:180px;max-width:280px;color:var(--text);text-align:left;z-index:99;opacity:0;pointer-events:none;border-radius:4px;padding:8px 12px;transition:opacity .2s,transform .2s;position:absolute;bottom:125%;left:50%;transform:translate(-50%)translateY(4px);box-shadow:0 4px 12px #00000014}.tooltip:hover .tooltiptext,.tooltip:focus .tooltiptext{visibility:visible;opacity:1;transform:translate(-50%)translateY(0)}}.side-item.is-tooltip{font-family:var(--sans);color:var(--text-sub);text-align:left;font-size:.78rem;line-height:1.55}.prose .callout{border:1px solid var(--callout-border);background-color:var(--callout-bg);color:var(--callout-text);border-radius:8px;margin:2rem 0;padding:1.15rem 1.4rem;transition:background-color .2s,border-color .2s;display:block;position:relative}.prose .callout:hover{background-color:var(--callout-bg-hover)}.prose .callout-icon{color:var(--callout-icon);pointer-events:none;justify-content:center;align-items:center;font-size:1.1rem;line-height:1;transition:color .2s;display:inline-flex;position:absolute;top:1.15rem;left:-1.85rem}.prose .callout-icon svg{width:1.15em;height:1.15em}.prose .callout:hover .callout-icon{color:var(--callout-icon-hover)}.prose .callout-body{width:100%;font-family:var(--sans);color:var(--callout-text);font-size:1.04rem;font-weight:400;line-height:1.68}.prose .callout-body p{margin:0}.prose .callout-body p+p{margin-top:.65em}.prose .callout-body p.callout-title{color:var(--callout-text-title);letter-spacing:-.01em;margin-bottom:.45rem;font-size:1.08rem;font-weight:650}.prose .callout-body strong{color:var(--callout-text-title);font-weight:600}.prose .callout-body a{color:var(--callout-text-title);text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--callout-text) 35%, transparent);text-underline-offset:2.5px;transition:text-decoration-color .15s}.prose .callout-body a:hover{text-decoration-color:currentColor}.prose .post-link-card{background:var(--bg2);border:none;border-radius:8px;align-items:center;gap:.85rem;margin:1.4rem 0;padding:.75rem .95rem;text-decoration:none;transition:background-color .18s,transform .18s;display:flex}.prose .post-link-card:hover{background:color-mix(in srgb, var(--border) 40%, var(--bg2));text-decoration:none;transform:translate(3px)}.prose .post-link-card-icon{background:color-mix(in srgb, var(--text-dim) 10%, transparent);width:28px;height:28px;color:var(--text-title);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:background-color .18s;display:flex}.prose .post-link-card:hover .post-link-card-icon{background:color-mix(in srgb, var(--text-dim) 20%, transparent)}.prose .post-link-card-text{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.prose .post-link-card-title{font-family:var(--sans);color:var(--text-title);letter-spacing:-.01em;font-size:.84rem;font-weight:550;line-height:1.3}.prose .post-link-card-desc{font-family:var(--sans);color:var(--text-sub);font-size:.75rem;line-height:1.35}.prose .post-link-card-arrow{font-family:var(--sans);color:var(--text-muted);flex-shrink:0;font-size:.9rem;transition:transform .18s,color .18s}.prose .post-link-card:hover .post-link-card-arrow{color:var(--text-title);transform:translate(3px)}.prose .callout .post-link-card{background:var(--bg);border:none;border-radius:6px;margin:.85rem 0 .2rem;padding:.65rem .85rem}.prose .callout .post-link-card:hover{background:color-mix(in srgb, var(--border) 45%, var(--bg));transform:translate(3px)}@media (width>=951px){.prose .callout.callout-collapsed{visibility:hidden;border:0;height:0;min-height:0;margin:0;padding:0;overflow:hidden}.prose ul:has(+.callout.callout-collapsed),.prose ol:has(+.callout.callout-collapsed){margin-bottom:0}.prose .callout.callout-collapsed+ul,.prose .callout.callout-collapsed+ol{margin-top:0}}.side-item.is-callout{width:100%;max-width:var(--img-col);font-family:var(--sans);color:var(--callout-text);border:1px solid var(--callout-border);background-color:var(--callout-bg);box-sizing:border-box;border-radius:8px;padding:.85rem 1.1rem;font-size:.96rem;line-height:1.6;transition:opacity 1.6s,background-color .2s,border-color .2s,box-shadow .2s;position:absolute;left:0}.side-item.is-callout:hover,.side-item.is-callout.is-hovered{background-color:var(--callout-bg-hover)}.side-item.is-callout .callout-icon{color:var(--callout-icon);pointer-events:none;justify-content:center;align-items:center;font-size:1.05rem;line-height:1;transition:color .2s;display:inline-flex;position:absolute;top:.85rem;left:-1.5rem}.side-item.is-callout .callout-icon svg{width:1em;height:1em}.side-item.is-callout:hover .callout-icon,.side-item.is-callout.is-hovered .callout-icon{color:var(--callout-icon-hover)}.side-item.is-callout .callout-body{width:100%;color:var(--callout-text);margin:0;padding:0;font-size:.96rem;font-weight:400;line-height:1.6}.side-item.is-callout .callout-body p{margin:0}.side-item.is-callout .callout-body p+p{margin-top:.45em}.side-item.is-callout .callout-body p.callout-title{color:var(--callout-text-title);margin-bottom:.35rem;font-size:1rem;font-weight:650}.side-item.is-callout a{color:var(--callout-text-title);text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--callout-text) 35%, transparent);text-underline-offset:2.5px;transition:text-decoration-color .15s}.side-item.is-callout a:hover{text-decoration-color:currentColor}.side-anchor{height:0;display:block;overflow:visible}.side-anchor.is-note{height:auto;display:inline}.note-sup{font-family:var(--sans);color:var(--text-muted);cursor:default;user-select:none;vertical-align:super;margin-left:.3em;font-size:.6em}sup:has(a[data-footnote-ref]){font-family:var(--sans);vertical-align:super;margin-left:.3em;font-size:.6em}sup:has(a[data-footnote-ref])+sup:has(a[data-footnote-ref]){margin-left:0}sup:has(a[data-footnote-ref])+sup:has(a[data-footnote-ref]):before{content:", "}sup a[data-footnote-ref]{color:var(--text-muted);cursor:default;user-select:none;text-decoration:none}sup a[data-footnote-ref]:hover{color:var(--text)}.side-item{width:100%;max-width:var(--img-col);opacity:0;background-color:#0000;border-radius:4px;transition:opacity 1.6s,background-color .7s,box-shadow .7s;position:absolute;left:0;box-shadow:0 0 0 .4rem #0000}.side-item a{text-underline-offset:2px;text-decoration:underline}.side-item a:hover{color:var(--text)}.side-item:has(.gallery){max-width:100%}.side-item.visible{opacity:1}.side-item.is-hovered{background-color:color-mix(in srgb, var(--bg2) 55%, transparent);box-shadow:0 0 0 .4rem color-mix(in srgb, var(--bg2) 55%, transparent)}.side-item img{border-radius:2px;width:100%;height:auto;display:block}.side-item figcaption,.side-item .gallery-caption{font-family:var(--sans);font-size:var(--fs-sm);color:var(--text-sub,var(--color-text-secondary));text-align:right;margin-top:.45rem;line-height:1.45}.side-item figcaption a,.side-item .gallery-caption a{color:inherit;border-bottom:1px dotted var(--text-dim);text-decoration:none;transition:color .15s,border-color .15s}.side-item figcaption a:hover,.side-item .gallery-caption a:hover{color:var(--text-title);border-bottom-color:var(--text-title)}.ksd-badge-link{font-family:var(--sans);font-size:var(--fs-sm);color:var(--text-sub);align-items:flex-start;gap:.45rem;width:fit-content;line-height:1.35;text-decoration:none;transition:color .2s,transform .2s;display:inline-flex}.ksd-badge-link:hover{color:var(--text-title);transform:translate(2px)}.ksd-badge-link .meta-icon{color:var(--text-dim);flex-shrink:0;margin-top:2px;transition:color .2s}.ksd-badge-link:hover .meta-icon{color:var(--text-muted)}.ksd-badge-link span{text-decoration:none}.ksd-badge-link:hover span{text-underline-offset:3px;text-decoration:underline}.side-item.is-note{font-family:var(--sans);color:var(--text-muted);font-size:.78rem;line-height:1.55}.note-n{vertical-align:baseline;margin-right:.15em;font-size:1em;font-weight:600}.note-n:after{content:"·";margin-left:.35em;font-weight:400}.side-item.is-note p{margin:0;display:inline}.gallery{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:8px;width:100%;display:flex;overflow-x:auto}.gallery::-webkit-scrollbar{display:none}.gallery-item{scroll-snap-align:start;aspect-ratio:4/3;flex:none;width:250px}.gallery-item img{object-fit:cover;border-radius:2px;width:100%;height:100%;margin:0;display:block!important}.gallery-caption{font-family:var(--sans);color:var(--text-muted);letter-spacing:.01em;margin-top:.4rem;font-size:.64rem}.back-link{font-family:var(--sans);color:var(--text-muted);letter-spacing:.02em;margin-top:2.5rem;font-size:.67rem;text-decoration:none;display:inline-block}.back-link:hover{color:var(--text)}html.hide-bar .bar{display:none!important}.bar{z-index:100;user-select:none;box-shadow:none;opacity:.7;background:0 0;border:none;border-radius:0;flex-direction:column;align-items:center;gap:.4rem;margin:-8px;padding:8px;transition:opacity .2s;display:flex;position:fixed;bottom:1.5rem;right:1.8rem}.bar:hover,.bar:focus-within{opacity:1}.bar-actions{box-shadow:none;background:0 0;border:none;border-radius:0;flex-direction:column;align-items:center;gap:4px;padding:0;display:flex}.bar-sep{background:var(--border);width:14px;height:1px;margin:3px 0;display:block}.bar-btn{cursor:pointer;background:0 0;border:none;align-items:center;padding:0;display:flex}.key-cap{box-sizing:border-box;min-width:21px;height:21px;font-family:var(--font-mono,monospace);color:var(--text-sub);background:var(--bg2);border:1px solid var(--border);border-radius:4px;justify-content:center;align-items:center;padding:0 .28rem;font-size:.76rem;font-weight:500;line-height:1;transition:all .15s;display:inline-flex;box-shadow:0 1px 1px #00000008}#btnFocus{position:relative}.focus-label{display:none!important}@media (width>=1800px){body.is-entry-page .focus-label{font-family:var(--sans);color:var(--text-muted);background:var(--bg);border:1px solid var(--border);white-space:nowrap;pointer-events:none;opacity:.85;border-radius:6px;padding:.2rem .5rem;font-size:.64rem;font-weight:500;transition:opacity .15s,transform .15s,background .15s,color .15s;position:absolute;inset:50% calc(100% + 8px) auto auto;transform:translateY(-50%);box-shadow:0 4px 12px #00000014,0 1px 4px #0000000a;display:block!important}body.is-entry-page .focus-label:after{content:"";border-style:solid;border-width:4px 0 4px 5px;border-color:transparent transparent transparent var(--border);position:absolute;inset:50% auto auto 100%;transform:translateY(-50%)}body.is-entry-page .focus-label:before{content:"";border-style:solid;border-width:3px 0 3px 4px;border-color:transparent transparent transparent var(--bg);z-index:1;margin-left:-1px;transition:border-color .15s;position:absolute;inset:50% auto auto 100%;transform:translateY(-50%)}body.is-entry-page .bar-btn:hover .focus-label{opacity:1;color:var(--text-title);background:var(--bg2);transform:translateY(-50%)translate(-2px)}body.is-entry-page .bar-btn:hover .focus-label:before{border-color:transparent transparent transparent var(--bg2)}html.focus-mode #btnFocus .focus-label{display:none!important}}.bar-btn:hover .key-cap{color:var(--text-title);border-color:var(--text-muted);transform:translateY(-.5px);box-shadow:0 1.5px 3px #0000000f}.bar-btn.active .key-cap{color:var(--text-title);border-color:var(--text-title);background:var(--bg);box-shadow:none}.search-modal{-webkit-backdrop-filter:blur(16px)saturate(180%);z-index:1000;width:100vw;height:100vh;font-family:var(--sans);background:#0000003d;justify-content:center;align-items:flex-start;padding-top:clamp(8vh,12vh,110px);animation:.18s cubic-bezier(.16,1,.3,1) searchFadeIn;display:flex;position:fixed;inset:0}html.dark .search-modal{-webkit-backdrop-filter:blur(24px)saturate(190%);background:#00000094}.search-dialog{-webkit-backdrop-filter:blur(40px)saturate(190%);transform-origin:top;background:#ffffffc2;border:1px solid #ffffffa6;border-radius:20px;flex-direction:column;width:92%;max-width:580px;animation:.22s cubic-bezier(.16,1,.3,1) searchPopIn;display:flex;overflow:hidden;box-shadow:0 32px 64px -12px #00000029,0 16px 32px -16px #0000001a,inset 0 1px 1px #fffffff2,inset 0 -1px 1px #00000008}html.dark .search-dialog{background:#1c1c1ebf;border:1px solid #ffffff1f;box-shadow:0 32px 72px -10px #000000a6,0 20px 40px -15px #00000073,inset 0 1px #ffffff2e,inset 0 -1px #ffffff0a}@keyframes searchFadeIn{0%{opacity:0}to{opacity:1}}@keyframes searchPopIn{0%{opacity:0;transform:scale(.97)translateY(-8px)}to{opacity:1;transform:scale(1)translateY(0)}}.search-input-wrap{border-bottom:1px solid color-mix(in srgb, var(--border) 60%, transparent);align-items:center;gap:.9rem;padding:1.05rem 1.35rem;display:flex;position:relative}.search-input-icon{color:var(--text-dim);opacity:.8;flex-shrink:0;transition:color .15s,opacity .15s}.search-input-wrap:focus-within .search-input-icon{color:var(--text-title);opacity:1}#gsearchInput{letter-spacing:-.01em;min-width:0;color:var(--text-title);background:0 0;border:none;outline:none;flex:1;padding:0;font-family:inherit;font-size:1.05rem;font-weight:450}#gsearchInput::placeholder{color:var(--text-dim);font-weight:380}.search-esc-badge{font-family:var(--font-mono,monospace);color:var(--text-muted);background:color-mix(in srgb, var(--border) 65%, transparent);border:1px solid color-mix(in srgb, var(--border) 90%, transparent);user-select:none;cursor:pointer;border-radius:5px;padding:2px 6px;font-size:.65rem;font-weight:500;line-height:1.2;transition:background .15s,color .15s}.search-esc-badge:hover{background:var(--border);color:var(--text-title)}.search-results{overscroll-behavior:contain;flex-direction:column;gap:3px;max-height:360px;margin:0;padding:.5rem;list-style:none;display:flex;overflow-y:auto}.search-results::-webkit-scrollbar{width:5px}.search-results::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--border) 80%, transparent);border-radius:999px}.search-results::-webkit-scrollbar-track{background:0 0}.search-item{border-radius:12px}.search-link{color:var(--text);border-radius:12px;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;font-size:.9rem;font-weight:450;text-decoration:none;transition:background .12s,color .12s;display:flex}.search-item-title{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--text-title);flex:1;overflow:hidden}.search-link:hover,.search-item.selected .search-link{color:var(--text-title);background:#0000000f}html.dark .search-link:hover,html.dark .search-item.selected .search-link{color:#fff;background:#ffffff14}.search-cat{font-family:var(--font-mono,monospace);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);background:color-mix(in srgb, var(--border) 50%, transparent);border:1px solid color-mix(in srgb, var(--border) 70%, transparent);border-radius:6px;flex-shrink:0;padding:.2rem .55rem;font-size:.65rem;font-weight:500}.search-item.selected .search-cat{color:var(--text-title);border-color:color-mix(in srgb, var(--border) 100%, transparent)}.search-empty{text-align:center;color:var(--text-muted);padding:2.2rem 1.4rem;font-size:.88rem;font-weight:350}.search-footer{color:var(--text-muted);background:color-mix(in srgb, var(--bg2) 40%, transparent);border-top:1px solid color-mix(in srgb, var(--border) 50%, transparent);justify-content:space-between;align-items:center;padding:.65rem 1.35rem;font-size:.72rem;display:flex}.search-shortcuts{align-items:center;gap:1.2rem;display:flex}.search-shortcuts span{align-items:center;gap:.35rem;display:inline-flex}.search-shortcuts kbd{font-family:var(--font-mono,monospace);background:color-mix(in srgb, var(--border) 75%, transparent);border:1px solid color-mix(in srgb, var(--border) 95%, transparent);color:var(--text-title);border-radius:4px;padding:1px 5px;font-size:.65rem;font-weight:500;line-height:1.2}@media (width>=951px){.prose section.footnotes:not(:focus-within):not(:has(:target)){clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}@media (width<=950px){.page{grid-template-columns:1fr;padding:2.5rem 2rem 9rem}.page-header{grid-column:1}.page-right{display:none}.side-hidden{margin:1.5em 0;animation:1.6s forwards fadeIn;display:block!important}.side-hidden img{width:100%;height:auto;display:block!important}}@media (width<=768px),(height<=520px){.bar{-webkit-backdrop-filter:blur(8px);opacity:.9;background:color-mix(in srgb, var(--bg) 90%, transparent)!important;border:1px solid var(--border)!important;border-radius:7px!important;flex-direction:row!important;gap:5px!important;width:auto!important;margin:0!important;padding:4px 6px!important;bottom:1rem!important;left:auto!important;right:1.2rem!important;box-shadow:0 2px 10px #0000000f!important}.bar:hover,.bar:focus-within{opacity:1}.bar-actions{flex-direction:row!important;gap:4px!important}.bar-sep{width:1px!important;height:14px!important;margin:0 3px!important;display:block!important}}@media (width<=600px){.page{padding:2rem 1.2rem 7rem}}.lightbox{z-index:1000;opacity:0;backdrop-filter:blur(4px);background:#0a0a0af0;justify-content:center;align-items:center;width:100vw;height:100vh;transition:opacity .3s;display:none;position:fixed;top:0;left:0}.lightbox.active{opacity:1}.lightbox-content{flex-direction:column;align-items:center;max-width:90vw;max-height:85vh;display:flex}.lightbox-content img{object-fit:contain;border-radius:3px;max-width:100%;max-height:80vh;box-shadow:0 10px 40px #0009}.lightbox-caption{color:var(--text-dim);font-family:var(--sans);font-size:var(--fs-sm);text-align:center;max-width:100%;margin-top:1rem;line-height:1.45}.lightbox-close{color:#fff;cursor:pointer;opacity:.6;background:0 0;border:none;padding:0;font-size:2.2rem;line-height:1;transition:opacity .2s;position:absolute;top:1.5rem;right:2rem}.lightbox-close:hover{opacity:1}.prose img,.side-item img,.gallery-item img,.cover-mobile{cursor:zoom-in}.about-bio{font-family:var(--serif);color:var(--text);margin-bottom:3rem;font-size:.95rem;line-height:1.75}.about-bio em{color:var(--text-sub);font-style:italic}.ig-grid{grid-template-columns:repeat(5,1fr);gap:4px;margin-top:1.5rem;margin-bottom:2rem;display:grid}.ig-item{aspect-ratio:1;background:var(--bg2);border:1px solid var(--border);border-radius:2px;overflow:hidden}.ig-img{object-fit:cover;width:100%;height:100%;transition:opacity .2s;display:block}.ig-img:hover{opacity:.8}.about-caption{font-family:var(--sans);color:var(--text-muted);margin-bottom:1.2rem}.about-sections-grid{grid-template-columns:1fr;gap:1.8rem;display:grid}@media (width<=800px){.about-sections-grid{margin-top:0}}.filter-bar{flex-direction:column;gap:1.2rem;margin-bottom:2.5rem;display:flex}.search-wrapper{align-items:center;width:100%;max-width:320px;display:flex;position:relative}.search-icon{color:var(--text-muted);pointer-events:none;justify-content:center;align-items:center;transition:color .15s;display:flex;position:absolute;left:.7rem}.search-wrapper:focus-within .search-icon{color:var(--text-title)}.ds-search{border:1px solid var(--border);width:100%;color:var(--text-title);font-size:var(--fs-sm);font-family:var(--sans);background:0 0;border-radius:6px;outline:none;padding:.45rem 2rem .45rem 1.85rem;transition:border-color .15s,background .15s}.ds-search::placeholder{color:var(--text-muted)}.ds-search:focus{border-color:var(--text-dim);background:var(--bg2)}.search-clear-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;outline:none;justify-content:center;align-items:center;padding:0;transition:color .15s;display:none;position:absolute;right:.6rem}.search-clear-btn:hover{color:var(--text-title)}.ds-tags{font-family:var(--sans);font-size:var(--fs-sm);color:var(--text-muted);flex-wrap:wrap;gap:.45rem 1.1rem;display:flex}.ds-tag{font:inherit;color:var(--text-muted);cursor:pointer;user-select:none;background:0 0;border:none;align-items:center;gap:.35rem;margin:0;padding:0;transition:color .15s;display:inline-flex}.ds-tag:hover{color:var(--text-title)}.ds-tag.active{color:var(--text-title);text-shadow:none;font-weight:550}.ds-tag-count{font-family:var(--font-mono);color:var(--text-muted);opacity:.6;font-variant-numeric:tabular-nums;margin-left:.15rem;font-size:.85em}.ds-tag.active .ds-tag-count{color:var(--text-title);opacity:.8}.ds-tag .dataset-dot{border-radius:50%;flex-shrink:0;width:5px;height:5px;transition:transform .15s;display:inline-block}.ds-tag.active .dataset-dot{transform:scale(1.2)}.search-empty-state{text-align:center;color:var(--text-muted);font-family:var(--sans);flex-direction:column;justify-content:center;align-items:center;margin:2rem 0;padding:3rem 1.5rem;animation:.2s ease-out fadeIn;display:flex}.search-empty-icon{color:var(--text-dim);margin-bottom:.75rem}.search-empty-title{color:var(--text-title);margin-bottom:.25rem;font-size:.85rem;font-weight:600}.search-empty-desc{color:var(--text-muted);font-size:.76rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}html.focus-mode{--text-max:800px}@media (width>=1800px){html.focus-mode{--text-max:840px}}html.focus-mode .page-header,html.focus-mode .page-right{opacity:.16;transition:opacity .5s}html.focus-mode .post-toc-container{transition:opacity .5s;opacity:.16!important}html.focus-mode .page-header:hover,html.focus-mode .page-header:focus-within,html.focus-mode .page-right:hover,html.focus-mode .post-toc-container:hover{opacity:1!important}html.focus-mode .page-right:has(.side-item.is-hovered){opacity:1}html.focus-mode .prose>*{transition:opacity .35s}html.focus-mode .prose:hover>:not(:hover){opacity:.32}html.focus-mode .prose{font-size:calc(var(--fs-base) * 1.06);line-height:1.75}@media (prefers-reduced-motion:reduce){html.focus-mode .page-header,html.focus-mode .page-right,html.focus-mode .post-toc-container,html.focus-mode .prose>*{transition:none}}pre{position:relative}.code-copy-btn{background-color:var(--bg);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;opacity:0;z-index:10;border-radius:4px;justify-content:center;align-items:center;padding:5px;transition:opacity .15s,color .15s,background-color .15s,border-color .15s;display:flex;position:absolute;top:6px;right:10px}pre:hover .code-copy-btn{opacity:.85}.code-copy-btn:hover{opacity:1;color:var(--text-title);background-color:var(--bg2);border-color:var(--text-sub)}.remark-code-title+pre .code-copy-btn{opacity:.65;top:-26px;right:12px}.remark-code-title+pre:hover .code-copy-btn{opacity:.9}.remark-code-title+pre .code-copy-btn:hover{opacity:1}@media (width<=700px){.code-copy-btn{opacity:.6}}@media (width>=951px){.page.cover-left{grid-template-columns:var(--img-col) minmax(0, var(--text-max))}.page.cover-left .page-left{grid-column:2}.page.cover-left .page-right{grid-column:1}.page.cover-left .side-item{left:auto;right:0}}.prose figure{margin:1.8em 0}.prose figcaption{font-family:var(--sans);font-size:var(--fs-sm);color:var(--text-muted);margin-top:.55rem;margin-bottom:1.8em;padding-left:.8rem;font-style:italic;line-height:1.5;display:block}.prose table+p:has(>em:only-child){color:var(--text-muted)!important;margin-top:.2em!important;margin-bottom:1.8em!important;font-size:.85rem!important;line-height:1.55!important}.links-page{text-align:center;flex-direction:column;align-items:center;max-width:420px;margin:0 auto;padding-top:5rem;padding-bottom:5rem;display:flex}.links-avatar{object-fit:cover;border:1px solid var(--border);border-radius:50%;width:76px;height:76px;margin-bottom:1.2rem}.links-name{font-family:var(--sans);color:var(--text-title);margin:0 0 .3rem;font-size:1.15rem;font-weight:600}.links-bio{font-family:var(--sans);color:var(--text-sub);margin:0 0 1.5rem;font-size:.84rem;line-height:1.5}.links-social-icons{justify-content:center;gap:1.5rem;width:100%;margin-bottom:2rem;display:flex}.social-icon-btn{color:var(--text-sub);justify-content:center;align-items:center;transition:color .15s,transform .15s;display:inline-flex}.social-icon-btn:hover{color:var(--text-title);transform:translateY(-1px)}.social-icon-btn .icon-svg{width:17px;height:17px}.links-cards{flex-direction:column;gap:.8rem;width:100%;display:flex}.link-card{background:var(--bg2);border:1px solid var(--border);text-align:left;border-radius:8px;flex-direction:column;align-items:flex-start;padding:1.1rem 1.3rem;text-decoration:none;transition:border-color .18s,transform .15s,box-shadow .18s;display:flex}.link-card:hover{border-color:var(--text-muted);transform:translateY(-2px);box-shadow:0 4px 12px #00000005}.link-card .card-title{font-family:var(--serif);color:var(--text-title);margin-bottom:.2rem;font-size:1.02rem;font-style:italic;font-weight:500}.link-card .card-desc{font-family:var(--sans);color:var(--text-sub);font-size:.78rem;line-height:1.45}body{letter-spacing:-.005em}.page:has(>.page-right:empty){max-width:calc(var(--text-max) + 2 * var(--pad-left));grid-template-columns:minmax(0,1fr);margin:0 auto}.page:has(>.page-right:empty)>.page-right{display:none}@media (width>=951px){.page[data-pagefind-body]{grid-template-columns:minmax(0, 1fr) minmax(0, var(--text-max)) minmax(0, 1fr);max-width:none}.page[data-pagefind-body]>.page-right{max-width:var(--img-col);justify-self:end;width:100%}.page[data-pagefind-body]>.page-left{grid-column:2}.page[data-pagefind-body]>.page-right{grid-area:2/1}.page[data-pagefind-body] .side-item{left:auto;right:0}.page.layout-1col[data-pagefind-body]{max-width:calc(var(--text-max) + 2 * var(--pad-left));grid-template-columns:minmax(0,1fr);margin:0 auto}.page.layout-1col[data-pagefind-body]>.page-left{grid-column:1}.page.layout-1col[data-pagefind-body]>.page-right{display:none}}@media (width>=1380px){.page[data-pagefind-body]~.post-toc-container,.post-toc-container{left:calc(50vw + var(--text-max) / 2 + 5rem)!important;right:auto!important}}.page-header{margin-bottom:4rem}.site-logo,.site-nav-link,.nav-more-toggle{font-size:13px}.site-nav,.nav-left{gap:1.25rem}.site-logo.nav-active,.site-nav-link.nav-active{text-shadow:none;color:var(--text-title);font-weight:600}.site-logo[data-t],.site-nav-link[data-t]{flex-direction:column;align-items:flex-start;display:inline-flex}.site-logo[data-t]:after,.site-nav-link[data-t]:after{content:attr(data-t);visibility:hidden;pointer-events:none;height:0;font-weight:600;overflow:hidden}.entrylog-item{border-bottom:none;padding:.3rem 0}.entrylog-item:first-child{padding-top:.3rem}.entrylog-title{font-size:var(--fs-base);color:var(--text);letter-spacing:-.005em;font-weight:400}.entrylog-date{font-family:var(--font-mono);opacity:1;color:var(--text-dim);font-weight:400;font-size:var(--fs-sm);font-variant-numeric:tabular-nums;transition:color .15s}.entrylog-link:hover .entrylog-title{color:var(--text-title);text-decoration:none}.entrylog-link:hover .entrylog-date{color:var(--text-muted)}.prose a{text-decoration:underline;text-decoration-color:var(--text-dim);text-underline-offset:3px;text-decoration-thickness:1px}.prose a:hover{color:var(--text-title);text-decoration-color:currentColor}.entry-h1{letter-spacing:-.025em;margin:0 0 1.25rem;font-size:1.9rem;font-weight:650;line-height:1.2}.entry-desc{font-style:normal;font-size:var(--fs-base);margin-top:-.5rem}.prose h2{letter-spacing:-.02em}@media (width>=951px){.page>.page-header{width:min(var(--text-max), 100%);grid-column:1/-1;justify-self:center}.page[data-pagefind-body]>.page-header{grid-column:1/-1}html body .page.cosas-page.cosas-page,html body .page.notas-page.notas-page,html body .page.datasets-page.datasets-page{grid-template-columns:minmax(0, 1fr) minmax(0, var(--text-max)) minmax(0, 1fr)!important;gap:0!important}html body .page.cosas-page.cosas-page>.page-left,html body .page.notas-page.notas-page>.page-left,html body .page.datasets-page.datasets-page>.page-left{grid-row:2;width:100%;min-width:0;grid-column:2!important;max-width:none!important}html body .page.notas-page.notas-page>.page-right{grid-row:2;justify-self:start;width:320px;max-width:320px;grid-column:3!important;padding-left:1.5rem!important}html body .page.datasets-page.datasets-page>.page-right{grid-row:2;justify-self:start;width:300px;max-width:320px;margin-left:2.5rem;position:relative;grid-column:3!important}html body .page.cosas-page.cosas-page>.page-right{grid-row:2;justify-self:start;width:240px;max-width:240px;margin-left:3rem;grid-column:3!important;padding-left:0!important}.page.notas-page .notas-sync-info{bottom:1.2rem;left:calc(50vw - var(--text-max) / 2);width:var(--text-max);padding:0;position:fixed}}:root{--pf-azul:#0284c7;--pf-amarillo:#f70;--pf-verde:#52b714;--pf-rojo:#ff2b7c;--dot-rest:#d4d4d8}html.dark{--pf-azul:#38bdf8;--pf-amarillo:#fb923c;--pf-verde:#a3e635;--pf-rojo:#ff5d8f;--dot-rest:#38383e}.plus-field{width:100%;position:relative}.plus-field[data-ready=true]>.about-line{display:none}.dot-canvas-wrap{pointer-events:none;z-index:1;position:absolute;inset:-20px}.dot-canvas{width:100%;height:100%;display:block}.pf-grid{z-index:2;pointer-events:none;margin:0 auto;display:grid;position:relative}.pf-word{pointer-events:auto;text-align:center;white-space:nowrap;height:100%;line-height:1;font-size:var(--fs-base);letter-spacing:-.005em;color:var(--text);user-select:none;border-radius:4px;justify-content:center;align-items:center;padding:0 4px;font-weight:400;text-decoration:none;transition:color .2s;display:flex}a.pf-word{cursor:pointer;transition:color .2s}a.pf-word:hover{color:var(--pf-azul)}@media (prefers-reduced-motion:reduce){.dot-canvas-wrap{filter:none}}.pf-photo-wrap{pointer-events:auto;z-index:3;flex-direction:column;align-self:center;align-items:center;gap:.35rem;width:100%;display:flex}.pf-photo-card{box-shadow:none;aspect-ratio:4/5;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border:none;border-radius:4px;width:100%;position:relative;overflow:hidden}.pf-photo-card:hover{box-shadow:none;transform:none}.pf-photo-card img{object-fit:cover;filter:none;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;user-drag:none;-webkit-touch-callout:none;width:100%;height:100%;display:block;transform:none}.pf-photo-card:hover img{filter:none}.pf-photo-card:after{content:"";z-index:2;pointer-events:auto;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:0 0;position:absolute;inset:0}.about-fallback{align-items:center;gap:1.5rem;display:flex}.about-fallback-photo-wrap{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex-direction:column;flex-shrink:0;align-items:center;gap:.35rem;width:80px;display:flex;position:relative}.about-fallback-photo-card{aspect-ratio:4/5;width:80px;box-shadow:none;border:none;border-radius:4px;position:relative;overflow:hidden}.about-fallback-photo-card:after{content:"";z-index:2;pointer-events:auto;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:0 0;position:absolute;inset:0}.about-fallback-photo{aspect-ratio:4/5;object-fit:cover;width:100%;height:100%;box-shadow:none;filter:none;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;user-drag:none;-webkit-touch-callout:none;border:none;border-radius:4px;display:block}.plus-field[data-ready=true]>.about-fallback{display:none}.about-line{color:var(--text);margin:0;line-height:1.7}.about-line .about-where,.about-line .about-links{color:var(--text-muted)}.about-line .about-links a{color:var(--text-sub);text-decoration:underline;text-decoration-color:var(--text-dim);text-underline-offset:3px;margin-left:.5em;text-decoration-thickness:1px;transition:color .15s,text-decoration-color .15s}.about-line .about-links a:hover{color:var(--text-title);text-decoration-color:currentColor}@media (width<=950px){.about-page .about-intro-container{flex-direction:column;gap:1.5rem}.about-page .about-row-1-left{order:-1}.about-page .about-row-1-left,.about-page .about-row-1-right{flex:none;width:100%}}.pinned-dot{opacity:.55;transition:opacity .5s;top:50%;transform:translateY(-50%)}.entrylog-link:hover .pinned-dot{opacity:.9}@media (prefers-reduced-motion:reduce){.pinned-dot{transition:none}}.page.ksd-page .ksd-hero{margin:0 0 2rem;position:relative}.ksd-retro-icons{pointer-events:auto;width:140px;height:55px;position:absolute;top:-.25rem;right:1.8rem}.ksd-retro-item{cursor:default;user-select:none;transform:translate(var(--kx,0px), var(--ky,0px)) rotate(var(--krot,0deg));transform-origin:50% 60%;opacity:.9;background:0 0;transition:transform .15s,opacity .2s;display:inline-block;position:absolute;top:0;left:0}.ksd-retro-item[data-icon=mac]{--kx:0px;--ky:0px;--krot:9deg;z-index:1;width:29px;height:37px}.ksd-retro-item[data-icon=floppy]{--kx:46px;--ky:4px;--krot:17deg;z-index:2;width:29px;height:32px}.ksd-retro-item[data-icon=doc],.ksd-retro-item[data-icon=hand]{--kx:92px;--ky:9px;--krot:26deg;z-index:3;width:29px;height:37px}.ksd-retro-canvas{width:100%;height:100%;display:block}.ksd-retro-item:hover{transform:translate(var(--kx,0px), calc(var(--ky,0px) - 3px)) rotate(var(--krot,0deg)) scale(1.06);opacity:1}@media (width<=700px){.ksd-retro-icons{width:115px;height:55px;margin:0 0 1rem;position:relative;top:0;right:0}.ksd-keys{width:175px;height:80px;margin:0 0 1.2rem;position:relative;top:0;right:0}}@media (prefers-reduced-motion:reduce){.ksd-key,.ksd-key-surface,.ksd-key,.ksd-key-top{transition:none}}.page.ksd-page h1.ksd-h1{font-family:var(--font-display);letter-spacing:-.015em;word-spacing:-.04em;color:var(--text-title);margin:0;font-size:clamp(2.4rem,9vw,4.3rem);font-weight:400;line-height:1.1}.ksd-t{white-space:nowrap;width:fit-content;animation:.9s cubic-bezier(.2,.7,.2,1) both ksd-rise;display:block}.ksd-t:first-child{animation-delay:80ms}.ksd-t:nth-child(2){animation-delay:.18s}.ksd-t:nth-child(3){animation-delay:.3s}.ksd-sel{--sel:#007aff;--sel-bg:#007aff33;--sel-w:11px;--sel-ext:9px;--sel-r:4.6px;--sel-center:5px;--sel-stem:2px;background:linear-gradient(var(--sel-bg), var(--sel-bg)) 0 0 / 0% 100% no-repeat;padding:0 .03em;animation:.8s cubic-bezier(.5,0,.2,1) .9s forwards ksd-select;display:inline-block;position:relative}html.dark .ksd-sel{--sel:#0a84ff;--sel-bg:#0a84ff57}.ksd-sel:before,.ksd-sel:after{content:"";width:var(--sel-w);height:calc(100% + .06em + var(--sel-ext));opacity:0;pointer-events:none;animation:.4s 1.55s forwards ksd-handles;position:absolute}.ksd-sel:before{left:calc(var(--sel-w) * -.5 - .03em);top:calc(var(--sel-ext) * -1);background:radial-gradient(circle at 50% var(--sel-center), var(--sel) var(--sel-r), transparent calc(var(--sel-r) + .4px)) top / var(--sel-w) var(--sel-w) no-repeat, linear-gradient(var(--sel), var(--sel)) center var(--sel-ext) / var(--sel-stem) calc(100% - var(--sel-ext)) no-repeat}.ksd-sel:after{right:calc(var(--sel-w) * -.5 - .03em);background:radial-gradient(circle at 50% var(--sel-center), var(--sel) var(--sel-r), transparent calc(var(--sel-r) + .4px)) bottom / var(--sel-w) var(--sel-w) no-repeat, linear-gradient(var(--sel), var(--sel)) center 0 / var(--sel-stem) calc(100% - var(--sel-ext)) no-repeat;top:0}@keyframes ksd-select{to{background-size:100% 100%}}@keyframes ksd-handles{to{opacity:1}}@media (prefers-reduced-motion:reduce){.ksd-sel{background-size:100% 100%;animation:none}.ksd-sel:before,.ksd-sel:after{opacity:1;animation:none}}.about-page .ksd-sel{--sel-w:6.5px;--sel-ext:4.5px;--sel-r:2.6px;--sel-center:3px;--sel-stem:1.5px;color:var(--text-title);vertical-align:baseline;border-radius:2px;margin:0 4px;padding:0 .12em}.about-page .ksd-sel-1{animation-delay:.35s}.about-page .ksd-sel-1:before,.about-page .ksd-sel-1:after{animation-delay:.95s}.about-page .ksd-sel-2{animation-delay:.65s}.about-page .ksd-sel-2:before,.about-page .ksd-sel-2:after{animation-delay:1.25s}.about-page .ksd-sel-3{animation-delay:.95s}.about-page .ksd-sel-3:before,.about-page .ksd-sel-3:after{animation-delay:1.55s}@keyframes ksd-rise{0%{opacity:0;transform:translateY(.3em)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.ksd-t{animation:none}}.page.ksd-page .ksd-cards-list{gap:0;margin:2rem 0 3.2rem}.page.ksd-page .ksd-card-group{gap:0}.page.ksd-page .ksd-sublinks-list{gap:0;padding-left:1.1rem}.page.ksd-page .ksd-card,.page.ksd-page .ksd-card.ksd-subcard{background:0 0;border-radius:6px;grid-template-columns:1rem minmax(0,1fr);align-items:center;column-gap:.85rem;margin:0 -.65rem;padding:.45rem .65rem;font-size:1em;transition:background-color .15s,color .15s;display:grid}.page.ksd-page .ksd-card.ksd-subcard{padding-left:1.5rem}.page.ksd-page .ksd-card:not(.is-soon):hover{background:var(--bg2)}.page.ksd-page .ksd-card-icon-wrap{color:var(--text-dim);opacity:1;place-self:center;margin-top:0;transition:color .2s}.page.ksd-page .ksd-card:not(.is-soon):hover .ksd-card-icon-wrap{color:var(--text-title)}.page.ksd-page .ksd-card-content{white-space:normal;text-overflow:clip;flex-direction:column;align-items:flex-start;gap:.05rem;line-height:1.45;display:flex;overflow:visible}.page.ksd-page .ksd-card-title{font-style:normal;font-weight:450;font-size:var(--fs-base);color:var(--text-title);letter-spacing:-.01em;transition:color .2s}.page.ksd-page .ksd-card:not(.is-soon):hover .ksd-card-title{color:var(--text-title)}.page.ksd-page .ksd-card-sep{display:none}.page.ksd-page .ksd-card-desc{white-space:normal;text-overflow:clip;font-size:var(--fs-sm);color:var(--text-muted);font-weight:400;overflow:visible}.page.ksd-page .ksd-card .pinned-dot{display:none}.page.ksd-page .ksd-subcard .ksd-card-content{flex-flow:wrap;align-items:baseline;gap:0 .75rem}.page.ksd-page .ksd-card.is-soon .ksd-card-content{flex-direction:row;align-items:baseline;gap:.6rem}.page.ksd-page .ksd-card.is-soon .ksd-card-title{opacity:.3}.page.ksd-page .ksd-soon-badge{font-family:var(--font-mono);letter-spacing:.02em;color:var(--text-muted);background:0 0;border:0;padding:0;font-size:.66rem;font-weight:400}.page.ksd-page .ksd-resources-section{margin-top:2.2rem}.page.ksd-page .ksd-section-label{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);margin:0 0 .5rem;font-size:.68rem;font-weight:400}.page.ksd-page .ksd-resource-list{border-top:0;margin:0;padding:0;list-style:none}.page.ksd-page .ksd-resource-item{font-size:var(--fs-md);border-bottom:0}.page.ksd-page .ksd-resource-link{border-radius:6px;margin:0 -.65rem;padding:.4rem .65rem;line-height:1.55;text-decoration:none;transition:background-color .15s;display:block}.page.ksd-page .ksd-resource-name{color:var(--text-title);font-weight:500;transition:color .15s}.page.ksd-page .ksd-resource-sep{color:var(--text-dim);user-select:none;margin:0 .35rem 0 .25rem;display:inline}.page.ksd-page .ksd-resource-desc{font-size:var(--fs-sm);color:var(--text-muted);font-weight:400}.page.ksd-page .ksd-resource-link:hover{background:var(--bg2)}.page.ksd-page .ksd-resource-link:hover .ksd-resource-name{color:var(--text-title);text-decoration:none}html #bookModal.book-modal-overlay{backdrop-filter:blur(6px);background:#11111047}html.dark #bookModal.book-modal-overlay{background:#0009}html #bookModal .book-modal-card{scrollbar-width:none;-ms-overflow-style:none;border-radius:14px;max-width:580px;box-shadow:0 30px 70px -28px #00000059}html #bookModal .book-modal-card::-webkit-scrollbar{display:none}html.dark #bookModal .book-modal-card{box-shadow:0 30px 70px -28px #000c}html #bookModal .book-modal-body{gap:1.8rem;padding:2rem 2rem 2.2rem}html #bookModal .book-modal-title{font-family:var(--font-primary);letter-spacing:-.02em;font-size:1.25rem;font-weight:600}html #bookModal .book-modal-author{font-size:var(--fs-md);color:var(--text-muted)}html #bookModal .book-modal-cover img{border-radius:3px;box-shadow:0 1px 6px #0000001f}html #bookModal .book-modal-meta{gap:.7rem 1.6rem}html #bookModal .book-modal-meta .book-modal-meta-label{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text-muted);font-size:.62rem;font-weight:400}html #bookModal .book-modal-meta .book-modal-meta-value{font-size:var(--fs-sm);color:var(--text-sub)}html #bookModal .book-modal-quotes{gap:1.15rem}html #bookModal .book-modal-quotes .book-modal-quote,html #bookModal .book-modal-quotes .book-modal-quote.q-azul,html #bookModal .book-modal-quotes .book-modal-quote.q-amarillo,html #bookModal .book-modal-quotes .book-modal-quote.q-verde,html #bookModal .book-modal-quotes .book-modal-quote.q-rojo{font-family:var(--font-primary);font-style:italic;font-size:var(--fs-md);color:var(--text-sub);border-left:1px solid var(--border);padding:0 0 0 1.1rem;line-height:1.65}html #bookModal .book-modal-quotes .quotes-legend{display:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{z-index:100000;background:var(--text-title);color:var(--bg);font-family:var(--sans);font-size:var(--fs-sm);border-radius:8px;padding:.55rem .9rem;transition:top .15s;position:absolute;top:-4rem;left:1rem}.skip-link:focus{top:1rem}main:focus{outline:none}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--text-title);outline-offset:3px;border-radius:3px}:where(a,button,input,select,textarea,summary,[tabindex]):focus:not(:focus-visible){outline:none}:where(input,textarea,select){color:var(--text);background-color:var(--bg)}:where(input,textarea)::placeholder{color:var(--text-muted);opacity:1}h2.about-section-label{font-size:.72rem;line-height:1.5}:root{--background-primary:var(--bg);--background-secondary:var(--bg2);--background-modifier-border:var(--border)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.plus-field.is-resting .pf-plus{animation-play-state:paused}.prose table{max-width:100%;display:block;overflow-x:auto}.prose a,.prose li,.prose p{overflow-wrap:anywhere}.prose img,.prose video,.prose iframe{max-width:100%}.reading-now-list,.reading-now-body{min-width:0;max-width:100%}.reading-now-title,.upcoming-item .book-title{overflow-wrap:anywhere}@media (width<=700px){.ksd-t{white-space:normal}.page.ksd-page .ksd-card-content{min-width:0}.page.ksd-page .ksd-card-title,.page.ksd-page .ksd-card-desc{overflow-wrap:anywhere}.page.ksd-page .ksd-card.is-soon .ksd-card-content{flex-wrap:wrap}.ksd-soon-wrap{flex-wrap:wrap;flex-shrink:1;min-width:0;max-width:100%}.page.ksd-page .page-left{min-width:0}.page.ksd-page .ksd-card{grid-template-columns:1rem minmax(0,1fr);min-width:0}.reading-now{row-gap:.4rem;grid-template-columns:minmax(0,1fr)!important}.reading-now-body{grid-template-columns:minmax(0,1fr)!important}.page.ksd-page .ksd-card-title{flex:0 auto;min-width:0;max-width:100%}.reading-now-title{white-space:normal!important;text-overflow:clip!important;width:auto!important;overflow:visible!important}.reading-now-bar-row{flex-wrap:wrap;max-width:100%}.reading-now-percent{white-space:normal}}.page a{overflow-wrap:anywhere}.project-card-details,.mini-project-likes{align-items:center;min-width:24px;min-height:24px;display:inline-flex}@media (width>=1500px){:root{--text-max:680px}}@media (width>=1800px){:root{--text-max:720px}}@media (width>=2200px){:root{--text-max:750px}}.about-credits{font-family:var(--sans);font-size:var(--fs-xs);color:var(--text-muted);line-height:1.6}.about-credits p{margin:0}.about-credits a{color:inherit;text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:3px}.about-credits a:hover{color:var(--text-title);text-decoration-color:currentColor}:root{--code-ring:0 0 0 1px #0000000f, 0 1px 2px -1px #0000000f, 0 2px 4px 0 #0000000a;--code-head-h:2.35rem}html.dark{--code-ring:0 0 0 1px #ffffff17, 0 2px 6px -2px #0009}html body pre.astro-code{box-shadow:var(--code-ring);border:none;border-radius:12px;margin:2rem 0;padding:0;font-size:13px;position:relative;background-color:var(--bg)!important;overflow:hidden!important}html body pre.astro-code[data-language]:after{pointer-events:none;position:absolute;content:""!important;width:auto!important;height:var(--code-head-h)!important;background-color:color-mix(in srgb, var(--bg2) 55%, var(--bg))!important;border-bottom:1px solid var(--border)!important;border-radius:0!important;inset:0 0 auto!important}html body pre.astro-code[data-language]:before{height:var(--code-head-h);color:var(--text-muted);z-index:5;align-items:center;display:flex;position:absolute;content:attr(data-language)!important;font-family:var(--font-mono)!important;letter-spacing:0!important;text-transform:none!important;opacity:1!important;font-size:12px!important;font-weight:400!important;top:0!important;left:.85rem!important}html body pre.astro-code code{padding:calc(var(--code-head-h) + .85rem) 1rem .95rem;scrollbar-width:thin;scrollbar-color:var(--text-dim) transparent;overscroll-behavior-x:contain;tab-size:4;white-space:pre;font-size:13px;display:block;overflow-x:auto;line-height:1.65!important}html body pre.astro-code .line{width:auto!important;min-width:0!important;margin:0!important;line-height:1.65!important;display:inline!important}html body pre.astro-code .line:before{display:none!important}html body pre.astro-code code::-webkit-scrollbar{height:4px}html body pre.astro-code code::-webkit-scrollbar-thumb{background:var(--text-dim);border-radius:999px}html body pre.astro-code code::-webkit-scrollbar-track{background:0 0}html body pre.astro-code:not([data-language]) code,html body pre.astro-code[data-language=""] code,html body pre.astro-code[data-language=none] code,html body pre.astro-code[data-language=undefined] code{padding-top:.95rem!important}html body .code-copy-btn{top:calc((var(--code-head-h) - 28px) / 2);width:28px;height:28px;color:var(--text-muted);opacity:1;background:0 0;border:none;border-radius:6px;padding:0;right:.45rem}html body .code-copy-btn:hover{background:var(--bg2);color:var(--text-title)}html body pre:not([data-language]) .code-copy-btn,html body pre[data-language=""] .code-copy-btn{top:.5rem}html body .remark-code-title{height:var(--code-head-h);font-family:var(--font-mono);color:var(--text-muted);background-color:color-mix(in srgb, var(--bg2) 55%, var(--bg));border:none;border-bottom:1px solid var(--border);box-shadow:var(--code-ring);z-index:1;border-radius:12px 12px 0 0;align-items:center;margin:2rem 0 0;padding:0 .85rem;font-size:12px;font-weight:400;display:flex;position:relative}html body .remark-code-title+pre.astro-code{box-shadow:var(--code-ring);border-radius:0 0 12px 12px;margin-top:0!important}html body .remark-code-title+pre.astro-code:before,html body .remark-code-title+pre.astro-code:after{display:none}html body .remark-code-title+pre.astro-code code{padding-top:.95rem!important}html body .remark-code-title+pre.astro-code .code-copy-btn{top:-2.05rem}html body .prose :not(pre)>code,html body .side-item.is-callout :not(pre)>code,html body .callout-body :not(pre)>code{font-family:var(--font-mono);background-color:var(--bg);border:1px solid var(--border);color:var(--text-title);border-radius:6px;padding:2px 5px;font-size:.875em}html body .about-page :not(pre)>code{font-family:var(--sans);font-size:var(--fs-xs);background:color-mix(in srgb, var(--border) 50%, var(--bg));color:var(--text-dim);border:none;border-radius:999px;padding:2px 7px;font-weight:400;line-height:1.2}html.dark pre.astro-code span[style*=--shiki-dark]{color:var(--shiki-dark)!important}html:not(.dark) pre.astro-code span[style*=--shiki-light]{color:var(--shiki-light)!important}html body .comment-actions.comment-actions{font-family:var(--font-primary);font-size:var(--fs-md)!important;border-top:0!important;flex-flow:wrap!important;justify-content:center!important;align-items:center!important;gap:.6rem 1.4rem!important;margin-top:4rem!important;padding-top:0!important;display:flex!important}html body .comment-actions .action-stats{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.4rem 2.2rem;display:flex}html body .comment-actions .action-btn{font:inherit;color:var(--text-muted);white-space:nowrap;cursor:default;background:0 0;border:0;align-items:baseline;gap:.4rem;padding:.2rem 0;text-decoration:none;display:inline-flex}html body .comment-actions a.action-btn{cursor:pointer}html body .comment-actions .action-count{font-variant-numeric:tabular-nums;color:var(--text-title);font-weight:500}html body .comment-actions .action-label{color:var(--text-muted);transition:color .2s}html body .comment-actions a.action-btn:hover .action-label{color:var(--text-title)}html body .comment-actions .comments-toggle{cursor:pointer}html body .comment-actions .comments-toggle .action-label{text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:4px}html body .comment-actions .comments-toggle:hover .action-label{color:var(--text-title);text-decoration-color:currentColor}html body .comment-actions .action-chevron{color:var(--text-muted);align-self:center;transition:transform .3s,color .2s}html body .comment-actions .comments-toggle.is-open .action-chevron{color:var(--text-title);transform:rotate(180deg)}html body .mastodon-comments[hidden]{display:none}html body .mastodon-comments .comment-privacy-note{font-size:var(--fs-sm);color:var(--text-muted);margin:2rem 0 0;line-height:1.55}html body .comments-cta{border:0;flex-wrap:wrap;justify-content:center;gap:.6rem 2rem;margin-top:3rem;padding:0;display:flex}html body .comments-cta-btn{white-space:nowrap;font-family:var(--font-primary);font-size:var(--fs-md);color:var(--text-sub);text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:5px;background:0 0;border:0;border-radius:0;flex:none;align-items:baseline;padding:.2rem 0;transition:color .2s,text-decoration-color .2s;display:inline-flex}html body .comments-cta-btn:hover{color:var(--text-title);background:0 0;text-decoration-color:currentColor}html body .comments-cta-btn>span[aria-hidden]{opacity:.6;margin-left:.35em;text-decoration:none}html body .comment-actions--empty{justify-content:center!important}html body .comment-actions--empty .comments-cta{border:0;margin:0;padding:0}html body .mastodon-comments{font-size:var(--fs-base)}html body .mastodon-comments .comment-content{font-family:var(--font-primary);font-size:var(--fs-base);line-height:var(--lh);color:var(--text);margin-top:.4em;padding-left:44px}html body .mastodon-comments .comment-content p{margin:0 0 .7em}html body .mastodon-comments .comment-name{font-size:.98em}html body .mastodon-comments .comment-username{color:var(--text-muted);font-size:.82em}html body .mastodon-comments .comment-date{color:var(--text-muted);font-size:.8em}html body .mastodon-comments .comment-avatar{width:36px;height:36px}html body .comment-actions .action-stats{flex-wrap:wrap;row-gap:.3rem}html body .comment-actions .action-btn{white-space:nowrap;flex:none}html body .comment-actions .action-count{white-space:nowrap;word-break:keep-all;overflow-wrap:normal;min-width:max-content}.prose hr:has(+.footnotes),.prose hr:has(+section[data-footnotes]),.prose>hr:last-child{display:none}html body .mastodon-comments .comment-privacy-note{border:0}.about-section-dots,.about-section-header .header-dot{display:none!important}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}
