.light-layer[data-astro-cid-vbahypgd]{z-index:0;pointer-events:none;opacity:0;mix-blend-mode:multiply;background-image:radial-gradient(circle,#14141380 1px,#0000 1.2px),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:24px 24px,200px 200px;position:fixed;inset:0}body:not([data-theme=dark]) .light-layer[data-astro-cid-vbahypgd]{opacity:.22}body:not([data-theme=dark]) .background[data-astro-cid-vbahypgd]{display:none}body.theme-switching,body.theme-switching *,body.theme-switching :before,body.theme-switching :after{transition:background-color .18s,border-color .18s,color .18s}@media (prefers-reduced-motion:reduce){body.theme-switching,body.theme-switching *,body.theme-switching :before,body.theme-switching :after{transition:none}}html{width:100%;overflow-x:hidden}body,h1,h2,h3,h4,h5,h6,p,blockquote,pre,hr,dl,dd,ol,ul,figure{margin:0;padding:0}body{color:#2b2a26;color-scheme:light;touch-action:manipulation;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-webkit-font-feature-settings:"kern" 1;-moz-font-feature-settings:"kern" 1;-o-font-feature-settings:"kern" 1;font-feature-settings:"kern" 1;font-kerning:normal;box-sizing:border-box;background:#faf9f5;min-height:100vh;font:400 17px/1.7 Roboto,sans-serif;position:relative;overflow-x:hidden}h1,h2,h3,h4,h5,h6,p,blockquote,pre,ul,ol,dl,figure{margin-top:10px;margin-bottom:10px}strong,b{color:#141413;font-weight:700}hr{border-style:solid;border-color:#e3e0d8;border-bottom-width:0}kbd{-webkit-border-radius:3px;-moz-border-radius:3px;color:#141413;text-shadow:0 1px #fff;border:1px solid #e3e0d8;border-radius:2px;margin:0 .1em;padding:.01em .4em;font-family:Consolas,monospace;font-size:14px;font-weight:700;line-height:1.4;display:inline-block}img{vertical-align:middle;-webkit-user-drag:none;text-align:center;max-width:100%;margin:0 auto}figure{position:relative}figure>img{display:block;position:relative}figcaption{text-align:center;font-size:13px}ul{list-style:none}ul li{text-align:-webkit-match-parent;display:list-item}ul li:before{content:"﹣";width:1.2em;margin-left:-1.3em;font-weight:700;display:inline-block;position:relative;top:-1px}ol{counter-reset:li;list-style:none}ol li{counter-increment:li;position:relative}ol li:before{content:counter(li);text-align:right;direction:rtl;width:1em;margin-left:-1.6em;margin-right:.5em;font-size:14px;font-weight:700;display:inline-block}ul,ol{margin-top:0;margin-left:30px}li{padding-top:1px;padding-bottom:1px}li:before{color:#141413}li>ul,li>ol{margin-top:0;margin-bottom:2px}h1,h2,h3,h4,h5,h6{color:#141413;font-weight:700}h1+ul,h1+ol,h2+ul,h2+ol,h3+ul,h3+ol,h4+ul,h4+ol,h5+ul,h5+ol,h6+ul,h6+ol{margin-top:10px}@media screen and (width<=768px){h1,h2,h3,h4,h5,h6{scroll-margin-top:65px}}h1>a,h2>a,h3>a,h4>a,h5>a,h6>a,h1>a:hover,h2>a:hover,h3>a:hover,h4>a:hover,h5>a:hover,h6>a:hover{border:none;text-decoration:none}a{color:inherit;text-decoration-color:var(--link-underline)}a:hover{color:#b3603f}del,em{color:inherit}blockquote{color:#6b6a63;text-align:left;background:0 0;border:none;border-left:2px solid #cfcabb;margin-left:0;margin-right:0;padding:2px 0 2px 20px;font-size:.92em;font-style:normal;line-height:1.8}blockquote>:last-child{margin-top:0;margin-bottom:0}.wrapper{max-width:-webkit-calc(780px - (30px * 2));z-index:1;max-width:720px;margin-left:auto;margin-right:auto;padding-left:30px;padding-right:30px;position:relative}@media screen and (width<=768px){.wrapper{max-width:-webkit-calc(780px - (30px));max-width:750px;padding-left:20px;padding-right:20px}.wrapper.blurry{animation:.2s ease-in forwards blur}}u{text-decoration-color:#cfcabb}sup{border-radius:10%;margin-right:2px;font-size:small;position:relative;top:-3px;left:2px}.overflow-table{overflow-x:auto}table{border-collapse:collapse;width:100%;margin-top:15px;font-size:14px}table thead{color:#141413;border-bottom:1px solid #e3e0d8;font-weight:700}table th,table td,table tr{border:1px solid #e3e0d8;padding:2px 7px}.post-item:after,.navbar:after,.wrapper:after{content:"";clear:both;display:table}mark,::selection{color:#141413;background:#f0dfd0}.gist table,.gist table tr,.gist table td{border:0}.navbar{max-width:720px;height:auto;max-width:-webkit-calc(780px - (30px * 2));z-index:3;border-bottom:none;margin-left:auto;margin-right:auto;padding:15px 30px;position:relative}.background{z-index:0;pointer-events:none;width:100%;height:100%;position:fixed;top:0;left:0}.menu{user-select:none}.menu a#mode{float:left;clear:both;opacity:.7;z-index:1;position:relative;top:6px;left:8px;transform:scale(1)}.menu a#mode:hover{cursor:pointer;opacity:.85;color:inherit}.menu a#mode:active{transform:scale(.9)}.menu a#mode .mode-moon{display:block}.menu a#mode .mode-moon line{stroke:#141413;fill:none}.menu a#mode .mode-moon circle{fill:#141413;stroke:#141413}.menu a#mode .mode-sunny{display:none}.menu a#mode .mode-sunny line{stroke:#f5f3ec;fill:none}.menu a#mode .mode-sunny circle{fill:none;stroke:#f5f3ec}.menu .trigger{float:right}.menu .menu-icon{background:0 0;border:none;margin:0;padding:0;display:none}.menu .menu-link{color:#141413;opacity:.7;letter-spacing:.3px;padding:5px 8px;line-height:2.25;text-decoration:none}.menu .menu-link:hover{opacity:1}.menu .menu-link.rss{outline:none;position:relative;bottom:-3px}@media screen and (width<=768px){.menu .menu-link{opacity:.8}}.menu .menu-link.active{opacity:1;font-weight:600}@media screen and (width<=768px){.menu{z-index:2;text-align:center;background-color:#0000;border-bottom:none;height:50px;position:fixed;top:0;left:0;right:0}.menu a#mode{-webkit-tap-highlight-color:transparent;padding:10px;top:4px;left:2px}.menu .menu-icon{cursor:pointer;text-align:center;z-index:1;box-sizing:border-box;-webkit-tap-highlight-color:transparent;width:50px;height:50px;padding:13px;line-height:0;display:block;position:absolute;right:0}.menu .menu-icon>svg{fill:#141413;opacity:.7}.menu .menu-icon:hover>svg{opacity:1}.menu .menu-icon:active{transform:scale(.9)}.menu .trigger{clear:both;visibility:hidden}.menu.menu-open .trigger{visibility:visible;background-color:#faf9f5;flex-direction:row;justify-content:center;align-items:center;width:100%;height:100vh;animation:.2s ease-in forwards fadein;display:flex;position:fixed;top:0}.menu .menu-link{box-sizing:border-box;-webkit-tap-highlight-color:transparent;font-size:1.1em;display:block}.menu .menu-link:not(:last-child){margin:0;padding:2px 0}}.author{text-align:center;margin-top:5.3rem;margin-bottom:6.2rem}@media screen and (width<=768px){.author{margin-bottom:3em}}.author .author-avatar{object-fit:cover;user-select:none;-webkit-animation:.5s ease-in forwards fadein;opacity:1;background-color:#fff;border-radius:100%;width:100px;height:100px;animation:1s ease-in-out forwards fadein}.author .author-name{margin-bottom:2px;font-size:1.7em}.author .author-bio{opacity:.9;max-width:393px;margin:0 auto;line-height:1.688}.author .content{justify-content:center;height:30px;line-height:30px;display:flex;overflow:hidden}.author .content__text{margin:0}.author .content__list{height:fit-content;margin-left:4px;animation-name:change;animation-duration:10s;animation-iteration-count:infinite}.author .content__list__item{margin:0;line-height:30px}@keyframes change{0%,12.66%,to{transform:translate(0,0)}22.66%,35.32%{transform:translateY(-25%)}45.32%,57.98%{transform:translateY(-50%)}67.98%,80.64%{transform:translateY(-75%)}}.posts-item-note{color:#141413;margin-bottom:5px;font-size:16px;font-weight:700}.post-item{padding-top:8px;padding-bottom:8px;display:flex}.posts-more{opacity:.5;color:inherit;margin-top:1em;font-size:.9em;text-decoration:none;display:block}.posts-more:hover{opacity:.8}.post-item .post-item-date{color:#141413;min-width:110px;padding-right:10px;font-weight:700}@media screen and (width<=768px){.post-item .post-item-date{font-size:16px}}.post-item .post-item-title{border:0;margin:0;padding:0;font-size:16px;font-weight:400}.post-item .post-item-title a{color:#2b2a26;-webkit-tap-highlight-color:#0000}.post-item .post-item-title a:hover,.post-item .post-item-title a:focus{color:#141413}.footer{text-align:center;margin-top:5em;margin-bottom:2em}@media screen and (width<=768px){.footer{margin-top:3em}}.footer span.footer_item{color:#141413;opacity:.8;font-size:14px;font-weight:700}.footer a.footer_item{color:#141413;opacity:.8;text-decoration:none}.footer a.footer_item:not(:last-child){margin-left:5px;margin-right:5px}.footer a.footer_item:not(:last-child):hover{opacity:1}.footer .letter-image{cursor:pointer;align-items:center;width:72px;height:20px;display:flex;position:relative}.footer .animated-mail{width:15px;height:15px;transition:all .4s;position:absolute}.footer .animated-mail .body{z-index:2;border-top:0 solid #0000;border-bottom:11px solid #cc785c;border-left:15px solid #0000;border-right:0 solid #0000;width:0;height:0;position:absolute;bottom:0}.footer .animated-mail .top-fold{transform-origin:50% 0;z-index:2;border:7.5px solid #0000;border-top:5.5px solid #a85c40;border-bottom-width:0;width:0;height:0;transition:transform .4s .4s,z-index .2s .4s;position:absolute;top:5px}.footer .animated-mail .back-fold{z-index:0;background:#a85c40;width:15px;height:11px;position:absolute;bottom:0}.footer .animated-mail .left-fold{z-index:2;border:5.5px solid #0000;border-left:7.5px solid #bd6a4d;border-right-width:0;width:0;height:0;position:absolute;bottom:0}.footer .animated-mail .letter{z-index:1;background:#faf9f5;border:1px solid #14141338;width:11px;height:6.5px;transition:all .4s .2s;position:absolute;bottom:0;left:1px;overflow:hidden}.footer .animated-mail .letter .letter-title{background:#d1936f;width:50%;height:1px;margin-top:1px;margin-left:.5px}.footer .animated-mail .letter .letter-context{background:#d1936f;width:40%;height:1px;margin-top:1px;margin-left:.5px}.footer .animated-mail .letter .letter-stamp{opacity:.3;background:#d1936f;border-radius:100%;width:2.5px;height:2.5px;margin-top:2px;margin-left:7.5px}.footer .letter-image:hover .animated-mail{transform:translateY(4px)}.footer .letter-image:hover .animated-mail .top-fold{z-index:0;transition:transform .4s,z-index .2s;transform:rotateX(180deg)}.footer .letter-image:hover .animated-mail .letter{height:18px}.footer .letter-image:hover .shadow{width:25px}.not-found{text-align:center;flex-direction:column;justify-content:center;height:75vh;display:flex}.not-found .title{color:#141413;text-shadow:1px 0 #b3603f;font-size:5em;font-weight:700;line-height:1.1}.not-found .phrase{color:#2b2a26}.not-found .solution{color:#b3603f;letter-spacing:.5px}.not-found .solution:hover{color:#8f4a30}.search-article{margin-bottom:50px;position:relative}.search-article label[for=search-input]{position:relative;top:10px;left:11px}.search-article #search{position:relative}.search-article input[type=search]{box-sizing:border-box;color:#2b2a26;-webkit-appearance:none;background-color:#8080801a;border:1px solid #8080801a;border-radius:5px;outline:none;width:100%;height:40px;padding:10px 10px 10px 36px;font-size:16px;position:relative;top:0;left:0}.search-article input[type=search]::-webkit-input-placeholder{color:gray}.search-article input[type=search]::-webkit-search-decoration{display:none}.search-article input[type=search]::-webkit-search-results-decoration{display:none}#search-results{text-align:center}#search-results li{text-align:left}.archive-tags{height:auto}.archive-tags .tag-item{background-color:#8080801a;border:1px solid #8080801a;border-radius:2px;padding:1px 3px}@media screen and (width<=768px){.wrapper.post{padding-left:15px;padding-right:15px}}.header .tags{letter-spacing:.5px;margin-left:3px}.header .tags .tag{font-size:12px;font-weight:700}.header .tags .tag:hover{text-decoration:none}.header .header-title{margin-top:10px;margin-bottom:20px;font-size:2em;line-height:1.2}.header .header-title.center{text-align:center}@media screen and (width<=768px){.header .header-title{font-size:1.9em}}.post-meta{color:#6b6a63;padding-top:3px;line-height:1.3}.post-meta time{margin-right:1.5em;position:relative}.post-meta time:after{content:" ";background:#e3e0d8;width:12px;height:2px;position:absolute;bottom:1px;right:-20px}.post-meta span[itemprop=author]{border-bottom:1px dotted #e3e0d8}@media screen and (width<=567px){.page-content{font-size:16px}}.page-content iframe{text-align:center}.page-content figure img{border-radius:2px}.page-content figure figcaption{margin-top:5px;font-size:14px;font-style:italic}.page-content a{color:#b3603f;text-decoration:none}.page-content a[target=_blank]:after{content:" ↗";vertical-align:baseline;font-size:14px;line-height:0;position:relative;bottom:5px}.page-content a:hover{color:#8f4a30}.page-content a:focus{color:#b3603f}.page-content>p{margin:0;padding-top:15px;padding-bottom:15px}.page-content ul.task-list{margin:0;list-style:none}.page-content ul.task-list li:before{content:""}.page-content ul.task-list li input[type=checkbox]{margin-right:10px}.page-content dl dt{font-weight:700}.page-content h1,.page-content h2,.page-content h3,.page-content h4,.page-content h5,.page-content h6{color:#141413;margin-top:30px;margin-bottom:0;font-weight:700}.page-content h1 .anchor-head,.page-content h2 .anchor-head,.page-content h3 .anchor-head,.page-content h4 .anchor-head,.page-content h5 .anchor-head,.page-content h6 .anchor-head{opacity:0;outline:none;position:relative}.page-content h1 .anchor-head:before,.page-content h2 .anchor-head:before,.page-content h3 .anchor-head:before,.page-content h4 .anchor-head:before,.page-content h5 .anchor-head:before,.page-content h6 .anchor-head:before{content:"#";width:1em;font-weight:700;position:absolute;right:-3px}.page-content h1{font-size:28px}.page-content h2{font-size:24px}.page-content h3{border-bottom:1px solid #e3e0d8;padding-bottom:4px;font-size:20px}.page-content h4{font-size:19px}.page-content h5{font-size:17px}.page-content h6{font-size:15px}.post-nav{border-top:1px solid #e3e0d8;margin-top:2em;line-height:1.4;display:flex;position:relative}.post-nav .post-nav-item{border-bottom:0;padding-bottom:10px;font-weight:700}.post-nav .post-nav-item .post-title{color:#141413}.post-nav .post-nav-item:hover .post-title,.post-nav .post-nav-item:focus .post-title{color:#8f4a30;opacity:.9}.post-nav .post-nav-item .nav-arrow{color:#6b6a63;margin-bottom:3px;font-size:14px;font-weight:400}.post-nav .post-nav-item{box-sizing:border-box;width:50%;padding-top:10px;text-decoration:none}.post-nav .post-nav-item:nth-child(odd){padding-left:0;padding-right:20px}.post-nav .post-nav-item:nth-child(2n){text-align:right;padding-left:20px;padding-right:0}@media screen and (width<=768px){.post-nav{font-size:14px;display:block}.post-nav .post-nav-item{width:100%;display:block}.post-nav .post-nav-item:nth-child(2n){border-top:1px solid #e3e0d8;border-left:0;padding-left:0}}.post-updated-at{font-family:Ubuntu mono,"monospace"}.toc-sidebar{z-index:10;scrollbar-width:none;-ms-overflow-style:none;width:200px;max-height:70vh;position:fixed;top:50%;right:calc(50vw - 610px);overflow-y:auto;transform:translateY(-50%)}.toc-sidebar::-webkit-scrollbar{display:none}@media screen and (width<=1200px){.toc-sidebar{display:none}}.toc-nav .toc-title{color:#6b6a63;text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid #e3e0d8;margin-bottom:8px;padding-bottom:6px;font-size:13px;font-weight:700}.toc-nav .toc-list{margin:0;padding:0;list-style:none}.toc-nav .toc-list .toc-item{margin:0;padding:0}.toc-nav .toc-list .toc-item:before{content:none}.toc-nav .toc-list .toc-item a{color:#6b6a63;border-left:2px solid #0000;padding:4px 0 4px 12px;font-size:13px;line-height:1.4;text-decoration:none;transition:color .2s,border-color .2s;display:block}.toc-nav .toc-list .toc-item a.active{color:#b3603f;border-left-color:#b3603f;font-weight:600}@keyframes fadein{0%{opacity:.2}to{opacity:.8}}@keyframes blur{0%{filter:blur()}to{filter:blur(4px)}}.embed-responsive{max-width:100%;height:0;margin-top:20px;padding-bottom:56.25%;position:relative;overflow:hidden}.embed-responsive iframe,.embed-responsive object,.embed-responsive embed{width:100%;height:100%;position:absolute;top:0;left:0}code{text-rendering:optimizelegibility;font-feature-settings:"calt" 1;font-variant-ligatures:normal;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;font-family:JetBrains Mono,SF Mono,Menlo,Consolas,monospace;font-size:inherit}:not(pre)>code,code.highlighter-rouge{color:#b3603f;background-color:#8080801f;border:1px solid #8080801f;border-radius:4px;margin:0 .1em;padding:.15em .4em;font-size:.88em}pre.highlight,pre.astro-code,pre{border:1px solid #8080802e;border-radius:8px;margin:1.4em 0;padding:18px 20px;font-size:.92em;display:block;position:relative;overflow-x:auto;box-shadow:0 1px 2px #0000000a}@media screen and (width<=768px){pre.highlight,pre.astro-code,pre{border-radius:6px;padding:14px 16px;font-size:.85em}}pre.highlight>code,pre.astro-code>code,pre>code{width:100%;max-width:50rem;color:inherit;background:0 0;border:0;margin-left:auto;margin-right:auto;padding:0;line-height:1.6;display:block}pre.astro-code[data-language]:not([data-language=plaintext]):before{content:attr(data-language);letter-spacing:.04em;color:#ffffff59;text-transform:uppercase;pointer-events:none;font-family:JetBrains Mono,SF Mono,Consolas,monospace;font-size:.7em;font-weight:600;position:absolute;top:8px;right:12px}.highlight table td{padding:5px}.highlight table pre{margin:0}.highlight,.highlight .w{color:#fbf1c7}.highlight .err{color:#fb4934;font-weight:700}.highlight .c,.highlight .cd,.highlight .cm,.highlight .c1,.highlight .cs{color:#928374;font-style:italic}.highlight .cp{color:#8ec07c}.highlight .nt{color:#fb4934}.highlight .o,.highlight .ow,.highlight .p,.highlight .pi{color:#fbf1c7}.highlight .gi{color:#b8bb26;background-color:#282828}.highlight .gd{color:#fb4934;background-color:#282828}.highlight .gh{color:#b8bb26;font-weight:700}.highlight .k,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .kv{color:#fb4934}.highlight .kc{color:#d3869b}.highlight .kt{color:#fabd2f}.highlight .kd{color:#fe8019}.highlight .s,.highlight .sb,.highlight .sc,.highlight .sd,.highlight .s2,.highlight .sh,.highlight .sx,.highlight .s1,.highlight .si,.highlight .sr{color:#b8bb26;font-style:italic}.highlight .se{color:#fe8019}.highlight .nn,.highlight .nc{color:#8ec07c}.highlight .no{color:#d3869b}.highlight .na{color:#b8bb26}.highlight .m,.highlight .mf,.highlight .mh,.highlight .mi,.highlight .il,.highlight .mo,.highlight .mb,.highlight .mx{color:#d3869b}.highlight .ss{color:#83a598}body[data-theme=dark]{color:#dedbd0;color-scheme:dark;background:#191816}body:after{display:none}body[data-theme=dark] h1,body[data-theme=dark] h2,body[data-theme=dark] h3,body[data-theme=dark] h4,body[data-theme=dark] h5,body[data-theme=dark] h6{color:#f5f3ec}body[data-theme=dark] table thead{color:#f5f3ec;border-color:#2d2b26}body[data-theme=dark] table th,body[data-theme=dark] table td,body[data-theme=dark] table tr{border-color:#2d2b26}body[data-theme=dark] .page-content a{color:var(--ink)}body[data-theme=dark] .page-content a:hover,body[data-theme=dark] .page-content a:active,body[data-theme=dark] .page-content a:focus{color:var(--accent-strong)}body[data-theme=dark] .page-content h3{border-color:#2d2b26}body[data-theme=dark] .page-content h1 .anchor-head,body[data-theme=dark] .page-content h2 .anchor-head,body[data-theme=dark] .page-content h3 .anchor-head,body[data-theme=dark] .page-content h4 .anchor-head,body[data-theme=dark] .page-content h5 .anchor-head,body[data-theme=dark] .page-content h6 .anchor-head{color:#d9836a}body[data-theme=dark] :not(pre)>code,body[data-theme=dark] code.highlighter-rouge{color:#e0a58c;background-color:#ffffff14;border-color:#ffffff14}body[data-theme=dark] kbd{color:#f5f3ec;text-shadow:0 1px #191816;border-color:#2d2b26}body[data-theme=dark] hr{border-color:#2d2b26}body[data-theme=dark] .post-meta{color:#918e84}body[data-theme=dark] .post-meta time:after{background-color:#2d2b26}body[data-theme=dark] .post-meta span[itemprop=author]{border-color:#2d2b26}body[data-theme=dark] a{color:inherit;text-decoration-color:var(--link-underline)}body[data-theme=dark] a:hover{color:#d9836a}body[data-theme=dark] a:focus{outline-color:#d9836a8c}body[data-theme=dark] li:before{color:#f5f3ec}body[data-theme=dark] blockquote{color:#918e84;border-left-color:#57544c}body[data-theme=dark] strong,body[data-theme=dark] b{color:#f5f3ec}body[data-theme=dark] .navbar{border-color:#2d2b26}body[data-theme=dark] .navbar .menu a#mode .mode-sunny{display:block}body[data-theme=dark] .navbar .menu a#mode .mode-moon{display:none}@media screen and (width<=768px){body[data-theme=dark] .navbar .menu{background-color:#0000;border-color:#0000}body[data-theme=dark] .navbar .menu .menu-icon>svg{fill:#f5f3ec}body[data-theme=dark] .navbar .menu.menu-open .trigger{background:#191816}}body[data-theme=dark] .post-item .post-item-date{color:#f5f3ec}body[data-theme=dark] .post-item .post-item-title a{color:#dedbd0}body[data-theme=dark] .post-item .post-item-title a:hover,body[data-theme=dark] .post-item .post-item-title a:focus{color:#f5f3ec}body[data-theme=dark] .post-nav{border-color:#2d2b26}body[data-theme=dark] .post-nav .post-nav-item{font-weight:700}body[data-theme=dark] .post-nav .post-nav-item .post-title{color:#f5f3ec;opacity:.9}body[data-theme=dark] .post-nav .post-nav-item:hover .post-title,body[data-theme=dark] .post-nav .post-nav-item:focus .post-title{color:#e8a48c}body[data-theme=dark] .post-nav .post-nav-item .nav-arrow{color:#918e84}@media screen and (width<=768px){body[data-theme=dark] .post-nav .post-nav-item:nth-child(2n){border-color:#2d2b26}}body[data-theme=dark] .footer span.footer_item,body[data-theme=dark] .footer a.footer_item:not(:last-child){color:#f5f3ec}body[data-theme=dark] .footer .footer_copyright{color:#918e84;opacity:1}body[data-theme=dark] .not-found .title{color:#f5f3ec;text-shadow:1px 0 #d9836a}body[data-theme=dark] .not-found .phrase{color:#dedbd0}body[data-theme=dark] .not-found .solution{color:#d9836a}body[data-theme=dark] .not-found .solution:hover{color:#e8a48c}body[data-theme=dark] .search-article input[type=search]{color:#dedbd0}body[data-theme=dark] .search-article input[type=search]::-webkit-input-placeholder{color:#808080cc}body[data-theme=dark] .toc-nav .toc-title{color:#918e84;border-color:#2d2b26}body[data-theme=dark] .toc-nav .toc-list .toc-item a{color:#918e84}body[data-theme=dark] .toc-nav .toc-list .toc-item a:hover{color:#f5f3ec}body[data-theme=dark] .toc-nav .toc-list .toc-item a.active{color:#d9836a;border-left-color:#d9836a}body[data-theme=dark] #canvas{width:100%;height:100%}:root{--bg:#faf9f5;--bg-soft:#f0eee6;--ink:#141413;--body:#2b2a26;--muted:#6b6a63;--rule:#e3e0d8;--rule-soft:#ebe8df;--accent:#cc785c;--accent-strong:#b3603f;--link-underline:#cc785c73;--font-sans:"Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, system-ui, "Segoe UI", Roboto, "Apple SD Gothic Neo", sans-serif;--font-mono:"JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;--measure:672px;--gutter:30px;--dg-1:#cc785c;--dg-1-soft:#f6e7e0;--dg-1-ink:#9c4f31;--dg-2:#7d9083;--dg-2-soft:#e7ece7;--dg-2-ink:#47594d;--dg-3:#8b7fa3;--dg-3-soft:#ece8f1;--dg-3-ink:#55496d;--dg-4:#b8913f;--dg-4-soft:#f4eeda;--dg-4-ink:#785a17;--dg-5:#6b8494;--dg-5-soft:#e5ecef;--dg-5-ink:#3b5664}body[data-theme=dark]{--bg:#191816;--bg-soft:#201f1c;--ink:#f5f3ec;--body:#dedbd0;--muted:#918e84;--rule:#2d2b26;--rule-soft:#24231f;--accent:#d9836a;--accent-strong:#e8a48c;--link-underline:#d9836a80;--dg-1:#d9836a;--dg-1-soft:#2e2320;--dg-1-ink:#e8a48c;--dg-2:#93a897;--dg-2-soft:#232823;--dg-2-ink:#b4c5b7;--dg-3:#a294bb;--dg-3-soft:#262330;--dg-3-ink:#c2b5d7;--dg-4:#d0a95c;--dg-4-soft:#2c2720;--dg-4-ink:#e3c88a;--dg-5:#86a0b0;--dg-5-soft:#20272b;--dg-5-ink:#a9c3d1}body{font-family:var(--font-sans);letter-spacing:-.003em;color:var(--body);background:var(--bg);text-rendering:optimizelegibility;word-break:keep-all;overflow-wrap:break-word;font-size:18px;font-weight:400;line-height:1.75}h1,h2,h3,h4,h5,h6{color:var(--ink);word-break:keep-all;overflow-wrap:break-word}p,li,dd,dt,blockquote,figcaption,td,th,summary,label{word-break:keep-all;overflow-wrap:break-word}h1,h2{font-family:var(--font-sans);letter-spacing:-.014em;font-weight:600}h3,h4,h5,h6{font-family:var(--font-sans);letter-spacing:-.008em;font-weight:600}p{overflow-wrap:break-word}small{font-size:13px}hr{border:0;border-top:1px solid var(--rule);margin:3.5rem 0}::selection,mark{color:var(--ink);background:#cc785c38}body[data-theme=dark] ::selection,body[data-theme=dark] mark{background:#d9836a4d}.wrapper{max-width:var(--measure);padding-left:var(--gutter);padding-right:var(--gutter)}.navbar{max-width:1280px;padding:20px 40px 16px}@media screen and (width<=768px){.wrapper,.wrapper.post,.navbar{padding-left:22px;padding-right:22px}.navbar{padding-top:12px}.menu .menu-link{font-size:1.15rem}}.menu .menu-link{letter-spacing:-.004em;color:var(--ink);opacity:.85;padding:4px 0;font-size:16px;font-weight:500;line-height:1.75}.menu .menu-link:not(:last-child){margin-right:28px}.menu .menu-link:hover{opacity:1;color:var(--accent-strong)}.menu .menu-link.active{opacity:1;color:var(--ink);font-weight:600}body[data-theme=dark] .navbar .menu .menu-link{color:var(--ink)}.header{margin-top:5.5rem;margin-bottom:3rem}@media screen and (width<=768px){.header{margin-top:3.25rem;margin-bottom:2.25rem}}.header .tags{letter-spacing:.1em;color:var(--accent-strong);margin-bottom:1.1rem;margin-left:0;font-size:11.5px}.header .tags .tag{font-family:var(--font-sans);color:var(--accent-strong);font-size:11.5px;font-weight:500;text-decoration:none}.header .tags .tag:hover{color:var(--ink)}.header .header-title{font-family:var(--font-sans);letter-spacing:-.02em;color:var(--ink);margin:0 0 1.4rem;font-size:clamp(1.95rem,1.3rem + 2.5vw,2.8rem);font-weight:600;line-height:1.14}@media screen and (width<=768px){.header .header-title{font-size:1.95rem;line-height:1.2}}.post-meta{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding-top:0;font-size:12.5px;line-height:1.5}.post-meta time{margin-right:0}.post-meta time:after{content:none;display:none}.post-meta span{text-transform:none;letter-spacing:.02em;border-bottom:0}.post-meta span:before{content:"·";color:var(--muted);opacity:.6;margin:0 .6em}body[data-theme=dark] .post-meta span{border-bottom:0}.post-updated-at{font-family:var(--font-mono);font-size:.9em}.page-content{margin-bottom:5rem;padding-top:0;font-size:18px;line-height:1.78}@media screen and (width<=567px){.page-content{font-size:16.5px;line-height:1.76}}.page-content>p{margin:0 0 1.5em;padding:0}.page-content>:first-child:not(header){margin-top:0}.page-content h1,.page-content h2,.page-content h3,.page-content h4,.page-content h5,.page-content h6{color:var(--ink);margin-bottom:.75rem}.page-content h1{margin-top:3.6rem;font-size:1.8rem;font-weight:600;line-height:1.3}.page-content h2{margin-top:3.4rem;font-size:1.45rem;font-weight:600;line-height:1.4}.page-content h3{border-bottom:0;margin-top:2.6rem;padding-bottom:0;font-size:1.2rem;font-weight:600;line-height:1.45}.page-content h4{margin-top:2.1rem;font-size:1.05rem;font-weight:600}.page-content h5,.page-content h6{color:var(--muted);letter-spacing:.02em;margin-top:1.9rem;font-size:.95rem;font-weight:600}body[data-theme=dark] .page-content h3{border-bottom:0}.page-content h1 .anchor-head,.page-content h2 .anchor-head,.page-content h3 .anchor-head,.page-content h4 .anchor-head,.page-content h5 .anchor-head,.page-content h6 .anchor-head{color:var(--accent);font-weight:400}.page-content h1:hover .anchor-head,.page-content h2:hover .anchor-head,.page-content h3:hover .anchor-head,.page-content h4:hover .anchor-head,.page-content h5:hover .anchor-head,.page-content h6:hover .anchor-head{color:var(--accent);opacity:.75}.page-content a{color:var(--ink);text-decoration:underline 1px;text-decoration-color:var(--link-underline);text-underline-offset:.2em;transition:color .15s,text-decoration-color .15s}.page-content a:hover,.page-content a:focus{color:var(--accent-strong);text-decoration-color:var(--accent-strong)}.page-content a[target=_blank]:after{content:" ↗";color:var(--muted);font-size:.72em;bottom:3px}.page-content ul,.page-content ol{margin:0 0 1.5em 1.25em}.page-content li{padding:.14em 0}.page-content ul li:before{content:"•";width:1.1em;color:var(--muted);margin-left:-1.1em;font-weight:400;top:0}.page-content ol li:before{color:var(--muted);margin-left:-1.7em;font-size:.86em;font-weight:500}.page-content li>ul,.page-content li>ol{margin-top:.3em;margin-bottom:.3em}blockquote{border-left:2px solid var(--accent);color:var(--muted);margin:2rem 0;padding:.1em 0 .1em 1.5rem;font-size:1em;line-height:1.7}body[data-theme=dark] blockquote{border-left-color:var(--accent);color:var(--muted)}.page-content math[display=block]{max-width:100%;margin:2.2rem auto;overflow:auto hidden}.page-content .katex{text-decoration:none}.page-content img,.page-content figure img{border-radius:3px;margin:2.4rem auto;display:block}.page-content img[data-intrinsic]{height:auto}.page-content figure{margin:2.4rem 0}.page-content figure img{margin:0 auto}.page-content figure figcaption{color:var(--muted);text-align:center;margin-top:.85rem;font-size:13px;font-style:normal;line-height:1.6}.page-content .img-grid{grid-template-columns:repeat(2,minmax(0,168px));justify-content:center;gap:.9rem 1.1rem;margin:2.4rem auto;display:grid}.page-content .img-grid img,.page-content .img-grid img[data-intrinsic]{width:100%;height:auto;margin:0}.page-content .img-grid-label{letter-spacing:.01em;color:var(--muted);text-align:center;font-size:13px;line-height:1.5}.page-content table{margin:2.2rem 0;font-size:15px;line-height:1.6}.page-content table thead{color:var(--ink);border-bottom:1px solid var(--ink);font-weight:600}.page-content table th,.page-content table td{border:0;border-bottom:1px solid var(--rule);text-align:left;vertical-align:top;padding:.6em .9em .6em 0}.page-content table tr{border:0}.page-content table th:last-child,.page-content table td:last-child{padding-right:0}body[data-theme=dark] .page-content table thead{border-bottom-color:var(--muted)}body[data-theme=dark] .page-content table th,body[data-theme=dark] .page-content table td{border-bottom-color:var(--rule)}:not(pre)>code,code.highlighter-rouge{font-family:var(--font-mono);background-color:var(--bg-soft);border-color:var(--rule);color:var(--accent-strong);border-radius:3px;padding:.12em .36em;font-size:.85em}body[data-theme=dark] :not(pre)>code,body[data-theme=dark] code.highlighter-rouge{background-color:var(--bg-soft);border-color:var(--rule);color:var(--accent-strong)}pre.highlight,pre.astro-code,pre{border-color:var(--rule);box-shadow:none;border-radius:6px;margin:2rem 0;padding:20px 22px;font-size:.86em}body[data-theme=dark] pre.highlight,body[data-theme=dark] pre.astro-code,body[data-theme=dark] pre{border-color:var(--rule);box-shadow:none}pre.highlight>code,pre.astro-code>code,pre>code{line-height:1.7}pre.astro-code[data-language]:not([data-language=plaintext]):before{font-family:var(--font-mono);letter-spacing:.08em;color:#ffffff47;font-size:.68em;font-weight:500;top:10px;right:14px}.post-nav{border-top:1px solid var(--rule);margin-top:4rem;padding-top:0;line-height:1.45}.post-nav .post-nav-item{padding-top:1.6rem;padding-bottom:1.6rem;font-weight:400}.post-nav .post-nav-item .nav-arrow{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.5rem;font-size:11px}.post-nav .post-nav-item .post-title,body[data-theme=dark] .post-nav .post-nav-item .post-title{font-family:var(--font-sans);color:var(--ink);opacity:1;word-break:keep-all;font-size:1rem;font-weight:500}.post-nav .post-nav-item:hover .post-title,.post-nav .post-nav-item:focus .post-title,body[data-theme=dark] .post-nav .post-nav-item:hover .post-title,body[data-theme=dark] .post-nav .post-nav-item:focus .post-title{color:var(--accent-strong);opacity:1}body[data-theme=dark] .post-nav{border-top-color:var(--rule)}@media screen and (width<=768px){.post-nav{font-size:15px}.post-nav .post-nav-item:nth-child(2n){border-top:1px solid var(--rule)}body[data-theme=dark] .post-nav .post-nav-item:nth-child(2n){border-top-color:var(--rule)}}.toc-sidebar{width:200px;max-height:calc(100vh - 220px);inset:150px auto auto calc(50vw - 590px);transform:none}.toc-nav .toc-title{font-family:var(--font-sans);letter-spacing:.14em;color:var(--muted);border-bottom:1px solid var(--rule);margin-bottom:.7rem;padding-bottom:.7rem;font-size:10.5px;font-weight:600}.toc-nav .toc-list .toc-item a{color:var(--muted);border-left:0;padding:.4rem 0;font-size:12.5px;line-height:1.5}.toc-nav .toc-list .toc-item a:hover{color:var(--ink)}.toc-nav .toc-list .toc-item a.active,body[data-theme=dark] .toc-nav .toc-list .toc-item a.active{color:var(--accent-strong);border-left:0;font-weight:500}.toc-nav .toc-list .toc-item.toc-h3 a{padding-left:.8rem;font-size:12px}body[data-theme=dark] .toc-nav .toc-title{border-bottom-color:var(--rule)}body[data-theme=dark] .toc-nav .toc-list .toc-item a{border-left:0}.footer{border-top:0;margin-top:5em;margin-bottom:2em;padding-top:0}@media screen and (width<=768px){.footer{margin-top:3em}}.footer-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:.15rem .7rem;display:flex}.footer-sep{color:var(--muted);opacity:.5;font-size:13px}.footer .letter-label{white-space:nowrap;margin-left:21px}.footer .letter-image,body[data-theme=dark] .footer .letter-image{color:var(--muted);letter-spacing:.02em;font-size:13px;text-decoration:none}.footer .letter-image:hover,body[data-theme=dark] .footer .letter-image:hover{color:var(--accent-strong)}.footer span.footer_item,.footer a.footer_item{letter-spacing:.02em;color:var(--muted);opacity:1;font-size:13px;font-weight:400}body[data-theme=dark] .footer span.footer_item,body[data-theme=dark] .footer a.footer_item:not(:last-child){color:var(--muted)}.footer .footer_copyright{color:var(--muted);opacity:1;margin-top:.5rem;font-size:12.5px;display:block}body[data-theme=dark] .footer .footer_copyright{color:var(--muted)}.author .content{letter-spacing:.01em;color:var(--muted);font-size:14px}.posts-item-note{font-family:var(--font-sans);letter-spacing:normal;text-transform:none;color:var(--muted);margin:0 0 .6rem;font-size:14.5px;font-weight:500}.post-item{border-bottom:0;align-items:baseline;gap:1.1rem;padding:.5rem 0}.post-item .post-item-date,body[data-theme=dark] .post-item .post-item-date{letter-spacing:.04em;font-variant-numeric:tabular-nums;min-width:104px;color:var(--muted);padding-right:0;font-size:12.5px;font-weight:400}.post-item .post-item-title{font-family:var(--font-sans);word-break:keep-all;font-size:1rem;font-weight:450;line-height:1.5}.post-item .post-item-title a,body[data-theme=dark] .post-item .post-item-title a{color:var(--ink);text-decoration:none}.post-item .post-item-title a:hover,.post-item .post-item-title a:focus,body[data-theme=dark] .post-item .post-item-title a:hover,body[data-theme=dark] .post-item .post-item-title a:focus{color:var(--accent-strong)}@media screen and (width<=768px){.post-item{padding:.5rem 0;display:block}.post-item .post-item-date,body[data-theme=dark] .post-item .post-item-date{margin-bottom:.15rem;font-size:11.5px;display:block}}.page-content .posts-more{letter-spacing:.02em;opacity:1;color:var(--muted);margin-top:1.6rem;font-size:13px;text-decoration:none;display:block}.page-content .posts-more:hover{color:var(--accent-strong);opacity:1}.archive-tags{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.archive-tags .tag-item,.page-content .archive-tags .tag-item{border:1px solid var(--rule);letter-spacing:.02em;color:var(--muted);background:0 0;border-radius:999px;padding:.28em .7em;font-size:12.5px;text-decoration:none;transition:color .15s,border-color .15s}.page-content .archive-tags .tag-item:hover,.page-content .archive-tags .tag-item:focus{color:var(--accent-strong);border-color:var(--accent-strong);text-decoration:none}.search-article{margin-bottom:3rem}.search-article input[type=search]{border:1px solid var(--rule);height:46px;color:var(--body);font-size:15px;font-family:var(--font-sans);background-color:#0000;border-radius:8px}.search-article input[type=search]:focus{border-color:var(--accent)}body[data-theme=dark] .search-article input[type=search]{color:var(--body);border-color:var(--rule)}.not-found .title,body[data-theme=dark] .not-found .title{font-family:var(--font-sans);color:var(--ink);text-shadow:none;font-size:4.5em;font-weight:600}.not-found .phrase,body[data-theme=dark] .not-found .phrase{color:var(--body)}.not-found .solution,body[data-theme=dark] .not-found .solution{color:var(--accent-strong);letter-spacing:.02em}
