/*
  PaperMod v8+
  License: MIT https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE
  Copyright (c) 2020 nanxiaobei and adityatelange
  Copyright (c) 2021-2026 adityatelange
*/
:root{--gap:24px;--content-gap:20px;--nav-width:1024px;--main-width:720px;--header-height:60px;--footer-height:60px;--radius:8px;--theme:rgb(255, 255, 255);--entry:rgb(255, 255, 255);--primary:rgb(30, 30, 30);--secondary:rgb(108, 108, 108);--tertiary:rgb(214, 214, 214);--content:rgb(31, 31, 31);--code-block-bg:rgb(28, 29, 33);--code-bg:rgb(245, 245, 245);--border:rgb(238, 238, 238);color-scheme:light}:root[data-theme=dark]{--theme:rgb(29, 30, 32);--entry:rgb(46, 46, 51);--primary:rgb(218, 218, 219);--secondary:rgb(155, 156, 157);--tertiary:rgb(65, 66, 68);--content:rgb(196, 196, 197);--code-block-bg:rgb(46, 46, 51);--code-bg:rgb(55, 56, 62);--border:rgb(51, 51, 51);color-scheme:dark}.list{background:var(--code-bg)}[data-theme=dark] .list{background:var(--theme)}*,::after,::before{box-sizing:border-box}html{-webkit-tap-highlight-color:transparent;overflow-y:scroll;-webkit-text-size-adjust:100%;text-size-adjust:100%}a,button,body,h1,h2,h3,h4,h5,h6{color:var(--primary)}body{font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,Oxygen,Ubuntu,Cantarell,open sans,helvetica neue,sans-serif;font-size:18px;line-height:1.6;word-break:break-word;background:var(--theme)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section,table{display:block}h1,h2,h3,h4,h5,h6{line-height:1.2}h1,h2,h3,h4,h5,h6,p{margin-top:0;margin-bottom:0}ul{padding:0}a{text-decoration:none}body,figure,ul{margin:0}table{width:100%;border-collapse:collapse;border-spacing:0;overflow-x:auto;word-break:keep-all}button,input,textarea{padding:0;font:inherit;background:0 0;border:0}input,textarea{outline:0}button,input[type=button],input[type=submit]{cursor:pointer}input:-webkit-autofill,textarea:-webkit-autofill{box-shadow:0 0 0 50px var(--theme)inset}img{display:block;max-width:100%}.not-found{position:absolute;left:0;right:0;display:flex;align-items:center;justify-content:center;height:80%;font-size:160px;font-weight:700}.archive-posts{width:100%;font-size:16px}.archive-year{margin-top:40px}.archive-year:not(:last-of-type){border-bottom:2px solid var(--border)}.archive-month{display:flex;align-items:flex-start;padding:10px 0}.archive-month-header{margin:25px 0;width:200px}.archive-month:not(:last-of-type){border-bottom:1px solid var(--border)}.archive-entry{position:relative;padding:5px;margin:10px 0}.archive-entry-title{margin:5px 0;font-weight:400}.archive-count,.archive-meta{color:var(--secondary);font-size:14px}.footer,.top-link{font-size:12px;color:var(--secondary)}.footer{max-width:calc(var(--main-width) + var(--gap) * 2);margin:auto;padding:calc((var(--footer-height) - var(--gap))/2)var(--gap);text-align:center;line-height:24px}.footer span{margin-inline-start:1px;margin-inline-end:1px}.footer span:last-child{white-space:nowrap}.footer a{color:inherit;border-bottom:1px solid var(--secondary)}.footer a:hover{border-bottom:1px solid var(--primary)}.top-link{visibility:hidden;position:fixed;bottom:60px;right:30px;z-index:99;background:var(--tertiary);width:42px;height:42px;padding:12px;border-radius:64px;transition:visibility .5s,opacity .8s linear}.top-link,.top-link svg{filter:drop-shadow(0 0 0 var(--theme))}.footer a:hover,.top-link:hover{color:var(--primary)}.top-link:focus,#theme-toggle:focus{outline:0}.nav{display:flex;flex-wrap:wrap;justify-content:space-between;max-width:calc(var(--nav-width) + var(--gap) * 2);margin-inline-start:auto;margin-inline-end:auto;line-height:var(--header-height)}.nav a{display:block}.logo,#menu{display:flex;margin:auto var(--gap)}.logo{flex-wrap:inherit}.logo a{font-size:24px;font-weight:700}.logo a img,.logo a svg{display:inline;vertical-align:middle;pointer-events:none;transform:translate(0,-10%);border-radius:6px;margin-inline-end:8px}button#theme-toggle{font-size:26px;margin:auto 4px}[data-theme=dark] #moon{display:none}[data-theme=light] #sun{display:none}#menu{list-style:none;word-break:keep-all;overflow-x:auto;white-space:nowrap}#menu li+li{margin-inline-start:var(--gap)}#menu a{font-size:16px}#menu .active{font-weight:500;border-bottom:2px solid}.lang-switch li,.lang-switch ul,.logo-switches{display:inline-flex;margin:auto 4px}.lang-switch{display:flex;flex-wrap:inherit}.lang-switch a{margin:auto 3px;font-size:16px;font-weight:500}.logo-switches{flex-wrap:inherit}.main{position:relative;min-height:calc(100vh - var(--header-height) - var(--footer-height));max-width:calc(var(--main-width) + var(--gap) * 2);margin:auto;padding:var(--gap)}.page-header h1{font-size:40px}.pagination{display:flex}.pagination a{color:var(--theme);font-size:13px;line-height:36px;background:var(--primary);border-radius:calc(36px/2);padding:0 16px}.pagination .next{margin-inline-start:auto}.social-icons a{display:inline-flex;padding:10px}.social-icons a svg{height:26px;width:26px}code{direction:ltr}div.highlight,pre{position:relative}.copy-code{display:none;position:absolute;top:4px;right:4px;color:rgba(255,255,255,.8);background:rgba(78,78,78,.8);border-radius:var(--radius);padding:0 5px;font-size:14px;user-select:none}div.highlight:hover .copy-code,pre:hover .copy-code{display:block}.first-entry{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:320px;margin:var(--gap)0 calc(var(--gap) * 2)}.first-entry .entry-header{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.first-entry .entry-header h1{font-size:34px;line-height:1.3}.first-entry .entry-content{margin:14px 0;font-size:16px;-webkit-line-clamp:3}.first-entry .entry-footer{font-size:14px}.home-info .entry-content{-webkit-line-clamp:unset}.post-entry{position:relative;margin-bottom:var(--gap);padding:var(--gap);background:var(--entry);border-radius:var(--radius);transition:transform .1s;border:1px solid var(--border)}.post-entry:active{transform:scale(.96)}.tag-entry .entry-cover{display:none}.entry-header h2{font-size:24px;line-height:1.3}.entry-content{margin:8px 0;color:var(--secondary);font-size:14px;line-height:1.6;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.entry-footer{color:var(--secondary);font-size:13px}.entry-link{position:absolute;left:0;right:0;top:0;bottom:0}.entry-hint{color:var(--secondary)}.entry-hint-parent{display:flex;justify-content:space-between}.entry-cover{font-size:14px;margin-bottom:var(--gap);text-align:center}.entry-cover img{border-radius:var(--radius);width:100%;height:auto}.entry-cover a{box-shadow:0 1px 0 var(--primary)}.page-header,.post-header{margin:24px auto var(--content-gap)}.post-title{margin-bottom:2px;font-size:40px}.post-description{margin-top:10px;margin-bottom:5px}.post-meta,.breadcrumbs{color:var(--secondary);font-size:14px}.breadcrumbs{display:flex;flex-wrap:wrap;align-items:center}.i18n_list{display:inline-flex}.post-meta .i18n_list li{list-style:none;margin:auto 3px}.breadcrumbs a{font-size:16px}.post-content{color:var(--content);margin:30px 0}.post-content h3,.post-content h4,.post-content h5,.post-content h6{margin:24px 0 16px}.post-content h1{margin:40px auto 32px;font-size:40px}.post-content h2{margin:32px auto 24px;font-size:32px}.post-content h3{font-size:24px}.post-content h4{font-size:16px}.post-content h5{font-size:14px}.post-content h6{font-size:12px}.post-content a,.post-meta .i18n_list li a,.toc a:hover{box-shadow:0 1px;box-decoration-break:clone;-webkit-box-decoration-break:clone}.post-content a code{margin:auto 0;border-radius:0;box-shadow:0 -1px 0 var(--primary)inset}.post-content del{text-decoration:line-through}.post-content dl,.post-content ol,.post-content p,.post-content figure,.post-content ul{margin-bottom:var(--content-gap)}.post-content ol,.post-content ul{padding-inline-start:20px}.post-content li{margin-top:5px}.post-content li p{margin-bottom:0}.post-content dl{display:flex;flex-wrap:wrap;margin:0}.post-content dt{width:25%;font-weight:700}.post-content dd{width:75%;margin-inline-start:0;padding-inline-start:10px}.post-content dd~dd,.post-content dt~dt{margin-top:10px}.post-content table{margin-bottom:var(--content-gap)}.post-content table th,.post-content table:not(.highlighttable,.highlight table,.gist .highlight) td{min-width:80px;padding:8px 5px;line-height:1.5;border-bottom:1px solid var(--border)}.post-content table th{text-align:start}.post-content table:not(.highlighttable) td code:only-child{margin:auto 0}.post-content .highlight table{border-radius:var(--radius)}.post-content .highlight:not(table){margin:10px auto;background:var(--code-block-bg)!important;border-radius:var(--radius);direction:ltr}.post-content li>.highlight{margin-inline-end:0}.post-content ul pre{margin-inline-start:calc(var(--gap) * -2)}.post-content .highlight pre{margin:0}.post-content .highlighttable{table-layout:fixed}.post-content .highlighttable td:first-child{width:40px}.post-content .highlighttable td .linenodiv{padding-inline-end:0!important}.post-content .highlighttable td .highlight,.post-content .highlighttable td .linenodiv pre{margin-bottom:0}.post-content code{margin:auto 4px;padding:4px 6px;font-size:.78em;line-height:1.5;background:var(--code-bg);border-radius:2px}.post-content pre code{display:grid;margin:auto 0;padding:10px;color:#d5d5d6;background:var(--code-block-bg)!important;border-radius:var(--radius);overflow-x:auto;word-break:break-all}.post-content blockquote{margin:20px 0;padding:0 14px;border-inline-start:3px solid var(--primary)}.post-content hr{margin:30px 0;height:2px;background:var(--tertiary);border:0}.post-content iframe{max-width:100%}.post-content img{border-radius:4px;margin:1rem 0}.post-content img[src*="#center"]{margin:1rem auto}.post-content figure.align-center{text-align:center}.post-content figure>figcaption{color:var(--primary);font-size:16px;font-weight:700;margin:8px 0 16px}.post-content figure>figcaption>p{color:var(--secondary);font-size:14px;font-weight:400}.toc{margin-bottom:var(--content-gap);border:1px solid var(--border);background:var(--code-bg);border-radius:var(--radius);padding:.4em}[data-theme=dark] .toc{background:var(--entry)}.toc details summary{cursor:zoom-in;margin-inline-start:10px;user-select:none}.toc details[open] summary{cursor:zoom-out}.toc .details{display:inline;font-weight:500}.toc .inner{margin:5px 20px;padding:0 10px;opacity:.9}.toc li ul{margin-inline-start:var(--gap)}.toc summary:focus{outline:0}.post-footer{margin-top:var(--content-gap)}.post-footer>*{margin-bottom:10px}.post-tags{display:flex;flex-wrap:wrap;gap:10px}.post-tags li{display:inline-block}.post-tags a,.share-buttons,.paginav{border-radius:var(--radius);background:var(--code-bg);border:1px solid var(--border)}.post-tags a{display:block;padding:0 14px;color:var(--secondary);font-size:14px;line-height:34px;background:var(--code-bg)}.post-tags a:hover,.paginav a:hover{background:var(--border)}.share-buttons{padding:10px;display:flex;justify-content:center;overflow-x:auto;gap:10px}.share-buttons li,.share-buttons a{display:inline-flex}.share-buttons a:not(:last-of-type){margin-inline-end:12px}h1:hover .anchor,h2:hover .anchor,h3:hover .anchor,h4:hover .anchor,h5:hover .anchor,h6:hover .anchor{display:inline-flex;color:var(--secondary);margin-inline-start:8px;font-weight:500;user-select:none}.paginav{display:flex;line-height:30px}.paginav a{padding-inline-start:14px;padding-inline-end:14px;border-radius:var(--radius)}.paginav .title{letter-spacing:1px;text-transform:uppercase;font-size:small;color:var(--secondary)}.paginav .prev,.paginav .next{width:50%}.paginav span:hover:not(.title){box-shadow:0 1px}.paginav .next{margin-inline-start:auto;text-align:right}[dir=rtl] .paginav .next{text-align:left}h1>a>svg{display:inline}img.in-text{display:inline;margin:auto}.buttons,.main .profile{display:flex;justify-content:center}.main .profile{align-items:center;min-height:calc(100vh - var(--header-height) - var(--footer-height) - (var(--gap) * 2));text-align:center}.profile .profile_inner{display:flex;flex-direction:column;align-items:center;gap:10px}.profile img{border-radius:50%}.buttons{flex-wrap:wrap;max-width:400px}.button{background:var(--tertiary);border-radius:var(--radius);margin:8px;padding:6px;transition:transform .1s}.button-inner{padding:0 8px}.button:active{transform:scale(.96)}#searchbox input{padding:4px 10px;width:100%;color:var(--primary);font-weight:700;border:2px solid var(--tertiary);border-radius:var(--radius)}#searchbox input:focus{border-color:var(--secondary)}#searchResults li{list-style:none;border-radius:var(--radius);padding:10px;margin:10px 0;position:relative;font-weight:500}#searchResults{margin:10px 0;width:100%}#searchResults li:active{transition:transform .1s;transform:scale(.98)}#searchResults a{position:absolute;width:100%;height:100%;top:0;left:0;outline:none}#searchResults .focus{transform:scale(.98);border:2px solid var(--tertiary)}.terms-tags li{display:inline-block;margin:10px;font-weight:500}.terms-tags a{display:block;padding:3px 10px;background:var(--tertiary);border-radius:6px;transition:transform .1s}.terms-tags a:active{background:var(--tertiary);transform:scale(.96)}.bg{color:#cad3f5;background-color:#24273a}.chroma{color:#cad3f5;background-color:#24273a}.chroma .err{color:#ed8796}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#474733}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#8087a2}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#8087a2}.chroma .line{display:flex}.chroma .k{color:#c6a0f6}.chroma .kc{color:#f5a97f}.chroma .kd{color:#ed8796}.chroma .kn{color:#8bd5ca}.chroma .kp{color:#c6a0f6}.chroma .kr{color:#c6a0f6}.chroma .kt{color:#ed8796}.chroma .na{color:#8aadf4}.chroma .nb{color:#91d7e3}.chroma .bp{color:#91d7e3}.chroma .nc{color:#eed49f}.chroma .no{color:#eed49f}.chroma .nd{color:#8aadf4;font-weight:700}.chroma .ni{color:#8bd5ca}.chroma .ne{color:#f5a97f}.chroma .nf{color:#8aadf4}.chroma .fm{color:#8aadf4}.chroma .nl{color:#91d7e3}.chroma .nn{color:#f5a97f}.chroma .py{color:#f5a97f}.chroma .nt{color:#c6a0f6}.chroma .nv{color:#f4dbd6}.chroma .vc{color:#f4dbd6}.chroma .vg{color:#f4dbd6}.chroma .vi{color:#f4dbd6}.chroma .vm{color:#f4dbd6}.chroma .s{color:#a6da95}.chroma .sa{color:#ed8796}.chroma .sb{color:#a6da95}.chroma .sc{color:#a6da95}.chroma .dl{color:#8aadf4}.chroma .sd{color:#6e738d}.chroma .s2{color:#a6da95}.chroma .se{color:#8aadf4}.chroma .sh{color:#6e738d}.chroma .si{color:#a6da95}.chroma .sx{color:#a6da95}.chroma .sr{color:#8bd5ca}.chroma .s1{color:#a6da95}.chroma .ss{color:#a6da95}.chroma .m{color:#f5a97f}.chroma .mb{color:#f5a97f}.chroma .mf{color:#f5a97f}.chroma .mh{color:#f5a97f}.chroma .mi{color:#f5a97f}.chroma .il{color:#f5a97f}.chroma .mo{color:#f5a97f}.chroma .o{color:#91d7e3;font-weight:700}.chroma .ow{color:#91d7e3;font-weight:700}.chroma .c{color:#6e738d;font-style:italic}.chroma .ch{color:#6e738d;font-style:italic}.chroma .cm{color:#6e738d;font-style:italic}.chroma .c1{color:#6e738d;font-style:italic}.chroma .cs{color:#6e738d;font-style:italic}.chroma .cp{color:#6e738d;font-style:italic}.chroma .cpf{color:#6e738d;font-weight:700;font-style:italic}.chroma .gd{color:#ed8796;background-color:#363a4f}.chroma .ge{font-style:italic}.chroma .gr{color:#ed8796}.chroma .gh{color:#f5a97f;font-weight:700}.chroma .gi{color:#a6da95;background-color:#363a4f}.chroma .gs{font-weight:700}.chroma .gu{color:#f5a97f;font-weight:700}.chroma .gt{color:#ed8796}.chroma .gl{text-decoration:underline}.chroma{background-color:unset!important}.chroma .hl{display:flex}.chroma .lnt{padding:0 0 0 12px}.highlight pre.chroma code{padding:8px 0}.highlight pre.chroma .line .cl,.chroma .ln{padding:0 10px}.chroma .lntd:last-of-type{width:100%}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--tertiary);border:5px solid var(--theme);border-radius:var(--radius)}[data-theme=light] .list::-webkit-scrollbar-thumb{border:5px solid var(--code-bg)}::-webkit-scrollbar-thumb:hover{background:var(--secondary)}::-webkit-scrollbar:not(.highlighttable,.highlight table,.gist .highlight){background:var(--theme)}.post-content .highlighttable td .highlight pre code::-webkit-scrollbar{display:none}.post-content :not(table) ::-webkit-scrollbar-thumb{border:2px solid var(--code-block-bg);background:#717175}.post-content :not(table) ::-webkit-scrollbar-thumb:hover{background:#a3a3a5}.gist table::-webkit-scrollbar-thumb{border:2px solid #fff;background:#adadad}.gist table::-webkit-scrollbar-thumb:hover{background:#707070}.post-content table::-webkit-scrollbar-thumb{border-width:2px}@media screen and (min-width:768px){::-webkit-scrollbar{width:19px;height:11px}}@media screen and (max-width:768px){:root{--gap:14px}.profile img{transform:scale(.85)}.first-entry{min-height:260px}.archive-month{flex-direction:column}.archive-year{margin-top:20px}.footer{padding:calc((var(--footer-height) - var(--gap) - 10px)/2)var(--gap)}}@media screen and (max-width:900px){.list .top-link{transform:translateY(-5rem)}}@media screen and (max-width:340px){.share-buttons{justify-content:unset}}@media(prefers-reduced-motion){.terms-tags a:active,.button:active,.post-entry:active,.top-link,#searchResults .focus,#searchResults li:active{transform:none}}@import 'https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;600&display=swap';:root{--main-width:1024px;--radius:16px}.series-overlay-panel{scrollbar-width:none;-ms-overflow-style:none}.series-overlay-panel::-webkit-scrollbar{display:none}.post-content pre,.post-content code,.post-content pre code{font-family:ibm plex mono,cascadia code,sf mono,monospace!important;font-size:1rem!important;line-height:1.75!important;font-variant-ligatures:none;-webkit-font-smoothing:antialiased}.post-content :not(pre)>code{font-size:.95rem!important}.posts-grid-container{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem;margin-top:2rem}.posts-grid-container .post-entry{margin-bottom:0}@media(max-width:768px){.posts-grid-container{grid-template-columns:1fr;gap:1.5rem}}.post-single{max-width:70vw;width:100%;margin:0 auto}.post-entry{display:flex;flex-direction:column;height:100%;border:1px solid var(--border);border-radius:1.25rem;padding:1.5rem;transition:border-color .2s ease-in-out,box-shadow .2s ease-in-out,transform .2s ease-in-out;background-color:var(--theme)}.post-entry:hover{border-color:var(--primary);box-shadow:0 4px 12px rgba(0,0,0,.1);transform:translateY(-2px)}.post-entry .entry-cover{border-radius:1rem;overflow:hidden;margin-bottom:1rem}.post-entry .entry-cover img{width:100%;height:auto;object-fit:cover;transition:transform .3s ease-in-out}.post-entry:hover .entry-cover img{transform:scale(1.05)}.post-entry .entry-header{margin-bottom:1rem}.post-entry .entry-header h2{font-size:1.25rem;margin-bottom:.5rem}.post-entry .entry-content{font-size:.95rem;line-height:1.6;color:var(--secondary);flex-grow:1;margin-bottom:1rem}.post-entry .entry-footer{padding-top:1rem;margin-top:auto;border-top:1px solid var(--border);font-size:.85rem}.post-entry .entry-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.post-entry .entry-part{--part-dot:hsl(var(--part-hue, 210) 60% 50%);display:inline-flex;align-items:center;gap:.45rem;flex-shrink:0;padding:.3rem .8rem .3rem .65rem;border:1px solid var(--border);border-radius:999px;background:var(--entry);box-shadow:0 1px 2px rgba(0,0,0,4%);color:var(--primary);font-size:.8rem;font-weight:500;line-height:1.3;letter-spacing:.01em;white-space:nowrap;transition:border-color .2s ease-in-out}.post-entry .entry-part::before{content:"";width:.45rem;height:.45rem;border-radius:50%;background:var(--part-dot);box-shadow:0 0 0 3px hsl(var(--part-hue,210) 60% 50%/.15)}.post-entry:hover .entry-part{border-color:var(--tertiary)}.series-overlay{position:fixed;inset:0;z-index:999;visibility:hidden;opacity:0;transition:opacity .3s ease-in-out,visibility .3s ease-in-out}.series-overlay.open{visibility:visible;opacity:1}.series-overlay-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55)}.series-overlay-panel{position:absolute;top:0;right:0;height:100%;width:min(560px,92vw);padding:2rem 1.5rem;overflow-y:auto;overscroll-behavior:contain;transform:translateX(100%);transition:transform .35s cubic-bezier(.25,.8,.25,1)}.series-overlay-panel-bg{position:absolute;top:0;right:0;height:100%;width:min(560px,92vw);background-color:var(--theme);border-left:1px solid var(--border);box-shadow:-8px 0 30px rgba(0,0,0,.25);transform:translateX(100%);transition:transform .35s cubic-bezier(.25,.8,.25,1)}.series-overlay.open .series-overlay-panel-bg{transform:translateX(0)}.series-overlay.open .series-overlay-panel{transform:translateX(0)}.series-overlay-title{font-size:40px;margin:0 0 1.75rem;line-height:1.2}.series-overlay-close{position:absolute;top:1.75rem;right:1.5rem;background:0 0;border:none;font-size:1.75rem;line-height:1;color:var(--secondary);cursor:pointer}.series-overlay-close:hover{color:var(--primary)}.series-folders{display:flex;flex-direction:column;gap:1.25rem;margin-top:2.5rem}.series-folder{position:relative;height:140px;border-radius:1.25rem;border:1px solid var(--border);background-size:cover;background-position:50%;cursor:pointer;overflow:hidden;transform:translateZ(0);transition:transform .2s ease-in-out,box-shadow .2s ease-in-out}.series-folder:hover{transform:translateY(-3px)scale(1.01);box-shadow:0 8px 24px rgba(0,0,0,.25)}.series-folder-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;gap:.25rem;padding:1.25rem 1.5rem;background:linear-gradient(to top,rgba(0,0,0,.5) 20%,rgba(0,0,0,5%) 70%,rgba(0,0,0,.15))}.series-folder-title{font-size:1.3rem;font-weight:700;color:#fff}.series-folder-count{font-size:.85rem;color:rgba(255,255,255,.85)}.series-posts{margin-top:2.5rem;animation:series-fade-in .25s ease-in-out}@keyframes series-fade-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.series-posts-back{background:0 0;border:none;color:var(--secondary);font-size:.9rem;cursor:pointer;padding:0;margin-bottom:1rem}.series-posts-back:hover{color:var(--primary)}.series-posts-title{font-size:1.4rem;margin:0 0 1.25rem;color:var(--primary)}.series-posts-grid{display:flex;flex-direction:column;gap:1rem}.series-post-card{display:flex;align-items:center;gap:1rem;border:1px solid var(--border);border-radius:1rem;padding:.75rem;text-decoration:none;color:var(--content);transition:border-color .2s ease-in-out,transform .2s ease-in-out}.series-post-card:hover{border-color:var(--primary);transform:translateX(-4px)}.series-post-cover{flex:0 0 84px;height:60px;border-radius:.6rem;background-size:cover;background-position:50%;transform:translateZ(0)}.series-post-title{font-size:.95rem;line-height:1.4}.post-content img{display:block;margin-left:auto;margin-right:auto}.post-content table{width:100%!important;border-collapse:collapse!important;margin:1.5rem 0!important}.post-content table thead th,.post-content table tbody th{border:1px solid var(--border)!important;padding:16px 24px!important;text-align:center!important;vertical-align:middle!important}.post-content table tbody td{border:1px solid var(--border)!important;padding:16px 24px!important;text-align:left!important;vertical-align:middle!important}.post-content table thead th{background-color:var(--code-bg)!important;font-weight:600!important}.post-content table tbody tr:hover{background-color:var(--code-bg)!important}#searchbox input{padding:14px 18px;font-size:1.05rem;font-weight:400;color:var(--primary);background:var(--code-bg);border:1px solid var(--border);border-radius:10px;transition:border-color .18s,box-shadow .18s}#searchbox input::placeholder{color:var(--secondary);opacity:.6}#searchbox input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(128,128,128,.12)}.wiki-all,#searchResults{display:flex;flex-direction:column;gap:.55rem;margin:1.6rem 0 0;padding:0}.wiki-item,#searchResults li{display:flex;flex-direction:column;gap:4px;margin:0;padding:14px 18px;border:1px solid var(--border);border-radius:10px;background:0 0;list-style:none;position:relative;font-weight:400;text-decoration:none!important;color:var(--content);transition:border-color .18s}.wiki-item:hover,#searchResults li:hover,#searchResults .focus{border-color:var(--primary);transform:none}.wiki-item-title,#searchResults .entry-header{font-size:1.05rem;font-weight:600;color:var(--primary);margin:0}.wiki-item-desc{font-size:.9rem;color:var(--secondary);line-height:1.55}#searchResults a{position:absolute;inset:0;outline:none}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.home-section{margin-top:3rem}.home-section:first-of-type{margin-top:1.5rem}.home-section:first-of-type .home-section-head h2{font-size:2.6rem;line-height:1.15}.home-section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:1.25rem}.home-section-head h2{font-size:1.6rem;margin:0}.home-section-more{font-size:.9rem;color:var(--secondary)}.home-section-more:hover{color:var(--primary)}.home-series{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}.home-series-folder{display:block;height:150px;text-decoration:none}.home-recent-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--border)}.home-recent-list li{margin:0;border-bottom:1px solid var(--border)}.home-recent-item{display:flex;align-items:center;gap:1rem;margin:0 -.75rem;padding:.7rem .75rem;border-radius:.75rem;text-decoration:none;color:var(--content);transition:background-color .15s,transform .15s}.home-recent-item:hover{background-color:var(--code-bg);transform:translateX(3px)}.home-recent-chip{flex:none;display:inline-flex;align-items:center;gap:.55rem;padding:.2rem .85rem .2rem .2rem;border:1.5px solid color-mix(in srgb,var(--secondary) 45%,transparent);border-radius:999px;background:0 0;min-width:170px;transition:border-color .15s}.home-recent-item:hover .home-recent-chip{border-color:var(--primary)}.home-recent-chip-bare{min-width:0;padding:0;border-color:transparent}.home-recent-thumb{flex:0 0 32px;width:32px;height:32px;border-radius:50%;background-color:var(--border);background-size:cover;background-position:50%}.home-recent-series{font-size:.78rem;color:var(--secondary);white-space:nowrap}.home-recent-title{flex:auto;font-size:1.05rem;font-weight:600;color:var(--primary);line-height:1.45}.home-recent-item:hover .home-recent-date{color:var(--primary);opacity:1}.home-recent-date{flex:none;font-size:.82rem;font-variant-numeric:tabular-nums;color:var(--secondary);opacity:.85;letter-spacing:.02em}@media(max-width:768px){.home-series-folder{height:120px}.home-series-folder .series-folder-overlay{padding:.9rem 1rem}.home-series-folder .series-folder-title{font-size:1.05rem;line-height:1.25;word-break:keep-all}.home-series-folder .series-folder-count{font-size:.78rem}.home-section:first-of-type .home-section-head h2{font-size:2rem}.home-series{grid-template-columns:repeat(2,1fr);gap:1rem}.home-recent-item{flex-wrap:wrap;gap:.4rem .75rem}.home-recent-chip{min-width:0}.home-recent-date{margin-left:auto}.home-recent-title{flex-basis:100%;order:3}}@media(max-width:480px){.home-series{grid-template-columns:1fr}}.posts-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.posts-tab{background:0 0;border:1px solid var(--border);border-radius:999px;padding:.4rem .95rem;font-size:.9rem;color:var(--secondary);cursor:pointer;transition:color .15s,border-color .15s,background .15s}.posts-tab sup{margin-left:4px;font-size:.7rem;opacity:.7}.posts-tab:hover{color:var(--primary);border-color:var(--primary)}.posts-tab.is-active{color:var(--theme);background:var(--primary);border-color:var(--primary)}.posts-grid-container .post-entry[hidden]{display:none}.posts-pager{display:flex;justify-content:center;flex-wrap:wrap;gap:.4rem;margin:2.5rem 0 1rem}.posts-pager[hidden]{display:none}.posts-pager-btn{min-width:2.3rem;height:2.3rem;padding:0 .6rem;border:1px solid var(--border);border-radius:999px;background:var(--entry);color:var(--primary);font-size:.9rem;cursor:pointer;transition:border-color .2s ease-in-out}.posts-pager-btn:hover:not(:disabled){border-color:var(--primary)}.posts-pager-btn:disabled{cursor:default;opacity:.35}.posts-pager-btn.is-current{background:var(--primary);border-color:var(--primary);color:var(--theme);opacity:1}.arch-repos{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin-top:1.5rem}.arch-repo{display:flex;flex-direction:column;gap:.4rem;padding:1.25rem 1.4rem;border:1px solid var(--border);border-radius:1rem;background:var(--entry);transition:border-color .2s ease-in-out,transform .2s ease-in-out}.arch-repo:hover{border-color:var(--primary);transform:translateY(-2px)}.arch-repo-name{font-size:1.2rem;font-weight:700;letter-spacing:-.01em}.arch-repo-desc{color:var(--secondary);font-size:.9rem;line-height:1.5}.arch-repo-meta{margin-top:auto;color:var(--secondary);font-size:.78rem}.arch-tree{margin:1.2rem 0 2rem;padding:.8rem .9rem 1rem;border:1px solid var(--border);border-radius:1rem;background:var(--entry);font-size:.92rem}.arch-tools{display:flex;gap:.5rem;justify-content:flex-end;margin-bottom:.4rem}.arch-btn{padding:.25rem .8rem;border:1px solid var(--border);border-radius:999px;color:var(--secondary);font-size:.8rem}.arch-btn:hover{border-color:var(--primary);color:var(--primary)}.post-content .arch-node{margin:0}.arch-node>summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .55rem;padding:.45rem .6rem;border-radius:.6rem;cursor:pointer;list-style:none}.arch-node>summary::-webkit-details-marker{display:none}.arch-node>summary::before{content:"▸";width:.8rem;color:var(--secondary);font-size:.75rem;transition:transform .15s ease-in-out}.arch-node[open]>summary::before{transform:rotate(90deg)}.arch-node>summary:hover{background:var(--code-bg)}.arch-icon{width:1.2rem;text-align:center}.arch-name{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700;font-size:.9rem}.arch-dir>summary .arch-name,.arch-root>summary .arch-name,.arch-chart>summary .arch-name{color:var(--primary)}.arch-sum{flex-basis:100%;padding-left:2.35rem;color:var(--secondary);font-size:.85rem;line-height:1.5}.arch-children{margin-left:1.05rem;padding-left:.6rem;border-left:1px dashed var(--tertiary)}.arch-card{margin:.2rem .6rem .6rem 2.35rem;padding:.75rem .95rem;border-left:3px solid var(--tertiary);border-radius:0 .6rem .6rem 0;background:var(--code-bg);font-size:.86rem;line-height:1.6}.arch-root>.arch-card{border-left-color:#5b9bd5}.arch-chart>.arch-card{border-left-color:#4caf82}.arch-ci>.arch-card{border-left-color:#8e44ad}.post-content .arch-card p{margin:0 0 .5rem}.arch-owns,.arch-links{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.35rem}.arch-label{margin-right:.2rem;color:var(--secondary);font-size:.75rem;font-weight:700}.arch-chip{padding:.1rem .55rem;border:1px solid var(--border);border-radius:999px;background:var(--entry);font-size:.78rem}.post-content .arch-links a{font-size:.82rem}.arch-badge{padding:.08rem .55rem;border-radius:999px;font-size:.72rem;font-weight:700;white-space:nowrap}.arch-badge-admin{background:hsl(30 80% 55%/.16);color:#a5611d}.arch-badge-apply{background:hsl(210 65% 55%/.16);color:#27619b}.arch-badge-argocd{background:hsl(150 50% 45%/.16);color:#26734d}.arch-badge-build{background:hsl(0 0% 50%/.14);color:var(--secondary)}[data-theme=dark] .arch-badge-admin{color:#f0b375}[data-theme=dark] .arch-badge-apply{color:#8ebdeb}[data-theme=dark] .arch-badge-argocd{color:#7dd4a8}@media(max-width:768px){.arch-sum{padding-left:1.4rem}.arch-card{margin-left:1rem}}.arch-leaf>summary{cursor:default}.arch-leaf>summary::before{visibility:hidden}.arch-leaf>summary:hover{background:0 0}.arch-c-admin{--ac:#e8952f}.arch-c-apply{--ac:#5b9bd5}.arch-c-argocd{--ac:#4caf82}.arch-c-ci{--ac:#8e44ad}body:has(.arch-app) .main{max-width:none;min-height:0;margin:0;padding:0}body:has(.arch-app) .footer,body:has(.arch-app) .top-link{display:none}.arch-app{--side-w:400px;position:relative;display:grid;grid-template-columns:var(--side-w)minmax(0,1fr);height:calc(100vh - var(--header-height));border-top:1px solid var(--border)}.arch-app.is-folded{grid-template-columns:0 minmax(0,1fr)}.arch-side{display:flex;flex-direction:column;min-width:0;overflow:hidden;border-right:1px solid var(--border);background:var(--theme);z-index:2}.arch-side-head{padding:1rem 1.1rem .7rem}.arch-side-head .breadcrumbs{font-size:.75rem}.arch-title{margin:.2rem 0 .25rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.5rem}.arch-desc{margin:0 0 .35rem;color:var(--secondary);font-size:.85rem;line-height:1.5}.arch-meta{color:var(--secondary);font-size:.72rem}.arch-tabs{display:flex;border-bottom:1px solid var(--border)}.arch-tab{flex:1;padding:.6rem .4rem;border-bottom:2px solid transparent;color:var(--secondary);font-size:.85rem;font-weight:600}.arch-tab.is-active{border-bottom-color:var(--primary);color:var(--primary)}.arch-side-body{flex:1;overflow-y:auto;padding:.6rem .7rem 2rem}.arch-panel.post-content{padding:.3rem .4rem;font-size:.88rem}.arch-panel.post-content ul{padding-left:1.1rem}.arch-panel.post-content li{margin-bottom:.3rem}.arch-app .arch-tree{margin:0;padding:0;border:0;background:0 0}.arch-tools{display:flex;gap:.4rem;justify-content:flex-end;margin-bottom:.2rem}.arch-root-name{padding:.2rem .6rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700;font-size:.9rem}.arch-app .arch-sum{padding-left:1.6rem}.arch-app .arch-card{margin-left:1.2rem}.arch-node.is-on>summary{background:color-mix(in srgb,var(--primary) 12%,transparent);box-shadow:inset 3px 0 0 var(--primary)}.arch-fold{position:absolute;top:50%;left:var(--side-w);z-index:3;width:1.4rem;height:3.2rem;margin-top:-1.6rem;border:1px solid var(--border);border-left:0;border-radius:0 .5rem .5rem 0;background:var(--theme);color:var(--secondary);font-size:.65rem}.arch-app.is-folded .arch-fold{left:0}.arch-canvas{position:relative;min-width:0;overflow:auto;background:radial-gradient(circle,color-mix(in srgb,var(--secondary) 22%,transparent) 1px,transparent 1px)0 0/22px 22px,var(--entry)}.arch-views{position:sticky;top:.9rem;z-index:2;display:flex;width:max-content;margin:.9rem .9rem 0 auto;border:1px solid var(--border);border-radius:.6rem;background:var(--theme);box-shadow:0 2px 8px rgb(0 0 0/8%);overflow:hidden}.arch-view-btn{padding:.4rem .85rem;color:var(--secondary);font-size:.8rem;font-weight:600}.arch-view-btn+.arch-view-btn{border-left:1px solid var(--border)}.arch-view-btn.is-active{background:var(--primary);color:var(--theme)}.arch-view{display:none;padding:.5rem 2rem 2.5rem}.arch-view.is-active{display:block}.arch-view-inner{max-width:820px;margin:0 auto;padding:1.2rem 1.6rem;border:1px solid var(--border);border-radius:1rem;background:var(--theme)}.arch-view-inner>div:first-child,.arch-view-inner>div{margin-left:auto;margin-right:auto}.arch-mapgrid{display:grid;grid-template-columns:minmax(0,1fr)220px;gap:1rem;max-width:1e3px;margin:0 auto}.arch-cicol{display:flex}.arch-cicol .arch-layer{flex:1;border-style:dashed}.arch-cicol .arch-boxes{grid-template-columns:1fr}.arch-layer{padding:.8rem .9rem .9rem;border:1px solid color-mix(in srgb,var(--ac) 45%,transparent);border-radius:.9rem;background:color-mix(in srgb,var(--ac) 7%,var(--theme));box-shadow:0 1px 4px rgb(0 0 0/5%)}.arch-layer-head{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.6rem;font-size:.9rem}.arch-layer-head b{color:var(--ac)}.arch-layer-head span{color:var(--secondary);font-size:.75rem}.arch-boxes{display:grid;gap:.55rem}.arch-box{display:flex;flex-direction:column;justify-content:center;gap:.2rem;min-height:4rem;padding:.6rem .5rem;border:1px solid color-mix(in srgb,var(--ac) 55%,transparent);border-radius:.65rem;background:color-mix(in srgb,var(--ac) 14%,var(--theme));color:var(--content);text-align:center;cursor:pointer;transition:transform .15s ease-in-out,box-shadow .15s ease-in-out}.arch-box b{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}.arch-box span{color:var(--secondary);font-size:.75rem}.arch-box:hover{transform:translateY(-2px);box-shadow:0 4px 12px color-mix(in srgb,var(--ac) 30%,transparent)}.arch-box.is-on{border-color:var(--ac);background:color-mix(in srgb,var(--ac) 30%,var(--theme));box-shadow:0 0 0 2px var(--ac),0 6px 16px color-mix(in srgb,var(--ac) 35%,transparent)}.arch-up{margin:.25rem 0;color:var(--tertiary);font-size:.75rem;line-height:1;text-align:center}.arch-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:.3rem 1rem;margin:1.2rem auto 0;color:var(--secondary);font-size:.78rem}.arch-dot{display:inline-block;width:.62rem;height:.62rem;margin-right:.3rem;border-radius:50%;background:var(--ac);vertical-align:-.05rem}.arch-hint{margin:.4rem 0 0;color:var(--secondary);font-size:.75rem;text-align:center}@media(max-width:900px){.arch-app,.arch-app.is-folded{display:flex;flex-direction:column;height:auto}.arch-side{display:contents}.arch-side-head{order:0}.arch-canvas{order:1;overflow:visible}.arch-tabs{order:2;border-top:1px solid var(--border)}.arch-side-body{order:3;overflow-y:visible}.arch-fold{display:none}.arch-view{padding:.5rem .8rem 1.5rem}.arch-mapgrid{grid-template-columns:1fr}.arch-boxes[style]{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))!important}}@media(min-width:901px){.arch-view[data-view=map].is-active{display:flex;flex-direction:column;justify-content:center;min-height:calc(100% - 3.4rem)}.arch-mapgrid{width:100%}}.arch-iso{display:none}.arch-view.is-3d .arch-mapgrid{grid-template-columns:1fr;max-width:1100px}.arch-view.is-3d .arch-stack,.arch-view.is-3d .arch-cicol{display:none}.arch-view.is-3d .arch-iso{display:block;width:100%;height:calc(100vh - var(--header-height) - 8rem);min-height:420px;cursor:grab;touch-action:none;user-select:none}.arch-iso.is-dragging{cursor:grabbing}.arch-view.is-3d .arch-iso-hit{cursor:pointer}.arch-zoom{display:none}.arch-view.is-3d .arch-zoom{position:absolute;right:.9rem;bottom:4rem;z-index:2;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:.6rem;background:var(--theme);box-shadow:0 2px 8px rgb(0 0 0/8%);overflow:hidden}.arch-zoom button{width:2.2rem;height:2.2rem;color:var(--secondary);font-size:1.05rem}.arch-zoom button+button{border-top:1px solid var(--border)}.arch-zoom button:hover{color:var(--primary);background:var(--entry)}.arch-iso{--iso-t:#fbfbfb;--iso-l:#e2e2e2;--iso-r:#c8c8c8;--iso-line:#4a4a4a;--iso-p0t:#ececec;--iso-p1t:#ffffff;--iso-p2t:#e7e7e7;--iso-ps:#d0d0d0;font-family:inherit}[data-theme=dark] .arch-iso{--iso-t:#3d4046;--iso-l:#2f3237;--iso-r:#25272b;--iso-line:#9aa0a6;--iso-p0t:#2a2c30;--iso-p1t:#34363b;--iso-p2t:#2c2e33;--iso-ps:#1d1f22}.arch-iso .pl.t{stroke:var(--iso-line);stroke-width:.6;stroke-opacity:.5}.arch-iso .pl.l,.arch-iso .pl.r{fill:var(--iso-ps);stroke:var(--iso-line);stroke-width:.5;stroke-opacity:.4}.arch-iso .tone-0 .pl.t{fill:var(--iso-p0t)}.arch-iso .tone-1 .pl.t{fill:var(--iso-p1t)}.arch-iso .tone-2 .pl.t{fill:var(--iso-p2t)}.arch-iso .cu{stroke:var(--iso-line);stroke-width:1;stroke-linejoin:round}.arch-iso .cu.t{fill:var(--iso-t)}.arch-iso .cu.l{fill:var(--iso-l)}.arch-iso .cu.r{fill:var(--iso-r)}.arch-iso .chip{fill:var(--ac);stroke:none}.arch-iso-tagbg{fill:var(--iso-line)}.arch-iso-text [class*=arch-c-] .arch-iso-tagbg{fill:var(--ac)}.arch-iso-tag{fill:#fff;font-size:14px;font-weight:700}.arch-iso-text text{paint-order:stroke;stroke:var(--entry);stroke-width:4px;stroke-linejoin:round}.arch-iso-text .arch-iso-tag{stroke:none}.arch-iso-name{fill:var(--content);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:15px;font-weight:700}.arch-iso-text [class*=arch-c-] .arch-iso-name{fill:color-mix(in srgb,var(--ac) 70%,var(--content))}.arch-iso-sub{fill:var(--secondary);font-size:12.5px}.arch-iso-edge{stroke:var(--iso-line);stroke-width:1.6;stroke-opacity:.4;stroke-linejoin:round;stroke-linecap:round;fill:none}.arch-iso-head{fill:var(--iso-line);fill-opacity:.55}.arch-iso-edge.is-hot{stroke:#d85a30;stroke-width:3;stroke-opacity:1}.arch-iso-hit{cursor:pointer;outline:none}.arch-iso-cube.arch-iso-hit:hover .cu.t,.arch-iso-cube.arch-iso-hit:focus-visible .cu.t{fill:color-mix(in srgb,var(--ac) 18%,var(--iso-t))}.arch-iso-cube.is-on .cu{stroke:var(--ac);stroke-width:2.2}.arch-iso-cube.is-on .cu.t{fill:color-mix(in srgb,var(--ac) 30%,var(--iso-t))}.arch-iso-plate.arch-iso-hit:hover .pl.t{fill:color-mix(in srgb,var(--ac) 10%,var(--iso-p2t))}.arch-iso-plate.is-on .pl.t{stroke:var(--ac);stroke-width:2;stroke-opacity:1;fill:color-mix(in srgb,var(--ac) 14%,var(--iso-p2t))}.arch-view[data-view=map]{position:relative}@media(max-width:900px){.arch-view.is-3d .arch-iso{height:auto;min-height:0;aspect-ratio:5/4}}@media(min-width:901px){.arch-view.is-3d.is-active[data-view=map]{position:absolute;inset:0;display:block;min-height:0;padding:0}.arch-view.is-3d .arch-mapgrid{display:block;max-width:none;width:100%;height:100%;margin:0}.arch-view.is-3d .arch-iso{width:100%;height:100%;min-height:0;max-height:none}.arch-view.is-3d .arch-legend,.arch-view.is-3d .arch-hint{position:absolute;left:1rem;z-index:2;margin:0;padding:.35rem .7rem;border:1px solid var(--border);border-radius:.5rem;background:var(--theme)}.arch-view.is-3d .arch-legend{bottom:3.2rem}.arch-view.is-3d .arch-hint{bottom:1rem}.arch-view.is-3d .arch-zoom{bottom:1rem}}.arch-side .arch-meta{padding:.55rem 1rem;border-top:1px solid var(--border);color:var(--secondary);font-size:.72rem}.arch-side-body{padding-top:.9rem}.arch-app .arch-tree{font-size:.95rem}@media(max-width:900px){.arch-side .arch-meta{order:4}}.arch-top{position:absolute;top:.9rem;left:.9rem;z-index:3;padding:.35rem .75rem;border:1px solid var(--border);border-radius:.6rem;background:var(--theme);box-shadow:0 2px 8px rgb(0 0 0/8%);color:var(--secondary);font-size:.78rem;font-weight:600}.arch-top:hover{color:var(--primary)}body:has(.arch-app) .header{display:none}html:not(.arch-show-top) .arch-app{height:100vh;border-top:0}html.arch-show-top body .header{display:block}@media(max-width:900px){.arch-top{display:none}body:has(.arch-app) .header{display:block}}.arch-tip{position:absolute;z-index:4;width:min(300px,80vw);padding:.75rem 2rem .8rem .9rem;border:1px solid var(--border);border-radius:.7rem;background:var(--theme);box-shadow:0 8px 24px rgb(0 0 0/.14);transform:translate(-50%,-100%);pointer-events:auto}.arch-tip[hidden]{display:none}.arch-tip::after{content:"";position:absolute;left:50%;bottom:-7px;width:12px;height:12px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--theme);transform:translateX(-50%)rotate(45deg)}.arch-tip b{display:block;margin-bottom:.3rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88rem}.arch-tip p{margin:0;color:var(--content);font-size:.85rem;line-height:1.6}.arch-tip-x{position:absolute;top:.35rem;right:.5rem;color:var(--secondary);font-size:1.1rem;line-height:1}.arch-app .arch-tree{font-size:.92rem}.arch-app .arch-node>summary{display:flex;flex-wrap:nowrap;align-items:center;gap:.4rem;min-height:2.1rem;padding:.3rem .5rem;border-radius:.45rem}.arch-app .arch-node>summary::before{flex:none}.arch-app .arch-name{overflow:hidden;min-width:0;font-size:.88rem;text-overflow:ellipsis;white-space:nowrap}.arch-app .arch-node>summary .arch-badge{flex:none;margin-left:auto}.arch-app .arch-node[open]>summary{background:var(--code-bg)}.arch-app .arch-node>summary:hover{background:color-mix(in srgb,var(--code-bg) 70%,var(--border))}.arch-app .arch-tree-body>.arch-node{margin-bottom:.25rem}.arch-app .arch-tree-body>.arch-node>summary .arch-name{font-size:.95rem}.arch-app .arch-children{margin:.1rem 0 .35rem .95rem;padding-left:.5rem;border-left:1.5px solid var(--border)}.arch-app .arch-card{margin:.25rem .2rem .45rem 1.5rem;padding:.6rem .75rem;border:1px solid var(--border);border-left:3px solid var(--tertiary);border-radius:0 .55rem .55rem 0;background:var(--entry);font-size:.84rem;line-height:1.6}.arch-app .arch-root>.arch-card{border-left-color:#5b9bd5}.arch-app .arch-chart>.arch-card{border-left-color:#4caf82}.arch-app .arch-ci>.arch-card{border-left-color:#8e44ad}.arch-app .arch-dir>.arch-card,.arch-app .has-kids>.arch-card{padding:.45rem .7rem}.post-content .arch-card .arch-lead{margin:0 0 .35rem;font-weight:600}.post-content .arch-card .arch-lead:last-child{margin-bottom:0}.arch-app .arch-node.is-on>summary{background:color-mix(in srgb,var(--primary) 14%,transparent);box-shadow:inset 3px 0 0 var(--primary)}.arch-app .arch-tree .arch-card{display:none}.arch-app .arch-node:not(.has-kids)>summary::before{visibility:hidden}.arch-detail{position:absolute;top:.8rem;left:calc(var(--side-w) + .8rem);z-index:5;display:flex;flex-direction:column;width:340px;max-height:calc(100% - 1.6rem);border:1px solid var(--border);border-radius:.8rem;background:var(--theme);box-shadow:0 10px 30px rgb(0 0 0/.16);overflow:hidden}.arch-detail[hidden]{display:none}.arch-detail-head{display:flex;align-items:flex-start;gap:.5rem;padding:.85rem .9rem .3rem}.arch-detail-name{flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1rem;font-weight:700;word-break:break-all}.arch-detail-x{color:var(--secondary);font-size:1.3rem;line-height:1}.arch-detail-badge{padding:0 .9rem .4rem}.arch-detail-badge:empty{display:none}.arch-detail-body{overflow-y:auto;padding:.3rem .9rem 1rem;font-size:.88rem;line-height:1.65}.arch-detail-body p{margin:0 0 .6rem}.arch-detail-body .arch-lead{font-weight:600}.arch-detail-body .arch-owns,.arch-detail-body .arch-links{margin-top:.6rem}.arch-detail-body .arch-links a{display:block;width:100%}@media(max-width:900px){.arch-detail{position:fixed;top:auto;right:0;bottom:0;left:0;width:auto;max-height:60vh;border-radius:1rem 1rem 0 0}}.arch-arrow-key{margin-right:.3rem;vertical-align:-.05rem;color:var(--secondary)}.arch-tip-rel:empty{display:none}.arch-tip-rel{margin-top:.6rem;padding-top:.5rem;border-top:1px solid var(--border)}.arch-tip-h{margin:.35rem 0 .15rem;color:#b5441f;font-size:.75rem;font-weight:700}[data-theme=dark] .arch-tip-h{color:#f08a63}.arch-tip-rel ul{margin:0;padding-left:1rem}.arch-tip-rel li{margin:.1rem 0;font-size:.8rem;line-height:1.5;color:var(--content)}.arch-tip-rel code{font-size:.78rem}.arch-tip-rel span{color:var(--secondary)}.arch-iso .chip{fill:color-mix(in srgb,var(--ac) 16%,var(--iso-t));stroke:color-mix(in srgb,var(--ac) 45%,transparent);stroke-width:.8}.arch-iso .ico{fill:none;stroke:color-mix(in srgb,var(--ac) 85%,#000);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}[data-theme=dark] .arch-iso .ico{stroke:color-mix(in srgb,var(--ac) 80%,#fff)}.arch-iso-cube.is-on .chip{fill:color-mix(in srgb,var(--ac) 30%,var(--iso-t))}.arch-icon{display:inline-flex;flex:none;width:1.15rem;justify-content:center}.arch-ico{width:1.05rem;height:1.05rem;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.arch-ico-repo{color:var(--primary)}.arch-ico-dir{color:#d29a2c}.arch-ico-root{color:#7b42bc}.arch-ico-chart{color:#e46a3d}.arch-ico-ci{color:#2f80ed}.arch-ico-script{color:#1d9e75}.arch-ico-file,.arch-ico-docs{color:#8a8f98}[data-theme=dark] .arch-ico-root{color:#a77fe0}[data-theme=dark] .arch-ico-ci{color:#6aa8f7}.arch-ico-dir{fill:color-mix(in srgb,#d29a2c 18%,transparent)}.arch-ico-root{fill:color-mix(in srgb,#7b42bc 12%,transparent)}.arch-root-name{display:flex;align-items:center;gap:.4rem}.arch-detail-name{display:flex;align-items:center;gap:.45rem}.arch-detail-name .arch-ico{width:1.2rem;height:1.2rem;flex:none}.arch-ico-root{fill:currentColor;stroke:none}.arch-ico-chart{color:#ef7b4d;fill:color-mix(in srgb,#ef7b4d 14%,transparent);stroke-width:1.7}.arch-ico-chart path{stroke-width:1.7}.arch-ico-repo{color:var(--content);fill:currentColor;stroke:none}.arch-iso-order{display:none;pointer-events:none}.mode-order .arch-iso-order{display:inline}.mode-order .arch-iso-edge{display:none}.mode-order .out-of-order{opacity:.28}.arch-iso-route{fill:none;stroke:var(--iso-line);stroke-width:2;stroke-dasharray:5 4;stroke-opacity:.6;stroke-linecap:round}.arch-iso-pin circle{fill:var(--ac);stroke:var(--entry);stroke-width:3}.arch-iso-pin .stem{stroke:var(--ac);stroke-width:2}.arch-iso-pin .num{fill:#fff;font-size:15px;font-weight:800}.arch-iso-pin .note{fill:color-mix(in srgb,var(--ac) 75%,var(--content));font-size:12.5px;font-weight:700;paint-order:stroke;stroke:var(--entry);stroke-width:4px;stroke-linejoin:round}.arch-mode-note{display:none}.mode-order .arch-mode-note{position:absolute;top:3.4rem;left:.9rem;z-index:2;display:block;max-width:340px;padding:.6rem .8rem;border:1px solid var(--border);border-radius:.6rem;background:var(--theme);box-shadow:0 2px 8px rgb(0 0 0/8%);font-size:.8rem;line-height:1.55}.arch-mode-note p{margin:0}.arch-mode-note p+p{margin-top:.35rem;color:var(--secondary)}.mode-order .arch-legend>span:last-child{display:none}.arch-tip::after{left:calc(50% + var(--arrow-x,0px))}.arch-tip.is-below{transform:translate(-50%,0)}.arch-tip.is-below::after{top:-7px;bottom:auto;border-right:0;border-bottom:0;border-left:1px solid var(--border);border-top:1px solid var(--border)}.arch-iso-edge{display:none}.arch-iso-edge.is-hot{display:inline}.arch-iso-ghost{display:none;fill:none;stroke:#d85a30;stroke-width:2;stroke-dasharray:3 5;stroke-linecap:round;stroke-opacity:.85}.arch-iso-ghost.is-hot{display:inline}.mode-order .arch-iso-ghost{display:none}.arch-iso .arch-iso-edge.is-hot{stroke:#d85a30;stroke-width:2.6;stroke-dasharray:none;stroke-opacity:1;fill:none;filter:drop-shadow(0 1px 1.5px rgb(0 0 0/.25))}.arch-iso-text .arch-iso-taghit{cursor:pointer;pointer-events:auto}@media(max-width:900px){html:not(.arch-show-top) .arch-app{height:auto;border-top:1px solid var(--border)}}.arch-ico-k8s{color:#326ce5}[data-theme=dark] .arch-ico-k8s{color:#6f9bf0}.arch-flow-head{display:flex;align-items:center;justify-content:space-between;margin:0 .2rem .6rem;color:var(--secondary);font-size:.8rem;font-weight:700}.arch-flow-nav{display:flex;gap:.35rem}.post-content .arch-steps,.arch-steps{margin:0;padding:0;list-style:none}.arch-step{display:flex;gap:.65rem;margin:0 0 .35rem;padding:.6rem .7rem;border:1px solid transparent;border-radius:.6rem;cursor:pointer;outline:none}.arch-step:hover{background:var(--code-bg)}.arch-step.is-active{border-color:color-mix(in srgb,var(--primary) 30%,transparent);background:color-mix(in srgb,var(--primary) 8%,var(--entry))}.arch-step.has-block{box-shadow:inset 3px 0 #d85a30}.arch-step-n{display:inline-flex;flex:none;align-items:center;justify-content:center;width:1.6rem;height:1.6rem;border-radius:50%;background:var(--code-bg);color:var(--secondary);font-size:.8rem;font-weight:800}.arch-step.is-active .arch-step-n{background:#d85a30;color:#fff}.arch-step-body b{font-size:.9rem}.arch-step-who{margin-left:.4rem;padding:.05rem .45rem;border-radius:999px;background:var(--code-bg);color:var(--secondary);font-size:.7rem;font-weight:700}.post-content .arch-step-body p,.arch-step-body p{margin:.25rem 0 0;color:var(--secondary);font-size:.82rem;line-height:1.55}.arch-step.is-active .arch-step-body p{color:var(--content)}.arch-repo{overflow:hidden}.arch-thumb{height:170px;margin:-1.25rem -1.4rem .6rem;border-bottom:1px solid var(--border);background:radial-gradient(circle,color-mix(in srgb,var(--secondary) 22%,transparent) 1px,transparent 1px)0 0/16px 16px,var(--entry)}.arch-thumb .arch-iso{display:block;width:100%;height:100%;padding:.4rem}.arch-repo:hover .arch-thumb .arch-iso-cube .cu.t{fill:color-mix(in srgb,var(--ac) 14%,var(--iso-t))}.arch-thumb .chip{fill:color-mix(in srgb,var(--ac) 60%,var(--iso-t));stroke:none}.arch-thumb .arch-iso-plate[class*=arch-c-] .pl.t{fill:color-mix(in srgb,var(--ac) 8%,var(--iso-p1t))}.arch-ico-chart,.arch-ico-k8s{fill:currentColor;stroke:none}.arch-ico-chart path{stroke:none}.arch-ico-yaml{color:#cb171e;fill:currentColor;stroke:none}[data-theme=dark] .arch-ico-yaml{color:#f0656b}.arch-ico.arch-ico-dir{stroke:none;width:1.15rem;height:1.15rem}.arch-ico-dir .f{fill:#efa140}.arch-ico-dir-terraform .f{fill:#b9a6e8}.arch-ico-dir-terraform .b{fill:#7b42bc}.arch-ico-dir-k8s .f{fill:#9dbcf2}.arch-ico-dir-k8s .b{fill:#326ce5}.arch-ico-dir .b{stroke:var(--entry);stroke-width:1.2}.arch-ico-dir .g{fill:#fff;stroke:none}.arch-rel{display:flex;flex-direction:column;gap:1.1rem}.arch-rel a{box-shadow:none;text-decoration:none}.arch-rel-series{border:1px solid var(--border);border-radius:.9rem;overflow:hidden;background:var(--theme)}.arch-rel-head{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;align-items:center;column-gap:.9rem;padding:.75rem .9rem;background:var(--entry);border-bottom:1px solid var(--border);color:var(--content)}.arch-rel-cover{grid-row:1/3;width:96px;height:60px;margin:0;border-radius:.5rem;object-fit:cover}.arch-rel-kind{color:var(--secondary);font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.arch-rel-series-name{grid-column:2;font-size:1.05rem}.arch-rel-count{grid-column:3;grid-row:1/3;color:var(--secondary);font-size:.75rem}.post-content .arch-rel-posts,.arch-rel-posts{margin:0;padding:.3rem;list-style:none}.arch-rel-posts li{margin:0}.arch-rel-posts a{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .6rem;padding:.55rem .6rem;border-radius:.55rem;color:var(--content)}.arch-rel-posts a:hover{background:var(--entry)}.arch-rel-num{flex:none;min-width:1.9rem;padding:.1rem .3rem;border-radius:.4rem;background:var(--code-bg);color:var(--secondary);font-size:.75rem;font-weight:800;text-align:center}.arch-rel-title{font-weight:600;font-size:.92rem}.arch-rel-posts .entry-part{margin-left:0;font-size:.7rem}.arch-rel-note{flex-basis:100%;padding-left:2.5rem;color:var(--secondary);font-size:.8rem}.arch-rel-label{margin:0 0 .5rem .1rem;color:var(--secondary);font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.arch-rel-wiki{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.5rem}.arch-rel-chip{display:flex;flex-direction:column;gap:.15rem;padding:.55rem .7rem;border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:0 .55rem .55rem 0;background:var(--theme);color:var(--content)}.arch-rel-chip:hover{background:var(--entry)}.arch-rel-chip b{font-size:.88rem}.arch-rel-chip span{color:var(--secondary);font-size:.74rem;line-height:1.4}.arch-rel-arch{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.6rem}.arch-rel-archcard{display:flex;flex-direction:column;gap:.2rem;padding:0 .8rem .7rem;border:1px solid var(--border);border-radius:.8rem;overflow:hidden;background:var(--theme);color:var(--content)}.arch-rel-archcard:hover{border-color:var(--primary)}.arch-rel-archcard .arch-thumb{height:120px;margin:0 -.8rem .5rem}.arch-rel-archcard b{font-size:.95rem}.arch-rel-archcard span{color:var(--secondary);font-size:.78rem}.post-home{visibility:hidden;opacity:0;transition:visibility .5s,opacity .8s linear;position:fixed;bottom:112px;right:30px;z-index:99;width:42px;height:42px;padding:11px;border-radius:64px;background:var(--tertiary);color:var(--secondary);box-shadow:none!important}.post-home svg{display:block;width:100%;height:100%}.post-home:hover{color:var(--primary)}h2[id="0-contents"],h2[id="0-contents"]+div,h2[id="0-contents"]+div+hr{display:none}h2[id="0-contents"]+div.toc-open{display:block;position:fixed;right:30px;bottom:216px;z-index:100;width:min(340px,calc(100vw - 60px));max-height:min(60vh,calc(100vh - 260px));overflow-y:auto;overscroll-behavior:contain;margin:0!important;padding:12px 16px!important;background:var(--theme)!important;border:1px solid var(--border)!important;border-radius:12px!important;box-shadow:0 6px 24px rgba(0,0,0,.18)!important}h2[id="0-contents"]+div.toc-open>div{font-size:14px!important;line-height:1.7!important;word-break:keep-all}h2[id="0-contents"]+div.toc-open div[style*=padding-left]{padding-left:12px!important;font-size:13px!important}h2[id="0-contents"]+div.toc-open a{box-shadow:none!important;color:var(--secondary)!important;font-weight:400!important}h2[id="0-contents"]+div.toc-open a:hover{color:var(--primary)!important}h2[id="0-contents"]+div.toc-open a.toc-on{color:var(--primary)!important;font-weight:600!important}.toc-fab{position:fixed;right:30px;bottom:164px;z-index:99;width:42px;height:42px;padding:11px;border:0;border-radius:64px;background:var(--tertiary);color:var(--secondary);cursor:pointer}.toc-fab svg{display:block;width:100%;height:100%}.toc-fab:hover,.toc-fab[aria-expanded=true]{color:var(--primary)}