*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html,body{margin:0;padding:0}html{font-family:helvetica neue,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.5}@media(min-width:38em){html{font-size:20px}}body{color:#515151;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a{color:var(--link-color);text-decoration:none}a:hover,a:focus{text-decoration:underline}h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:400;line-height:1.25;color:#313131;text-rendering:optimizeLegibility}h1{font-size:2rem}h2{margin-top:1rem;font-size:1.5rem}h3{margin-top:1.5rem;font-size:1.25rem}h4,h5,h6{margin-top:1rem;font-size:1rem}p{margin-top:0;margin-bottom:1rem}strong{color:#303030}ul,ol,dl{margin-top:0;margin-bottom:1rem}dt{font-weight:700}dd{margin-bottom:.5rem}hr{position:relative;margin:1.5rem 0;border:0;border-top:2px solid #ccc;border-bottom:1px solid #fff}abbr{font-size:85%;font-weight:700;color:#555;text-transform:uppercase}abbr[title]{cursor:help;border-bottom:1px dotted #e5e5e5}code,pre{font-family:Menlo,Monaco,courier new,monospace}code{padding:.25em .5em;font-size:85%;color:#bf616a;background-color:#f9f9f9;border-radius:3px}pre{display:block;margin-top:0;margin-bottom:1rem;padding:1rem;font-size:.8rem;line-height:1.4;white-space:pre;white-space:pre-wrap;word-break:break-all;word-wrap:break-word;background-color:#f9f9f9}pre code{padding:0;font-size:100%;color:inherit;background-color:transparent}.highlight{margin-bottom:1rem;border-radius:4px}.highlight pre{margin-bottom:0}blockquote{padding:.5rem 1rem;margin:.8rem 0;color:#7a7a7a;border-left:.25rem solid #e5e5e5}blockquote p:last-child{margin-bottom:0}@media(min-width:30em){blockquote{padding-right:5rem;padding-left:1.25rem}.container{margin-right:auto}}img{display:block;margin:0 0 1rem;border-radius:5px;max-width:100%;height:auto}.lead{font-size:1.25rem;font-weight:300}.message{margin-bottom:1rem;padding:1rem;color:#717171;background-color:#f9f9f9}.container{max-width:38rem;padding-left:1rem;padding-right:1rem}.masthead{padding-top:1rem;padding-bottom:1rem;margin-bottom:3rem}.masthead-title{margin-top:0;margin-bottom:0;color:#505050}.masthead-title a{color:#505050}.masthead-title small{font-size:75%;font-weight:400;color:silver;letter-spacing:0}.page,.post{margin-bottom:4em}.page-title,.post-title,.post-title a{color:#303030}.page-title,.post-title{margin-top:0}.post-date{display:block;margin-top:-.5rem;margin-bottom:1rem;color:#9a9a9a}.related{padding-top:2rem;padding-bottom:2rem;border-top:1px solid #eee}.related-posts{padding-left:0;list-style:none}.related-posts h3{margin-top:0}.related-posts li small{font-size:75%;color:#999}.related-posts li a:hover{color:#268bd2;text-decoration:none}.related-posts li a:hover small{color:inherit}.comments{margin-top:3em}.copy-success{background:0 0;border:none;background-image:url(/icons/copy_success.svg);width:24px;height:24px;background-size:contain;background-repeat:no-repeat;background-position:50%;position:absolute;top:0;right:0;z-index:10}.copy-button{background:0 0;border:none;width:24px;height:24px;background-image:url(/icons/copy_content.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;position:absolute;top:0;right:0;z-index:10;padding:10px;cursor:pointer;transition:opacity .3s ease}.copy-button:hover{opacity:.8}.copy-button:active{transform:scale(.95);opacity:.7}.code-container{position:relative;display:inline-block;width:100%}.hll{background-color:#ffc}.c{color:#999}.err{color:#a00;background-color:#faa}.k{color:#069}.o{color:#555}.cm{color:#09f;font-style:italic}.cp{color:#099}.c1{color:#999}.cs{color:#999}.gd{background-color:#fcc;border:1px solid #c00}.ge{font-style:italic}.gr{color:red}.gh{color:#030}.gi{background-color:#cfc;border:1px solid #0c0}.go{color:#aaa}.gp{color:#009}.gs{}.gu{color:#030}.gt{color:#9c6}.kc{color:#069}.kd{color:#069}.kn{color:#069}.kp{color:#069}.kr{color:#069}.kt{color:#078}.m{color:#f60}.s{color:#d44950}.na{color:#4f9fcf}.nb{color:#366}.nc{color:#0a8}.no{color:#360}.nd{color:#99f}.ni{color:#999}.ne{color:#c00}.nf{color:#c0f}.nl{color:#99f}.nn{color:#0cf}.nt{color:#2f6f9f}.nv{color:#033}.ow{color:#000}.w{color:#bbb}.mf{color:#f60}.mh{color:#f60}.mi{color:#f60}.mo{color:#f60}.sb{color:#c30}.sc{color:#c30}.sd{color:#c30;font-style:italic}.s2{color:#c30}.se{color:#c30}.sh{color:#c30}.si{color:#a00}.sx{color:#c30}.sr{color:#3aa}.s1{color:#c30}.ss{color:#fc3}.bp{color:#366}.vc{color:#033}.vg{color:#033}.vi{color:#033}.il{color:#f60}.css .o,.css .o+.nt,.css .nt+.nt{color:#999}html{font-family:fira sans,sans-serif;font-weight:300}@media(min-width:48em){html{font-size:16px}}@media(min-width:58em){html{font-size:20px}}pre{tab-size:4}.sidebar{text-align:center;padding:2rem 1rem;color:rgba(255,255,255,.5);flex-shrink:0}@media(min-width:48em){.sidebar{top:0;left:0;bottom:0;width:18rem;text-align:left;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#464646 auto}::-webkit-scrollbar{width:7px}::-webkit-scrollbar-track{background:0 0;border-radius:10px}::-webkit-scrollbar-thumb{background-color:#464646;border-radius:10px}::-webkit-scrollbar-thumb:hover{background-color:#969696}}.sidebar a,li{color:var(--sidebar-a-color)}.sidebar-about{text-align:center;color:var(--sidebar-p-color)}.sidebar-about h1{color:var(--sidebar-h1-color);margin-top:0;font-weight:300;font-size:1.5em;font-family:abril fatface,serif}.sidebar-nav{margin-top:2rem;margin-bottom:2rem;padding-left:0;list-style:none}.subnav{list-style:none;padding-left:0}.sidebar-nav-item{display:block}a.sidebar-nav-item:hover,a.sidebar-nav-item:focus{text-decoration:underline}.sidebar-nav-item.active{font-weight:700}@media(min-width:48em){.sidebar-sticky{top:1rem;width:16rem}}.content{padding-top:2rem;padding-bottom:2rem}@media(min-width:48em){.content{max-width:38rem;margin-left:2rem;margin-right:1.75rem}}@media(min-width:64em){.content{max-width:44rem;margin-left:2rem;margin-right:1.75rem}}.footnote{font-size:.7em;margin-top:.5rem;color:var(--sidebar-p-color)}.go{color:#444}.badge{display:inline;vertical-align:bottom}.badges{float:right}.brand{font-size:4em;margin-bottom:0}@media(min-width:48em){.content{max-width:38rem;margin-left:1.75rem;margin-right:2rem}}@media(min-width:64em){.content{max-width:44rem;margin-left:1.75rem;margin-right:2rem}}.theme-base-08 .sidebar{background-color:#ac4142}.theme-base-08 .content a,.theme-base-08 .related-posts li a:hover{color:#ac4142}.theme-base-09 .sidebar{background-color:#d28445}.theme-base-09 .content a,.theme-base-09 .related-posts li a:hover{color:#d28445}.theme-base-0a .sidebar{background-color:#f4bf75}.theme-base-0a .content a,.theme-base-0a .related-posts li a:hover{color:#f4bf75}.theme-base-0b .sidebar{background-color:#90a959}.theme-base-0b .content a,.theme-base-0b .related-posts li a:hover{color:#90a959}.theme-base-0c .sidebar{background-color:#75b5aa}.theme-base-0c .content a,.theme-base-0c .related-posts li a:hover{color:#75b5aa}.theme-base-0d .sidebar{background-color:#6a9fb5}.theme-base-0d .content a,.theme-base-0d .related-posts li a:hover{color:#6a9fb5}.theme-base-0e .sidebar{background-color:#aa759f}.theme-base-0e .content a,.theme-base-0e .related-posts li a:hover{color:#aa759f}.theme-base-0f .sidebar{background-color:#8f5536}.theme-base-0f .content a,.theme-base-0f .related-posts li a:hover{color:#8f5536}body.layout-reverse .container.content{direction:rtl}body.layout-reverse .wrapper{justify-content:flex-end;flex-direction:row-reverse}.sub-heading{color:var(--sidebar-p-color)}@media(min-width:48em){.bullet{margin-left:1em;text-decoration-line:underline;text-decoration-style:dotted;text-decoration-thickness:1%}.sub-heading{margin-left:1em}.btn-light-dark svg{margin:auto;width:20px;height:20px;color:#000}.container.content{overflow-y:auto;padding-right:2rem;flex-grow:1}}@media(max-width:48em){body>.wrapper,body.layout-reverse .wrapper{flex-direction:column}body{overflow:auto!important;height:auto!important}.heading{font-weight:400}.entries{padding-left:0}.btn-light-dark svg{margin:auto;width:20px;height:20px;color:#000}}h1,h2,h3,h4,h5,strong{color:var(--text-color)}.content div,p,table{color:var(--text-color)}.page-title,.post-title,.post-title a{color:var(--post-title-color)}.content li,li>p{color:var(--list-color)}.content code{color:var(--code-color);background-color:var(--code-background-color)!important}.content a code{color:var(--link-color)}.content pre{color:var(--code-block-color);background-color:var(--code-block-background-color)!important}.content pre code{color:var(--code-block-color);background-color:transparent!important}.btn-light-dark .moon{color:var(--moon-sun-color)}.btn-light-dark .sun{color:var(--moon-sun-color)}.btn-light-dark{padding:0;margin:1em;border-radius:50%;border:none;cursor:pointer;text-align:center;width:40px;height:40px;background-color:var(--moon-sun-background-color)}body{overflow:hidden;height:100vh}body>.wrapper{display:flex;height:100%}.container.content{overflow-y:auto;flex-grow:1}.layout-reverse .container.content{padding-right:0;padding-left:2rem}.container.content::-webkit-scrollbar{width:3px}.container.content::-webkit-scrollbar-thumb{border-radius:1.5px}.container.content::-webkit-scrollbar-track{margin:5.5em 0}.sidebar{background-color:var(--sidebar-bg-color)}.lead{text-align:center;color:var(--sidebar-p-color)}.sidebar-about img{margin-left:auto;margin-right:auto;text-align:center;border:2px solid var(--sidebar-img-border-color);border-radius:50%;height:180px;width:180px}.social{margin-right:.5em;text-decoration:none!important;color:var(--sidebar-socials-color)!important}.heading{margin-top:1em}.post-date{display:inline-block;color:var(--date-color)}.info span{display:inline-block}.info ul{display:inline-block;float:right}.info ul li{margin-left:.5em}.headline{display:flex;justify-content:space-between;align-items:center;align-content:center}.reading-time{color:gray;font-style:italic}.newsletters .help-block-for-success{display:none;margin:.25rem 1rem .25rem 0;text-align:center;color:green}.newsletters .help-block-for-error{display:none;margin:.25rem 1rem .25rem 0;text-align:center;color:#de0928}.newsletters .help-block-show{display:block}.newsletters form{display:flex;align-content:center;justify-content:center;flex-flow:row wrap}.newsletters .email-subscription-form-hide{display:none}.newsletters label{margin:.25rem 1rem .25rem 0;text-align:center}.newsletters input{margin:.25rem 1rem .25rem 0;font-size:.75rem;padding:.25rem .5rem;border:1px solid var(--text-color);border-radius:.25rem}.newsletters input:focus-visible{outline:none}.newsletters button{background-color:transparent;color:var(--text-color);padding:.25rem .5rem;border-radius:.25rem;border:1px solid var(--text-color);font-family:inherit;font-size:.85rem;cursor:pointer;margin:.25rem 0}.tags{padding-left:0}.tags li{display:inline;text-decoration:none}.tags li a{color:var(--table-stripe-color);display:inline-block;padding:0 .7em;text-align:center;font-size:.7em;background-color:var(--list-color);border-radius:.2em}table{margin-bottom:1rem;width:100%;border:1px solid var(--table-border-color);border-collapse:collapse}td,th{padding:.25rem .5rem;border:1px solid var(--table-border-color)}tbody tr:nth-child(odd) td,tbody tr:nth-child(odd) th{background-color:var(--table-stripe-color)}.entries li{display:flex}.entries li .title{order:1}.entries li .published{order:3}.entries li::after{background-image:radial-gradient(circle,currentcolor 1px,transparent 1.5px);background-position:bottom;background-size:1ex 3.5px;background-repeat:space no-repeat;content:"";flex-grow:1;height:1.1em;order:2}.article-toc{display:none;font-size:.9em;width:20em;margin-top:5em;overflow-y:auto;line-height:1.4em;max-height:85%}.article-toc .toc-wrapper{position:fixed}.article-toc nav{margin-left:1em}.article-toc h4{margin-left:0}.article-toc ul{margin-bottom:0;padding:0}.article-toc li{list-style:none;margin-left:20px;margin-top:2px}.article-toc li a{color:var(--text-color);text-decoration:none}.article-toc li.active{font-weight:700}.article-toc li.inactive{font-weight:300}@media screen and (min-width:100em){.article-toc{display:block}}.next-post{text-align:right;float:right}.previous-post{float:left}.content pre code{white-space:pre}div.highlight pre{overflow-x:auto}#page-nav{text-align:center}#page-nav a{margin:0 .2em}#page-nav span{margin:0 .2em}.next{float:right;display:inline}.prev{float:left;display:inline}.current{color:var(--text-color)}@font-face{font-family:fira sans;font-style:normal;font-weight:300;src:local(''),url(/fonts/fira-sans-v16-latin-300.woff2)format('woff2'),url(/fonts/fira-sans-v16-latin-300.woff)format('woff')}@font-face{font-family:fira sans;font-style:italic;font-weight:300;src:local(''),url(/fonts/fira-sans-v16-latin-300italic.woff2)format('woff2'),url(/fonts/fira-sans-v16-latin-300italic.woff)format('woff')}@font-face{font-family:fira sans;font-style:normal;font-weight:400;src:local(''),url(/fonts/fira-sans-v16-latin-regular.woff2)format('woff2'),url(/fonts/fira-sans-v16-latin-regular.woff)format('woff')}@font-face{font-family:fira sans;font-style:italic;font-weight:400;src:local(''),url(/fonts/fira-sans-v16-latin-italic.woff2)format('woff2'),url(/fonts/fira-sans-v16-latin-italic.woff)format('woff')}@font-face{font-family:abril fatface;font-style:normal;font-weight:400;src:local(''),url(/fonts/abril-fatface-v19-latin-regular.woff2)format('woff2'),url(/fonts/abril-fatface-v19-latin-regular.woff)format('woff')}.tabs{overflow:hidden;border-bottom:1px solid var(--text-color)}@media(min-width:48em){.tabs button{font-family:Menlo,Monaco,courier new,monospace;font-size:.8em;background-color:var(--bkg-color);color:var(--text-color);float:left;border-top:1px solid var(--text-color);border-right:1px solid var(--text-color);border-bottom:none;border-left:1px solid var(--text-color);border-radius:5px 5px 0 0;margin:0 .2em 0 0;outline:none;cursor:pointer;padding:.5em 1em;transition:.3s}}@media(max-width:48em){.tabs button{font-family:Menlo,Monaco,courier new,monospace;font-size:.8em;background-color:var(--bkg-color);color:var(--text-color);float:left;border-top:1px solid var(--text-color);border-right:1px solid var(--text-color);border-bottom:none;border-left:1px solid var(--text-color);border-radius:5px 5px 0 0;margin:0 .2em 0 0;outline:none;cursor:pointer;padding:.7em 1.3em;transition:.3s}}.tabs button:hover{background-color:#ddd;color:var(--dark-gray)}.tabs button.active{background-color:#ccc;color:#000}.tabcontent{display:none;padding-top:.2em}.lead{font-size:1rem}ul.certifications{display:flex;border-top:solid 1px #fff;border-bottom:solid 1px #fff;padding:1rem 0}.certifications li{list-style-type:none}.certifications img{width:96px;height:96px;border:2px solid #fff}@media(max-width:48em){.sidebar{padding:1rem;.certifications { display: none; } .sidebar-nav { margin-top: 0; margin-bottom: 0; display: flex; justify-content: space-evenly; gap: 1rem; .heading { text-decoration-line: underline; text-decoration-style: dotted; text-decoration-thickness: 1%; } .sub-heading { display: none; } .bullet { display: none; } } .social { display: none; } .footnote { display: none; } .lead { margin-bottom: 0; } .brand { display: flex; align-items: center; gap: 10px; margin-bottom: 1rem; a { display: flex; } img{ width: 90px; height: 90px; margin: 0; flex-shrink: 0; } }}}.projects .info{margin-bottom:4em}.projects .info .links{float:none;display:flex;flex-flow:row wrap;justify-content:flex-start;gap:5px;padding:0}.projects .info .links li{list-style:none;margin:0;padding:0}.projects .info .links li a img{margin:0}.books .info{margin-bottom:4em}.books .info .links{float:none;display:flex;flex-flow:row wrap;justify-content:flex-start;gap:5px;padding:0}.books .info .links li{list-style:none;margin:0;padding:0}.books .info .links li a img{margin:0}.headline{flex-direction:column;align-items:start}.headline>div{flex:1 0 auto}.headline>.tags{flex:initial}.post-date{margin-bottom:0}.info ul li{margin-left:0}@media(max-width:48em){.headline{align-items:flex-start}.headline>.tags{flex:none;width:100%}.headline .tags{float:none;display:block}}blockquote{position:relative;padding:1.5rem 1rem 1rem 2rem;margin:1.5rem 0;background-color:rgba(0,0,0,3%);border-radius:5px;overflow:hidden}blockquote::before{content:'"';position:absolute;top:-20px;left:5px;font-size:9rem;font-family:playfair display,times new roman,serif;background:linear-gradient(to bottom,rgba(0,0,0,.15),rgba(0,0,0,5%));-webkit-background-clip:text;background-clip:text;color:transparent;transform:rotate(-5deg);line-height:1;z-index:0}blockquote p{position:relative;z-index:1}blockquote.alert{padding:0;background-color:#fff;box-shadow:0 2px 5px rgba(0,0,0,.1)}blockquote.alert::before{content:""}.alert>.alert-heading{padding:1rem 1rem .5rem;margin:0;font-weight:bolder}.alert>.alert-content,.alert>p{padding:1rem 1rem .5rem;margin:0;color:#000}.alert-warning>.alert-heading{background-color:#fbf4ea;color:#cb8e38}.alert-warning{border-color:#cb8e38;color:#cb8e38}.alert-info{border-color:#2858e2;color:#2858e2}.alert-info>.alert-heading{background-color:#e9effd;color:#2858e2}.talks-year{text-align:center}.talks-item{list-style:none;margin-bottom:2rem}.events-container{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0;width:100%}.event-card{display:inline-flex;align-items:center;gap:.5rem;margin:0;padding:.5rem .8rem;border-radius:5px;box-shadow:0 1px 3px var(--sidebar-bg-color)}.event-name{font-weight:700;color:var(--post-title-color);font-size:.9rem}.event-date{color:var(--date-color);font-style:italic;font-size:.9rem}.content pre.mermaid{color:var(--code-block-color);background-color:var(--bkg-color)!important}.photo-gallery{display:flex;flex-direction:column}.gallery-row{display:flex;flex-wrap:nowrap;justify-content:flex-start}.gallery-row img{width:100%;flex-shrink:1;height:auto;transition:transform .3s ease;margin:0}.gallery-row img:hover{transform:scale(1.3)}.photo-gallery>img{margin:0;border-radius:4px;width:100%;max-width:800px;height:auto;transition:transform .3s ease}.images-grid-2{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem}.images-grid-3{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1rem}.bluesky-likes{text-decoration:none;border:1px solid #0085ff;border-radius:4px;padding:1px 6px;font-size:.8rem;color:#0085ff;transition:all .2s ease}.bluesky-likes:hover{background-color:#0085ff;color:#fff;text-decoration:none}