@font-face{font-family:PolySans;src:url(/fonts/PolySans-Neutral.woff2) format("woff2"),url(/fonts/PolySans-Neutral.otf) format("opentype"),url(/fonts/PolySans-Neutral.ttf) format("truetype"),url(/fonts/PolySans%20Neutral.woff2) format("woff2"),url(/fonts/PolySans%20Neutral.otf) format("opentype"),url(/fonts/PolySans%20Neutral.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:PolySans;src:url(/fonts/PolySans-Median.woff2) format("woff2"),url(/fonts/PolySans-Median.otf) format("opentype"),url(/fonts/PolySans-Median.ttf) format("truetype"),url(/fonts/PolySans%20Median.woff2) format("woff2"),url(/fonts/PolySans%20Median.otf) format("opentype"),url(/fonts/PolySans%20Median.ttf) format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:PolySans;src:url(/fonts/PolySans-Bulky.woff2) format("woff2"),url(/fonts/PolySans-Bulky.otf) format("opentype"),url(/fonts/PolySans-Bulky.ttf) format("truetype"),url(/fonts/PolySans%20Bulky.woff2) format("woff2"),url(/fonts/PolySans%20Bulky.otf) format("opentype"),url(/fonts/PolySans%20Bulky.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}:root,[data-theme=light]{--m-label:#8a8a8a}[data-theme=dark]{--m-label:#8f8f8f}[data-theme=oled]{--m-label:#858585}:root,[data-theme=light]{--m-lead:#0e7c4a}[data-theme=dark]{--m-lead:#5ec98f}[data-theme=oled]{--m-lead:#57c489}.m-page{--m-head-gap:2.25rem;width:100%;max-width:40rem;margin:0 auto;padding:clamp(3rem,12vh,7rem) var(--m-gutter,1.5rem) 6rem;font-family:PolySans,system-ui,-apple-system,Helvetica Neue,Arial,sans-serif;color:var(--text-primary);font-size:1.0625rem;font-weight:400;line-height:1.4}@media (max-width:30rem){.m-page{--m-gutter:1.25rem;padding-top:3rem;padding-bottom:4.5rem}}@media (max-width:26rem){.m-page{font-size:1rem}}.m-header{text-align:center;margin-bottom:var(--m-head-gap)}.m-name{font-family:Stella Demo,PolySans,system-ui,sans-serif;font-size:clamp(36px,8vw,56px);font-weight:400;line-height:1;color:var(--text-primary);margin:0}.m-section+.m-section{margin-top:1.75rem}.m-section-label{font-size:inherit;font-weight:700;line-height:inherit;color:var(--m-label);margin:0 0 .375rem}.m-list{list-style:none;margin:0;padding:0}.m-intro{color:var(--m-label);line-height:1.5}.m-intro p{margin:0}.m-intro-lead{font-weight:700;color:var(--m-lead)}.m-intro-accent{color:var(--text-primary)}a.m-intro-accent{text-decoration:underline;-webkit-text-decoration-color:transparent;text-decoration-color:transparent;text-underline-offset:.2em;transition:-webkit-text-decoration-color .15s ease;transition:text-decoration-color .15s ease;transition:text-decoration-color .15s ease,-webkit-text-decoration-color .15s ease}a.m-intro-accent:focus-visible,a.m-intro-accent:hover{-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}.m-intro .m-links{display:flex;flex-wrap:wrap;gap:.25rem 1.125rem;margin-top:.875rem}.m-links a{color:inherit;text-decoration:underline;-webkit-text-decoration-color:transparent;text-decoration-color:transparent;text-underline-offset:.2em;transition:color .15s ease,-webkit-text-decoration-color .15s ease;transition:color .15s ease,text-decoration-color .15s ease;transition:color .15s ease,text-decoration-color .15s ease,-webkit-text-decoration-color .15s ease}.m-links a:focus-visible,.m-links a:hover{color:var(--text-primary);-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}.m-row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.1875rem 0}.m-row-name{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--text-primary)}.m-row-meta{flex:0 0 auto;color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.m-row-meta-short{display:none}a.m-row .m-row-name{text-decoration:underline;-webkit-text-decoration-color:transparent;text-decoration-color:transparent;text-underline-offset:.2em;transition:-webkit-text-decoration-color .15s ease;transition:text-decoration-color .15s ease;transition:text-decoration-color .15s ease,-webkit-text-decoration-color .15s ease}a.m-row:focus-visible .m-row-name,a.m-row:hover .m-row-name{-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}a.m-row:focus-visible{outline:2px solid var(--text-muted);outline-offset:4px;border-radius:2px}@media (max-width:30rem){.m-row-meta-long{display:none}.m-row-meta-short{display:inline}}@media (max-width:26rem){.m-row{gap:.75rem}}.m-back{display:inline-block;margin-bottom:1.75rem;color:var(--text-muted);transition:color .15s ease}.m-back:focus-visible,.m-back:hover{color:var(--text-primary)}.m-detail-title{font-size:clamp(1.625rem,5vw,2rem);font-weight:700;line-height:1.15;color:var(--text-primary);margin:0}.m-detail-meta{margin-top:.375rem;color:var(--text-muted)}.m-prose{margin-top:1.5rem;color:var(--text-secondary-theme);line-height:1.55}.m-prose>*+*{margin-top:.875rem}.m-prose a{color:var(--text-primary);text-decoration:underline;text-underline-offset:.2em}.m-prose h2,.m-prose h3,.m-prose h4{margin-top:1.75rem;color:var(--text-primary);font-weight:500;line-height:1.25}.m-prose h2{font-size:1.25rem}.m-prose h3{font-size:1.125rem}.m-prose h4{font-size:1.0625rem}.m-prose ol,.m-prose ul{padding-left:1.25rem}.m-prose li+li{margin-top:.25rem}.m-prose iframe,.m-prose img,.m-prose video{display:block;width:100%;height:auto;margin:1.5rem 0;border-radius:4px}.m-prose blockquote{padding-left:1rem;border-left:2px solid var(--divider);color:var(--text-muted)}.m-prose code{padding:.1em .35em;border-radius:3px;background:var(--code-bg);font-size:.9em}.m-prose pre{overflow-x:auto;padding:1rem;border-radius:4px;background:var(--code-bg)}.m-prose pre code{padding:0;background:none}.m-prose .blog-image-pair{gap:1rem;margin:1.5rem 0}.m-prose .blog-image-pair img{margin:0;min-width:0}@media (max-width:30rem){.m-prose .blog-image-pair{flex-direction:column}}.m-media{margin-top:2rem;display:grid;grid-gap:1rem;gap:1rem}.m-media-item{position:relative;width:100%;overflow:hidden;border-radius:4px;background:var(--placeholder-bg)}.m-media-item img{display:block;width:100%;height:auto}.m-gallery-section+.m-gallery-section{margin-top:2.5rem}.m-gallery-title{font-size:inherit;font-weight:700;color:var(--text-muted);margin:0 0 .375rem}.m-page-wide{max-width:52rem}main:has(>.m-page){margin-top:0}.m-thumb{position:relative;width:100%;aspect-ratio:4/3;margin-bottom:var(--m-head-gap)}.m-thumb canvas{position:absolute;inset:0;display:block;width:100%;height:100%}.ascii-intro,.m-thumb-reveal{pointer-events:none}.ascii-intro{display:none;position:fixed;inset:0;z-index:1200}html:is([data-intro=pending],[data-intro=running]) .ascii-intro{display:block}html:is([data-intro=pending],[data-intro=running]) .m-page>:not(.m-thumb){opacity:0;transform:translate3d(0,6px,0)}html:is([data-intro=pending],[data-intro=running]) :is(.m-thumb,.theme-module){opacity:0}html[data-intro=done] .m-thumb{opacity:1}html[data-intro=done] .m-page>:not(.m-thumb),html[data-intro=done] .theme-module{opacity:1;transform:none;transition:opacity .5s cubic-bezier(.33,0,.2,1),transform .5s cubic-bezier(.33,0,.2,1)}