:root{--base-color: #DBDBDB;--background-color: #000;--text-color: var(--base-color);--link-color: var(--base-color);--placeholder-color: #777;--border: dashed 1px rgba(219, 219, 219, 0.5);--selection-background: rgba(219, 219, 219, 0.95);--selection-text: #000;--muted-color: #888;--code-bg: #0a0a0a;--code-color-1: #aaaaaa;--code-color-2: #ffffcc;--code-color-3: #F00000;--code-color-4: #F0A0A0;--code-color-5: #b38aff;--code-color-6: #5ba711;--code-color-7: #e4e477;--code-color-8: #000080;--code-color-9: #05ca05;--code-color-10: #888888;--code-color-11: #555555;--code-color-12: #800080;--code-color-13: #00d4d4;--code-color-14: #00c1c1;--code-color-15: #ed9d13;--code-color-16: #1e90ff;--code-color-17: #800000;--code-color-18: #bbbbbb}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background-color:var(--background-color);margin:0 auto;padding:0;overflow-x:hidden;font-family:ui-monospace,"SF Mono","Cascadia Code","Source Code Pro",Menlo,Consolas,"Liberation Mono",monospace;font-size:14px;color:var(--text-color);line-height:1.6}h1,h2,h3,h4,h5,h6{font-size:1em;margin:1.4em 0 0.6em;font-weight:bold;color:var(--text-color)}p,ul,ol{margin:0 0 15px;color:var(--text-color)}a{text-decoration:underline;color:var(--link-color)}a:hover{color:var(--background-color);background-color:var(--base-color)}img{max-width:100%;height:auto}hr{border:none;border-top:var(--border);margin:25px 0}::selection{background:var(--selection-background);color:var(--selection-text)}@media only screen and (max-width: 500px){body{font-size:13px}}.container{width:90%;max-width:1080px;margin:0 auto}main{min-height:60vh}:root{--topbar-h: 54px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:var(--border);border-bottom:var(--border);margin:25px 0;padding:10px 0;position:sticky;top:0;z-index:20;background-color:var(--background-color);transform:translateY(0);transition:transform 0.25s ease}.topbar.is-hidden{transform:translateY(-100%)}.topbar-nav .menu{display:flex;gap:14px;list-style:none;margin:0;padding:0;flex-wrap:wrap}.topbar-nav .menu li a{text-decoration:none;color:var(--text-color)}.topbar-nav .menu li a[aria-current="page"]{text-decoration:underline}.topbar-nav .menu li a:hover{text-decoration:none;color:var(--background-color);background-color:var(--text-color)}#theme-toggle{background:none;border:var(--border);color:var(--text-color);font-family:ui-monospace,"SF Mono","Cascadia Code","Source Code Pro",Menlo,Consolas,"Liberation Mono",monospace;font-size:inherit;cursor:pointer;padding:4px 10px;flex-shrink:0}#theme-toggle:hover{color:var(--background-color);background-color:var(--base-color)}footer{color:var(--muted-color);border-top:var(--border);margin:40px 0 25px;padding-top:10px;font-size:0.9em}.post-list{list-style:none;margin:0;padding:0}.post-list li{margin-bottom:8px}.display-line{display:flex;gap:18px}.time-line{flex-shrink:0;width:6.5em;color:var(--muted-color)}.display-line .link{flex:1;min-width:0;word-break:break-word}.view-all{margin-top:20px}.year-group{margin-bottom:30px}.year-header{border-bottom:var(--border);padding-bottom:4px;margin-top:2em}.post-title{font-size:1.6em;margin-top:0}.post-byline{color:var(--muted-color);margin-bottom:10px}.post-byline .author{color:var(--link-color);text-decoration:underline}.post-categories,.post-tags{display:none}.post-categories{gap:6px;flex-wrap:wrap;margin-bottom:8px}.post-tags{gap:6px;flex-wrap:wrap;margin-bottom:10px}.chip{border:var(--border);padding:1px 8px;font-size:0.85em;color:var(--muted-color)}.post-description{color:var(--muted-color);font-style:italic}.post-body-wrap{display:grid;grid-template-columns:minmax(0, 1fr) 280px;gap:40px;align-items:start}.post-content ul,.post-content ol{padding-left:0;list-style:none}.post-content ul>li{padding-left:1.3em;position:relative}.post-content ul>li:before{content:"-";position:absolute;left:0.2em}.post-content ol{list-style:decimal;padding-left:1.5em}.post-content ol>li{padding-left:0.3em}.post-content p{word-wrap:break-word;word-break:break-word}.post-content blockquote{border-left:var(--border);margin:15px 0;padding:2px 15px;color:var(--muted-color)}.post-content table{border-collapse:collapse;width:100%;margin:15px 0}.post-content th,.post-content td{border:var(--border);padding:6px 10px;text-align:left}.post-content img{display:block;border:var(--border);padding:4px;margin:15px auto;box-sizing:border-box;max-width:100%}.post-content .mermaid{display:flex;justify-content:center;border:var(--border);padding:12px;margin:20px 0;overflow-x:auto;background:var(--code-bg)}.post-content .mermaid svg{max-width:100%;height:auto !important}.toc-wrap{position:sticky;top:calc(var(--topbar-h) + 20px);max-height:calc(100vh - var(--topbar-h) - 40px);border:var(--border);padding:12px}.toc-label{color:var(--muted-color);font-size:0.85em;text-transform:uppercase;letter-spacing:0.05em;margin-bottom:8px}#toc-scrollable-div{overflow-y:auto;max-height:calc(100vh - var(--topbar-h) - 100px)}#toc-scrollable-div ul{list-style:none;margin:0;padding:0}#toc-scrollable-div li{margin:2px 0}#toc-scrollable-div a{display:block;text-decoration:none;color:var(--text-color);padding:2px 6px;border-left:2px solid transparent;font-size:0.9em}#toc-scrollable-div a:hover,#toc-scrollable-div a.active{background-color:var(--text-color);color:var(--background-color)}#toc-scrollable-div .toc-H1 a{font-weight:bold}#toc-scrollable-div .toc-H2 a{padding-left:14px}#toc-scrollable-div .toc-H3 a{padding-left:26px;font-size:0.85em}#toc-scrollable-div .toc-H4 a{padding-left:38px;font-size:0.8em}#toc-scrollable-div .toc-H5 a{padding-left:50px;font-size:0.8em}#toc-scrollable-div .toc-empty{color:var(--muted-color);font-size:0.85em;padding:2px 6px}.post-nav{display:flex;justify-content:space-between;gap:20px;border-top:var(--border);margin-top:40px;padding-top:15px}.post-nav a{text-decoration:underline}.post-nav a:hover{text-decoration:none}.post-nav .next{margin-left:auto;text-align:right}@media only screen and (max-width: 720px){.post-body-wrap{grid-template-columns:minmax(0, 1fr)}.toc-wrap{position:static;order:-1;max-height:240px}#toc-scrollable-div{max-height:180px}.display-line{flex-direction:column;gap:2px}.time-line{width:auto}}.search-input{width:100%;background:var(--background-color);color:var(--text-color);border:var(--border);padding:8px 10px;font-family:ui-monospace,"SF Mono","Cascadia Code","Source Code Pro",Menlo,Consolas,"Liberation Mono",monospace;font-size:1em;caret-color:var(--text-color)}.search-input::placeholder{color:var(--placeholder-color)}#search-results{list-style:none;margin:20px 0 0;padding:0}#search-results li{margin-bottom:14px;padding-bottom:14px;border-bottom:var(--border)}#search-results .result-title{font-weight:bold}#search-results .result-meta{color:var(--muted-color);font-size:0.85em;margin:2px 0}#search-results .result-excerpt{color:var(--muted-color)}#search-empty{color:var(--muted-color);margin-top:20px}code{font-family:ui-monospace,"SF Mono","Cascadia Code","Source Code Pro",Menlo,Consolas,"Liberation Mono",monospace;background:var(--code-bg);padding:0 4px}pre{background-color:var(--code-bg);border:var(--border);padding:10px;overflow-x:auto;line-height:1.5}pre code{padding:0;background:none}.highlight .c{color:var(--code-color-1);font-style:italic}.highlight .err{color:var(--code-color-3);background-color:var(--code-color-4)}.highlight .k{color:var(--code-color-5)}.highlight .cm{color:var(--code-color-1);font-style:italic}.highlight .cp{color:var(--code-color-6)}.highlight .c1{color:var(--code-color-1);font-style:italic}.highlight .cs{color:var(--code-color-5);font-style:italic}.highlight .gd{color:var(--code-color-7)}.highlight .gr{color:var(--code-color-7)}.highlight .gh{color:var(--code-color-8);font-weight:bold}.highlight .gi{color:var(--code-color-9)}.highlight .go{color:var(--code-color-10)}.highlight .gp{color:var(--code-color-11)}.highlight .gu{color:var(--code-color-12);font-weight:bold}.highlight .gt{color:var(--code-color-7)}.highlight .kc,.highlight .kd,.highlight .kn,.highlight .kp,.highlight .kr{color:var(--code-color-5)}.highlight .kt{color:var(--code-color-13)}.highlight .m{color:var(--code-color-14)}.highlight .s{color:var(--code-color-15)}.highlight .na{color:var(--code-color-16)}.highlight .nb,.highlight .bp{color:var(--code-color-13)}.highlight .nc{color:var(--code-color-9);text-decoration:underline}.highlight .no{color:var(--code-color-7)}.highlight .nd{color:var(--code-color-10)}.highlight .nf{color:var(--code-color-9)}.highlight .nn{color:var(--code-color-13);text-decoration:underline}.highlight .nt{color:var(--code-color-16);font-weight:bold}.highlight .nv,.highlight .vc,.highlight .vg,.highlight .vi{color:var(--code-color-7)}.highlight .ow{color:var(--code-color-5)}.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo,.highlight .il{color:var(--code-color-14)}.highlight .sb,.highlight .sc,.highlight .sd,.highlight .s2,.highlight .se,.highlight .sh,.highlight .si,.highlight .sx,.highlight .s1{color:var(--code-color-15)}.highlight .sr{color:var(--code-color-14)}.highlight .ss{color:var(--code-color-5)}:root[data-theme="dark"]{--base-color: #DBDBDB;--background-color: #000;--text-color: var(--base-color);--link-color: var(--base-color);--placeholder-color: #777;--border: dashed 1px rgba(219, 219, 219, 0.5);--selection-background: rgba(219, 219, 219, 0.95);--selection-text: #000;--muted-color: #888;--code-bg: #0a0a0a;--code-color-1: #aaaaaa;--code-color-2: #ffffcc;--code-color-3: #F00000;--code-color-4: #F0A0A0;--code-color-5: #b38aff;--code-color-6: #5ba711;--code-color-7: #e4e477;--code-color-8: #000080;--code-color-9: #05ca05;--code-color-10: #888888;--code-color-11: #555555;--code-color-12: #800080;--code-color-13: #00d4d4;--code-color-14: #00c1c1;--code-color-15: #ed9d13;--code-color-16: #1e90ff;--code-color-17: #800000;--code-color-18: #bbbbbb}:root[data-theme="light"]{--base-color: #111;--background-color: #fff;--text-color: var(--base-color);--link-color: var(--base-color);--placeholder-color: #999;--border: dashed 1px rgba(0, 0, 0, 0.55);--selection-background: rgba(0, 0, 0, 0.9);--selection-text: #fff;--muted-color: #666;--code-bg: #f4f4f4;--code-color-1: #777777;--code-color-2: #ffffcc;--code-color-3: #F00000;--code-color-4: #F0A0A0;--code-color-5: #0000aa;--code-color-6: #4c8317;--code-color-7: #aa0000;--code-color-8: #000080;--code-color-9: #00aa00;--code-color-10: #888888;--code-color-11: #555555;--code-color-12: #800080;--code-color-13: #007777;--code-color-14: #009999;--code-color-15: #aa5500;--code-color-16: #1e5aa8;--code-color-17: #800000;--code-color-18: #bbbbbb}
