*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{font-size:100%;scroll-behavior:smooth}body{font-family:roboto,-apple-system,BlinkMacSystemFont,helvetica neue,Helvetica,Arial,sans-serif;font-size:1rem;line-height:1.6;max-width:48rem;margin:0 auto;padding:1rem;color:#222;background:#fff}@font-face{font-family:roboto;src:url(/fonts/roboto-regular.woff2)format('woff2');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:roboto;src:url(/fonts/roboto-600.woff2)format('woff2');font-weight:600;font-style:normal;font-display:swap}h1{font-size:2rem;font-weight:600;margin-bottom:.5rem}h2{font-size:1.6rem;font-weight:600;margin-bottom:.4rem}h3{font-size:1.4rem;font-weight:600;margin-bottom:.3rem}h4{font-size:1.2rem;font-weight:600;margin-bottom:.2rem}h5{font-size:1rem;font-weight:600;margin-bottom:.2rem}h6{font-size:.9rem;font-weight:600;margin-bottom:.2rem}a{color:#06c;text-decoration:none}a:hover{text-decoration:underline}ul,ol{margin-left:1.5rem;padding-left:0}li{margin-bottom:.4rem}pre{background:#f6f8fa;color:#24292e;border:1px solid #d0d7de;border-radius:6px;padding:1rem;overflow:auto;line-height:1.45;font-family:Menlo,Monaco,Consolas,courier new,monospace;box-shadow:0 1px 3px rgba(0,0,0,8%)}code{background:#f6f8fa;color:#06c;padding:.2rem .4rem;border-radius:4px;font-family:Menlo,Monaco,Consolas,courier new,monospace}pre .comment,pre .comment *{color:#6a737d}pre .keyword,pre .keyword *{color:#d73a49}pre .string,pre .string *{color:#032f62}pre .number,pre .number *{color:#005cc5}pre .function,pre .function *{color:#6f42c1}pre .type,pre .type *{color:#005cc5}pre .operator,pre .operator *{color:#d73a49}pre .punctuation,pre .punctuation *{color:#24292e}@media(prefers-color-scheme:dark){body{color:#ddd;background:#111}a{color:#9cf}pre{background:#2b2d3a;color:#c9d1d9;border-color:#44475a;box-shadow:0 1px 3px rgba(0,0,0,.4)}code{background:#2b2d3a;color:#06c}pre .comment,pre .comment *{color:#6272a4}pre .keyword,pre .keyword *{color:#ff79c6}pre .string,pre .string *{color:#f1fa8c}pre .number,pre .number *{color:#bd93f9}pre .function,pre .function *{color:#8be9fd}pre .type,pre .type *{color:#8be9fd}}img{max-width:100%;height:auto}pre .hljs-ln-line.hljs-ln-numbers{color:#565f89}pre .hljs-ln-line.hljs-ln-code{background:#24283b}.site-header{text-align:center;margin-bottom:2rem}.site-title{font-size:2rem;margin-bottom:.3rem}.site-description{font-size:.9rem;color:#555}.header-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap}.site-nav{margin-top:.5rem}.menu{list-style:none;display:flex;gap:1.2rem}.menu-item a{color:inherit;font-weight:500}.menu-item a:hover{text-decoration:underline}.menu-item a.active{font-weight:700}.home-intro{max-width:48rem;margin:auto;line-height:1.6;font-size:1rem}.home-intro h2{margin-top:2rem;font-size:1.6rem}.home-intro h3{margin-top:1.5rem;font-size:1.4rem}.home-recent{margin-top:3rem}.home-recent h2{font-size:1.5rem;margin-bottom:.8rem}.recent-list{list-style:none;padding-left:0}.recent-list li{margin-bottom:.6rem}.recent-list a{font-weight:500}.recent-list .meta{font-size:.85rem;color:#666;margin-left:.5rem}@media(max-width:480px){.header-inner{flex-direction:column;align-items:flex-start}.site-nav{margin-top:.8rem}}.post-list{display:flex;flex-direction:column;gap:2rem}.post-summary h2{font-size:1.5rem;margin-bottom:.2rem}.meta{font-size:.85rem;color:#666;margin-bottom:.5rem}.meta{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;font-size:.9rem;color:#666}.meta-tags{display:flex;flex-wrap:wrap;gap:.4rem}.meta-tags .tag{background:#eaeef2;color:#24292e;padding:.2rem .5rem;border-radius:3px;text-decoration:none;font-size:.85rem}.meta-tags .tag:hover{background:#d0d7de}.excerpt{color:#444}.pagination{display:flex;justify-content:space-between;margin-top:2rem}.post-header h1{font-size:2rem;margin-bottom:.3rem}.toc{border-left:4px solid #eee;padding-left:.8rem;margin:1.5rem 0}.toc a{display:block;margin:.3rem 0}.post-content ul,.post-content ol,.page-content ul,.page-content ol{margin-left:1.5rem;padding-left:0}.post-content li,.page-content li{margin-bottom:.4rem}.post-tags{margin-top:2rem;padding-top:.8rem;border-top:1px solid #d0d7de;font-size:.9rem}.tags-label{font-weight:600;margin-right:.5rem}.post-tags .tag{background:#eaeef2;color:#24292e;padding:.2rem .5rem;border-radius:3px;margin-right:.4rem;text-decoration:none}.post-tags .tag:hover{background:#d0d7de}.site-footer{text-align:center;margin-top:3rem;font-size:.85rem;color:#777}