@charset "UTF-8";
:root {
  --space-3xs: clamp(0.25rem, 0.2411rem + 0.0446vi, 0.3125rem);
  --space-2xs: clamp(0.5rem, 0.4821rem + 0.0893vi, 0.625rem);
  --space-xs: clamp(0.75rem, 0.7232rem + 0.1339vi, 0.9375rem);
  --space-s: clamp(1rem, 0.9643rem + 0.1786vi, 1.25rem);
  --space-m: clamp(1.5rem, 1.4464rem + 0.2679vi, 1.875rem);
  --space-l: clamp(2rem, 1.9286rem + 0.3571vi, 2.5rem);
  --space-xl: clamp(3rem, 2.8929rem + 0.5357vi, 3.75rem);
  --space-2xl: clamp(4rem, 3.8571rem + 0.7143vi, 5rem);
  --space-3xl: clamp(5rem, 4.8214rem + 0.8929vi, 6.25rem);
  --space-4xl: clamp(6rem, 5.7857rem + 1.0714vi, 7.5rem);
  --space-5xl: clamp(7rem, 6.75rem + 1.25vi, 8.75rem);
  --space-6xl: clamp(8rem, 7.7143rem + 1.4286vi, 10rem);
  --space-7xl: clamp(9rem, 8.6786rem + 1.6071vi, 11.25rem);
  --space-8xl: clamp(10rem, 9.6429rem + 1.7857vi, 12.5rem);
  --space-3xs-2xs: clamp(0.25rem, 0.1964rem + 0.2679vi, 0.625rem);
  --space-2xs-xs: clamp(0.5rem, 0.4375rem + 0.3125vi, 0.9375rem);
  --space-xs-s: clamp(0.75rem, 0.6786rem + 0.3571vi, 1.25rem);
  --space-s-m: clamp(1rem, 0.875rem + 0.625vi, 1.875rem);
  --space-m-l: clamp(1.5rem, 1.3571rem + 0.7143vi, 2.5rem);
  --space-l-xl: clamp(2rem, 1.75rem + 1.25vi, 3.75rem);
  --space-xl-2xl: clamp(3rem, 2.7143rem + 1.4286vi, 5rem);
  --space-2xl-3xl: clamp(4rem, 3.6786rem + 1.6071vi, 6.25rem);
  --space-3xl-4xl: clamp(5rem, 4.6429rem + 1.7857vi, 7.5rem);
  --space-4xl-5xl: clamp(6rem, 5.6071rem + 1.9643vi, 8.75rem);
  --space-5xl-6xl: clamp(7rem, 6.5714rem + 2.1429vi, 10rem);
  --space-6xl-7xl: clamp(8rem, 7.5357rem + 2.3214vi, 11.25rem);
  --space-7xl-8xl: clamp(9rem, 8.5rem + 2.5vi, 12.5rem);
  --space-xs-m: clamp(0.75rem, 0.5893rem + 0.8036vi, 1.875rem);
  --space-4xl-8xl: clamp(6rem, 5.0714rem + 4.6429vi, 12.5rem);
  --space-s-l: clamp(1rem, 0.7857rem + 1.0714vi, 2.5rem);
  --space-2xl-8xl: clamp(4rem, 2.7857rem + 6.0714vi, 12.5rem);
}
@font-face {
  font-family: IBM Plex Sans;
  src: url(./assets/fonts/IBMPlexSans-Light.woff2) format("woff2");
  font-style: normal;
  font-weight: 300;
  font-display: swap;
}
@font-face {
  font-family: IBM Plex Mono;
  src: url(./assets/fonts/IBMPlexMono-Regular.woff2) format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: IBM Plex Sans;
  src: url(./assets/fonts/IBMPlexSans-Regular.woff2) format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: IBM Plex Sans;
  src: url(./assets/fonts/IBMPlexSans-Italic.woff2) format("woff2");
  font-style: italic;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: IBM Plex Sans;
  src: url(./assets/fonts/IBMPlexSans-Medium.woff2) format("woff2");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: IBM Plex Sans;
  src: url(./assets/fonts/IBMPlexSans-MediumItalic.woff2) format("woff2");
  font-style: italic;
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: IBM Plex Sans Condensed;
  src: url(./assets/fonts/IBMPlexSansCond-Light.woff2) format("woff2");
  font-style: normal;
  font-weight: 300;
  font-display: swap;
}
@font-face {
  font-family: IBM Plex Sans Condensed;
  src: url(./assets/fonts/IBMPlexSansCond-Regular.woff2) format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: IBM Plex Sans Condensed;
  src: url(./assets/fonts/IBMPlexSansCond-Medium.woff2) format("woff2");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}
