.about__logo{height:1.5rem}.about__title{display:inline;vertical-align:top}.about__title::before{content:none}.aside__social-links{padding:0}.aside__social-links li{display:inline-block}.aside__social-links li::marker{content:none}:root{--bg:var(--base00);--off-bg:var(--base01);--inner-bg:var(--base02);--fg:var(--base05);--off-fg:var(--base04);--muted:var(--base03);--link:var(--base0D);--hover:var(--base0C);--highlight:var(--base0A);--logo:var(--base0B)}.cv{max-width:80ch}.cv h1{border-bottom:1px solid var(--base03);padding-bottom:.5rem;margin-bottom:2rem}.cv-section{margin-bottom:2.5rem}.cv-section h2{color:var(--base0B);text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--base02);padding-bottom:.25rem;margin-bottom:1rem}.cv-employer{margin-bottom:1.5rem}.cv-employer-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}.cv-employer-name{font-weight:700;color:var(--base09)}.cv-employer-location{color:var(--base04)}.cv-role{margin-left:1.5rem;margin-bottom:.75rem}.cv-role-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.25rem}.cv-role-title{color:var(--base0D)}.cv-role-dates{color:var(--base04)}.cv-role ul{margin:.25rem 0 0;padding-left:1.5rem;color:var(--base05)}.cv-role ul li{margin-bottom:.2rem}.cv-skill-group{display:flex;gap:1.5rem;margin-bottom:.4rem;align-items:baseline}.cv-skill-label{color:var(--base0D);min-width:10ch;flex-shrink:0}.cv-skill-items{color:var(--base05)}.cv-edu{margin-bottom:.75rem}.page__footer{color:var(--off-fg)}.page__footer p{margin:0}.main-nav ul{display:flex;flex-flow:row wrap;justify-content:flex-start;align-items:center;margin:0;padding:0;gap:.5rem 2rem}.main-nav li{text-transform:lowercase}.main-nav li::marker{content:"./"}.page{max-width:64rem;margin:1rem auto;display:grid;grid-template-areas:"header" "body" "aside" "footer";grid-template-columns:minmax(0,1fr);grid-row-gap:2rem}@media(min-width:45rem){.page{grid-template-areas:"header  header" "body    aside" "footer  footer";grid-template-columns:minmax(0,1fr)15rem;grid-column-gap:2rem}}.page__header{grid-area:header;display:flex}.page__logo{flex-shrink:0}.page__nav{flex-grow:1}.page__body{grid-area:body;background-color:var(--off-bg);box-shadow:0 0 0 1rem var(--off-bg);overflow-wrap:break-word}.page__aside{grid-area:aside;color:var(--off-fg);position:sticky;top:1rem;right:1rem;overflow-y:auto;max-height:95vh}.page__footer{grid-area:footer}.page__logo{padding:0;margin:0;font-weight:inherit;color:var(--bg)}.page__logo:before{content:none}.page__logo-inner{display:block;background:var(--logo);opacity:.9;padding:.25rem}a.page__logo-inner:link,a.page__logo-inner:visited{color:inherit;text-decoration:inherit}a.page__logo-inner:hover,a.page__logo-inner:active{opacity:1}.page__logo-inner:before{content:"[";color:var(--bg)}.page__logo-inner:after{content:"] $";color:var(--bg)}@import 'colours.css';@import 'typography.css';@import 'layout.css';@import 'header.css';@import 'logo.css';@import 'about.css';@import 'footer.css';body{background-color:var(--bg);color:var(--fg)}.bg{color:#e7e9db;background-color:#2f1e2e}.chroma{color:#e7e9db;background-color:#2f1e2e;-webkit-text-size-adjust:none}.chroma .err{color:#ef6155}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#433442}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .line{display:flex}.chroma .k{color:#815ba4}.chroma .kc{color:#815ba4}.chroma .kd{color:#815ba4}.chroma .kn{color:#5bc4bf}.chroma .kp{color:#815ba4}.chroma .kr{color:#815ba4}.chroma .kt{color:#fec418}.chroma .na{color:#06b6ef}.chroma .nc{color:#fec418}.chroma .no{color:#ef6155}.chroma .nd{color:#5bc4bf}.chroma .ne{color:#ef6155}.chroma .nn{color:#fec418}.chroma .nx{color:#06b6ef}.chroma .nt{color:#5bc4bf}.chroma .nv{color:#ef6155}.chroma .vc{color:#ef6155}.chroma .vg{color:#ef6155}.chroma .vi{color:#ef6155}.chroma .vm{color:#ef6155}.chroma .nf{color:#06b6ef}.chroma .fm{color:#06b6ef}.chroma .l{color:#f99b15}.chroma .ld{color:#48b685}.chroma .s{color:#48b685}.chroma .sa{color:#48b685}.chroma .sb{color:#48b685}.chroma .dl{color:#48b685}.chroma .sd{color:#776e71}.chroma .s2{color:#48b685}.chroma .se{color:#f99b15}.chroma .sh{color:#48b685}.chroma .si{color:#f99b15}.chroma .sx{color:#48b685}.chroma .sr{color:#48b685}.chroma .s1{color:#48b685}.chroma .ss{color:#48b685}.chroma .m{color:#f99b15}.chroma .mb{color:#f99b15}.chroma .mf{color:#f99b15}.chroma .mh{color:#f99b15}.chroma .mi{color:#f99b15}.chroma .il{color:#f99b15}.chroma .mo{color:#f99b15}.chroma .o{color:#5bc4bf}.chroma .ow{color:#5bc4bf}.chroma .c{color:#776e71}.chroma .ch{color:#776e71}.chroma .cm{color:#776e71}.chroma .c1{color:#776e71}.chroma .cs{color:#776e71}.chroma .cp{color:#776e71}.chroma .cpf{color:#776e71}.chroma .gd{color:#ef6155}.chroma .ge{font-style:italic}.chroma .gh{font-weight:700}.chroma .gi{color:#48b685}.chroma .gp{color:#776e71;font-weight:700}.chroma .gs{font-weight:700}.chroma .gu{color:#5bc4bf;font-weight:700}:root{--font-monospace:"Fira Mono", monospace}body{font-family:var(--font-monospace);font-size:16px;line-height:1.5rem}h1,h2,h3,h4,h5,h6{font-size:1rem;margin:1.5rem 0 0;font-weight:600}h1+h2,h1+h3,h1+h4,h1+h5,h1+h6,h2+h3,h2+h4,h2+h5,h2+h6,h3+h4,h3+h5,h3+h6,h4+h5,h4+h6,h5+h6{margin:0}h1:before{content:"# "}h2:before{content:"## "}h3:before{content:"### "}h4:before{content:"#### "}h5:before{content:"##### "}h6:before{content:"###### "}h1:before,h2:before,h3:before,h4:before,h5:before,h6:before{color:var(--muted)}h1:first-child{margin-top:0}p{margin:0 0 1.5rem}a:link,a:visited{color:var(--link)}a:hover,a:active,a.active{color:var(--hover)}ul{margin:0 0 1.5rem;padding-left:1.25rem}ol{margin:0 0 1.5rem;padding-left:1.75rem}ul ul,ul ol,ol ul,ol ol{margin:0}ul li::marker{content:'∗\00A0';color:var(--muted)}ol li::marker{color:var(--muted)}li.nomarker{display:block}dt{margin:0;font-weight:700}dd{margin:0 0 0 1.5rem;font-style:italic}dd+dt{margin-top:1.5rem}dl{margin:0 0 1.5rem}blockquote{position:relative;margin:0 0 1.5rem 1.5rem}blockquote::before{position:absolute;left:-1.5rem;content:">";color:var(--muted)}.x-tweet::before{content:"\f099";font-family:"font awesome 5 brands";font-weight:400}pre,code,kbd,samp{background:var(--inner-bg)!important;font-family:var(--font-monospace);color:var(--off-fg)}pre{overflow-x:auto;padding:1.5rem;margin:0 0 1.5rem}.highlight div{overflow-x:auto}b,strong{font-weight:600}::selection,mark{background-color:var(--highlight);color:var(--bg)}hr{border:0;margin-bottom:1.5rem}hr:after{content:'---';color:var(--muted)}sup,sub{vertical-align:baseline;position:relative;top:-.25rem;font-size:unset}sub{top:.25rem}table{border-spacing:0;margin:0 0 1.5rem;overflow-wrap:anywhere}th,td{padding:0 .75rem;vertical-align:top}th:first-child,td:first-child{padding-left:0}th{text-align:inherit}img{max-width:100%;height:auto}.base00{color:var(--base00)}.base01{color:var(--base01)}.base02{color:var(--base02)}.base03{color:var(--base03)}.base04{color:var(--base04)}.base05{color:var(--base05)}.base06{color:var(--base06)}.base07{color:var(--base07)}.base08{color:var(--base08)}.base09{color:var(--base09)}.base0A{color:var(--base0A)}.base0B{color:var(--base0B)}.base0C{color:var(--base0C)}.base0D{color:var(--base0D)}.base0E{color:var(--base0E)}.base0F{color:var(--base0F)}.bg-base00{background-color:var(--base00)}.bg-base01{background-color:var(--base01)}.bg-base02{background-color:var(--base02)}.bg-base03{background-color:var(--base03)}.bg-base04{background-color:var(--base04)}.bg-base05{background-color:var(--base05)}.bg-base06{background-color:var(--base06)}.bg-base07{background-color:var(--base07)}.bg-base08{background-color:var(--base08)}.bg-base09{background-color:var(--base09)}.bg-base0A{background-color:var(--base0A)}.bg-base0B{background-color:var(--base0B)}.bg-base0C{background-color:var(--base0C)}.bg-base0D{background-color:var(--base0D)}.bg-base0E{background-color:var(--base0E)}.bg-base0F{background-color:var(--base0F)}:root{--base00:#181818;--base01:#282828;--base02:#383838;--base03:#585858;--base04:#b8b8b8;--base05:#d8d8d8;--base06:#e8e8e8;--base07:#f8f8f8;--base08:#ab4642;--base09:#dc9656;--base0A:#f7ca88;--base0B:#a1b56c;--base0C:#86c1b9;--base0D:#7cafc2;--base0E:#ba8baf;--base0F:#a16946}