.astro-route-announcer{left:0;position:absolute;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;white-space:nowrap;width:1px}html{box-sizing:border-box;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}html body *{animation-delay:0s!important;animation-duration:0s!important}}*,:after,:before{box-sizing:inherit}blockquote,body,figure,h1,h2,h3,h4,h5,h6,hr,li,ol,p,pre,ul{margin:0;padding:0}ul:where([class]){list-style:none}button,input,select,textarea{color:inherit;font:inherit;letter-spacing:inherit}input[type=text],textarea{width:100%}fieldset{border:0;padding:0}legend{margin-bottom:.5rem;max-width:100%}button,input,textarea{border:1px solid gray}button{background-color:transparent;border-radius:0;line-height:1;padding:.75em 1em}button:hover{cursor:pointer}embed,iframe,img,object,svg,video{display:block;max-width:100%}table{table-layout:fixed;width:100%}[hidden]{display:none!important}noscript{display:block;margin-bottom:1em;margin-top:1em}[tabindex="-1"]{box-shadow:none!important;outline:0!important}:root{--primary:#a45650;--secondary:#ff6d76;--tertiary:#693f4c;--neutral:#f1f0f0;--neutral2:#dad2d1;--neutral-contrast:#0f0f0f;--accent-border:#bb9e9a}html.darkmode{--primary:#e5bfb8;--secondary:#d57174;--tertiary:#bb7b8e;--neutral:#0f0f0f;--neutral2:#3a3939;--neutral-contrast:#f0f0f0;--accent-border:#6b5757}@font-face{font-display:swap;font-family:Gambarino;font-style:normal;font-weight:100 1000;src:url(/fonts/Gambarino-Regular.woff2)format("woff2")}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:100 1000;src:url(/fonts/Inter-VariableFont_slnt,wght.woff2)format("woff2-variations")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:100 1000;src:url(/fonts/Inter-Italic-VariableFont_opsz,wght.woff2)format("woff2-variations")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:100 1000;src:url(/fonts/Montserrat-VariableFont_wght.woff2)format("woff2-variations")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:100 1000;src:url(/fonts/Montserrat-Italic-VariableFont_wght.woff2)format("woff2-variations")}body{font-family:var(--font-family-default);font-size:1rem;font-synthesis:none;line-height:1.5rem;text-rendering:optimizeLegibility;text-shadow:rgba(0,0,0,.01)0 0 1px;-webkit-text-size-adjust:100%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}body a:not(.button){text-decoration:underline}body a:not(.button),body a:not(.button):visited{color:var(--action-color)}body a:not(.button):focus,body a:not(.button):hover{color:var(--action-color-state);text-decoration:none}body :where(main) a{word-wrap:break-word;word-break:break-word}body :where(h1,h2){font-family:var(--font-family-special)}body h1,body h2{font-weight:800}body h3,body h4,body h5,body h6{font-weight:600}body h1{font-size:2.25rem;line-height:3.375rem}@media (min-width:768px){body h1{font-size:3rem;line-height:3.625rem}}body h2{font-size:1.875rem;line-height:2.8125rem}@media (min-width:768px){body h2{font-size:2.25rem;line-height:3.375rem}}body h3{font-size:1.5rem;line-height:2.25rem}@media (min-width:768px){body h3{font-size:1.875rem;line-height:2.8125rem}}body h4{font-size:1.25rem;line-height:1.875rem}@media (min-width:768px){body h4{font-size:1.5rem;line-height:2.25rem}}body h5{font-size:1.125rem;line-height:1.6875rem}@media (min-width:768px){body h5{font-size:1.25rem;line-height:1.875rem}body h5 h6{font-size:1rem}body h5{font-size:1.125rem;line-height:1.6875rem}}ol:not([class]),ul:not([class]){margin-left:1rem}ol:not([class]) ol,ol:not([class]) ul,ul:not([class]) ol,ul:not([class]) ul{padding:.5rem 1rem 0}ol:not([class]) li,ul:not([class]) li{margin-bottom:.5rem}ul:not([class])>li::marker{color:var(--primary);display:block}ol.incremented,ol.incremented ol{counter-reset:item}ol.incremented ol,ol.incremented ul{margin:.75rem 0 0 1rem}ol.incremented li{display:block;margin-bottom:.5rem}@media (min-width:768px){ol.incremented li{margin-bottom:.75rem}}ol.incremented li:before{content:counters(item,".")". ";counter-increment:item}ol.incremented li:last-child{margin-bottom:0}ol.incremented li p{display:inline}ol.incremented ul li:before{content:""}.container{margin:0 auto;max-width:100%}@media (min-width:768px){.container{padding:0 2rem}}@media (min-width:1080px){.container{padding:0 1rem}}.container.stretch{max-width:100%}.grecaptcha-badge{visibility:hidden}:focus,:focus-visible{box-shadow:0 0 0 2px #fff;outline:2px dotted #000;outline-color:#000;outline-offset:0}:focus:not(:focus-visible){box-shadow:none;outline:0}header.main-header .main-navigation{align-self:flex-start;margin-left:15px}header.main-header .main-navigation li.menu-item{margin:auto}header.main-header .main-navigation li.menu-item.current a{font-weight:750}header.main-header .main-navigation li.menu-item a{font-family:Montserrat,sans-serif;font-size:1rem;font-variation-settings:"wdth"500;font-weight:500}header.main-header nav{display:flex}header.main-header nav>ul{display:flex;gap:1.5rem;list-style-type:none}header.main-header nav>ul a,header.main-header nav>ul button{font-size:1.125rem;line-height:1.6875rem;text-decoration:none;transition:color .15s ease-out}header.main-header nav>ul .has-dropdown>button:focus,header.main-header nav>ul .has-dropdown>button:hover,header.main-header nav>ul .is-active,header.main-header nav>ul a:focus,header.main-header nav>ul a:hover{text-decoration:underline;text-decoration-style:wavy;text-decoration-thickness:1px;text-underline-offset:7px}header.main-header nav>ul .is-active{font-weight:700}@media (min-width:576px){header .main-navigation{margin:auto auto auto 0;padding:20px;width:-moz-fit-content;width:fit-content}}[data-astro-cid-zpgcatmh]:focus,[data-astro-cid-zpgcatmh]:focus-visible{box-shadow:0 0 0 2px #fff;outline:2px dotted #000;outline-color:#000;outline-offset:0}[data-astro-cid-zpgcatmh]:focus:not(:focus-visible){box-shadow:none;outline:0}.theme-icon-initial[data-astro-cid-zpgcatmh]{display:none}.darkmode-toggle[data-astro-cid-zpgcatmh]{background:0 0;border:0;cursor:pointer;height:35px;padding:0;position:relative;width:35px}.darkmode-toggle[data-astro-cid-zpgcatmh] .icon-wrapper[data-astro-cid-zpgcatmh]{display:block;height:100%;position:relative;width:100%}.darkmode-toggle[data-astro-cid-zpgcatmh] .theme-icon[data-astro-cid-zpgcatmh]{align-items:center;bottom:0;color:var(--action-color);display:flex;height:35px;left:0;opacity:1;position:absolute;transition:opacity .5s ease,transform .5s ease;width:35px}.darkmode-toggle[data-astro-cid-zpgcatmh] .theme-icon[data-astro-cid-zpgcatmh] path[data-astro-cid-zpgcatmh]{fill:var(--action-color);transition:fill .2s ease-out,transform .2s ease-out,opacity .2s ease-out}.darkmode-toggle[data-astro-cid-zpgcatmh]:hover .theme-icon[data-astro-cid-zpgcatmh] path[data-astro-cid-zpgcatmh]{fill:var(--action-color-state)}.darkmode-toggle[data-astro-cid-zpgcatmh]:focus{box-shadow:0 0 0 2px #fff;outline:2px dotted #000;outline-color:#000;outline-offset:0}.darkmode-toggle[data-astro-cid-zpgcatmh]:focus:not(:focus-visible){box-shadow:none;outline:0}@keyframes rotate-out{0%{opacity:1;transform:rotate(0)}40%{opacity:0}50%{opacity:0;transform:rotate(-180deg)}to{opacity:0;transform:rotate(-1turn)}}@keyframes rotate-in{0%{opacity:0;transform:rotate(1turn)}40%{opacity:1}50%{opacity:1;transform:rotate(180deg)}to{opacity:1;transform:rotate(0)}}.rotate-out[data-astro-cid-zpgcatmh]{animation:rotate-out .5s ease forwards;opacity:0;pointer-events:none}.rotate-in[data-astro-cid-zpgcatmh]{animation:rotate-in .5s ease forwards;opacity:1;pointer-events:auto}:root{--header-auto-hide:0;--header-height:100px}header.main-header{backdrop-filter:saturate(180%) blur(20px);background:var(--background);border-bottom:3px solid var(--accent-border-colour);gap:10px;position:sticky;top:0;transform:translateY(0);transition:transform .3s ease;transition:transform .1s ease-out;z-index:9999}header.main-header.auto-hide-header{transform:translateY(calc(var(--header-auto-hide)*(11px - var(--header-height))))}header.main-header.auto-hide-header .hover-area{height:calc(var(--header-height) - 10px);left:0;pointer-events:all;position:absolute;top:100%;width:100%}header.main-header.auto-hide-header:hover{transform:translateY(0)}header .main-menu-nav{align-self:flex-start;margin:auto 0}.menu-item>a.active{color:var(--active-link-colour)!important;font-weight:700!important}.header{border:0;box-sizing:border-box;display:flex;flex-wrap:wrap;gap:10px;height:var(--header-height);justify-content:space-between;margin:auto;max-width:1200px;padding:10px 0}.header .projects-and-links-container{align-items:center;align-self:flex-start;display:flex;margin:0 10px;padding:0}.header .projects-and-links-container .my-links-container{display:flex;gap:30px;padding:0;width:-moz-fit-content;width:fit-content}.header .projects-and-links-container .my-link-text{display:none}.header .my-link{display:flex;gap:10px;justify-content:center;position:relative;text-decoration:none}.header .my-link svg{color:var(--action-color);height:30px;margin:auto;width:30px}.header .my-link-text{margin:auto}.header .my-link-icon{width:40px}.header .my-link:focus:after,.header .my-link:hover:after{opacity:1;transition:opacity .1s ease-out}.header .my-link:focus .my-link-text,.header .my-link:hover .my-link-text{color:var(--primary);text-decoration:underline;text-decoration-style:wavy;text-decoration-thickness:1px;text-underline-offset:7px}@media (min-width:768px){header .my-links-container .my-link-text{display:block!important}}@media (min-width:576px){.header .projects-and-links-container{flex-direction:row;margin:auto 0 auto auto;padding-right:20px}.header .projects-and-links-container .my-link-text{display:initial}.header .projects-and-links-container .personal-projects{margin:auto}.header .projects-and-links-container .personal-projects-link{margin-right:20px}header .my-link svg{height:40px;width:40px}}.help-icon[data-astro-cid-invnd5dr]{width:20px}section[data-astro-cid-invnd5dr].footer{padding:30px var(--side-inset)}.footer-text[data-astro-cid-invnd5dr]{display:block;font-size:.9rem;text-align:end}.footer-container[data-astro-cid-invnd5dr]{display:flex;flex-direction:column;gap:20px;position:relative}.footer-container[data-astro-cid-invnd5dr] #popup[data-astro-cid-invnd5dr]{background-color:var(--background);bottom:0;position:absolute}.footer-help-button[data-astro-cid-invnd5dr]{align-self:flex-end;background:0 0;border:0;cursor:pointer;padding:0}.footer-help[data-astro-cid-invnd5dr]{height:25px;width:25px}.visually-hidden[data-astro-cid-invnd5dr]{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border:0;white-space:nowrap}.popup[data-astro-cid-invnd5dr]{background-color:#fff;border:1px solid #ccc;bottom:20px;box-shadow:0 4px 8px #0000001a;display:flex;justify-content:center;padding:15px;position:fixed;right:20px;z-index:1000}.popup[data-astro-cid-invnd5dr].hidden{display:none}.popup-content[data-astro-cid-invnd5dr]{text-align:center}:root{--radius-small:3px;--radius-large:6px;--gap-default:2rem;--font-measure:70ch;--font-family-default:"Inter",sans-serif;--font-family-special:"Inter",sans-serif;--side-inset:30px;--border-colour:#dad2d1;--box-shadow:rgba(0,0,0,.1);--card-background:#dcd5d4;--chip-background:#f1eeed;--accent-border-colour:var(--accent-border);--active-link-colour:var(--tertiary);--background2:var(--neutral2);--font-color:var(--neutral-contrast);--action-color:var(--primary);--action-color-state:var(--primary);--background:var(--neutral);--button-text:var(--neutral)}.darkmode{--border-colour:#7a7a7a;--box-shadow:hsla(0,0%,100%,.1);--card-background:#000;--chip-background:#1e1e1e;--accent-border-colour:var(--accent-border);--active-link-colour:var(--tertiary);--background2:var(--neutral2);--font-color:var(--neutral-contrast);--action-color:var(--primary);--action-color-state:var(--primary);--background:var(--neutral);--button-text:var(--neutral)}body,html{height:100%;overflow-x:hidden}body{background-color:var(--background);color:var(--font-color);display:flex;flex-direction:column;overscroll-behavior:none}body,body div,body main{transition:background .1s ease-out}body section{align-items:center;border-bottom:1px solid var(--border-colour);display:flex;flex-direction:column;height:100%;margin:0 auto;max-width:1200px;padding:75px var(--side-inset);scroll-margin-top:91px}body .section-title{align-self:flex-start;font-size:50px;font-weight:700;line-height:50px;margin-bottom:30px}body main{flex:1 0 auto}body footer{flex-shrink:0;margin-top:40px}pre{border:2px solid var(--action-color);border-radius:.35rem;padding:1rem}body .pagination a:focus-visible,body .pagination a:hover{background-color:var(--action-color-state)}body .pagination a:focus-visible svg path,body .pagination a:hover svg path{stroke:#fff}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{mix-blend-mode:plus-lighter;opacity:0}to{mix-blend-mode:plus-lighter;opacity:1}}@keyframes astroFadeOut{0%{mix-blend-mode:plus-lighter;opacity:1}to{mix-blend-mode:plus-lighter;opacity:0}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-new(*),::view-transition-old(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}