/*! 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{-webkit-box-sizing:content-box;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;-webkit-text-decoration:underline;text-decoration:underline;-webkit-text-decoration:underline dotted;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}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;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]{-webkit-box-sizing:border-box;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}[hidden],template{display:none}:root{--height-header:3.75rem;--width-small:40rem;--width-default:50rem;--width-large:60rem;--width-xlarge:70rem;--width-xxlarge:80rem;--breakpoint-navigation:40em;--transition-duration-100:.1s;--transition-duration-200:.2s;--transition-duration-300:.3s;--transition-duration-400:.4s;--transition-duration-500:.5s;--transition-duration:var(--transition-duration-200);--transition-easing:cubic-bezier(.45,0,.55,1);--transition-ease-in:cubic-bezier(.11,0,.5,0);--transition-ease-out:cubic-bezier(.5,1,.89,1);--transition-ease-in-out:var(--transition-easing)}@font-face{font-display:swap;font-family:General Sans;font-style:normal;font-weight:200 700;src:url(/assets/fonts/GeneralSans-Variable.woff2) format("woff2"),url(/assets/fonts/GeneralSans-Variable.woff) format("woff")}@font-face{font-display:swap;font-family:General Sans;font-style:italic;font-weight:200 700;src:url(/assets/fonts/GeneralSans-VariableItalic.woff2) format("woff2"),url(/assets/fonts/GeneralSans-VariableItalic.woff) format("woff")}html{--color-white:#fff;--color-black:#000;--color-amber-50:#fffbeb;--color-amber-100:#fef3c8;--color-amber-200:#fde68b;--color-amber-300:#fcd44f;--color-amber-400:#fbbd23;--color-amber-500:#f59f0a;--color-amber-600:#db7706;--color-amber-700:#b45308;--color-amber-800:#91400d;--color-amber-900:#7b370f;--color-gray-cool-50:#f9fafb;--color-gray-cool-100:#f3f4f6;--color-gray-cool-200:#e5e7eb;--color-gray-cool-300:#d1d5db;--color-gray-cool-400:#9ca3b0;--color-gray-cool-500:#6b7280;--color-gray-cool-600:#4b5563;--color-gray-cool-700:#384252;--color-gray-cool-800:#1f2937;--color-gray-cool-900:#111827;--color-gray-50:#fafafa;--color-gray-100:#f4f4f5;--color-gray-200:#e4e4e7;--color-gray-300:#d4d4d8;--color-gray-400:#a1a1aa;--color-gray-500:#71717a;--color-gray-600:#52525b;--color-gray-700:#3f3f46;--color-gray-800:#27272a;--color-gray-900:#18181b;--color-gray-warm-50:#fafaf9;--color-gray-warm-100:#f5f5f4;--color-gray-warm-200:#e7e5e4;--color-gray-warm-300:#d6d3d1;--color-gray-warm-400:#a8a29f;--color-gray-warm-500:#78726d;--color-gray-warm-600:#56524d;--color-gray-warm-700:#44403c;--color-gray-warm-800:#292524;--color-gray-warm-900:#1c1917;--color-indigo-50:#f0f3ff;--color-indigo-100:#e0e7ff;--color-indigo-200:#c8d3fe;--color-indigo-300:#a6b4fc;--color-indigo-400:#818bf8;--color-indigo-500:#6467f2;--color-indigo-600:#5048e5;--color-indigo-700:#463acb;--color-indigo-800:#372fa2;--color-indigo-900:#312e7f;--font-family-mono:monospace;--font-family-serif:serif;--font-family-sans-serif:"General Sans",sans-serif;--step-negative-2:clamp(.79rem,.87rem + -.38vw,.56rem);--step-negative-1:clamp(.89rem,.92rem + -.16vw,.8rem);--step-0:clamp(1rem,.96rem + .21vw,1.13rem);--step-1:clamp(1.13rem,.97rem + .78vw,1.59rem);--step-2:clamp(1.27rem,.94rem + 1.64vw,2.25rem);--step-3:clamp(1.42rem,.84rem + 2.93vw,3.18rem);--step-4:clamp(1.6rem,.64rem + 4.83vw,4.5rem);--step-5:clamp(2.49rem,1.2rem + 6.45vw,6.36rem);--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--transition-duration-100:.1s;--transition-duration-200:.2s;--transition-duration-300:.3s;--transition-duration-400:.4s;--transition-duration-500:.5s;--transition-duration:var(--transition-duration-200);--transition-easing:cubic-bezier(.45,0,.55,1);--transition-ease-in:cubic-bezier(.11,0,.5,0);--transition-ease-out:cubic-bezier(.5,1,.89,1);--transition-ease-in-out:var(--transition-easing);--grid-max-width:69.75rem;--grid-gutter:var(--space-s-l,clamp(1rem,.4975rem + 2.5126vw,2.25rem));--grid-columns:12;--space-3xs:clamp(.25rem,.2292rem + .1042vw,.3125rem);--space-2xs:clamp(.5rem,.4792rem + .1042vw,.5625rem);--space-xs:clamp(.75rem,.7083rem + .2083vw,.875rem);--space-s:clamp(1rem,.9583rem + .2083vw,1.125rem);--space-m:clamp(1.5rem,1.4375rem + .3125vw,1.6875rem);--space-l:clamp(2rem,1.9167rem + .4167vw,2.25rem);--space-xl:clamp(3rem,2.875rem + .625vw,3.375rem);--space-2xl:clamp(4rem,3.8333rem + .8333vw,4.5rem);--space-3xl:clamp(6rem,5.75rem + 1.25vw,6.75rem);--space-3xs-2xs:clamp(.25rem,.1458rem + .5208vw,.5625rem);--space-2xs-xs:clamp(.5rem,.375rem + .625vw,.875rem);--space-xs-s:clamp(.75rem,.625rem + .625vw,1.125rem);--space-s-m:clamp(1rem,.7708rem + 1.1458vw,1.6875rem);--space-m-l:clamp(1.5rem,1.25rem + 1.25vw,2.25rem);--space-l-xl:clamp(2rem,1.5417rem + 2.2917vw,3.375rem);--space-xl-2xl:clamp(3rem,2.5rem + 2.5vw,4.5rem);--space-2xl-3xl:clamp(4rem,3.0833rem + 4.5833vw,6.75rem)}@supports (top:1vi){html{--space-2xl-3xl:clamp(4rem,3.0833rem + 4.5833vi,6.75rem);--space-xl-2xl:clamp(3rem,2.5rem + 2.5vi,4.5rem);--space-l-xl:clamp(2rem,1.5417rem + 2.2917vi,3.375rem);--space-m-l:clamp(1.5rem,1.25rem + 1.25vi,2.25rem);--space-s-m:clamp(1rem,.7708rem + 1.1458vi,1.6875rem);--space-xs-s:clamp(.75rem,.625rem + .625vi,1.125rem);--space-2xs-xs:clamp(.5rem,.375rem + .625vi,.875rem);--space-3xs-2xs:clamp(.25rem,.1458rem + .5208vi,.5625rem);--space-3xl:clamp(6rem,5.75rem + 1.25vi,6.75rem);--space-2xl:clamp(4rem,3.8333rem + .8333vi,4.5rem);--space-xl:clamp(3rem,2.875rem + .625vi,3.375rem);--space-l:clamp(2rem,1.9167rem + .4167vi,2.25rem);--space-m:clamp(1.5rem,1.4375rem + .3125vi,1.6875rem);--space-s:clamp(1rem,.9583rem + .2083vi,1.125rem);--space-xs:clamp(.75rem,.7083rem + .2083vi,.875rem);--space-2xs:clamp(.5rem,.4792rem + .1042vi,.5625rem);--space-3xs:clamp(.25rem,.2292rem + .1042vi,.3125rem)}}html[data-theme=dark]{--color-base:var(--color-gray-50);--color-primary:var(--color-amber-500);--color-accent:var(--color-gray-300);--color-accent-background:var(--color-gray-800);--color-accent-border:var(--color-gray-700);--color-body:var(--color-gray-200);--color-headings:var(--color-gray-50);--color-background:var(--color-gray-900);--color-gradient:linear-gradient(165deg,#f59e0b,#f39909,#ed8c06,#e37a05,#d96606,#ce5409,#c5460b,#c2410c);--color-gradient-reverse:linear-gradient(165deg,#6366f1,#6363f0,#645ced,#6552e9,#6745e4,#6a38df,#6c2ddb,#6d28d9);--color-shadow:var(--color-amber-900)}html[data-theme=light]{--color-base:var(--color-gray-cool-900);--color-primary:var(--color-indigo-500);--color-accent:var(--color-gray-cool-600);--color-accent-background:var(--color-gray-cool-100);--color-accent-border:var(--color-gray-300);--color-body:var(--color-gray-cool-700);--color-headings:var(--color-gray-cool-800);--color-background:var(--color-gray-cool-50);--color-gradient:linear-gradient(165deg,#6366f1,#6363f0,#645ced,#6552e9,#6745e4,#6a38df,#6c2ddb,#6d28d9);--color-gradient-reverse:linear-gradient(165deg,#f59e0b,#f39909,#ed8c06,#e37a05,#d96606,#ce5409,#c5460b,#c2410c);--color-shadow:var(--color-indigo-900)}@media(prefers-color-scheme:dark){html{--color-base:var(--color-gray-50);--color-primary:var(--color-amber-500);--color-accent:var(--color-gray-300);--color-accent-background:var(--color-gray-800);--color-accent-border:var(--color-gray-700);--color-body:var(--color-gray-200);--color-headings:var(--color-gray-50);--color-background:var(--color-gray-900);--color-gradient:linear-gradient(165deg,#f59e0b,#f39909,#ed8c06,#e37a05,#d96606,#ce5409,#c5460b,#c2410c);--color-gradient-reverse:linear-gradient(165deg,#6366f1,#6363f0,#645ced,#6552e9,#6745e4,#6a38df,#6c2ddb,#6d28d9);--color-shadow:var(--color-amber-900)}}@media(prefers-color-scheme:light){html{--color-base:var(--color-gray-cool-900);--color-primary:var(--color-indigo-500);--color-accent:var(--color-gray-cool-600);--color-accent-background:var(--color-gray-cool-100);--color-accent-border:var(--color-gray-300);--color-body:var(--color-gray-cool-700);--color-headings:var(--color-gray-cool-800);--color-background:var(--color-gray-cool-50);--color-gradient:linear-gradient(165deg,#6366f1,#6363f0,#645ced,#6552e9,#6745e4,#6a38df,#6c2ddb,#6d28d9);--color-gradient-reverse:linear-gradient(165deg,#f59e0b,#f39909,#ed8c06,#e37a05,#d96606,#ce5409,#c5460b,#c2410c);--color-shadow:var(--color-indigo-900)}}.sr-only:not(:focus):not(:active){border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}button *{pointer-events:none}img{border-radius:.5rem;display:inline-block;overflow:hidden;vertical-align:middle}img,video{height:auto;max-width:100%}video{display:block;width:100%}figure{display:table;margin-bottom:clamp(4rem,3.8333rem + .8333vi,4.5rem);margin-bottom:var(--space-2xl);margin-left:0;margin-right:0;margin-top:clamp(4rem,3.8333rem + .8333vi,4.5rem);margin-top:var(--space-2xl);width:100%}figure iframe:not(.codepen),figure img,figure video{display:block;height:auto;max-width:100%}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}body,html{height:100%;scroll-behavior:smooth;scroll-padding-top:3.75rem;scroll-padding-top:var(--height-header)}body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding-top:3.75rem;padding-top:var(--height-header)}[data-navigation-open=true]{overflow:hidden;padding-right:0;padding-right:var(--scrollbar-width,0)}html{accent-color:var(--color-primary);--csstools-color-scheme--dark: ;color-scheme:light dark;font-size:100%}@media(prefers-color-scheme:dark){html{--csstools-color-scheme--dark:initial}}body{background-color:var(--color-background);color:var(--color-body);font-family:General Sans,sans-serif;font-family:var(--font-family-sans-serif);font-size:clamp(1rem,.96rem + .21vw,1.13rem);font-size:var(--step-0);font-weight:400;font-weight:var(--font-weight-normal);line-height:1.5}:focus-visible{outline:.125rem dashed currentcolor;outline-offset:-.125rem}h1,h2,h3,h4,h5,h6{color:var(--color-headings);font-family:inherit;font-weight:700;font-weight:var(--font-weight-bold);line-height:1.2;margin-left:1em;margin-right:.5em}.h1,h1{font-size:clamp(2.49rem,1.2rem + 6.45vw,6.36rem);font-size:var(--step-5)}.h1 .subtitle,h1 .subtitle{background:var(--color-gradient);-webkit-background-clip:text;background-clip:text;color:transparent;display:block;font-size:clamp(1.27rem,.94rem + 1.64vw,2.25rem);font-size:var(--step-2);font-weight:300}.h2,h2{font-size:clamp(1.6rem,.64rem + 4.83vw,4.5rem);font-size:var(--step-4)}.h3,h3{font-size:clamp(1.42rem,.84rem + 2.93vw,3.18rem);font-size:var(--step-3)}.h4,h4{font-size:clamp(1.27rem,.94rem + 1.64vw,2.25rem);font-size:var(--step-2)}.h5,h5{font-size:clamp(1.13rem,.97rem + .78vw,1.59rem);font-size:var(--step-1)}a{color:var(--color-primary);-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--color-primary),transparent 100%);text-decoration-thickness:0;text-underline-offset:.125rem;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-duration:var(--transition-duration);transition-duration:var(--transition-duration);-webkit-transition-property:background-color,background-size,border-color,color,text-decoration-color,text-decoration-thickness,text-underline-offset;transition-property:background-color,background-size,border-color,color,text-decoration-color,text-decoration-thickness,text-underline-offset;-webkit-transition-timing-function:cubic-bezier(.45,0,.55,1);transition-timing-function:cubic-bezier(.45,0,.55,1);-webkit-transition-timing-function:var(--transition-easing);transition-timing-function:var(--transition-easing)}a:focus,a:hover{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--color-primary),transparent 0);text-decoration-thickness:.125rem}hr{background-image:-webkit-gradient(linear,right top,left top,from(transparent),color-stop(var(--color-primary)),to(transparent));background-image:linear-gradient(to left,transparent,var(--color-primary),transparent);border:none;height:.125rem}q:after,q:before{color:var(--color-primary)}::marker{color:var(--color-primary)}kbd{background-color:var(--color-background);border-bottom:.125em solid hsl(hsl(240,5%,26%));border-bottom:.125em solid hsl(var(--color-gray-700));border-radius:.25rem;padding:.25em .5em}blockquote{border-left:.25rem solid var(--color-accent-border);font-size:clamp(1.13rem,.97rem + .78vw,1.59rem);font-size:var(--step-1);margin-left:auto;margin-right:auto;max-width:75rem;padding:clamp(2rem,1.9167rem + .4167vi,2.25rem);padding:var(--space-l)}blockquote :first-child{margin-top:0}blockquote :last-child{margin-bottom:0}figcaption{caption-side:bottom;display:table-caption;margin-top:.5em}cite,figcaption{font-size:clamp(.89rem,.92rem + -.16vw,.8rem);font-size:var(--step-negative-1);font-style:italic}table{border-collapse:collapse}table thead{border-bottom:1px solid var(--color-accent-border);color:var(--color-headings)}table tr:nth-child(2n){background-color:var(--color-accent-border)}table td,table th{padding:1rem}dt{color:var(--color-headings);font-weight:700;font-weight:var(--font-weight-bold)}dd{margin-left:0;padding-left:3rem;position:relative}code{background-color:#24292e;border-radius:.25rem;color:#e1e4e8;padding:.25rem .5rem}.astro-code{border-radius:.5rem;padding:1rem}.astro-code code{all:revert}.astro-code{padding:1em}.card{background-color:var(--color-accent-background);border:1px solid var(--color-accent-border);border-radius:.5rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding:1.5rem;position:relative;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-duration:var(--transition-duration);transition-duration:var(--transition-duration);-webkit-transition-property:background-color,background-size,border-color,color;transition-property:background-color,background-size,border-color,color;-webkit-transition-timing-function:cubic-bezier(.45,0,.55,1);transition-timing-function:cubic-bezier(.45,0,.55,1);-webkit-transition-timing-function:var(--transition-easing);transition-timing-function:var(--transition-easing);width:100%}.card:focus-within,.card:hover{border-color:var(--color-primary);color:hsl(var(--color-base))}.card:focus-within .card__date,.card:focus-within .card__heading,.card:focus-within .card__link,.card:hover .card__date,.card:hover .card__heading,.card:hover .card__link{color:hsl(var(--color-base))}.card:focus-within .tag,.card:hover .tag{border-color:hsl(var(--color-base));color:hsl(var(--color-base))}.card .card__date,.card .card__heading,.card .card__link,.card .tag{-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-duration:var(--transition-duration);transition-duration:var(--transition-duration);-webkit-transition-property:background-color,background-size,border-color,color,-webkit-text-decoration;transition-property:background-color,background-size,border-color,color,-webkit-text-decoration;transition-property:background-color,background-size,border-color,color,text-decoration;transition-property:background-color,background-size,border-color,color,text-decoration,-webkit-text-decoration;-webkit-transition-timing-function:cubic-bezier(.45,0,.55,1);transition-timing-function:cubic-bezier(.45,0,.55,1);-webkit-transition-timing-function:var(--transition-easing);transition-timing-function:var(--transition-easing)}.card__heading{font-size:clamp(1.27rem,.94rem + 1.64vw,2.25rem);font-size:var(--step-2);margin-left:0;margin-right:1rem;margin-top:0}.card__link{color:var(--color-base);text-decoration-color:transparent}.card__link:after{content:"";height:100%;inset:0;position:absolute;width:100%}.card__link:focus,.card__link:hover{background-color:transparent}.card__date{color:var(--color-accent);font-size:clamp(.89rem,.92rem + -.16vw,.8rem);font-size:var(--step-negative-1);margin-bottom:1rem;margin-top:auto}div.client-list{margin-bottom:clamp(4rem,3.8333rem + .8333vi,4.5rem);margin-bottom:var(--space-2xl);margin-top:clamp(4rem,3.8333rem + .8333vi,4.5rem);margin-top:var(--space-2xl);max-width:75rem;width:100%}div.client-list ul{display:grid;grid-gap:clamp(.5rem,.4792rem + .1042vw,.5625rem) clamp(2rem,1.9167rem + .4167vw,2.25rem);grid-gap:clamp(.5rem,.4792rem + .1042vi,.5625rem) clamp(2rem,1.9167rem + .4167vi,2.25rem);grid-gap:var(--space-2xs) var(--space-l);gap:clamp(.5rem,.4792rem + .1042vw,.5625rem) clamp(2rem,1.9167rem + .4167vw,2.25rem);gap:clamp(.5rem,.4792rem + .1042vi,.5625rem) clamp(2rem,1.9167rem + .4167vi,2.25rem);gap:var(--space-2xs) var(--space-l);grid-template-columns:repeat(auto-fill,minmax(30ch,1fr));list-style:none;padding:0}.codepen{display:block}.codepen,.content>*{margin-left:auto;margin-right:auto}.content>*{max-width:50rem}.content>:first-child{margin-top:0}.content>:last-child{margin-bottom:0}.devices{display:table;margin-bottom:clamp(4rem,3.8333rem + .8333vi,4.5rem);margin-bottom:var(--space-2xl);margin-top:clamp(4rem,3.8333rem + .8333vi,4.5rem);margin-top:var(--space-2xl);max-width:none;width:100%}.devices figcaption{caption-side:bottom;display:table-caption;margin-left:auto;margin-right:auto;max-width:50rem;text-align:center}.devices svg{display:inline-block;fill:currentcolor;height:auto;max-width:100%;width:100%}.devices img{border-radius:0;left:0;position:absolute;top:0}.devices .devices__inner{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;display:-webkit-box;display:-ms-flexbox;display:flex;max-width:none;position:relative;width:100%}.devices .device{background-color:var(--color-background);display:none;margin:0 auto;position:relative}.devices .device--large{background-color:transparent}@media(min-width:50em){.devices .device--large{display:-webkit-box;display:-ms-flexbox;display:flex;width:75%}}.devices .device--large img{left:4.4%;top:5.325%;width:91.45%}.devices .device--medium{border-radius:5%;display:-webkit-box;display:-ms-flexbox;display:flex;width:75%}@media(min-width:50em){.devices .device--medium{margin-left:-4em;width:30%}}.devices .device--medium img{left:6.9%;top:9.2%;width:86.275%}.devices .device--small{border-radius:15%;display:-webkit-box;display:-ms-flexbox;display:flex;margin-left:-1em;width:25%}@media(min-width:50em){.devices .device--small{width:10%}}.devices .device--small img{left:9%;top:15%;width:83%}.gallery{margin-bottom:clamp(4rem,3.8333rem + .8333vi,4.5rem);margin-bottom:var(--space-2xl);margin-top:clamp(4rem,3.8333rem + .8333vi,4.5rem);margin-top:var(--space-2xl);max-width:75rem;width:100%}.gallery__items{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:clamp(1rem,.9583rem + .2083vw,1.125rem);gap:clamp(1rem,.9583rem + .2083vi,1.125rem);gap:var(--space-s)}.gallery__items figure{-ms-flex-preferred-size:100%;flex-basis:100%;margin-bottom:0;margin-top:0}@media(min-width:50em){.gallery__items:has(figure:nth-child(2n):last-child) figure{-ms-flex-preferred-size:calc(50% - clamp(1rem,.9583rem + .2083vw,1.125rem) + clamp(1rem,.9583rem + .2083vw,1.125rem)/2);flex-basis:calc(50% - clamp(1rem,.9583rem + .2083vw,1.125rem) + clamp(1rem,.9583rem + .2083vw,1.125rem)/2);-ms-flex-preferred-size:calc(50% - clamp(1rem,.9583rem + .2083vi,1.125rem) + clamp(1rem,.9583rem + .2083vi,1.125rem)/2);flex-basis:calc(50% - clamp(1rem,.9583rem + .2083vi,1.125rem) + clamp(1rem,.9583rem + .2083vi,1.125rem)/2);-ms-flex-preferred-size:calc(50% - var(--space-s) + var(--space-s)/2);flex-basis:calc(50% - var(--space-s) + var(--space-s)/2)}}@media(min-width:50em){.gallery__items:has(figure:nth-child(3n):last-child) figure{-ms-flex-preferred-size:calc(33.33333% - clamp(1rem,.9583rem + .2083vw,1.125rem) + clamp(1rem,.9583rem + .2083vw,1.125rem)/3);flex-basis:calc(33.33333% - clamp(1rem,.9583rem + .2083vw,1.125rem) + clamp(1rem,.9583rem + .2083vw,1.125rem)/3);-ms-flex-preferred-size:calc(33.33333% - clamp(1rem,.9583rem + .2083vi,1.125rem) + clamp(1rem,.9583rem + .2083vi,1.125rem)/3);flex-basis:calc(33.33333% - clamp(1rem,.9583rem + .2083vi,1.125rem) + clamp(1rem,.9583rem + .2083vi,1.125rem)/3);-ms-flex-preferred-size:calc(33.33333% - var(--space-s) + var(--space-s)/3);flex-basis:calc(33.33333% - var(--space-s) + var(--space-s)/3)}}@media(min-width:50em){.gallery__items:has(figure:nth-child(odd):last-child) figure{-ms-flex-preferred-size:calc(50% - clamp(1rem,.9583rem + .2083vw,1.125rem) + clamp(1rem,.9583rem + .2083vw,1.125rem)/2);flex-basis:calc(50% - clamp(1rem,.9583rem + .2083vw,1.125rem) + clamp(1rem,.9583rem + .2083vw,1.125rem)/2);-ms-flex-preferred-size:calc(50% - clamp(1rem,.9583rem + .2083vi,1.125rem) + clamp(1rem,.9583rem + .2083vi,1.125rem)/2);flex-basis:calc(50% - clamp(1rem,.9583rem + .2083vi,1.125rem) + clamp(1rem,.9583rem + .2083vi,1.125rem)/2);-ms-flex-preferred-size:calc(50% - var(--space-s) + var(--space-s)/2);flex-basis:calc(50% - var(--space-s) + var(--space-s)/2)}}.gallery__items:has(figure:nth-child(odd):last-child) figure:last-child{-ms-flex-preferred-size:100%;flex-basis:100%}.icon{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;fill:currentcolor;height:1em;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;stroke:currentcolor;stroke-width:0;width:1em}.link--heading{font-size:.75em;opacity:0;-webkit-text-decoration:none;text-decoration:none;-webkit-transition-property:opacity,background;transition-property:opacity,background}h2:hover .link--heading,h3:hover .link--heading,h4:hover .link--heading,h5:hover .link--heading,h6:hover .link--heading{opacity:1}.logo__background{fill:transparent}.logo__letter{fill:currentcolor;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-duration:var(--transition-duration);transition-duration:var(--transition-duration);-webkit-transition-property:fill;transition-property:fill;-webkit-transition-timing-function:cubic-bezier(.45,0,.55,1);transition-timing-function:cubic-bezier(.45,0,.55,1);-webkit-transition-timing-function:var(--transition-easing);transition-timing-function:var(--transition-easing)}.logos{-ms-flex-wrap:wrap;flex-wrap:wrap;gap:2em 3em;-ms-flex-pack:center;list-style:none;margin-bottom:clamp(4rem,3.8333rem + .8333vi,4.5rem);margin-bottom:var(--space-2xl);margin-top:clamp(4rem,3.8333rem + .8333vi,4.5rem);margin-top:var(--space-2xl);max-width:75rem;padding:0}.logos,.logos li{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;justify-content:center}.logos li{-webkit-box-flex:1;-ms-flex:1 1 12rem;flex:1 1 12rem;-ms-flex-pack:center}.logos .svg{display:-webkit-box;display:-ms-flexbox;display:flex}.logos .svg svg{fill:var(--color-body);max-height:2em;max-width:100%;width:auto}@media(min-width:48em){.navigation button{display:none}}.navigation ul{list-style:none;margin:0;padding:0}.navigation a,.navigation ul{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.navigation a{color:var(--color-base);-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:.5em 1em}.navigation a:focus,.navigation a:hover{background-color:transparent}.navigation__inner{display:-webkit-box;display:-ms-flexbox;display:flex}.navigation--primary{margin:auto 0;padding:1rem 0}.navigation--primary ul{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:2rem}.navigation--primary li{opacity:0;text-align:center;-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:opacity .4s cubic-bezier(.5,1,.89,1) calc(var(--index)*50ms),visibility .4s cubic-bezier(.5,1,.89,1) calc(var(--index)*50ms),-webkit-transform .4s cubic-bezier(.5,1,.89,1) calc(var(--index)*50ms);transition:opacity .4s cubic-bezier(.5,1,.89,1) calc(var(--index)*50ms),visibility .4s cubic-bezier(.5,1,.89,1) calc(var(--index)*50ms),-webkit-transform .4s cubic-bezier(.5,1,.89,1) calc(var(--index)*50ms);transition:opacity .4s cubic-bezier(.5,1,.89,1) calc(var(--index)*50ms),transform .4s cubic-bezier(.5,1,.89,1) calc(var(--index)*50ms),visibility .4s cubic-bezier(.5,1,.89,1) calc(var(--index)*50ms);transition:opacity .4s cubic-bezier(.5,1,.89,1) calc(var(--index)*50ms),transform .4s cubic-bezier(.5,1,.89,1) calc(var(--index)*50ms),visibility .4s cubic-bezier(.5,1,.89,1) calc(var(--index)*50ms),-webkit-transform .4s cubic-bezier(.5,1,.89,1) calc(var(--index)*50ms);-webkit-transition:opacity var(--transition-duration-400) var(--transition-ease-out) calc(var(--index)*50ms),visibility var(--transition-duration-400) var(--transition-ease-out) calc(var(--index)*50ms),-webkit-transform var(--transition-duration-400) var(--transition-ease-out) calc(var(--index)*50ms);transition:opacity var(--transition-duration-400) var(--transition-ease-out) calc(var(--index)*50ms),visibility var(--transition-duration-400) var(--transition-ease-out) calc(var(--index)*50ms),-webkit-transform var(--transition-duration-400) var(--transition-ease-out) calc(var(--index)*50ms);transition:opacity var(--transition-duration-400) var(--transition-ease-out) calc(var(--index)*50ms),transform var(--transition-duration-400) var(--transition-ease-out) calc(var(--index)*50ms),visibility var(--transition-duration-400) var(--transition-ease-out) calc(var(--index)*50ms);transition:opacity var(--transition-duration-400) var(--transition-ease-out) calc(var(--index)*50ms),transform var(--transition-duration-400) var(--transition-ease-out) calc(var(--index)*50ms),visibility var(--transition-duration-400) var(--transition-ease-out) calc(var(--index)*50ms),-webkit-transform var(--transition-duration-400) var(--transition-ease-out) calc(var(--index)*50ms);visibility:hidden;width:100%}.navigation--primary a{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-size:clamp(1.42rem,.84rem + 2.93vw,3.18rem);font-size:var(--step-3);font-weight:300;font-weight:var(--font-weight-light);padding:0;text-align:center}[data-open=true] .navigation--primary li{opacity:1;-webkit-transform:translateY(0);transform:translateY(0);visibility:visible}.navigation--social{opacity:0;-webkit-transition:opacity .4s cubic-bezier(.5,1,.89,1) .4s,visibility .4s cubic-bezier(.5,1,.89,1) .4s;transition:opacity .4s cubic-bezier(.5,1,.89,1) .4s,visibility .4s cubic-bezier(.5,1,.89,1) .4s;-webkit-transition:opacity var(--transition-duration-400) var(--transition-ease-out) var(--transition-duration-400),visibility var(--transition-duration-400) var(--transition-ease-out) var(--transition-duration-400);transition:opacity var(--transition-duration-400) var(--transition-ease-out) var(--transition-duration-400),visibility var(--transition-duration-400) var(--transition-ease-out) var(--transition-duration-400);visibility:hidden}.navigation--social a{color:var(--color-base);-webkit-transform:scale(1);transform:scale(1);-webkit-transition-property:color,-webkit-transform;transition-property:color,-webkit-transform;transition-property:color,transform;transition-property:color,transform,-webkit-transform}.navigation--social a:focus,.navigation--social a:hover{background:none;color:var(--color-primary);-webkit-transform:scale(1.2);transform:scale(1.2)}.navigation--social ul{border-top:1px solid var(--color-accent-border);margin:0 2rem;padding:1rem 0}[data-open=true] .navigation--social{opacity:1;visibility:visible}.navigation--pagination{display:grid;grid-template-columns:repeat(2,1fr)}.navigation--pagination .navigation__link{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.navigation--pagination .navigation__link .icon{-webkit-transform:translateX(0);transform:translate(0);-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-duration:var(--transition-duration);transition-duration:var(--transition-duration);-webkit-transition-property:color,-webkit-transform;transition-property:color,-webkit-transform;transition-property:color,transform;transition-property:color,transform,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(.45,0,.55,1);transition-timing-function:cubic-bezier(.45,0,.55,1);-webkit-transition-timing-function:var(--transition-easing);transition-timing-function:var(--transition-easing)}.navigation--pagination .navigation__link:focus .icon,.navigation--pagination .navigation__link:hover .icon{color:var(--color-primary)}.navigation--pagination .navigation__link--previous{grid-column:1;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navigation--pagination .navigation__link--previous:focus .icon,.navigation--pagination .navigation__link--previous:hover .icon{-webkit-transform:translateX(-50%);transform:translate(-50%)}.navigation--pagination .navigation__link--next{grid-column:2;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.navigation--pagination .navigation__link--next:focus .icon,.navigation--pagination .navigation__link--next:hover .icon{-webkit-transform:translateX(50%);transform:translate(50%)}.pagination{gap:clamp(1rem,.9583rem + .2083vw,1.125rem);gap:clamp(1rem,.9583rem + .2083vi,1.125rem);gap:var(--space-s);-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.pagination,.pagination__pages{display:-webkit-box;display:-ms-flexbox;display:flex}.pagination__pages{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;gap:clamp(.75rem,.7083rem + .2083vw,.875rem);gap:clamp(.75rem,.7083rem + .2083vi,.875rem);gap:var(--space-xs);-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.post-list{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:1.5rem;list-style:none;margin-left:auto;margin-right:auto;padding:0}.post-list--projects{max-width:100%}.post-list--projects .post-list-item{position:relative}.post-list--projects .post-list-item:focus-within .post-list-item__image{border-color:var(--color-primary)}.post-list--projects .post-list-item:hover .post-list-item__image{border-color:var(--color-primary)}.post-list--projects .post-list-item:focus-within .post-list-item__image img{scale:1.1}.post-list--projects .post-list-item:hover .post-list-item__image img{scale:1.1}.post-list--projects .post-list-item__image{border:2px solid transparent;border-radius:.5rem;inset:0;overflow:hidden;position:absolute;-webkit-transition:border-color .5s cubic-bezier(.45,0,.55,1);transition:border-color .5s cubic-bezier(.45,0,.55,1);-webkit-transition:border-color var(--transition-duration-500) var(--transition-easing);transition:border-color var(--transition-duration-500) var(--transition-easing)}.post-list--projects .post-list-item__image img{height:100%;inset:0;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;position:absolute;-webkit-transition:scale .5s cubic-bezier(.45,0,.55,1);transition:scale .5s cubic-bezier(.45,0,.55,1);-webkit-transition:scale var(--transition-duration-500) var(--transition-easing);transition:scale var(--transition-duration-500) var(--transition-easing);width:100%}.post-list--projects .post-list-item__image:after{background-color:var(--color-background);content:"";inset:0;opacity:.75;position:absolute}.post-list--projects .post-list-item__content{position:relative}.post-list--projects .post-list-item__title{color:var(--color-heading);margin:0}.post-list--projects .post-list-item__title a{color:inherit;display:block;padding:clamp(4rem,3.8333rem + .8333vi,4.5rem) clamp(3rem,2.875rem + .625vi,3.375rem);padding:var(--space-2xl) var(--space-xl);-webkit-text-decoration:none;text-decoration:none}code[class*=language-],pre[class*=language-]{color:#d4d4d4;direction:ltr;font-family:Menlo,Monaco,Consolas,Andale Mono,Ubuntu Mono,Courier New,monospace;font-size:13px;-ms-hyphens:none;hyphens:none;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;text-align:left;text-shadow:none;white-space:pre;word-break:normal;word-spacing:normal}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{background:#264f78;text-shadow:none}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{background:#264f78;text-shadow:none}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{background:#1e1e1e;margin:.5em 0;overflow:auto;padding:1em}:not(pre)>code[class*=language-]{background:#1e1e1e;border-radius:.3em;color:#db4c69;padding:.1em .3em}.namespace{opacity:.7}.token.doctype .token.doctype-tag{color:#569cd6}.token.doctype .token.name{color:#9cdcfe}.token.comment,.token.prolog{color:#6a9955}.language-html .language-css .token.punctuation,.language-html .language-javascript .token.punctuation,.token.punctuation{color:#d4d4d4}.token.boolean,.token.constant,.token.inserted,.token.number,.token.property,.token.symbol,.token.tag,.token.unit{color:#b5cea8}.token.attr-name,.token.builtin,.token.char,.token.deleted,.token.selector,.token.string{color:#ce9178}.language-css .token.string.url{-webkit-text-decoration:underline;text-decoration:underline}.token.entity,.token.operator{color:#d4d4d4}.token.operator.arrow{color:#569cd6}.token.atrule{color:#ce9178}.token.atrule .token.rule{color:#c586c0}.token.atrule .token.url{color:#9cdcfe}.token.atrule .token.url .token.function{color:#dcdcaa}.token.atrule .token.url .token.punctuation{color:#d4d4d4}.token.keyword{color:#569cd6}.token.keyword.control-flow,.token.keyword.module{color:#c586c0}.token.function,.token.function .token.maybe-class-name{color:#dcdcaa}.token.regex{color:#d16969}.token.important{color:#569cd6}.token.italic{font-style:italic}.token.constant{color:#9cdcfe}.token.class-name,.token.maybe-class-name{color:#4ec9b0}.token.console,.token.interpolation,.token.parameter{color:#9cdcfe}.token.boolean,.token.punctuation.interpolation-punctuation{color:#569cd6}.token.exports .token.maybe-class-name,.token.imports .token.maybe-class-name,.token.property,.token.variable{color:#9cdcfe}.token.escape,.token.selector{color:#d7ba7d}.token.tag{color:#569cd6}.token.cdata,.token.tag .token.punctuation{color:gray}.token.attr-name{color:#9cdcfe}.token.attr-value,.token.attr-value .token.punctuation{color:#ce9178}.token.attr-value .token.punctuation.attr-equals{color:#d4d4d4}.token.entity{color:#569cd6}.token.namespace{color:#4ec9b0}code[class*=language-javascript],code[class*=language-jsx],code[class*=language-tsx],code[class*=language-typescript],pre[class*=language-javascript],pre[class*=language-jsx],pre[class*=language-tsx],pre[class*=language-typescript]{color:#9cdcfe}code[class*=language-css],pre[class*=language-css]{color:#ce9178}code[class*=language-html],pre[class*=language-html]{color:#d4d4d4}.language-regex .token.anchor{color:#dcdcaa}.language-html .token.punctuation{color:gray}pre[class*=language-]>code[class*=language-]{position:relative;z-index:1}.line-highlight.line-highlight{background:#f7ebc6;-webkit-box-shadow:inset 5px 0 0 #f7d87c;box-shadow:inset 5px 0 #f7d87c;z-index:0}.recent-posts{max-width:none!important}.recent-posts__list{display:grid;grid-gap:1.5rem;gap:1.5rem;grid-template-columns:repeat(auto-fill,1fr);list-style:none;margin-bottom:3rem;margin-top:3rem;padding:0}@media(min-width:30em){.recent-posts__list{grid-template-columns:repeat(auto-fill,minmax(30rem,1fr))}}.recent-posts__list-item{display:-webkit-box;display:-ms-flexbox;display:flex}.section{padding:clamp(2rem,1.5417rem + 2.2917vi,3.375rem);padding:var(--space-l-xl)}.site-backdrop{--size:80vmax;height:80vmax;height:var(--size);left:-40vmax;left:calc(var(--size)*-1/2);-webkit-mask-image:radial-gradient(circle at center,#000 0,transparent 70%);mask-image:radial-gradient(circle at center,#000 0,transparent 70%);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;opacity:.1;pointer-events:none;position:fixed;top:-40vmax;top:calc(var(--size)*-1/2);-webkit-transform:translate3d(50vw,50vh,0);transform:translate3d(50vw,50vh,0);width:80vmax;width:var(--size);z-index:-1}[data-theme=light]:root .site-backdrop{background-image:-webkit-gradient(linear,left top,left bottom,from(#6467f2),to(#463acb));background-image:linear-gradient(180deg,#6467f2,#463acb);background-image:-webkit-gradient(linear,left top,left bottom,from(var(--color-indigo-500)),to(var(--color-indigo-700)));background-image:linear-gradient(to bottom,var(--color-indigo-500),var(--color-indigo-700))}[data-theme=dark]:root .site-backdrop{background-image:-webkit-gradient(linear,left top,left bottom,from(#f59f0a),to(#b45308));background-image:linear-gradient(180deg,#f59f0a,#b45308);background-image:-webkit-gradient(linear,left top,left bottom,from(var(--color-amber-500)),to(var(--color-amber-700)));background-image:linear-gradient(to bottom,var(--color-amber-500),var(--color-amber-700))}.site-footer{font-size:clamp(.89rem,.92rem + -.16vw,.8rem);font-size:var(--step-negative-1);padding:1rem clamp(2rem,1.5417rem + 2.2917vi,3.375rem);padding:1rem var(--space-l-xl)}.site-footer p{margin:0}.site-footer__inner{margin-left:auto;margin-right:auto;max-width:75rem}.site-header{background-image:-webkit-gradient(linear,left top,left bottom,from(var(--color-background)),to(transparent));background-image:linear-gradient(to bottom,var(--color-background),transparent);height:3.75rem;height:var(--height-header);left:0;padding:0;position:fixed;top:0;width:100vw;z-index:1}.site-header__backdrop{-webkit-backdrop-filter:blur(.5rem);backdrop-filter:blur(.5rem);background-color:color-mix(in srgb,var(--backdrop-background),transparent 20%);height:100%;inset:0;opacity:0;position:fixed;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-duration:var(--transition-duration-300);transition-duration:var(--transition-duration-300);-webkit-transition-property:opacity,visibility;transition-property:opacity,visibility;-webkit-transition-timing-function:cubic-bezier(.11,0,.5,0);transition-timing-function:cubic-bezier(.11,0,.5,0);-webkit-transition-timing-function:var(--transition-ease-in);transition-timing-function:var(--transition-ease-in);visibility:hidden;width:100%}[data-open=true] .site-header__backdrop{opacity:1;-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-duration:var(--transition-duration-400);transition-duration:var(--transition-duration-400);-webkit-transition-timing-function:cubic-bezier(.5,1,.89,1);transition-timing-function:cubic-bezier(.5,1,.89,1);-webkit-transition-timing-function:var(--transition-ease-out);transition-timing-function:var(--transition-ease-out);visibility:visible}[data-theme=light] .site-header__backdrop{--backdrop-background:var(--color-gray-100)}[data-theme=dark] .site-header__backdrop{--backdrop-background:var(--color-gray-900)}.site-header__inner{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-left:auto;margin-right:auto;width:100%}.site-header__logo{background:transparent;border:none;color:var(--color-base);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.site-header__logo path{-webkit-transition:color .2s cubic-bezier(.45,0,.55,1);transition:color .2s cubic-bezier(.45,0,.55,1);-webkit-transition:color var(--transition-duration) var(--transition-easing);transition:color var(--transition-duration) var(--transition-easing)}.site-header__logo:focus [data-letter=D],.site-header__logo:focus [data-letter=N],.site-header__logo:focus [data-letter=S],.site-header__logo:hover [data-letter=D],.site-header__logo:hover [data-letter=N],.site-header__logo:hover [data-letter=S]{color:var(--color-primary)}.site-header__navigation{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%;left:0;opacity:0;position:fixed;top:0;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-duration:var(--transition-duration-300);transition-duration:var(--transition-duration-300);-webkit-transition-property:opacity,visibility;transition-property:opacity,visibility;-webkit-transition-timing-function:cubic-bezier(.45,0,.55,1);transition-timing-function:cubic-bezier(.45,0,.55,1);-webkit-transition-timing-function:var(--transition-easing);transition-timing-function:var(--transition-easing);visibility:hidden;width:100vw;z-index:10}[data-open=true] .site-header__navigation{opacity:1;-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-duration:var(--transition-duration-400);transition-duration:var(--transition-duration-400);visibility:visible}.site-header__navigation-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;opacity:0;overflow-y:auto;position:relative;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-duration:var(--transition-duration);transition-duration:var(--transition-duration);-webkit-transition-property:opacity,visibility;transition-property:opacity,visibility;-webkit-transition-timing-function:cubic-bezier(.45,0,.55,1);transition-timing-function:cubic-bezier(.45,0,.55,1);-webkit-transition-timing-function:var(--transition-easing);transition-timing-function:var(--transition-easing);visibility:hidden;z-index:1}[data-open=true] .site-header__navigation-content{opacity:1;visibility:visible}.site-header__button{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--color-background);border:1px solid var(--color-accent-border);border-radius:.25em;-webkit-box-shadow:0 0 .25em transparent;box-shadow:0 0 .25em transparent;color:var(--color-base);cursor:pointer;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-size:1rem;gap:.25rem;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;line-height:1.5;margin-left:2rem;margin-right:2rem;padding:clamp(.25rem,.2292rem + .1042vi,.3125rem) clamp(1rem,.9583rem + .2083vi,1.125rem);padding:var(--space-3xs) var(--space-s);-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-duration:var(--transition-duration);transition-duration:var(--transition-duration);-webkit-transition-property:background-color,border-color,color,-webkit-box-shadow;transition-property:background-color,border-color,color,-webkit-box-shadow;transition-property:background-color,border-color,box-shadow,color;transition-property:background-color,border-color,box-shadow,color,-webkit-box-shadow;-webkit-transition-timing-function:cubic-bezier(.45,0,.55,1);transition-timing-function:cubic-bezier(.45,0,.55,1);-webkit-transition-timing-function:var(--transition-easing);transition-timing-function:var(--transition-easing)}.site-header__button:focus,.site-header__button:hover{background-color:var(--color-primary);border-color:var(--color-primary);-webkit-box-shadow:0 0 .25em var(--color-primary);box-shadow:0 0 .25em var(--color-primary);color:var(--color-background)}.site-main{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.site-main__content{width:100%}.skip-link{left:0;margin:0;position:fixed;top:0;-webkit-transform:translate(-100%,-100%);transform:translate(-100%,-100%)}.skip-link:focus{-webkit-transform:translate(1rem,1rem);transform:translate(1rem,1rem)}.snippets{max-width:100%;overflow-x:auto}.snippets,.snippets table{width:100%}.snippets th{text-align:left}.stats{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:clamp(1rem,.9583rem + .2083vw,1.125rem);gap:clamp(1rem,.9583rem + .2083vi,1.125rem);gap:var(--space-s);max-width:75rem;width:100%}.stats .stat{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}@media(min-width:50em){.stats:has(.stat:nth-child(2n):last-child) .stat{-ms-flex-preferred-size:calc(50% - clamp(1rem,.9583rem + .2083vw,1.125rem) + clamp(1rem,.9583rem + .2083vw,1.125rem)/2);flex-basis:calc(50% - clamp(1rem,.9583rem + .2083vw,1.125rem) + clamp(1rem,.9583rem + .2083vw,1.125rem)/2);-ms-flex-preferred-size:calc(50% - clamp(1rem,.9583rem + .2083vi,1.125rem) + clamp(1rem,.9583rem + .2083vi,1.125rem)/2);flex-basis:calc(50% - clamp(1rem,.9583rem + .2083vi,1.125rem) + clamp(1rem,.9583rem + .2083vi,1.125rem)/2);-ms-flex-preferred-size:calc(50% - var(--space-s) + var(--space-s)/2);flex-basis:calc(50% - var(--space-s) + var(--space-s)/2)}}@media(min-width:50em){.stats:has(.stat:nth-child(odd):last-child) .stat{-ms-flex-preferred-size:calc(50% - clamp(1rem,.9583rem + .2083vw,1.125rem) + clamp(1rem,.9583rem + .2083vw,1.125rem)/2);flex-basis:calc(50% - clamp(1rem,.9583rem + .2083vw,1.125rem) + clamp(1rem,.9583rem + .2083vw,1.125rem)/2);-ms-flex-preferred-size:calc(50% - clamp(1rem,.9583rem + .2083vi,1.125rem) + clamp(1rem,.9583rem + .2083vi,1.125rem)/2);flex-basis:calc(50% - clamp(1rem,.9583rem + .2083vi,1.125rem) + clamp(1rem,.9583rem + .2083vi,1.125rem)/2);-ms-flex-preferred-size:calc(50% - var(--space-s) + var(--space-s)/2);flex-basis:calc(50% - var(--space-s) + var(--space-s)/2)}}@media(min-width:50em){.stats:has(.stat:nth-child(3n):last-child) .stat{-ms-flex-preferred-size:calc(33.33333% - clamp(1rem,.9583rem + .2083vw,1.125rem) + clamp(1rem,.9583rem + .2083vw,1.125rem)/3);flex-basis:calc(33.33333% - clamp(1rem,.9583rem + .2083vw,1.125rem) + clamp(1rem,.9583rem + .2083vw,1.125rem)/3);-ms-flex-preferred-size:calc(33.33333% - clamp(1rem,.9583rem + .2083vi,1.125rem) + clamp(1rem,.9583rem + .2083vi,1.125rem)/3);flex-basis:calc(33.33333% - clamp(1rem,.9583rem + .2083vi,1.125rem) + clamp(1rem,.9583rem + .2083vi,1.125rem)/3);-ms-flex-preferred-size:calc(33.33333% - var(--space-s) + var(--space-s)/3);flex-basis:calc(33.33333% - var(--space-s) + var(--space-s)/3)}}.stat>p{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.stat__statistic{display:block;font-size:clamp(1.6rem,.64rem + 4.83vw,4.5rem);font-size:var(--step-4);font-weight:700;font-weight:var(--font-weight-bold);line-height:1}.stat__statistic:after{background-image:var(--color-gradient);border-radius:.125rem;content:"";height:.125rem;width:100%}.stat__details,.stat__statistic:after{display:block;margin-top:clamp(.5rem,.4792rem + .1042vi,.5625rem);margin-top:var(--space-2xs)}.stat__details{font-size:clamp(1rem,.96rem + .21vw,1.13rem);font-size:var(--step-0);font-weight:400;font-weight:var(--font-weight-normal)}.tags{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:.25em;list-style:none;margin:0;padding:0}.tag{border-color:var(--color-accent-border);border-radius:1.5em;border-style:solid;border-width:2px;color:var(--color-accent);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-size:clamp(.89rem,.92rem + -.16vw,.8rem);font-size:var(--step-negative-1);line-height:1;padding:.5em 1em}.theme-switcher{border-top:1px solid var(--color-accent-border);margin-left:2rem;margin-right:2rem;opacity:0;padding:1rem 0;-webkit-transition-delay:.3s;transition-delay:.3s;-webkit-transition-delay:var(--transition-duration-300);transition-delay:var(--transition-duration-300);-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-duration:var(--transition-duration-400);transition-duration:var(--transition-duration-400);-webkit-transition-property:opacity,visibility;transition-property:opacity,visibility;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out;visibility:hidden}[data-open=true] .theme-switcher{opacity:1;visibility:visible}.theme-switcher__fieldset{border:none;display:-webkit-box;display:-ms-flexbox;display:flex;gap:.5rem;padding:0}.theme-switcher__legend{padding-bottom:.5em}.theme-switcher__option{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;position:relative}.theme-switcher__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:100%;left:0;position:absolute;top:0;width:100%}.theme-switcher__input:focus+.theme-switcher__label{-webkit-box-shadow:0 0 .25em var(--color-primary);box-shadow:0 0 .25em var(--color-primary)}.theme-switcher__input:checked+.theme-switcher__label{background-color:var(--color-primary);color:var(--color-background)}.theme-switcher__label{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:transparent;border:1px solid var(--color-accent-border);border-radius:.25em;-webkit-box-shadow:0 0 .25em transparent;box-shadow:0 0 .25em transparent;color:var(--color-base);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:1rem;gap:.25em;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:.25em .5em;position:relative;-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-duration:var(--transition-duration-400);transition-duration:var(--transition-duration-400);-webkit-transition-property:border-color,color,-webkit-box-shadow;transition-property:border-color,color,-webkit-box-shadow;transition-property:border-color,box-shadow,color;transition-property:border-color,box-shadow,color,-webkit-box-shadow;-webkit-transition-timing-function:cubic-bezier(.5,1,.89,1);transition-timing-function:cubic-bezier(.5,1,.89,1);-webkit-transition-timing-function:var(--transition-ease-out);transition-timing-function:var(--transition-ease-out)}.theme-switcher__label:hover{border-color:var(--color-primary);-webkit-box-shadow:0 0 .25em var(--color-primary);box-shadow:0 0 .25em var(--color-primary);color:var(--color-primary)}.home h1{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;line-height:1;text-transform:uppercase}.home h1 span:first-child{font-weight:300}.home h1 span:nth-child(2){font-weight:500}.home h1 span:nth-child(3){font-weight:700}.single--project .site-main__content{margin-top:-3.75rem;margin-top:calc(var(--height-header)*-1)}.single--project .single__header{position:relative}.single--project .single__heading{margin:0}.single--project .single__header-featured-image{inset:0;position:absolute}.single--project .single__header-featured-image img{border-radius:0;height:100%;inset:0;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;position:absolute;width:100%}.single--project .single__header-featured-image:after{background-color:var(--color-background);content:"";inset:0;opacity:.75;position:absolute}.single--project .single__header-content{margin-left:auto;margin-right:auto;max-width:75rem;position:relative}.single--project .single__meta dl{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:clamp(1rem,.7708rem + 1.1458vw,1.6875rem);gap:clamp(1rem,.7708rem + 1.1458vi,1.6875rem);gap:var(--space-s-m);-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin:0}.single--project .single__meta div{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.single--project .single__meta div,.single--project .single__meta dt{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:clamp(.5rem,.4792rem + .1042vw,.5625rem);gap:clamp(.5rem,.4792rem + .1042vi,.5625rem);gap:var(--space-2xs)}.single--project .single__meta dt{margin:0;padding:0}.single--project .single__meta dt:after{background-image:var(--color-gradient);border-radius:.125rem;content:"";display:block;height:.125rem;width:100%}.single--project .single__meta dd{margin:0;padding:0}.single--project .single__meta ul{list-style:none;margin:0;padding:0}.single__content,.single__header{padding:max(5vh,min(7.5vh,10vh)) max(5vw,min(7.5vw,10vw))}.single__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;min-height:80vh}.single__heading{margin:0 0 .25em}.single__date{color:var(--color-accent);margin-bottom:1em}.single__content>p:first-child{font-size:clamp(1.13rem,.97rem + .78vw,1.59rem);font-size:var(--step-1);font-weight:500;font-weight:var(--font-weight-medium)}
