button{touch-action:manipulation}.btn{background-color:#f5f5f5;background-image:linear-gradient(180deg,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid rgba(0,0,0,.15);border-bottom-color:rgba(0,0,0,.25);border-radius:4px;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.2),0 1px 2px rgba(0,0,0,.05);cursor:pointer;display:inline-block;font-size:14px;line-height:20px;margin-bottom:0;padding:4px 12px;text-align:center;text-shadow:0 1px 1px hsla(0,0%,100%,.75);vertical-align:middle}.btn:hover{background-color:#e6e6e6;background-position:0 -15px;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:active{background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);outline:0}.btn-danger{background-color:#da4f49;background-image:linear-gradient(180deg,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.btn-danger.active,.btn-danger.disabled,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.btn-danger[disabled]{background-color:#bd362f;color:#fff}@font-face{font-family:Inconsolata;font-style:normal;font-weight:400;src:url("/c/inconsolata-DQjK0oga.woff") format("woff")}@font-face{font-family:"PT Serif";font-style:normal;font-weight:400;src:url("/c/pt-serif-DrYqmlHi.woff2") format("woff2")}html{background:#f1f1f1;font-family:sans-serif;font-size:15px;line-height:1.9;overflow-y:scroll;-webkit-tap-highlight-color:rgba(255,255,255,0)}@media screen and (min-width:530px){html{color:#444;font-size:16px}}body{padding:0;-webkit-text-size-adjust:100%}body,figure{margin:0}canvas,img{max-width:100%}p{margin:1.2em 0}sup{font-size:.8em;line-height:0}a:link,a:visited{color:#cc2100;text-decoration:none}a:active,a:focus,a:hover{color:#ff8f00}a:active{text-decoration:underline}svg{overflow:hidden}details summary{cursor:pointer}.container{background:#fff;margin:0 auto;max-width:1066px}.content-n-side:after,.content-n-side:before,.content-only:after,.content-only:before,.page-width:after,.page-width:before{content:" ";display:table}.content-n-side:after,.content-only:after,.page-width:after{clear:both}.content-n-side,.content-only,.page-width{padding:0 20px;position:relative;top:-31px}@media screen and (min-width:530px){.content-n-side,.content-only,.page-width{padding:0 64px 0 32px}}@media screen and (min-width:800px){.content-n-side,.content-only,.page-width{padding:0 32px}}.content-n-side>.side{display:none}@media screen and (min-width:800px){.content-n-side>.content{box-sizing:border-box;float:left;padding-right:73px;width:75%}.content-n-side>.side{display:block;float:right;width:25%}}.page-width{box-sizing:border-box;margin:0 auto;max-width:1066px}@media screen and (min-width:800px){.content-only>.content{width:68%}}.site-header{background:#2d2d2d;overflow:hidden}.site-header>.inner{padding-left:0;padding-top:75px}@media screen and (min-width:530px){.site-header>.inner{padding-top:135px}}.site-header a:link,.site-header a:visited{color:#fff}.site-header a:active,.site-header a:hover{color:#fff;text-decoration:underline}.site-header .title,.site-header .who{background:#009d81;display:inline-block;font-family:"PT Serif",georgia,serif;font-size:1.05rem;line-height:1;padding:10px 45px 10px 20px}@media screen and (min-width:530px){.site-header .title,.site-header .who{padding:10px 97px 10px 32px}}@media screen and (min-width:1066px){.site-header .title,.site-header .who{border-radius:7px 7px 0 0}}.site-header .who{background:none;float:right;margin-right:0;padding:10px 0}@media screen and (min-width:530px){.site-header .who{margin-right:-32px}}@media screen and (min-width:800px){.site-header .who{display:none}}.article-content h1,.h-1,.who-page>h1{background:#ff8400;color:#fff;font-family:"PT Serif",georgia,serif;font-size:2.5rem;font-weight:400;line-height:1.1;margin:0 0 0 -20px;padding:7px 20px 13px}@media screen and (min-width:530px){.article-content h1,.h-1,.who-page>h1{font-size:3.4rem;margin-left:-65px;margin-right:-32px;padding:10px 36px 17px 62px}}@media screen and (min-width:1066px){.article-content h1,.h-1,.who-page>h1{border-radius:32px 0 0 32px}}.article-content h2,.h-2,.who-page>section>h1{background:#009d81;color:#fff;font-family:"PT Serif",georgia,serif;font-size:1.6rem;font-weight:400;line-height:1;margin:35px 0 0 -20px;padding:7px 20px 10px}@media screen and (min-width:530px){.article-content h2,.h-2,.who-page>section>h1{font-size:1.9rem;margin-left:-65px;margin-right:-32px;padding:10px 35px 13px 62px}}@media screen and (min-width:1066px){.article-content h2,.h-2,.who-page>section>h1{border-radius:32px 0 0 32px}}.article-content h2 code,.h-2 code,.who-page>section>h1 code{background:none;margin:0;outline:none;padding:0}.article-content h3,.h-3{border-left:20px solid #ff8400;font-family:sans-serif;font-size:1rem;font-weight:700;line-height:1.4;margin:27px 0 0;padding-left:8px}@media screen and (min-width:530px){.article-content h3,.h-3{border-left:26px solid #ff8400;font-size:1.2rem;padding-left:12px}}.h-4,.side>section>h1{border-bottom:1px dotted #ccc;font-size:.9rem;font-weight:400;line-height:1;margin:1.4em 0 0;padding-bottom:3px}.article-content h4{font-size:inherit;font-weight:700;margin:1.8em 0 .5em}.article-content h4+p{margin-top:0}.article-content :is(h1,h2,h3,h4,h5,h6) a{color:inherit;text-decoration:inherit}.article-date{background:#ffe454;color:#000;display:block;font-size:.8rem;margin:0 0 0 -20px;padding:6px 20px 5px}@media screen and (min-width:530px){.article-date{margin-left:-32px;margin-right:-32px;padding:6px 10px 5px 32px}}.article-content code{background:#eee;display:inline;font-family:Inconsolata,courier,monospace;line-height:1;margin:0 2px;outline:1px solid #e2e2e2;padding:2px 3px;white-space:nowrap}.full-figure{background:#eee;margin:1em -20px;overflow:hidden}@media screen and (min-width:530px){.full-figure{margin-left:0;margin-right:0}}.full-figure.checked{background:url("/c/check-ClSNEzIT.png")}.full-figure.blueprint{background:url("/c/graph-tile-DJQ4lGka.png"),radial-gradient(circle farthest-corner,#08d,#002b46) 50%;background-size:12%,cover}.full-figure canvas,.full-figure iframe,.full-figure img,.full-figure object,.full-figure svg,.full-figure video{display:block;margin:0 auto;outline:none}.full-figure .video{padding-top:56.25%;position:relative}.full-figure .video iframe{height:100%;left:0;position:absolute;top:0;width:100%}.full-figure .figcaption,.full-figure>figcaption{background:#ffe454;color:#000;font-size:.8rem;line-height:1.4;padding:6px 20px}@media screen and (min-width:530px){.full-figure .figcaption,.full-figure>figcaption{padding:6px 10px}.max-figure{margin-left:-32px;margin-right:-64px}.max-figure .figcaption,.max-figure>figcaption{padding-left:32px}}@media screen and (min-width:800px){.max-figure{margin-right:-32px}}h2+.max-figure{margin-top:0}.side{font-size:.85rem;font-weight:400}.side .icon-list{margin:1em 0}.my-big-face{margin-top:10px}.my-big-face h1{background:#fff;margin:0;outline:10px solid #fff;position:relative}.my-big-face img{display:block;height:auto;width:100%}.code-example{background:#2d2d2d;color:#d4d4d4;font-size:1rem;line-height:1.4;margin:1em -20px;overflow:auto;padding:16px 20px}@media screen and (min-width:530px){.code-example{font-size:1.1rem;margin-left:-32px;margin-right:0;padding-left:32px;padding-right:0}}.code-example pre{display:inline-block;font-family:Inconsolata,courier,monospace;margin:0;padding-right:16px}.code-example code{background:none;display:block;font-family:inherit;line-height:inherit;margin:0;outline:0;padding:0;white-space:inherit}.code-example::selection{background:#b3d4fc;text-shadow:none}.code-example .namespace{opacity:.7}.code-example .token.comment{color:#ff824a}.code-example .token.cdata,.code-example .token.doctype,.code-example .token.prolog{color:#6a9955}.code-example .token.punctuation{color:#d4d4d4}.code-example .token.boolean,.code-example .token.constant,.code-example .token.deleted,.code-example .token.number,.code-example .token.property,.code-example .token.symbol,.code-example .token.tag{color:#b5cea8}.code-example .token.attr-name,.code-example .token.builtin,.code-example .token.char,.code-example .token.inserted,.code-example .token.selector,.code-example .token.string{color:#ce9178}.code-example .language-css .token.string,.code-example .style .token.string,.code-example .token.entity,.code-example .token.operator,.code-example .token.url{color:#d4d4d4}.code-example .token.atrule,.code-example .token.attr-value,.code-example .token.keyword{color:#c586c0}.code-example .token.function{color:#dcdcaa}.code-example .token.important,.code-example .token.regex,.code-example .token.variable{color:#d16969}.code-example .token.bold,.code-example .token.important{font-weight:700}.code-example .token.italic{font-style:italic}.code-example .token.constant{color:#9cdcfe}.code-example .token.class-name{color:#4ec9b0}.code-example .token.interpolation,.code-example .token.parameter{color:#9cdcfe}.code-example .token.boolean,.code-example .token.punctuation.interpolation-punctuation{color:#569cd6}.code-example .token.property{color:#9cdcfe}.code-example .token.selector{color:#d7ba7d}.code-example .token.tag{color:#569cd6}.code-example .token.attr-name{color:#9cdcfe}.code-example .token.attr-value{color:#ce9178}.code-example .token.entity{color:#4ec9b0;cursor:unset}.code-example .language-javascript,.code-example .token.namespace{color:#4ec9b0}.code-example .language-css{color:#ce9178}.code-example .language-html{color:#d4d4d4}.code-example .language-html .token.punctuation{color:grey}.code-example .language-bash{white-space:pre-wrap}.icon-list{display:grid;gap:.5em .2em;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));list-style:none;margin:0;padding:0}.icon-list-item{align-items:center;display:grid;gap:.5em;grid-template-columns:20px 1fr}.comments{margin-top:50px}.post-preview:after,.post-preview:before{content:" ";display:table}.post-preview:after{clear:both}.post-preview h1{margin-top:0}.post-preview h1 a:link,.post-preview h1 a:visited{color:#fff;display:block}.post-preview h1 a:active,.post-preview h1 a:hover{color:#fff;text-decoration:underline}.post-preview .preview-image{margin:20px 0 0}@media screen and (min-width:530px){.post-preview .preview-image{float:left;margin:5px 20px 20px 0;width:200px}}.post-preview .preview-image img{height:auto;width:100%}.pagination{margin:2.1em 0;overflow:hidden;padding:0}.pagination li{display:inline}.pagination .gap,.pagination .next,.pagination .page,.pagination .prev,.pagination a:link,.pagination a:visited{border-right:1px dotted #a5a5a5;float:left;font-weight:700;padding:0 8px}.pagination .current,.pagination .disabled,.pagination .gap{color:#6e6e6e;font-weight:400}.pagination .prev,.pagination a.prev:link,.pagination a.prev:visited{padding-left:0}.pagination .next,.pagination a.next:link,.pagination a.next:visited{border:none}.form-rows{margin:1em -20px}@media screen and (min-width:530px){.form-rows.max-form{margin-right:-64px}}@media screen and (min-width:800px){.form-rows.max-form{margin-right:-32px}}.full-figure+.form-rows{margin-top:-1em}.code-example+.form-rows{margin-top:-1.1em}@media screen and (min-width:530px){.form-rows{margin-left:-32px;margin-right:0}}.form-rows .field{display:table-row}.form-rows .field:nth-child(2n) .label{background:#3cb39d}.form-rows .field:nth-child(2n) .input{background:#f7f7f7}.form-rows .label{background:#009d81;color:#fff;display:table-cell;padding:.5em;vertical-align:middle;white-space:nowrap;width:1px}.form-rows .label:first-child{padding-left:20px}@media screen and (min-width:530px){.form-rows .label:first-child{padding-left:32px}}.form-rows .label:not(:first-child){text-align:center}.form-rows .input{background:#ececec;display:table-cell;padding:0 .5em}.form-rows .input,.form-rows .input>*{vertical-align:middle}.form-rows input[type=range],.form-rows input[type=text]{box-sizing:border-box;margin:0;width:100%}.form-rows-inner{display:table;width:100%}.quote{border-left:10px solid #d5d5d5;margin:0;padding-left:16px}.quote>p:last-of-type{margin-bottom:0}.warning{background:#bf0000;color:#fff;font-size:.8rem;font-weight:700;margin:0 0 0 -20px;padding:6px 20px 5px}@media screen and (min-width:530px){.warning{margin-left:-32px;margin-right:-32px;padding:6px 10px 5px 32px}}.warning>:first-child{margin-top:0}.warning>:last-child{margin-bottom:0}.who-page figure img{display:block;margin:0 auto}.who-page .icon-list{margin:16px 0}.blog-index .post-preview.first .h-2{background:#ff8400}