@font-face{font-display:swap;font-family:Lato;font-style:normal;font-weight:300;src:url(/fonts/lato-v24-latin-300.woff2)format("woff2")}@font-face{font-display:swap;font-family:Lato;font-style:normal;font-weight:400;src:url(/fonts/lato-v24-latin-regular.woff2)format("woff2")}@font-face{font-display:swap;font-family:Lato;font-style:normal;font-weight:700;src:url(/fonts/lato-v24-latin-700.woff2)format("woff2")}@font-face{font-display:swap;font-family:Lato;font-style:normal;font-weight:900;src:url(/fonts/lato-v24-latin-900.woff2)format("woff2")}@font-face{font-display:swap;font-family:"Source Sans 3";font-style:italic;font-weight:300;src:url(/fonts/source-sans-3-v9-latin-300italic.woff2)format("woff2")}@font-face{font-display:swap;font-family:"Source Sans 3";font-style:normal;font-weight:400;src:url(/fonts/source-sans-3-v9-latin-regular.woff2)format("woff2")}@font-face{font-display:swap;font-family:"Source Sans 3";font-style:normal;font-weight:700;src:url(/fonts/source-sans-3-v9-latin-700.woff2)format("woff2")}@font-face{font-display:swap;font-family:"Source Sans 3";font-style:normal;font-weight:900;src:url(/fonts/source-sans-3-v9-latin-900.woff2)format("woff2")}:root{--max-width-full:100%;--max-width-2xl:42rem;--max-width-text-wrapper:38rem;--max-width-wrapper:48rem;--spacing-0:0rem;--spacing-px:1px;--spacing-px-2:2px;--spacing-1:.25rem;--spacing-2:.5rem;--spacing-3:.75rem;--spacing-4:1rem;--spacing-6:1.5rem;--spacing-8:2rem;--spacing-12:3rem;--spacing-14:3.5rem;--spacing-24:6rem;--spacing-32:8rem;--font-family-sans:"Lato","Source Sans Pro","Open Sans","Montserrat",system-ui,"-apple-system","BlinkMacSystemFont","Segoe UI","Roboto","Helvetica Neue","Arial","Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-body:var(--font-family-sans);--font-family-heading:var(--font-family-sans);--font-weight-normal:400;--font-weight-bold:700;--font-weight-black:900;--font-size-root:16px;--font-size-0:.9rem;--font-size-1:1.125rem;--font-size-2:1.406rem;--line-height-tight:1.3;--line-height-normal:1.5;--line-height-relaxed:1.75;--colour-theme-1:#fa9b1f;--colour-theme-2:#fcf4f3;--colour-theme-2-opacity-10:#fcf4f31a;--colour-theme-2-opacity-75:#fcf4f3bf;--colour-theme-2-opacity-80:#fcf4f3cc;--colour-theme-3:#1d7891;--colour-theme-3-shadow-elevation-medium:-.9px 1px 1.3px #08425482,-2.4px 2.7px 3.5px -1.2px #0842546e,-7px 7.6px 10.1px -2.3px #0842545c,-18.4px 20px 26.5px -3.5px #0842544a;--colour-theme-4:#03263a;--colour-theme-4-alpha-60:#03263a99;--colour-theme-4-alpha-80:#03263acc;--lerp-0:1;--lerp-1:.5625;--lerp-2:.25;--lerp-3:.0625;--lerp-4:0}@supports (color:lab(0% 0 0)){:root{--colour-theme-1:lab(72.8337% 30.7913 72.0863);--colour-theme-2:lab(96.82% 2.41345 1.3847);--colour-theme-2-opacity-10:lab(96.82% 2.41345 1.3847/.1);--colour-theme-2-opacity-75:lab(96.82% 2.41345 1.3847/.75);--colour-theme-2-opacity-80:lab(96.82% 2.41345 1.3847/.8);--colour-theme-3:lab(46.1151% -19.8173 -21.5491);--colour-theme-3-shadow-elevation-medium:-.9px 1px 1.3px lab(25.4245% -12.8249 -16.1374/.51),-2.4px 2.7px 3.5px -1.2px lab(25.4245% -12.8249 -16.1374/.43),-7px 7.6px 10.1px -2.3px lab(25.4245% -12.8249 -16.1374/.36),-18.4px 20px 26.5px -3.5px lab(25.4245% -12.8249 -16.1374/.29);--colour-theme-4:lab(13.618% -5.86643 -16.74);--colour-theme-4-alpha-60:lab(13.618% -5.86643 -16.74/.6);--colour-theme-4-alpha-80:lab(13.618% -5.86643 -16.74/.8)}}*,:after,:before{box-sizing:border-box}*{margin:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{font:var(--font-size-1)/var(--line-height-normal)var(--font-family-body);background-image:radial-gradient(farthest-corner circle at 100% 0%,var(--colour-theme-3)0%,var(--colour-theme-4)100%);height:100%;min-height:100vh}main{color:var(--colour-theme-2);max-width:var(--max-width-full);margin-block:var(--spacing-8);margin-inline:var(--spacing-6);flex-direction:column;align-items:center;padding-block-end:var(--spacing-32);display:flex}@media screen and (min-width:768px){main{width:var(--max-width-wrapper);margin-inline:auto}}footer{color:var(--colour-theme-1);background-color:var(--colour-theme-4);border-top:var(--spacing-px)solid var(--colour-theme-1);padding-block:var(--spacing-8);flex-direction:column;align-items:center;display:flex}footer .links{width:var(--max-width-full);font:var(--font-weight-normal)var(--font-size-2)var(--font-family-sans);grid-template-areas:"nav nav""github github""socials socials";justify-content:space-between;align-items:center;display:grid}p{line-height:var(--line-height-relaxed);margin-block:var(--spacing-0)var(--spacing-4);margin-inline:var(--spacing-0);padding:var(--spacing-0);width:var(--max-width-wrapper)}a{color:inherit;text-underline-offset:var(--spacing-1)}a,button{touch-action:manipulation}a.link svg{vertical-align:middle}ul,ol{margin-inline:var(--spacing-0);padding:var(--spacing-0);margin-block-end:var(--spacing-8);padding-inline-start:var(--spacing-4);list-style-image:none;list-style-position:inside}nav :is(ol,ul){list-style-type:none}li{line-height:var(--line-height-relaxed)}li p{display:inline}:is(ol,ul) li{margin-block-end:var(--spacing-4);padding-inline-start:var(--spacing-0)}dt a{text-decoration:none}img{color:#0000;border-radius:50%}.capsize-lato-h3:before{content:"";margin-bottom:-.387rem;display:table}.capsize-lato-h3:after{content:"";margin-top:-.3259rem;display:table}@keyframes scale-up{0%{transform:scale(1.5)}to{transform:scale(1)}}.avatar-wrapper{width:var(--spacing-24);box-shadow:var(--colour-theme-3-shadow-elevation-medium);border:var(--spacing-px)solid transparent;animation:auto linear scale-up;animation-timeline:scroll();animation-range:0 75px;border-radius:50%;width:96px;margin-block-end:var(--spacing-6);position:relative}.avatar-wrapper:after{z-index:-1;content:"";background:radial-gradient(circle at 125% -25%,#fcf3f2 0%,37%,#fa9b1f 43% 62%);background:radial-gradient(circle at 125% -25%,lab(96.43% 3.03069 1.70281) 0%,37%,lab(72.8337% 30.7913 72.0863) 43% 62%);background:radial-gradient(farthest-corner circle at 125% -25% in oklab,#fcf3f2 0%,37%,#fa9b1f 43% 62%);border-radius:50%;width:96px;height:96px;position:absolute;inset:-1px;overflow:hidden}@supports (color:lab(0% 0 0)){.avatar-wrapper:after{background:radial-gradient(farthest-corner circle at 125% -25% in oklab,lab(96.43% 3.03069 1.70281) 0%,37%,lab(72.8337% 30.7913 72.0863) 43% 62%)}}@media (prefers-reduced-motion:no-preference){.avatar-wrapper:after{animation:8s linear infinite rotate}}@keyframes rotate{to{transform:rotate(1turn)}}h2{margin-block-end:var(--spacing-2)}.image-wrapper{width:var(--max-width-full);aspect-ratio:1;display:grid}.image-wrapper :is(img,picture){width:var(--max-width-full);aspect-ratio:1;grid-area:1/1/1/1;height:auto;margin-inline:auto;transition:opacity .6s;display:block}.image-wrapper.loaded img.lazy{opacity:0}.image-wrapper.loaded img.lazy.loaded{opacity:1}button{all:unset;cursor:pointer}a:focus,a:hover{text-decoration:none}ul{width:var(--max-width-full);padding-inline-start:var(--spacing-0);list-style-type:none}dl{gap:var(--spacing-4);row-gap:var(--spacing-0);flex-wrap:wrap;display:flex}dt{all:unset;width:var(--max-width-full);font-weight:var(--font-weight-bold);justify-content:center;align-items:center;gap:var(--spacing-4);--_triangle_size:7px;--_top-tip:conic-gradient(from 150deg at top,#0000,#000 1deg 60deg,#0000 61deg)top/100% 50% no-repeat;--_bottom-tip:conic-gradient(from -30deg at bottom,#0000,#000 1deg 60deg,#0000 61deg)bottom/100% 50% no-repeat;--_tip:var(--_bottom-tip);height:max-content;transition:all .2s ease-in-out;display:flex}@supports (color:lab(0% 0 0)){dt{--_top-tip:conic-gradient(from 150deg at top,lab(0% 0 0/0),lab(0% 0 0) 1deg 60deg,lab(0% 0 0/0) 61deg)top/100% 50% no-repeat;--_bottom-tip:conic-gradient(from -30deg at bottom,lab(0% 0 0/0),lab(0% 0 0) 1deg 60deg,lab(0% 0 0/0) 61deg)bottom/100% 50% no-repeat}}@media (prefers-reduced-motion:reduce){dt{transition:all 2s ease-in-out}}dt :is(a,button){align-items:center;display:flex;position:relative}dt:not(:first-child) :is(a,button){padding:var(--spacing-2)}@media screen and (min-width:768px){dt:not(:first-child) :is(a,button){padding:var(--spacing-0)}}dd{all:unset;width:var(--max-width-full);text-align:center;margin-bottom:var(--spacing-8);display:block}@media screen and (min-width:768px){dd{margin-bottom:var(--spacing-6)}}dd:not(:nth-child(2)){pointer-events:none;display:none}.page-share{margin-inline:auto calc(-1*var(--spacing-2));padding:var(--spacing-2);margin-block-end:var(--spacing-6);transition:all .2s ease-in-out;display:block}@media (prefers-reduced-motion:reduce){.page-share{transition:all 2s ease-in-out}}.page-share:is(:focus,:hover){transform:scale(1.1)}.intro{text-align:center;text-wrap:balance;width:var(--max-width-full);max-width:var(--max-width-text-wrapper);margin-block:var(--spacing-0)var(--spacing-14)}.link-group{--shadow-color:23.55% .042 239.28;--shadow-elevation-medium:-1px 1px 1.4px #08213082,-2.7px 2.7px 3.7px -1.2px #0821306e,-7.6px 7.6px 10.5px -2.3px #0821305c,-20px 20px 27.6px -3.5px #0821304a;color:var(--colour-theme-4);background-color:var(--colour-theme-2-opacity-75);box-shadow:var(--shadow-elevation-medium);padding:var(--spacing-6)var(--spacing-12);border:solid 1px var(--colour-theme-4);border-radius:var(--spacing-2);margin-block-end:var(--spacing-12)}@supports (color:lab(0% 0 0)){.link-group{--shadow-elevation-medium:-1px 1px 1.4px lab(11.2958% -5.01275 -13.0914/.51),-2.7px 2.7px 3.7px -1.2px lab(11.2958% -5.01275 -13.0914/.43),-7.6px 7.6px 10.5px -2.3px lab(11.2958% -5.01275 -13.0914/.36),-20px 20px 27.6px -3.5px lab(11.2958% -5.01275 -13.0914/.29)}}.link-group .profile-text{font-weight:var(--font-weight-bold)}@media screen and (min-width:768px){.link-group{border-radius:var(--spacing-1);margin-block-end:var(--spacing-12)}}@media (hover:none){.link-group{background-color:var(--colour-theme-2-opacity-80)}}.link-group:focus,.link-group:hover{background-color:var(--colour-theme-2-opacity-80);border-color:var(--colour-theme-3)}.link-group h3{font-weight:var(--font-weight-normal);margin-block-start:0;margin-block-end:var(--spacing-4)}@media screen and (min-width:768px){.link-group h3{margin-block-end:var(--spacing-2)}}.share-wrapper{width:var(--max-width-full);background-color:var(--colour-theme-4-alpha-60);padding:var(--spacing-6);place-items:center;height:100%;display:grid;position:fixed;inset:0}.share-content{color:var(--colour-theme-4);background-color:var(--colour-theme-2);border:var(--spacing-px-2)solid var(--colour-theme-4);border-radius:var(--spacing-2);max-width:var(--max-width-2xl);width:var(--max-width-full);margin:var(--spacing-6);padding-inline:var(--spacing-8);padding-block:var(--spacing-4)var(--spacing-8);flex-direction:column;align-items:center;display:flex}.share-close{margin-block-start:calc(-1*var(--spacing-2));margin-inline:auto calc(-1*var(--spacing-6))}.share-content h2{width:var(--max-width-full);margin-block-start:var(--spacing-0)}.share-content ul{gap:var(--spacing-6);flex-direction:column;display:flex}.share-content li{text-align:center}.share-content button{padding:var(--spacing-2)}tool-tip{pointer-events:none;-webkit-user-select:none;user-select:none;opacity:0;transform:translateX(var(--_x,0))translateY(var(--_y,-20px));z-index:1;text-align:start;font:var(--font-weight-normal)var(--font-size-0)/var(--line-height-tight)var(--font-family-sans);margin:var(--spacing-0);border-radius:var(--spacing-1);color:#ced4d8;color:lab(84.5354% -1.62673 -2.8621);will-change:filter;filter:drop-shadow(-1px 1px 1.4px #7b838a82)drop-shadow(-2.7px 2.7px 3.7px #7b838a6e);filter:drop-shadow(-1px 1px 1.4px lab(54.2968% -2.33519 -4.53167/.51))drop-shadow(-2.7px 2.7px 3.7px lab(54.2968% -2.33519 -4.53167/.43));background:#283d4d;background:lab(24.5408% -4.83899 -12.6653);inline-size:max-content;max-inline-size:25ch;padding-block:.25ch;padding-inline:.6ch;transition:opacity .2s,transform .2s;position:absolute}@media (hover:none){tool-tip{display:none}}tool-tip:is([tip-position=top],[tip-position=block-start],:not([tip-position]),[tip-position=bottom],[tip-position=block-end]){text-align:center}tool-tip:before{content:"; Has tooltip: ;";clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);word-wrap:normal;border:0;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}tool-tip:after{content:"";z-index:-1;-webkit-mask:var(--_tip);mask:var(--_tip);background:#283d4d;background:lab(24.5408% -4.83899 -12.6653);position:absolute;inset:0}dt:first-child tool-tip{display:none}@media (hover:hover){tool-tip{--_x:-50%;inset-block-end:calc(100% + .75ch + var(--_triangle-size,7px));inset-inline-start:50%}@media (prefers-reduced-motion:no-preference){:has(>tool-tip):not(:hover,:active) tool-tip{--_y:-20px}}tool-tip:is([tip-position=top],[tip-position=block-start],:not([tip-position])):after{--_tip:var(--_bottom-tip);border-block-end:var(--_triangle-size,7px)solid transparent;inset-block-end:calc(var(--_triangle-size,7px)*-1)}dt :is(a:focus,a:hover,button:focus,button:hover) tool-tip{opacity:1}}dt:not(:first-child) :is(a,button) svg{transform-origin:50% 100%;transform:translateY(calc(var(--lerp)*-25%))scale(calc(var(--lerp)*1.5));transition:transform .2s}@media (hover:hover){dt:not(:first-child) :is(a:focus-visible,a:hover,button:hover,button:focus-visible){--lerp:var(--lerp-0);z-index:5}:has(+dd+:is(dt:hover,dt:focus-visible)) :is(a,button){--lerp:var(--lerp-1);z-index:4}:has(>dl) :is(dt:not(:first-child):hover,dt:not(:first-child):focus-visible)+dd+dt :is(a,button){--lerp:var(--lerp-1);z-index:4}:has(+dd+dt+dd+:is(dt:not(:first-child):hover,dt:not(:first-child):focus-visible)) :is(a,button){--lerp:var(--lerp-2);z-index:3}:has(>dl) :is(dt:not(:first-child):hover,dt:not(:first-child):focus-visible)+dd+dt+dd+dt :is(a,button){--lerp:var(--lerp-2);z-index:3}:has(+dd+dt+dd+dt+dd+:is(dt:hover,dt:focus-visible)) :is(a,button){--lerp:var(--lerp-2);z-index:2}:has(>dl) :is(dt:not(:first-child):hover,dt:not(:first-child):focus-visible)+dd+dt+dd+dt+dd+dt :is(a,button){--lerp:var(--lerp-2);z-index:2}:has(+dd+dt+dd+dt+dd+dt+dd+:is(dt:hover,dt:focus-visible)) :is(a,button){--lerp:var(--lerp-2);z-index:1}:has(>dl) :is(dt:not(:first-child):hover,dt:not(:first-child):focus-visible)+dd+dt+dd+dt+dd+dt+dd+dt :is(a,button){--lerp:var(--lerp-2);z-index:1}}dt a:hover,dt a:focus{text-decoration:underline}dt:first-child{width:var(--max-width-full);text-align:center;font-size:var(--font-size-2)}dt:not(:first-child){width:auto;display:block}dt:not(:first-child) .desc-term-text{display:none}footer .content{width:var(--max-width-full);max-width:var(--max-width-wrapper);padding-inline:var(--spacing-6)}footer .links ul{padding-inline-start:var(--spacing-8)}footer .links a[aria-current=true]{font-weight:var(--font-weight-bold);text-decoration:none}footer .links a[aria-current=false]:focus,footer .links a[aria-current=false]:hover{font-weight:var(--font-weight-black);letter-spacing:.025rem}footer .links nav{grid-area:nav}footer .links nav a{color:var(--colour-theme-1)}footer .socials{grid-area:socials;margin-inline-start:auto}footer .socials ul{gap:var(--spacing-3);display:flex}footer .socials li{margin-block-end:var(--spacing-0)}footer .socials .icon{width:var(--spacing-12);height:var(--spacing-12);background-color:var(--colour-theme-2);border-radius:50%;justify-content:center;align-items:center;display:flex}footer .socials .icon:focus,footer .socials .icon:hover{background-color:var(--colour-theme-2-opacity-10)}footer .socials .icon-content{color:var(--colour-theme-4);transition:color .5s ease-in-out 25ms;display:flex}footer .socials :is(.icon:focus,.icon:hover) .icon-content{color:var(--colour-theme-1)}@media (prefers-reduced-motion:reduce){footer .socials .icon-content{transition:color 2s ease-in-out 25ms}}footer .github{grid-area:github;margin-inline-start:auto;padding-block-end:var(--spacing-4)}footer .github :focus,footer .github :hover{color:var(--colour-theme-2);transition:color 1s ease-in-out 25ms}footer p{color:var(--colour-theme-2);font-family:var(--font-family-serif);text-align:center;text-wrap:balance;max-width:var(--max-width-full);padding-inline:var(--spacing-0);margin-block-end:var(--spacing-12)}.screen-reader-text{clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);border:0;width:1px;height:1px;margin:-1px;overflow:hidden;word-wrap:normal!important;position:absolute!important}:root{--font-family-sans:"Lato","Lato Fallback: Source Sans 3","Lato Fallback: Open Sans","Lato Fallback: Arial","Lato Fallback: Roboto",sans-serif}@font-face{font-family:"Lato Fallback: Source Sans 3";src:local("Source Sans 3");ascent-override:95.4865%;descent-override:20.6065%;size-adjust:103.365%}@font-face{font-family:Lato Fallback\: Open Sans;src:local(Open Sans);ascent-override:107.034%;descent-override:23.0985%;size-adjust:92.2136%}@font-face{font-family:Lato Fallback\: Arial;src:local(Arial);ascent-override:101.318%;descent-override:21.865%;size-adjust:97.4159%}@font-face{font-family:Lato Fallback\: Roboto;src:local(Roboto);ascent-override:101.43%;descent-override:21.8892%;size-adjust:97.3083%}