:root {
  --initial-vh: 1vh;
  --actual-vh: 1vh;
  --body-font-size: 16px;
  --font-family-heading: "IBM Plex Sans Condensed", sans-serif;
  --font-family-body: "IBM Plex Sans", sans-serif;
  --body-background-color: var(--color-light-01);
  --body-text-color: var(--color-dark-01);
  --column-width: calc(
    (
        100vw - var(--container-padding) * 2 - var(--gutter) *
          (var(--columns) - 1)
      ) /
      var(--columns)
  );
  --column-width-gutter: calc(var(--column-width) + var(--gutter));
  --column-width-2-gutter: calc(var(--column-width) + var(--gutter) * 2);
  --site-header-height: calc(var(--space-2xl));
  --height-without-header: calc(
    var(--initial-vh) * 100 - var(--site-header-height)
  );
  --fast-start-easing: cubic-bezier(0.17, 0.67, 0.1, 0.99);
  --faster-start-easing: cubic-bezier(0.19, 1, 0.22, 1);
  --slow-start-easing: cubic-bezier(0.73, 0, 0, 1);
  --content-list-image-size: calc(var(--space-8xl) * 1.2);
  --color-image-background: var(--color-accent-01);
  --color-error: #fa5050;
  --color-dark-01: #0f131c;
  --color-dark-02: #1f283b;
  --color-dark-03: #364363;
  --color-light-01: #f2f5fa;
  --color-light-02: #eaf0f9;
  --color-grey-01: #cdd3e1;
  --color-grey-02: #7b8397;
  --color-accent-01: #9eaee9;
  --color-accent-02: #a2d1ce;
  --color-gradient-01: linear-gradient(
    to right,
    #7485ca 0%,
    #81b7d4 46%,
    #85c4c0 100%
  );
  --color-gradient-02: linear-gradient(to left, #83bccc 0%, #85c3c0 100%);
  --breakpoints-xs: 0;
  --breakpoints-sm: 768px;
  --breakpoints-md: 992px;
  --breakpoints-lg: 1440px;
  --breakpoints-xl: 1919px;
  --breakpoints-xxl: 2400px;
}
:root {
  --container-padding: 24px;
}
@media (min-width: 768px) {
  :root {
    --container-padding: 3vw;
  }
}
:root {
  --gutter: 10px;
}
@media (min-width: 768px) {
  :root {
    --gutter: 1vw;
  }
}
:root {
  --columns: 12;
}
*,
*:before,
*:after {
  box-sizing: border-box;
}
* {
  padding: 0;
  margin: 0;
}
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background-color: var(--body-background-color, #fff);
  color: var(--body-text-color, #000);
  font-family: var(--font-family-body);
  font-size: var(--body-font-size);
  font-weight: var(--body-font-weight, 400);
  line-height: var(--body-line-height, 1.5);
  -moz-tab-size: 4;
  -o-tab-size: 4;
  tab-size: 4;
  -webkit-tap-highlight-color: transparent;
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
img,
picture,
video,
canvas,
svg {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
}
article,
figure,
footer,
header,
aside,
main,
nav {
  display: block;
}
input,
button,
select,
optgroup,
textarea {
  color: var(--body-text-color, currentcolor);
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}
table {
  border-collapse: collapse;
}
a[href^="tel:"] {
  text-decoration: none !important;
}
a[href^="mailto:"] {
  -webkit-user-select: auto !important;
  -moz-user-select: auto !important;
  user-select: auto !important;
}
button,
[role="button"] {
  padding: 0;
  border: none;
  margin: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: none;
  box-shadow: none;
  color: inherit;
  cursor: pointer;
  font: inherit;
  text-align: left;
}
select {
  word-wrap: normal;
}
select:disabled {
  opacity: 1;
}
textarea {
  resize: vertical;
}
fieldset {
  min-width: 0;
  border: 0;
}
svg,
symbol {
  overflow: visible;
}
iframe {
  border: none;
}
dfn {
  font-style: normal;
}
abbr {
  text-decoration: none;
}
hr {
  height: 0;
  color: inherit;
}
code,
kbd,
samp,
pre {
  font-family:
    ui-monospace,
    SFMono-Regular,
    Consolas,
    Liberation Mono,
    Menlo,
    monospace;
  font-size: 1em;
}
sub,
sup {
  position: relative;
  font-size: 75%;
  line-height: 0;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
html.no-js body {
  display: none;
}
::-moz-selection {
  color: var(--color-dark-02);
  background: var(--color-accent-02);
  -webkit-background-clip: border-box;
  -webkit-text-fill-color: var(--color-dark-02);
}
::selection {
  color: var(--color-dark-02);
  background: var(--color-accent-02);
  -webkit-background-clip: border-box;
  -webkit-text-fill-color: var(--color-dark-02);
}
#site-content {
  position: relative;
  width: 100%;
}
a {
  color: currentcolor;
  outline: none;
  text-decoration: none;
  -webkit-touch-callout: none;
}
a:hover {
  text-decoration: none;
}
*:focus {
  outline: none;
}
ul {
  list-style: none;
}
:root {
  --fluid-10-14: clamp(0.625rem, 0.5893rem + 0.1786vi, 0.875rem);
  --fluid-12-16: clamp(0.75rem, 0.7143rem + 0.1786vi, 1rem);
  --fluid-22-78: clamp(1.375rem, 0.875rem + 2.5vi, 4.875rem);
  --h1: max(50px, calc(50px + 40 * ((100vw - 375px) / 1545)));
  --h2: max(30px, calc(30px + 20 * ((100vw - 375px) / 1545)));
  --h3: max(20px, calc(20px + 4 * ((100vw - 375px) / 1545)));
  --sub1: max(14px, calc(14px + 6 * ((100vw - 375px) / 1545)));
  --sub2: max(12px, calc(12px + 2 * ((100vw - 375px) / 1545)));
  --body1: 16px;
  --body2: max(12px, calc(12px + 2 * ((100vw - 375px) / 1545)));
  --btn1: max(14px, calc(14px + 2 * ((100vw - 375px) / 1545)));
  --link-header: 16px;
  --link-footer: max(14px, calc(14px + 2 * ((100vw - 375px) / 1545)));
  --input-text: 16px;
  --prose-h1: max(35px, calc(35px + 15 * ((100vw - 375px) / 1545)));
  --prose-h2: max(27px, calc(27px + 9 * ((100vw - 375px) / 1545)));
  --prose-h3: max(20px, calc(20px + 4 * ((100vw - 375px) / 1545)));
  --prose-caption: 14px;
  --prose-body: max(16px, min(calc(16px + 2 * ((100vw - 375px) / 1545)), 18px));
  --prose-body2: 16px;
  --prose-link: 18px;
}
.not-supported--content {
  position: absolute;
  top: 50%;
  left: 50%;
  display: none;
  transform: translate3d(-50%, -50%, 0);
}
html #not-supported-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  overflow: hidden;
  overscroll-behavior: none;
  touch-action: none;
  display: none;
}
html.not-supported #canvas,
html.not-supported #ui {
  display: none;
}
html.not-supported body,
html.not-supported #not-supported-container {
  display: block;
}
html.not-supported--device .not-supported--content#ns-device,
html.not-supported--browser .not-supported--content#ns-browser,
html.not-supported--webgl .not-supported--content#ns-webgl,
html.not-supported--orientation .not-supported--content#ns-orientation {
  z-index: 99999;
  display: block;
  padding: 10px;
  border: 1px solid var(--color-error);
}
.o-button {
  font-size: var(--btn1);
  font-family: var(--font-family-heading);
  font-weight: 500;
  display: inline-block;
  padding: var(--space-s) var(--space-m);
  color: var(--color, currentColor);
  position: relative;
  overflow: hidden;
  text-transform: uppercase;
  line-height: 1;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
.o-button:has(.o-icon) {
  padding-right: calc(var(--space-s) * 1.2);
}
@media (max-width: 767.98px) {
  .o-button {
    padding: calc(var(--space-s) * 0.8) calc(var(--space-m) * 0.8);
  }
  .o-button:has(.o-icon) {
    padding-right: calc(var(--space-s) * 1);
  }
}
.o-button:hover > span:nth-child(2) > span {
  transform: translate(calc(var(--fluid-12-16) * 0.9));
}
.o-button:hover > span:nth-child(2) > span div:first-child {
  transform: none;
}
.o-button:hover > span:nth-child(2) > span .o-icon:first-child {
  transform: translate(calc(-1 * var(--fluid-12-16)));
}
.o-button:hover > span:nth-child(2) > span .o-icon:last-child {
  transform: translate(calc(-1 * var(--fluid-12-16) + 2px));
}
.o-button > span > span {
  display: flex;
  transition: transform 1s var(--fast-start-easing);
}
.o-button > span > span span {
  background: var(--background, var(--color-dark-01));
  z-index: 1;
}
.o-button > span > span .o-icon:first-child {
  position: absolute;
}
.o-button > span > span .o-icon:first-child {
  transform: translate(-3px, 1px);
  transition: transform 1s var(--fast-start-easing);
}
.o-button > span > span .o-icon:last-child {
  transition: transform 1s var(--fast-start-easing);
}
.o-button:before {
  content: "";
  background: var(--background, var(--color-dark-01));
  z-index: -1;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  clip-path: polygon(
    var(--radius, 10px) 0,
    100% 0,
    100% 0,
    100% calc(100% - var(--radius, 10px)),
    calc(100% - var(--radius, 10px)) 100%,
    0 100%,
    0 100%,
    0 var(--radius, 10px)
  );
  transition: clip-path 1s var(--faster-start-easing);
}
.o-button > span:nth-child(1),
.o-button > span:nth-child(2) {
  pointer-events: none;
}
.o-button > span:nth-child(1):before,
.o-button > span:nth-child(1):after,
.o-button > span:nth-child(2):before,
.o-button > span:nth-child(2):after {
  content: "";
  width: 2px;
  height: var(--radius, 10px);
  background: currentColor;
  z-index: 1;
  position: absolute;
  transform-origin: 50% 50%;
  transition:
    transform 1s var(--faster-start-easing),
    opacity 1s var(--faster-start-easing);
}
.o-button > span:nth-child(1):before {
  top: var(--radius, 10px);
  left: var(--radius, 10px);
  transform: translate(-50%, -50%) rotate(45deg);
}
.o-button > span:nth-child(1):after {
  top: calc(100% - var(--radius, 10px));
  left: calc(100% - var(--radius, 10px));
  transform: translate(-50%, -50%) rotate(45deg);
}
.o-button > span:nth-child(2) {
  display: flex;
  align-items: center;
}
.o-button > span:nth-child(2):before {
  top: var(--radius, 10px);
  left: calc(100% - var(--radius, 10px));
  transform: translate(
      calc(-50% - var(--line-offset-animation, 20px)),
      calc(-50% - var(--line-offset-animation, 20px))
    )
    rotate(-45deg);
  opacity: 0;
}
.o-button > span:nth-child(2):after {
  top: calc(100% - var(--radius, 10px));
  left: var(--radius, 10px);
  transform: translate(
      calc(-50% + var(--line-offset-animation, 20px)),
      calc(-50% + var(--line-offset-animation, 20px))
    )
    rotate(-45deg);
  opacity: 0;
}
.o-button:hover:before {
  clip-path: polygon(
    0 0,
    calc(100% - var(--radius, 10px)) 0,
    100% var(--radius, 10px),
    100% 100%,
    100% 100%,
    var(--radius, 10px) 100%,
    0 calc(100% - var(--radius, 10px)),
    0 0
  );
}
.o-button:hover > span:nth-child(1):before {
  transform: translate(
      calc(-50% + var(--line-offset-animation, 20px)),
      calc(-50% - var(--line-offset-animation, 20px))
    )
    rotate(45deg);
  opacity: 0;
}
.o-button:hover > span:nth-child(1):after {
  transform: translate(
      calc(-50% - var(--line-offset-animation, 20px)),
      calc(-50% + var(--line-offset-animation, 20px))
    )
    rotate(45deg);
  opacity: 1;
}
.o-button:hover > span:nth-child(2):before {
  transform: translate(-50%, -50%) rotate(-45deg);
  opacity: 1;
}
.o-button:hover > span:nth-child(2):after {
  transform: translate(-50%, -50%) rotate(-45deg);
  opacity: 1;
}
.o-background {
  --radius: 20px;
  z-index: -1;
  position: absolute;
  top: 0;
  left: calc(0.25 * var(--container-padding));
  width: calc(100% + var(--container-padding) * -0.5);
  clip-path: polygon(
    var(--radius) 0,
    100% 0,
    100% calc(100% - var(--radius)),
    calc(100% - var(--radius)) 100%,
    0 100%,
    0 var(--radius)
  );
  height: 100%;
  background-color: var(--color-dark-01);
}
.o-background:before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 40%;
  background: linear-gradient(to bottom, var(--color-dark-01), #192130);
}
.o-foreground {
  --radius: 20px;
  z-index: 9994;
  pointer-events: none;
  position: absolute;
  top: 0;
  left: calc(0.25 * var(--container-padding));
  width: calc(100% + var(--container-padding) * -0.5);
  height: 100%;
}
.o-foreground:before {
  content: "";
  position: absolute;
  top: 80%;
  left: -1px;
  width: 100%;
  height: 100%;
  width: calc(var(--radius) * 0.5);
  height: calc(var(--radius) * 2);
  background: var(--body-background-color);
  clip-path: polygon(0 0, 100% 5px, 100% calc(100% - 5px), 0 100%, 0 0);
}
.o-foreground:after {
  content: "";
  position: absolute;
  top: 20%;
  right: -1px;
  width: 100%;
  height: 100%;
  width: calc(var(--radius) * 0.5);
  height: calc(var(--radius) * 2);
  background: var(--body-background-color);
  clip-path: polygon(0 0, 100% 5px, 100% calc(100% - 5px), 0 100%, 0 0);
  transform: rotate(180deg);
}
@media (max-width: 767.98px) {
  .o-foreground {
    --radius: 15px;
  }
}
.o-container {
  width: 100%;
  max-width: var(--grid-max-width);
  padding-right: var(--container-padding);
  padding-left: var(--container-padding);
  margin-right: auto;
  margin-left: auto;
}
.o-grid {
  display: grid;
  gap: var(--gutter-y, 0) var(--gutter-x, var(--gutter));
  grid-template-columns: repeat(var(--columns), 1fr);
  grid-template-rows: repeat(var(--rows, 1), 1fr);
}
.o-grid > * {
  grid-column: auto/span var(--column-span, var(--columns));
  grid-column-start: var(--column-start, auto);
}
.o-icon {
  display: inline-block;
  width: var(--fluid-12-16);
  flex-shrink: 0;
  fill: none;
  font-size: 0;
  stroke: currentcolor;
  stroke-width: var(--stroke-width, 1.4px);
  vertical-align: middle;
}
.o-icon__svg {
  width: 100%;
}
.job-list__department-header div:first-child,
.job-list__department-header div:last-child,
.o-label {
  display: inline-block;
  background: var(--theme, var(--color-accent-02));
  line-height: 1;
  color: var(--color-dark-01);
  padding: 3px;
}
.job-list__department-header div:first-child:before,
.job-list__department-header div:last-child:before,
.o-label:before {
  content: "[ ";
}
.job-list__department-header div:first-child:after,
.job-list__department-header div:last-child:after,
.o-label:after {
  content: " ]";
}
.o-reveal-childs > *,
.o-reveal {
  opacity: 1;
  transform: translateY(var(--reveal-y, var(--space-l)));
  transition:
    transform 1.25s cubic-bezier("easeOutCirc"),
    opacity 1s;
  transition-delay: calc(
    var(--index-delay, 0.05s) * var(--index, 0) + var(--stagger-delay, 0.5s) *
      var(--stagger, 0) + var(--global-delay) * 1s
  );
  will-change: opacity, transform;
}
.show-overlay .o-reveal-overlay > *,
.is-inview.o-reveal-childs > *,
.is-inview .o-reveal-childs > *,
.is-inview.o-reveal,
.is-inview .o-reveal {
  opacity: 1;
  transform: none;
}
.o-reveal-childs {
  overflow: hidden;
}
.o-reveal-childs > *:nth-child(n + 20) {
  --stagger: 20;
}
.o-reveal-overlay {
  overflow: hidden;
}
.o-reveal-overlay > * {
  transform: translateY(var(--reveal-y, var(--space-l)));
  transition: transform 0.9s 0s var(--faster-start-easing);
  will-change: opacity, transform;
}
.o-reveal-overlay > *:nth-child(n + 20) {
  --stagger: 20;
}
.show-overlay .o-reveal-overlay > * {
  transition:
    transform 1.5s cubic-bezier("easeOutCirc"),
    opacity 1s;
  will-change: transform, opacity;
  transition-delay: calc(
    var(--index-delay, 0.03s) * var(--index, 0) + var(--stagger-delay, 0.5s) *
      var(--stagger, 0) + var(--global-delay) * 1s
  );
}
.o-section {
  position: relative;
}
.o-text-gradient {
  background: linear-gradient(90deg, #446dcd, #4bb6d3, #6ef2cc);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.o-blog-preview {
  position: relative;
  display: block;
  padding: var(--space-xs);
  height: 100%;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
[data-theme="dark"] .o-blog-preview {
  color: var(--color-light-01);
}
[data-theme="dark"] .o-blog-preview:before {
  background: var(--color-dark-03);
}
[data-theme="dark"] .o-blog-preview:after {
  border: 1px solid var(--color-dark-03);
}
[data-theme="light"] .o-blog-preview {
  color: var(--color-dark-01);
}
[data-theme="light"] .o-blog-preview:before {
  background: var(--color-grey-01);
}
[data-theme="light"] .o-blog-preview:after {
  border: 1px solid var(--color-grey-01);
  background: var(--body-background-color);
}
.o-blog-preview:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  opacity: 0;
  transform: scale(0.999);
}
.o-blog-preview:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  transform: scale(0.999);
  border: 1px solid var(--color-dark-03);
  transition: transform 0.5s var(--fast-start-easing);
}
@media (hover: hover) {
  .o-blog-preview:hover:after {
    transform: scale(0.99);
  }
  .o-blog-preview:hover:before {
    opacity: 0.1;
    transform: scale(0.99);
  }
}
.o-blog-preview__inner {
  display: flex;
  flex-direction: column;
}
.o-blog-preview__image {
  height: 0;
  padding-bottom: 56.25%;
  background: var(--color-image-background);
  position: relative;
  overflow: hidden;
}
[data-theme="dark"] .o-blog-preview__image {
  background: var(--color-dark-02);
}
.o-blog-preview__image img {
  will-change: opacity, transform;
  opacity: 0;
  transition:
    opacity 1s,
    transform 1s var(--fast-start-easing);
  transform: scale(1.1);
}
.o-blog-preview__image img.is-loaded {
  opacity: 1;
  transform: none;
}
.o-blog-preview__image img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}
.o-blog-preview:hover .o-blog-preview__image img {
  transform: scale(1.02);
}
.o-blog-preview__meta {
  color: var(--color-grey-02);
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  font-size: 13px;
  margin-top: var(--space-xs);
  line-height: 1;
}
.o-blog-preview__meta-date {
  font-size: var(--sub2);
  font-weight: 500;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
}
.o-blog-preview__meta-author {
  font-size: var(--sub2);
  font-weight: 500;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  text-align: right;
  max-width: 20ch;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.o-blog-preview__title {
  font-size: var(--h3);
  line-height: 1.25;
  font-weight: 400;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  margin-top: var(--space-m);
  margin-bottom: var(--space-xl);
  max-width: 30ch;
}
.o-blog-preview__caption {
  font-size: var(--sub2);
  font-weight: 500;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  position: absolute;
  bottom: var(--space-xs);
  left: var(--space-xs);
}
.o-prose {
  word-break: break-word;
  overflow-wrap: break-word;
  hyphens: auto;
  width: 100%;
}
.o-prose > *:first-child {
  margin-top: 0;
}
.o-prose blockquote,
.o-prose li,
.o-prose p {
  font-size: var(--prose-body);
}
.o-prose h2 {
  font-size: var(--prose-h2);
  font-weight: 500;
}
.o-prose h2 a {
  text-decoration: none;
}
.o-prose h2:hover a {
  text-decoration: underline;
}
.o-prose h3 {
  font-size: var(--prose-h3);
  font-weight: 500;
}
.o-prose > * + * {
  margin-top: var(--space-xs);
}
.o-prose a {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.o-prose h2,
.o-prose h3,
.o-prose h4,
.o-prose h5 {
  margin-top: var(--space-xl);
  line-height: 1.2;
  margin-bottom: var(--space-l);
}
.o-prose iframe,
.o-prose video {
  margin-top: var(--space-xs);
  width: calc(100% + 2 * var(--container-padding));
  max-width: calc(100% + 2 * var(--container-padding));
  margin-left: calc(-1 * var(--container-padding));
  margin-right: calc(-1 * var(--container-padding));
}
@media (min-width: 768px) {
  .o-prose iframe,
  .o-prose video {
    margin-left: calc(-1 * var(--space-m-l));
    margin-right: calc(-1 * var(--space-m-l));
    width: calc(100% + 2 * var(--space-m-l));
    max-width: calc(100% + 2 * var(--space-m-l));
  }
}
.o-prose iframe {
  height: 60vw;
}
@media (min-width: 768px) {
  .o-prose iframe {
    height: 40vw;
  }
}
@media (min-width: 992px) {
  .o-prose iframe {
    height: 35vw;
  }
}
@media (min-width: 1440px) {
  .o-prose iframe {
    height: 25vw;
  }
}
.o-prose ul,
.o-prose ol {
  list-style-position: inside;
  margin-bottom: var(--space-xl);
  margin-top: var(--space-m);
}
.o-prose ul li,
.o-prose ol li {
  margin-top: var(--space-xs);
}
.o-prose ul ul,
.o-prose ul ol,
.o-prose ol ul,
.o-prose ol ol {
  margin-top: var(--space-xs);
  margin-bottom: 0;
}
.o-prose ul li {
  padding-left: 0.75em;
  position: relative;
}
.o-prose ul li:before {
  content: "";
  position: absolute;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background-color: currentColor;
  top: 0.75em;
  left: 0;
  transform: translateY(-50%);
}
.o-prose .custom-table {
  --padding-left: var(--container-padding);
  --padding-right: var(--container-padding);
  margin-top: var(--space-l);
  margin-bottom: var(--space-l);
  width: 100%;
  overflow-x: scroll;
  width: calc(100% + var(--padding-left) + var(--padding-right));
  padding-right: var(--padding-right);
  padding-left: var(--padding-left);
  margin-left: calc(-1 * var(--padding-left));
  margin-right: calc(-1 * var(--padding-right));
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.o-prose .custom-table::-webkit-scrollbar {
  display: none;
}
@media (min-width: 768px) {
  .o-prose .custom-table {
    --padding-left: calc(
      var(--column-width-gutter) + var(--space-m-l) + var(--container-padding)
    );
    --padding-right: calc(
      var(--column-width-gutter) + var(--space-m-l) + var(--container-padding)
    );
  }
}
@media (min-width: 992px) {
  .o-prose .custom-table {
    --padding-left: calc(var(--container-padding) + var(--space-m-l));
    --padding-right: var(--space-m-l);
  }
}
@media (min-width: 1440px) {
  .o-prose .custom-table {
    --padding-left: calc(
      var(--column-width-gutter) * 2 + var(--space-m-l) +
        var(--container-padding)
    );
    --padding-right: var(--space-m-l);
  }
}
.o-prose .custom-table th {
  background-color: var(--color-light-02);
  text-transform: uppercase;
  font-weight: 500;
  text-align: left;
  line-height: 1.2;
}
.o-prose .custom-table th,
.o-prose .custom-table td {
  --width: calc(50vw - var(--padding-left) * 1 - 1px);
  padding: var(--space-s) var(--space-m);
  border: 1px solid var(--color-grey-01);
  vertical-align: top;
  font-size: 14px;
  min-width: var(--width);
  width: var(--width);
  max-width: var(--width);
}
@media (min-width: 992px) {
  .o-prose .custom-table th,
  .o-prose .custom-table td {
    --width: calc(
      var(--column-width) * 4 - var(--space-m-l) * 1 + var(--gutter) * 3.5 - 1px
    );
  }
}
@media (min-width: 1440px) {
  .o-prose .custom-table th,
  .o-prose .custom-table td {
    --width: calc(
      var(--column-width) * 3 - var(--space-m-l) * 1 + var(--gutter) * 2.5 - 1px
    );
  }
}
@media (min-width: 2400px) {
  .o-prose .custom-table th,
  .o-prose .custom-table td {
    --width: calc(
      var(--column-width) * 2.5 - var(--space-m-l) * 1 + var(--gutter) * 2 - 1px
    );
  }
}
.o-prose .image {
  display: block;
  position: relative;
  padding-bottom: calc(
    var(--height) / var(--width) * (100% + 2 * var(--container-padding))
  );
  margin-top: var(--space-m);
  width: calc(100% + 2 * var(--container-padding));
  max-width: calc(100% + 2 * var(--container-padding));
  margin-left: calc(-1 * var(--container-padding));
  margin-right: calc(-1 * var(--container-padding));
  background-color: var(--color-image-background);
  overflow: hidden;
}
@media (min-width: 768px) {
  .o-prose .image {
    margin-left: calc(-1 * var(--space-m-l));
    margin-right: calc(-1 * var(--space-m-l));
    padding-bottom: calc(
      var(--height) / var(--width) * (100% + 2 * var(--space-m-l))
    );
    width: calc(100% + 2 * var(--space-m-l));
    max-width: calc(100% + 2 * var(--space-m-l));
  }
}
.o-prose .image img {
  will-change: opacity, transform;
  opacity: 0;
  transition:
    opacity 1s,
    transform 1s var(--fast-start-easing);
  transform: scale(1.1);
}
.o-prose .image img.is-loaded {
  opacity: 1;
  transform: none;
}
.o-prose .image img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}
.o-prose .image + p {
  margin-top: var(--space-m);
}
.o-prose .accordion {
  margin: var(--space-xl) 0;
}
.o-prose .accordion .accordion__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  line-height: 1;
  padding: var(--space-xs) var(--space-s);
  background: var(--color-grey-01);
  position: relative;
  font-weight: 500;
  font-size: var(--h3);
}
.o-prose .accordion .o-icon {
  transition: transform 0.5s var(--fast-start-easing);
  transform: rotate(-90deg) scaleX(-1);
  width: var(--space-l);
}
.o-prose .accordion[aria-expanded="true"] .o-icon {
  transform: rotate(-90deg) scaleX(1);
}
.o-prose .accordion .accordion__body {
  display: none;
  padding: 0 var(--space-s) var(--space-s);
  border: 1px solid var(--color-grey-01);
  border-top: 0;
  padding-top: 1px;
}
.o-prose .accordion .accordion__body > ol:last-child,
.o-prose .accordion .accordion__body > ul:last-child {
  margin-bottom: 0;
}
.o-prose pre code {
  font-size: 13px !important;
}
.o-prose code:not(pre code) {
  background-color: var(--color-light-02);
  padding: 0.2em 0.4em;
  color: #4b69d6;
  font-size: 16px;
  border-radius: 0.2em;
}
.o-prose blockquote {
  --line-extension: 5px;
  position: relative;
  padding-left: calc(var(--space-xl));
  margin: var(--space-xl) 0;
}
.o-prose blockquote:before {
  top: calc(var(--line-extension) * -1);
  left: 7px;
  height: calc(100% + var(--line-extension) * 2);
  width: 5px;
  content: "";
  position: absolute;
  background: #cdd3e1;
  border-radius: 9999px;
}
.o-prose .quote {
  position: relative;
  padding-left: calc(var(--space-xl));
  font-size: var(--h3);
  margin: var(--space-xl) 0;
}
.o-prose .quote:before {
  content: "“";
  font-size: 3em;
  font-style: normal;
  line-height: 1;
  color: var(--color-grey-02);
  position: absolute;
  top: 0;
  font-weight: 300;
  left: 0;
}
.o-prose .quote .quote__text {
  margin-bottom: var(--space-s);
  font-style: italic;
}
.o-prose .quote .quote__author {
  font-weight: 500;
  color: var(--color-grey-02);
  font-size: 14px;
  text-transform: uppercase;
}
.page {
  opacity: 0;
}
.page__inner {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: calc(var(--vh, 1vh) * 100 - var(--site-header-height));
}
#canvas {
  display: none;
  pointer-events: auto;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  overflow: hidden;
  overscroll-behavior: none;
  touch-action: none;
}
.is-ready #canvas {
  display: block;
}
#site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: var(--site-header-height);
  display: flex;
  align-items: center;
  z-index: 9995;
  text-transform: uppercase;
  background: var(--body-background-color);
  line-height: 1;
}
#site-header:before {
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background: var(--color-grey-01);
  transition: opacity 0.2s;
}
body:has(.page#tpl-home) #site-header.no-border:before {
  opacity: 0;
}
#site-header__wrapper {
  display: flex;
  align-items: center;
  height: 100%;
}
#site-header__logo {
  margin-right: auto;
  padding-right: var(--space-m);
  pointer-events: none;
}
#site-header__logo a {
  display: flex;
  align-items: center;
  pointer-events: auto;
}
#site-header__logo .o-icon {
  pointer-events: none;
  margin-right: var(--space-2xs);
  stroke: none;
  fill: var(--color-dark-01);
  width: var(--space-5xl-6xl);
}
#site-header__logo-text {
  font-size: var(--link-header);
  font-family: var(--font-family-body);
  text-transform: uppercase;
  font-weight: 500;
  line-height: 1;
}
#site-header__menu {
  position: relative;
  height: 100%;
  margin-right: var(--space-m);
}
#site-header__menu:hover #site-header__menu-wrapper {
  pointer-events: auto;
  transition: z-index 0s;
  z-index: 1;
}
#site-header__menu:hover #site-header__menu-wrapper:before {
  transform: translateY(0);
}
#site-header__menu:hover #site-header__menu-wrapper-inner-inner {
  pointer-events: auto;
  transform: translateY(0);
}
#site-header__menu:hover #site-header__menu-wrapper-inner {
  transform: translateY(0);
}
#site-header__menu:hover #site-header__menu-wrapper-inner:before {
  transform: none;
}
@media (max-width: 767.98px) {
  #site-header__menu {
    display: none;
  }
}
#site-header__menu li:hover div:first-child {
  transform: none;
  opacity: 1;
}
#site-header__menu li:hover a {
  transform: none;
}
#site-header__menu li:hover div:last-child {
  transform: translate(calc(-1 * var(--link-header) + 2px));
}
#site-header__menu li div:first-child {
  transform: translate(calc(var(--link-header) - 3px), 1px);
  transition: transform 1s var(--fast-start-easing);
}
#site-header__menu li a {
  transform: translate(calc(-1 * var(--link-header)));
  transition: transform 1s var(--fast-start-easing);
}
#site-header__menu li span {
  background: var(--body-background-color);
  display: block;
  z-index: 1;
}
#site-header__menu li div:last-child {
  transition: transform 1s var(--fast-start-easing);
}
#site-header__menu-button {
  font-size: var(--link-header);
  font-family: var(--font-family-body);
  text-transform: uppercase;
  font-weight: 500;
  line-height: 1;
  display: flex;
  align-items: center;
}
#site-header__menu-button > span {
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
#site-header__menu-button .o-icon {
  width: var(--link-header);
  height: var(--link-header);
  transform-origin: 8px 5.6px;
  transform-origin: 50% 35.53125%;
  transition: transform 1s var(--fast-start-easing);
}
#site-header__menu:hover #site-header__menu-button .o-icon {
  transform: rotate(90deg);
}
#site-header__menu-button path:last-child {
  transform-origin: 50% 35.53125%;
  transition: transform 1s var(--fast-start-easing);
}
#site-header__menu:hover #site-header__menu-button path:last-child {
  transform: rotate(90deg);
}
#site-header__menu-wrapper {
  position: absolute;
  top: calc(50% - 1px);
  left: calc(-1 * var(--space-s));
  padding-top: calc(var(--site-header-height) * 0.5);
  pointer-events: none;
  z-index: -1;
  transition: z-index 3s;
}
#site-header__menu-wrapper:before {
  content: "";
  z-index: 1;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-bottom: 1px solid var(--color-grey-01);
  transition:
    transform 1s var(--fast-start-easing),
    opacity 1s 1s var(--fast-start-easing);
  transform: translateY(calc(-100% + var(--site-header-height) * 0.5 + 1px));
  pointer-events: none;
  opacity: 0;
}
#site-header__menu:hover #site-header__menu-wrapper:before {
  transition:
    transform 1s var(--fast-start-easing),
    opacity 0.2s var(--fast-start-easing);
  opacity: 1;
}
#site-header__menu-wrapper-inner {
  overflow: hidden;
  transition: transform 1s var(--fast-start-easing);
  transform: translateY(calc(-100% + -0px));
  pointer-events: none;
}
#site-header__menu-wrapper-inner-inner {
  transition: transform 1s var(--fast-start-easing);
  transform: translateY(100%);
  position: relative;
}
#site-header__menu-wrapper-inner-inner:before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, 1px) scaleX(0.2);
  width: 100%;
  opacity: 0;
  height: 1px;
  background: var(--color-grey-01);
  z-index: 1000;
  transition:
    transform 1s var(--fast-start-easing),
    opacity 1s var(--fast-start-easing);
}
#site-header__menu:hover #site-header__menu-wrapper-inner-inner:before {
  transition:
    transform 1s var(--fast-start-easing),
    opacity 0s var(--fast-start-easing);
  transform: translate(-50%) scaleX(0.76);
  opacity: 1;
}
#site-header__menu-wrapper-inner-inner ul {
  padding-top: var(--space-s);
  position: relative;
  display: flex;
  flex-direction: column;
  z-index: 1;
  padding: calc(var(--space-m) * 0.75);
}
#site-header__menu-wrapper-inner-inner ul:before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%);
  display: block;
  width: calc(100% - var(--space-s) * 2);
  height: 1px;
  background: var(--color-grey-01);
}
#site-header__menu-wrapper-inner-inner ul:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--body-background-color);
  display: block;
  transform-origin: 50% 0;
  transition: transform 0.75s 0.5s var(--fast-start-easing);
  border-left: 1px solid var(--color-grey-01);
  border-right: 1px solid var(--color-grey-01);
}
#site-header__menu-wrapper-inner-inner li {
  font-size: var(--link-header);
  font-family: var(--font-family-body);
  text-transform: uppercase;
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
  position: relative;
  z-index: 1;
  padding: calc(var(--space-m) * 0.75 / 2) 0;
}
#site-header__menu-wrapper-inner-inner li:first-child {
  padding-top: 0;
}
#site-header__menu-wrapper-inner-inner li:last-child {
  padding-bottom: 0;
}
#site-header__menu-wrapper-inner-inner a {
  display: flex;
  align-items: center;
}
#site-header__menu-wrapper-inner-inner a .o-icon {
  width: var(--link-header);
  height: var(--link-header);
}
#site-header__menu-list {
  position: relative;
  z-index: 1;
  display: flex;
  gap: var(--space-m);
  line-height: 1;
}
#site-header__menu-list li {
  font-size: var(--link-header);
  font-family: var(--font-family-body);
  text-transform: uppercase;
  font-weight: 500;
  line-height: 1;
  position: relative;
}
#site-header__menu-list li:before,
#site-header__menu-list li:after {
  position: absolute;
  top: 50%;
  transition:
    transform 1s var(--fast-start-easing),
    opacity 1s var(--fast-start-easing);
  opacity: 0;
}
#site-header__menu-list li:before {
  content: "[";
  left: 0;
  transform: translate(-0.5em, -50%);
}
#site-header__menu-list li:after {
  content: "]";
  right: 0;
  transform: translate(0.5em, -50%);
}
@media (hover: hover) {
  #site-header__menu-list li:not(:last-child):hover:before {
    transition:
      transform 1s var(--fast-start-easing),
      opacity 0s var(--fast-start-easing);
    transform: translate(-0.35em, -50%);
    opacity: 1;
  }
  #site-header__menu-list li:not(:last-child):hover:after {
    transition:
      transform 1s var(--fast-start-easing),
      opacity 0s var(--fast-start-easing);
    transform: translate(0.35em, -50%);
    opacity: 1;
  }
}
html:has(.page#tpl-blogList)
  #site-header__menu-list
  li:has(a[href="/blog/1"]):before,
html:has(.page#tpl-contact)
  #site-header__menu-list
  li:has(a[href="/contact"]):before {
  opacity: 1;
  transform: translate(-0.35em, -50%);
}
html:has(.page#tpl-blogList)
  #site-header__menu-list
  li:has(a[href="/blog/1"]):after,
html:has(.page#tpl-contact)
  #site-header__menu-list
  li:has(a[href="/contact"]):after {
  opacity: 1;
  transform: translate(0.35em, -50%);
}
#site-header__menu-list a {
  display: flex;
  align-items: center;
}
#site-header__menu-list .o-icon {
  width: var(--link-header);
  height: var(--link-header);
}
@media (max-width: 767.98px) {
  #site-header__menu-list {
    display: none;
  }
}
#site-header__menu-list li:last-child:hover div:first-child {
  transform: none;
  opacity: 1;
}
#site-header__menu-list li:last-child:hover a {
  transform: none;
}
#site-header__menu-list li:last-child:hover div:last-child {
  transform: translate(calc(-1 * var(--link-header) + 2px));
}
#site-header__menu-list li:last-child div:first-child {
  transform: translate(calc(var(--link-header) - 3px), 1px);
  transition: transform 1s var(--fast-start-easing);
}
#site-header__menu-list li:last-child a {
  transform: translate(calc(-1 * var(--link-header)));
  transition: transform 1s var(--fast-start-easing);
}
#site-header__menu-list li:last-child span {
  background: var(--body-background-color);
  display: block;
  z-index: 1;
}
#site-header__menu-list li:last-child div:last-child {
  transition: transform 1s var(--fast-start-easing);
}
#site-header__cta {
  --radius: 10px;
  --line-offset-animation: 20px;
  --background: var(--color-dark-01);
  --color: var(--color-light-02);
  margin-left: var(--space-5xl);
  line-height: 0;
}
@media (min-width: 768px) and (max-width: 991.98px) {
  #site-header__cta {
    margin-left: auto;
  }
}
@media (max-width: 767.98px) {
  #site-header__cta {
    display: none;
  }
}
#site-header__menu-mobile-button {
  display: flex;
  align-items: center;
  line-height: 1;
  cursor: pointer;
}
#site-header__menu-mobile-button .o-icon {
  width: 17px;
  stroke-width: 1.5px;
  transform-origin: 50% 35.53125%;
  transition: transform 1s var(--fast-start-easing);
}
.menu-open #site-header__menu-mobile-button .o-icon {
  transform: rotate(90deg);
}
#site-header__menu-mobile-button .o-icon path:last-child {
  transform-origin: 50% 35.53125%;
  transition: transform 1s var(--fast-start-easing);
}
.menu-open #site-header__menu-mobile-button .o-icon path:last-child {
  transform: rotate(90deg);
}
@media (min-width: 768px) {
  #site-header__menu-mobile-button {
    display: none;
  }
}
#site-header__menu-mobile-wrapper {
  position: absolute;
  top: var(--site-header-height);
  left: 0;
  width: 100%;
  transform: translateY(-100%);
  overflow: hidden;
  pointer-events: none;
  transition: transform 1s var(--fast-start-easing);
  background: red;
  background: var(--body-background-color);
  z-index: -1;
}
#site-header__menu-mobile-wrapper:before {
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  height: 1px;
  width: 100%;
}
.menu-open #site-header__menu-mobile-wrapper {
  transform: translateY(0);
  pointer-events: auto;
}
@media (min-width: 768px) {
  #site-header__menu-mobile-wrapper {
    display: none;
  }
}
#site-header__menu-mobile-wrapper-inner {
  padding: var(--container-padding);
  padding-top: calc(var(--container-padding) * 1.75);
  display: flex;
  flex-wrap: wrap;
  gap: calc(var(--space-m) * 1.5);
  font-weight: 500;
  line-height: 1;
  transform: translateY(100%);
  transition: transform 1s var(--fast-start-easing);
  z-index: 10;
}
.menu-open #site-header__menu-mobile-wrapper-inner {
  transform: translateY(0);
}
#site-header__menu-mobile-wrapper-inner > div:first-child {
  font-size: 21px;
  width: 100%;
  color: var(--color-grey-02);
}
#site-header__menu-mobile-wrapper-inner > div:nth-child(2) {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-m);
  margin-bottom: var(--space-s);
}
#site-header__menu-mobile-wrapper-inner > a {
  width: 100%;
  position: relative;
  font-size: 21px;
  display: flex;
  align-items: center;
  pointer-events: auto;
  transition: transform 1s var(--fast-start-easing);
}
html:has(.page#tpl-blogList)
  #site-header__menu-mobile-wrapper-inner
  > a[href="/blog/1"],
html:has(.page#tpl-contact)
  #site-header__menu-mobile-wrapper-inner
  > a[href="/contact"] {
  transform: translate(0.6ch);
}
#site-header__menu-mobile-wrapper-inner > a .o-icon {
  width: 21px;
  stroke-width: 1.5px;
}
#site-header__menu-mobile-wrapper-inner > a span {
  position: relative;
}
#site-header__menu-mobile-wrapper-inner > a span:before,
#site-header__menu-mobile-wrapper-inner > a span:after {
  position: absolute;
  top: 50%;
  transition:
    transform 1s var(--fast-start-easing),
    opacity 1s var(--fast-start-easing);
  opacity: 0;
}
#site-header__menu-mobile-wrapper-inner > a span:before {
  content: "[";
  left: 0;
  transform: translate(-0.5em, calc(-50% - 0.05em));
}
#site-header__menu-mobile-wrapper-inner > a span:after {
  content: "]";
  right: 0;
  transform: translate(0.5em, calc(-50% - 0.05em));
}
html:has(.page#tpl-blogList)
  #site-header__menu-mobile-wrapper-inner
  > a[href="/blog/1"]
  span:before,
html:has(.page#tpl-contact)
  #site-header__menu-mobile-wrapper-inner
  > a[href="/contact"]
  span:before {
  opacity: 1;
  transform: translate(-0.35em, calc(-50% - 0.05em));
}
html:has(.page#tpl-blogList)
  #site-header__menu-mobile-wrapper-inner
  > a[href="/blog/1"]
  span:after,
html:has(.page#tpl-contact)
  #site-header__menu-mobile-wrapper-inner
  > a[href="/contact"]
  span:after {
  opacity: 1;
  transform: translate(0.35em, calc(-50% - 0.05em));
}
#site-header__menu-mobile-wrapper-inner > div > span {
  width: 45%;
  display: flex;
  align-items: center;
}
#site-header__menu-mobile-wrapper-inner > div > span .o-icon {
  margin-top: -3px;
  width: 16px;
  stroke-width: 1.5px;
}
#site-header__menu-mobile-wrapper-inner > div {
  width: 100%;
}
#site-header__menu-mobile-wrapper-inner .o-button {
  --color: var(--color-light-02);
  --background: var(--color-dark-01);
  width: 100%;
  z-index: 1;
}
#site-header__menu-mobile-wrapper-inner .o-button span {
  justify-content: center;
  align-items: center;
}
#site-header__mobile-background {
  position: fixed;
  top: var(--site-header-height);
  left: 0;
  bottom: 0;
  right: 0;
  background: #000;
  opacity: 0;
  pointer-events: none;
  transition: opacity 1s var(--fast-start-easing);
  z-index: -1;
}
.menu-open #site-header__mobile-background {
  opacity: 0.5;
  pointer-events: auto;
}
@media (min-width: 768px) {
  #site-header__mobile-background {
    opacity: 0 !important;
    pointer-events: none !important;
  }
}
#site-footer {
  position: relative;
}
#site-footer:before {
  content: "+++";
  font-family:
    IBM Plex Mono,
    monospace;
  line-height: 1;
  position: absolute;
  top: calc(var(--container-padding) * 1.5);
  left: calc(var(--container-padding) * 1 + var(--column-width-gutter));
  color: var(--color-dark-03);
}
@media (max-width: 767.98px) {
  #site-footer:before {
    top: calc(var(--container-padding) * 2.5);
    font-size: 23px;
  }
}
@media (min-width: 768px) {
  #site-footer:before {
    font-size: 28px;
  }
}
@media (min-width: 1440px) {
  #site-footer:before {
    top: calc(var(--container-padding) * 1);
    left: calc(var(--container-padding) * 1.5);
    color: var(--color-light-02);
  }
}
@media (min-width: 1919px) {
  #site-footer:before {
    left: calc(var(--container-padding) * 1 + var(--column-width-gutter));
    color: var(--color-light-02);
  }
}
#site-footer__top {
  position: relative;
  color: #fff;
  padding: var(--space-5xl) 0 var(--space-3xl);
}
@media (min-width: 768px) {
  #site-footer__top {
    padding: var(--space-4xl) 0 var(--space-3xl);
  }
}
@media (min-width: 1440px) {
  #site-footer__top {
    padding: var(--space-6xl) 0;
  }
}
#site-footer__top-title {
  font-size: var(--h1);
  line-height: 1.07;
  font-weight: 300;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
}
#site-footer__top-title-devin-desktop {
  display: flex !important;
  align-items: center;
}
@media (max-width: 767.98px) {
  #site-footer__top-title-devin-desktop {
    display: none !important;
  }
}
#site-footer__top-title-devin-desktop span {
  background: var(--color-gradient-02);
  background-repeat: no-repeat;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  color: transparent;
}
#site-footer__top-title-devin-desktop span:first-child {
  background-position: 0 100%;
  background-size: 15ch 100%;
}
#site-footer__top-title-devin-desktop span:nth-child(2) {
  background-position: 0ch 100%;
  background-size: 30ch 100%;
  margin-left: 0.33ch;
}
#site-footer__top-title-devin-desktop span:nth-child(3) {
  background-position: -15ch 100%;
  background-size: 50ch 20ch;
}
#site-footer__top-title-devin-desktop span:nth-child(4) {
  background-position: -40ch 100%;
  background-size: 50ch 100%;
}
#site-footer__top-title-devin-mobile {
  display: none;
  flex-direction: column;
}
@media (max-width: 767.98px) {
  #site-footer__top-title-devin-mobile {
    display: flex;
  }
}
#site-footer__top-title-devin-mobile > span:nth-child(2) {
  align-items: center;
  display: flex;
  flex-direction: row;
}
#site-footer__top-title-devin-mobile span span {
  background: var(--color-gradient-01);
  background-repeat: no-repeat;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  color: transparent;
}
#site-footer__top-title-devin-mobile span span:first-child {
  background-position: 0 100%;
  background-size: 15ch 100%;
}
#site-footer__top-title-devin-mobile span span:nth-child(2) {
  background-position: 0ch 100%;
  background-size: 30ch 100%;
}
#site-footer__top-title-devin-mobile span span:nth-child(3) {
  background-position: -15ch 100%;
  background-size: 50ch 20ch;
}
#site-footer__top-title-devin-mobile span span:nth-child(4) {
  background-position: -40ch 100%;
  background-size: 50ch 100%;
}
#site-footer__top-title-devin-description {
  font-size: var(--body1);
  line-height: 1.5;
  font-family: var(--font-family-body);
  text-transform: initial;
  max-width: 35ch;
  margin: 0 var(--space-m) 0 var(--space-l);
  padding-top: 0.5em;
}
@media (max-width: 767.98px) {
  #site-footer__top-title-devin-description {
    display: block;
    margin: 0;
  }
}
#site-footer__wrapper {
  --column-start: 2;
  --column-span: 10;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: var(--space-xl);
}
@media (max-width: 767.98px) {
  #site-footer__wrapper {
    --column-start: 2;
    --column-span: 10;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-2xl);
  }
}
@media (min-width: 1440px) {
  #site-footer__wrapper {
    --column-start: 2;
    --column-span: 10;
  }
}
@media (min-width: 1919px) {
  #site-footer__wrapper {
    --column-start: 3;
    --column-span: 8;
  }
}
#site-footer__top-content {
  --background: var(--color-light-02);
  --color: var(--color-dark-01);
  display: flex;
  align-items: center;
  gap: var(--space-m);
}
@media (max-width: 767.98px) {
  #site-footer__top-content {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-2xs);
  }
}
@media (max-width: 1439.98px) {
  #site-footer__top-content {
    width: 100%;
    align-items: flex-end;
    justify-content: flex-end;
  }
}
#site-footer__top-content-right-cta {
  text-transform: uppercase;
  --background: var(--color-dark-02);
  --color: var(--color-light-02);
}
@media (max-width: 767.98px) {
  #site-footer__top-content-right-cta {
    padding-left: 0;
  }
  #site-footer__top-content-right-cta:before {
    display: none;
  }
  #site-footer__top-content-right-cta > span:first-child {
    display: none;
  }
}
#site-footer__bottom {
  padding: var(--space-m) 0;
  white-space: nowrap;
  text-transform: uppercase;
  line-height: 1;
}
@media (max-width: 1439.98px) {
  #site-footer__bottom {
    padding: var(--space-xl) 0;
  }
}
#site-footer__socials {
  --column-span: 1;
  --column-start: 1;
}
@media (max-width: 1439.98px) {
  #site-footer__socials {
    --column-start: 1;
    --column-span: 12;
  }
}
#site-footer__socials span {
  font-size: var(--link-footer);
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  font-weight: 500;
  line-height: 1;
  color: var(--color-grey-02);
}
#site-footer__socials a {
  font-size: var(--link-footer);
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  font-weight: 500;
  line-height: 1;
  display: inline-block;
}
@media (max-width: 1439.98px) {
  #site-footer__socials a {
    margin-top: var(--space-m);
  }
}
@media (min-width: 1440px) {
  #site-footer__socials a {
    margin-top: var(--space-s);
  }
}
#site-footer__nav-service01 ul,
#site-footer__nav-service02 ul {
  display: flex;
  justify-self: flex-end;
  flex-direction: column;
  justify-self: flex-start;
}
@media (max-width: 1439.98px) {
  #site-footer__nav-service01 ul,
  #site-footer__nav-service02 ul {
    gap: var(--space-m);
  }
}
@media (min-width: 1440px) {
  #site-footer__nav-service01 ul,
  #site-footer__nav-service02 ul {
    gap: var(--space-s);
  }
}
#site-footer__nav-service01 li,
#site-footer__nav-service02 li {
  font-size: var(--link-footer);
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  font-weight: 500;
  line-height: 1;
}
#site-footer__nav-service01 a,
#site-footer__nav-service02 a {
  position: relative;
}
#site-footer__nav-service01 a:hover:before,
#site-footer__nav-service02 a:hover:before {
  opacity: 1;
  transition:
    transform 1s var(--fast-start-easing),
    opacity 0s var(--fast-start-easing);
  transform: translate(-0.35em, -50%);
}
#site-footer__nav-service01 a:hover:after,
#site-footer__nav-service02 a:hover:after {
  opacity: 1;
  transition:
    transform 1s var(--fast-start-easing),
    opacity 0s var(--fast-start-easing);
  transform: translate(0.35em, -50%);
}
#site-footer__nav-service01 a[data-hidden],
#site-footer__nav-service02 a[data-hidden] {
  display: none;
}
#site-footer__nav-service01 a:before,
#site-footer__nav-service01 a:after,
#site-footer__nav-service02 a:before,
#site-footer__nav-service02 a:after {
  position: absolute;
  top: 50%;
  transition:
    transform 1s var(--fast-start-easing),
    opacity 1s var(--fast-start-easing);
  opacity: 0;
}
#site-footer__nav-service01 a:before,
#site-footer__nav-service02 a:before {
  content: "[";
  left: 0;
  transform: translate(-0.5em, -50%);
}
#site-footer__nav-service01 a:after,
#site-footer__nav-service02 a:after {
  content: "]";
  right: 0;
  transform: translate(0.5em, -50%);
}
#site-footer__nav-service01 {
  --column-span: 4;
  --column-start: 5;
}
@media (min-width: 1440px) {
  #site-footer__nav-service01 {
    margin-left: 2.65vw;
  }
}
@media (max-width: 1439.98px) {
  #site-footer__nav-service01 {
    --column-start: 1;
    --column-span: 12;
    position: relative;
    margin-top: var(--space-l);
    padding-top: var(--space-l);
  }
  #site-footer__nav-service01:before {
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background: var(--color-grey-01);
    position: absolute;
    top: 0;
    left: 0;
  }
}
#site-footer__nav-service02 {
  --column-span: 4;
  --column-start: 9;
}
@media (max-width: 1439.98px) {
  #site-footer__nav-service02 {
    --column-start: 1;
    --column-span: 12;
    position: relative;
    margin-top: var(--space-m);
  }
}
#pages-container {
  position: relative;
  width: 100%;
  z-index: 1;
  min-height: calc(100vh - var(--site-header-height));
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

