:root{color-scheme:light dark;--font-body:"Helvetica Neue", Helvetica, Arial, sans-serif;--line-height-body:1.6;--c-bg:#fff;--c-bg:light-dark(#fff, #16181c);--c-code-bg:#eeeeee;--c-code-bg:light-dark(#eeeeee, #1e2126);--c-text:#313233;--c-text:light-dark(#313233, #d8d9db);--c-text-soft:#777777;--c-text-soft:light-dark(#777777, #9ba0a6);--c-text-muted:#a4abb2;--c-text-muted:light-dark(#a4abb2, #9ba0a6);--c-text-footer:#666;--c-text-footer:light-dark(#666, #9ba0a6);--c-link:#2A5DB0;--c-link:light-dark(#2A5DB0, #7ba5e8);--c-link-hover:#000000;--c-link-hover:light-dark(#000000, #a8c5f0);--c-border:rgba(0, 0, 0, 0.15);--c-border:light-dark(rgba(0, 0, 0, 0.15), rgba(255, 255, 255, 0.12));--c-border-soft:#eee;--c-border-soft:light-dark(#eee, #2c3036);--c-rule:#ddd;--c-rule:light-dark(#ddd, #2c3036);--c-footer-rule:rgba(0, 0, 0, 0.3);--c-footer-rule:light-dark(rgba(0, 0, 0, 0.3), rgba(255, 255, 255, 0.2));--c-shadow-inset:rgba(0, 0, 0, 0.1);--c-shadow-inset:light-dark(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.4));--c-shadow-highlight:rgba(255, 255, 255, 0.2);--c-shadow-highlight:light-dark(rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.06));--c-highlight-text:#111;--c-highlight-text:light-dark(#111, #d8d9db);--c-strong:black;--c-strong:light-dark(black, #e8e9eb);--c-invert-text:white;--c-invert-bg:black;--c-alert-bg:#f6f6f6;--c-alert-bg:light-dark(#f6f6f6, #1e2126);--c-alert-border:#999;--c-alert-border:light-dark(#999, #4a5058);--c-button-hover:#e0e0e0;--c-button-hover:light-dark(#e0e0e0, #2c3036);--c-button-border:#ccc;--c-button-border:light-dark(#ccc, #3a4048)}--img-invert:none;};@media(prefers-color-scheme:dark){:root:not(.light){--img-invert:invert(1) hue-rotate(180deg)}}:root.dark{--img-invert:invert(1) hue-rotate(180deg)}:root.light{color-scheme:light}:root.dark{color-scheme:dark}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section,dialog{display:block}*{margin:0;padding:0;border:0}ul{list-style:none}body{font-family:var(--font-body);font-size:100%;line-height:200%;vertical-align:baseline;color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased}a{cursor:pointer;color:var(--c-link);white-space:nowrap;text-decoration:none;-webkit-transition:all .4s;-moz-transition:all .4s;transition:all .4s}a:hover{color:var(--c-link-hover)}code{font-family:Lucida Console,Monaco,Andale Mono,monospace}.center{text-align:center}.inline{display:inline}#portfolio .no-margin,#portfolio .no-margin img:first-child{margin:0}a[href$=".pdf"]:after{content:" (PDF)"}a[href$=".pdf"][data-size]:after{content:" (PDF, " attr(data-size)")"}.wrap{padding:80px 0}.wrap-white{background:#fff}.wrap-beige{background:#f2eae4}.wrap-gradient-beige{background:#f2eae4;background:-webkit-linear-gradient(top,#a58d7c 0%,#ffdec5 77%,#ffecd6 100%);background:-moz-linear-gradient(top,#a58d7c 0%,#ffdec5 77%,#ffecd6 100%);background:-ms-linear-gradient(top,#a58d7c 0%,#ffdec5 77%,#ffecd6 100%);background:linear-gradient(to bottom,#a58d7c 0%,#ffdec5 77%,#ffecd6 100%)}.wrap-black{background:#181819}.wrap-gradient-black{background:#2d2f33;background:-webkit-linear-gradient(top,#2d2f33 0%,#878f99 100%);background:-moz-linear-gradient(top,#2d2f33 0%,#878f99 100%);background:-ms-linear-gradient(top,#2d2f33 0%,#878f99 100%);background:linear-gradient(to bottom,#2d2f33 0%,#878f99 100%)}.wrap-img{padding:110px 0}.wrap-border-bottom{border-bottom:1px solid var(--c-border)}.wrap-border-top{border-top:1px solid var(--c-border)}.wrap-m-b-0{padding-bottom:0}.wrap-m-b-20{margin-bottom:-20px;padding-bottom:0}.wrap-m-b-30{margin-bottom:-30px;padding-bottom:0}.wrap-m-b-50{margin-bottom:-50px;padding-bottom:0}.wrap-m-b-120{margin-bottom:-120px;padding-bottom:0}.wrap-m-t-50{padding-top:130px}.container{overflow:hidden;width:970px;margin:0 auto}.container-article{overflow:hidden;width:720px;margin:0 auto}.row{overflow:hidden}.span3{float:left;width:32%;margin-right:2%}.span3:nth-child(3n){margin-right:0}.btn{display:inline-block;padding:10px 24px;font-family:brandon-grotesque,Futura,Helvetica Neue,Helvetica,sans-serif;font-size:.75em;font-weight:500;text-transform:uppercase;letter-spacing:.3em;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}a.btn:hover{color:#000}.btn.btn-outline{border:2px solid gray}a.btn.btn-outline:hover{border-color:#000}span.btn{opacity:.5}header[role=banner]{overflow:hidden;padding:0 0 30px}header[role=banner] nav{overflow:hidden}.icon-larger:before{font-size:20px}.hireme{display:block;float:left;width:auto;height:34px;margin:30px 0 0 30px;padding:0 5px;font-family:brandon-grotesque,Futura,Helvetica Neue,Helvetica,sans-serif;font-size:.75em;font-weight:500;letter-spacing:.3em;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;color:var(--c-invert-text);background-color:var(--c-invert-bg);border:1px solid var(--c-invert-bg)}a.hireme:hover{color:var(--c-invert-bg);background-color:var(--c-invert-text)}.logo{display:block;float:left;width:auto;height:34px;margin-top:30px;text-indent:-9999px;background:url(/favicon.ico)no-repeat 50%}header[role=banner] ul{overflow:hidden;float:right}header[role=banner] li{display:block;float:left;margin:30px 0 0 30px}header[role=banner] li:first-child{margin-left:0}header[role=banner] li a{display:block;font-family:brandon-grotesque,Futura,Helvetica Neue,Helvetica,sans-serif;font-size:.75em;font-weight:500;text-transform:uppercase;letter-spacing:.3em;opacity:.5;color:var(--c-strong)}header[role=banner] li a:hover{opacity:1;color:var(--c-strong)}.content{overflow:hidden;padding:80px 0 100px}.content h1{margin-top:20px;font-family:var(--font-body);font-size:2em;line-height:130%}.content h2{font-size:1.6em}.content h3{font-size:1.3em}.content h1 span{display:block;font-style:italic}.content-bg{padding:150px 0 180px}.content-img h1,.content-bg h1{font-family:brandon-grotesque,Futura,Helvetica Neue,Helvetica,sans-serif;font-size:4em;font-weight:400;line-height:140%;color:#fff}.content-bg h1{text-shadow:0 1px 2px rgba(0,0,0,.3)}.content-img{padding-top:60px}.content-img h1{color:#313233}.content figure{overflow:hidden;margin-top:40px}.content figure img{display:block;width:100%;margin-top:20px}.content .listing{margin:10px 0 0;padding:0;font-family:var(--font-body)}.content .listing ul{margin:0;padding:0}.content .listing li{font-size:1em;list-style:none;padding:5px 3px;margin:0;color:var(--c-text-soft);border-bottom:1px solid var(--c-border-soft)}.content .listing li span{float:right}article{overflow:hidden;font-family:var(--font-body)}article .container{overflow:hidden;margin:0 auto;width:720px}article header{overflow:hidden;margin-bottom:16px}article header h1,article header h2{font-size:2.6em;line-height:1.6em}article header h1 a,article header h2 a{border:0;white-space:normal;color:var(--c-strong)}article header h1 a:hover,article header h2 a:hover{color:var(--c-link)}article time{display:block;margin-bottom:8px;color:var(--c-text-muted);font-family:brandon-grotesque,Futura,Helvetica Neue,Helvetica,sans-serif;font-size:.75em;font-weight:500;text-transform:uppercase;letter-spacing:.2em}article .content{font-size:1.1em;font-family:var(--font-body);line-height:var(--line-height-body)}article .content h1{margin:60px 0 30px}article .content h2,article .content h3{margin:30px 0 25px}article .content h2{font-size:1.6em}article .content h3{font-size:1.3em}article .content p{margin-bottom:20px}article .content figure{width:100%;margin:30px 0}article .content img{max-width:100%;height:auto;width:auto\9;display:block;margin-top:20px;margin-left:auto;margin-right:auto}article .content figure figcaption{display:block;margin-top:20px;font-style:italic}article .content ul,ol{margin:0 0 20px 40px}article .content ul{list-style:disc}article .content ol{list-style:decimal}.content p code{font-family:monospace;font-size:.9em;background:var(--c-code-bg);border-radius:3px;padding:2px 3px;white-space:nowrap;text-shadow:0 1px var(--c-shadow-highlight);background:var(--c-code-bg);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 -1px 1px var(--c-shadow-inset)inset;-moz-box-shadow:0 -1px 1px var(--c-shadow-inset)inset;box-shadow:0 -1px 1px var(--c-shadow-inset)inset}article .content .intro{margin-top:0}article .content .intro strong{font-weight:400}article .content .prettyprint{display:block;margin-bottom:20px;padding:12px 18px;line-height:1.3em;color:#f5f9ff;text-shadow:0 1px 1px rgba(0,0,0,.2);background:#30353d;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 -1px 2px rgba(0,0,0,.8)inset;-moz-box-shadow:0 -1px 2px rgba(0,0,0,.8)inset;box-shadow:0 -1px 2px rgba(0,0,0,.8)inset}article .content .read-more{margin-top:10px}article .content hr{display:block;width:100px;margin:40px auto;height:1px;border-bottom:10px solid var(--c-rule)}article .content blockquote{border-left:10px solid var(--c-rule);margin:1.5em 10px;padding:.5em 10px}article .content blockquote:before{color:var(--c-rule);content:"\f10d";font-family:FontAwesome;float:left;margin-right:10px;font-size:2em;line-height:.1em;margin-right:.25em;vertical-align:-.4em}article .content .gist{color:#f5f9ff}article .content .gist .gist-file{margin-bottom:20px;border:0}article .content .gist .gist-file .gist-data{font-family:Monaco,Andale Mono,monospace;font-size:1em;line-height:20px;text-shadow:0 1px 1px rgba(0,0,0,.2);background:#30353d;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 -1px 2px rgba(0,0,0,.5)inset;-moz-box-shadow:0 -1px 2px rgba(0,0,0,.5)inset;box-shadow:0 -1px 2px rgba(0,0,0,.5)inset}article .content .gist .gist-file .gist-data .line-numbers{padding:20px;color:#6e7480;border:0;background:#1b1f24;-webkit-border-top-left-radius:3px;-moz-border-top-left-radius:3px;border-top-left-radius:3px;-webkit-border-bottom-left-radius:3px;-moz-border-bottom-left-radius:3px;border-bottom-left-radius:3px}article .content .gist .gist-file .gist-data .line-data{padding:20px!important}article .content .gist .gist-file .gist-data pre{font-family:Monaco,Andale Mono,monospace;font-size:1em}.gist .gist-syntax .na,.gist .gist-syntax .k{color:#fff4d3}.gist .gist-syntax .kt,.gist .gist-syntax .m,.gist .gist-syntax .mi,.gist .gist-syntax .no{color:#00ffbe}.gist .gist-syntax .n,.gist .gist-syntax .s1,.gist .gist-syntax .s2,.gist .gist-syntax .sx{color:#ff4184}.gist .gist-syntax .nc,.gist .gist-syntax .nt{color:#84d6ed}.gist .gist-syntax .nd,.gist .gist-syntax .nf{color:#c0aafc}.gist .gist-syntax .nv{color:#fb8a95}.gist .gist-syntax .nd,.gist .gist-syntax .o{color:#f5f9ff}.gist .gist-syntax .na,.gist .gist-syntax .k,.gist .gist-syntax .kt,.gist .gist-syntax .m,.gist .gist-syntax .mi,.gist .gist-syntax .no,.gist .gist-syntax .n,.gist .gist-syntax .s1,.gist .gist-syntax .s2,.gist .gist-syntax .sx,.gist .gist-syntax .nc,.gist .gist-syntax .nt,.gist .gist-syntax .nd,.gist .gist-syntax .nf,.gist .gist-syntax .nv,.gist .gist-syntax .nd,.gist .gist-syntax .o{font-weight:400!important}article .content .gist .gist-meta{display:none}.article-foot{margin-top:40px;line-height:120%}.article-foot-top{overflow:hidden;padding:20px 0;text-align:right;line-height:120%}.link-nav{display:block;margin-bottom:8px;color:var(--c-text-muted);font-family:brandon-grotesque,Futura,Helvetica Neue,Helvetica,sans-serif;font-size:.75em;font-weight:500;text-transform:uppercase;letter-spacing:.2em;overflow:hidden;float:left;margin:0 15px 0 0}.link-nav:hover{color:var(--c-strong)}.bio{margin-top:60px;line-height:165%}.bio h5{margin:0 0 10px 160px;font-size:1em;font-style:italic}.bio p{margin-left:160px;font-size:1em;font-style:italic}.bio p span{font-style:italic}.bio ul{overflow:hidden;margin:10px 0 0 160px;font-size:1.125em}.bio ul li{display:block;float:left;margin-right:15px}.bio a i{display:inline-block;margin-right:5px;font-size:60%}.bio img{display:block;float:left;width:100px;height:100px;border:0;background:url(/favicon.ico)no-repeat 50%}footer[role=footer]{overflow:hidden;padding:50px 0;font-family:nimbus-sans,brandon-grotesque,Futura,Helvetica Neue,Helvetica,sans-serif;font-size:.75em;font-weight:500;letter-spacing:.2em;text-align:center;text-transform:uppercase}footer[role=footer] p{display:inline-block;font-size:1em;color:var(--c-text-footer)}footer[role=footer] hr{display:block;width:100px;margin:10px auto;height:1px;background:var(--c-footer-rule)}footer[role=footer] ul{overflow:hidden}footer[role=footer] li{display:inline-block;margin:0 5px}#portfolios{padding-bottom:100px}#portfolios ul{overflow:hidden}#portfolios li{display:block;margin-top:20px}#portfolios a{position:relative;display:block}#portfolios a img{display:block;width:100%;height:auto;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}#portfolios a div{position:absolute;z-index:20;top:0;right:0;bottom:0;left:0;color:#fff4cc;text-align:center;background:rgba(11,12,13,.9);opacity:0;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;-webkit-transition:all .4s;-moz-transition:all .4s;transition:all .4s}#portfolios a strong{display:block;margin-top:130px;font-family:nimbus-sans,brandon-grotesque,Futura,Helvetica Neue,Helvetica,sans-serif;font-size:.875em;font-weight:500;color:#fff;letter-spacing:.2em;line-height:150%;text-transform:upperportfolio}#portfolios a span{font-style:italic}#portfolios a:hover div{opacity:1}#portfolio h2,#portfolio p{max-width:600px;margin:0 auto 20px;line-height:150%}#portfolio h2{margin-bottom:30px;font-size:1.75em;text-align:center}#portfolio p{font-size:1.1875em}#portfolio p:last-child{margin-bottom:0}#portfolio p span{font-style:italic}#portfolio p a:hover{border-color:transparent}#portfolio figure{overflow:hidden;margin-top:40px}#portfolio figure img{display:block;width:100%;margin-top:20px}#portfolio-summary .span3{text-align:center}#portfolio-summary strong{display:block;font-size:.75em;font-family:nimbus-sans,brandon-grotesque,Futura,Helvetica Neue,Helvetica,sans-serif;font-weight:500;text-transform:upperportfolio;letter-spacing:.3em}#portfolio-nav{padding:30px 0}.portfolio-prev,.portfolio-next{display:block;margin-bottom:5px;font-style:italic}a.portfolio-prev:hover,a.portfolio-next:hover{color:#f52a0e}span.portfolio-prev,span.portfolio-next{opacity:.5}.portfolio-prev{float:left}.portfolio-next{float:right}@media screen and (max-width:1050px){.container{width:auto;padding:0 40px}.container-article{width:auto;max-width:720px;padding:0 40px}}@media screen and (max-width:760px){body{font-size:90%}.container{padding:0 30px}.container-article{padding:0 30px}.wrap{padding:50px 0}.content-bg{padding:120px 0 140px}.content-img{padding-top:40px}.content-img figure{margin-top:20px}.content-blank,#portfolios{padding:50px 0 70px}#portfolios a strong{margin-top:90px}footer[role=footer]{padding:30px 0}.wrap-m-b-0,.wrap-m-b-20,.wrap-m-b-30,.wrap-m-b-50,.wrap-m-b-120{padding-bottom:0}.wrap-m-b-20{margin-bottom:-10px}.wrap-m-b-30{margin-bottom:-15px}.wrap-m-b-50{margin-bottom:-30px}.wrap-m-b-120{margin-bottom:-85px}#portfolio .tone-icon{margin-top:55px}.wrap-tone{padding-top:120px}}@media screen and (max-width:480px){body{font-size:80%}.container{padding:0 20px}.container-article{padding:0 20px}.span3{float:none;width:100%;margin-right:0}.wrap{padding:30px 0}.content-bg{padding:90px 0 110px}.content-img{padding-top:20px}.content-img figure{margin-top:10px}.content-bg h1,.content-img h1{font-size:270%}.content-blank,#portfolios{padding:30px 0 50px}.content-blank h1{font-size:170%}#portfolios a div{position:relative;margin-top:10px;color:#313233;background:0 0;opacity:1}#portfolios a strong{color:#313233;margin-top:0}header[role=banner]{padding-bottom:20px;text-align:center}.logo{display:inline-block;float:none;margin-top:20px}header[role=banner] ul{float:none;margin-top:16px}header[role=banner] li{display:inline-block;float:none;margin:0 5px}#portfolio h2{margin-bottom:20px}#portfolio p{margin-bottom:15px}#portfolio figure{margin-top:15px}#portfolio-summary .span3{margin-top:10px}#portfolio-summary .span3:first-child{margin-top:0}#portfolio-summary .btn{display:block;margin-top:20px}footer[role=footer]{padding:30px 0}.wrap-m-b-0,.wrap-m-b-20,.wrap-m-b-30,.wrap-m-b-50{padding-bottom:0}.wrap-m-b-20{margin-bottom:-5px}.wrap-m-b-30{margin-bottom:-10px}.wrap-m-b-50{margin-bottom:-20px}.wrap-m-b-120{margin-bottom:-70px}#portfolio .tone-icon{margin-top:30px}.wrap-tone{padding-top:60px}}#home .logo,#home header[role=banner] li,.animated{opacity:0;-webkit-transform:translateY(-20px);-moz-transform:translateY(-20px);transform:translateY(-20px);-webkit-animation:fadein .4s .3s 1 forwards ease-in-out;-moz-animation:fadein .4s .3s 1 forwards ease-in-out;animation:fadein .4s .3s 1 forwards ease-in-out}#home .logo{-webkit-animation-delay:0s;-moz-animation-delay:0s;animation-delay:0s}#home header[role=banner] li.blog{-webkit-animation-delay:.2s;-moz-animation-delay:.2s;animation-delay:.2s}#home header[role=banner] li.talks{-webkit-animation-delay:.3s;-moz-animation-delay:.3s;animation-delay:.3s}#home header[role=banner] li.links{-webkit-animation-delay:.4s;-moz-animation-delay:.4s;animation-delay:.4s}#home header[role=banner] li.about{-webkit-animation-delay:.5s;-moz-animation-delay:.5s;animation-delay:.5s}#home header[role=banner] li.theme{-webkit-animation-delay:.6s;-moz-animation-delay:.6s;animation-delay:.6s}#home header[role=banner] li.icons{-webkit-animation-delay:.7s;-moz-animation-delay:.7s;animation-delay:.7s}#mams-brand{-webkit-animation:bgslide 500s 2 forwards linear;-moz-animation:bgslide 500s 2 forwards linear;animation:bgslide 500s 2 forwards linear}@-webkit-keyframes fadein{0%{-webkit-transform:translateY(-20px);opacity:0}100%{-webkit-transform:translateY(0);opacity:1}}@-moz-keyframes fadein{0%{-moz-transform:translateY(-20px);opacity:0}100%{-moz-transform:translateY(0);opacity:1}}@keyframes fadein{0%{transform:translateY(-20px);opacity:0}100%{transform:translateY(0);opacity:1}}@-webkit-keyframes bgslide{0%{background-position:0 100%}50%{background-position:-2e3px -2e3px}100%{background-position:0 100%}}@-moz-keyframes bgslide{0%{background-position:0 100%}50%{background-position:-2e3px -2e3px}100%{background-position:0 100%}}@keyframes bgslide{0%{background-position:0 100%}50%{background-position:-2e3px -2e3px}100%{background-position:0 100%}}.highlight{line-height:1.2em;margin:0;margin-bottom:20px;background-color:var(--c-code-bg);font-size:12px;padding:0 15px;-webkit-border-radius:10px;-moz-border-radius:10px;overflow-x:auto;-webkit-overflow-scrolling:touch;text-shadow:none;color:var(--c-highlight-text)}.highlight .c{color:light-dark(#888888,#8b949e)}.highlight .err{background-color:light-dark(#e3d2d2,transparent);color:light-dark(#a61717,#f85149)}.highlight .k{color:light-dark(#008800,#ff7b72);font-weight:700}.highlight .cm{color:light-dark(#888888,#8b949e)}.highlight .cp{color:light-dark(#cc0000,#8b949e);font-weight:700}.highlight .c1{color:light-dark(#888888,#8b949e)}.highlight .cs{background-color:light-dark(#fff0f0,transparent);color:light-dark(#cc0000,#8b949e);font-weight:700}.highlight .gd{background-color:light-dark(#ffdddd,#490202);color:light-dark(#000000,#ffa198)}.highlight .ge{font-style:italic}.highlight .gr{color:light-dark(#aa0000,#ffa198)}.highlight .gh{color:light-dark(#303030,#79c0ff)}.highlight .gi{background-color:light-dark(#ddffdd,#0f5323);color:light-dark(#000000,#56d364)}.highlight .go{color:light-dark(#888888,#8b949e)}.highlight .gp{color:light-dark(#555555,#8b949e)}.highlight .gs{font-weight:700}.highlight .gu{color:light-dark(#606060,#79c0ff)}.highlight .gt{color:light-dark(#aa0000,#ff7b72)}.highlight .kc{color:light-dark(#008800,#79c0ff);font-weight:700}.highlight .kd{color:light-dark(#008800,#ff7b72);font-weight:700}.highlight .kn{color:light-dark(#008800,#ff7b72);font-weight:700}.highlight .kp{color:light-dark(#008800,#79c0ff)}.highlight .kr{color:light-dark(#008800,#ff7b72);font-weight:700}.highlight .kt{color:light-dark(#888888,#ff7b72);font-weight:700}.highlight .m{color:light-dark(#0000DD,#a5d6ff);font-weight:700}.highlight .s{background-color:light-dark(#fff0f0,transparent);color:light-dark(#dd2200,#a5d6ff)}.highlight .na{color:light-dark(#336699,inherit)}.highlight .nb{color:light-dark(#003388,inherit)}.highlight .nc{color:light-dark(#bb0066,#f0883e);font-weight:700}.highlight .no{color:light-dark(#003366,#79c0ff);font-weight:700}.highlight .nd{color:light-dark(#555555,#d2a8ff)}.highlight .ne{color:light-dark(#bb0066,#f0883e);font-weight:700}.highlight .nf{color:light-dark(#0066bb,#d2a8ff);font-weight:700}.highlight .nl{color:light-dark(#336699,#79c0ff);font-style:italic}.highlight .nn{color:light-dark(#bb0066,#ff7b72);font-weight:700}.highlight .py{color:light-dark(#336699,#79c0ff);font-weight:700}.highlight .nt{color:light-dark(#bb0066,#7ee787);font-weight:700}.highlight .nv{color:light-dark(#336699,#79c0ff)}.highlight .ow{color:light-dark(#008800,#ff7b72)}.highlight .w{color:light-dark(#bbbbbb,#6e7681)}.highlight .mf{color:light-dark(#0000DD,#a5d6ff);font-weight:700}.highlight .mh{color:light-dark(#0000DD,#a5d6ff);font-weight:700}.highlight .mi{color:light-dark(#0000DD,#a5d6ff);font-weight:700}.highlight .mo{color:light-dark(#0000DD,#a5d6ff);font-weight:700}.highlight .sb{background-color:light-dark(#fff0f0,transparent);color:light-dark(#dd2200,#a5d6ff)}.highlight .sc{background-color:light-dark(#fff0f0,transparent);color:light-dark(#dd2200,#a5d6ff)}.highlight .sd{background-color:light-dark(#fff0f0,transparent);color:light-dark(#dd2200,#a5d6ff)}.highlight .s2{background-color:light-dark(#fff0f0,transparent);color:light-dark(#dd2200,#a5d6ff)}.highlight .se{background-color:light-dark(#fff0f0,transparent);color:light-dark(#0044dd,#79c0ff)}.highlight .sh{background-color:light-dark(#fff0f0,transparent);color:light-dark(#dd2200,#79c0ff)}.highlight .si{background-color:light-dark(#fff0f0,transparent);color:light-dark(#3333bb,#a5d6ff)}.highlight .sx{background-color:light-dark(#f0fff0,transparent);color:light-dark(#22bb22,#a5d6ff)}.highlight .sr{background-color:light-dark(#fff0ff,transparent);color:light-dark(#008800,#79c0ff)}.highlight .s1{background-color:light-dark(#fff0f0,transparent);color:light-dark(#dd2200,#a5d6ff)}.highlight .ss{background-color:light-dark(#fff0f0,transparent);color:light-dark(#aa6600,#a5d6ff)}.highlight .bp{color:light-dark(#003388,inherit)}.highlight .vc{color:light-dark(#336699,#79c0ff)}.highlight .vg{color:light-dark(#dd7700,#79c0ff)}.highlight .vi{color:light-dark(#3333bb,#79c0ff)}.highlight .il{color:light-dark(#0000DD,#a5d6ff);font-weight:700}.highlight .lnlinks{color:inherit}.highlight .hl{background-color:light-dark(#ffffcc,#2d333b)}.highlight .lnt{color:light-dark(inherit,#737679)}.highlight .ln{color:light-dark(inherit,#6e7681)}.highlight .ni{color:light-dark(inherit,#ffa657)}.highlight .nx{color:light-dark(inherit,#e6edf3)}.highlight .vm{color:light-dark(inherit,#79c0ff)}.highlight .fm{color:light-dark(inherit,#d2a8ff)}.highlight .l{color:light-dark(inherit,#a5d6ff)}.highlight .ld{color:light-dark(inherit,#79c0ff)}.highlight .sa{color:light-dark(inherit,#79c0ff)}.highlight .dl{color:light-dark(inherit,#79c0ff)}.highlight .mb{color:light-dark(inherit,#a5d6ff)}.highlight .o{color:light-dark(inherit,#ff7b72)}.highlight .or{color:light-dark(inherit,#ff7b72)}.highlight .ch{color:light-dark(inherit,#8b949e)}.highlight .cpf{color:light-dark(inherit,#8b949e)}.heading-anchor{margin-left:.35em;opacity:0;text-decoration:none;font-weight:400;transition:opacity .15s ease-in-out}h1:hover>.heading-anchor,h2:hover>.heading-anchor,h3:hover>.heading-anchor,h4:hover>.heading-anchor,h5:hover>.heading-anchor,h6:hover>.heading-anchor,.heading-anchor:focus{opacity:.4}.heading-anchor:hover{opacity:.8}article .content div.highlight{margin:30px 0}.content picture img{max-width:100%;height:auto}.alert{border-left:4px solid var(--c-alert-border);background:var(--c-alert-bg);padding:.6em 1em;margin:1.5em 0}.alert>.alert-title{font-weight:700;margin:0 0 .4em;text-transform:capitalize}.alert>.alert-title>.fa{margin-right:.5em}.alert>:last-child{margin-bottom:0}.alert-note{border-left-color:#0969da}.alert-note>.alert-title{color:#0969da}.alert-tip{border-left-color:#1a7f37}.alert-tip>.alert-title{color:#1a7f37}.alert-important{border-left-color:#8250df}.alert-important>.alert-title{color:#8250df}.alert-warning{border-left-color:#9a6700}.alert-warning>.alert-title{color:#9a6700}.alert-caution{border-left-color:#cf222e}.alert-caution>.alert-title{color:#cf222e}@media screen and (max-width:760px){.content p code,.content li code{white-space:normal;word-break:break-word}}.svg-icon{width:1em;height:1em;display:inline-block;vertical-align:-.125em}header[role=banner] .icons .svg-icon{width:20px;height:20px}.alert-title .svg-icon{margin-right:.5em}.cactus-load-button{display:block;margin:1.5em auto;padding:.6em 1.4em;font:inherit;cursor:pointer;background:var(--c-code-bg);color:inherit;border:1px solid var(--c-button-border);border-radius:.4em}.cactus-load-button:hover:not([disabled]){background:var(--c-button-hover)}.cactus-load-button[disabled]{cursor:default;opacity:.7}header[role=banner] li.theme{display:inline}header[role=banner] li.theme:empty{display:none}.theme-toggle{display:inline;padding:0;background:0 0;border:0;color:inherit;cursor:pointer;font:inherit;opacity:.5}.theme-toggle:hover{opacity:1}.theme-toggle:focus-visible{outline:2px solid var(--c-link);outline-offset:2px}.theme-toggle .svg-icon{width:20px;height:20px}.invert-on-dark{filter:var(--img-invert)}header[role=banner]{position:relative;z-index:1;background:var(--c-bg)}.post-toc{display:none}@media screen and (min-width:1280px){.post-toc{display:block;position:fixed;top:180px;left:calc(50% + 400px);width:200px;max-height:calc(100vh - 200px);overflow-y:auto;font-size:.8em;line-height:1.4}}.post-toc-title{margin:0 0 .6em;font-family:brandon-grotesque,Futura,Helvetica Neue,Helvetica,sans-serif;font-size:.75em;font-weight:500;text-transform:uppercase;letter-spacing:.3em;opacity:.5}.post-toc nav ul{list-style:none;margin:0;padding:0}.post-toc nav ul ul{padding-left:.9em}.post-toc nav li{margin:.35em 0}.post-toc nav li:not(:has(>a)){margin:0}.post-toc nav li:not(:has(>a))>ul{padding-left:0}.post-toc nav a{color:var(--c-text-muted);white-space:normal;border:0}.post-toc nav a:hover{color:var(--c-link)}@media print{.post-toc{display:none}}