@font-face{font-family:et-book;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/etbook/et-book-roman-line-figures/et-book-roman-line-figures.woff2)format("woff2"),url(/fonts/etbook/et-book-roman-line-figures/et-book-roman-line-figures.woff)format("woff")}@font-face{font-family:et-book;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/etbook/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.woff2)format("woff2"),url(/fonts/etbook/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.woff)format("woff")}@font-face{font-family:et-book;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/etbook/et-book-bold-line-figures/et-book-bold-line-figures.woff2)format("woff2"),url(/fonts/etbook/et-book-bold-line-figures/et-book-bold-line-figures.woff)format("woff")}@font-face{font-family:ibm plex mono;font-style:normal;font-weight:300;font-display:swap;src:local("IBM Plex Mono Light"),local("IBMPlexMono-Light"),url(/fonts/IBMPlexMono-Light.woff2)format("woff2"),url(/fonts/IBMPlexMono-Light.ttf)format("truetype")}@font-face{font-family:ibm plex mono;font-style:italic;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-v6-latin-500italic.woff2)format("woff2"),url(/fonts/ibm-plex-mono-v6-latin-500italic.woff)format("woff")}@font-face{font-family:source han serif kr;font-display:swap;src:url(/fonts/SourceHanSerifKR-VF.woff2)format("woff2");font-weight:200 900;font-style:normal;unicode-range:U+11??,U+3000-303F,U+3130-318F,U+32??,U+A960-A97F,U+AC00-D7FF,U+FF00-FFEF}:root{--maincolor:#6B3FA0;--bordercl:#6B3FA0;--hovercolor:#6B3FA0;--darkMaincolor:#6B3FA0;--calloutcolor:rgba(107, 63, 160, 0.1);--color-primary:var(--maincolor);--color-primary-hover:var(--hovercolor);--color-primary-light:var(--calloutcolor);--color-primary-muted:rgba(107, 63, 160, 0.2);--color-border:var(--bordercl);--textcolor:#231B1B;--color-text:var(--textcolor);--color-text-secondary:#666;--color-text-muted:#888;--color-text-faded:#737373;--color-text-light:#808080;--color-bg:#fafafa;--color-bg-code:#f5f5f5;--color-bg-hover:#f8f8f8;--color-bg-label:#f9f2f4;--color-bg-dark:#333;--color-border-light:#ddd;--color-border-medium:#ccc;--color-error:#8b1a1a;--color-error-bg:rgba(139, 26, 26, 0.08);--color-verified:#2e7d32;--color-inverse:#fafafa;--color-inverse-alt:#fff;--font-serif:et-book, Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif;--font-mono:'IBM Plex Mono', monospace;--font-size-base:18px;--font-size-sm:0.95rem;--font-size-xs:0.85rem;--font-size-xxs:0.75rem;--font-size-tiny:11px;--font-size-code:13px;--font-size-heading:1.2rem;--font-size-header:1.5rem;--font-size-h1:1.1em;--line-height-base:1.6em;--line-height-content:1.5;--line-height-tight:1.3;--line-height-code:1.4;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:2.5rem;--spacing-3xl:4rem;--content-max-width:800px;--body-margin:8px;--border-width-thin:1px;--border-width-medium:2px;--border-width-thick:3px;--border-radius-sm:4px;--border-radius-md:6px;--border-radius-lg:12px;--border-radius-full:50%;--transition-fast:0.15s ease;--transition-normal:0.2s ease;--transition-slow:0.3s ease;--transition-smooth:0.2s ease-in-out;--transition-bounce:0.6s cubic-bezier(0.2, 0.8, 0.2, 1);--shadow-sm:1px 3px 12px rgba(0, 0, 0, 0.12);--shadow-md:0 8px 24px rgba(0, 0, 0, 0.15);--shadow-lg:0 16px 40px rgba(0, 0, 0, 0.16);--shadow-inset:inset 0 0 20px rgba(0, 0, 0, 0.1);--z-dropdown:100;--z-modal:1000;--z-overlay:9999}html{color:var(--color-text);background-color:var(--color-bg);font-family:var(--font-serif);font-size:var(--font-size-base);line-height:var(--line-height-base);scroll-behavior:smooth;color-scheme:light}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}body{margin:var(--body-margin)}*{-webkit-tap-highlight-color:transparent}::selection{background:var(--color-primary);color:var(--color-inverse-alt)}html{scrollbar-width:auto;scrollbar-color:var(--color-primary)transparent}::-webkit-scrollbar{width:16px;height:16px}::-webkit-scrollbar-thumb{background:var(--color-primary);border:4px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:var(--color-primary-hover)}::-webkit-scrollbar-track{background:0 0}p{font-family:var(--font-serif);line-height:var(--line-height-content)}hr{border:0;border-top:var(--border-width-thick)dotted var(--color-border);margin:var(--spacing-md)0}.asterism{color:var(--color-primary);font-size:1.25em;padding:var(--spacing-md)0;text-align:center}blockquote{border-left:var(--border-width-thick)solid var(--color-border);color:var(--color-text-faded);margin:0;padding-left:var(--spacing-md)}article .e-content{text-wrap:pretty}a{border-bottom:var(--border-width-medium)solid var(--color-primary);color:inherit;text-decoration:none}a:hover{background-color:var(--color-primary-hover);color:var(--color-inverse)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}a:focus-visible{background-color:var(--color-primary-hover);color:var(--color-inverse);outline:2px solid var(--color-primary);outline-offset:2px}h1,h2,h3,h4,h5,h6{font-size:var(--font-size-heading);margin-top:var(--spacing-xl);text-wrap:balance;scroll-margin-top:var(--spacing-xl)}h1::before{color:var(--color-primary);content:"// "}h2::before{color:var(--color-primary);content:"↳  "}h3::before,h4::before,h5::before,h6::before{color:var(--color-primary);content:"// "}.title h1{margin-bottom:0}time{color:var(--color-text-light)}sup,sub{vertical-align:baseline;position:relative;top:-.4em}sub{top:.4em}a.footnote-ref::before{content:'['}a.footnote-ref::after{content:']'}.footnotes hr{display:none}.footnotes li{scroll-margin-top:var(--spacing-xl)}.footnote-ref{scroll-margin-top:var(--spacing-xl)}.smalltext{font-size:var(--font-size-tiny);text-align:right}.slug{font-style:italic;cursor:default;user-select:none}.description{text-align:justify;hyphens:auto}:lang(ko){font-family:et-book,source han serif kr,Palatino,palatino linotype,Georgia,serif;line-height:1.8;word-break:keep-all;overflow-wrap:break-word}:lang(ko) h1,:lang(ko) h2,:lang(ko) h3,:lang(ko) h4,:lang(ko) h5,:lang(ko) h6{font-family:et-book,source han serif kr,Palatino,Georgia,serif;font-weight:600}:lang(ko) p,:lang(ko) li,:lang(ko) blockquote{font-family:et-book,source han serif kr,Palatino,Georgia,serif}.content{margin-bottom:var(--spacing-3xl);margin-left:auto;margin-right:auto;max-width:var(--content-max-width);position:relative;padding:0 1ch;overflow-wrap:break-word}header{display:flex;flex-wrap:nowrap;justify-content:space-between;margin:var(--spacing-md)0}header .main{font-size:var(--font-size-header)}footer{margin-top:var(--spacing-md)}.posts{list-style:none;padding-left:2ch}.posts .list-date{padding-right:1em;float:right}.posts .post blockquote p{text-align:justify}.miniposts{text-indent:-2ch}article .title{margin-bottom:1em}.introduction{width:100%}.intro-row{display:flex;align-items:flex-start;gap:var(--spacing-xl)}.intro-prose{flex:1;min-width:0}@media screen and (max-width:800px){#cal-box{display:none}.intro-row{flex-direction:column;gap:var(--spacing-md)}}.clearfix:after{content:"";display:block;clear:both}.page-next{float:right}.page-prev{float:left}.paginator{margin-top:var(--spacing-xl)}.goat{display:block;margin:0 auto;border:solid var(--color-primary)}.float{position:fixed;bottom:70px;right:20px}@media(max-width:480px){.float{display:none}}.e-content table{display:block;overflow-x:auto}.e-content .truth-table{display:table}table{border-collapse:collapse;border-spacing:0;width:100%;border:none}th,td{padding:var(--spacing-xs)var(--spacing-sm);text-align:left;border-bottom:var(--border-width-thin)solid var(--color-border-light)}th{font-family:var(--font-mono);font-size:var(--font-size-sm);border-bottom-width:var(--border-width-medium);border-bottom-color:var(--color-primary)}tr:hover{background-color:var(--color-bg-hover)}.logo img{border:none;opacity:1;max-width:100%;border-bottom:var(--border-width-medium)solid var(--color-bg)}.logo img:hover{margin-bottom:0;border-bottom:var(--border-width-medium)solid var(--color-primary)}.logo a{border-bottom:none}.logo a:hover{background-color:var(--color-bg);color:var(--color-bg)}.navbox{text-align:right;line-height:2}@media(max-width:480px){.logo img{display:none}.navbox{text-align:center;margin:auto}}.tags a{border-bottom:var(--border-width-thick)solid var(--color-primary)}.tags a:hover{color:var(--color-inverse);background-color:var(--color-primary-hover)}.soc:hover{color:var(--color-inverse)}.feather{max-height:15px}.icon{max-height:1.3em;border:none;display:inline-flex;position:relative;top:7px}footer nav[aria-label=Footer]{float:right;position:relative}applause-button svg{max-height:none}.draft-label{color:var(--color-border);text-decoration:none;padding:2px 4px;margin-left:6px;background-color:var(--color-bg-label)}.wine-label{color:var(--color-border);text-decoration:none;padding:2px 4px;background-color:var(--color-bg-label)}.wine-header::before{color:var(--color-primary);content:""}.wine-review{padding:12px;display:block}.wine-review .left{display:inline;margin-right:18px}.wine-review .left img{width:200px;padding:4px}.wine-review .right{display:inline;position:absolute;text-align:left;max-width:600px}.wine-header{margin-top:0;margin-bottom:0}code{background-color:var(--color-bg-code);font-family:var(--font-mono);font-weight:300;font-size:var(--font-size-code);padding:.1em .2em}pre{line-height:var(--line-height-code);overflow-x:auto;padding:var(--spacing-sm);white-space:pre-wrap;overflow-wrap:break-word}.highlight{border:var(--border-width-thin)dashed var(--color-primary);position:relative}.highlight,.highlight pre{background-color:var(--color-bg)!important}.highlight pre ::selection{background:rgba(255,255,255,.2);color:inherit}pre code{background-color:initial;color:inherit;font-size:var(--font-size-code);font-weight:300;padding:0}.highlight pre code[class*=language-]::before{background:var(--color-bg-dark);color:var(--color-inverse-alt);font-size:var(--font-size-code);letter-spacing:.025rem;padding:.1rem .5rem;position:absolute;right:0;text-align:right;text-transform:uppercase;top:0}.highlight pre code[class=language-javaScript]::before,.highlight pre code[class=language-js]::before{content:"js"}.highlight pre code[class*=language-yml]::before,.highlight pre code[class*=language-yaml]::before{content:"yaml"}.highlight pre code[class*=language-shell]::before,.highlight pre code[class*=language-bash]::before,.highlight pre code[class*=language-sh]::before{content:"shell"}.highlight pre code[class*=language-json]::before{content:"json"}.highlight pre code[class*=language-python]::before,.highlight pre code[class*=language-py]::before{content:"py"}.highlight pre code[class*=language-css]::before{content:"css"}.highlight pre code[class*=language-go]::before{content:"Go"}.highlight pre code[class*=language-md]::before{content:"Markdown"}.copy-code-btn{position:absolute;top:0;right:0;z-index:1;padding:.3rem .5rem;background:0 0;color:var(--color-text-faded);border:none;cursor:pointer;font-size:var(--font-size-code);line-height:1;display:inline-flex;align-items:center;transition:color var(--transition-fast)}.copy-code-btn:hover{color:var(--color-primary)}.has-copy-btn pre code[class*=language-]::before{right:2rem}.chroma{background-color:initial;color:var(--color-text)}.chroma .hl{background-color:var(--color-primary-light)}.chroma .lnt,.chroma .ln{color:var(--color-text-faded)}.chroma .c,.chroma .c1,.chroma .ch,.chroma .cm,.chroma .cp,.chroma .cpf,.chroma .cs{color:var(--color-text-faded);font-style:italic}.chroma .k,.chroma .kc,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr,.chroma .kt,.chroma .ow{color:var(--color-primary);font-weight:600}.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .sd,.chroma .s2,.chroma .se,.chroma .sh,.chroma .si,.chroma .sx,.chroma .sr,.chroma .s1,.chroma .ss{color:var(--color-primary)}.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo{color:var(--color-primary)}.chroma .nb,.chroma .bp,.chroma .nc,.chroma .nf,.chroma .fm,.chroma .nd,.chroma .ne,.chroma .nn,.chroma .nt,.chroma .na,.chroma .vc,.chroma .vg,.chroma .vi,.chroma .vm,.chroma .nl{color:var(--color-text);font-weight:600}.chroma .gi{background-color:var(--color-primary-light)}.chroma .gd{color:var(--color-text-faded);text-decoration:line-through}.chroma .gh,.chroma .gu{color:var(--color-text-faded);font-weight:600}.chroma .err,.chroma .gr{color:var(--color-primary);text-decoration:underline wavy}@media(max-width:480px){code,pre code,.highlight pre code[class*=language-]::before{font-size:var(--font-size-code)!important}}img{max-width:100%;height:auto}main img{display:block;margin:0 auto;border:solid var(--color-primary)}.loader{animation:spin 5s linear infinite}@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}figure{box-sizing:border-box;display:inline-block;margin:0;max-width:100%}figure img{max-height:500px}@media screen and (min-width:600px){figure{padding:0 40px}}figure h4{font-size:var(--spacing-md);margin:0;margin-bottom:var(--spacing-md)}figure h4::before{content:"↳ "}.caption{text-align:center}.caption-arrow{color:var(--maincolor)}.caption-text{color:var(--color-text-faded);font-style:italic}.color-theme-picker{position:fixed;inset:0;background-color:rgba(0,0,0,.5);z-index:var(--z-modal);display:flex;align-items:center;justify-content:center}.color-theme-picker.hidden{display:none}.color-theme-modal{background:var(--color-bg);border:var(--border-width-medium)solid var(--color-primary);padding:var(--spacing-lg);max-width:400px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:var(--shadow-md)}.color-theme-header{text-align:center;margin-bottom:var(--spacing-lg);font-size:var(--font-size-h1);font-weight:700;color:var(--color-text)}.color-theme-menu{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-sm)}.color-theme-option{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);border:var(--border-width-thin)solid var(--color-border-light);cursor:pointer;transition:all var(--transition-normal);background:var(--color-inverse-alt)}.color-theme-option:hover{background-color:var(--color-bg-hover);border-color:var(--color-primary);transform:translateY(-1px)}.color-preview{width:24px;height:24px;border:var(--border-width-medium)solid var(--color-border-light);flex-shrink:0}.color-theme-option span{font-size:var(--font-size-xs);color:var(--color-text);font-weight:500}#color-theme-button{border-bottom:var(--border-width-medium)solid var(--color-primary)}#color-theme-button:hover{background-color:var(--color-primary-hover);color:var(--color-bg)}@media(max-width:480px){.color-theme-modal{padding:var(--spacing-md);max-width:90%}.color-theme-menu{grid-template-columns:1fr;gap:var(--spacing-sm)}.color-theme-option span{font-size:.8rem}.color-preview{width:20px;height:20px}}.burrow-columns{display:flex;flex-wrap:wrap;gap:var(--spacing-xl);margin:var(--spacing-xl)0}.burrow-column{flex:1 1 calc(50% - var(--spacing-md));min-width:0}.burrow-column>*:first-child{margin-top:0}.burrow-column>*:last-child{margin-bottom:0}@media screen and (max-width:768px){.burrow-column{flex:1 1 100%}.burrow-columns{gap:var(--spacing-lg)}}#cal-box{border:solid var(--color-primary);text-align:center;width:50%;margin:20px auto}#cal-box #calendar-navigation{display:flex;justify-content:space-between;margin-bottom:10px}#cal-box input[type=button]{background:0 0;color:var(--color-text);border:none;cursor:pointer;font-size:16px;padding:5px 10px}#cal-box table{width:100%;table-layout:fixed}#cal-box th,#cal-box td{padding:5px;text-align:center;width:calc(100%/10);box-sizing:border-box}#cal-box th{font-size:22px}#cal-box td{font-size:var(--font-size-base)}#cal-box td:hover::after{content:attr(data-gregorian);position:absolute;background-color:var(--color-inverse-alt);padding:2px;font-size:var(--font-size-base)}#cal-box .current-day{text-decoration:underline 2px var(--color-primary);color:var(--color-primary)}#cal-box .fixed-box{position:relative;text-align:center;left:10rem;width:300px;outline:solid 2px var(--color-primary)}#cal-box .fixed-box.collapsed{height:0;overflow:hidden}@media print{header,footer,.navbox,.reading-progress-bar,.support-widget,.color-theme-modal,.skip-link,.continue-reading-section,.tags,.translation-select,.comment-form-wrap,#lbwrapper{display:none!important}body,.content{color:#000;background:#fff}.content{max-width:100%;margin:0;padding:0}article{max-width:100%}a{color:#000;border-bottom:none!important;background-color:initial!important}.e-content a[href^=http]::after{content:" (" attr(href)")";font-size:.8em;font-family:sans-serif;color:#555}.e-content a[href^="#"]::after{content:none}h1,h2,h3,h4,h5,h6{page-break-after:avoid;break-after:avoid}p,blockquote,figure,pre,table{page-break-inside:avoid;break-inside:avoid}img{max-width:100%!important;page-break-inside:avoid;break-inside:avoid}pre{border:1px solid #ccc;padding:.5em;white-space:pre-wrap;word-wrap:break-word}blockquote{border-left:3px solid #000;margin-left:0;padding-left:1em}hr{border:none;border-top:1px solid #ccc}}.skip-link{position:absolute;top:-100%;left:0;z-index:var(--z-overlay);padding:var(--spacing-sm)var(--spacing-md);background:var(--color-primary);color:var(--color-inverse);border-bottom:none;font-family:var(--font-mono);font-size:var(--font-size-sm)}.skip-link:focus{top:0;background:var(--color-primary);color:var(--color-inverse)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.float-right{float:right;margin:0 0 var(--spacing-md)var(--spacing-lg);max-width:40%}@media(max-width:600px){.float-right{float:none;max-width:100%;margin:0 0 var(--spacing-md)}}.text-justify,.text-justify p{text-align:justify;hyphens:auto}.custom-details{border:var(--border-width-thin)solid var(--color-border-light);margin:var(--spacing-md)0}.custom-details summary{padding:var(--spacing-md);background-color:var(--color-bg-code);cursor:pointer;user-select:none}.custom-details summary:hover{background-color:var(--color-bg-hover)}.details-content{padding:var(--spacing-md)}.custom-details>summary{list-style:none}.custom-details>summary::-webkit-details-marker{display:none}.custom-details>summary::after{content:'▼';float:right;transform:rotate(0);transition:transform var(--transition-normal)}.custom-details[open]>summary::after{transform:rotate(180deg)}.aside-note{margin:var(--spacing-lg)0;padding-left:var(--spacing-md);font-style:italic;line-height:var(--line-height-base);border-left:var(--border-width-thick)solid}.aside-note p{margin:0}.loading-spinner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:50px;height:50px;border:5px solid rgba(0,0,0,.1);border-top:5px solid var(--color-bg-dark);border-radius:var(--border-radius-full);animation:spin 1s linear infinite}.llms-link,.llms-full-link{display:inline-block;color:var(--color-text-faded);font-style:italic;text-decoration:none;font-size:.9rem;font-weight:400;border-bottom:none}.llms-link:hover,.llms-full-link:hover{background-color:initial;color:var(--color-text-light)}.llms-letter{display:inline-block;transition:transform var(--transition-normal)}.llms-link:hover .llms-letter,.llms-full-link:hover .llms-letter{animation:jumpLetter .6s ease infinite}.llms-link:hover .llms-letter:nth-child(1),.llms-full-link:hover .llms-letter:nth-child(1){animation-delay:0s}.llms-link:hover .llms-letter:nth-child(2),.llms-full-link:hover .llms-letter:nth-child(2){animation-delay:.05s}.llms-link:hover .llms-letter:nth-child(3),.llms-full-link:hover .llms-letter:nth-child(3){animation-delay:.1s}.llms-link:hover .llms-letter:nth-child(4),.llms-full-link:hover .llms-letter:nth-child(4){animation-delay:.15s}.llms-link:hover .llms-letter:nth-child(5),.llms-full-link:hover .llms-letter:nth-child(5){animation-delay:.2s}.llms-link:hover .llms-letter:nth-child(6),.llms-full-link:hover .llms-letter:nth-child(6){animation-delay:.25s}.llms-link:hover .llms-letter:nth-child(7),.llms-full-link:hover .llms-letter:nth-child(7){animation-delay:.3s}.llms-link:hover .llms-letter:nth-child(8),.llms-full-link:hover .llms-letter:nth-child(8){animation-delay:.35s}.llms-link:hover .llms-letter:nth-child(9),.llms-full-link:hover .llms-letter:nth-child(9){animation-delay:.4s}.llms-link:hover .llms-letter:nth-child(10),.llms-full-link:hover .llms-letter:nth-child(10){animation-delay:.45s}.llms-link:hover .llms-letter:nth-child(11),.llms-full-link:hover .llms-letter:nth-child(11){animation-delay:.5s}.llms-link:hover .llms-letter:nth-child(12),.llms-full-link:hover .llms-letter:nth-child(12){animation-delay:.55s}.llms-link:hover .llms-letter:nth-child(13),.llms-full-link:hover .llms-letter:nth-child(13){animation-delay:.6s}.copy-as-markdown{color:var(--color-text-faded);font-size:.9rem;margin-left:5px;display:none}.copy-as-markdown button{background:0 0;border:none;color:var(--color-text-faded);cursor:pointer;font-size:.9rem;padding:0}@keyframes jumpLetter{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}.translation-select{appearance:none;background:0 0;border:none;border-bottom:var(--border-width-medium)solid var(--color-primary);margin-left:.25em;padding:0 1em 2px 0;font:inherit;color:inherit;cursor:pointer;line-height:1;vertical-align:baseline;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:100%}.translation-select:hover{background-color:var(--color-primary-hover);color:var(--color-inverse)}