@charset "UTF-8";*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}:target{scroll-margin-block:5ex}img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}p,h1,h2,h3{overflow-wrap:break-word}:root{--gap: 14px;--font-tiny: 12px;--font-small: 14px;--width: 768px;--border: 1.5px;--radius: 4px;--logo: #000;--subfaded-text: rgba(0, 0, 0, .8);--faded-text: rgba(0, 0, 0, .4);--faded-line: rgba(0, 0, 0, .2);--faded-bg: rgba(0, 0, 0, .06);--shiki-tabs-selected-bg: #171717;--shiki-tabs-selected-text: #fff;--shiki-tabs-bg: rgba(0, 0, 0, .08);--shiki-tabs-text: #171717;--shiki-background: transparent;--shiki-color-text: #171717;--shiki-color-background: transparent;--shiki-token-constant: #0068d6;--shiki-token-string: #297a3a;--shiki-token-comment: #666666;--shiki-token-keyword: #bd2864;--shiki-token-parameter: #a35200;--shiki-token-function: #7820bc;--shiki-token-string-expression: #297a3a;--shiki-token-punctuation: #171717;--shiki-token-link: #297a3a;--diff-add: rgba(41, 122, 58, .2);--highlight: rgba(41, 122, 58, .2);--diff-add-color: rgb(41, 122, 58);--dot-size: 8px}[data-theme=light]{--text: #171717;--bg: #ffffff;--subfaded-text: rgba(33, 33, 33, .8);--faded-text: rgba(33, 33, 33, .4);--faded-line: rgba(33, 33, 33, .2);--faded-bg: rgba(33, 33, 33, .06);--code-border: rgb(235, 235, 235);--code-bg: #fafafa;--code-text: rgb(102, 102, 102)}[data-theme=dark]{--bg: #18181a;--text: rgb(243, 244, 246);--logo: rgb(243, 244, 246);--subfaded-text: rgba(243, 244, 246, .8);--faded-text: rgba(243, 244, 246, .4);--faded-line: rgba(243, 244, 246, .2);--faded-bg: rgba(243, 244, 246, .06);--shiki-color-text: #d1d1d1;--shiki-token-constant: #79b8ff;--shiki-token-string: #ffab70;--shiki-token-comment: #6b737c;--shiki-token-keyword: #f97583;--shiki-token-parameter: #ff9800;--shiki-token-function: #b392f0;--shiki-token-string-expression: #4bb74a;--shiki-token-punctuation: #bbbbbb;--shiki-token-link: #ffab70;--code-border: #6b737c;--code-bg: #1a1a1a;--shiki-tabs-selected-bg: rgb(237, 237, 237);--shiki-tabs-selected-text: #1a1a1a;--shiki-tabs-bg: rgba(255, 255, 255, .09);--shiki-tabs-text: #fff}.text-faded-text{color:var(--faded-text)}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none;scrollbar-gutter:stable}body{margin:50px 0;background-color:var(--bg);color:var(--text);font:18px/1.5 var(--font-ibm-plex-sans),sans-serif;font-feature-settings:"kern" 1,"liga" 1,"calt" 1;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}.flex{display:flex}.flex-column{flex-direction:column}.flex-center,.center{align-items:center}.align-top{align-items:flex-start}.baseline{align-items:baseline}.space-between{justify-content:space-between}.full-width{width:100%}.px-1{padding-left:var(--gap);padding-right:var(--gap)}.ml-auto{margin-left:auto}.mt{margin-top:var(--gap)}.mt-2{margin-top:calc(var(--gap) * 2)}.mb{margin-bottom:var(--gap)}.mb-2{margin-bottom:calc(var(--gap) * 2)}.lh-1{line-height:1}.gap-half{gap:calc(var(--gap) / 2)}.gap-1{gap:var(--gap)}.gap-2{gap:calc(var(--gap) * 2)}.no-list{list-style:none;margin:0!important;padding:0!important}.top-border{border-top:var(--border) solid var(--faded-line);padding-top:var(--gap)}.faded{color:var(--faded-text)}[hidden],template{display:none!important}[aria-disabled=true],[aria-disabled=true] span{cursor:not-allowed;color:var(--faded-text);border:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.pagination [aria-disabled]{opacity:.5;cursor:not-allowed}.theme-selector svg{color:var(--text);width:16px;height:auto}.theme-selector ul{list-style:none;padding:0;margin:0;background:var(--faded-bg);line-height:1;border-radius:var(--radius);align-items:center;justify-content:center}.theme-selector li{display:flex}.theme-selector button{background:none;border:none;cursor:pointer;padding:0;height:24px;width:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius);color:var(--text);transition:background .2s ease}.theme-selector button[data-toggle-theme-active],.theme-selector button:hover{background:var(--faded-bg)}.wrap{width:100%;max-width:var(--width);padding-left:calc(var(--gap) * 1.5);padding-right:calc(var(--gap) * 1.5)}.nav{display:flex;width:100%;justify-content:space-between}.logo{width:2.5rem;height:auto;display:flex;border-bottom:0;color:var(--logo)}.page{display:flex;flex-direction:column;gap:35px;align-items:center;position:relative}.content{display:flex;flex-direction:column;gap:var(--gap);align-items:center}.content>*{width:100%;max-width:var(--width)}.content figure{display:flex;gap:calc(var(--gap) / 2);flex-direction:column;border-radius:var(--radius);width:calc(var(--width) + (var(--gap)));max-width:calc(var(--width) + (var(--gap)));overflow:hidden;align-items:center;justify-content:center}.content figure embed,.content figure img{color:var(--text)}.content>figure>img,.content>figure>video{border-radius:var(--radius);object-fit:scale-down;overflow:hidden;width:100%}.content>figure>a{border:none}.post-info{color:var(--faded-text);margin-left:4px;font-size:var(--font-small);display:flex;align-items:center}figcaption{text-align:center;font-size:var(--font-small);font-style:italic}[role=alert]{padding:var(--gap);border-left:3px solid var(--faded-line);background:var(--faded-bg);border-radius:var(--radius);max-width:var(--width);margin:var(--gap) 0}table{table-layout:fixed;width:100%;text-align:left;margin-top:1em;margin-bottom:1em;font-size:.875em;text-indent:0;border-color:inherit;border-collapse:collapse}thead{border-bottom:1px solid var(--faded-line)}th{font-weight:600;vertical-align:top;padding-bottom:1em}th+th{padding-left:.6em}tbody tr:first-of-type td{padding-top:1em}td{word-wrap:break-word;word-break:break-word}td+td{padding-left:.6em}tr+tr td{padding-bottom:.6em}select{padding:.5em;border-radius:var(--radius);border:1px solid var(--faded-line);background:transparent;color:var(--faded-text);font-size:var(--font-small);margin:.5em 0}.dot{display:inline-block;width:.2em;height:.2em;border-radius:50%;background-color:var(--faded-text)}.single h1{margin-bottom:calc(var(--gap) * 1)}.badge{padding:1px 3px;border-radius:2px;font-size:10px;text-transform:uppercase;position:relative;margin:0 3px 0 0;font-weight:500;color:var(--text);background:var(--faded-bg)}.lined{padding-bottom:.6rem;padding-top:.6rem}.lined+.lined{border-top:1px solid var(--faded-line)}.not-found{display:flex;flex-direction:column;gap:calc(var(--gap) * 2)}.not-found__intro{display:flex;flex-direction:column;gap:var(--gap)}.not-found__intro p{max-width:39rem;margin:0;color:var(--subfaded-text)}.not-found__title{margin:0;max-width:14ch;font-size:4rem;line-height:.95;text-wrap:balance}.not-found__status{width:fit-content;padding:2px 6px;border:1px solid var(--faded-line);border-radius:var(--radius);color:var(--faded-text);font-size:var(--font-tiny);line-height:1.5}.not-found__actions{display:flex;flex-wrap:wrap;gap:var(--gap)}.not-found__actions a{display:inline-flex;min-height:40px;align-items:center;gap:calc(var(--gap) / 2);padding:0 12px;border:1px solid var(--faded-line);border-radius:var(--radius);background:var(--faded-bg);line-height:1;transition:border-color .2s ease,background .2s ease}.not-found__actions a:hover{border-color:var(--text);background:transparent}.not-found__actions a>span{border:0}@media(max-width:500px){.not-found__title{max-width:12ch;font-size:2.5rem}.not-found__actions a{flex:1 1 100%;justify-content:center}}.terminal-panel{overflow:hidden;border:1px solid var(--code-border);border-radius:var(--radius);background:var(--code-bg)}.terminal-panel__header{display:flex;min-height:46px;align-items:center;gap:var(--gap);padding:0 var(--gap);border-bottom:1px solid var(--code-border)}.terminal-panel__controls{display:flex;flex:0 0 auto;gap:6px}.terminal-panel__controls span{display:block;width:10px;height:10px;border-radius:50%;background:var(--faded-line)}.terminal-panel__controls span:nth-child(1){background:#ff5f57}.terminal-panel__controls span:nth-child(2){background:#ffbd2e}.terminal-panel__controls span:nth-child(3){background:#28c840}.terminal-panel__title{display:flex;min-width:0;align-items:center;gap:calc(var(--gap) / 2);color:var(--faded-text);font-size:var(--font-small);line-height:1}.terminal-panel__body{display:flex;flex-direction:column;gap:calc(var(--gap) * .8);padding:var(--gap);overflow-x:auto;color:var(--code-text, var(--text));font-size:var(--font-small);line-height:1.55}.terminal-panel__body p{margin:0;white-space:nowrap}.terminal-panel__body ol{display:grid;gap:4px;margin:0;padding:0;list-style:none}.terminal-panel__body li{display:grid;grid-template-columns:minmax(10rem,.85fr) minmax(16rem,1fr);gap:var(--gap);min-width:34rem;padding-top:4px;border-top:1px solid var(--faded-line)}.terminal-panel__body li span:first-child{color:var(--shiki-token-function)}.terminal-panel__body li span:last-child{color:var(--subfaded-text)}.terminal-panel__body .prompt{color:var(--shiki-token-string)}.terminal-panel__body .line-muted{color:var(--faded-text)}.terminal-panel__body .line-success{color:var(--diff-add-color)}@media(max-width:500px){.terminal-panel__body li{grid-template-columns:1fr;gap:0;min-width:20rem}}.analytics-page .range-nav{display:flex;gap:2px;margin-top:var(--gap)}.analytics-page .range-link{padding:4px 12px;font-size:var(--font-small);border:1px solid var(--faded-line);color:var(--faded-text);text-decoration:none}.analytics-page .range-link:first-child{border-radius:var(--radius) 0 0 var(--radius)}.analytics-page .range-link:last-child{border-radius:0 var(--radius) var(--radius) 0}.analytics-page .range-link.active{background:var(--text);color:var(--bg);border-color:var(--text)}.analytics-page .path-filter{display:inline-flex;align-items:center;gap:6px;font-size:var(--font-small);font-weight:400;color:var(--faded-text);background:var(--faded-bg);padding:2px 8px;border-radius:var(--radius);vertical-align:middle;margin-left:8px}.analytics-page .clear-filter{color:var(--faded-text);text-decoration:none;font-size:1.1em;line-height:1}.analytics-page .stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap);margin-top:var(--gap)}.analytics-page .stat-card{display:flex;flex-direction:column;padding:var(--gap);border:1px solid var(--faded-line);border-radius:var(--radius)}.analytics-page .stat-value{font-size:1.5rem;font-weight:600;line-height:1.2}.analytics-page .stat-delta{font-size:var(--font-small);margin-top:2px}.analytics-page .stat-delta.positive{color:#297a3a}.analytics-page .stat-delta.negative{color:#bd2864}.analytics-page .stat-label{font-size:var(--font-small);color:var(--faded-text);margin-top:4px}.analytics-page .section{margin-top:calc(var(--gap) * 2.5)}.analytics-page .section h2{margin-bottom:0}.analytics-page .section-sub{font-size:var(--font-small);margin:0}.analytics-page .chart-wrap{position:relative;width:100%;margin:var(--gap) 0}.analytics-page .chart-wrap svg{width:100%;height:auto;display:block;overflow:hidden}.analytics-page .chart-wrap .tip{position:absolute;top:0;transform:translate(-50%);background:var(--bg);border:1px solid var(--faded-line);border-radius:var(--radius, 4px);padding:4px 8px;font-size:12px;pointer-events:none;display:flex;flex-direction:column;gap:2px;white-space:nowrap}.analytics-page .two-col{display:grid;grid-template-columns:1fr 1fr;gap:calc(var(--gap) * 2);margin-top:calc(var(--gap) * 2.5)}.analytics-page .two-col .section{margin-top:0}.analytics-page .row{display:flex;justify-content:space-between;align-items:baseline;gap:1em}.analytics-page .row>:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.analytics-page .row-count{flex-shrink:0;font-variant-numeric:tabular-nums;color:var(--faded-text)}.analytics-page .recent-row{gap:.75em;font-size:var(--font-small)}.analytics-page .recent-time{flex-shrink:0;color:var(--faded-text);min-width:auto}.analytics-page .recent-path{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.analytics-page .recent-flag{flex-shrink:0}@media(max-width:600px){.analytics-page .stats-grid{grid-template-columns:repeat(2,1fr)}.analytics-page .two-col{grid-template-columns:1fr;gap:0}.analytics-page .two-col .section{margin-top:calc(var(--gap) * 2.5)}}h1{font-size:2em}h2{font-size:1.2em}h1+h2,h2+h3{margin-top:0}h1,h2,h3{font-weight:600;line-height:1.1;text-wrap:balance;margin-top:calc(2 * var(--gap))}[role=alert]+h1,[role=alert]+h2{margin-top:0}sup,sub{vertical-align:baseline;position:relative;font-size:.7em;line-height:1}sup{bottom:1.4ex}sub{top:.5ex}strong{font-weight:600}a{color:inherit;text-decoration:none}a:hover{color:var(--text)}a>span{transition:.5s ease;border-bottom:var(--border) solid var(--faded-line)}a:hover>span{border-bottom-color:var(--text)}.mono,pre,samp,kbd,code{font-family:var(--font-mono-lisa),ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-variant-ligatures:no-contextual common-ligatures;font-variation-settings:normal;font-weight:400}code{font-style:normal;font-size:inherit}.small-text{font-size:var(--font-small)}.content ul,.content ol{display:flex;flex-direction:column;gap:var(--gap);padding:0 0 0 1em}.content ul{list-style-type:none}.content ul li{position:relative;padding-left:calc(var(--gap) * 1)}.content ul li:before{content:"—";display:inline-block;color:inherit;position:absolute;margin-left:calc(var(--gap) * -2)}.code-header{background:var(--code-bg);height:48px;border-bottom:1px solid var(--code-border);border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.code-icon{width:16px;height:16px;flex:0 0 16px}.copy-code-wrapper{position:relative;border:1px solid var(--code-border);border-radius:var(--radius)}.copy-code-wrapper pre{margin:0;overflow-x:auto;counter-reset:line;padding:calc(var(--gap)) 0}.copy-code-wrapper code{display:grid;font-size:13px;line-height:24px;flex-direction:column}.copy-code-wrapper code:before,.copy-code-wrapper code:after{content:""}.copy-code-wrapper code>.line{height:24px;position:relative;padding:0 var(--gap)}.copy-btn{height:32px;width:32px;border-radius:var(--radius);border:none;color:var(--text);cursor:pointer;padding:0;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:inherit;position:relative;transition:background .2s ease}.copy-btn.fluid{width:auto;min-width:24px;height:24px;padding-left:8px;border:1px solid var(--faded-text);color:var(--faded-text);font-size:var(--font-tiny)}.copy-btn.fluid .icon-holder{width:24px;height:24px;position:relative}.copy-btn:hover{background:var(--faded-bg)}.copy-btn.copied .btn-icon-copy{animation:code-icon-hide 1.25s forwards}.copy-btn.copied .btn-icon-check{animation:code-icon-show 1.25s .15s forwards}.line.has-highlight{background:var(--highlight)}.diff.add{background:var(--diff-add)}.diff.add:before{content:"+";color:var(--diff-add-color)}.highlighted-word{background-color:var(--highlight);border:1px solid var(--highlight);padding:1px 3px;margin:-1px -3px;border-radius:4px}.btn-holder{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:16px;height:16px}.btn-icon-check{opacity:0;transform:translate(-50%,-50%) scale(.5)}@keyframes code-icon-hide{0%{opacity:1;transform:translate(-50%,-50%)}20%{opacity:0;transform:translate(-50%,-50%) scale(.5)}80%{opacity:0;transform:translate(-50%,-50%) scale(.5)}to{opacity:1;transform:translate(-50%,-50%)}}@keyframes code-icon-show{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}20%{opacity:1;transform:translate(-50%,-50%)}60%{opacity:1;transform:translate(-50%,-50%)}80%{opacity:0;transform:translate(-50%,-50%) scale(.5)}to{opacity:0;transform:translate(-50%,-50%) scale(.5)}}code{text-align:left;white-space:pre;word-spacing:normal;word-break:normal;font-feature-settings:"ss09",none;font-variant-ligatures:none;-webkit-hyphens:none;hyphens:none}.inline-code{font-size:medium;font-feature-settings:"ss09",none;font-variant-ligatures:none;text-wrap:auto}@media(max-width:767px){.content figure{max-width:100%}}@media(max-width:500px){.content>*,.content figure{width:100%;max-width:100%}.post-info.article-info{flex-direction:column;align-items:baseline}.post-info.sm-ml-0,.sm-ml-0{margin-left:0}.sm-hide{display:none!important}.sm-flex-column{flex-direction:column}.sm-only-gap-fifth{gap:calc(var(--gap) / 5)}.sm-only-gap-1{gap:calc(var(--gap))}}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}