@media (max-width: 768px) {
  #pages-container {
    padding-top: var(--site-header-height);
  }
}

#preloader {
  display: none;
  position: fixed;
  z-index: 9997;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #000;
}
.is-ready #preloader {
  background-color: transparent;
}
#preloader-bar-wrapper {
  position: absolute;
  top: 50%;
  right: 50%;
  overflow: hidden;
  width: 60px;
  height: 40px;
  margin-top: -20px;
  margin-right: -60px;
}
#preloader-bar {
  position: absolute;
  right: 0;
  width: 120px;
  height: 100%;
  background-color: #333;
}
#preloader-bar-inner {
  width: 100%;
  height: 100%;
  background-color: #fff;
  transform-origin: 0 0;
}
#preloader-text {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  font-size: 16px;
  line-height: 40px;
  mix-blend-mode: difference;
  text-align: center;
}
#header-home {
  min-height: 345px;
  color: var(--color-light-02);
  position: relative;
}
@media (min-width: 768px) {
  #header-home {
    min-height: calc(var(--initial-vh) * 100 - var(--site-header-height));
  }
}
#header-home__top {
  min-height: 345px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  position: relative;
  color: var(--color-light-02);
}
@media (min-width: 768px) {
  #header-home__top {
    min-height: calc(var(--initial-vh) * 100 - var(--site-header-height));
  }
}
#home-hero__canvas {
  --radius: 20px;
  --margin: 10px;
  position: absolute;
  inset: 0;
  max-width: none;
  z-index: -1;
  clip-path: polygon(
    var(--radius) 0,
    calc(100% - var(--margin)) 0,
    calc(100% - var(--margin)) calc(100% - var(--radius)),
    calc(100% - var(--radius)) 100%,
    var(--margin) 100%,
    var(--margin) var(--radius)
  );
}
@media (max-width: 767.98px) {
  #home-hero__canvas {
    opacity: 0;
  }
}
#header-home__top-header {
  --padding-title: 25px;
  --padding-caption: 35px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  margin-left: calc(var(--column-width) + var(--gutter) - 20px);
  padding: 20px;
}
@media (max-width: 767.98px) {
  #header-home__top-header {
    top: calc(var(--initial-vh) * 8);
    transform: translate(0);
  }
}
@media (max-width: 767.98px) {
  #header-home__top-header {
    margin-left: calc(var(--column-width) + var(--gutter));
    padding: 0;
  }
}
#header-home__top-caption {
  --theme: #9eaee9;
  font-size: var(--sub1);
  font-weight: 400;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  display: inline-block;
  position: relative;
  margin-bottom: var(--space-m);
}
#header-home__top-caption:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  top: calc(var(--padding-caption) * -1);
  left: calc(var(--padding-title) * -1);
  width: calc(100% + var(--padding-title) * 2);
  height: calc(100% + var(--padding-caption) * 2);
  background: var(--color-dark-01);
  z-index: -1;
}
#header-home__top-title {
  --padding: 20px;
  font-size: var(--h1);
  line-height: 1.07;
  font-weight: 300;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
}
#header-home__top-title-desktop {
  display: flex;
  flex-direction: column;
}
#header-home__top-title-desktop span span {
  position: relative;
}
#header-home__top-title-desktop span span:before {
  content: "";
  position: absolute;
  top: calc(var(--padding-title) * -1);
  left: calc(var(--padding-title) * -1);
  width: calc(100% + var(--padding-title) * 2);
  height: calc(100% + var(--padding-title) * 2);
  background: var(--color-dark-01);
  z-index: -1;
}
@media (max-width: 767.98px) {
  #header-home__top-title-desktop {
    display: none;
  }
}
#header-home__top-title-desktop-bottom > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
#header-home__top-title-desktop-bottom span span {
  background: var(--color-gradient-01);
  background-repeat: no-repeat;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  color: transparent;
}
#header-home__top-title-desktop-bottom span span:first-child {
  background-position: 0 100%;
  background-size: 15ch 100%;
}
#header-home__top-title-desktop-bottom span span:nth-child(2) {
  background-position: 0ch 100%;
  background-size: 30ch 100%;
  margin-left: 0.33ch;
  margin-right: 0.33ch;
}
#header-home__top-title-desktop-bottom span span:nth-child(3) {
  background-position: 0ch 100%;
  background-size: 100ch 20ch;
}
#header-home__top-title-desktop-bottom span span:nth-child(4) {
  background-position: -40ch 100%;
  background-size: 50ch 100%;
}
#header-home__top-title-mobile {
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  #header-home__top-title-mobile {
    display: none;
  }
}
.header-home__top-title-mobile-gradient {
  background: var(--color-gradient-01);
  background-repeat: no-repeat;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  color: transparent;
}
#header-home__top-title-mobile-description-container {
  margin-top: var(--space-2xs);
  align-items: center;
  display: flex;
}
#header-home__top-title-mobile-description {
  font-size: var(--h2);
  line-height: 1.5;
  font-family: var(--font-family-body);
  text-transform: initial;
  max-width: 32ch;
  text-align: justify;
  margin-left: var(--space-s);
  margin-right: var(--space-s);
}
#header-home__top-title-desktop-bottom-description {
  font-size: var(--h2);
  line-height: 1.5;
  font-family: var(--font-family-body);
  text-transform: initial;
  max-width: 32ch;
  margin: 0 var(--space-m);
  text-align: justify;
}
#header-home__top-content {
  --background: var(--color-light-02);
  --color: var(--color-dark-01);
  position: relative;
  padding: 10px;
  display: flex;
  align-self: flex-end;
  gap: var(--space-xl);
  margin-bottom: var(--space-3xl);
  align-items: center;
}
@media (min-width: 768px) {
  #header-home__top-content:before {
    z-index: -1;
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: calc(100% + var(--container-padding) * 0.5);
    height: 100%;
    background: var(--color-dark-01);
  }
}
@media (max-width: 767.98px) {
  #header-home__top-content {
    flex-direction: column;
    align-self: flex-start;
    gap: var(--space-m);
    padding: 0;
    margin-left: calc(var(--column-width) + var(--gutter));
  }
}
#header-home__top-content-right-cta {
  font-size: var(--btn1);
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  font-weight: 500;
  line-height: 1;
  color: var(--color-light-02);
  display: flex;
  align-items: center;
  padding: var(--space-s) 0;
}
#header-home__top-content-right-cta .o-icon {
  width: var(--btn1);
  height: var(--btn1);
}
#header-home__top-content-right-cta .o-icon:first-child {
  position: absolute;
}
@media (hover: hover) {
  #header-home__top-content-right-cta:hover .o-icon:first-child {
    transform: none;
  }
  #header-home__top-content-right-cta:hover span {
    transform: translate(calc(var(--fluid-12-16) * 0.9));
  }
}
#header-home__top-content-right-cta .o-icon:first-child {
  transform: translate(-3px, 1px);
  transition: transform 1s var(--fast-start-easing);
}
#header-home__top-content-right-cta span {
  transition: transform 1s var(--fast-start-easing);
  background: var(--color-dark-01);
  z-index: 1;
}
@media (max-width: 767.98px) {
  #header-home__top-content-right-cta {
    align-self: flex-start;
    align-items: flex-start;
  }
}
#header-home__bottom {
  position: relative;
  padding: var(--space-3xl) 0;
}
@media (max-width: 767.98px) {
  #header-home__bottom {
    padding-top: 0;
  }
}
#header-home__bottom-caption {
  --column-start: 2;
  --column-span: 2;
  font-size: var(--sub1);
  font-weight: 400;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  line-height: 1;
  cursor: pointer;
  align-self: flex-start;
  justify-self: flex-start;
  position: relative;
}
#header-home__bottom-caption:before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: var(--color-accent-02);
  transform: scale(0.999);
  transition: transform 0.5s var(--fast-start-easing);
  z-index: -1;
}
@media (hover: hover) {
  #header-home__bottom-caption:hover:before {
    transform: scaleX(1.05);
  }
  #header-home__bottom-caption:hover span:before {
    transform: translate(0.1em);
  }
  #header-home__bottom-caption:hover span:after {
    transform: translate(-0.1em);
  }
}
#header-home__bottom-caption span {
  display: inline-block;
  color: var(--color-dark-01);
  padding: 3px;
}
#header-home__bottom-caption span:before {
  content: "[";
  padding-right: 0.25em;
  transition: transform 0.5s var(--fast-start-easing);
  display: inline-block;
}
#header-home__bottom-caption span:after {
  content: "]";
  padding-left: 0.25em;
  display: inline-block;
  transition: transform 0.5s var(--fast-start-easing);
}
@media (max-width: 767.98px) {
  #header-home__bottom-caption {
    --column-start: 1;
    --column-span: 12;
  }
}
#header-home__bottom-title {
  --column-start: 5;
  --column-span: 7;
  max-width: 25ch;
  font-size: var(--h2);
  line-height: 1.04;
  font-weight: 300;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
}
@media (max-width: 767.98px) {
  #header-home__bottom-title {
    --column-start: 1;
    --column-span: 12;
    margin-top: var(--space-s);
    max-width: 17.5ch;
  }
  #header-home__bottom-title br {
    display: none;
  }
}
@media (min-width: 1440px) {
  #header-home__bottom-title {
    margin-left: 2.65vw;
  }
}
#header-home__bottom-gallery {
  --column-start: 2;
  --column-span: 10;
  margin-top: var(--space-l);
  display: flex;
  flex-direction: column;
}
@media (max-width: 1439.98px) {
  #header-home__bottom-gallery {
    --column-start: 1;
    --column-span: 12;
  }
}
@media (max-width: 767.98px) {
  #header-home__bottom-gallery {
    margin-top: var(--space-xl);
  }
}
#header-home__bottom-gallery-list-wrapper {
  position: relative;
}
@media (min-width: 768px) {
  #header-home__bottom-gallery-list-wrapper {
    overflow: hidden;
  }
}
@media (max-width: 767.98px) {
  #header-home__bottom-gallery-list-wrapper {
    margin-left: calc(var(--container-padding) * -0.75);
    padding-left: calc(var(--container-padding) * 0.75);
    margin-right: calc(var(--container-padding) * -0.75);
    padding-right: calc(var(--container-padding) * 0.75);
    overflow-x: scroll;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
    scroll-snap-type: x mandatory;
  }
  #header-home__bottom-gallery-list-wrapper::-webkit-scrollbar {
    display: none;
  }
}
#header-home__bottom-gallery-list {
  display: flex;
}
@media (min-width: 768px) {
  #header-home__bottom-gallery-list {
    gap: var(--gutter);
  }
}
.header-home__bottom-gallery-list-item {
  flex-shrink: 0;
}
@media (min-width: 768px) {
  .header-home__bottom-gallery-list-item {
    width: calc((var(--column-width-gutter) * 12 - var(--gutter) * 2) / 2);
    padding-left: 0;
  }
}
@media (min-width: 992px) {
  .header-home__bottom-gallery-list-item {
    width: calc((var(--column-width-gutter) * 12 - var(--gutter) * 3) / 3);
    padding-left: 0;
  }
}
@media (min-width: 1440px) {
  .header-home__bottom-gallery-list-item {
    width: calc((var(--column-width-gutter) * 10 - var(--gutter) * 3) / 3);
  }
}
@media (max-width: 767.98px) {
  .header-home__bottom-gallery-list-item {
    scroll-snap-align: start;
    padding-left: calc(var(--container-padding) * 0.75);
    width: calc(var(--column-width-gutter) * 12 - var(--gutter) * 1);
  }
  .header-home__bottom-gallery-list-item:last-child {
    padding-right: calc(var(--container-padding) * 0.75);
  }
}
#header-home__bottom-gallery-nav {
  display: flex;
  gap: var(--space-xs);
  margin-bottom: var(--space-m);
  align-self: flex-end;
}
@media (max-width: 767.98px) {
  #header-home__bottom-gallery-nav {
    display: none;
  }
}
#header-home__bottom-gallery-nav-prev,
#header-home__bottom-gallery-nav-next {
  font-size: var(--btn1);
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  font-weight: 500;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  display: inline-block;
  line-height: 1;
  color: var(--color-light-02);
  padding: 3px;
  cursor: pointer;
}
@media (hover: hover) {
  #header-home__bottom-gallery-nav-prev:hover,
  #header-home__bottom-gallery-nav-next:hover {
    background: var(--color-dark-02);
  }
}
#header-home__bottom-gallery-nav-prev:before,
#header-home__bottom-gallery-nav-next:before {
  content: "[";
  padding-right: 0.25em;
  transition: transform 0.5s var(--fast-start-easing);
  display: inline-block;
}
#header-home__bottom-gallery-nav-prev:after,
#header-home__bottom-gallery-nav-next:after {
  content: "]";
  padding-left: 0.25em;
  display: inline-block;
  transition: transform 0.5s var(--fast-start-easing);
}
@media (hover: hover) {
  #header-home__bottom-gallery-nav-prev:hover:before,
  #header-home__bottom-gallery-nav-next:hover:before {
    transform: translate(0.1em);
  }
  #header-home__bottom-gallery-nav-prev:hover:after,
  #header-home__bottom-gallery-nav-next:hover:after {
    transform: translate(-0.1em);
  }
}
#header-home__bottom-gallery-nav-prev.is-disabled,
#header-home__bottom-gallery-nav-next.is-disabled {
  pointer-events: none;
  color: var(--color-grey-02);
}
#header-home__bottom-cta {
  --column-start: 1;
  --column-span: 12;
  --background: var(--color-dark-02);
  --color: var(--color-light-02);
  padding-top: var(--space-m);
  display: flex;
  justify-content: space-between;
}
@media (max-width: 767.98px) {
  #header-home__bottom-cta {
    padding-top: var(--space-xl);
    align-items: center;
  }
}
@media (min-width: 1440px) {
  #header-home__bottom-cta {
    --column-start: 2;
    --column-span: 10;
  }
}
#header-home__bottom-cta-visual {
  color: var(--color-dark-03);
  font-family:
    IBM Plex Mono,
    monospace;
  font-size: 28px;
  line-height: 1;
}
@media (max-width: 767.98px) {
  #header-home__bottom-cta-visual {
    font-size: 23px;
  }
}
#job-list {
  padding: var(--space-3xl) 0 var(--space-8xl);
  position: relative;
  overflow: hidden;
}
#job-list:before {
  content: "";
  left: 0;
  position: absolute;
  font-family:
    IBM Plex Mono,
    monospace;
  line-height: 1;
  max-width: 20ch;
  word-break: break-word;
  overflow-wrap: break-word;
  color: var(--color-grey-01);
  z-index: -1;
}
@media (max-width: 767.98px) {
  #job-list:before {
    content: "";
    top: calc(var(--space-8xl) * 3);
    right: 0;
    left: unset;
    max-width: 8ch;
    font-size: 23px;
  }
}
@media (min-width: 768px) {
  #job-list:before {
    font-size: 28px;
    top: calc(var(--space-8xl) * 2.5);
  }
}
@media (min-width: 1440px) {
  #job-list:before {
    top: calc(var(--space-8xl) * 1.5);
  }
}
#job-list:after {
  content: "";
  z-index: -1;
  bottom: calc(var(--space-8xl) * 0.5);
  right: 0;
  position: absolute;
  font-family:
    IBM Plex Mono,
    monospace;
  line-height: 1;
  max-width: 44ch;
  word-break: break-word;
  overflow-wrap: break-word;
  color: var(--color-grey-01);
}
@media (max-width: 767.98px) {
  #job-list:after {
    content: "";
    max-width: 13ch;
    left: 0;
    right: unset;
    font-size: 23px;
  }
}
@media (min-width: 768px) {
  #job-list:after {
    font-size: 28px;
  }
}
@media (min-width: 768px) {
  #job-list__header {
    position: relative;
  }
}
#job-list__header:before {
  color: var(--color-dark-01);
  content: "+++";
  z-index: -1;
  font-family:
    IBM Plex Mono,
    monospace;
  line-height: 1;
  right: var(--column-width-gutter);
  bottom: 0;
  position: absolute;
}
@media (max-width: 767.98px) {
  #job-list__header:before {
    bottom: calc(var(--space-8xl) * 0.5);
    right: var(--container-padding);
    font-size: 23px;
  }
}
@media (min-width: 768px) {
  #job-list__header:before {
    font-size: 28px;
  }
}
#job-list__header-caption {
  --column-start: 2;
  --column-span: 3;
  font-size: var(--sub1);
  font-weight: 400;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  position: relative;
  align-self: flex-start;
  justify-self: flex-start;
  line-height: 1;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
