:root{--text-base:max(16px, 1.25vw);--font-heading:var(--theme-font-heading, 'Ubuntu', system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif);--font-ui:var(--theme-font-ui, 'Nanum Gothic', system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif);--font-detail:var(--theme-font-detail, ui-monospace, "SF Mono", Menlo, monospace);--color-ground:var(--theme-color-ground, #292d31);--color-heading:var(--theme-color-heading, #9ec5ff);--color-text:var(--theme-color-text, #ddd);--color-rule:var(--theme-color-rule, #44494e);--color-well:var(--theme-color-well, #31353a);color-scheme:dark;--header-height:var(--theme-header-height, calc(var(--text-base) * 3.5));--inset:var(--theme-inset, 64px);--article-min:var(--theme-article-min, 360px);--article-max:var(--theme-article-max, 960px);--rhythm-min:var(--theme-rhythm-min,     calc(var(--text-base) * 0.25));--rhythm-tight:var(--theme-rhythm-tight,   calc(var(--text-base) * 0.5));--rhythm-small:var(--theme-rhythm-small,   calc(var(--text-base) * 0.75));--rhythm-regular:var(--theme-rhythm-regular, calc(var(--text-base) * 1.0));--rhythm-large:var(--theme-rhythm-large,   calc(var(--text-base) * 1.5));--rhythm-loose:var(--theme-rhythm-loose,   calc(var(--text-base) * 2.0));--rhythm-max:var(--theme-rhythm-max,     calc(var(--text-base) * 3.0));--icon-size:var(--theme-icon-size, calc(var(--text-base) * 2.7));--icon-mask-size:var(--theme-icon-mask-size, 65%);--icon-glyph:var(--theme-icon-glyph, calc(var(--text-base) * 1.6));--icon-mask-quarter:25%;--icon-mask-third:33.333%;--icon-mask-half:50%;--icon-mask-two-thirds:66.666%;--icon-mask-three-quarters:75%;--icon-mask-full:100%}@media (min-width:1920px){:root{--text-base:24px}}@font-face{font-family:"Ubuntu";font-style:normal;font-weight:700;font-display:swap;src:local("Ubuntu Bold"),local("Ubuntu"),url(/fonts/ubuntu-700-latin.woff2)format("woff2")}@font-face{font-family:"Nanum Gothic";font-style:normal;font-weight:400;font-display:swap;src:local("Nanum Gothic"),url(/fonts/nanum-gothic-400-latin.woff2)format("woff2")}@font-face{font-family:"Nanum Gothic";font-style:normal;font-weight:700;font-display:swap;src:local("Nanum Gothic Bold"),local("Nanum Gothic"),url(/fonts/nanum-gothic-700-latin.woff2)format("woff2")}.lyk{box-sizing:border-box;font-size:0;line-height:0}.icon{display:inline-block;width:var(--icon-size);height:var(--icon-size);font-size:0;background-color:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:var(--icon-mask-size);mask-size:var(--icon-mask-size)}.icon--chevron{-webkit-mask-image:url(/icons/lucide/chevron-left.svg);mask-image:url(/icons/lucide/chevron-left.svg)}.icon--mirrored{transform:scaleX(-1)}.page{position:relative;display:block;margin:0;background-color:var(--color-ground)}.main,.page,.site-header{left:0;top:0;width:100%}.main{position:relative;display:block;padding-top:var(--header-height)}.site-header{position:fixed;height:var(--header-height);background-color:var(--color-ground);border-bottom:1px solid var(--color-rule)}.site-header-wordmark{position:relative;left:0;top:0;display:inline-block;width:auto;padding-left:var(--inset);font-family:var(--font-heading);font-weight:700;font-size:16px;font-size:calc(var(--text-base)*1.1);line-height:var(--header-height);color:var(--color-heading);text-decoration:none}.article{width:clamp(var(--article-min),100%,var(--article-max));margin-left:auto;margin-right:auto;margin-bottom:var(--rhythm-max);padding:var(--rhythm-max) var(--inset)0 var(--inset)}.article,.article-date,.article-title{position:relative;left:0;top:0;display:block;width:100%}.article-title{font-family:var(--font-heading);font-weight:700;font-size:16px;font-size:calc(var(--text-base)*2.2);line-height:1.15;color:var(--color-heading);margin-bottom:var(--rhythm-tight)}.article-date{margin-bottom:var(--rhythm-loose)}.article-date .icon,.article-date-time{vertical-align:middle;color:var(--color-heading)}.article-date .icon{--icon-size:calc(var(--text-base) * 1.4)}.article-date-time{position:relative;left:0;top:0;display:inline-block;width:auto;padding-left:calc(var(--text-base)*.5);padding-right:calc(var(--text-base)*.5);font-family:var(--font-ui);font-size:16px;font-size:var(--text-base);line-height:calc(var(--text-base)*1.4)}.article-h2,.article-h3,.article-h4,.article-p{position:relative;left:0;top:0;display:block;width:100%;font-size:16px}.article-p{font-family:var(--font-ui);font-size:var(--text-base);line-height:1.7;color:var(--color-text);margin-bottom:var(--rhythm-regular)}.article-h2,.article-h3,.article-h4{font-family:var(--font-heading);font-weight:700;font-size:calc(var(--text-base)*1.6);line-height:1.25;color:var(--color-heading);margin-bottom:var(--rhythm-small)}.article-h3,.article-h4{font-size:calc(var(--text-base)*1.3);line-height:1.3}.article-h4{font-size:calc(var(--text-base)*1.15);line-height:1.35}.article-a,.article-em,.article-strong{display:inline;font-size:16px;font-size:var(--text-base);line-height:inherit}.article-a{color:var(--color-text);text-decoration:underline}.article-em,.article-strong{color:inherit}.article-strong{font-weight:700}.article-em{font-style:italic}.article-ol,.article-ul{position:relative;left:0;top:0;display:block;width:100%;padding-left:calc(var(--text-base)*1.5);margin-bottom:var(--rhythm-regular)}.article-li{position:relative;left:0;top:0;display:list-item;width:auto;font-family:var(--font-ui);font-size:16px;font-size:var(--text-base);line-height:1.7;color:var(--color-text);margin-bottom:var(--rhythm-min)}.article-blockquote,.article-hr{position:relative;left:0;top:0;display:block;width:100%}.article-blockquote{padding-left:calc(var(--text-base)*1);border-left:3px solid var(--color-rule);margin-bottom:var(--rhythm-regular)}.article-hr{height:1px;background-color:var(--color-rule);border:0;margin-bottom:var(--rhythm-large)}.article-code,.article-pre{background-color:var(--color-well)}.article-code{display:inline;font-family:var(--font-detail);font-size:16px;font-size:var(--text-base);line-height:inherit;color:inherit}.article-pre{position:relative;left:0;top:0;display:block;width:100%;overflow-x:auto;padding:calc(var(--text-base)*1);margin-bottom:var(--rhythm-regular)}.article-pre .article-code{display:block;line-height:1.5;background-color:transparent}