@font-face{font-display:block;font-family:Nimbus Mono Bold;font-style:normal;src:url(../../fonts/NimbusMono-Bold.woff2) format("woff2")}@font-face{font-display:block;font-family:Optima Regular;font-style:normal;src:url(../fonts/Optima-Regular.woff2) format("woff2")}@font-face{font-display:block;font-family:Optima Regular Bold;font-style:normal;src:url(../../fonts/Optima-Bold.woff2) format("woff2")}@font-face{font-display:block;font-family:Optima ExtraBlack;font-style:normal;src:url(../../fonts/Optima-ExtraBlack.woff2) format("woff2")}:root{--font-default:Candara,"Noto Sans",source-sans-pro,sans-serif;--font-display-regular:Optima Regular,var(--font-default);--font-display-regular-italic:Optima Regular Italic,var(--font-default);--font-display-bold:Optima Regular Bold,var(--font-default);--font-display-bold-italic:Optima Bold Italic,var(--font-default);--font-display-extrablack:Optima ExtraBlack,var(--font-default);--font-brand:Nimbus Mono Bold,"Courier New",monospace;--step--2:clamp(0.7813rem,0.7748rem + 0.0288vw,0.8rem);--step--1:clamp(0.9375rem,0.9159rem + 0.0962vw,1rem);--step-0:clamp(1.125rem,1.0817rem + 0.1923vw,1.25rem);--step-1:clamp(1.35rem,1.2764rem + 0.3269vw,1.5625rem);--step-2:clamp(1.62rem,1.5047rem + 0.5125vw,1.9531rem);--step-3:clamp(1.944rem,1.7718rem + 0.7652vw,2.4414rem);--step-4:clamp(2.3328rem,2.0839rem + 1.1061vw,3.0518rem);--step-5:clamp(2.7994rem,2.4479rem + 1.5621vw,3.8147rem);--space-3xs:clamp(0.3125rem,0.3125rem + 0vw,0.3125rem);--space-2xs:clamp(0.5625rem,0.5409rem + 0.0962vw,0.625rem);--space-xs:clamp(0.875rem,0.8534rem + 0.0962vw,0.9375rem);--space-s:clamp(1.125rem,1.0817rem + 0.1923vw,1.25rem);--space-m:clamp(1.6875rem,1.6226rem + 0.2885vw,1.875rem);--space-l:clamp(2.25rem,2.1635rem + 0.3846vw,2.5rem);--space-xl:clamp(3.375rem,3.2452rem + 0.5769vw,3.75rem);--space-2xl:clamp(4.5rem,4.3269rem + 0.7692vw,5rem);--space-3xl:clamp(6.75rem,6.4904rem + 1.1538vw,7.5rem);--space-xs-s:clamp(0.875rem,0.7452rem + 0.5769vw,1.25rem);--space-xl-2xl:clamp(3.375rem,2.8125rem + 2.5vw,5rem);--space-2xl-3xl:clamp(4.5rem,3.4615rem + 4.6154vw,7.5rem);--space-s-m:clamp(1.125rem,0.8654rem + 1.1538vw,1.875rem);--space-s-l:clamp(1.125rem,0.649rem + 2.1154vw,2.5rem);--space-m-l:clamp(1.6875rem,1.4063rem + 1.25vw,2.5rem);--space-l-xl:clamp(2.25rem,1.7308rem + 2.3077vw,3.75rem);--grid-max-width:77.50rem;--grid-gutter:var(--space-s-l,clamp(1.125rem,0.5625rem + 2.5vw,2.5rem));--radius-xs:2px;--radius-s:4px;--radius-m:8px;--step-1-L:96%;--step-2-L:91%;--step-3-L:85%;--step-4-L:71%;--step-5-L:52%;--step-6-L:42%;--step-7-L:34%;--step-8-L:24%;--step-9-L:18%;--step-1-C:0.02;--step-2-C:0.03;--step-3-C:0.04;--step-4-C:0.09;--step-5-C:0.13;--step-6-C:0.16;--step-7-C:0.18;--step-8-C:0.19;--step-9-C:0.20;--primary:oklch(52% 0.1 60);--secondary:oklch(from var(--primary) L C calc(H + 51));--tertiary:oklch(from var(--primary) L C calc(H + 103));--quaternary:oklch(from var(--primary) L C calc(H + 154));--quinary:oklch(from var(--primary) L C calc(H + 206));--senary:oklch(from var(--primary) L C calc(H + 257));--septenary:oklch(from var(--primary) L C calc(H + 309));--greyscale:oklch(52% 0 0);--primary-1:oklch(from var(--primary) var(--step-1-L) var(--step-1-C) H);--primary-2:oklch(from var(--primary) var(--step-2-L) var(--step-2-C) H);--primary-3:oklch(from var(--primary) var(--step-3-L) var(--step-3-C) H);--primary-4:oklch(from var(--primary) var(--step-4-L) var(--step-4-C) H);--primary-5:oklch(from var(--primary) var(--step-5-L) var(--step-5-C) H);--primary-6:oklch(from var(--primary) var(--step-6-L) var(--step-6-C) H);--primary-7:oklch(from var(--primary) var(--step-7-L) var(--step-7-C) H);--primary-8:oklch(from var(--primary) var(--step-8-L) var(--step-8-C) H);--primary-9:oklch(from var(--primary) var(--step-9-L) var(--step-9-C) H);--secondary-1:oklch(from var(--secondary) var(--step-1-L) var(--step-1-C) H);--secondary-2:oklch(from var(--secondary) var(--step-2-L) var(--step-2-C) H);--secondary-3:oklch(from var(--secondary) var(--step-3-L) var(--step-3-C) H);--secondary-4:oklch(from var(--secondary) var(--step-4-L) var(--step-4-C) H);--secondary-5:oklch(from var(--secondary) var(--step-5-L) var(--step-5-C) H);--secondary-6:oklch(from var(--secondary) var(--step-6-L) var(--step-6-C) H);--secondary-7:oklch(from var(--secondary) var(--step-7-L) var(--step-7-C) H);--secondary-8:oklch(from var(--secondary) var(--step-8-L) var(--step-8-C) H);--secondary-9:oklch(from var(--secondary) var(--step-9-L) var(--step-9-C) H);--tertiary-1:oklch(from var(--tertiary) var(--step-1-L) var(--step-1-C) H);--tertiary-2:oklch(from var(--tertiary) var(--step-2-L) var(--step-2-C) H);--tertiary-3:oklch(from var(--tertiary) var(--step-3-L) var(--step-3-C) H);--tertiary-4:oklch(from var(--tertiary) var(--step-4-L) var(--step-4-C) H);--tertiary-5:oklch(from var(--tertiary) var(--step-5-L) var(--step-5-C) H);--tertiary-6:oklch(from var(--tertiary) var(--step-6-L) var(--step-6-C) H);--tertiary-7:oklch(from var(--tertiary) var(--step-7-L) var(--step-7-C) H);--tertiary-8:oklch(from var(--tertiary) var(--step-8-L) var(--step-8-C) H);--tertiary-9:oklch(from var(--tertiary) var(--step-9-L) var(--step-9-C) H);--quaternary-1:oklch(from var(--quaternary) var(--step-1-L) var(--step-1-C) H);--quaternary-2:oklch(from var(--quaternary) var(--step-2-L) var(--step-2-C) H);--quaternary-3:oklch(from var(--quaternary) var(--step-3-L) var(--step-3-C) H);--quaternary-4:oklch(from var(--quaternary) var(--step-4-L) var(--step-4-C) H);--quaternary-5:oklch(from var(--quaternary) var(--step-5-L) var(--step-5-C) H);--quaternary-6:oklch(from var(--quaternary) var(--step-6-L) var(--step-6-C) H);--quaternary-7:oklch(from var(--quaternary) var(--step-7-L) var(--step-7-C) H);--quaternary-8:oklch(from var(--quaternary) var(--step-8-L) var(--step-8-C) H);--quaternary-9:oklch(from var(--quaternary) var(--step-9-L) var(--step-9-C) H);--quinary-1:oklch(from var(--quinary) var(--step-1-L) var(--step-1-C) H);--quinary-2:oklch(from var(--quinary) var(--step-2-L) var(--step-2-C) H);--quinary-3:oklch(from var(--quinary) var(--step-3-L) var(--step-3-C) H);--quinary-4:oklch(from var(--quinary) var(--step-4-L) var(--step-4-C) H);--quinary-5:oklch(from var(--quinary) var(--step-5-L) var(--step-5-C) H);--quinary-6:oklch(from var(--quinary) var(--step-6-L) var(--step-6-C) H);--quinary-7:oklch(from var(--quinary) var(--step-7-L) var(--step-7-C) H);--quinary-8:oklch(from var(--quinary) var(--step-8-L) var(--step-8-C) H);--quinary-9:oklch(from var(--quinary) var(--step-9-L) var(--step-9-C) H);--senary-1:oklch(from var(--senary) var(--step-1-L) var(--step-1-C) H);--senary-2:oklch(from var(--senary) var(--step-2-L) var(--step-2-C) H);--senary-3:oklch(from var(--senary) var(--step-3-L) var(--step-3-C) H);--senary-4:oklch(from var(--senary) var(--step-4-L) var(--step-4-C) H);--senary-5:oklch(from var(--senary) var(--step-5-L) var(--step-5-C) H);--senary-6:oklch(from var(--senary) var(--step-6-L) var(--step-6-C) H);--senary-7:oklch(from var(--senary) var(--step-7-L) var(--step-7-C) H);--senary-8:oklch(from var(--senary) var(--step-8-L) var(--step-8-C) H);--senary-9:oklch(from var(--senary) var(--step-9-L) var(--step-9-C) H);--septenary-1:oklch(from var(--septenary) var(--step-1-L) var(--step-1-C) H);--septenary-2:oklch(from var(--septenary) var(--step-2-L) var(--step-2-C) H);--septenary-3:oklch(from var(--septenary) var(--step-3-L) var(--step-3-C) H);--septenary-4:oklch(from var(--septenary) var(--step-4-L) var(--step-4-C) H);--septenary-5:oklch(from var(--septenary) var(--step-5-L) var(--step-5-C) H);--septenary-6:oklch(from var(--septenary) var(--step-6-L) var(--step-6-C) H);--septenary-7:oklch(from var(--septenary) var(--step-7-L) var(--step-7-C) H);--septenary-8:oklch(from var(--septenary) var(--step-8-L) var(--step-8-C) H);--septenary-9:oklch(from var(--septenary) var(--step-9-L) var(--step-9-C) H);--greyscale-1:oklch(from var(--greyscale) var(--step-1-L) C H);--greyscale-2:oklch(from var(--greyscale) var(--step-2-L) C H);--greyscale-3:oklch(from var(--greyscale) var(--step-3-L) C H);--greyscale-4:oklch(from var(--greyscale) var(--step-4-L) C H);--greyscale-5:oklch(from var(--greyscale) var(--step-5-L) C H);--greyscale-6:oklch(from var(--greyscale) var(--step-6-L) C H);--greyscale-7:oklch(from var(--greyscale) var(--step-7-L) C H);--greyscale-8:oklch(from var(--greyscale) var(--step-8-L) C H);--greyscale-9:oklch(from var(--greyscale) var(--step-9-L) C H)}@media screen{[data-theme=light]{--surface-back:var(--primary-1);--surface-mid:var(--primary-2);--surface-fore:var(--primary-3);--text-colour-1:var(--greyscale-9);--text-colour-2:var(--greyscale-6);--text-colour-3:var(--greyscale-3);--text-colour-4:var(--greyscale-1);--heading-colour-1:var(--primary-9);--categories-colour-1:var(--secondary-1);--categories-colour-2:var(--secondary-2);--categories-colour-3:var(--secondary-3);--categories-colour-4:var(--secondary-5);--categories-colour-5:var(--secondary-7);--categories-colour-6:var(--secondary-8);--categories-colour-7:var(--secondary-9);--authors-colour-1:var(--tertiary-1);--authors-colour-2:var(--tertiary-2);--authors-colour-3:var(--tertiary-3);--authors-colour-4:var(--tertiary-5);--authors-colour-5:var(--tertiary-7);--authors-colour-6:var(--tertiary-8);--authors-colour-7:var(--tertiary-9);--showcase-colour-1:var(--quaternary-1);--showcase-colour-2:var(--quaternary-2);--showcase-colour-3:var(--quaternary-3);--showcase-colour-4:var(--quaternary-5);--showcase-colour-5:var(--quaternary-7);--showcase-colour-6:var(--quaternary-8);--showcase-colour-7:var(--quaternary-9);--starters-colour-1:var(--quinary-1);--starters-colour-2:var(--quinary-2);--starters-colour-3:var(--quinary-3);--starters-colour-4:var(--quinary-5);--starters-colour-5:var(--quinary-7);--starters-colour-6:var(--quinary-8);--starters-colour-7:var(--quinary-9);--blog-colour-1:var(--senary-1);--blog-colour-2:var(--senary-2);--blog-colour-3:var(--senary-3);--blog-colour-4:var(--senary-5);--blog-colour-5:var(--senary-7);--blog-colour-6:var(--senary-8);--blog-colour-7:var(--senary-9);--firehose-colour-1:var(--septenary-1);--firehose-colour-2:var(--septenary-2);--firehose-colour-3:var(--septenary-3);--firehose-colour-4:var(--septenary-5);--firehose-colour-5:var(--septenary-7);--firehose-colour-6:var(--septenary-8);--firehose-colour-7:var(--septenary-9)}[data-theme=dark]{--surface-back:var(--greyscale-9);--surface-mid:var(--greyscale-8);--surface-fore:var(--greyscale-7);--text-colour-1:var(--greyscale-2);--text-colour-2:var(--greyscale-4);--text-colour-3:var(--greyscale-3);--text-colour-4:var(--greyscale-9);--heading-colour-1:var(--primary-3);--categories-colour-1:var(--secondary-9);--categories-colour-2:var(--secondary-8);--categories-colour-3:var(--secondary-7);--categories-colour-4:var(--secondary-5);--categories-colour-5:var(--secondary-3);--categories-colour-6:var(--secondary-2);--categories-colour-7:var(--secondary-1);--authors-colour-1:var(--tertiary-9);--authors-colour-2:var(--tertiary-8);--authors-colour-3:var(--tertiary-7);--authors-colour-4:var(--tertiary-5);--authors-colour-5:var(--tertiary-3);--authors-colour-6:var(--tertiary-2);--authors-colour-7:var(--tertiary-1);--showcase-colour-1:var(--quaternary-9);--showcase-colour-2:var(--quaternary-8);--showcase-colour-3:var(--quaternary-7);--showcase-colour-4:var(--quaternary-5);--showcase-colour-5:var(--quaternary-3);--showcase-colour-6:var(--quaternary-2);--showcase-colour-7:var(--quaternary-1);--starters-colour-1:var(--quinary-9);--starters-colour-2:var(--quinary-8);--starters-colour-3:var(--quinary-7);--starters-colour-4:var(--quinary-5);--starters-colour-5:var(--quinary-3);--starters-colour-6:var(--quinary-2);--starters-colour-7:var(--quinary-1);--blog-colour-1:var(--senary-9);--blog-colour-2:var(--senary-8);--blog-colour-3:var(--senary-7);--blog-colour-4:var(--senary-5);--blog-colour-5:var(--senary-3);--blog-colour-6:var(--senary-2);--blog-colour-7:var(--senary-1);--firehose-colour-1:var(--septenary-9);--firehose-colour-2:var(--septenary-8);--firehose-colour-3:var(--septenary-7);--firehose-colour-4:var(--septenary-5);--firehose-colour-5:var(--septenary-3);--firehose-colour-6:var(--septenary-2);--firehose-colour-7:var(--septenary-1)}}*,:after,:before{box-sizing:border-box}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}blockquote,body,dd,dl,figure,h1,h2,h3,h4,p{margin-block-end:0}ol[role=list],ul[role=list]{list-style:none;li{margin-block:0}}button,h1,h2,h3,h4,input,label{line-height:1.1}h1,h2,h3,h4{text-wrap:balance}a:not([class]){color:currentColor;text-decoration-skip-ink:auto}img,picture{display:block;max-width:100%}button,input,select,textarea{font-family:inherit;font-size:inherit}textarea:not([rows]){min-height:10em}:target{scroll-margin-block:5ex}.hero{@media (width >=768px){align-items:start;column-gap:var(--grid-gutter);display:grid;grid-template-areas:"title  title" "intro latest";grid-template-columns:2fr 4fr;>h1{grid-area:title}.intro{grid-area:intro}.latest-blog{grid-area:latest}}}.latest-blog{background:var(--surface-mid);border:1px solid var(--surface-fore);display:flex;flex-direction:column;margin-block-start:var(--grid-gutter);margin-inline:calc(var(--grid-gutter)*-1);position:relative;@media (width <=768px){border-left:unset;border-right:unset}@media (width >=768px){margin-inline:0}>h2{background:var(--surface-fore);padding:var(--space-s) var(--space-3xl) var(--space-s) var(--space-s)}.summary{display:flex;flex-direction:column;gap:var(--space-2xs);padding:var(--space-s)}.calendar{position:absolute;right:var(--space-s);top:calc(var(--space-s)*-.5)}p{font-size:var(--step--1);margin-block:0}}.latest-additions{margin-block-start:var(--grid-gutter);margin-inline:calc(var(--grid-gutter)*-1);@media (width >=768px){display:grid;gap:var(--grid-gutter);grid-template-columns:repeat(3,1fr);margin-inline:0}}.latest-additions__item{align-items:flex-start;background:var(--surface-mid);display:flex;gap:var(--space-s);padding:var(--space-s);&:not(:last-of-type){border-bottom:1px dashed var(--surface-back);@media (width >=768px){border-bottom-color:currentcolor;border-bottom-style:none;border-bottom-width:medium}}img{aspect-ratio:1;flex-grow:0;width:var(--space-m-l)}.details{display:flex;flex-direction:column;flex-grow:1;gap:var(--space-3xs)}a{font-family:var(--font-display-bold);grid-area:link}}.feeds{display:grid;gap:var(--grid-gutter);margin-inline:calc(var(--grid-gutter)*-1);padding-inline:var(--grid-gutter);@media (width >=768px){gap:var(--grid-gutter);grid-template-columns:repeat(3,1fr);margin-inline:0;padding-inline:0}}.feeds__section{>h2{display:flex;gap:var(--space-xs);justify-content:space-between}@media (width >=768px){margin-right:calc(var(--grid-gutter)*-.5);padding-right:calc(var(--grid-gutter)*.5);&:not(:last-of-type){border-right:1px dashed var(--surface-fore)}}}.feeds__list{display:flex;flex-direction:column;overflow-wrap:anywhere;padding-block-start:var(--grid-gutter)}.feeds__item{border-bottom:1px solid var(--surface-fore);column-gap:var(--space-2xs);display:grid;grid-template-areas:"favicon link date";grid-template-columns:auto 1fr auto;margin-inline:calc(var(--grid-gutter)*-1);padding:var(--space-2xs) var(--grid-gutter);row-gap:var(--space-3xs);@media (width >=768px){grid-template-areas:"favicon link" "favicon date";grid-template-columns:auto 1fr;margin-inline:unset;padding:var(--space-2xs)}&:first-of-type{background:var(--surface-mid)}.favicon{grid-area:favicon}a{font-size:var(--step--1);grid-area:link}time{grid-area:date}}.recent-authors,.recent-starters{margin-block-start:var(--grid-gutter);margin-inline:calc(var(--grid-gutter)*-1);@media (width >=768px){display:grid;gap:var(--grid-gutter);grid-template-columns:repeat(3,1fr);margin-inline:0}}.recent-authors__item,.recent-starters__item{align-items:flex-start;background:var(--surface-back);border:1px solid var(--surface-fore);display:flex;font-size:var(--step--1);gap:var(--space-s);overflow-wrap:anywhere;padding:var(--space-s);@media (width <=768px){border-left-color:currentcolor;border-left-style:none;border-left-width:medium;border-right-color:currentcolor;border-right-style:none;border-right-width:medium;&:not(:last-of-type){border-bottom:none}}a:first-of-type{font-family:var(--font-display-bold);font-size:var(--step-0)}p{margin-block:0}.details{display:flex;flex-direction:column;flex-grow:1;gap:var(--space-3xs)}}.recent-authors__item{background:var(--surface-mid)}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}body{background:var(--surface-back);color:var(--text-colour-1);display:grid;font-family:var(--font-display-regular);font-size:var(--step-0);grid-template-areas:"header" "main" "footer";grid-template-rows:auto 1fr auto;line-height:1.5;margin:0;min-height:100vh;padding:0}strong{font-family:var(--font-display-bold)}small{font-size:var(--step--1)}h1,h2,h3,h4,h5,h6{color:var(--heading-colour-1);font-family:var(--font-display-bold)}h1{font-family:var(--font-display-extrablack);font-size:clamp(1.9438rem,1.2969rem + 2.875vw,3.8125rem)}.h2,h2{font-size:var(--step-3)}.h3,h3{font-size:var(--step-2)}.h4,h4{font-size:var(--step-1)}.h5,h5{font-size:var(--step-0)}.h6,h6{font-size:var(--step--1)}dd{margin-inline:0}ol,ul{&[role=list]{margin-block:0;padding-inline:0}}ol,ul{&:not([role=list]){margin-block:1lh 0;margin-inline:0;padding-inline:2ch;li{&::marker{color:var(--text-colour-2)}&:not(:first-of-type){margin-block:.5lh 0}}}}blockquote,dd,figure,h1,h2,h3,h4,li,p{margin-block:1lh 0}dd{margin-block:.5lh 0}a{color:currentColor;transition-duration:.15s;transition-property:color,background-color;transition-timing-function:ease-in-out;&:hover{text-decoration:none}}a:not([class]){text-decoration-thickness:1px;text-underline-offset:.25ex;&[href^=http]{padding-right:1.25em;&:after{aspect-ratio:1;background:currentColor;content:"";display:inline-block;margin-left:.25em;mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6m4-3h6v6m-11 5L21 3'/%3E%3C/svg%3E");position:absolute;transform:translateY(.25em);width:1em}}}.meta,data,time{color:var(--text-colour-2)}.meta,data,input,time{font-size:var(--step--1)}input{border:1px solid var(--surface-fore);border-radius:999px;padding:var(--space-2xs)}.button,button:not(.lyt-playbtn),input[type=submit]{align-items:center;appearance:none;background:var(--text-colour-1);border:1px solid var(--surface-fore);border-radius:999px;color:var(--text-colour-4);cursor:pointer;display:inline-flex;font-family:var(--font-display-bold);font-size:var(--step--1);gap:var(--space-3xs);justify-content:center;padding:var(--space-2xs);text-decoration:none;transition-duration:.15s;transition-property:color,background-color;transition-timing-function:ease-in-out;width:max-content;svg{color:var(--primary-5)}&:hover{background:var(--text-colour-4);color:var(--text-colour-1)}&.button--transparent{background:unset;border:unset;color:currentColor}}hr{background-color:var(--surface-fore);border:none;height:1px;margin-block:1lh}figure{margin-inline:unset}img{height:auto}blockquote{border-left:4px solid var(--surface-fore);font-size:var(--step-1);font-style:italic;margin-inline:unset;padding-inline-start:.5lh}pre[class*=language-]{border-radius:var(--radius-s);margin-block:1lh 0;padding:var(--space-s)}summary{--size:24px;cursor:pointer;list-style:none;padding-inline-start:calc(var(--space-3xs) + var(--size));position:relative;word-break:normal;&::marker{content:none}&::-webkit-details-marker{display:none}&:before{background-color:var(--primary-5);content:"";height:var(--size);left:0;mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m6 9 6 6 6-6'/%3E%3C/svg%3E");mask-position:center;mask-repeat:no-repeat;position:absolute;top:50%;transform:translateY(-50%);transition:all .15s ease-in-out;width:var(--size);z-index:1}details[open] &{&:before{transform:translateY(-50%) rotate(180deg)}}>h2{display:flex}}[popover]{--popover-offset:38px;background:var(--surface-mid);border:1px solid var(--surface-fore);box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);color:var(--text-colour-1);font-size:var(--step--1);margin:0;max-width:65ch;opacity:0;padding:var(--space-s);transition:opacity .15s ease-in-out 25ms,transform .15s ease-in-out 25ms;@supports (bottom:anchor(bottom)){inset:auto;bottom:calc(anchor(bottom) + var(--popover-offset));justify-self:anchor-center;margin-inline:var(--grid-gutter)}&:popover-open{opacity:1;transform:translateY(0);@starting-style{opacity:0;transform:translateY(4px)}}}::selection,mark{background:var(--primary-5);color:var(--text-colour-4)}:focus{outline:2px dotted var(--primary-5);outline-offset:2px}.site-main{grid-area:main;.section,header,section{border-bottom:1px solid var(--surface-fore);padding-block:var(--grid-gutter);:is(h1,h2):first-child{margin-block-start:unset}}}.container{margin-inline:auto;max-width:var(--grid-max-width);padding-inline:var(--grid-gutter)}.surface-back{background:var(--surface-back)}.surface-mid{background:var(--surface-mid)}.surface-fore{background:var(--surface-fore)}.visually-hidden{border:0;clip:rect(0 0 0 0);height:0;margin:0;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.hidden{display:none}.flow{display:flex;flex-direction:column;gap:var(--grid-gutter)}.prose{max-width:80ch;min-width:0}.word-break{overflow-wrap:anywhere}.standfirst{font-size:var(--step-1)}.calendar{--border-radius:18px;--border-width:2px;--pseudo-height:14px;background:oklch(100 0 0);border:var(--border-width) solid var(--greyscale-9);border-radius:var(--border-radius);box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);color:var(--greyscale-9);display:flex;flex-direction:column;font-family:var(--font-brand);text-align:center;width:min-content;corner-shape:squircle;line-height:1;margin-block-start:unset;position:relative;transform:rotate(5deg);word-break:normal;&:before{left:calc(var(--pseudo-height)/1)}&:after,&:before{background:oklch(100 0 0);border:2px solid var(--greyscale-9);border-radius:calc(var(--pseudo-height)/2);content:"";display:block;height:var(--pseudo-height);position:absolute;top:0;transform:translateY(-50%);width:calc(var(--pseudo-height)/2)}&:after{right:calc(var(--pseudo-height)/1)}dt{background:oklch(.7 .15 20);border-top-left-radius:calc(var(--border-radius) - var(--border-width));border-top-right-radius:calc(var(--border-radius) - var(--border-width));font-size:var(--step--1);padding:var(--space-2xs);text-transform:uppercase}dd,dt{corner-shape:squircle}dd{border-bottom-left-radius:calc(var(--border-radius) - var(--border-width));border-bottom-right-radius:calc(var(--border-radius) - var(--border-width));font-size:var(--step-2);margin-block:var(--space-2xs) 0}}.author-links{display:inline-flex;flex-wrap:wrap;gap:var(--space-xs);list-style:none;margin-block-start:var(--space-xs);li{margin-block:unset}a{color:var(--text-colour-2);display:flex;font-size:var(--step--1);&:hover{color:var(--text-colour-1)}}}.favicon{aspect-ratio:1;border-radius:var(--radius-s);flex:0 0 auto;width:32px}.pagination{display:flex;justify-content:space-between}.scroll-to-top{bottom:var(--grid-gutter);box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);opacity:0;pointer-events:none;position:fixed;right:var(--grid-gutter);transform:translateY(4px);transition:opacity .15s ease-in-out 25ms,transform .15s ease-in-out 25ms;&.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}}lite-youtube{margin-block:1lh}.site-header{border-bottom:1px solid var(--surface-fore);font-size:var(--step--1);grid-area:header;padding-block-start:var(--grid-gutter);.container{column-gap:var(--grid-gutter);display:grid;grid-template-areas:"brand" "cta" "actions" "nav" "theme";position:relative;@media (width >=1024px){align-items:start;grid-template-areas:"brand cta cta" "brand nav actions" "theme theme theme";grid-template-columns:auto 1fr auto;row-gap:unset}}}.site-header__actions,.site-header__brand,.site-header__cta,.site-header__nav,.site-header__theme{margin-block-end:var(--space-xs);@media (width >=1024px){margin-block:unset}}.logo{aspect-ratio:1;position:relative;width:93px;.roundel,.strapline{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.strapline{animation:rotate 11s linear infinite;animation-play-state:paused;transform-origin:center}&:hover .strapline{animation-play-state:running}}@keyframes rotate{0%{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(1turn)}}.site-header__brand{align-items:center;color:var(--text-colour-2);display:flex;flex-direction:column;font-family:var(--font-brand);gap:var(--space-2xs);grid-area:brand;justify-self:center;text-decoration:none;width:auto;@media (width >=1024px){margin-block-end:var(--space-xs);width:max-content}}.site-header__cta{grid-area:cta;justify-self:center;@media (width >=1024px){justify-self:end}}.site-header__nav{display:flex;flex-direction:column;gap:var(--grid-gutter);grid-area:nav;@media (width >=1024px){align-self:end;flex-direction:row;justify-self:end}&.hidden{@media (width >=1024px){display:flex}@media (width <=1024px){display:none}}ul{display:flex;flex-wrap:wrap;gap:var(--space-2xs);justify-content:center;list-style:none;@media (width >=1024px){border-left-color:var(--surface-fore);border-left-style:solid;border-left-width:1px;flex-wrap:nowrap;gap:unset}}a{--indicator-size:12px;align-items:center;border:1px solid var(--surface-fore);border-radius:999px;display:flex;gap:var(--space-3xs);padding:var(--space-2xs) var(--space-xs);text-decoration:none;@media (width >=1024px){border:unset;border-radius:unset;border-right-color:var(--surface-fore);border-right-style:solid;border-right-width:1px;padding:var(--space-xs)}&:visited{color:currentColor}&:before{aspect-ratio:1;border:2px solid var(--surface-mid);border-radius:calc(var(--indicator-size)/2);content:"";display:block;transition-duration:.15s;transition-property:background-color;transition-timing-function:ease-in-out;width:var(--indicator-size)}&.categories:before{background:var(--categories-colour-4)}&.categories:hover:before{background:var(--categories-colour-5)}&.authors:before{background:var(--authors-colour-4)}&.authors:hover:before{background:var(--authors-colour-5)}&.showcase:before{background:var(--showcase-colour-4)}&.showcase:hover:before{background:var(--showcase-colour-5)}&.starters:before{background:var(--starters-colour-4)}&.starters:hover:before{background:var(--starters-colour-5)}&.blog:before{background:var(--blog-colour-4)}&.blog:hover:before{background:var(--blog-colour-5)}&.firehose:before{background:var(--firehose-colour-4)}&.firehose:hover:before{background:var(--firehose-colour-5)}}}.site-header__actions{display:flex;grid-area:actions;justify-content:center;@media (width >=1024px){align-self:flex-end;justify-content:flex-end;padding-block-end:var(--space-2xs)}button{background:unset;border:unset;&:hover{background:unset}}[data-target=main-nav]{@media (width >=1024px){display:none}@media (width <=1024px){display:flex}}}.site-header__search{background:var(--surface-mid);border-top:1px solid var(--surface-fore);padding-block:var(--space-xs)}.site-header__theme{grid-area:theme;@media (width >=1024px){background:var(--surface-back);border-bottom-color:var(--surface-fore);border-bottom-style:solid;border-bottom-width:1px;border-left-color:var(--surface-fore);border-left-style:solid;border-left-width:1px;border-right-color:var(--surface-fore);border-right-style:solid;border-right-width:1px;border-top-color:var(--surface-fore);border-top-style:solid;border-top-width:1px;border-top:0;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);opacity:0;padding:var(--space-2xs);pointer-events:none;position:absolute;right:0;top:100%;transform:translateY(-48px);transition:opacity .15s ease-in-out 25ms,transform .15s ease-in-out 25ms;z-index:1;&.hidden{display:flex;opacity:0;pointer-events:none;transform:translateY(-.25rem)}&.visible{display:flex;opacity:1;pointer-events:auto;transform:translateY(0)}}fieldset{border:none;display:flex;flex-wrap:wrap;gap:var(--space-2xs);justify-content:center;padding:0}label{align-items:center;border:1px solid var(--surface-fore);border-radius:999px;cursor:pointer;display:flex;gap:var(--space-3xs);justify-content:center;padding:var(--space-2xs) var(--space-xs);transition-duration:.15s;transition-property:background-color;transition-timing-function:ease-in-out;width:max-content;&:hover{background:var(--surface-fore)}}[type=radio]{height:0;opacity:0;position:absolute;width:0}svg{color:var(--primary-5)}}.skip-to-main{&:focus{clip:auto;background:var(--text-colour-1);color:var(--text-colour-4);height:auto;left:50%;overflow:visible;padding:var(--space-2xs);position:fixed;top:0;transform:translateX(-50%);white-space:normal;width:auto;z-index:1}}.site-footer{background:var(--greyscale-9);color:var(--text-colour-3);font-size:var(--step--1);grid-area:footer;padding-block:var(--grid-gutter);.container{align-items:start;display:grid;gap:var(--grid-gutter);grid-template-areas:"newsletter" "links" "nav" "brand" "smallprint";@media (width >=768px){grid-template-areas:"newsletter links" "nav nav" "brand brand" "smallprint smallprint";grid-template-columns:minmax(0,1fr) minmax(0,2fr)}}ul{display:flex;flex-wrap:wrap;gap:var(--space-s);list-style:none}dt,legend{color:var(--primary-3);font-family:var(--font-display-bold);font-size:var(--step-1)}}.site-footer__newsletter{background:var(--greyscale-8);border:1px solid var(--greyscale-7);grid-area:newsletter;margin-inline:calc(var(--grid-gutter)*-1);position:relative;&:after{content:url(/img/balloon.svg);position:absolute;right:var(--space-s);top:calc(var(--space-s)*-.5)}@media (width <=768px){border-left:unset;border-right:unset}@media (width >=768px){margin-inline:0}fieldset{border:none;min-width:0;padding:var(--space-s)}legend{padding-block-start:var(--space-s)}p{margin-block:0;text-wrap:balance}.lockup{background:oklch(100 0 0);border:3px solid var(--greyscale-5);border-radius:999px;display:flex;gap:var(--space-3xs);margin-block:.5lh;width:100%}input{border:none;min-width:0;&[type=email]{flex:1 1 0}}}.site-footer__links{grid-area:links;@media (width >=768px){display:grid;gap:var(--grid-gutter);grid-template-columns:1fr 1fr 1fr}}.site-footer__nav{grid-area:nav;justify-self:center}.site-footer__brand{font-family:var(--font-brand);grid-area:brand;text-align:center;>*{margin-block:0}.url{font-size:var(--step-0)}}.site-footer__smallprint{grid-area:smallprint;justify-self:center}.pagefind-ui{display:grid;grid-template-columns:1fr;margin-inline:auto;max-width:var(--grid-max-width);padding-inline:var(--grid-gutter);@media (width >= 768px){grid-template-columns:repeat(8,1fr);.pagefind-ui__drawer,.pagefind-ui__form{grid-column:2/8}.pagefind-ui__search-input{grid-column:1/7}button.pagefind-ui__search-clear{grid-column:7/8}}}.pagefind-ui__form{align-items:stretch;display:grid;grid-template-columns:minmax(0,1fr) auto}.pagefind-ui__search-input{border-bottom-right-radius:unset;border-right:unset;border-top-right-radius:unset;font-size:var(--step-0);grid-column:1/2;max-width:100%;width:100%}button.pagefind-ui__search-clear{--size:1.1lh;background:oklch(1 0 0);border-bottom-left-radius:unset;border-left:unset;border-top-left-radius:unset;grid-column:2/3;overflow:hidden;position:relative;text-indent:-9999px;width:calc(var(--size) + var(--space-2xs)*2);&:hover{background:oklch(1 0 0)}&:after{aspect-ratio:1;background:var(--primary-5);content:"";display:block;mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M22 12a10 10 0 1 1-20 0 10 10 0 0 1 20 0M8.693 7.808a.626.626 0 1 0-.885.885L11.116 12l-3.308 3.307a.626.626 0 1 0 .885.885L12 12.885l3.307 3.308a.627.627 0 0 0 .885-.885L12.885 12l3.308-3.307a.627.627 0 0 0-.885-.885L12 11.116z'/%3E%3C/svg%3E");mask-position:center;mask-repeat:no-repeat;mask-size:contain;position:absolute;right:var(--space-2xs);top:50%;transform:translateY(-50%);width:var(--size)}}.pagefind-ui__drawer{font-size:var(--step--1);grid-column:1/-1}ol.pagefind-ui__results{list-style:none;margin-block:unset;margin-block-end:var(--space-xs);padding-inline:unset}.pagefind-ui__result{border-top:1px dashed var(--surface-fore);overflow-wrap:anywhere}.pagefind-ui__result-nested{margin-inline-start:var(--space-s-m)}.pagefind-ui__message,.pagefind-ui__result-link{font-family:var(--font-display-bold)}.pagefind-ui__result-title{margin-block-start:.5lh}.pagefind-ui__result-excerpt{margin-block-start:unset}