#job-list__header-caption:before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: var(--color-accent-02);
  transform: scale(0.999);
  transition: transform 0.5s var(--fast-start-easing);
  z-index: -1;
}
@media (hover: hover) {
  #job-list__header-caption:hover:before {
    transform: scaleX(1.05);
  }
  #job-list__header-caption:hover span:before {
    transform: translate(0.1em);
  }
  #job-list__header-caption:hover span:after {
    transform: translate(-0.1em);
  }
}
#job-list__header-caption span {
  display: inline-block;
  color: var(--color-dark-01);
  padding: 3px;
}
#job-list__header-caption span:before {
  content: "[";
  padding-right: 0.25em;
  transition: transform 0.5s var(--fast-start-easing);
  display: inline-block;
}
#job-list__header-caption span:after {
  content: "]";
  padding-left: 0.25em;
  display: inline-block;
  transition: transform 0.5s var(--fast-start-easing);
}
@media (max-width: 767.98px) {
  #job-list__header-caption {
    --column-start: 1;
    --column-span: 12;
  }
}
#job-list__header-title {
  font-size: var(--h2);
  line-height: 1.04;
  font-weight: 300;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  margin-top: var(--space-s);
}
@media (max-width: 767.98px) {
  #job-list__header-title {
    --column-start: 1;
    --column-span: 12;
  }
}
@media (min-width: 768px) {
  #job-list__header-title {
    --column-start: 2;
    --column-span: 10;
  }
}
@media (min-width: 1440px) {
  #job-list__header-title {
    --column-start: 2;
    --column-span: 3;
  }
}
#job-list__header-description {
  line-height: 1.5;
  font-family: var(--font-family-body);
  text-align: justify;
  max-width: 500px;
}
@media (max-width: 767.98px) {
  #job-list__header-description {
    --column-start: 1;
    --column-span: 12;
  }
}
@media (min-width: 768px) {
  #job-list__header-description {
    --column-start: 2;
    --column-span: 10;
  }
}
@media (min-width: 1440px) {
  #job-list__header-description {
    --column-start: 5;
    --column-span: 7;
    margin-top: var(--space-s);
    margin-left: 2.65vw;
  }
}
#job-list__content {
  padding-top: var(--space-2xl);
  line-height: 1;
  z-index: 1;
}
@media (min-width: 768px) {
  #job-list__content {
    --column-start: 2;
    --column-span: 10;
  }
}
@media (min-width: 1440px) {
  #job-list__content {
    --column-start: 5;
    --column-span: 6;
    padding-top: var(--space-3xl);
    margin-left: 2.65vw;
  }
}
#job-list__content ul li > div {
  display: flex;
  justify-content: space-between;
}
#job-list__content > ul {
  display: flex;
  flex-direction: column;
  gap: var(--space-l);
}
@media (max-width: 767.98px) {
  #job-list__content > ul {
    gap: var(--space-xl);
  }
}
#job-list__content ul ul {
  margin-top: var(--space-s);
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}
#job-list__content .o-icon {
  width: 16px !important;
  height: 16px !important;
  padding: 0 !important;
  margin-right: -2px;
}
#job-list__content a {
  padding: var(--space-s) var(--space-m);
  display: flex;
  position: relative;
  align-items: center;
}
@media (max-width: 767.98px) {
  #job-list__content a {
    flex-wrap: wrap;
    padding: var(--space-s) !important;
  }
}
#job-list__content a:before {
  pointer-events: none;
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--color-grey-01);
  opacity: 0;
  transform: scale(0.999);
  transition: transform 0.5s var(--fast-start-easing);
}
#job-list__content a:after {
  border: 1px solid var(--color-grey-01);
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--body-background-color);
  z-index: -1;
  transform: scale(0.999);
  transition: transform 0.5s var(--fast-start-easing);
}
@media (hover: hover) {
  #job-list__content a:hover:before {
    opacity: 0.1;
    transform: scale(0.99);
  }
  #job-list__content a:hover:after {
    transform: scale(0.99);
  }
}
#job-list__content a div:first-child {
  font-size: var(--h3);
  line-height: 1.25;
  font-weight: 400;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  padding-right: var(--space-m);
}
@media (max-width: 767.98px) {
  #job-list__content a div:first-child {
    width: 100%;
    padding-bottom: var(--space-l);
  }
}
#job-list__content a div:nth-child(2) {
  font-size: var(--sub2);
  font-weight: 500;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  margin-left: auto;
  flex-shrink: 0;
  color: var(--color-grey-02);
  white-space: nowrap;
}
@media (max-width: 767.98px) {
  #job-list__content a div:nth-child(2) {
    margin-right: auto;
    margin-left: 0;
  }
}
#job-list__content a div:last-child {
  font-size: var(--sub2);
  font-weight: 500;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  flex-shrink: 0;
  margin-left: var(--space-l);
  color: var(--color-grey-02);
  text-align: right;
}
.job-list__department-header {
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
.job-list__department-header div:first-child {
  font-size: var(--sub2);
  font-weight: 500;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  display: inline-block;
}
.job-list__department-header div:last-child {
  font-size: var(--sub2);
  font-weight: 500;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  display: inline-block;
}
#header-blog {
  margin-top: var(--space-4xl);
  position: relative;
}
#header-blog:before {
  content: "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++";
  position: absolute;
  right: 0;
  top: calc(var(--h2) * 1.9);
  font-family:
    IBM Plex Mono,
    monospace;
  z-index: -1;
  color: var(--color-grey-01);
  max-width: 31ch;
  line-height: 1;
  word-break: break-word;
  overflow-wrap: break-word;
}
@media (max-width: 767.98px) {
  #header-blog:before {
    content: "++++++++++++++++++++++++++++++++++++++++++++++++++++++++";
    max-width: 8ch;
    top: 35px;
    font-size: 23px;
  }
}
@media (min-width: 768px) {
  #header-blog:before {
    font-size: 28px;
  }
}
@media (max-width: 767.98px) {
  #header-blog {
    margin-top: var(--space-xl);
  }
}
#header-blog__heading {
  --column-start: 1;
  --column-span: 12;
}
@media (min-width: 768px) {
  #header-blog__heading {
    --column-start: 2;
    --column-span: 10;
  }
}
#header-blog__heading-title {
  font-size: var(--h2);
  line-height: 1.04;
  font-weight: 300;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
}
#header-blog__gallery {
  width: 100%;
  margin-top: var(--space-2xl);
}
@media (max-width: 767.98px) {
  #header-blog__gallery {
    margin-top: var(--space-l);
  }
}
@media (min-width: 1440px) {
  #header-blog__gallery {
    --column-start: 2;
    --column-span: 10;
  }
}
#header-blog__gallery-list {
  position: relative;
}
@media (min-width: 768px) {
  #header-blog__gallery-list {
    background: var(--body-background-color);
  }
  #header-blog__gallery-list:before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0;
    background: var(--color-grey-01);
    transform: scale(0.999);
    transition: transform 0.5s var(--fast-start-easing);
  }
  #header-blog__gallery-list:after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    border: 1px solid var(--color-grey-01);
    transform: scale(0.999);
    transition: transform 0.5s var(--fast-start-easing);
  }
}
@media (min-width: 768px) and (hover: hover) {
  #header-blog__gallery-list:hover:before {
    transform: scale(0.995, 0.99);
    opacity: 0.1;
  }
  #header-blog__gallery-list:hover:after {
    transform: scale(0.995, 0.99);
  }
}
@media (max-width: 767.98px) {
  #header-blog__gallery-list {
    display: flex;
    margin-left: calc(var(--container-padding) * -1);
    margin-right: calc(var(--container-padding) * -1);
    padding-left: var(--container-padding);
    padding-right: var(--container-padding);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
    scroll-snap-type: x mandatory;
  }
  #header-blog__gallery-list::-webkit-scrollbar {
    display: none;
  }
}
.header-blog__gallery-item {
  opacity: 0;
  position: relative;
  pointer-events: none;
  background: var(--body-background-color);
}
.header-blog__gallery-item.is-active {
  opacity: 1;
  pointer-events: auto;
}
.header-blog__gallery-item:not(:first-child) {
  position: absolute;
  inset: 0;
}
@media (max-width: 767.98px) {
  .header-blog__gallery-item {
    position: relative !important;
    opacity: 1 !important;
    flex-shrink: 0;
    width: calc(
      var(--column-width-gutter) * 12 - var(--gutter) * 1 -
        var(--container-padding) * 1
    );
    scroll-snap-align: start;
    box-sizing: content-box;
    padding-left: var(--container-padding);
    pointer-events: auto !important;
  }
  .is-disabled .header-blog__gallery-item {
    padding-left: 0;
    width: calc(var(--column-width-gutter) * 12 - var(--gutter) * 1);
  }
}
.header-blog__gallery-item-link {
  display: flex;
  gap: var(--space-xs);
  padding: var(--space-xs);
  height: 100%;
}
@media (max-width: 767.98px) {
  .header-blog__gallery-item-link {
    flex-direction: column;
    border: 1px solid var(--color-grey-01);
  }
}
.header-blog__gallery-item-left {
  width: 50%;
}
@media (max-width: 767.98px) {
  .header-blog__gallery-item-left {
    width: 100%;
  }
}
.header-blog__gallery-item-left-image {
  position: relative;
  padding-bottom: 62.5%;
  background: var(--color-image-background);
  width: 100%;
  overflow: hidden;
}
.header-blog__gallery-item-left-image img {
  will-change: opacity, transform;
  opacity: 0;
  transition:
    opacity 1s,
    transform 1s var(--fast-start-easing);
  transform: scale(1.1);
}
.header-blog__gallery-item-left-image img.is-loaded {
  opacity: 1;
  transform: none;
}
.header-blog__gallery-item-left-image img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}
@media (hover: hover) {
  .header-blog__gallery-item-link:hover
    .header-blog__gallery-item-left-image
    img {
    transform: scale(1.02);
  }
}
.header-blog__gallery-item-right {
  position: relative;
  width: 50%;
}
@media (max-width: 767.98px) {
  .header-blog__gallery-item-right {
    width: 100%;
  }
}
.header-blog__gallery-item-right-meta {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  display: flex;
  justify-content: space-between;
  color: var(--color-grey-02);
  line-height: 1;
}
@media (max-width: 767.98px) {
  .header-blog__gallery-item-right-meta {
    position: relative;
  }
}
.header-blog__gallery-item-right-meta-date,
.header-blog__gallery-item-right-meta-author {
  font-size: var(--sub2);
  font-weight: 500;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
}
.header-blog__gallery-item-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
  align-items: flex-start;
  padding-left: min(var(--space-4xl), 3vw);
}
@media (max-width: 767.98px) {
  .header-blog__gallery-item-content {
    padding-left: 0;
    padding-top: var(--space-l);
    padding-bottom: var(--space-s);
  }
}
.header-blog__gallery-item-content-caption {
  font-size: var(--sub2);
  font-weight: 500;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
}
.header-blog__gallery-item-right-title {
  font-size: var(--h2);
  line-height: 1.04;
  font-weight: 300;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  max-width: 20ch;
  text-wrap: balance;
  margin-top: var(--space-xs-s);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}
