/* 
 * Newsreader Variable Font
 * Copyright 2020 The Newsreader Project Authors (https://github.com/ProductionType/Newsreader)
 * Licensed under the SIL Open Font License, Version 1.1
 * https://scripts.sil.org/OFL
 */@font-face{font-display:swap;font-family:Newsreader;font-style:normal;font-weight:200 800;src:url(/assets/fonts/Newsreader-opsz-wght.woff2) format("woff2-variations")}@font-face{font-display:swap;font-family:Newsreader;font-style:italic;font-weight:200 800;src:url(/assets/fonts/Newsreader-Italic-opsz-wght.woff2) format("woff2-variations")}@property --opsz{syntax:"<length>";initial-value:0;inherits:false}:root{color-scheme:light;font-size:130%;--background-color:#fefaf3;--text-color:#2a1f1c;--secondary-text-color:#5c4d48;--tertiary-text-color:#6b524c;--border-color:#e8d8c8;--border-hover-color:#2a1f1c;--link-underline-color:#8a7a6a;--link-hover-underline-color:#2a1f1c;--card-bg-color:#f5ede3;--card-border-color:#e8d8c8;--card-hover-bg-color:#ede5db;--card-hover-border-color:#d8c8b8;--interactive-hover-bg-color:#d8c8b8;--footer-border-color:#e8d8c8;--toggle-icon:#2a1f1c;--toggle-shadow:rgba(47,32,32,.12);--accent-color:#8c4a2f;--selection-bg:#e8d8c8}img{height:auto;max-width:100%}[data-theme=dark]{color-scheme:dark;--background-color:#1c1713;--text-color:#f0e6da;--secondary-text-color:#b9a89a;--tertiary-text-color:#9a8778;--border-color:#3f352d;--border-hover-color:#c4b4a8;--link-underline-color:#8a7364;--link-hover-underline-color:#d08962;--card-bg-color:#251f1a;--card-border-color:var(--border-color);--card-hover-bg-color:#2c261f;--card-hover-border-color:#5a4a3e;--interactive-hover-bg-color:#3f352d;--footer-border-color:var(--border-color);--toggle-icon:var(--text-color);--toggle-shadow:rgba(48,28,16,.55);--accent-color:#d08962;--selection-bg:#4a3428}*{box-sizing:border-box;padding:0;--opsz:1em;font-variation-settings:"opsz" tan(atan2(var(--opsz),1px))}body{background-color:var(--background-color);box-sizing:content-box;font-family:Newsreader,Georgia,Times New Roman,Times,serif;font-synthesis:none;font-weight:400;line-height:1.5;margin-inline:auto;max-width:40rem;padding:1rem;-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto;hyphens:auto;overflow-wrap:break-word}.skip-to-content,body{color:var(--text-color)}.skip-to-content{background-color:var(--card-bg-color);border:1px solid var(--card-border-color);border-radius:0 0 4px 0;box-shadow:0 2px 4px rgba(0,0,0,.1);display:block;font-size:.9rem;font-weight:600;left:0;padding:8px 16px;position:absolute;text-decoration:none;top:-100px;transition:top .2s ease,background-color .2s ease,border-color .2s ease;visibility:visible;z-index:1000}.skip-to-content:focus{background-color:var(--card-hover-bg-color);border-color:var(--accent-color);outline:2px solid var(--accent-color);outline-offset:2px;top:0}html.fonts-loaded body{font-family:Newsreader,Georgia,Times New Roman,Times,serif}body,footer,header,main,nav{transition:background-color .3s ease,color .3s ease}.back-to-top,.tab,.theme-toggle,a,button{transition:background-color .2s ease,color .2s ease,border-color .2s ease}@supports (-webkit-appearance:none){body,footer,header,main,nav{transition:background-color .1s ease,color .1s ease}.back-to-top,.tab,.theme-toggle{transition:background-color .05s ease,color .05s ease,border-color .05s ease}a,article,dd,div,dl,dt,h1,h2,h3,h4,h5,h6,li,ol,p,section,span,ul{transition:none!important}}.tab{transition:color .2s ease}.tab:hover{color:var(--text-color)}:focus:not(:focus-visible){outline:none}:focus-visible{border-radius:4px;outline:2px solid var(--accent-color);outline-offset:2px}button:disabled,input[type=button]:disabled,input[type=reset]:disabled,input[type=submit]:disabled{background-color:var(--border-color)!important;border-color:var(--border-color)!important;border-style:dashed!important;color:var(--secondary-text-color)!important;cursor:not-allowed!important;opacity:.4!important;position:relative!important}button:disabled:before,input[type=button]:disabled:before,input[type=reset]:disabled:before,input[type=submit]:disabled:before{background-color:var(--secondary-text-color)!important;content:""!important;height:1px!important;left:0!important;opacity:.6!important;position:absolute!important;right:0!important;top:50%!important}#app-wrapper{margin:0;max-width:100%;padding:0}main{min-height:360px}main:focus-visible{border-radius:4px;outline:2px solid var(--accent-color);outline-offset:8px}.content{width:100%}.content.no-title>:first-child{margin-top:2rem}.content li:not(.garden-list li),.content p,article li:not(.garden-list li),article p{hyphens:auto;overflow-wrap:break-word;text-align:justify;text-wrap:pretty}h1,h2,h3{text-wrap:balance}.visually-hidden{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border:0;white-space:nowrap}::-moz-selection{background:var(--selection-bg);color:var(--text-color)}::selection{background:var(--selection-bg);color:var(--text-color)}.page-container{margin:0;max-width:100%;padding:0}.home-intro{margin-bottom:3rem}.card{border:1px solid var(--border-color);border-radius:8px;padding:1.5rem;transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}.card,.card:hover{background-color:var(--card-bg-color);box-shadow:0 1px 3px rgba(0,0,0,.08)}.card:hover{border-color:var(--border-hover-color)}.text-center{text-align:center}.padding-vertical{padding:2rem 0}.nowrap{white-space:nowrap}.profile-header{align-items:center;display:flex;flex-direction:row;margin-bottom:24px}.profile-photo-wrap{border-radius:50%;display:block;flex-shrink:0;height:92px;margin-right:24px;overflow:hidden;text-decoration:none;transition:opacity .2s;width:92px}.profile-photo-wrap:hover{opacity:.8}.profile-photo-wrap img,.profile-photo-wrap picture{display:block;height:100%;width:100%}.profile-photo-wrap img{-o-object-fit:cover;object-fit:cover;-o-object-position:center 58%;object-position:center 58%;transform:scale(1.02) translateY(1px)}[data-theme=dark] .profile-photo-wrap img{filter:grayscale(.12) brightness(.92) contrast(.95) sepia(.35) saturate(1.04)}.profile-info{flex:1;min-width:0}.profile-header .profile-name,.profile-header .profile-name a{--opsz:22px;font-optical-sizing:none;font-size:1.4rem;font-variation-settings:"opsz" 22;font-weight:600;line-height:1.2}.profile-header .profile-name{margin:0 0 2px}.profile-header .profile-name a{border-bottom:none;color:inherit;padding-bottom:0;text-decoration:none;transition:opacity .2s}.profile-header .profile-name a:hover{opacity:.7}.profile-header .profile-tagline{color:var(--text-color);font-size:.95em;line-height:1.4;margin:0 0 4px}a{border-bottom:1px solid var(--link-underline-color);color:var(--text-color);padding-bottom:1px;text-decoration:none;transition:border-color .2s}a:hover{border-color:var(--link-hover-underline-color)}#tabs{border-bottom:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:.33rem 2rem;justify-content:flex-start;margin-bottom:24px;z-index:10}#tabs,.tab{position:relative}.tab{border-bottom:none;display:inline-flex;margin-right:0;padding:8px 0;text-decoration:none}.tab span{color:var(--secondary-text-color)}.tab.selected span,.tab:hover span{color:var(--text-color)}.tab.selected:after,.tab:hover:after{background-color:var(--text-color);bottom:-1px;content:"";height:1px;left:0;position:absolute;right:0}.about,.cv{margin-bottom:40px}.about p,.cv p{margin-bottom:16px}h1{font-size:2.5em;font-weight:500;line-height:1.05;margin:2rem 0 1.5rem}h2{font-size:1.75em;font-weight:600;line-height:1.15em;margin:2rem 0 .25rem}h3{color:var(--secondary-text-color);font-size:1.25em;font-weight:700;line-height:1.25em}h4,h5{font-size:1em}blockquote{background-color:var(--card-bg-color);font-size:.9em;line-height:1.5;padding:1rem}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}#work-experience{margin-bottom:60px}#work-experience h2,#work-experience h3{color:var(--text-color);font-size:1.5rem;font-weight:700;letter-spacing:.5px;line-height:normal;margin-bottom:24px;text-transform:uppercase}.experience{-moz-column-gap:.5rem;column-gap:.5rem;display:flex;margin-bottom:32px}.duration{color:var(--secondary-text-color);flex-shrink:0;font-size:.9em;width:9.5rem}.experience-content{flex:1}.title{font-weight:600;margin-bottom:4px}.external-link{border-bottom:none;color:var(--text-color);padding-bottom:0;text-decoration:none}.external-link:hover{border-bottom:none;text-decoration:underline}.location{color:var(--tertiary-text-color);font-size:.9em;margin-bottom:12px}.description ul{padding-left:20px}.description li{margin-bottom:8px}.details{margin-top:15px}.details-link{background-color:var(--card-bg-color);border:1px solid var(--card-border-color);border-radius:4px;color:var(--text-color);display:inline-block;font-size:.9em;padding:6px 12px;text-decoration:none;transition:background-color .2s,border-color .2s}.details-link:hover{background-color:var(--interactive-hover-bg-color);border-color:var(--card-hover-border-color)}#projects{margin-top:10px}.project{border-bottom:1px solid var(--border-color);margin-bottom:40px;padding-bottom:30px}.project:last-of-type{border-bottom:none}h4{font-size:1em;font-weight:600;margin-bottom:16px}.project .description{margin-top:10px}.project p{margin-bottom:15px}.back-link{display:flex;justify-content:center;margin-bottom:20px;margin-top:40px}.back-link a{border-bottom:1px solid var(--link-underline-color);color:var(--text-color);padding-bottom:1px;text-decoration:none;transition:border-color .2s}.back-link a:hover{border-color:var(--link-hover-underline-color)}footer{border-top:1px solid var(--footer-border-color);margin-left:auto;margin-right:auto;margin-top:60px;max-width:40rem;padding-top:20px;text-align:center}footer p{color:var(--secondary-text-color);font-size:.9em;margin-bottom:20px;margin-top:25px}footer .atom-feed{font-size:.85em;margin-top:10px}footer .atom-feed a{align-items:center;border-bottom:1px solid transparent;color:var(--secondary-text-color);display:inline-flex;gap:.25em;line-height:1;text-decoration:none;transition:border-color .2s ease}footer .atom-feed a svg{display:inline-block;flex-shrink:0;margin-top:-.1em;vertical-align:middle}footer .atom-feed a:hover{border-bottom-color:var(--link-underline-color)}.theme-toggle-wrapper{position:fixed;right:20px;top:20px;z-index:100}.theme-toggle{align-items:center;background-color:var(--card-bg-color);border:1px solid var(--card-border-color);border-radius:50%;box-shadow:0 2px 8px var(--toggle-shadow);cursor:pointer;display:flex;height:44px;justify-content:center;overflow:hidden;padding:0;position:relative;transition:all .3s ease;width:44px}.theme-toggle:hover{background-color:var(--interactive-hover-bg-color);border-color:var(--card-hover-border-color);box-shadow:0 4px 12px var(--toggle-shadow);transform:translateY(-2px)}.theme-toggle:active{transform:translateY(1px)}.theme-toggle .icon{align-items:center;display:flex;height:24px;justify-content:center;position:absolute;transition:opacity .2s ease,transform .2s ease;width:24px}.theme-toggle .icon img,.theme-toggle .icon svg{color:var(--toggle-icon);height:100%;width:100%}.theme-toggle .icon-sun{opacity:0;transform:scale(.5)}.theme-toggle .icon-moon,[data-theme=dark] .theme-toggle .icon-sun{opacity:1;transform:scale(1)}[data-theme=dark] .theme-toggle .icon-moon{opacity:0;transform:scale(.5)}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.15)}to{transform:scale(1)}}.theme-toggle.clicked .icon{animation:pulse .3s ease-in-out}.back-to-top-wrapper{bottom:20px;opacity:0;position:fixed;right:20px;transition:opacity .3s ease,visibility .3s ease;visibility:hidden;z-index:50}.back-to-top-wrapper.show{opacity:1;visibility:visible}.back-to-top{align-items:center;background-color:var(--card-bg-color);border:1px solid var(--card-border-color);border-radius:50%;box-shadow:0 2px 8px var(--toggle-shadow);cursor:pointer;display:flex;height:40px;justify-content:center;transition:all .3s ease;width:40px}.back-to-top:hover{background-color:var(--interactive-hover-bg-color);border-color:var(--card-hover-border-color);transform:translateY(-3px)}.back-to-top:active{transform:translateY(-1px)}.back-to-top .icon{align-items:center;color:var(--toggle-icon);display:flex;justify-content:center}.back-to-top .icon svg{height:16px;width:16px}a[target=_blank]:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' viewBox='0 0 12 12'%3E%3Cpath fill='%23111' d='M3.5 3a.5.5 0 0 0 0 1zm5 .5H9a.5.5 0 0 0-.5-.5zm-.5 5a.5.5 0 0 0 1 0zm-5.354.146a.5.5 0 1 0 .708.708zM3.5 4h5V3h-5zM8 3.5v5h1v-5zm.146-.354-5.5 5.5.708.708 5.5-5.5z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:contain;content:"";display:inline-block;height:12px;margin-left:3px;vertical-align:top;width:12px}[data-theme=dark] a[target=_blank]:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' viewBox='0 0 12 12'%3E%3Cpath fill='%23f5f5f5' d='M3.5 3a.5.5 0 0 0 0 1zm5 .5H9a.5.5 0 0 0-.5-.5zm-.5 5a.5.5 0 0 0 1 0zm-5.354.146a.5.5 0 1 0 .708.708zM3.5 4h5V3h-5zM8 3.5v5h1v-5zm.146-.354-5.5 5.5.708.708 5.5-5.5z'/%3E%3C/svg%3E")}.external-link-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' viewBox='0 0 12 12'%3E%3Cpath fill='%23111' d='M3.5 3a.5.5 0 0 0 0 1zm5 .5H9a.5.5 0 0 0-.5-.5zm-.5 5a.5.5 0 0 0 1 0zm-5.354.146a.5.5 0 1 0 .708.708zM3.5 4h5V3h-5zM8 3.5v5h1v-5zm.146-.354-5.5 5.5.708.708 5.5-5.5z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:contain;display:inline-block;height:12px;vertical-align:top;width:12px}[data-theme=dark] .external-link-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' viewBox='0 0 12 12'%3E%3Cpath fill='%23f5f5f5' d='M3.5 3a.5.5 0 0 0 0 1zm5 .5H9a.5.5 0 0 0-.5-.5zm-.5 5a.5.5 0 0 0 1 0zm-5.354.146a.5.5 0 1 0 .708.708zM3.5 4h5V3h-5zM8 3.5v5h1v-5zm.146-.354-5.5 5.5.708.708 5.5-5.5z'/%3E%3C/svg%3E")}.posts{margin-bottom:1rem}.posts h2,.posts h3{font-size:1.1em;font-weight:600;line-height:1.25em;margin-bottom:.5rem;margin-top:.75rem;position:relative}.posts h2 a,.posts h3 a{color:var(--text-color);position:relative;text-decoration:none}.posts h2 a:after,.posts h3 a:after{background-color:var(--secondary-text-color);bottom:-1px;content:"";height:1px;left:0;position:absolute;right:0;transition:background-color .2s ease}.posts h2 a:hover:after,.posts h3 a:hover:after{background-color:var(--text-color)}.posts .post-meta{font-size:1rem;line-height:1.5;margin-bottom:1rem;margin-top:0;overflow:hidden}.posts .post-meta time.post-meta-prefix,article.content>header .post-meta{color:var(--secondary-text-color)}.posts .post-meta time.post-meta-prefix{float:left;margin-right:.2rem;white-space:nowrap}.posts .post-meta .post-meta-suffix{overflow:hidden}.no-posts{color:var(--secondary-text-color);padding:3rem 0;text-align:center}.pagination{margin-bottom:2rem;margin-top:3rem}.pagination-list{align-items:center;display:flex;flex-wrap:wrap;justify-content:center;list-style:none;padding:0;row-gap:.6rem}.pagination-list li{margin:0 .3rem}.pagination-link{background-color:var(--card-bg-color);border:1px solid var(--card-border-color);border-radius:4px;color:var(--text-color);display:inline-block;padding:.5rem 1rem;text-decoration:none;transition:all .2s ease}.pagination-link:hover:not(.disabled){border-color:var(--card-hover-border-color)}.pagination-link.current,.pagination-link:hover:not(.disabled){background-color:var(--interactive-hover-bg-color);color:var(--text-color)}.pagination-link.current{border:1px solid var(--card-hover-border-color)}.pagination-link-nav{min-width:6.5rem;text-align:center}.pagination-link.disabled{cursor:not-allowed;opacity:.5}article.content>header .post-meta{align-items:center;display:flex;flex-wrap:wrap;font-size:1rem;margin-bottom:2rem;margin-top:-.5rem}article.content>header .post-meta time{margin-right:0}.note-meta{align-items:center;color:var(--secondary-text-color);display:flex;flex-wrap:wrap;font-size:1rem;gap:.35rem .6rem;margin-bottom:2rem;margin-top:-.5rem}.note-meta .note-category{color:var(--text-color)}article.content>header .post-meta .post-meta-separator{margin-left:.45rem;margin-right:.45rem}.tag{background-color:var(--card-bg-color);border-radius:4px;color:var(--secondary-text-color);display:inline-block;font-size:.8rem;margin:.2rem;padding:.3rem .6rem;text-decoration:none;transition:all .2s ease}.tag:hover{background-color:var(--card-hover-bg-color);color:var(--text-color)}.garden-list{list-style:none;margin:0 0 2.5rem;padding:0}.garden-list li{line-height:1.6;margin:0;padding:0;text-align:left}.garden-list a{color:var(--text-color);font-weight:400;text-decoration:none}.garden-list a:hover{text-decoration:underline;text-decoration-color:var(--link-underline-color);text-underline-offset:2px}.garden-description{color:var(--secondary-text-color);font-weight:400}:root,[data-pf-theme=dark]{--pf-font:Newsreader,Georgia,"Times New Roman",Times,serif;--pf-text:var(--text-color);--pf-text-secondary:var(--secondary-text-color);--pf-text-muted:var(--tertiary-text-color);--pf-background:var(--background-color);--pf-border:var(--card-border-color);--pf-border-focus:var(--card-hover-border-color);--pf-skeleton:var(--card-bg-color);--pf-skeleton-shine:var(--card-hover-bg-color);--pf-hover:var(--card-hover-bg-color);--pf-mark:var(--text-color);--pf-scroll-shadow:var(--toggle-shadow);--pf-outline-focus:var(--accent-color);--pf-input-height:2.75rem;--pf-input-font-size:1rem;--pf-summary-font-size:1rem;--pf-result-title-font-size:1rem;--pf-result-excerpt-font-size:1rem;--pf-border-radius:4px;--pf-modal-backdrop:rgba(0,0,0,.5);--pf-modal-max-width:700px}[data-pf-theme=dark],[data-theme=dark]{--pf-modal-backdrop:rgba(0,0,0,.65)}#search{display:flex;flex-direction:column;gap:.75rem}#search,#search pagefind-input,#search pagefind-results,#search pagefind-summary{width:100%}pagefind-modal-trigger{display:none!important}:is(*,#\#):is(*,#\#):is(*,#\#) .pf-result-link:active,:is(*,#\#):is(*,#\#):is(*,#\#) .pf-result-link:hover,:is(*,#\#):is(*,#\#):is(*,#\#) .pf-result-link:visited{color:var(--text-color)}:is(*,#\#):is(*,#\#):is(*,#\#) .pf-result-card:has([data-pf-selected]),:is(*,#\#):is(*,#\#):is(*,#\#) .pf-result-card:hover,:is(*,#\#):is(*,#\#):is(*,#\#) pagefind-modal-body .pf-result-card:has([data-pf-selected]){background:var(--card-hover-bg-color);border-color:var(--card-hover-border-color)}:is(*,#\#):is(*,#\#):is(*,#\#) .pf-result-card:has(.pf-result-link:focus-visible){border-color:var(--accent-color);box-shadow:0 0 0 var(--pf-outline-width) var(--accent-color)}.content pre code{background-color:transparent;border-radius:0;color:inherit;font-size:.7rem!important;padding:0}.content pre .copy-code-button{background-color:var(--card-bg-color);border:1px solid var(--border-color);border-radius:3px;color:var(--text-color);cursor:pointer;font-family:inherit;font-size:.75em;opacity:.7;padding:.4rem .6rem;position:absolute;right:.5rem;top:.5rem;transition:opacity .2s ease;z-index:10}.content pre:hover .copy-code-button{opacity:1}.content pre .copy-code-button:hover{background-color:var(--card-hover-bg-color);border-color:var(--border-hover-color)}.content pre .copy-code-button:active{opacity:.8}:root{--code-bg-color:#f5f2f0;--code-border-color:var(--border-color);--code-text-color:#1f2328;--code-selection-bg:#dbeafe;--code-selection-text:#1f2328;--code-comment-color:#66707d;--code-punctuation-color:#1f2328;--code-keyword-color:#7a3eb1;--code-string-color:#0a7a4b;--code-number-color:#b42318;--code-function-color:#005cc5;--code-class-color:#953800;--code-constant-color:#0550ae;--code-operator-color:#1f2328;--code-tag-color:#0550ae;--code-attr-name-color:#8a4600;--code-regex-color:#c73a2a}[data-theme=dark]{--code-bg-color:#251f1a;--code-border-color:var(--border-color);--code-text-color:#f0e6da;--code-selection-bg:#4a3428;--code-selection-text:#f0e6da;--code-comment-color:#9a8778;--code-punctuation-color:#c4b4a8;--code-keyword-color:#d08962;--code-string-color:#b4a06a;--code-number-color:#c97850;--code-function-color:#f0e6da;--code-class-color:#d4a07a;--code-constant-color:#c4a882;--code-operator-color:#c4b4a8;--code-tag-color:#d08962;--code-attr-name-color:#c4a070;--code-regex-color:#c97850}.content code[class*=language-],.content pre[class*=language-],code[class*=language-],pre[class*=language-]{font-size:.7rem!important}.content pre[class*=language-]{background-color:var(--code-bg-color)!important;border:none!important;border-left:2px solid var(--code-border-color)!important;border-radius:0!important;line-height:1.5!important;margin:1.5rem 0!important;overflow-x:auto!important;padding:2.5rem 1rem 1.5rem!important;position:relative!important}.content code[class*=language-],.content pre[class*=language-] code{background-color:transparent!important;color:var(--code-text-color)!important;font-family:Courier New,Courier,monospace!important;font-size:.7rem!important;text-shadow:none!important}.content pre[class*=language-] code{border-radius:0!important;padding:0!important}.content code[class*=language-] ::selection,.content code[class*=language-]::selection,.content pre[class*=language-] ::selection,.content pre[class*=language-]::selection{background:var(--code-selection-bg)!important;color:var(--code-selection-text)!important}.content code[class*=language-] ::-moz-selection,.content code[class*=language-]::-moz-selection,.content pre[class*=language-] ::-moz-selection,.content pre[class*=language-]::-moz-selection{background:var(--code-selection-bg)!important;color:var(--code-selection-text)!important}.content .token.cdata,.content .token.comment,.content .token.doctype,.content .token.prolog{color:var(--code-comment-color)!important;font-style:italic!important}.content .token.punctuation{color:var(--code-punctuation-color)!important}.content .token.boolean,.content .token.constant,.content .token.deleted,.content .token.property,.content .token.symbol{color:var(--code-constant-color)!important}.content .token.number{color:var(--code-number-color)!important}.content .token.tag{color:var(--code-tag-color)!important}.content .token.builtin,.content .token.char,.content .token.inserted,.content .token.selector,.content .token.string{color:var(--code-string-color)!important}.content .token.attr-name{color:var(--code-attr-name-color)!important}.content .language-css .token.string,.content .style .token.string,.content .token.entity,.content .token.operator,.content .token.url{background:transparent!important;color:var(--code-operator-color)!important}.content .token.atrule,.content .token.attr-value,.content .token.keyword{color:var(--code-keyword-color)!important;font-weight:600!important}.content .token.function{color:var(--code-function-color)!important}.content .token.class-name{color:var(--code-class-color)!important}.content .token.important,.content .token.regex,.content .token.variable{color:var(--code-regex-color)!important}.post-navigation{border-top:1px solid var(--border-color);padding-top:2rem}.post-nav-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:2rem;align-items:end}.next-post,.prev-post{max-width:340px;width:100%}.prev-post{justify-self:start}.next-post{justify-self:end;text-align:right}.nav-label{color:var(--secondary-text-color);display:block;font-size:.8rem;margin-bottom:.5rem}.nav-link{align-items:center;border-bottom:1px solid var(--link-underline-color);display:flex;padding-bottom:1px;text-decoration:none;transition:color .2s ease,border-color .2s ease}.nav-link,.nav-link:visited{color:var(--text-color)}.next-post .nav-link{justify-content:flex-end}.nav-link:focus-visible,.nav-link:hover{border-color:var(--link-hover-underline-color);color:var(--text-color)}.nav-title{font-weight:500}.contact-methods{gap:2rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-bottom:3rem}.contact-method h3{font-size:1.2rem;letter-spacing:normal;margin-bottom:1rem;text-transform:none}.contact-link{margin-bottom:1rem}.contact-link a{align-items:center;border-bottom:1px solid var(--link-underline-color);color:var(--text-color);display:inline-flex;font-family:inherit;font-size:1.1rem;font-weight:500;padding-bottom:2px;text-decoration:none;transition:border-color .2s}.contact-link a:hover{border-color:var(--link-hover-underline-color)}.contact-description{color:var(--secondary-text-color)}@media (max-width:768px){.contact-methods{grid-template-columns:1fr}.theme-toggle-wrapper{right:10px;top:10px}.back-to-top-wrapper{bottom:15px;right:15px}}@media (max-width:640px){#tabs{justify-content:center}.profile-header{align-items:center;flex-direction:column;text-align:center}.profile-photo-wrap{margin-bottom:16px;margin-right:0}.experience{flex-direction:column}.duration{margin-bottom:8px;width:100%}.content li:not(.garden-list li),.content p,article li:not(.garden-list li),article p{text-align:start}}@media (max-width:480px){#app-wrapper{padding:20px 16px}}@media print{:root,[data-pf-theme=dark],[data-theme=dark],html{background:#fff!important;background-color:#fff!important;color-scheme:light!important}@page{background:#fff;margin-bottom:0}.back-to-top-wrapper,.skip-to-content,.theme-toggle-wrapper,footer{display:none!important}.break-inside{page-break-inside:avoid;-moz-column-break-inside:avoid;break-inside:avoid}section{page-break-after:auto;-moz-column-break-after:auto;break-after:auto}h3,h4{page-break-after:avoid;-moz-column-break-after:avoid;break-after:avoid}li{page-break-inside:avoid;-moz-column-break-inside:avoid;break-inside:avoid}.experience{page-break-inside:auto;-moz-column-break-inside:auto;break-inside:auto}.print-only{display:block!important}.code-toolbar>.toolbar,.content pre .copy-code-button,.pagination,.post-navigation,.toolbar,pagefind-input,pagefind-modal,pagefind-modal-trigger{display:none!important}.content pre[class*=language-],pre[class*=language-]{background-color:#fafafa!important;border-left-color:#ebebeb!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.content pre[class*=language-] code,pre[class*=language-] code{background-color:transparent!important}#tabs a.tab{display:none!important}#tabs{border-bottom:1px solid var(--border-color)!important;display:block!important}#tabs,h2,h3{margin-bottom:12px!important}#work-experience{margin-bottom:20px!important}.experience{-moz-column-gap:0;column-gap:0;margin-bottom:16px!important}.project{margin-bottom:20px!important;padding-bottom:15px!important}.gdpr-notice{page-break-inside:avoid;border-top:1px solid var(--border-color)!important;margin-top:15px!important;padding-top:10px!important}.gdpr-notice p{line-height:1.4!important}.back-link{display:none!important}.no-print-border{border:none!important;box-shadow:none!important;margin-bottom:0!important;padding-bottom:0!important}#projects .project{page-break-inside:avoid}.details{display:none!important}:root,[data-theme=dark]{--background-color:#fff!important;--text-color:#111!important;--secondary-text-color:#444!important;--tertiary-text-color:#555!important;--border-color:#eee!important;--border-hover-color:#111!important;--link-underline-color:#999!important;--link-hover-underline-color:#111!important;--card-bg-color:#f8f8f8!important;--card-border-color:#eee!important;--card-hover-bg-color:#f0f0f0!important;--card-hover-border-color:#ddd!important;--footer-border-color:#eee!important;--code-text-color:#1f2328!important;--code-comment-color:#6b7280!important;--code-punctuation-color:#374151!important;--code-keyword-color:#1d4ed8!important;--code-string-color:#166534!important;--code-number-color:#7f1d1d!important;--code-function-color:#0f766e!important;--code-class-color:#7c2d12!important;--code-constant-color:#4338ca!important;--code-operator-color:#374151!important;--code-tag-color:#1e3a8a!important;--code-attr-name-color:#9a3412!important;--code-regex-color:#9d174d!important}#app-wrapper,body{background:#fff!important;background-color:#fff!important;color:#000!important}body{border:none!important;box-shadow:none!important;font-size:14px!important;margin:0!important;position:relative}#app-wrapper,body{padding:0!important}#app-wrapper{max-width:100%!important}.cv-title{display:none!important}.content,.page-container{max-width:100%!important}.page-container{padding:0!important}h2,h3{font-size:16px!important}.experience-content{font-size:13px!important}.duration{width:120px}.duration,.location{font-size:12px!important}.description,.description li,li,p{font-size:13px!important}.description li{line-height:1.3!important}.title{font-size:14px!important}.about p,.cv p,.project p{font-size:13px!important}.post-meta,.posts .post-meta,article.content>header .post-meta{font-size:12px!important;line-height:1.35!important}a{color:#000!important;text-decoration:underline!important}.tab{text-decoration:none!important}.tab.selected:after{background-color:#000!important}svg{fill:#000!important;stroke:#000!important}audio{display:none!important}.profile-photo-wrap img{filter:none!important}a{border-bottom:none!important;text-decoration:none!important}.external-link-icon,a[target=_blank]:after{display:none!important}}.print-only{display:none}.gdpr-notice{color:#666;font-size:.8rem;margin:40px auto 0;max-width:680px}.gdpr-notice hr{border:none;border-top:1px solid #ccc;margin-bottom:15px}.gdpr-notice p{margin-bottom:10px}.contact-methods{align-items:stretch;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.contact-method{display:flex;flex-direction:column;justify-content:flex-start;min-height:100px;position:relative}.contact-link{align-items:center;display:flex;font-family:inherit;margin-bottom:.5rem;min-height:1.5em}.contact-description{flex-shrink:0;font-family:inherit;font-size:1rem;line-height:1.6;margin-bottom:0;margin-top:.5rem;min-height:3em;position:relative;top:0;transform:translateZ(0);will-change:auto}@page{counter-increment:page;margin:.5in;@bottom-center{color:#666;content:"Page " counter(page) " of " counter(pages);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:8pt}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}