:root{--gap:24px;--content-gap:20px;--nav-width:1024px;--main-width:720px;--header-height:60px;--footer-height:60px;--radius:8px}*,:after,:before{box-sizing:border-box}html{-webkit-tap-highlight-color:transparent;scroll-behavior:smooth;overflow-y:scroll}a,button,body,h1,h2,h3,h4,h5,h6{color:var(--primary)}body{word-break:break-word;background:var(--theme);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:18px;line-height:1.6}h1,h2,h3,h4,h5,h6{margin:0;line-height:1.2}p{margin:0}ul{margin:0;padding:0}a{text-decoration:none}figure{margin:0}table{border-collapse:collapse;border-spacing:0;word-break:keep-all;width:100%;overflow-x:auto}button,input,textarea{font:inherit;background:0 0;border:0;padding:0}input,textarea{outline:0}button,input[type=button],input[type=submit]{cursor:pointer}img{max-width:100%;display:block}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--primary);border:5px solid var(--theme);border-radius:var(--radius)}::-webkit-scrollbar-thumb:hover{background:var(--secondary)}@media screen and (width>=768px){::-webkit-scrollbar{width:19px;height:11px}}.legacy-banner{background:var(--banner-bg);color:var(--banner-fg);text-align:center;padding:10px var(--gap);font-size:15px;line-height:1.4}.legacy-banner a{color:inherit;text-underline-offset:2px;font-weight:600;text-decoration:underline}.legacy-banner strong{white-space:nowrap}.nav{max-width:calc(var(--nav-width) + var(--gap) * 2);line-height:var(--header-height);flex-wrap:wrap;justify-content:space-between;margin-inline:auto;display:flex}.nav a{display:block}.logo,#menu{margin:auto var(--gap);display:flex}.logo{flex-wrap:inherit}.logo a{font-size:24px;font-weight:700}.logo a img{vertical-align:middle;pointer-events:none;border-radius:6px;margin-inline-end:8px;display:inline;transform:translateY(-10%)}.logo-switches{flex-wrap:inherit;margin:auto 4px;display:inline-flex}button#theme-toggle{align-items:center;margin:auto 4px;font-size:26px;display:inline-flex}.dark #moon,:root:not(.dark) #sun{display:none}#menu{word-break:keep-all;white-space:nowrap;list-style:none;overflow-x:auto}#menu li+li{margin-inline-start:var(--gap)}#menu a{font-size:16px}#menu .active{border-bottom:2px solid;font-weight:500}#menu a svg{vertical-align:baseline;margin-inline-start:2px;display:inline}.main{min-height:calc(100vh - var(--header-height) - var(--footer-height));max-width:calc(var(--main-width) + var(--gap) * 2);padding:var(--gap);margin:auto;position:relative}.page-header h1{font-size:40px}.page-header h1 svg{vertical-align:middle;display:inline}.pagination{display:flex}.pagination a{color:var(--theme);background:var(--primary);border-radius:18px;padding:0 16px;font-size:13px;line-height:36px}.pagination .next{margin-inline-start:auto}.social-icons{flex-wrap:wrap;padding:12px 0;display:flex}.social-icons a:not(:last-of-type){margin-inline-end:12px}.social-icons a svg{width:26px;height:26px}code{direction:ltr}.footer,.top-link{color:var(--secondary);font-size:12px}.footer{max-width:calc(var(--main-width) + var(--gap) * 2);padding:calc((var(--footer-height) - var(--gap)) / 2) var(--gap);text-align:center;margin:auto;line-height:24px}.footer span{margin-inline: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;z-index:99;background:var(--tertiary);border-radius:64px;width:42px;height:42px;padding:12px;transition:visibility .5s,opacity .8s linear;position:fixed;bottom:60px;right:30px}.top-link,.top-link svg{filter:drop-shadow(0px 0px 0px var(--theme))}.footer a:hover,.top-link:hover{color:var(--primary)}.top-link:focus,#theme-toggle:focus{outline:0}.first-entry{min-height:320px;margin:var(--gap) 0 calc(var(--gap) * 2) 0;flex-direction:column;justify-content:center;display:flex;position:relative}.first-entry .entry-header h1{font-size:34px;line-height:1.3}.first-entry .entry-content{margin:14px 0;font-size:16px}.first-entry .entry-footer{font-size:14px}.home-info .entry-content{color:var(--content);-webkit-line-clamp:unset;display:block}.home-info .entry-content p+p{margin-top:10px}.home-info .entry-content code{background:var(--code-bg);border-radius:2px;padding:1px 4px;font-size:.9em}.post-entry{margin-bottom:var(--gap);padding:var(--gap);background:var(--entry);border-radius:var(--radius);border:1px solid var(--border);transition:transform .1s;position:relative}.post-entry:active{transform:scale(.96)}.entry-header h2{font-size:24px;line-height:1.3}.entry-content{color:var(--secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:8px 0;font-size:14px;line-height:1.6;display:-webkit-box;overflow:hidden}.entry-footer{color:var(--secondary);font-size:13px}.entry-link{position:absolute;inset:0}.page-header,.post-header{margin:24px auto var(--content-gap) auto}.post-title{margin-bottom:2px;font-size:40px}.post-description{margin-top:10px;margin-bottom:5px}.post-meta,.breadcrumbs{color:var(--secondary);flex-wrap:wrap;font-size:14px;display:flex}.breadcrumbs a{font-size:16px}.post-content{color:var(--content)}.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,.toc a:hover{-webkit-box-decoration-break:clone;box-decoration-break:clone;box-shadow:0 1px}.post-content a code{box-shadow:0 -1px 0 var(--primary) inset;border-radius:0;margin:auto 0}.post-content del{background:linear-gradient(to right, var(--primary) 100%, transparent 0) 0 50%/1px 1px repeat-x;text-decoration:none}.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{flex-wrap:wrap;margin:0;display:flex}.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:32px}.post-content table th,.post-content table td{border-bottom:1px solid var(--border);min-width:80px;padding:12px 8px;line-height:1.5}.post-content table th{text-align:start;font-size:14px}.post-content code{background:var(--code-bg);border-radius:2px;margin:auto 4px;padding:4px 6px;font-size:.78em;line-height:1.5}.post-content pre{margin:10px auto var(--content-gap);border-radius:var(--radius);direction:ltr;padding:10px;font-size:.78em;line-height:1.5;overflow-x:auto}.post-content pre code{font-size:inherit;background:0 0;border-radius:0;margin:0;padding:0;display:block}.post-content pre:not(.astro-code){color:var(--content);background:var(--code-bg)}.dark .astro-code,.dark .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}.post-content blockquote{border-inline-start:3px solid var(--primary);margin:20px 0;padding:0 14px}.post-content hr{background:var(--tertiary);border:0;height:2px;margin:30px 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);margin:8px 0 16px;font-size:16px;font-weight:700}.post-content figure>figcaption>p{color:var(--secondary);font-size:14px;font-weight:400}.post-content .youtube-embed{height:0;margin-bottom:var(--content-gap);border-radius:var(--radius);padding-bottom:56.25%;position:relative;overflow:hidden}.post-content .youtube-embed iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.toc{border:1px solid var(--border);background:var(--code-bg);border-radius:var(--radius);margin:0 2px 40px;padding:.4em}.dark .toc{background:var(--entry)}.toc details summary{cursor:zoom-in;margin-inline-start:20px}.toc details[open] summary{cursor:zoom-out}.toc .details{font-weight:500;display:inline}.toc .inner{margin:0 20px;padding:10px 20px}.toc ul{list-style:none}.toc li ul{margin-inline-start:var(--gap)}.toc summary:focus{outline:0}.post-footer{margin-top:56px}.post-terms{flex-wrap:wrap;align-items:baseline;gap:0 10px;display:flex}.terms-label{letter-spacing:1px;text-transform:uppercase;color:var(--secondary);margin-bottom:5px;font-size:small}.post-tags li{margin-inline-end:3px;margin-bottom:5px;display:inline-block}.post-content .anchor{box-shadow:none}.post-tags a,.share-buttons,.paginav{border-radius:var(--radius);background:var(--code-bg);border:1px solid var(--border)}.post-tags a{background:var(--tertiary);color:var(--primary);padding-inline:14px;font-size:14px;font-weight:500;line-height:34px;display:block}.post-tags a:hover,.paginav a:hover{background:var(--border)}.share-buttons{justify-content:center;margin:14px 0;padding-inline-start:var(--radius);display:flex;overflow-x:auto}.share-buttons a{margin-top:10px}.share-buttons a:not(:last-of-type){margin-inline-end:12px}.share-buttons a svg{width:30px;height:30px}h1:hover .anchor,h2:hover .anchor,h3:hover .anchor,h4:hover .anchor,h5:hover .anchor,h6:hover .anchor{color:var(--secondary);user-select:none;margin-inline-start:8px;font-weight:500;display:inline-flex}.paginav{margin:10px 0;line-height:30px;display:flex}.paginav a{border-radius:var(--radius);padding-inline:14px}.paginav .title{letter-spacing:1px;text-transform:uppercase;color:var(--secondary);font-size:small}.paginav .prev,.paginav .next{width:50%}.paginav span:hover:not(.title){box-shadow:0 1px}.paginav .next{text-align:right;margin-inline-start:auto}.terms-tags li{margin:10px;font-weight:500;display:inline-block}.terms-tags a{background:var(--tertiary);border:1px solid var(--border);border-radius:6px;padding:3px 10px;transition:transform .1s;display:block}.terms-tags a:hover{background:var(--border)}.terms-tags a:active{transform:scale(.96)}.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{align-items:flex-start;padding:10px 0;display:flex}.archive-month-header{width:200px;margin:25px 0}.archive-month:not(:last-of-type){border-bottom:1px solid var(--border)}.archive-entry{margin:10px 0;padding:5px;position:relative}.archive-entry-title{margin:5px 0;font-weight:400}.archive-count,.archive-meta{color:var(--secondary);font-size:14px}#searchbox input{width:100%;color:var(--primary);border:2px solid var(--tertiary);border-radius:var(--radius);padding:4px 10px;font-weight:700}#searchbox input:focus{border-color:var(--secondary)}#searchResults{width:100%;margin:10px 0}#searchResults li{border-radius:var(--radius);background:var(--entry);border:1px solid var(--border);margin:10px 0;padding:10px;font-weight:500;list-style:none;position:relative}#searchResults li:active{transition:transform .1s;transform:scale(.98)}#searchResults .excerpt{color:var(--secondary);margin-top:4px;font-size:14px;font-weight:400}#searchResults .excerpt mark{background:var(--tertiary);color:var(--primary)}#searchResults a.result-link{outline:none;position:absolute;inset:0}#searchStatus{color:var(--secondary);margin-top:10px;font-size:14px}.not-found{justify-content:center;align-items:center;height:80%;font-size:160px;font-weight:700;display:flex;position:absolute;left:0;right:0}@media screen and (width<=768px){:root{--gap:14px}.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 (width<=900px){.list .top-link{transform:translateY(-5rem)}}@media (prefers-reduced-motion){html{scroll-behavior:auto}.terms-tags a:active,.post-entry:active,.top-link,#searchResults li:active{transform:none}}:root{--theme:#eceff1;--entry:#cfd8dc;--primary:#ad1457;--secondary:#004d40;--tertiary:#f3e5f5;--content:#212121;--code-bg:#b2dfdb;--border:#b0bec5;--banner-bg:#fff8e1;--banner-fg:#4e342e}.dark{--theme:#263238;--entry:#37474f;--primary:#ff4081;--secondary:#64ffda;--tertiary:#311b92;--content:#eee;--code-bg:#37474f;--border:#455a64}:root[data-site=legacy]{--theme:#f7f1e3;--entry:#efe4cc;--primary:#8d3b0a;--secondary:#5d4037;--tertiary:#ffe0b2;--content:#3e2723;--code-bg:#e8d9b8;--border:#d3c19c;--banner-bg:#8d3b0a;--banner-fg:#fff3e0}.dark[data-site=legacy]{--theme:#2a1f16;--entry:#3a2b1f;--primary:#ffb74d;--secondary:#d7ccc8;--tertiary:#5d4037;--content:#efebe9;--code-bg:#3a2b1f;--border:#5d4037;--banner-bg:#ffb74d;--banner-fg:#2a1f16}