.header-blog__gallery-item-right-description {
  font-size: var(--body1);
  line-height: 1.5;
  font-family: var(--font-family-body);
  margin-top: var(--space-xs);
  max-width: 50ch;
  padding-right: 1ch;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  text-overflow: ellipsis;
  height: 4.5em;
}
@media (max-width: 767.98px) {
  .header-blog__gallery-item-right-description {
    margin-top: var(--space-s);
  }
}
@media (min-width: 768px) and (max-width: 991.98px) {
  .header-blog__gallery-item-right-description {
    -webkit-line-clamp: 2;
    height: 3em;
  }
}
#header-blog__gallery-nav {
  margin-top: var(--space-l);
}
#header-blog__gallery-nav-visual {
  --column-start: 1;
  --column-span: 3;
  font-family:
    IBM Plex Mono,
    monospace;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  line-height: 1;
  font-size: 28px;
}
@media (max-width: 767.98px) {
  #header-blog__gallery-nav-visual {
    display: none;
  }
}
#header-blog__gallery-nav-indicators {
  --column-start: 7;
  --column-span: 2;
  display: flex;
  align-self: center;
  position: absolute;
  left: 50%;
  transform: translate(-50%);
  height: 10px;
}
#header-blog__gallery-nav-indicators div {
  cursor: pointer;
  position: absolute;
  left: 0;
  height: 100%;
  top: 0;
  background: var(--color-grey-01);
}
#header-blog__gallery-nav-indicators div:before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: var(--color-dark-01);
  position: absolute;
  inset: 0;
  transform: scaleX(var(--progress));
  transform-origin: left;
}
@media (max-width: 767.98px) {
  #header-blog__gallery-nav-indicators {
    opacity: 0;
  }
}
.is-disabled #header-blog__gallery-nav-indicators {
  opacity: 0;
  pointer-events: none;
}
#header-blog__gallery-nav-buttons {
  --column-start: 10;
  --column-span: 3;
  justify-self: flex-end;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
