/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
   ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */

html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/* Sections
   ========================================================================== */

/**
 * Remove the margin in all browsers.
 */

body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */

main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */

hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/* Text-level semantics
   ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */

a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */

abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */

small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */

img {
  border-style: none;
}

/* Forms
   ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */

button,
input { /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */

button,
select { /* 1 */
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */

button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */

fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */

legend {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */

textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */

[type="checkbox"],
[type="radio"] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */

[type="search"] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */

[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/* Interactive
   ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */

details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */

summary {
  display: list-item;
}

/* Misc
   ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */

template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */

[hidden] {
  display: none;
}

.dark-mode {
  .highlight table td {
    padding: 5px;
  }

  .highlight table pre {
    margin: 0;
  }

  .highlight .p {
    color: #E6E6E6;
  }

  .highlight .dl {
    color: #CE9178;
  }

  .highlight .cm {
    color: #6A9955;
    font-style: italic;
  }

  .highlight .cp {
    color: #999999;

  }

  .highlight .c1 {
    color: #6A9955;
    font-style: italic;
  }

  .highlight .cs {
    color: #999999;
    font-style: italic;
  }

  .highlight .c,
  .highlight .cd {
    color: #6A9955;
    font-style: italic;
  }

  .highlight .err {
    color: #a61717;
    background-color: #e3d2d2;
  }

  .highlight .gd {
    color: #569CD6;
    background-color: #ffdddd;
  }

  .highlight .ge {
    color: #569CD6;
    font-style: italic;
  }

  .highlight .gr {
    color: #aa0000;
  }

  .highlight .gh {
    color: #999999;
  }

  .highlight .gi {
    color: #569CD6;
    background-color: #ddffdd;
  }

  .highlight .go {
    color: #888888;
  }

  .highlight .gp {
    color: #555555;
  }

  .highlight .gs {
    font-weight: bold;
  }

  .highlight .gu {
    color: #aaaaaa;
  }

  .highlight .gt {
    color: #aa0000;
  }

  .highlight .kc {
    color: #569CD6;

  }

  .highlight .kd {
    color: #569CD6;
  }

  .highlight .kn {
    color: #569CD6;

  }

  .highlight .kp {
    color: #569CD6;
  }

  .highlight .kr {
    color: #569CD6;
  }

  .highlight .kt {
    color: #445588;
  }

  .highlight .k,
  .highlight .kv {
    color: #C586C0;
  }

  .highlight .mf {
    color: #B5CEA8;
  }

  .highlight .mh {
    color: #B5CEA8;
  }

  .highlight .il {
    color: #B5CEA8;
  }

  .highlight .mi {
    color: #B5CEA8;
  }

  .highlight .mo {
    color: #B5CEA8;
  }

  .highlight .m,
  .highlight .mb,
  .highlight .mx {
    color: #B5CEA8;
  }

  .highlight .sb {
    color: #CE9178;
  }

  .highlight .sc {
    color: #CE9178;
  }

  .highlight .sd {
    color: #CE9178;
  }

  .highlight .s2 {
    color: #CE9178;
  }

  .highlight .se {
    color: #CE9178;
  }

  .highlight .sh {
    color: #CE9178;
  }

  .highlight .si {
    color: #CE9178;
  }

  .highlight .sx {
    color: #CE9178;
  }

  .highlight .sr {
    color: #009926;
  }

  .highlight .s1 {
    color: #CE9178;
  }

  .highlight .ss {
    color: #990073;
  }

  .highlight .s {
    color: #CE9178;
  }

  .highlight .na {
    color: #DCDCAA;
  }

  .highlight .nx {
    color: #9CDCFE;
  }

  .highlight .bp {
    color: #999999;
  }

  .highlight .nb {
    color: #0086b3;
  }

  .highlight .nc {
    color: #DCDCAA;
  }

  .highlight .no {
    color: #008080;
  }

  .highlight .nd {
    color: #3c5d5d;
  }

  .highlight .ni {
    color: #800080;
  }

  .highlight .ne {
    color: #DCDCAA;
  }

  .highlight .nf {
    color: #DCDCAA;
  }

  .highlight .nl {
    color: #DCDCAA;
  }

  .highlight .nn {
    color: #555555;
  }

  .highlight .nt {
    color: #C586C0;
  }

  .highlight .vc {
    color: #008080;
  }

  .highlight .vg {
    color: #008080;
  }

  .highlight .vi {
    color: #008080;
  }

  .highlight .nv {
    color: #008080;
  }

  .highlight .ow {
    color: #569CD6;
  }

  .highlight .o {
    color: #569CD6;
  }

  .highlight .w {
    color: #bbbbbb;
  }
  
}

.highlight table td {
  padding: 5px;
}

.highlight table pre {
  margin: 0;
}

.highlight .cm {
  color: #999988;
  font-style: italic;
}

.highlight .cp {
  color: #999999;
  font-weight: bold;
}

.highlight .c1 {
  color: #999988;
  font-style: italic;
}

.highlight .cs {
  color: #999999;
  font-weight: bold;
  font-style: italic;
}

.highlight .c,
.highlight .cd {
  color: #999988;
  font-style: italic;
}

.highlight .err {
  color: #a61717;
  background-color: #e3d2d2;
}

.highlight .gd {
  color: #015493;
  background-color: #ffdddd;
}

.highlight .ge {
  color: #015493;
  font-style: italic;
}

.highlight .gr {
  color: #aa0000;
}

.highlight .gh {
  color: #999999;
}

.highlight .gi {
  color: #015493;
  background-color: #ddffdd;
}

.highlight .go {
  color: #888888;
}

.highlight .gp {
  color: #555555;
}

.highlight .gs {
  font-weight: bold;
}

.highlight .gu {
  color: #aaaaaa;
}

.highlight .gt {
  color: #aa0000;
}

.highlight .kc {
  color: #015493;
  font-weight: bold;
}

.highlight .kd {
  color: #015493;
  font-weight: bold;
}

.highlight .kn {
  color: #015493;
  font-weight: bold;
}

.highlight .kp {
  color: #015493;
  font-weight: bold;
}

.highlight .kr {
  color: #015493;
  font-weight: bold;
}

.highlight .kt {
  color: #445588;
  font-weight: bold;
}

.highlight .k,
.highlight .kv {
  color: #015493;
  font-weight: bold;
}

.highlight .mf {
  color: #015493;
}

.highlight .mh {
  color: #015493;
}

.highlight .il {
  color: #015493;
}

.highlight .mi {
  color: #015493;
}

.highlight .mo {
  color: #015493;
}

.highlight .m,
.highlight .mb,
.highlight .mx {
  color: #015493;
}

.highlight .sb {
  color: #567a0d;
}

.highlight .sc {
  color: #567a0d;
}

.highlight .sd {
  color: #567a0d;
}

.highlight .s2 {
  color: #567a0d;
}

.highlight .se {
  color: #567a0d;
}

.highlight .sh {
  color: #567a0d;
}

.highlight .si {
  color: #567a0d;
}

.highlight .sx {
  color: #567a0d;
}

.highlight .sr {
  color: #009926;
}

.highlight .s1 {
  color: #567a0d;
}

.highlight .ss {
  color: #990073;
}

.highlight .s {
  color: #567a0d;
}

.highlight .na {
  color: #008080;
}

.highlight .bp {
  color: #999999;
}

.highlight .nb {
  color: #0086B3;
}

.highlight .nc {
  color: #445588;
  font-weight: bold;
}

.highlight .no {
  color: #008080;
}

.highlight .nd {
  color: #3c5d5d;
  font-weight: bold;
}

.highlight .ni {
  color: #800080;
}

.highlight .ne {
  color: #b75301;
}

.highlight .nf {
  color: #b75301;
}

.highlight .nl {
  color: #b75301;
}

.highlight .nn {
  color: #555555;
}

.highlight .nt {
  color: #000080;
}

.highlight .vc {
  color: #008080;
}

.highlight .vg {
  color: #008080;
}

.highlight .vi {
  color: #008080;
}

.highlight .nv {
  color: #008080;
}

.highlight .ow {
  color: #015493;
  font-weight: bold;
}

.highlight .o {
  color: #015493;
  font-weight: bold;
}

.highlight .w {
  color: #bbbbbb;
}

* {
  box-sizing: border-box;
}

body{--font-primary: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-monospace: ui-monospace, "Cascadia Mono", "Segoe UI Mono", "Liberation Mono", Menlo, Monaco, Consolas, monospace;--wrapper-width: 20%;background:var(--background-color);color:var(--text-color);font-family:var(--font-primary);font-size:1em;line-height:1.4;word-wrap:break-word;--background-color: #fff;--heading-color: #000;--link-color: #119cd9;--text-color: #28292d;--code-color: #495057;--code-background-color: #f5f5f5;--tag-color: #e5e5e5;--image-saturation: 100%;--btn-brightness: 90%}

.dark-mode{--background-color: #212529;--heading-color: #49a3bc;--link-color: #119cd9;--text-color: #ececec;--code-color: #efb;--code-background-color: #343a40;--tag-color: #46494b;--image-saturation: 80%;--btn-brightness: 110%}

:root{text-rendering:optimizeSpeed}

canvas,caption,center,cite,code,dd,del,dfn,div,dl,dt,em,embed,fieldset,font,form,h1,h2,h3,h4,h5,h6,hr,i,iframe,img,ins,kbd,label,legend,li,menu,object,ol,p,pre,q,s,samp,small,span,strike,strong,sub,sup,table,tbody,td,tfoot,th,thead,tr,tt,u,ul,var{margin:0;padding:0;border:0;background:rgba(0,0,0,0)}

h1,h2,h3,h4,h5,h6,#site-title a{color:var(--heading-color)}

#site-title{font-size:2em;font-weight:bold}

a{color:var(--link-color);text-decoration:none}

a:hover{text-decoration:underline}

#site-menu{list-style-type:none;display:flex}

#site-menu li a{font-size:1.5rem}

#colorscheme-toggle{top:1em;right:1em}

#social{list-style-type:none}

#social li a div{display:inline}

address{font-style:normal}

#license{font-size:.7rem}

.content-header{color:var(--heading-color);font-size:1.333rem}

pre code,code{font-size:.9em;line-height:1.3;border-radius:.8vh;background:var(--code-background-color);color:var(--code-color);overflow-x:auto}

pre code{padding:.6em;display:block;background:linear-gradient(to right, var(--code-background-color) 10%, var(--background-color))}

blockquote{border-radius:.75vh;filter:opacity(75%);font-style:italic}

img{filter:saturate(var(--image-saturation));max-width:100%}

table{border-collapse:collapse}

th{color:var(--heading-color)}

th,td{border:3px solid var(--code-background-color);padding:.2vw}

#license{text-align:right}

@media only screen and (min-width: 64em){.hidden-on-normal-displays{display:none}header.wrapper{position:fixed;top:0;padding:1vh}#site-menu{flex-direction:column}#colorscheme-toggle{position:fixed}#social{position:fixed;bottom:0}#license{position:fixed;writing-mode:vertical-lr;bottom:0;right:0}.page-footer{margin-bottom:1em}}

@media only screen and (max-width: 1239px){.hidden-on-small-displays{display:none}#site-menu{flex-direction:row}#site-menu li a{margin-right:3vw}#colorscheme-toggle{position:absolute}#social,#social li{padding-left:0;display:inline}}

@media screen and (max-width: 720px){#site-menu{flex-direction:column}#social li a div.hidden-on-tiny-displays{display:none}}

.navhead{position:-webkit-sticky;position:sticky;top:0;width:100%;height:64px;border-bottom:1px solid var(--code-background-color);box-shadow:0 1px 6px 0 var(--code-background-color);color:var(--text-color);background-color:var(--background-color);margin:0 auto;z-index:20}

@media(min-width: 80em){.greedy-nav{max-width:60em}}

.site-logo img{height:100%}

.site-title{display:flex;align-self:center;font-weight:bold}

@media screen and (max-width: 64em){.site-title{display:none !important}}

.site-subtitle{display:block;font-size:.625em}

.navhead--menu-item{display:block;list-style-type:none;white-space:nowrap}

nav a.search-toggle{display:flex;flex-direction:row;align-items:center;flex-shrink:0;width:3rem;height:100%;margin:0}

nav a.search-toggle:hover{background-color:var(--code-background-color)}

nav a.search-toggle svg{width:24px;height:24px;margin:auto}

nav .site-logo,nav .site-title{height:100%;align-items:center;align-content:center}

nav .site-logo:hover{background-color:var(--code-background-color)}

nav .visible-links{height:100%;align-items:center}

nav .visible-links li{height:100%}

nav .visible-links a{align-content:center;text-align:center;width:4rem}

nav .visible-links a:hover{background-color:var(--code-background-color)}

.theme-toggle{display:flex;align-items:center}

@-webkit-keyframes _1c92te06{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}

@keyframes _1c92te06{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}

@-webkit-keyframes _1c92te07{0%{transform:rotate(0deg) scale(1.75)}to{transform:rotate(-30deg) scale(1.75)}}

@keyframes _1c92te07{0%{transform:rotate(0deg) scale(1.75)}to{transform:rotate(-30deg) scale(1.75)}}

.theme{--theme-ease3: cubic-bezier(0.25, 0, 0.3, 1);--theme-easeOut5: cubic-bezier(0, 0, 0, 1);--theme-easeInOut5: cubic-bezier(0.9, 0, 0.1, 1);--theme-easeElastic3: cubic-bezier(0.5, 1.25, 0.75, 1.25);--theme-easeElastic4: cubic-bezier(0.5, 1.5, 0.75, 1.25)}

.theme-toggle-button{--icon-fill: var(--link-color);--icon-fill-hover: var(--code-color);background:none;border:none;padding:0;inline-size:32px;block-size:32px;aspect-ratio:1;border-radius:50%;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:rgba(0,0,0,0);outline-offset:5px}

.sun-and-moon{inline-size:100%;block-size:100%;stroke-linecap:round}

.sun-and-moon>.sun{transform-origin:center center;fill:var(--icon-fill)}

.theme-toggle-button:is(:hover,:focus-visible)>.sun-and-moon>.sun{fill:var(--icon-fill-hover)}

:is(.dark-mode) .sun-and-moon>.sun{transform:scale(1.75)}

.sun-and-moon>.moon{transform-origin:center center;fill:var(--icon-fill)}

.theme-toggle-button:is(:hover,:focus-visible)>.sun-and-moon>.moon{fill:var(--icon-fill-hover)}

.sun-and-moon>.sun-beams{transform-origin:center center;stroke:var(--icon-fill);stroke-width:1.5px}

.theme-toggle-button:is(:hover,:focus-visible)>.sun-and-moon>.sun-beams{stroke:var(--icon-fill-hover)}

:is(.dark-mode) .sun-and-moon>.sun-beams{opacity:0}

:is(.dark-mode) .sun-and-moon>.moon>.moon-circle{transform:translateX(-7px)}

.sun-and-moon .moon>.moon-circle{transition:transform .25s var(--theme-easeInOut5)}

@media(hover: none){.theme-toggle-button{inline-size:2.5rem;block-size:2.5rem}}

@media(prefers-reduced-motion: no-preference){.sun-and-moon>.sun{transition:transform .5s var(--theme-easeElastic3)}:is(.dark-mode) .sun-and-moon>.sun{transform:scale(1.75);transition:all .25s var(--theme-ease3)}.sun-and-moon>.sun-beams{transition:transform .5s var(--theme-easeElastic4),opacity .5s var(--theme-ease3)}:is(.dark-mode) .sun-and-moon>.sun-beams{transform:rotate(-25deg);transition-duration:.15s}:is(.dark-mode) .sun-and-moon>.moon>.moon-circle{transition-delay:.25s;transition-duration:.5s}}

@media(prefers-reduced-motion: no-preference)and (hover: hover)and (pointer: fine){:is(.dark-mode) .sun-and-moon:hover .sun{-webkit-animation:_1c92te07 1s ease-in-out infinite;animation:_1c92te07 1s ease-in-out infinite}:is(.dark-mode) .sun-and-moon:hover .moon{-webkit-animation:_1c92te07 1s ease-in-out infinite;animation:_1c92te07 1s ease-in-out infinite}.sun-and-moon:hover>.sun-beams{-webkit-animation:_1c92te06 1s ease-in-out infinite;animation:_1c92te06 1s ease-in-out infinite}}

@supports(cx: 1){:is(.dark-mode) .sun-and-moon>.moon>.moon-circle{transform:translateX(0);cx:17px}.sun-and-moon .moon>.moon-circle{transition:cx .25s var(--theme-easeOut5)}}

.pagination{display:flex;gap:.5em;justify-content:center;align-items:center}

.pagination .pagination-pager{display:inline-block;min-width:2.5rem;padding:.25em .5em;text-align:center;border-radius:.25rem;font-size:.9em;text-decoration:none;font-weight:500;cursor:pointer}

.pagination .pagination-pager.current,.pagination .pagination-pager:hover{background-color:var(--tag-color);color:var(--link-color)}

.pagination .pagination-pager.current{font-weight:bold;cursor:default;pointer-events:none}

.pagination .pagination-ellipsis{display:inline-block;min-width:2.5rem;text-align:center;color:var(--link-color);-webkit-user-select:none;-moz-user-select:none;user-select:none}

.greedy-nav{position:relative;display:flex;align-items:center;min-height:2em;height:100%;flex-direction:row;justify-content:space-between;margin:0 auto}

.greedy-nav a{display:block;height:100%;margin:0;color:var(--text-color);fill:var(--text-color);text-decoration:none;transition:none}

.greedy-nav a.site-logo{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:.5rem;margin-inline-end:.5rem}

.greedy-nav a.site-title{-webkit-margin-start:0;margin-inline-start:0}

.greedy-nav img{transition:none}

.greedy-nav .visible-links{display:flex;justify-content:flex-end;flex:1;overflow:hidden}

.greedy-nav .visible-links li{flex:none}

.greedy-nav .visible-links a{position:relative}

.greedy-nav .visible-links a:before{content:"";position:absolute;inset-inline-start:0;bottom:0;height:4px;background:#6f777d;width:100%;transition:all .2s ease-in-out;transform:scaleX(0) translate3d(0, 0, 0)}

.greedy-nav .visible-links a:hover:before{transform:scaleX(1)}

.greedy-nav .hidden-links{position:absolute;top:100%;inset-inline-end:0;margin-top:15px;padding:5px;border:1px solid #f2f3f3;border-radius:4px;background:#fff;box-shadow:0 2px 4px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12)}

.greedy-nav .hidden-links.hidden{display:none}

.greedy-nav .hidden-links a{margin:0;padding:10px 20px;font-size:1em}

.greedy-nav .hidden-links a:hover{color:#53595e;background:#dbdddf}

.greedy-nav .hidden-links::before{content:"";position:absolute;top:-11px;inset-inline-end:10px;width:0;border-style:solid;border-width:0 10px 10px;border-color:#f2f3f3 rgba(0,0,0,0);display:block;z-index:0}

.greedy-nav .hidden-links::after{content:"";position:absolute;top:-10px;inset-inline-end:10px;width:0;border-style:solid;border-width:0 10px 10px;border-color:#fff rgba(0,0,0,0);display:block;z-index:1}

.greedy-nav .hidden-links li{display:block;border-bottom:1px solid #f2f3f3}

.greedy-nav .hidden-links li:last-child{border-bottom:none}

.no-js .greedy-nav .visible-links{flex-wrap:wrap;overflow:visible}

#main{clear:both;margin-top:1em;margin-inline:auto;padding-inline:1em;-webkit-animation:intro .3s both;animation:intro .3s both;max-width:100%;-webkit-animation-delay:.15s;animation-delay:.15s}

#main::after{clear:both;content:"";display:table}

@media(min-width: 80em){#main{max-width:60em}}

body{display:flex;min-height:100vh;flex-direction:column}

main{min-height:calc(100vh - 364px)}

.initial-content,.search-content{flex:1 0 auto}

@media(min-width: 64em){.page{float:inline-start;width:calc(100% - 325px);-webkit-padding-end:1em;padding-inline-end:1em}}

@media(min-width: 80em){.page{width:calc(100% - 345px)}}

.page .page-inner-wrap{float:inline-start;margin-inline:0;width:100%;clear:both}

.page-inner-wrap header{margin-bottom:.6em}

.page .page-inner-wrap .page-content,.page .page-inner-wrap .page-meta,.page .page-inner-wrap .comment-date,.page .page-inner-wrap .page-share{position:relative;float:inline-start;margin-inline:0;width:100%;clear:both}

.page-title{font-size:1.8em;margin-top:0;line-height:1}

.page-title a{color:#3d4144;text-decoration:none}

.page-title+.page-meta,.page-title+.comment-date{margin-top:-0.5em}

.page-lead{font-size:1.25em}

.page-content h2,.page-content h3{margin-bottom:.5em}

.page-content h1 .header-link,.page-content h2 .header-link,.page-content h3 .header-link,.page-content h4 .header-link,.page-content h5 .header-link,.page-content h6 .header-link{position:relative;inset-inline-start:.5em;opacity:0;font-size:.8em;transition:opacity .2s ease-in-out .1s}

.page-content h1:hover .header-link,.page-content h2:hover .header-link,.page-content h3:hover .header-link,.page-content h4:hover .header-link,.page-content h5:hover .header-link,.page-content h6:hover .header-link{opacity:1}

.page-content p,.page-content li,.page-content dl{font-size:1em;margin-left:1em}

.page-content p,.page-content ul,.page-content .highlighter-rouge{margin:0 0 .8em}

.page-content a:not(.btn):hover{text-decoration:underline}

.page-content a:not(.btn):hover img{box-shadow:0 0 10px rgba(0,0,0,.25)}

.page-content :not(pre)>code{padding-top:.1rem;padding-bottom:.1rem;font-size:.8em;border-radius:4px}

.page-content :not(pre)>code::before,.page-content :not(pre)>code::after{letter-spacing:-0.2em;content:" "}

.page-content dt{margin-top:1em;font-weight:bold}

.page-content dd{-webkit-margin-start:1em;margin-inline-start:1em;font-size:.75em}

.page-content .small{font-size:.75em}

.page-content blockquote+.small{margin-top:-1.5em;-webkit-padding-start:1.25rem;padding-inline-start:1.25rem}

.page__hero{position:relative;margin-bottom:2em;clear:both;-webkit-animation:intro .3s both;animation:intro .3s both;-webkit-animation-delay:.25s;animation-delay:.25s}

.page-share{margin-top:2em;padding-top:1em;border-top:1px solid #f2f3f3}

@media(max-width: 37.5em){.page-share .btn span{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}}

.page-share-title{margin-bottom:10px;font-size:.75em;text-transform:uppercase}

.page-meta,.comment-date{margin-top:2em;color:#646769;font-size:.75em}

.page-meta p,.comment-date p{margin:0}

.page-meta a,.comment-date a{color:inherit}

.page-meta-title{margin-bottom:10px;font-size:.75em;text-transform:uppercase}

.page-meta-sep::before{content:"•";padding-inline:.5em}

.page-taxonomy .sep{display:none}

.page-taxonomy strong{-webkit-margin-end:10px;margin-inline-end:10px}

.page-taxonomy-item{display:inline-block;-webkit-margin-end:5px;margin-inline-end:5px;margin-bottom:8px;padding:5px 10px;text-decoration:none;border:1px solid #b6b6b6;border-radius:4px}

.page-taxonomy-item:hover{text-decoration:none;color:#235e70}

.taxonomy-section{margin-bottom:2em;padding-bottom:1em}

.taxonomy-section:not(:last-child){border-bottom:solid 1px #f2f3f3}

.taxonomy-section .archive-item-title{margin-top:0}

.taxonomy-section .archive-subtitle{clear:both;border:0}

.taxonomy-section+.taxonomy-section{margin-top:2em}

.taxonomy-title{margin-bottom:.5em;color:#646769}

.taxonomy-count{color:#646769}

.taxonomy-index{display:grid;grid-column-gap:2em;grid-template-columns:repeat(2, 1fr);margin:1.414em 0;padding:0;font-size:.75em;list-style:none}

@media(min-width: 64em){.taxonomy-index{grid-template-columns:repeat(3, 1fr)}}

.taxonomy-index a{display:flex;padding:.25em 0;justify-content:space-between;color:inherit;text-decoration:none;border-bottom:1px solid #f2f3f3}

.back-to-top{display:block;clear:both;color:#646769;font-size:.6em;text-transform:uppercase;text-align:end;text-decoration:none}

.page-comments{float:inline-start;margin-inline:0;width:100%;clear:both}

.page-comments-title{margin-top:2rem;margin-bottom:10px;padding-top:2rem;font-size:.75em;border-top:1px solid #f2f3f3;text-transform:uppercase}

.page-comments-form{transition:all .2s ease-in-out}

.page-comments-form.disabled input,.page-comments-form.disabled button,.page-comments-form.disabled textarea,.page-comments-form.disabled label{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);box-shadow:none;opacity:.65}

.comment{clear:both;margin:1em 0}

.comment::after{clear:both;content:"";display:table}

.comment:not(:last-child){border-bottom:1px solid #f2f3f3}

.comment-avatar-wrapper{float:inline-start;width:60px;height:60px}

@media(min-width: 64em){.comment-avatar-wrapper{width:100px;height:100px}}

.comment-avatar{width:40px;height:40px;border-radius:50%}

@media(min-width: 64em){.comment-avatar{width:80px;height:80px;padding:5px;border:1px solid #f2f3f3}}

.comment-content-wrapper{float:inline-end;width:calc(100% - 60px)}

@media(min-width: 64em){.comment-content-wrapper{width:calc(100% - 100px)}}

.comment-author{margin:0}

.comment-author a{text-decoration:none}

.comment-date{margin:0}

.comment-date a{text-decoration:none}

.page-related{float:inline-start}

.page-related::after{content:"";display:table}

@media(max-width: 64em){.page-related{padding-top:1em}}

@media(min-width: 64em){.page-related{float:inline-start;max-width:180px}}

@media(min-width: 80em){.page-related{max-width:200px}}

.page-related a{color:inherit;text-decoration:none}

.page-related-title{margin-bottom:10px;font-size:.75em;text-transform:uppercase}

@media(min-width: 64em){.wide .page,.wide .page-related{-webkit-padding-end:0;padding-inline-end:0}}

@media(min-width: 80em){.wide .page,.wide .page-related{-webkit-padding-end:0;padding-inline-end:0}}

.archive{margin-top:1em;margin-bottom:2em}

@media(min-width: 64em){.archive{float:inline-end;width:calc(100% - 200px);-webkit-padding-end:200px;padding-inline-end:200px}}

@media(min-width: 80em){.archive{width:calc(100% - 300px);-webkit-padding-end:300px;padding-inline-end:300px}}

.archive-item{position:relative}

.page-related .list-item:hover{padding-left:.5em;background-color:var(--code-background-color);transition:.25s;border-radius:.5em}

.page-related .archive-item{padding:.5em;padding-right:1em;padding-left:0;border-radius:.5em;border-top:1px solid var(--code-background-color)}

.archive-item a{position:relative;z-index:10}

.archive-item a[rel=permalink]{position:static}

.archive-subtitle{margin:1.414em 0 .5em;padding-bottom:.5em;font-size:1em;color:#646769;border-bottom:1px solid #f2f3f3}

.archive-subtitle+.list-item .archive-item-title{margin-top:.5em}

.archive-item-title{font-size:1em;font-family:var(--font-primary);line-height:initial;overflow:hidden;text-overflow:ellipsis}

.archive-item-title a[rel=permalink]::before{content:"";position:absolute;inset:0}

.archive-item-title a+a{opacity:.5}

.page-content .archive-item-title{border-bottom:none}

.archive-item-excerpt{margin-top:0;font-size:.75em}

.page-related .archive-item-excerpt{overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical;white-space:normal;-webkit-line-clamp:3;display:-webkit-box}

.page-related time{font-size:.8rem}

.archive-item-excerpt+p{text-indent:0}

.archive-item-excerpt a{position:relative}

.archive-item-teaser{position:relative;border-radius:4px;overflow:hidden}

.archive-item-teaser img{width:100%}

.archive-item-caption{position:absolute;bottom:0;inset-inline-end:0;margin:0 auto;padding:2px 5px;color:#fff;font-family:Georgia,Times,serif;font-size:.625em;background:#000;text-align:end;z-index:5;opacity:.5;border-radius:4px 0 0 0}

@media(min-width: 64em){.archive-item-caption{padding:5px 10px}}

.archive-item-caption a{color:#fff;text-decoration:none}

@media(min-width: 64em){.wide .archive{-webkit-padding-end:0;padding-inline-end:0}}

@media(min-width: 80em){.wide .archive{-webkit-padding-end:0;padding-inline-end:0}}

.sidebar{clear:both}

.sidebar::after{clear:both;content:"";display:table}

@media(min-width: 64em){.sidebar{float:inline-start;width:144px;opacity:.75;transition:opacity .2s ease-in-out;-webkit-padding-end:1em;padding-inline-end:1em}.sidebar:hover{opacity:1}.sidebar.sticky{overflow-y:auto;max-height:calc(100vh - 2em - 2em)}}

@media(min-width: 80em){.sidebar{width:144px}}

.sidebar>*{margin-top:.5em;margin-bottom:.5em}

.sidebar p,.sidebar li{font-size:.75em}

.sidebar img{width:100%}

.sidebar img.emoji{width:20px;height:20px}

.author-avatar{display:table-cell;vertical-align:top;width:36px;height:36px}

@media(max-width: 37.5em){.page-intro .author-avatar{display:none}}

@media(min-width: 64em){.sidebar .author-avatar{display:block;width:auto;height:auto}}

.page-intro .author-avatar img{max-width:110px}

.author-avatar img{border-radius:50%}

@media(min-width: 64em){.sidebar .author-avatar img{padding:5px;border:1px solid #f2f3f3}}

.author-content{display:table-cell;vertical-align:top;padding-inline:15px 25px;line-height:1.1}

.author-intro{line-height:1.5;font-size:1rem}

@media(min-width: 64em){.sidebar .author-content{display:block;width:100%;padding-inline:0}}

.author-content a{color:inherit;text-decoration:none}

.author-name{margin:0}

@media(min-width: 64em){.author-name{margin-top:10px;margin-bottom:10px}}

.sidebar .author-name{font-size:1em}

.author-bio{margin:0}

@media(min-width: 64em){.author-bio{margin-top:10px;margin-bottom:10px}}

.author-urls-wrapper{position:relative;display:table-cell;vertical-align:middle;z-index:20;cursor:pointer}

.author-urls-wrapper li:last-child a{margin-bottom:0}

.author-urls-wrapper .author-urls span.label{-webkit-padding-start:5px;padding-inline-start:5px}

@media(min-width: 64em){.author-urls-wrapper{display:block}}

.author-urls-wrapper button{position:relative;margin-bottom:0}

@supports(pointer-events: none){.author-urls-wrapper button:before{content:"";position:fixed;top:0;inset-inline-start:0;width:100%;height:100%;pointer-events:none}}

.author-urls-wrapper button.open:before{pointer-events:auto}

@media(min-width: 64em){.author-urls-wrapper button{display:none}}

.author-urls{display:none;position:absolute;inset-inline-end:0;margin-top:15px;padding:10px;list-style-type:none;border:1px solid #f2f3f3;border-radius:4px;background:#fff;box-shadow:0 2px 4px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12);cursor:default}

.author-urls.is--visible{display:block}

@media(min-width: 64em){.author-urls{display:block;position:relative;margin:0;padding:0;border:0;background:rgba(0,0,0,0);box-shadow:none}}

.author-urls::before{display:block;content:"";position:absolute;top:-11px;inset-inline-start:calc(50% - 10px);width:0;border-style:solid;border-width:0 10px 10px;border-color:#f2f3f3 rgba(0,0,0,0);z-index:0}

@media(min-width: 64em){.author-urls::before{display:none}}

.author-urls:after{display:block;content:"";position:absolute;top:-10px;inset-inline-start:calc(50% - 10px);width:0;border-style:solid;border-width:0 10px 10px;border-color:#fff rgba(0,0,0,0);z-index:1}

@media(min-width: 64em){.author-urls:after{display:none}}

.author-urls ul{padding:10px;list-style-type:none}

.author-urls li{white-space:nowrap}

.author-urls a{display:block;margin-bottom:5px;padding-block:2px;-webkit-padding-end:5px;padding-inline-end:5px;color:inherit;font-size:1em;text-decoration:none}

.author-urls a:hover{text-decoration:underline}

.wide .sidebar__right{margin-bottom:1em}

footer{background-color:var(--code-background-color);margin-top:4rem}

.page-footer{clear:both;margin-inline:auto;padding-inline:1em}

@media(min-width: 80em){.page-footer{max-width:60em}}

.footer-logo-link{display:block;width:168px;cursor:pointer}

.footer-copy{font-size:.75em}

.page-footer-follow ul{margin:0;padding:0;list-style-type:none}

.page-footer-follow li{display:inline-block;padding-top:5px;padding-bottom:5px;font-size:.85em;text-transform:uppercase}

.page-footer-follow li+li::before{content:"";-webkit-padding-end:5px;padding-inline-end:5px}

.page-intro{background-color:var(--code-background-color);border-radius:1rem;padding:1.2em 1.5em}

.tagcloud{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5em}

.tagcloud a.tag{text-decoration:none;padding:.25em .5em;border-radius:.25em;white-space:nowrap;display:inline-flex;font-size:.9em;color:var(--link-color);background-color:var(--tag-color)}

.tagcloud a.tag:hover{filter:brightness(var(--btn-brightness))}

.tagcloud .count{color:var(--text-color);opacity:60%}

.article-list ul{list-style:none;flex-direction:column;margin:0;gap:1rem;display:flex;grid-template-columns:repeat(3, 1fr)}

.article-list ul .list-item{padding:1rem;padding-right:2rem;padding-left:0;height:100%;border-top:1px solid var(--code-background-color);border-radius:1rem;text-decoration:none;display:block}

.article-list ul .list-item .archive-item{display:flex;height:100%;justify-content:space-between;flex-direction:column;gap:.2rem}

.article-list ul .list-item .archive-item h3 a,.article-list ul .list-item .archive-item .archive-item-excerpt{overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical;white-space:normal;-webkit-line-clamp:2;display:-webkit-box}

.article-list ul .list-item .archive-item .archive-item-excerpt{font-size:1rem;-webkit-line-clamp:3}

.article-list ul .list-item .archive-item time{font-size:.9rem}

.article-list ul .list-item:hover{padding:1rem;background-color:var(--code-background-color);transition:.25s}

.article-list ul .archive-item-title{font-weight:700;line-height:1.2;font-size:1.2rem}

.article-list ul .archive-item-title a{color:var(--text-color)}

.article-list ul .archive-item-title a:hover{text-decoration:none;color:var(--link-color)}

@media screen and (min-width: 64em){.article-list ul{display:grid}}

.flex-layout{display:flex;flex-direction:column;gap:1rem}

.tag-list a.tag{text-decoration:none}

.tag-list a.tag:hover{filter:brightness(var(--btn-brightness))}

.tag-list .tag{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;padding-right:.5rem;border-radius:.25rem;white-space:nowrap;display:inline-flex;font-size:.6em;color:var(--link-color);background-color:var(--tag-color)}

.about-section{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;margin-bottom:2rem;flex-wrap:wrap}

.about-section .author-avatar{flex:0 0 200px;max-width:100%;height:auto}

.about-text{flex:1;font-family:monospace;font-size:1.1rem;color:inherit;margin:0}

.not-found{margin:30px 0;text-align:center}

.not-found h1{font-size:4.5em;font-family:var(--font-monospace)}
