﻿*,*::before,*::after{box-sizing:border-box}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}ul[role=list],ol[role=list]{list-style:none}html:focus-within{scroll-behavior:smooth}body{min-height:100vh;text-rendering:optimizeSpeed;line-height:1.5}img,picture{max-width:100%;display:block}input,button,textarea,select{font:inherit}.theme-tokyonight{--bg-color: #1a1b26;--fg-color: #a9b1d6;--comment-color: #565f89;--blue-color: #7aa2f7;--cyan-color: #7dcfff;--green-color: #9ece6a;--orange-color: #ff9e64;--red-color: #f7768e;--yellow-color: #e0af68;--magenta-color: #bb9af7}.theme-tokyostorm{--bg-color: #24283b;--fg-color: #a9b1d6;--comment-color: #565f89;--blue-color: #7aa2f7;--cyan-color: #7dcfff;--green-color: #9ece6a;--orange-color: #ff9e64;--red-color: #f7768e;--yellow-color: #e0af68;--magenta-color: #bb9af7}.theme-tokyomoon{--bg-color: #222436;--fg-color: #c8d3f5;--comment-color: #636da6;--blue-color: #82aaff;--cyan-color: #86e1fc;--green-color: #c3e88d;--orange-color: #ff966c;--red-color: #ff757f;--yellow-color: #ffc777;--magenta-color: #c099ff}.theme-tokyoday{--bg-color: #e6e7ed;--fg-color: #343b58;--comment-color: #6c6e75;--blue-color: #2959aa;--cyan-color: #0f4b6e;--green-color: #385f0d;--orange-color: #965027;--red-color: #8c4351;--yellow-color: #8f5e15;--magenta-color: #5a3e8e}body{font-family:"Hack","Source Code Pro",Menlo,Monaco,Consolas,"Courier New",monospace;font-size:1rem;line-height:1.5;margin:0;padding:0;background-color:var(--bg-color);color:var(--fg-color)}a{color:var(--orange-color);text-decoration:underline}p{margin-bottom:1em}h1,h2,h3,h4,h5,h6{color:var(--blue-color);line-height:1.25;margin-bottom:1rem}h1:before{content:"# ";color:var(--cyan-color)}h2:before{content:"## ";color:var(--cyan-color)}h3:before{content:"### ";color:var(--cyan-color)}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1rem}.heading-anchor{display:inline-flex;align-items:center;margin-left:.5em;color:var(--comment-color);text-decoration:none;opacity:0;transition:opacity .15s ease}.heading-anchor svg{display:block}h1:hover .heading-anchor,h2:hover .heading-anchor,h3:hover .heading-anchor,h4:hover .heading-anchor,h5:hover .heading-anchor,h6:hover .heading-anchor{opacity:1}.heading-anchor:hover{color:var(--orange-color)}code{padding:.1em .4em;border-radius:3px;background-color:rgba(255,255,255,.08);color:var(--cyan-color)}pre{padding:.5em .75em;border-radius:5px;background-color:rgba(255,255,255,.05);border:1px solid var(--cyan-color);overflow:auto}pre>code{background-color:rgba(0,0,0,0);color:var(--fg-color);padding:0}pre>code span{background-color:rgba(0,0,0,0) !important}hr{border:0;height:1px;background:var(--cyan-color);margin:.25em 0}blockquote{border-left:4px solid var(--blue-color);padding:1em;margin:1em 0;background-color:rgba(255,255,255,.05)}blockquote>*:last-child{margin-bottom:0}img{border:1px solid var(--magenta-color);border-radius:5px;max-width:100%;height:auto}table{margin:1em auto;border-collapse:collapse;width:auto}table thead{background-color:rgba(255,255,255,.1)}table thead th{padding:.4em 1.25em;font-weight:700;border-bottom:2px solid var(--cyan-color)}table td{padding:.4em 1.25em;border:1px solid rgba(255,255,255,.1)}table tbody tr:nth-child(2n){background-color:rgba(255,255,255,.04)}details{margin-bottom:1em}header{position:sticky;top:0;z-index:100;background-color:var(--bg-color);transition:transform .3s ease}header.header-hidden{transform:translateY(-100%)}.top-nav{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem}.top-nav .site-title{font-weight:bold;font-size:1.1rem;color:var(--blue-color)}.top-nav .nav-links-left,.top-nav .nav-links-right{display:flex;gap:1.5rem;font-size:.9rem}.top-nav .nav-links-left a,.top-nav .nav-links-right a{color:var(--orange-color)}.top-nav .nav-links-left{margin-right:auto;margin-left:2rem}.top-nav .nav-search{display:flex;align-items:center;gap:.4rem;margin-left:1.5rem;padding:.3rem .7rem;font-size:.85rem;color:var(--comment-color);background-color:rgba(255,255,255,.05);border:1px solid var(--comment-color);border-radius:999px;text-decoration:none}.top-nav .nav-search:hover{color:var(--orange-color);border-color:var(--orange-color)}.top-nav .nav-search-icon{flex-shrink:0}.top-nav .nav-search span{flex:1}.top-nav .nav-search-kbd{flex-shrink:0;padding:.05rem .35rem;font-size:.7rem;font-family:inherit;color:var(--comment-color);border:1px solid var(--comment-color);border-radius:3px}.page-wrapper{margin:0 auto;padding:1rem 1.5rem 1rem calc(220px + 3.5rem)}.page-wrapper main{max-width:960px;padding:0 1.5rem}.page-wrapper.no-sidebar{padding:1rem 1.5rem}.page-wrapper.no-sidebar main{margin:0 auto}.sidebar{width:220px;font-size:.85rem;position:fixed;left:1.5rem;top:4.5rem;max-height:calc(100vh - 4.5rem);overflow-y:auto}.sidebar .sidebar-section{margin-bottom:1.2rem}.sidebar .sidebar-section h4{margin:0 0 .3rem 0;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--comment-color)}.sidebar .sidebar-section h4 a{color:var(--comment-color);text-decoration:none}.sidebar .sidebar-section h4 a:hover{color:var(--blue-color)}.sidebar .sidebar-section h4:before{content:none}.sidebar .sidebar-section ul{list-style:none;padding:0;margin:0}.sidebar .sidebar-section ul li{padding:.15rem 0}.sidebar .sidebar-section ul li a{display:block;padding:.15rem .5rem;border-radius:3px;color:var(--fg-color);text-decoration:none}.sidebar .sidebar-section ul li a:hover{color:var(--orange-color);background-color:rgba(255,255,255,.05)}.sidebar .sidebar-section ul li a.active{color:var(--orange-color);font-weight:bold}.sidebar .sidebar-section ul ul{padding-left:.75rem}.hero{text-align:center;padding:2rem 0}.hero h1:before{content:none}.badges{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin:1rem 0 3rem}.badges img{vertical-align:middle}.intro{text-align:left}article h1:first-child{margin-top:0}article ul{padding-left:1.5rem}.meta{font-size:.9rem;color:var(--comment-color)}.post-author{display:flex;align-items:center;gap:1rem;margin:.75rem 0 1rem}.post-author .avatar-photo{display:block;width:3.6rem;height:3.6rem;border-radius:50%;border:none}.post-author-intro{display:flex;flex-direction:column}.post-author-name{font-size:1.1rem;font-weight:700;color:var(--fg-color);text-decoration:none}.post-author-name:hover{color:var(--orange-color)}.post-author-title{margin-top:.25rem;font-size:.8rem;color:var(--comment-color)}.tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem}.tags a{padding:.15rem .6rem;border:1px solid var(--green-color);border-radius:999px;color:var(--green-color);font-size:.85rem;text-decoration:none}.tags a:hover{background-color:rgba(255,255,255,.05)}ul.blog{list-style:none;padding-left:0}ul.blog li{padding-bottom:2rem;margin-bottom:2rem;border-bottom:1px solid var(--cyan-color)}ul.blog li:last-child{padding-bottom:0;margin-bottom:0;border-bottom:none}ul.blog h2{margin-bottom:.5rem}ul.blog h2:before{content:"• ";color:var(--orange-color)}ul.blog .excerpt{margin:1rem 0}ul.blog .excerpt p:last-child{margin-bottom:0}ul.blog .excerpt h1,ul.blog .excerpt h2,ul.blog .excerpt h3,ul.blog .excerpt h4{font-size:1rem;color:var(--fg-color);margin-bottom:.5rem}ul.blog .excerpt h1:before,ul.blog .excerpt h2:before,ul.blog .excerpt h3:before,ul.blog .excerpt h4:before{content:none}ul.blog footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem}ul.blog footer .tags{margin-top:0}ul.blog .read-more{white-space:nowrap;font-size:.9rem}.search-box{margin:1.5rem 0}.search-box input{width:100%;max-width:480px;padding:.5rem .75rem;font:inherit;background-color:rgba(255,255,255,.05);color:var(--fg-color);border:1px solid var(--cyan-color);border-radius:5px}.search-box input:focus{outline:none;border-color:var(--orange-color)}.search-results{list-style:none;padding-left:0}.search-results li{margin-bottom:1.5rem}.search-results a{font-weight:bold}.search-results .meta{margin-top:.2rem}.site-footer{text-align:center;padding:2rem 1.5rem;font-size:.85rem;color:var(--comment-color)}.site-footer a{color:var(--orange-color)}@media (max-width: 1200px){body{font-size:.85rem}}@media (max-width: 900px){.page-wrapper{padding-left:1.5rem}.sidebar{width:100%;position:static;left:auto;max-height:none}.top-nav{flex-direction:column;gap:.5rem}.top-nav .nav-links-left,.top-nav .nav-links-right{flex-wrap:wrap;justify-content:center}.top-nav .nav-links-left{margin-right:0;margin-left:0}}