@media (max-width: 767.98px) {
  #header-blog__gallery-nav-buttons {
    display: none;
  }
}
.is-disabled #header-blog__gallery-nav-buttons {
  opacity: 0;
  pointer-events: none;
}
#header-blog__gallery-nav-buttons-prev,
#header-blog__gallery-nav-buttons-next {
  font-size: var(--btn1);
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  font-weight: 500;
  display: inline-block;
  line-height: 1;
  color: var(--color-dark-01);
  padding: 3px;
  cursor: pointer;
}
@media (hover: hover) {
  #header-blog__gallery-nav-buttons-prev:hover,
  #header-blog__gallery-nav-buttons-next:hover {
    background: var(--color-grey-01);
  }
}
#header-blog__gallery-nav-buttons-prev:before,
#header-blog__gallery-nav-buttons-next:before {
  content: "[";
  padding-right: 0.25em;
  transition: transform 0.5s var(--fast-start-easing);
  display: inline-block;
}
#header-blog__gallery-nav-buttons-prev:after,
#header-blog__gallery-nav-buttons-next:after {
  content: "]";
  padding-left: 0.25em;
  display: inline-block;
  transition: transform 0.5s var(--fast-start-easing);
}
@media (hover: hover) {
  #header-blog__gallery-nav-buttons-prev:hover:before,
  #header-blog__gallery-nav-buttons-next:hover:before {
    transform: translate(0.1em);
  }
}
@media (hover: hover) {
  #header-blog__gallery-nav-buttons-prev:hover:after,
  #header-blog__gallery-nav-buttons-next:hover:after {
    transform: translate(-0.1em);
  }
}
#header-blog__gallery-nav-buttons-prev.is-disabled,
#header-blog__gallery-nav-buttons-next.is-disabled {
  pointer-events: none;
  color: var(--color-grey-02);
}
#blog-post-list {
  margin-top: var(--space-2xl);
  padding-bottom: var(--space-4xl);
  position: relative;
}
#blog-post-list:before {
  content: "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++";
  position: absolute;
  right: 0;
  font-family:
    IBM Plex Mono,
    monospace;
  z-index: -1;
  color: var(--color-grey-01);
  max-width: 31ch;
  line-height: 1;
  word-break: break-word;
  overflow-wrap: break-word;
  bottom: calc(var(--space-8xl) * 3);
  top: unset;
  bottom: 0;
}
@media (max-width: 1439.98px) {
  #blog-post-list:before {
    content: "++++++++++++++++++++++++++++++++++++++++++++++++++++++++";
    max-width: 8ch;
  }
}
@media (max-width: 767.98px) {
  #blog-post-list:before {
    font-size: 23px;
  }
}
@media (min-width: 768px) {
  #blog-post-list:before {
    font-size: 28px;
  }
}
@media (min-width: 1440px) {
  #blog-post-list__wrapper {
    --column-start: 2;
    --column-span: 10;
  }
}
#blog-post-list__filter-desktop {
  display: flex;
  gap: var(--space-l);
  text-transform: uppercase;
  position: relative;
}
@media (max-width: 767.98px) {
  #blog-post-list__filter-desktop {
    display: none;
  }
}
#blog-post-list__filter-mobile {
  display: none;
  justify-content: space-between;
  align-items: center;
  border: 1px solid var(--color-grey-01);
  padding: var(--space-xs) var(--space-s);
  line-height: 1;
  position: relative;
  background: var(--body-background-color);
  white-space: nowrap;
}
#blog-post-list__filter-mobile span:nth-child(1) {
  padding-right: var(--space-xs);
}
#blog-post-list__filter-mobile span:nth-child(2) {
  font-size: var(--sub1);
  font-weight: 400;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
}
#blog-post-list__filter-mobile span:nth-child(3) {
  padding-left: var(--space-xs);
}
@media (max-width: 767.98px) {
  #blog-post-list__filter-mobile {
    width: -moz-min-content;
    width: min-content;
    display: flex;
    margin-left: auto;
    margin-right: auto;
  }
}
#blog-post-list__filter-select {
  position: absolute;
  inset: 0;
  opacity: 0;
}
@media (min-width: 768px) {
  #blog-post-list__filter-select {
    display: none;
  }
}
#blog-post-list__filter-label {
  font-size: var(--sub1);
  font-weight: 400;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--color-grey-02);
}
#blog-post-list__filter-list {
  --theme: var(--body-background-color);
  display: flex;
  -moz-column-gap: var(--space-l);
  column-gap: var(--space-l);
  row-gap: var(--space-xs);
  flex-wrap: wrap;
}
#blog-post-list__filter-list li {
  position: relative;
  display: flex;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
