:root,[data-theme=default]{--color-primary:rgb(27, 27, 27);--color-inline-code:hsl(0, 81%, 35%);--color-contrast-lower:rgb(227, 226, 223);--color-contrast-medium-low:hsl(240, 1%, 65%);--color-contrast-medium:hsl(240, 1%, 48%);--color-contrast-medium-high:rgb(78,78,78);--color-contrast-high:hsl(240, 4%, 20%);--color-contrast-higher:black;--font-size-sm:clamp(0.8rem, 0.17vw + 0.76rem, 0.89rem);--font-size-base:clamp(0.9rem, 0.34vw + 0.91rem, 1.19rem);--font-size-md:clamp(1.25rem, 0.61vw + 1.1rem, 1.58rem);--font-size-lg:clamp(1.56rem, 1vw + 1.31rem, 2.11rem);--font-size-xl:clamp(1.95rem, 1.56vw + 1.56rem, 2.81rem);--font-size-xxl:clamp(2.44rem, 2.38vw + 1.85rem, 3.75rem);--font-size-xxxl:clamp(3.05rem, 3.54vw + 2.17rem, 5rem)}[data-theme]{background-color:var(--color-bg);color:var(--color-contrast-high)}[data-theme=dark]{--color-primary:rgb(227, 226, 223);--color-inline-code:hsl(0, 81%, 70%);--color-bg:rgb(53,58,63);--color-contrast-lower:rgb(53,58,63);--color-contrast-low:rgb(53,58,63);--color-contrast-medium-low:hsl(240, 2%, 34%);--color-contrast-medium:hsl(240, 1%, 57%);--color-contrast-medium-high:hsl(240, 1%, 65%);--color-contrast-high:rgb(227, 226, 223);--color-contrast-higher:white;--color-text:var(--color-contrast-high)}/*!normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css*/html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html{background-color:var(--color-contrast-lower);box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}html,body{height:100%}body{display:flex;flex-direction:column}main{flex:1 0 auto;color:var(--color-primary)}footer{flex-shrink:0;background-color:aqua}a{color:var(--color-contrast-high);text-decoration:underline}a:hover,a:active,a:focus,a:focus-within{color:var(--color-text);text-decoration:underline}h1{font-size:var(--font-size-lg);line-height:calc(8px + 2ex);color:var(--color-contrast-higher);font-family:pt serif;font-weight:500;text-decoration:none}h2{font-size:var(--font-size-md);line-height:calc(8px + 2ex);color:var(--color-contrast-higher);font-family:pt serif;font-weight:500;text-decoration:none}h3{font-size:var(--font-size-base);line-height:calc(8px + 2ex);color:var(--color-contrast-higher);font-family:pt serif;font-weight:500;text-decoration:none}h4{font-size:var(--font-size-sm);line-height:calc(8px + 2ex);color:var(--color-contrast-higher)}h5{font-size:var(--font-size-sm);line-height:calc(8px + 2ex);color:var(--color-contrast-higher)}h6{font-size:var(--font-size-sm);line-height:calc(8px + 2ex);color:var(--color-contrast-medium-low)}table{display:grid;grid-template-columns:auto;justify-items:center;border-collapse:collapse;overflow-x:auto}td,th{padding:10px 20px;font-size:.9rem;line-height:1.4rem}th{border:1px solid var(--color-contrast-medium);background-color:var(--color-contrast-medium-low);color:var(--color-contrast-high);font-size:1rem}td{text-align:center}tr:nth-child(even) td{background-color:var(--color-contrast-lower);color:var(--color-contrast-high)}tr:nth-child(odd) td{background-color:var(--color-contrast-low);color:var(--color-contrast-high)}blockquote{background:var(--color-contrast-lower);border-left:10px solid var(--color-contrast-low);margin:1.5em 10px;padding:.7em 10px;quotes:"\201C" "\201D"}blockquote p{display:inline}blockquote::before{color:var(--color-contrast-low);content:open-quote;font-size:4em;line-height:.1em;margin-right:.25em;vertical-align:-.4em}pre{font-size:1rem;line-height:1.6rem;overflow-x:auto}code{overflow-x:scroll}pre:not([style]){background-color:#272822;color:#f8f8f2;padding:20px}p>code,li>code{background-color:var(--color-contrast-lower);font-size:1rem;color:var(--color-inline-code);padding:2px 5px;border-radius:5px}form{display:flex;flex-wrap:wrap;row-gap:10px}form input,form textarea{border:1px solid var(--color-contrast-medium-low);padding:10px 12px;font-size:1rem;background-color:var(--color-contrast-lower);color:var(--color-contrast-high)}@media(min-width:576px){form input,form textarea{padding:15px 12px;min-width:250px}}form button{cursor:pointer}img{width:"100%"}.diagram-container{display:block}.diagram-container img{max-width:100%;height:auto}.diagram-dark{display:none}[data-theme=dark] .diagram-light{display:none}[data-theme=dark] .diagram-dark{display:inline-block}@font-face{font-family:pt sans narrow;font-style:normal;font-weight:400;src:local("PT Sans Narrow"),local("PTSans-Narrow"),url(http://themes.googleusercontent.com/static/fonts/ptsansnarrow/v5/UyYrYy3ltEffJV9QueSi4RdbPw3QSf9R-kE0EsQUn2A.woff)format("woff")}@font-face{font-family:pt sans narrow;font-style:normal;font-weight:700;src:local("PT Sans Narrow Bold"),local("PTSans-NarrowBold"),url(http://themes.googleusercontent.com/static/fonts/ptsansnarrow/v5/Q_pTky3Sc3ubRibGToTAYiylde52zikAzebNtJS89aM.woff)format("woff")}@font-face{font-family:pt serif;font-style:normal;font-weight:400;src:local("PT Serif"),local("PTSerif-Regular"),url(http://fonts.gstatic.com/s/ptserif/v7/I-OtoJZa3TeyH6D9oli3ifesZW2xOQ-xsNqO47m55DA.woff2)format("woff2"),url(http://fonts.gstatic.com/s/ptserif/v7/sDRi4fY9bOiJUbgq53yZCfesZW2xOQ-xsNqO47m55DA.woff)format("woff")}@font-face{font-family:pt serif;font-style:italic;font-weight:400;src:local("PT Serif Italic"),local("PTSerif-Italic"),url(http://fonts.gstatic.com/s/ptserif/v7/03aPdn7fFF3H6ngCgAlQzPk_vArhqVIZ0nv9q090hN8.woff2)format("woff2"),url(http://fonts.gstatic.com/s/ptserif/v7/03aPdn7fFF3H6ngCgAlQzBsxEYwM7FgeyaSgU71cLG0.woff)format("woff")}body{color:var(--color-text);font:100%/1.4 pt serif,sans serif}.summary-text,.project-list-summary,.post-list-summary{font-weight:300;font-size:var(--font-size-base);line-height:calc(8px + 2ex);color:var(--color-contrast-medium-high)}.meta-text,.project-list-meta,.post-list-meta{color:var(--color-contrast-medium);font-size:var(--font-size-sm);line-height:calc(8px + 2ex);font-weight:400;display:flex;flex-wrap:wrap;gap:6px 15px}.fallback-text{color:var(--color-contrast-medium);font-size:var(--font-size-md);line-height:calc(8px + 2ex)}.clearfix::after{clear:both;content:'';display:table}.container,.single-container-post,.single-container,.container--sm{background-color:var(--color-contrast-lower);font-size:var(--font-size-base);line-height:calc(8px + 2ex);max-width:900px;margin-left:auto;margin-right:auto;width:100%;border-color:aqua;border-width:2px}@media(min-width:576px){.container,.single-container-post,.single-container,.container--sm{padding-left:20px;padding-right:20px}}.container--sm{max-width:768px}.hide-text{overflow:hidden;padding:0;text-indent:101%;white-space:nowrap}.visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.section{background-color:var(--color-contrast-lower);padding:10px 20px}.main-nav{background-color:var(--color-contrast-lower);display:flex;flex-direction:column;justify-content:space-between;margin-top:25px;padding:15px 0;width:auto;row-gap:20px;max-width:870px}.main-nav .nav-toggle{position:absolute;right:20px;cursor:pointer}@media(min-width:768px){.main-nav{flex-direction:row;align-items:center;padding:0}.main-nav .nav-toggle{display:none}}.logo{color:var(--color-contrast-medium-high);font-family:pt sans narrow;text-transform:uppercase;font-size:var(--font-size-md);line-height:calc(8px + 2ex);font-weight:600;text-decoration:none;margin-left:20px}@media(min-width:1200px){.logo{margin-left:0}}@media(min-width:900px){.logo{margin-left:0}}.menu-link{color:var(--color-contrast-medium-high);font-family:pt sans narrow;text-transform:uppercase;font-size:var(--font-size-md);line-height:calc(8px + 2ex);font-weight:700}.menu-link:hover{text-transform:underline}.menu{display:none;flex-direction:column;margin:0;padding:0;border-bottom:1px solid var(--color-contrast-medium-low);border-top:1px solid var(--color-contrast-medium-low)}.menu--active{display:flex}.menu .menu-item,.menu .menu-item--align{display:block;list-style-type:none}.menu .menu-item--align{align-self:center}.menu .menu-link{display:flex;font-size:1rem;color:var(--color-contrast-medium-high);font-family:pt sans narrow;text-transform:uppercase;font-size:var(--font-size-base);line-height:calc(8px + 2ex);font-weight:300;text-align:center;text-decoration:none;cursor:pointer;padding:.5rem 1rem}.menu .menu-link:hover{background-color:var(--color-contrast-medium-low);color:var(--color-contrast-high)}.menu .drop-icon{margin-left:10spx}@media(min-width:900px){.menu{display:flex;flex-direction:row;border:none}.menu .menu-item:hover .sub-menu,.menu .menu-item--align:hover .sub-menu{background-color:var(--color-contrast-lower);padding-left:0;display:block;z-index:1}}.sub-menu{display:none}.sub-menu--active{display:block;z-index:1}.sub-menu .menu-link{font-weight:initial}@media(min-width:900px){.sub-menu{display:none;position:absolute;box-shadow:rgba(9,30,66,.25)0 4px 8px -2px,rgba(9,30,66,8%)0 0 0 1px}.sub-menu--active{display:none}}.footer{color:var(--color-contrast-medium-high);display:flex;flex-direction:row}.footer-copyright{text-align:left;font-size:var(--font-size-sm);line-height:calc(8px + 2ex);max-width:900px;color:var(--color-contrast-medium-high)}.iteminvisible{width:100px;height:1px;visibility:hidden}:root{--switch-width:35px;--switch-height:18px;--switch-padding:3px;--switch-animation-duration:0.2s}.switch{display:flex;margin-bottom:2px;flex-shrink:0;align-items:center;width:var(--switch-width);height:var(--switch-height);border-radius:50em;border-color:aqua;border-width:2px;padding:3px 0;padding:var(--switch-padding)0;position:absolute;top:94px;right:18px}@media(min-width:900px){.switch{position:relative;top:unset;right:unset}}.switch-input,.switch-label{position:absolute;left:0;top:0}.switch-input{margin:0;padding:0;opacity:0;height:0;width:0;pointer-events:none}.switch-input:checked+.switch-label{background-color:#526fe5;background-color:var(--color-primary)}.switch-input:checked+.switch-label+.switch-marker{left:calc(100% - 29px);left:calc(100% - var(--switch-height) + var(--switch-padding))}.switch-input:focus+.switch-label,.switch-input:active+.switch-label{--color-shadow:hsla(228, 74%, 61%, 0.2);box-shadow:undefined;box-shadow:0 0 0 3px var(--color-shadow)}.switch-input:focus+.switch-label,.switch-input:active+.switch-label{box-shadow:0 0 0 3px rgba(82,111,229,.2);box-shadow:0 0 0 3px var(--color-shadow)}.switch-label{width:100%;height:100%;color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#d3d3d4;background-color:var(--color-contrast-medium);border-radius:inherit;z-index:1;transition:background .2s;transition:background var(--switch-animation-duration)}.switch-marker{position:relative;background-color:#fff;background-color:var(--color-contrast-high);width:20px;width:calc(var(--switch-height) - var(--switch-padding)*2);height:20px;height:calc(var(--switch-height) - var(--switch-padding)*2);border-radius:50%;z-index:2;pointer-events:none;box-shadow:0 1px 1px rgba(0,0,0,.25);left:3px;left:var(--switch-padding);transition:left .2s;transition:left var(--switch-animation-duration);will-change:left}.social-links{width:100%;opacity:.9}.social-icons,.social-icons--share{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:15px 40px;list-style:none;padding:0;margin:0}.social-icons--share{justify-content:flex-start;gap:10px 15px}.social-icons--share li{border:1px solid var(--color-contrast-medium-low);border-radius:100px;padding:12px;display:flex;justify-content:center;align-items:center}.btn-group{display:flex;column-gap:15px;margin-top:30px}.btn-secondary,.btn-primary{border:1px solid var(--color-primary);padding:.4rem .7rem;display:inline-block;font-size:var(--font-size-base);line-height:calc(8px + 2ex)}@media(min-width:576px){.btn-secondary,.btn-primary{padding:.5rem .8rem}}.btn-secondary:hover,.btn-primary:hover,.btn-secondary:active,.btn-primary:active,.btn-secondary:focus,.btn-primary:focus,.btn-secondary:focus-within,.btn-primary:focus-within{text-decoration:none}.btn-primary{background-color:var(--color-primary);color:var(--color-contrast-lower)}.btn-primary:hover{background:0 0;color:var(--color-primary)}.btn-secondary:hover{background-color:var(--color-primary);color:var(--color-contrast-lower)}.newsletter-header{color:var(--color-contrast-high);margin-bottom:0}.newsletter-desc{color:var(--color-contrast-medium-high);font-size:var(--font-size-base);line-height:calc(8px + 2ex)}#newsletter-form input{border-right:none}.pagination{list-style-type:none;display:flex;flex-wrap:wrap;justify-content:flex-start;gap:15px 10px;margin-top:50px;padding:0;font-size:var(--font-size-base);line-height:calc(8px + 2ex)}.page-link{color:var(--color-contrast-medium-high);padding:8px 15px;background-color:var(--color-contrast-lower)}.page-link:hover{color:var(--color-primary)}.page-link:hover,.page-link:active,.page-link:focus,.page-link:focus-within{text-decoration:none}.page-item.disabled>a{color:var(--color-contrast-low);cursor:unset}.page-item.active>a{background-color:var(--color-primary);color:var(--color-contrast-lower)}.draft::after{content:'Draft';color:#c90808;border:1px solid #c90808;border-radius:5px;font-size:var(--font-size-sm);line-height:calc(8px + 2ex);padding:2px 5px;font-weight:300}.clipboard-button{position:absolute;right:0;padding:2px 7px 5px;margin:5px;color:#767676;border-color:#767676;background-color:#ededed;border:1px solid;border-radius:6px;z-index:1;opacity:0;transition:.1s}.clipboard-button>svg{fill:#767676}.clipboard-button:hover{cursor:pointer;border-color:#696969;background-color:#e0e0e0}.clipboard-button:hover>svg{fill:#696969}.clipboard-button:focus{outline:0}.highlight{position:relative}.highlight:hover>.clipboard-button{opacity:1;transition:.2s}.code-language{position:relative;padding:6px 15px;border-radius:5px;background-color:#272822;color:#7f7f7f;z-index:1000;top:25px;font-size:var(--font-size-base);line-height:calc(8px + 2ex)}.highlight>pre{padding:20px}.markdown{font-size:var(--font-size-base);line-height:calc(8px + 2ex)}.markdown p>img,.markdown figure>img{max-width:100%;height:auto}.markdown figure{margin-left:0;margin-right:0}.markdown figcaption{font-size:var(--font-size-sm);line-height:calc(8px + 2ex);color:var(--color-contrast-medium);font-weight:300}@media(min-width:1200px){.toc{position:sticky;top:2rem;align-self:start;order:2;display:flex;flex-direction:column;align-items:center;height:90vh;overflow-y:scroll}}.toc-header,.toc-drop-icon{font-size:var(--font-size-sm);line-height:calc(8px + 2ex);font-weight:500;margin:0;text-align:center}.toc-contents{display:none;font-size:var(--font-size-sm);line-height:calc(8px + 2ex)}.toc-contents--active{display:block}@media(min-width:1200px){.toc-contents{display:block}.toc-contents--active{display:none}}#js-toc-toggle{display:inline-flex;align-items:center;column-gap:10px;padding:10px 20px;background-color:var(--color-contrast-lower);border-radius:20px}#js-toc-toggle:hover{cursor:pointer;color:var(--color-primary)}.page-header,.page-header--c{background-color:var(--color-contrast-lower);padding:30px;margin:0 0 50px;border-radius:20px}.page-header--c{text-align:center}.page-header-title{margin:0;color:var(--color-contrast-high);font-family:pt serif;text-transform:uppercase;font-weight:500;font-size:var(--font-size-lg);line-height:calc(8px + 2ex)}.page-header-desc{margin:0;margin-top:15px;color:var(--color-contrast-medium);font-weight:400;font-size:var(--font-size-base);line-height:calc(8px + 2ex)}.project-steps{margin-top:2rem}.project-steps h2{margin-bottom:1.5rem;font-size:1.5rem}.project-steps__list{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;list-style:none;padding:0;margin:0}@media(max-width:768px){.project-steps__list{grid-template-columns:1fr}}.project-steps__item{margin:0;padding:0}.project-steps__link{display:flex;flex-direction:column;height:100%;padding:1.5rem;border:1px solid rgba(255,255,255,.1);border-radius:8px;text-decoration:none;color:inherit;background:0 0;transition:border-color .2s ease,background-color .2s ease}.project-steps__link:hover{border-color:rgba(255,255,255,.3);background:rgba(255,255,255,5%)}[data-theme=light] .project-steps__link{border-color:#d1d5db;background:#fff}[data-theme=light] .project-steps__link:hover{border-color:#9ca3af;background:#f9fafb}.project-steps__title{font-weight:500;font-size:1.1rem;margin-bottom:.5rem;text-decoration:underline}.project-steps__summary{font-size:.9rem;opacity:.7;line-height:1.5}.project-step__breadcrumb{margin-bottom:2rem}.project-step__breadcrumb a{opacity:.7;text-decoration:none;font-size:.875rem}.project-step__breadcrumb a:hover{opacity:1}.project-step__nav{display:flex;justify-content:space-between;margin-top:4rem;padding-top:2rem;border-top:1px solid rgba(255,255,255,.1);gap:2rem}[data-theme=light] .project-step__nav{border-top-color:#e5e5e5}.project-step__nav-prev,.project-step__nav-next{flex:1}.project-step__nav-prev a,.project-step__nav-next a{display:block;text-decoration:none;color:inherit}.project-step__nav-prev a:hover .project-step__nav-title,.project-step__nav-next a:hover .project-step__nav-title{text-decoration:underline}.project-step__nav-next{text-align:right}.project-step__nav-label{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;opacity:.7;margin-bottom:.25rem}.project-step__nav-title{font-weight:500}.hero{display:flex;flex-wrap:wrap;align-items:top}@media(min-width:768px){.hero{flex-wrap:nowrap}}@media(min-width:900px){.hero{padding:80px 0}}.index-content{color:var(--color-contrast-higher);font-size:var(--font-size-base)}.image-wrap{position:relative;margin-top:20px;margin-bottom:2em}.image-wrap:after{content:" ";display:block;position:absolute;bottom:0;left:8%;width:0;height:0;border:10px solid transparent}.image-wrap img{width:100%;height:auto;-ms-interpolation-mode:bicubic}.image-wrap .headline-wrap{position:absolute;bottom:25px}@media(min-width:768px){.hero-info{flex:0 1 65%}}.hero-info .hero-title{font-weight:900;margin-top:0;font-family:pt serif;font-size:var(--font-size-xl);line-height:calc(8px + 2ex)}.hero-info .hero-subtitle{color:var(--color-contrast-medium-high);font-size:var(--font-size-s);line-height:calc(8px + 2ex)}.hero-owner{display:flex;flex-direction:column;align-items:center;row-gap:20px}@media(min-width:768px){.hero-owner{flex:0 1 35%}}.hero-owner .hero-avatar{max-width:300px;width:100%;height:auto;border-radius:20px}@media(min-width:768px){.hero-owner .hero-avatar{max-width:100%;width:unset}}.home-section-title::after,.home-section-posts-title::after{background-color:var(--color-contrast-medium);content:"";display:block;height:2px;position:relative;width:80px;top:8px}.home-section-posts-title{margin:0}.home-title-dropdown{display:flex;flex-wrap:wrap;align-items:center;gap:30px;margin-bottom:50px}#select-posts{font-size:var(--font-size-sm);line-height:calc(8px + 2ex);padding:.4rem;border:1px solid var(--color-contrast-medium-low);border-radius:5px;color:var(--color-contrast-high);background-color:var(--color-contrast-lower)}.see-more{margin-top:30px}.see-more-projects{color:var(--color-contrast-medium);font-weight:300;font-size:var(--font-size-base)}#contact-form{flex-direction:column;row-gap:15px;max-width:500px;margin-top:30px}#contact-form button{align-self:flex-start}.single-feature-img{display:flex}.single-feature-img img{margin:30px 0;margin-bottom:0;max-width:100%;height:auto}.single-terms{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-start;margin-top:20px}.single-container-post{max-width:900px}@media(min-width:1200px){.single-container-post{max-width:900px}}.single-post-contents{overflow:auto}.series{font-size:var(--font-size-base);line-height:calc(8px + 2ex);margin:2rem 0}.series-this-post{color:var(--color-primary);border:1px solid var(--color-primary);border-radius:5px;padding:.3rem;font-size:var(--font-size-sm);line-height:calc(8px + 2ex);font-weight:500;margin-left:10px}.single-next-previous{display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;align-items:baseline}.single-next-previous>*{background-color:transparent;border:1px solid var(--color-contrast-medium-low);border-radius:12px;padding:10px;font-size:var(--font-size-base);line-height:calc(8px + 2ex);max-width:300px}.single-next-previous>*:hover{text-decoration:none;border:1px solid var(--color-contrast-high)}.related-posts{font-size:var(--font-size-base);line-height:calc(8px + 2ex)}.feature-image-wrap{display:flex;flex-direction:column;gap:0}.feature-image-text{font-size:var(--font-size-sm);line-height:calc(8px + 2ex);font-family:pt serif;font-style:italic;text-align:right;margin-top:0;color:var(--color-contrast-high)}.terms{display:flex;flex-wrap:wrap;justify-content:center;gap:15px 15px}.term{border:1px solid var(--color-primary);border-radius:20px;font-size:var(--font-size-sm);line-height:calc(8px + 2ex);padding:.4rem .6rem}.term:hover{text-decoration:none;border:1px solid var(--color-contrast-high);color:var(--color-contrast-high)}@media(min-width:576px){.term{padding:.5rem .7rem}}.term-count{color:var(--color-contrast-high);margin-left:2px}.error-404{margin-top:50px}.error-404 h1{margin:0}.error-404 p{margin-top:10px}.post-entry{margin:20px 0;max-width:750px}.list-header{margin-bottom:50px;font-size:var(--font-size-base);line-height:calc(8px + 2ex)}.post-entry-divider{background-color:var(--color-contrast-low);content:"";display:block;height:1px;position:relative;max-width:750px}.post-list-title{font-weight:400;margin:0;font-family:pt serif;font-size:var(--font-size-md);line-height:calc(8px + 2ex);text-transform:none}.post-list-title a{text-decoration:none;color:var(--color-contrast-high);text-decoration:underline}.post-list-title a:hover{color:var(--color-contrast-medium)}.post-list-summary{margin:10px 0 0}.post-list-meta{margin-top:10px}.post-list-dates{font-weight:400}.post-list-categories{display:inline-flex;column-gap:10px}.project-list{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem 1rem}@media(max-width:768px){.project-list{grid-template-columns:1fr}}.project-entry{border:1px solid var(--color-contrast-medium-low);border-radius:10px;box-shadow:0 0 20px -10px var(--color-contrast-low),0 0 20px -10px var(--color-contrast-low)}.project-reading-time{font-size:var(--font-size-sm);line-height:calc(8px + 2ex);margin-top:2px}.project-entry-img{position:relative;border-radius:5px 5px 0 0;min-height:1rem;max-height:200px}.project-entry-img img{width:100%;height:15vh;object-fit:cover;border-radius:5px 5px 0 0;border-bottom:1px solid var(--color-contrast-low);z-index:1;position:relative}.project-entry-type{position:absolute;top:0;right:0;z-index:2;padding:0 .2rem;background-color:var(--color-contrast-medium-low);border-left:1px solid var(--color-contrast-medium-low);border-bottom:1px solid var(--color-contrast-medium-low);border-top-right-radius:5px}.project-entry-type a{font-size:var(--font-size-sm);line-height:calc(8px + 2ex)}.project-entry-info{padding:1.2rem}@media(min-width:576px){.project-entry-info{padding:1.5rem}}.project-entry-header{display:flex;flex-direction:row;justify-content:space-between}.project-entry-title{margin:0;font-weight:400}.project-entry-title a{color:var(--color-contrast-high)}.project-entry-title a:hover{text-decoration:none;color:var(--color-primary)}.project-list-meta{margin-top:10px}.all-entry{display:flex;gap:1rem;padding:.25rem 0}.all-entry-date{color:var(--color-contrast-medium);min-width:5rem;font-size:.9em}