@keyframes fadeUp{0%{opacity:0;transform:translateY(2rem)}to{opacity:1;transform:translateY(0)}}@keyframes sectionEnter{0%{opacity:0;transform:translateY(1.2rem)}to{opacity:1;transform:translateY(0)}}@keyframes sectionLeave{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-.8rem)}}@keyframes loadingScreenFadeOut{0%{opacity:1;visibility:visible}to{opacity:0;visibility:hidden}}@keyframes fadeDown{0%{opacity:0;transform:translateY(-2rem)}to{opacity:1;transform:translateY(0)}}@keyframes fadeRight{0%{opacity:0;transform:translateX(-2rem)}to{opacity:1;transform:translateX(0)}}@keyframes testimonialEnter{0%{opacity:0;transform:translateY(1.2rem)}to{opacity:1;transform:translateY(0)}}@keyframes testimonialLeave{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-.8rem)}}[data-animation-name=fadeDown],[data-animation-name=fadeUp]{opacity:0}[data-animation-name=fadeUp].animate{animation:fadeUp 460ms cubic-bezier(.22,1,.36,1)1 forwards}[data-animation-name=fadeDown].animate{animation:fadeDown 400ms ease-in-out 1 forwards}@media only screen and (max-width:1024px){[data-animation-name=fadeRight]{opacity:0}[data-animation-name=fadeRight].animate{animation:fadeRight 400ms ease-in-out 1 forwards}.menu__menu-item[data-animation-name=fadeRight],.menu__menu-item[data-animation-name=fadeRight].animate{animation:none!important;opacity:1}}.cta-strip{align-items:center;display:flex;flex-flow:wrap;gap:var(--space-l) var(--space-xl);margin-top:var(--space-xl)}.cta-strip__text{flex:1 1 auto}.cta-strip__heading{font-size:var(--font-size-xl);margin-bottom:var(--space-s)}.cta-strip p{color:var(--text-secondary);margin-bottom:0!important}.cta-strip__actions{display:flex;flex-shrink:0;gap:var(--space-m)}@media only screen and (max-width:600px){.cta-strip__actions{width:100%}.cta-strip__actions .button{flex:1 1 auto}}body:not([data-current-section=contact]) .grecaptcha-badge{visibility:hidden!important}.loading-screen{background:var(--background-primary);height:100vh;left:0;opacity:1;position:fixed;top:0;width:100vw;z-index:101}.loading-screen--hide{animation:loadingScreenFadeOut 280ms ease-out 1 forwards;pointer-events:none}.quote{margin:var(--space-xl)0;padding:var(--space-s)0 var(--space-s) var(--space-xl);position:relative}.quote::before{color:var(--colour-accent);content:"";font-family:bootstrap-icons;font-size:5rem;left:0;line-height:1;position:absolute;top:0}.quote__content{font-size:calc(var(--font-size-xl)*var(--quote-scale, 1));line-height:1.3;margin-bottom:var(--space-m)!important}.quote__citation{color:var(--text-secondary);font-size:var(--font-size-m);font-style:normal;line-height:1.4;letter-spacing:.02em}.section{display:none}.section--shown{display:block}.section--entering{animation:sectionEnter 380ms cubic-bezier(.22,1,.36,1)1 forwards;will-change:opacity,transform}.section--leaving{animation:sectionLeave 220ms ease-in 1 forwards;pointer-events:none;will-change:opacity,transform}@media (prefers-reduced-motion:reduce){.loading-screen--hide,.section--entering,.section--leaving,[data-animation-name=fadeDown].animate,[data-animation-name=fadeRight].animate,[data-animation-name=fadeUp].animate{animation:none!important;opacity:1!important;transform:none!important}}.section-heading{align-items:center;display:flex;font-size:var(--font-size-xxxxl);gap:var(--space-m);margin-bottom:var(--space-l)}.section-heading .dot-auto::after{color:var(--colour-accent);content:"."}.section-heading::after{border-top:1px solid var(--colour-neutral-550);content:"";flex:1 1 auto;opacity:.7}.screenshot-link{border-bottom:none!important;padding-bottom:0!important}.screenshot-link img{border:1px solid var(--colour-neutral-500);border-radius:var(--border-radius);box-shadow:var(--box-shadow-dark);height:auto;transform:translateY(0);transition:border-color 200ms ease-in-out,box-shadow 200ms ease-in-out,transform 200ms ease-in-out;width:100%}@media (hover:hover) and (pointer:fine){.screenshot-link:hover img{border-color:var(--colour-accent-400);box-shadow:var(--box-shadow-dark);transform:translateY(-4px)}}.screenshot-link img:where(.lazy){border:0}.testimonial{margin-bottom:var(--space-l)}@media only screen and (max-width:767px){.testimonial{padding:var(--space-m)}}.testimonial .quote{margin:0}.testimonial-carousel__track{display:grid;height:24rem}@media only screen and (max-width:767px){.testimonial-carousel__track{height:30rem}}.testimonial-carousel__slide{--quote-scale:1;align-items:center;display:flex;grid-area:1/1;opacity:0;visibility:hidden}.testimonial-carousel__slide.is-active{opacity:1;visibility:visible;z-index:1}.testimonial-carousel__slide.is-entering{animation:testimonialEnter 460ms cubic-bezier(.22,1,.36,1) 320ms both}.testimonial-carousel__slide.is-leaving{animation:testimonialLeave 320ms ease-in both;visibility:visible;z-index:0}.menu-bar:where(.animate){animation-delay:200ms}.menu-bar__menu-button{background:0 0;border:0;box-shadow:none;color:var(--text-primary);display:none;line-height:1;margin-left:auto;outline:0;padding:var(--space-s) var(--space-s)}.menu-bar__menu-button::before{-webkit-font-smoothing:antialiased;color:var(--text-primary);content:"";font-family:bootstrap-icons!important;font-size:var(--font-size-xl)!important;display:inline-block;text-rendering:auto;transition:transform 200ms ease-in-out}.menu-bar__menu-button::after{display:none}.menu-bar__menu-button:focus,.menu-bar__menu-button:hover{box-shadow:none}.menu-bar__menu{display:flex;flex-flow:row;list-style:none;margin:0 0 0 auto;padding:0}.menu__menu-item{line-height:1;margin-bottom:0;padding:0}.menu__menu-item::before{content:""}.menu-item__menu-link{color:var(--menu-text);font-family:var(--font-family-heading);font-size:var(--font-size-m);margin:var(--space-s) var(--space-m) calc(var(--space-s) - var(--space-s));padding-bottom:var(--space-s);text-decoration:none;transition:color 200ms ease-in-out,box-shadow 200ms ease-in-out}.menu__menu-item--active .menu-item__menu-link{box-shadow:inset 0-2px 0 0 var(--colour-accent)}@media (hover:hover) and (pointer:fine){.menu-item__menu-link:hover{color:var(--colour-accent-300)}}.menu-item__menu-link,.menu__menu-item--tools{align-items:center;display:flex}.tool-panel-button{margin:0!important;padding-bottom:0!important}@media only screen and (max-width:1024px){.tool-panel-button__label{clip:auto;clip-path:none;height:auto;overflow:visible;position:static;white-space:normal;width:auto}.menu-bar__menu-button{display:flex}.menu-bar--open .menu-bar__menu-button::before{content:"";transform:rotate(90deg)}.menu-bar__menu{backdrop-filter:blur(1.5rem);background:radial-gradient(circle at 100%0,rgba(255,100,170,.12),transparent 45%),linear-gradient(180deg,rgba(19,17,18,.98),rgba(16,15,15,.96));box-shadow:none;flex-flow:column;left:0;height:calc(100dvh - var(--menu-bar-height));opacity:0;overflow-y:auto;padding:var(--space-l);position:fixed;top:calc(var(--menu-bar-height) - 1px);transition:opacity 180ms ease-out,transform 180ms ease-out,visibility 0ms 180ms;transform:translateX(1.6rem);visibility:hidden;width:100vw}.menu-bar--open .menu-bar__menu{opacity:1;transform:translateX(0);transition:opacity 240ms ease-out,transform 240ms cubic-bezier(.22,1,.36,1),visibility 0ms 0ms;visibility:visible}.menu__menu-item{border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:0;margin-left:0;opacity:1;padding:var(--space-m)0;transform:translateX(.8rem);transition:transform 220ms cubic-bezier(.22,1,.36,1)}.menu-bar--open .menu__menu-item{transform:translateX(0)}.menu-bar--open .menu__menu-item:nth-child(1){transition-delay:20ms}.menu-bar--open .menu__menu-item:nth-child(2){transition-delay:50ms}.menu-bar--open .menu__menu-item:nth-child(3){transition-delay:80ms}.menu-bar--open .menu__menu-item:nth-child(4){transition-delay:110ms}.menu-bar--open .menu__menu-item:nth-child(5){transition-delay:140ms}.menu-bar--open .menu__menu-item:nth-child(6){transition-delay:170ms}.menu__menu-item--active{max-width:unset}.menu__menu-item--active .menu-item__menu-link{box-shadow:none;color:var(--colour-accent)}.menu-item__menu-link{font-size:var(--font-size-xl);margin:0}.menu-item__menu-link[data-animation-name=fadeRight]{animation-delay:100ms}.tool-panel-button::before{font-size:var(--font-size-xl)!important;margin-right:var(--space-m)}.menu__menu-item--tools{border-bottom:none;border-top:1px solid rgba(255,255,255,.08);border-left:none;margin-left:0;padding-left:0}.tool-panel-button{border-left:none!important;margin-left:0!important;padding-left:0!important}}@media (prefers-reduced-motion:reduce){.menu-bar__menu{transform:none!important;transition:opacity 100ms ease-out,visibility 0ms 100ms!important}.menu-bar--open .menu-bar__menu{transition:opacity 100ms ease-out,visibility 0ms 0ms!important}.menu-bar--open .menu__menu-item,.menu__menu-item{opacity:1!important;transition-delay:0ms!important;transform:none!important;transition:none!important}}