#blog-post-list__filter-list li:before {
  pointer-events: none;
  content: "[";
  padding-right: 0.15em;
  transition: transform 0.5s var(--fast-start-easing);
  display: inline-block;
  position: absolute;
  left: 0;
  transform: translate(-0.4em);
}
#blog-post-list__filter-list li:after {
  pointer-events: none;
  content: "]";
  padding-left: 0.15em;
  display: inline-block;
  transition: transform 0.5s var(--fast-start-easing);
  transform: translate(0.4em);
  position: absolute;
  right: 0;
}
#blog-post-list__filter-list li.is-active:before,
#blog-post-list__filter-list li:hover:before {
  transform: translate(-0.3em);
}
#blog-post-list__filter-list li.is-active:after,
#blog-post-list__filter-list li:hover:after {
  transform: translate(0.3em);
}
#blog-post-list__filter-list a {
  position: relative;
}
#blog-post-list__filter-list a:before {
  content: "";
  position: absolute;
  left: -10px;
  width: calc(100% + 20px);
  top: 0;
  bottom: 0;
  background: var(--color-accent-01);
  opacity: 0;
  transition: transform 0.5s var(--fast-start-easing);
  z-index: -1;
}
#blog-post-list__filter-list li.is-active a:before {
  opacity: 1;
  transform: scaleX(1);
}
.blog-post-list__filter-list-item {
  font-size: var(--sub1);
  font-weight: 400;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
}
#blog-post-list__list-wrapper {
  margin-top: var(--space-l);
}
#blog-post-list__list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-s);
}
.blog-post-list__list-item {
  width: calc(33.3% - var(--space-s) * 0.666);
}
@media (max-width: 1439.98px) {
  .blog-post-list__list-item {
    width: calc(50% - var(--space-s) * 0.5);
  }
}
@media (max-width: 767.98px) {
  .blog-post-list__list-item {
    width: 100%;
  }
}
#blog-post-list__load-more {
  --color: var(--color-dark-01);
  --background: var(--color-grey-01);
  margin-top: var(--space-xl);
  text-align: right;
}
@media (max-width: 767.98px) {
  #blog-post-list__load-more {
    text-align: center;
  }
}
#blog-post {
  margin: var(--space-l) 0;
  position: relative;
}
@media (min-width: 768px) {
  #blog-post {
    margin: var(--space-4xl) 0 var(--space-5xl);
  }
}
#blog-post:before {
  content: "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++";
  max-width: 30ch;
  left: 0;
  position: absolute;
  font-family:
    IBM Plex Mono,
    monospace;
  font-size: 28px;
  line-height: 1;
  word-break: break-word;
  overflow-wrap: break-word;
  color: var(--color-grey-01);
  z-index: -1;
  top: calc(
    var(--space-m) + var(--sub2) + var(--space-s) + var(--prose-h1) * 2 * 1.2 +
      var(--space-s)
  );
}
@media (max-width: 767.98px) {
  #blog-post:before {
    display: none;
  }
}
#tpl-generic #blog-post:before {
  content: "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++";
  max-width: 14ch;
  top: calc(
    var(--space-m) + var(--sub2) + var(--space-s) + var(--prose-h1) * 2 * 1.2 +
      var(--space-m) + var(--space-8xl) * 2
  );
}
@media (max-width: 1439.98px) {
  #tpl-generic #blog-post:before {
    display: none;
  }
}
#blog-post__text-wrapper {
  padding-bottom: var(--space-m);
  background-color: var(--body-background-color);
}
@media (min-width: 768px) {
  #blog-post__text-wrapper {
    --column-span: 10;
    --column-start: 2;
    padding: var(--space-m);
  }
  #tpl-blog #blog-post__text-wrapper {
    border-top: 1px solid var(--color-grey-01);
    border-left: 1px solid var(--color-grey-01);
    border-right: 1px solid var(--color-grey-01);
  }
}
@media (min-width: 992px) {
  #blog-post__text-wrapper {
    --column-span: 8;
    --column-start: 1;
  }
}
@media (min-width: 1440px) {
  #blog-post__text-wrapper {
    --column-span: 6;
    --column-start: 3;
  }
}
@media (min-width: 2400px) {
  #blog-post__text-wrapper {
    --column-span: 5;
    --column-start: 3;
  }
}
#blog-post__caption {
  margin-bottom: var(--space-s);
  font-size: var(--sub2);
  font-weight: 500;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
}
#blog-post__title {
  font-size: var(--prose-h1);
  line-height: 1.2;
  font-weight: 400;
  font-family: var(--font-family-body);
  padding-right: var(--space-m);
}
@media (min-width: 1440px) {
  #blog-post__title {
    max-width: 35ch;
    padding-right: var(--space-4xl);
  }
}
#blog-post__intro {
  text-wrap: balance;
  font-size: 14px;
  margin-top: var(--space-s);
  max-width: 55ch;
}
#tpl-generic #blog-post__intro {
  display: none;
}
#blog-post__meta {
  display: flex;
  gap: var(--space-l);
  color: var(--color-grey-02);
  text-transform: uppercase;
  margin-top: var(--space-xl);
}
#blog-post__meta-author {
  font-size: var(--sub2);
  font-weight: 500;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
}
#blog-post__meta-date {
  font-size: var(--sub2);
  font-weight: 500;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  white-space: nowrap;
}
#blog-post__main-grid {
  height: 100%;
  grid-auto-flow: dense;
  position: relative;
}
#blog-post__main-grid:before {
  right: calc(var(--container-padding) * -1);
  position: absolute;
  font-family:
    IBM Plex Mono,
    monospace;
  font-size: 28px;
  line-height: 1;
  word-break: break-word;
  overflow-wrap: break-word;
  color: var(--color-grey-01);
  z-index: -1;
  top: calc(
    var(--space-m) + var(--sub2) + var(--space-s) + var(--prose-h1) * 2 * 1.2 +
      var(--space-m)
  );
}
@media (max-width: 767.98px) {
  #blog-post__main-grid:before {
    display: none;
  }
}
@media (min-width: 768px) {
  #blog-post__main-grid:before {
    content: "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++";
    max-width: 15ch;
  }
}
@media (min-width: 1440px) {
  #blog-post__main-grid:before {
    content: "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++";
    max-width: 25ch;
  }
}
@media (min-width: 1919px) {
  #blog-post__main-grid:before {
    content: "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++";
    max-width: 35ch;
  }
}
@media (min-width: 2400px) {
  #blog-post__main-grid:before {
    content: "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++";
    max-width: 50ch;
  }
}
#tpl-generic #blog-post__main-grid:before {
  top: 0;
  transform: translateY(-50%);
}
@media (max-width: 1439.98px) {
  #tpl-generic #blog-post__main-grid:before {
    display: none;
  }
}
@media (min-width: 1440px) {
  #tpl-generic #blog-post__main-grid:before {
    content: "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++";
    max-width: 25ch;
  }
}
@media (min-width: 1919px) {
  #tpl-generic #blog-post__main-grid:before {
    content: "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++";
    max-width: 35ch;
  }
}
@media (min-width: 2400px) {
  #tpl-generic #blog-post__main-grid:before {
    content: "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++";
    max-width: 50ch;
  }
}
#blog-post__middle-wrapper {
  --column-span: 4;
  --column-start: 9;
  display: flex;
  align-items: flex-start;
  position: relative;
}
@media (min-width: 1440px) {
  #blog-post__middle-wrapper {
    --column-span: 4;
    --column-start: 9;
  }
}
@media (min-width: 2400px) {
  #blog-post__middle-wrapper {
    --column-span: 5;
    --column-start: 8;
  }
}
#blog-post__summary {
  position: sticky;
  top: calc(var(--site-header-height) + var(--gutter) * 2);
  width: 100%;
  max-width: calc(var(--space-8xl) * 2);
  padding-left: var(--gutter);
  right: 0;
}
#blog-post__summary-inner {
  background-color: var(--body-background-color);
}
@media (min-width: 992px) {
  #blog-post__summary-inner {
    border: 1px solid var(--color-grey-01);
  }
}
@media (max-width: 991.98px) {
  #blog-post__summary-inner {
    display: none;
  }
}
#blog-post__summary-list {
  display: block;
  padding: var(--space-xs);
  border-bottom: 1px solid var(--color-grey-01);
}
#blog-post__summary-list > span:first-child {
  font-size: var(--sub2);
  font-weight: 500;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  color: var(--color-grey-02);
  display: block;
  margin-bottom: var(--space-m);
}
#blog-post__summary-list ul {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
}
#blog-post__summary-list li {
  display: flex;
  flex-direction: row;
  gap: var(--space-xs);
  font-size: 14px;
  position: relative;
  cursor: pointer;
}
#blog-post__summary-list li span:first-child:before {
  content: "";
  position: absolute;
  top: 0;
  right: calc(-1 * var(--space-xs));
  width: calc(100% - 4ch + 0.3em);
  height: 100%;
  background: var(--color-accent-01);
  opacity: 0;
}
#blog-post__summary-list li:hover span:first-child:before {
  opacity: 0.1;
}
#blog-post__summary-list li.is-active span:first-child:before {
  opacity: 1;
}
#blog-post__summary-list li.is-active span:last-child:before {
  content: "[ ";
}
#blog-post__summary-list li.is-active span:last-child:after {
  content: " ]";
}
#blog-post__summary-list li span:first-child {
  flex-shrink: 0;
}
#blog-post__summary-list li span:last-child {
  position: relative;
  display: block;
}
#blog-post__summary-tags-desktop,
#blog-post__summary-tags-mobile {
  line-height: 1;
}
#blog-post__summary-tags-desktop > span:first-child,
#blog-post__summary-tags-mobile > span:first-child {
  display: block;
  color: var(--color-grey-02);
  margin-bottom: var(--space-m);
}
#blog-post__summary-tags-desktop ul,
#blog-post__summary-tags-mobile ul {
  display: flex;
  gap: var(--space-s);
}
#blog-post__summary-tags-desktop a,
#blog-post__summary-tags-mobile a {
  position: relative;
}
#blog-post__summary-tags-desktop a:hover:before,
#blog-post__summary-tags-mobile a:hover:before {
  opacity: 1;
  transition:
    transform 1s var(--fast-start-easing),
    opacity 0s var(--fast-start-easing);
  transform: translate(-0.35em, -50%);
}
#blog-post__summary-tags-desktop a:hover:after,
#blog-post__summary-tags-mobile a:hover:after {
  opacity: 1;
  transition:
    transform 1s var(--fast-start-easing),
    opacity 0s var(--fast-start-easing);
  transform: translate(0.35em, -50%);
}
#blog-post__summary-tags-desktop a:before,
#blog-post__summary-tags-desktop a:after,
#blog-post__summary-tags-mobile a:before,
#blog-post__summary-tags-mobile a:after {
  position: absolute;
  top: 50%;
  transition:
    transform 1s var(--fast-start-easing),
    opacity 1s var(--fast-start-easing);
}
#blog-post__summary-tags-desktop a:before,
#blog-post__summary-tags-mobile a:before {
  content: "[";
  left: 0;
  transform: translate(-0.5em, -50%);
}
#blog-post__summary-tags-desktop a:after,
#blog-post__summary-tags-mobile a:after {
  content: "]";
  right: 0;
  transform: translate(0.5em, -50%);
}
#blog-post__summary-tags-desktop {
  font-size: var(--sub2);
  font-weight: 500;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  position: relative;
  display: block;
  padding: var(--space-xs);
}
#blog-post__summary-tags-desktop:before {
  content: "";
  position: absolute;
  bottom: 0;
  right: 0;
  width: 100%;
  height: 1px;
  background: var(--color-grey-01);
}
#blog-post__summary-tags-desktop ul {
  display: flex;
  flex-wrap: wrap;
  margin: 0 0.5em;
}
#blog-post__summary-tags-mobile {
  font-size: var(--sub2);
  font-weight: 500;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  display: none;
  border-top: 1px solid var(--color-grey-01);
  margin-top: var(--space-2xl);
  padding-top: var(--space-s);
}
#blog-post__summary-tags-mobile ul {
  margin: 0 0.5em;
}
@media (min-width: 768px) and (max-width: 991.98px) {
  #blog-post__summary-tags-mobile {
    margin-left: var(--column-width-gutter);
    margin-right: var(--column-width-gutter);
  }
}
@media (max-width: 991.98px) {
  #blog-post__summary-tags-mobile {
    display: block;
  }
}
#blog-post__summary-social-desktop {
  font-size: var(--sub2);
  font-weight: 500;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  display: block;
  padding: var(--space-xs);
  line-height: 1;
}
#blog-post__summary-social-desktop a {
  position: relative;
}
#blog-post__summary-social-desktop a:hover:before {
  opacity: 1;
  transition:
    transform 1s var(--fast-start-easing),
    opacity 0s var(--fast-start-easing);
  transform: translate(-0.35em, -50%);
}
#blog-post__summary-social-desktop a:hover:after {
  opacity: 1;
  transition:
    transform 1s var(--fast-start-easing),
    opacity 0s var(--fast-start-easing);
  transform: translate(0.35em, -50%);
}
#blog-post__summary-social-desktop a:before,
#blog-post__summary-social-desktop a:after {
  position: absolute;
  top: 50%;
  transition:
    transform 1s var(--fast-start-easing),
    opacity 1s var(--fast-start-easing);
  opacity: 0;
}
#blog-post__summary-social-desktop a:before {
  content: "[";
  left: 0;
  transform: translate(-0.5em, -50%);
}
#blog-post__summary-social-desktop a:after {
  content: "]";
  right: 0;
  transform: translate(0.5em, -50%);
}
#blog-post__summary-social-mobile {
  border-top: 1px solid var(--color-grey-01);
  margin-top: var(--space-s);
  padding-top: var(--space-s);
  font-size: var(--sub2);
  font-weight: 500;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  display: none;
}
@media (min-width: 768px) and (max-width: 991.98px) {
  #blog-post__summary-social-mobile {
    margin-left: var(--column-width-gutter);
    margin-right: var(--column-width-gutter);
  }
}
#blog-post__summary-social-desktop > span:first-child,
#blog-post__summary-social-mobile > span:first-child {
  font-size: var(--sub2);
  font-weight: 500;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  display: block;
  color: var(--color-grey-02);
  margin-bottom: var(--space-m);
}
#blog-post__summary-social-desktop ul,
#blog-post__summary-social-mobile ul {
  display: flex;
  gap: var(--space-xs);
}
#blog-post__body {
  --column-span: 12;
  --column-start: 1;
  background-color: var(--body-background-color);
}
@media (min-width: 768px) {
  #blog-post__body {
    --column-span: 10;
    --column-start: 2;
    padding: 0 var(--space-m-l) var(--space-xl);
  }
  #tpl-blog #blog-post__body {
    border-left: 1px solid var(--color-grey-01);
    border-bottom: 1px solid var(--color-grey-01);
    border-right: 1px solid var(--color-grey-01);
  }
}
@media (min-width: 992px) {
  #blog-post__body {
    --column-span: 8;
    --column-start: 1;
  }
}
@media (min-width: 1440px) {
  #blog-post__body {
    --column-span: 6;
    --column-start: 3;
  }
}
@media (min-width: 2400px) {
  #blog-post__body {
    --column-span: 5;
    --column-start: 3;
  }
}
#blog-post__related-posts {
  margin-top: var(--space-7xl);
  position: relative;
}
#blog-post__related-posts:before {
  right: calc(var(--container-padding) * -1);
  top: 0;
  content: "++++++++++++++++++++++++++++++";
  position: absolute;
  font-family:
    IBM Plex Mono,
    monospace;
  font-size: 23px;
  max-width: 6ch;
  line-height: 1;
  word-break: break-word;
  overflow-wrap: break-word;
  color: var(--color-grey-01);
  z-index: -1;
}
@media (min-width: 768px) {
  #blog-post__related-posts:before {
    display: none;
  }
}
#blog-post__related-posts-header {
  --column-start: 1;
  --column-span: 12;
  display: flex;
  justify-content: space-between;
}
@media (min-width: 1440px) {
  #blog-post__related-posts-header {
    --column-start: 2;
    --column-span: 10;
  }
}
#blog-post__related-posts-header-title {
  font-size: var(--prose-h2);
  font-weight: 500;
}
#blog-post__related-posts-nav {
  gap: var(--space-xs);
  align-self: flex-end;
}
@media (max-width: 767.98px) {
  #blog-post__related-posts-nav {
    display: none;
  }
}
#blog-post__related-posts-nav-prev,
#blog-post__related-posts-nav-next {
  font-size: var(--btn1);
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  font-weight: 500;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  display: inline-block;
  line-height: 1;
  color: var(--color-dark-01);
  padding: 3px;
  cursor: pointer;
}
#blog-post__related-posts-nav-prev:hover,
#blog-post__related-posts-nav-next:hover {
  background: var(--color-grey-01);
}
#blog-post__related-posts-nav-prev:before,
#blog-post__related-posts-nav-next:before {
  content: "[";
  padding-right: 0.25em;
  transition: transform 0.5s var(--fast-start-easing);
  display: inline-block;
}
#blog-post__related-posts-nav-prev:after,
#blog-post__related-posts-nav-next:after {
  content: "]";
  padding-left: 0.25em;
  display: inline-block;
  transition: transform 0.5s var(--fast-start-easing);
}
#blog-post__related-posts-nav-prev:hover:before,
#blog-post__related-posts-nav-next:hover:before {
  transform: translate(0.1em);
}
#blog-post__related-posts-nav-prev:hover:after,
#blog-post__related-posts-nav-next:hover:after {
  transform: translate(-0.1em);
}
#blog-post__related-posts-nav-prev.is-disabled,
#blog-post__related-posts-nav-next.is-disabled {
  pointer-events: none;
  color: var(--color-grey-02);
}
#blog-post__related-posts-title {
  font-size: var(--h2);
  line-height: 1.04;
  font-weight: 300;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
}
#blog-post__related-posts-list-wrapper {
  --column-start: 1;
  --column-span: 12;
  overflow: hidden;
}
@media (min-width: 1440px) {
  #blog-post__related-posts-list-wrapper {
    --column-start: 2;
    --column-span: 10;
  }
}
@media (max-width: 767.98px) {
  #blog-post__related-posts-list-wrapper {
    margin-left: calc(var(--container-padding) * -1);
    padding-left: calc(var(--container-padding) * 1);
    margin-right: calc(var(--container-padding) * -1);
    padding-right: calc(var(--container-padding) * 1);
  }
  #blog-post__related-posts-list-wrapper:has(
    .blog-post__related-posts-list-item:not(:only-child)
  ) {
    overflow-x: scroll;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
    gap: 0;
  }
  #blog-post__related-posts-list-wrapper:has(
      .blog-post__related-posts-list-item:not(:only-child)
    )::-webkit-scrollbar {
    display: none;
  }
}
#blog-post__related-posts-list {
  display: flex;
  margin-top: var(--space-l);
}
@media (min-width: 768px) {
  #blog-post__related-posts-list {
    gap: var(--gutter);
  }
}
.blog-post__related-posts-list-item {
  flex-shrink: 0;
  width: calc(var(--column-width) * 12 + var(--gutter) * 11);
}
@media (min-width: 768px) {
  .blog-post__related-posts-list-item {
    width: calc((var(--column-width-gutter) * 12 - var(--gutter) * 2) / 2);
  }
}
@media (min-width: 992px) {
  .blog-post__related-posts-list-item {
    width: calc((var(--column-width-gutter) * 12 - var(--gutter) * 3) / 3);
  }
}
@media (min-width: 1440px) {
  .blog-post__related-posts-list-item {
    width: calc((var(--column-width-gutter) * 10 - var(--gutter) * 3) / 3);
  }
}
@media (max-width: 767.98px) {
  .blog-post__related-posts-list-item:not(:only-child) {
    scroll-snap-align: start;
    padding-left: var(--container-padding);
  }
}
#contact {
  margin: var(--space-4xl) 0;
  position: relative;
}
@media (max-width: 767.98px) {
  #contact {
    margin: var(--space-xl) 0 var(--space-3xl);
  }
}
#contact:before {
  content: "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++";
  position: absolute;
  right: 0;
  top: 0;
  font-family:
    IBM Plex Mono,
    monospace;
  word-break: break-word;
  overflow-wrap: break-word;
  z-index: -1;
  color: var(--color-grey-01);
  max-width: 15ch;
  line-height: 1;
}
@media (max-width: 767.98px) {
  #contact:before {
    font-size: 23px;
    content: "+++";
    right: var(--container-padding);
    top: calc(var(--space-2xl));
  }
}
@media (min-width: 768px) {
  #contact:before {
    font-size: 28px;
  }
}
#contact:after {
  content: "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++";
  position: absolute;
  left: 0;
  bottom: calc(var(--space-8xl) * 0.5);
  font-family:
    IBM Plex Mono,
    monospace;
  word-break: break-word;
  overflow-wrap: break-word;
  font-size: 28px;
  z-index: -1;
  color: var(--color-grey-01);
  max-width: 22ch;
  line-height: 1;
}
@media (max-width: 767.98px) {
  #contact:after {
    display: none;
  }
}
#contact__header-title {
  font-size: var(--h2);
  line-height: 1.04;
  font-weight: 300;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  margin-top: var(--space-xs);
}
#contact__top {
  --column-span: 4;
  --column-start: 2;
  position: relative;
}
@media (max-width: 767.98px) {
  #contact__top {
    --column-start: 1;
    --column-span: 12;
  }
}
@media (min-width: 1440px) {
  #contact__top:before {
    content: "+++";
    position: absolute;
    top: 0;
    right: 0;
    bottom: calc(var(--space-8xl) * 0.5);
    font-family:
      IBM Plex Mono,
      monospace;
    word-break: break-word;
    overflow-wrap: break-word;
    font-size: 28px;
    z-index: -1;
    color: var(--color-grey-01);
    min-width: 5ch;
    line-height: 1;
  }
}
#contact__header-caption {
  font-size: var(--sub1);
  font-weight: 400;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
}
#contact__bottom {
  margin-top: var(--space-xl);
}
@media (max-width: 767.98px) {
  #contact__bottom {
    margin-top: var(--space-s);
  }
}
#contact__description {
  --column-span: 4;
  --column-start: 2;
  background: var(--body-background-color);
  align-self: flex-start;
  max-width: 40ch;
  text-wrap: balance;
  font-size: var(--body1);
  line-height: 1.5;
  font-family: var(--font-family-body);
}
#contact__description a {
  text-decoration: underline;
  text-underline-offset: 0.15rem;
}
@media (max-width: 1439.98px) {
  #contact__description {
    --column-start: 2;
    --column-span: 10;
  }
}
@media (max-width: 767.98px) {
  #contact__description {
    --column-start: 1;
    --column-span: 12;
  }
}
#contact__forms {
  --column-span: 5;
  --column-start: 7;
  position: relative;
}
@media (max-width: 1439.98px) {
  #contact__forms {
    --column-start: 2;
    --column-span: 10;
    margin-top: var(--space-2xl);
  }
}
@media (max-width: 767.98px) {
  #contact__forms {
    --column-start: 1;
    --column-span: 12;
  }
}
@media (min-width: 1440px) {
  #contact__forms {
    margin-top: calc(-1 * var(--space-xl) - 2 * var(--h2) * 1.04);
    margin-right: calc(var(--container-padding) * 1);
  }
  #contact__forms:before {
    content: "+++";
    position: absolute;
    bottom: 0;
    right: calc(var(--column-width-gutter) * -1);
    font-family:
      IBM Plex Mono,
      monospace;
    word-break: break-word;
    overflow-wrap: break-word;
    font-size: 28px;
    z-index: -1;
    line-height: 1;
  }
}
@media (min-width: 1919px) {
  #contact__forms {
    --column-span: 4;
    margin-right: 0;
  }
}
#contact__forms-nav {
  display: flex;
  gap: var(--space-s);
}
#contact__forms-description {
  margin-top: var(--space-s);
  max-width: 55ch;
  position: relative;
  background: var(--body-background-color);
  font-size: var(--body1);
  line-height: 1.5;
  font-family: var(--font-family-body);
}
#contact__forms-description a {
  text-decoration: underline;
  text-underline-offset: 0.15rem;
}
#contact__forms-description:after {
  content: "++++++++++++++++++++";
  position: absolute;
  top: calc(100% + var(--space-l) * 0.3);
  left: calc(100vw - var(--container-padding) * 1 - 5ch);
  bottom: calc(var(--space-8xl) * 0.5);
  font-family:
    IBM Plex Mono,
    monospace;
  word-break: break-word;
  overflow-wrap: break-word;
  font-size: 23px;
  z-index: -1;
  color: var(--color-grey-01);
  min-width: 5ch;
  line-height: 1;
}
@media (min-width: 768px) {
  #contact__forms-description:after {
    display: none;
  }
}
#contact__forms-nav-company,
#contact__forms-nav-individual {
  font-size: var(--sub1);
  font-weight: 400;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  display: inline-block;
  line-height: 1;
  color: var(--color-dark-01);
  padding: 3px;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
#contact__forms-nav-company:before,
#contact__forms-nav-individual:before {
  content: "[";
  padding-right: 0.25em;
  transition: transform 0.5s var(--fast-start-easing);
  display: inline-block;
}
#contact__forms-nav-company:after,
#contact__forms-nav-individual:after {
  content: "]";
  padding-left: 0.25em;
  display: inline-block;
  transition: transform 0.5s var(--fast-start-easing);
}
#contact__forms-nav-company.is-active:before,
#contact__forms-nav-company:hover:before,
#contact__forms-nav-individual.is-active:before,
#contact__forms-nav-individual:hover:before {
  transform: translate(0.1em);
}
#contact__forms-nav-company.is-active:after,
#contact__forms-nav-company:hover:after,
#contact__forms-nav-individual.is-active:after,
#contact__forms-nav-individual:hover:after {
  transform: translate(-0.1em);
}
#contact__forms-nav-company.is-active,
#contact__forms-nav-individual.is-active {
  background: var(--color-accent-01);
  pointer-events: none;
}
#contact__forms-company {
  display: none;
}
#contact__forms-company.is-active {
  display: block;
}
#contact__forms-individual {
  display: none;
}
#contact__forms-individual.is-active {
  display: block;
}
.contact__form {
  --color: var(--color-dark-01);
  --background: var(--color-grey-01);
  margin-top: var(--space-xl);
}
.contact__form button {
  margin-top: var(--space-xl);
}
@media (max-width: 767.98px) {
  .contact__form {
    margin-top: calc(var(--space-l) * 1.2);
  }
}
.contact__form-field {
  display: flex;
  text-transform: uppercase;
  align-items: center;
  position: relative;
}
.contact__form-field + .contact__form-field {
  margin-top: var(--space-s);
}
.contact__form-field label {
  font-size: var(--input-text);
  line-height: 1.5;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  font-weight: 500;
  line-height: 1;
  box-sizing: content-box;
  min-width: 16ch;
  padding: var(--space-s);
  white-space: nowrap;
  color: var(--color-grey-02);
  pointer-events: none;
  position: absolute;
}
.contact__form-field input {
  font-size: var(--input-text);
  line-height: 1.5;
  font-family: var(--font-family-heading);
  font-weight: 500;
  line-height: 1;
  text-transform: uppercase;
  width: 100%;
  background: var(--body-background-color);
  padding: var(--space-s);
  padding-left: calc(16ch + var(--space-s) * 2);
  border: 1px solid var(--color-grey-01);
}
.contact__form-field input::-moz-placeholder {
  text-transform: uppercase;
  color: var(--color-grey-02);
}
.contact__form-field input::placeholder {
  text-transform: uppercase;
  color: var(--color-grey-02);
}
.contact__form-field.optional input {
  padding-right: calc(10ch + var(--space-s));
}
@media (max-width: 767.98px) {
  .contact__form-field.optional input {
    padding-right: var(--space-s);
  }
}
.contact__form-field.optional:after {
  font-size: var(--input-text);
  line-height: 1.5;
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  font-weight: 500;
  line-height: 1;
  content: "[ optional ]";
  position: absolute;
  right: var(--space-s);
  top: 50%;
  transform: translateY(-50%);
  color: var(--color-grey-01);
  z-index: 100;
}
@media (max-width: 767.98px) {
  .contact__form-field.optional:after {
    display: none;
  }
}
@media (max-width: 767.98px) {
  #contact__forms-company-form-submit,
  #contact__forms-individual-form-submit {
    text-align: center;
  }
}
.is-loading #ui {
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  pointer-events: none;
}
#ui:before {
  position: fixed;
  inset: 0;
  pointer-events: none;
  content: "";
  background: #0003;
  z-index: 9999;
  opacity: 0;
  transition: opacity 0s 0s;
}
.is-loading #ui:before {
  transition: opacity 1s 0.2s;
  pointer-events: auto;
  opacity: 1;
}
.notification-bar {
  position: fixed;
  top: calc(var(--space-s) + var(--site-header-height));
  left: 50%;
  transform: translate(-50%);
  z-index: 9994;
  display: none;
}
@media (max-width: 767.98px) {
  .notification-bar {
    top: calc(var(--space-xs) + var(--site-header-height));
    min-width: 320px;
  }
}
.notification-content {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 10px 12px 20px;
  background: var(--color-accent-02);
  color: var(--color-dark-01);
  border: 1px solid var(--color-dark-01);
  font-size: 14px;
}
@media (max-width: 767.98px) {
  .notification-content {
    padding: 10px 16px;
    font-size: 13px;
    gap: 4px;
  }
}
.notification-text {
  flex: 1;
  line-height: 1.4;
}
.notification-link {
  color: var(--color-dark-01);
  text-decoration: underline;
  transition: color 0.2s ease;
  font-weight: 500;
}
.notification-link:hover {
  text-decoration: underline;
}
.notification-close {
  background: none;
  border: none;
  color: var(--color-dark-01);
  font-size: 20px;
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
  padding: 0;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
  flex-shrink: 0;
  position: relative;
}
.notification-close:before,
.notification-close:after {
  pointer-events: none;
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 2px;
  height: 50%;
  background-color: var(--color-dark-01);
}
.notification-close:before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.notification-close:after {
  transform: translate(-50%, -50%) rotate(-45deg);
}
@media (max-width: 767.98px) {
  .notification-close {
    font-size: 18px;
    width: 20px;
    height: 20px;
  }
}
.u-col-1 {
  --column-span: 1;
}
.u-col-6 {
  --column-span: 6;
}
code[class*="language-"],
pre[class*="language-"] {
  color: #ccc;
  background: none;
  font-family:
    Consolas,
    Monaco,
    Andale Mono,
    Ubuntu Mono,
    monospace;
  font-size: 1em;
  text-align: left;
  white-space: pre;
  word-spacing: normal;
  word-break: normal;
  word-wrap: normal;
  line-height: 1.5;
  -moz-tab-size: 4;
  -o-tab-size: 4;
  tab-size: 4;
  hyphens: none;
}
pre[class*="language-"] {
  padding: 1em;
  margin: 0.5em 0;
  overflow: auto;
}
:not(pre) > code[class*="language-"],
pre[class*="language-"] {
  background: #2d2d2d;
}
:not(pre) > code[class*="language-"] {
  padding: 0.1em;
  border-radius: 0.3em;
  white-space: normal;
}
.token.comment,
.token.block-comment,
.token.prolog,
.token.doctype,
.token.cdata {
  color: #999;
}
.token.punctuation {
  color: #ccc;
}
.token.tag,
.token.attr-name,
.token.namespace,
.token.deleted {
  color: #e2777a;
}
.token.function-name {
  color: #6196cc;
}
.token.boolean,
.token.number,
.token.function {
  color: #f08d49;
}
.token.property,
.token.class-name,
.token.constant,
.token.symbol {
  color: #f8c555;
}
.token.selector,
.token.important,
.token.atrule,
.token.keyword,
.token.builtin {
  color: #cc99cd;
}
.token.string,
.token.char,
.token.attr-value,
.token.regex,
.token.variable {
  color: #7ec699;
}
.token.operator,
.token.entity,
.token.url {
  color: #67cdcc;
}
.token.important,
.token.bold {
  font-weight: 700;
}
.token.italic {
  font-style: italic;
}
.token.entity {
  cursor: help;
}
.token.inserted {
  color: green;
}
div.code-toolbar {
  position: relative;
}
div.code-toolbar > .toolbar {
  position: absolute;
  z-index: 10;
  top: 0.3em;
  right: 0.2em;
  transition: opacity 0.3s ease-in-out;
  opacity: 0;
}
div.code-toolbar:hover > .toolbar {
  opacity: 1;
}
div.code-toolbar:focus-within > .toolbar {
  opacity: 1;
}
div.code-toolbar > .toolbar > .toolbar-item {
  display: inline-block;
}
div.code-toolbar > .toolbar > .toolbar-item > a {
  cursor: pointer;
}
div.code-toolbar > .toolbar > .toolbar-item > button {
  background: none;
  border: 0;
  color: inherit;
  font: inherit;
  line-height: normal;
  overflow: visible;
  padding: 0;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
}
div.code-toolbar > .toolbar > .toolbar-item > a,
div.code-toolbar > .toolbar > .toolbar-item > button,
div.code-toolbar > .toolbar > .toolbar-item > span {
  color: #bbb;
  font-size: 0.8em;
  padding: 0 0.5em;
  background: #f5f2f0;
  background: #e0e0e033;
  box-shadow: 0 2px #0003;
  border-radius: 0.5em;
}
div.code-toolbar > .toolbar > .toolbar-item > a:hover,
div.code-toolbar > .toolbar > .toolbar-item > a:focus,
div.code-toolbar > .toolbar > .toolbar-item > button:hover,
div.code-toolbar > .toolbar > .toolbar-item > button:focus,
div.code-toolbar > .toolbar > .toolbar-item > span:hover,
div.code-toolbar > .toolbar > .toolbar-item > span:focus {
  color: inherit;
  text-decoration: none;
}
.copy-to-clipboard-button {
  background: var(--color-light-01) !important;
  padding: var(--space-2xs) var(--space-s) !important;
  border-radius: 0 !important;
  text-transform: uppercase;
  color: var(--color-dark-01) !important;
  font-weight: 500 !important;
  font-family: var(--font-family-heading) !important;
}

html,
body,
#__next,
#root {
  height: auto !important;
  min-height: 100% !important;
  overflow-y: auto !important;
}
