html {
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  font-family: sans-serif;
}

body {
  margin: 0;
}

article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
  display: block;
}

audio, canvas, progress, video {
  vertical-align: baseline;
  display: inline-block;
}

audio:not([controls]) {
  height: 0;
  display: none;
}

[hidden], template {
  display: none;
}

a {
  background-color: #0000;
}

a:active, a:hover {
  outline: 0;
}

abbr[title] {
  border-bottom: 1px dotted;
}

b, strong {
  font-weight: bold;
}

dfn {
  font-style: italic;
}

h1 {
  margin: .67em 0;
  font-size: 2em;
}

mark {
  color: #000;
  background: #ff0;
}

small {
  font-size: 80%;
}

sub, sup {
  vertical-align: baseline;
  font-size: 75%;
  line-height: 0;
  position: relative;
}

sup {
  top: -.5em;
}

sub {
  bottom: -.25em;
}

img {
  border: 0;
}

svg:not(:root) {
  overflow: hidden;
}

hr {
  box-sizing: content-box;
  height: 0;
}

pre {
  overflow: auto;
}

code, kbd, pre, samp {
  font-family: monospace;
  font-size: 1em;
}

button, input, optgroup, select, textarea {
  color: inherit;
  font: inherit;
  margin: 0;
}

button {
  overflow: visible;
}

button, select {
  text-transform: none;
}

button, html input[type="button"], input[type="reset"] {
  -webkit-appearance: button;
  cursor: pointer;
}

button[disabled], html input[disabled] {
  cursor: default;
}

button::-moz-focus-inner, input::-moz-focus-inner {
  border: 0;
  padding: 0;
}

input {
  line-height: normal;
}

input[type="checkbox"], input[type="radio"] {
  box-sizing: border-box;
  padding: 0;
}

input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

input[type="search"] {
  -webkit-appearance: none;
}

input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

legend {
  border: 0;
  padding: 0;
}

textarea {
  overflow: auto;
}

optgroup {
  font-weight: bold;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

td, th {
  padding: 0;
}



* {
  box-sizing: border-box;
}

html {
  height: 100%;
}



@font-face {
  font-family: ftsystem;
  src: url("./fonts/Frost\ EULA\ Medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}


:root {
  --color--white: #f9f8f7;
  --color--black: #1a1a1a;
  --sizes--grid-gap: 1rem;
  --color--grey: #7d7c7c;
  --color--brand-color: #ffcb4e;
  --color: #e90000;
}

body {
  background-color: var(--color--white);
  color: var(--color--black);
  letter-spacing: -.01em;
  font-family: ftsystem, Helvetica, Arial, sans-serif;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.3;
}

h1 {
  font-weight: 500;
}

h2 {
  margin-top: 20px;
  margin-bottom: 10px;
  font-size: 32px;
  font-weight: 500;
  line-height: 36px;
}

h3 {
  margin-top: 20px;
  margin-bottom: 10px;
  font-size: 24px;
  font-weight: 500;
}

img {
  object-fit: cover;
  width: 100%;
  max-width: 100%;
  height: calc(62.5vw - 1.25rem);
  display: inline-block;
}

.page_cont {
  min-height: 100svh;
  position: relative;
  overflow-x: clip;
}

.u-section {
  max-width: 100%;
  position: relative;
}

.u-container {
  padding: var(--sizes--grid-gap);
  max-width: 2560px;
  margin-left: auto;
  margin-right: auto;
  position: relative;
}

.u-h1 {
  letter-spacing: -.03em;
  font-size: 2rem;
  line-height: 1em;
}

.headline {
  width: 32ch;
}

.menu_wrp {
  z-index: 10;
  padding: var(--sizes--grid-gap);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  pointer-events: none;
  letter-spacing: -.01em;
  background-color: #f9f8f700;
  width: 100vw;
  font-size: .85rem;
  position: fixed;
  inset: 0% 0 0% auto;
}

.u-flex-h {
  display: flex;
}

.link_wrp {
  position: relative;
}

.u-flex-h--apart {
  justify-content: space-between;
  align-items: stretch;
  display: flex;
}

.u-gap-main {
  gap: var(--sizes--grid-gap);
}

.u-gap-small {
  gap: calc(var(--sizes--grid-gap) * .5);
}

.u-no-padding {
  padding: 0;
}

.u-full-height {
  height: 100vh;
  transition: height .5s;
}

.u-flex-v {
  flex-flow: column;
  display: flex;
}

.u-flex-v.u-align-space-between.u-height-100 {
  align-items: flex-end;
}

.work_list_item {
  padding-bottom: 10rem;
  padding-top: calc(var(--sizes--grid-gap) * 2);
  position: relative;
}

.work_item_descr_wrp {
  flex: 1;
  position: sticky;
}

.work_item_descr_wrp.u-flex-v.u-gap-xs {
  top: calc(3 * var(--sizes--grid-gap));
}

.u-divider {
  left: 0%;
  top: var(--sizes--grid-gap);
  opacity: .15;
  background-color: currentColor;
  width: 100%;
  height: 1px;
  position: absolute;
  bottom: auto;
  right: auto;
}

.u-divider.is-top {
  width: calc(100vw - 2 * var(--sizes--grid-gap));
  top: 0;
  left: 1rem;
}

.work_item_descr_cont {
  width: var(--column-width--4);
}

.u-paragraph {
  letter-spacing: 0;
  font-size: .85rem;
}

.u-gap-xs {
  gap: calc(var(--sizes--grid-gap) * .25);
}

.u-hide {
  pointer-events: none;
  display: none;
}

.work_item_content_wrp {
  width: var(--column-width--9);
}

.u-gap-l {
  gap: calc(var(--sizes--grid-gap) * 2);
}

.work_item_descr_wrp--mobile {
  width: var(--column-width--8);
}

.u-width-50 {
  width: 50%;
}

.email_animation_btn {
  grid-column-gap: .3em;
  grid-row-gap: .3em;
  white-space: nowrap;
  cursor: pointer;
  background-color: #0000;
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-end;
  height: 1.2em;
  padding-bottom: .2em;
  padding-left: 0;
  padding-right: 0;
  line-height: 1em;
  display: flex;
  position: relative;
  overflow: hidden;
}

.u-width-100 {
  width: 100%;
}

.info-height {
  width: 36ch;
  min-height: 40rem;
}

.u-flex-h--apart-center {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  display: flex;
}

.u-grid-outline {
  z-index: 999;
  pointer-events: none;
  display: none;
  position: fixed;
  inset: 0%;
}

.u-grid {
  gap: var(--sizes--grid-gap);
  grid-template-columns: repeat(12, 1fr);
  display: grid;
}

.u-grid-element {
  background-color: #0000001a;
  width: 100%;
  height: 100%;
}

.u-height-100 {
  height: 100%;
}

.work_menu_arrow_wrp {
  padding-top: var(--sizes--grid-gap);
  padding-bottom: var(--sizes--grid-gap);
  cursor: pointer;
  padding-left: .5rem;
  padding-right: calc(var(--sizes--grid-gap) * 1.2);
  height: 100%;
}

.work_menu_arrow_wrp.is-inverted {
  transform-style: preserve-3d;
  transform: rotateX(0)rotateY(180deg)rotateZ(0);
}

.arrow_svg {
  width: 1rem;
  height: 1rem;
  transition: transform .2s;
}

.u-height-0 {
  height: 0;
}

.js-dialog_outer {
  padding: 0px var(--sizes--grid-gap) var(--sizes--grid-gap);
  flex-flow: column;
  justify-content: flex-end;
  align-items: center;
  width: 100%;
  max-width: 100vw;
  display: flex;
  position: relative;
  overflow: hidden;
}

.js-dialog_block {
  grid-gap: var(--grid-gutter);
  grid-template-columns: repeat(var(--grid-columns), minmax(0, 1fr));
  display: grid;
}

.js-dialog_content {
  transition: opacity linear;
}

.js-dialog_inner {
  z-index: 2;
  scrollbar-width: thin;
  scrollbar-color: color-mix(in hsl, var(--color), transparent 50%) transparent;
  backface-visibility: hidden;
  width: var(--column-width--2);
  background-color: #fff;
  border: 1px solid #7c7c7c33;
  border-bottom-color: #e7e7e7;
  min-width: 15rem;
  max-width: 18rem;
  height: auto;
  padding-bottom: 0;
  position: relative;
  overflow: hidden auto;
}

.js-dialog_drawer-button {
  z-index: 2;
  cursor: grab;
  background-color: #0000;
  justify-content: center;
  align-items: flex-start;
  width: 100%;
  height: 1.5rem;
  padding: .5rem 0 0;
  display: flex;
  position: sticky;
  top: 0;
}

.js-dialog_drawer-button.is-open {
  z-index: 3;
  cursor: pointer;
  position: absolute;
  inset: 0% 0% auto;
}

.js-dialog_button-close {
  z-index: 2;
  opacity: 0;
  color: #000;
  background-color: #0000;
  border-style: none;
  padding: 0;
  position: relative;
}

.icon {
  -webkit-user-select: none;
  user-select: none;
  transform-style: preserve-3d;
  flex-shrink: 0;
  width: 1.5rem;
  height: 1.5rem;
  display: block;
  transform: translateZ(0);
}

.js-dialog {
  z-index: 1000;
  content-visibility: auto;
  backface-visibility: hidden;
  background-color: #0000;
  border-style: none;
  width: 100%;
  max-width: 100vw;
  height: 100%;
  min-height: 100dvh;
  max-height: 100lvh;
  margin: 0;
  padding: 0;
  display: grid;
  position: fixed;
  inset: 0%;
  overflow: hidden;
  transform: none;
}

.js-dialog_backdrop {
  z-index: 1;
  cursor: pointer;
  background-color: #00000040;
  border-style: none;
  padding: 0;
  position: absolute;
  inset: 0%;
}

.js-dialog_drawer-hider {
  background-color: #7c7c7c33;
  border-radius: .1875rem;
  width: 4rem;
  height: .3125rem;
}

.js-dialog_inner_wrp {
  margin-top: var(--sizes--grid-gap);
  border-bottom: 1px solid #e7e7e7;
  transition: border-color .3s;
  overflow: hidden;
}

.progress-opacity {
  opacity: calc(1 - var(--progress));
}

.work_modal_content {
  z-index: 2;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  display: flex;
}

.work_modal_content_wrp {
  z-index: 3;
  background-color: #fff;
  height: 100%;
  padding-top: 1.5rem;
  position: absolute;
  inset: 0% 0% auto;
}

.js-dialog_drawer-opener {
  background-color: #7c7c7c33;
  border-radius: .1875rem;
  width: 4rem;
  height: .3125rem;
}

.work_modal_content_main_link {
  flex-flow: column;
  flex: 1;
  justify-content: flex-end;
  align-items: center;
  height: 2rem;
  display: flex;
  overflow: hidden;
}

.work_modal_content_main_link_wrp {
  justify-content: center;
  align-items: center;
  height: 2rem;
  padding-bottom: .3rem;
  display: none;
}

.u-text-main {
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.3em;
}

.js-dialog_inner_hide_wrp {
  transition: transform .3s;
}

.u-img {
  aspect-ratio: 1.6;
  object-fit: cover;
  height: auto;
}

.project_title {
  opacity: .61;
  letter-spacing: 0;
  font-size: .85rem;
}

.sec-current {
  display: flex;
}

.u-video {
  width: 100%;
  overflow: hidden;
}

.u-video-portrait {
  aspect-ratio: 4 / 5;
  width: 100%;
  overflow: hidden;
}

.u-space-line {
  padding-top: 1em;
  display: block;
}

.page_transition_wrp {
  z-index: 999;
  pointer-events: none;
  position: fixed;
  inset: 0%;
}

.page_transition_bg {
  z-index: 1;
  opacity: 0;
  background-color: #00000080;
  position: absolute;
  inset: 0%;
}

.page_transition_overlay {
  z-index: 2;
  background-color: var(--color--white);
  -webkit-clip-path: inset(100% 0% 0%);
  clip-path: inset(100% 0% 0%);
  position: absolute;
  inset: 0%;
}

.u-pointer-auto {
  pointer-events: auto;
}

.u-code-embed {
  display: none;
}

.u-img-fitted {
  height: 80vh;
  max-height: 100vh;
}

.u-split-itm {
  width: calc(50% - calc(var(--sizes--grid-gap) / 2));
  justify-content: center;
  align-self: stretch;
  align-items: center;
  display: flex;
}

.u-align-right {
  justify-content: right;
}

.u-align-space-between {
  justify-content: space-between;
}

.work_list_item_wrp {
  align-items: flex-start;
  position: relative;
}

.work_list_item_wrp.u-flex-h.u-gap-main {
  height: 100%;
}

.work_item_descr_item {
  grid-column-gap: 16px;
  grid-row-gap: 16px;
  background-color: #1a1a1a12;
  grid-template-rows: auto;
  grid-template-columns: 1fr;
  grid-auto-columns: 1fr;
  transition: background-color .2s;
}

.work_item_descr_item:hover {
  background-color: #1a1a1a26;
}

.work_item_descr_item_headline {
  padding: var(--sizes--grid-gap);
  position: relative;
}

.plus_icon {
  width: calc(var(--sizes--grid-gap) * .6);
  height: calc(var(--sizes--grid-gap) * .6);
  justify-content: center;
  align-items: center;
  transition-property: transform;
  transition-duration: .5s;
  transition-timing-function: cubic-bezier(.77, 0, .175, 1);
  display: flex;
  position: relative;
}

.plus_line {
  background-color: currentColor;
  width: 100%;
  height: 1px;
  position: absolute;
}

.plus_line.is-second {
  width: 1px;
  height: 100%;
  transition: transform .5s cubic-bezier(.77, 0, .175, 1);
}

.plus_line.is-second.is-checked {
  transform: rotate(90deg);
}

.item_checkbox {
  z-index: 5;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  position: absolute;
  inset: 0%;
}

.item_content {
  grid-template-rows: 0fr;
  grid-template-columns: 1fr;
  grid-auto-columns: 1fr;
  transition-property: all;
  transition-duration: .5s;
  transition-timing-function: cubic-bezier(.77, 0, .175, 1);
  display: grid;
}

.item_content.is-checked {
  grid-template-rows: 1fr;
}

.content_clip {
  overflow: hidden;
}

.item_content_wrp {
  padding-right: var(--sizes--grid-gap);
  padding-bottom: var(--sizes--grid-gap);
  padding-left: var(--sizes--grid-gap);
}

.u-button {
  padding-right: var(--sizes--grid-gap);
  padding-left: var(--sizes--grid-gap);
  color: var(--color--white);
  cursor: pointer;
  padding-top: calc(.5 * var(--sizes--grid-gap));
  padding-bottom: calc(.75 * var(--sizes--grid-gap));
  margin-right: auto;
  margin-top: calc(.75 * var(--sizes--grid-gap));
  background-color: #1a1a1a;
  line-height: 1;
  transition-property: color, background-color;
  transition-duration: .2s, .2s;
  transition-timing-function: ease, ease;
}

.u-button:hover {
  color: var(--color--black);
  background-color: #1a1a1a26;
}

.u-button:active {
  background-color: #1a1a1a40;
}

.u-button:focus, .u-button:focus-visible, .u-button[data-wf-focus-visible] {
  color: var(--color--black);
  background-color: #1a1a1a26;
}

.work_item_content_item {
  height: 100%;
  padding-left: var(--column-width--1);
  padding-right: var(--column-width--1);
  padding-top: calc(var(--column-width--1) * .75);
  padding-bottom: calc(var(--column-width--1) * .75);
  background-color: #1a1a1a12;
  justify-content: center;
  align-self: stretch;
  align-items: center;
  display: flex;
}

.link_wrp-has-line.is-big {
  padding-bottom: .05em;
}

.utility-page-wrap {
  justify-content: center;
  align-items: center;
  width: 100vw;
  max-width: 100%;
  height: 100vh;
  max-height: 100%;
  display: flex;
}

.utility-page-content {
  text-align: center;
  flex-direction: column;
  width: 260px;
  display: flex;
}

.utility-page-form {
  flex-direction: column;
  align-items: stretch;
  display: flex;
}

.u-flex--center {
  flex-flow: column;
  justify-content: center;
  align-items: center;
}

.u-text-xl {
  font-size: 3.5rem;
  line-height: 1.3em;
}

.u-text--centered {
  text-align: center;
}

.u-grid--2 {
  grid-template-rows: auto auto;
  grid-template-columns: 1fr 1fr;
  grid-auto-columns: 1fr;
  display: grid;
}

.u-c6 {
  width: var(--column-width--6);
}

.u-position-relative {
  position: relative;
}

.u-space-v-xl {
  padding-top: 5rem;
  padding-bottom: 5rem;
}

.u-padding-top {
  padding-top: calc(2 * var(--sizes--grid-gap));
}

.u-text--sec {
  color: var(--color--grey);
}

.sticky_heading_cont {
  position: sticky;
  top: 1rem;
}

.u-grid--3 {
  grid-template-rows: auto;
  grid-template-columns: 1fr 1fr 1fr;
  grid-auto-columns: 1fr;
  display: grid;
}

.cont_logo_wrp {
  aspect-ratio: 2 / 2.5;
  background-color: #1a1a1a12;
  justify-content: center;
  align-self: stretch;
  align-items: center;
  display: flex;
}

.cont_logo_img {
  width: 50%;
  height: 15%;
}

.sticky_blocker {
  z-index: 2;
  background-color: var(--color--white);
  position: sticky;
  top: 3.5rem;
}

.sticky_blocker.u-c6 {
  display: none;
}

.sticky_blocker_elem {
  background-color: var(--color--white);
  margin-left: calc(-1 * var(--sizes--grid-gap));
  height: 100vh;
  position: absolute;
}

.sticky_heading_wrp {
  margin-bottom: -12.5rem;
}

.sticky_heading_wrp.is-last {
  margin-bottom: 1rem;
}

.work_item_content_item--no-padding {
  height: 100%;
  background-color: #1a1a1a12;
  justify-content: center;
  align-self: stretch;
  align-items: center;
  display: flex;
}

.u-unstyled {
  all: unset;
}

.d_list_itm {
  margin-bottom: calc(.5 * var(--sizes--grid-gap));
}

.u-link-sec {
  color: #1a1a1a66;
  transition: color .3s;
}

.u-link-sec:hover, .u-link-sec:focus {
  color: #1a1a1a;
}

.u-text-small {
  font-size: .85rem;
}

@media screen and (max-width: 991px) {
  .js-dialog_content {
    padding-left: 0;
  }

  .js-dialog_inner {
    max-width: none;
  }

  .js-dialog_backdrop {
    background-color: #00000059;
  }

  .item_content {
    transition-duration: .2s;
  }
}

@media screen and (max-width: 767px) {
  body {
    --color--white: #f9f8f7;
    --color--black: #1a1a1a;
    --sizes--grid-gap: 1rem;
    --color--grey: #7d7c7c;
    --color--brand-color: #ffcb4e;
    --color: #e90000;
  }

  .headline {
    width: 100%;
    padding-top: 1rem;
  }

  .menu_wrp {
    background-color: var(--color--white);
    width: 100%;
    padding-top: .35rem;
    padding-bottom: .35rem;
    top: 0%;
    bottom: auto;
  }

  .u-flex-v.u-align-space-between.u-height-100 {
    flex-flow: row;
  }

  .work_item_descr_wrp {
    z-index: 5;
    position: relative;
    top: 0;
  }

  .work_item_descr_wrp.u-flex-h--apart.u-gap-main {
    flex-flow: column;
  }

  .work_item_descr_wrp.u-flex-v.u-gap-xs {
    top: 0;
  }

  .work_item_descr_cont, .work_item_content_wrp, .work_item_descr_wrp--mobile {
    width: 100%;
  }

  .email_animation_btn {
    order: -1;
    justify-content: flex-start;
    align-items: flex-start;
  }

  .info-height {
    min-height: auto;
  }

  .info-height.headline.u-h1 {
    font-size: 1.5rem;
    line-height: 1.1em;
  }

  .js-dialog_content {
    grid-column: 1 / -1;
  }

  .js-dialog_inner {
    width: calc(100vw - 2 * var(--sizes--grid-gap));
    min-width: auto;
  }

  .work_list_item_wrp.u-flex-h.u-gap-main {
    flex-flow: column;
    align-items: stretch;
  }

  .work_item_content_item {
    padding-right: var(--sizes--grid-gap);
    padding-left: var(--sizes--grid-gap);
    padding-top: calc(var(--sizes--grid-gap) * 3);
    padding-bottom: calc(var(--sizes--grid-gap) * 3);
  }

  .u-grid--2 {
    grid-template-columns: 1fr;
  }

  .u-space-v-xl {
    padding-top: var(--sizes--grid-gap);
    padding-bottom: var(--sizes--grid-gap);
  }

  .u-grid--3 {
    grid-template-columns: 1fr;
  }

  .cont_logo_wrp {
    padding-right: var(--sizes--grid-gap);
    padding-left: var(--sizes--grid-gap);
    padding-top: calc(var(--sizes--grid-gap) * 3);
    padding-bottom: calc(var(--sizes--grid-gap) * 3);
    aspect-ratio: 5 / 2;
    max-width: 100%;
  }

  .cont_logo_img {
    width: 30%;
    height: 85%;
  }

  .sticky_heading_wrp {
    margin-bottom: var(--sizes--grid-gap);
  }

  .mb--flex-v {
    flex-flow: column;
  }

  .mb--width-100 {
    width: 100%;
  }
}

@media screen and (max-width: 479px) {
  .work_item_descr_wrp--mobile.u-flex-h.u-gap-main {
    flex-flow: column;
  }
}





/* -------------------------------- */






button {
  border: none;
}





:root {
  --transition-duration: 800ms;
  --transition-timing: cubic-bezier(0.23, 1, 0.32, 1);
  --underline-color: currentColor;
  /* Customize your underline color */
  --underline-width: 100%;
  --underline-height: 1px;
  --underline-inset: auto 0 0 auto;
  --current-underline-width: 100%;
}

.link_wrp::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: var(--underline-height);
  inset: var(--underline-inset);
  background-color: currentColor;
  transform: scaleX(0);
  transform-origin: bottom right;
  transition: transform 800ms cubic-bezier(0.23, 1, 0.32, 1);
}

.link_wrp:hover::after,
/* .link_wrp:focus::after, */
.link_wrp:focus-visible::after {
  transform: scaleX(1);
  transform-origin: bottom left;
}

.link_wrp-has-line, .link_wrp.w--current {
  position: relative;
  display: inline-block;
  /* Ensures the pseudo-elements position relative to the link */
}

/* Left underline (visible by default) */
.link_wrp-has-line::before, .link_wrp.sec-current::before, .link_wrp.w--current::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: var(--underline-width);
  height: var(--underline-height);
  inset: var(--underline-inset);
  background-color: var(--underline-color);
  transform-origin: bottom right;
  transform: scaleX(1);
  transition: transform var(--transition-duration) var(--transition-timing);
  transition-delay: 100ms;
  /* Delay when returning to default state */
}

/* Right underline (hidden by default) */
.link_wrp-has-line::after, .link_wrp.w--current::after, .link_wrp.sec-current::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: var(--underline-width);
  height: var(--underline-height);
  inset: var(--underline-inset);
  background-color: var(--underline-color);
  transform-origin: bottom left;
  transform: scaleX(0);
  transition: transform var(--transition-duration) var(--transition-timing);
  transition-delay: 0s;
}

/* Hover state: retract left underline and reveal right underline */
.link_wrp-has-line:hover::before, .link_wrp.w--current:hover::before, .link_wrp.sec-current:hover::before,
/* .link_wrp-has-line, .link_wrp.sec-current:focus::before, */
.link_wrp-has-line:focus-visible::before , .link_wrp.w--current:focus-visible::before , .link_wrp.sec-current:focus-visible::before {
  transform: scaleX(0);
  transition-delay: 0s;
}

.link_wrp-has-line:hover::after, .link_wrp.w--current:hover::after, .link_wrp.sec-current:hover::after,
/* .link_wrp-has-line, .link_wrp.sec-current:focus::after, */
.link_wrp-has-line:focus-visible::after, .link_wrp.w--current:focus-visible::after, .link_wrp.sec-current:focus-visible::after {
  transform: scaleX(1);
  transition-delay: 150ms;
}

.link_wrp-has-line.is-big,
.link_wrp.is-big {
  --underline-height: 2px;
}

.link_wrp::before {
  content: "";
  position: absolute;
  bottom: 0;
  right: 0;
  width: var(--underline-width);
  height: var(--underline-height);
  inset: var(--underline-inset);
  background-color: var(--underline-color);
  transform-origin: bottom left;
  transform: scaleX(0);
  transition: transform var(--transition-duration) var(--transition-timing);
  transition-delay: 50ms;
}



/* -------------------------------- */





h1,
h2,
h3,
p {
    margin: 0;
    hyphens: auto;
}

a {
    color: inherit;
    text-decoration: none;
}

.w-webflow-badge {
    display: none !important;
}

.u-no-selection {
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    -webkit-user-drag: none;
    /* Prevents drag on WebKit browsers */
}

::selection {
    background: #1a1a1a25;
    color: var(--color--black);
}

::-moz-selection {
    background: #1a1a1a25;
    color: var(--color--black);
}

.line-mask,
.word-mask,
.char-mask {
    padding-bottom: 0.2em !important;
    margin-bottom: -0.2em !important;
}

:root {
    --column-count: 12;
    --grid-main: repeat(var(--column-count), minmax(0, 1fr));
    --grid-gap--main: calc(var(--sizes--grid-gap) / 1);
    --grid-1: repeat(1, minmax(0, 1fr));
    --grid-2: repeat(2, minmax(0, 1fr));
    --grid-3: repeat(3, minmax(0, 1fr));
    --grid-4: repeat(4, minmax(0, 1fr));
    --grid-5: repeat(5, minmax(0, 1fr));
    --grid-6: repeat(6, minmax(0, 1fr));
    --grid-7: repeat(7, minmax(0, 1fr));
    --grid-8: repeat(8, minmax(0, 1fr));
    --grid-9: repeat(9, minmax(0, 1fr));
    --grid-10: repeat(10, minmax(0, 1fr));
    --grid-11: repeat(11, minmax(0, 1fr));
    --grid-12: repeat(12, minmax(0, 1fr));
    --grid-gap-total: calc(var(--sizes--grid-gap) * (var(--column-count) - 1));
    --grid-width: calc(min(100vw, 2560px) - calc(var(--sizes--grid-gap) * 2));
    --column-width: calc((var(--grid-width) - var(--grid-gap-total)) / var(--column-count) + var(--sizes--grid-gap));
    --column-width--1: calc(var(--column-width) * 1 - var(--grid-gap--main));
    --column-width--2: calc(var(--column-width) * 2 - var(--grid-gap--main));
    --column-width--3: calc(var(--column-width) * 3 - var(--grid-gap--main));
    --column-width--4: calc(var(--column-width) * 4 - var(--grid-gap--main));
    --column-width--5: calc(var(--column-width) * 5 - var(--grid-gap--main));
    --column-width--6: calc(var(--column-width) * 6 - var(--grid-gap--main));
    --column-width--7: calc(var(--column-width) * 7 - var(--grid-gap--main));
    --column-width--8: calc(var(--column-width) * 8 - var(--grid-gap--main));
    --column-width--9: calc(var(--column-width) * 9 - var(--grid-gap--main));
    --column-width--10: calc(var(--column-width) * 10 - var(--grid-gap--main));
    --column-width--11: calc(var(--column-width) * 11 - var(--grid-gap--main));
    --column-width--12: calc(var(--column-width) * 12 - var(--grid-gap--main));
}

.u-grid-outline .u-container {
    padding-top: 0;
    padding-bottom: 0;
}




/* -------------------------------- */





[data-theme="light"] {
  --color: var(--ci-black);
  --color-background: var(--ci-cream);
  --selection-foreground: var(--color-accent);
  --selection-background: var(--ci-black);
}

.js-dialog {
  --dialog-animation-speed: .75s;
  /* this is your complete animation time */
  --backdrop-speed: 1s;
  --backdrop-ease: cubic-bezier(.62, .08, 0, 1);
  --modal-speed: .75s;
  --modal-ease: cubic-bezier(.62, .08, 0, 1);
  --close-button-speed: .45s;
  --close-button-ease: cubic-bezier(.62, .08, 0, 1);
  --content-speed: .45s;
  --content-ease: cubic-bezier(.215, .61, .355, 1);
  --content-stagger: .05s;
}

/* when reduced motion is activated in user settings */
@media screen and (prefers-reduced-motion) {
  .js-dialog {
      --dialog-animation-speed: .3s;
      /* this is your complete animation time */
      --backdrop-speed: .3s;
      --modal-speed: .3s;
      --close-button-speed: .3s;
  }
}

/* make the native backdrop invisible */
.js-dialog::backdrop {
  opacity: 0;
}

/* when grabbing set mouse to grabbing */
.js-dialog[data-dragging="true"],
.js-dialog[data-dragging="true"] .js-dialog_drawer-button {
  cursor: grabbing;
}

/* set hover and progress on drawer */
.js-dialog_drawer-hider,
.js-dialog_drawer-opener {
  transition: width .3s cubic-bezier(.62, .08, 0, 1);
  position: relative;
}

.js-dialog_drawer-hider::after {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  background-color: rgba(124, 124, 124, 0.35);
  width: calc(0% + (100% * var(--progress)));
  opacity: 1;
  border-radius: .1875rem;
}

.js-dialog[data-dragging="true"] .js-dialog_drawer-hider {
  width: 6rem;
}

@media (hover: hover) and (pointer: fine) {

  .js-dialog_drawer-button:hover .js-dialog_drawer-hider,
  .js-dialog_drawer-button:is(:hover, :focus-visible) .js-dialog_drawer-opener {
      width: 6rem;
  }
}

/* modal animation */
.js-dialog:not([open]) {
  pointer-events: none;
  /* opacity: 1; */
  visibility: visible;
  transition:
      visibility 0s linear var(--dialog-animation-speed),
      pointer-events 0s linear var(--dialog-animation-speed);
}

.js-dialog[open] {
  transition-duration: var(--dialog-animation-speed);
  opacity: 1;
}

.js-dialog:not([open]) .work_modal_content_wrp {
  opacity: 1;
  pointer-events: auto;
  transition:
      opacity .75s ease 0.5s,
      pointer-events 0s linear var(--dialog-animation-speed);
}

.js-dialog[open] .work_modal_content_wrp {
  pointer-events: none;
  opacity: 0;
  transition: opacity .3s ease;
}

.js-dialog:not([open]) .js-dialog_content {
  opacity: 0;
  transition: opacity .5s ease;
}

.js-dialog[open] .js-dialog_content {
  opacity: 1;
  transition: opacity .3s ease .5s;
}

.js-dialog:not([open]) .arrow_svg {
  transform: translateX(0rem);
}

.js-dialog[open] .arrow_svg {
  transform: translateX(1.5rem);
}

/* initial state of actual modal */
.js-dialog:not([open]) .js-dialog_inner {
  transform: translate3d(0, calc(100% - 5rem), 0)
}

.js-dialog_inner {
  contain: content;
  transform: translate3d(0, var(--ty, 0), 0);
  transition: transform var(--modal-speed) var(--modal-ease);
}

.js-dialog.no-transition .js-dialog_inner {
  transition: none;
}

.js-dialog_inner:focus-visible {
  outline-offset: -.25rem;
}

@media screen and (prefers-reduced-motion) {
  .js-dialog:not([open]) .js-dialog_inner {
      transform: translate3d(0, var(--ty, 0), 0);
      opacity: 0;
  }

  .js-dialog_inner {
      transition: opacity var(--modal-speed) var(--modal-ease);
  }
}

/* preload content for better performance */
.js-dialog_title,
.js-dialog_paragraph,
.js-dialog_visual-number,
.js-dialog_visual-author,
.js-dialog_visual-img {
  content-visibility: auto;
  contain: layout style paint;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

/* initial state of close button */
.js-dialog:not([open]) .js-dialog_button-close {
  transform: translate3d(0, -.75rem, 0) scale(0.8);
  opacity: 0;
  transition: transform var(--close-button-speed) var(--close-button-ease), opacity var(--close-button-speed) var(--close-button-ease);
}

.js-dialog_button-close {
  opacity: 0;
  transition: transform var(--close-button-speed) .15s var(--close-button-ease), opacity var(--close-button-speed) .15s var(--close-button-ease);
  -webkit-tap-highlight-color: transparent;
}

.js-dialog_button-close::after {
  content: "";
  display: block;
  position: absolute;
  inset: -.75rem;
}

.js-dialog_button-close {
  transition: transform .3s cubic-bezier(.62, .08, 0, 1);
}

@media (hover: hover) and (pointer: fine) {
  .js-dialog_button-close:focus-visible {
      opacity: 1;
      transform: scale(1.1) translateZ(0);
  }
}

/* initial state of backdrop when modal is not opened */
.js-dialog:not([open]) .js-dialog_backdrop {
  opacity: 0;
}

.js-dialog_backdrop {
  transition: opacity var(--backdrop-speed) var(--backdrop-ease);
  -webkit-tap-highlight-color: transparent;
}

/* initial state of content when modal is not opened (only when reduce motion is not activated) */
@media screen and (prefers-reduced-motion: no-preference) {

  .js-dialog:not([open]) .js-dialog_title,
  .js-dialog:not([open]) .js-dialog_paragraph.u-h3,
  .js-dialog:not([open]) .js-dialog_visual-img {
      transform: translate3d(0, 2.5rem, 0);
      opacity: 0;
  }

  .js-dialog:not([open]) .js-dialog_paragraph,
  .js-dialog:not([open]) .js-dialog_visual-number,
  .js-dialog:not([open]) .js-dialog_visual-author {
      transform: translate3d(0, 1.25rem, 0);
      opacity: 0;
  }

  .js-dialog_title,
  .js-dialog_paragraph,
  .js-dialog_visual-number,
  .js-dialog_visual-author,
  .js-dialog_visual-img {
      transition: transform var(--content-speed) var(--content-ease), opacity var(--content-speed) var(--content-ease);
      transition-delay: 0s, 0s;
      opacity: 1;
  }

  .js-dialog[open] .js-dialog_title,
  .js-dialog[open] .js-dialog_paragraph,
  .js-dialog[open] .js-dialog_visual-number,
  .js-dialog[open] .js-dialog_visual-author,
  .js-dialog[open] .js-dialog_visual-img {
      transition-delay: calc((var(--dialog-animation-speed) - .2s) + var(--content-stagger) * (var(--index) - 1)), calc((var(--dialog-animation-speed) - .2s) + var(--content-stagger) * (var(--index) - 1));
  }
}




/* -------------------------------- */




.work_menu_arrow_wrp:is(:hover, :focus) .arrow_svg {
  transform: translateX(0.3rem);
}

.work_menu_arrow_wrp:active .arrow_svg {
  transform: translateX(0rem);
}

.js-dialog {
  user-select: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  -webkit-user-drag: none;
  /* Prevents drag on WebKit browsers */
}

[data-arrow-right],
[data-arrow-left] {
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}





/* -------------------------------- */




html:not(.gsap-not-found) [data-prevent-flicker='true'] {
  visibility: hidden;
}

html:not(.gsap-not-found) [data-prevent-flicker="true"] {
  hyphens: none;
}

@media screen and (max-width: 767px) {
  html:not(.gsap-not-found) [data-prevent-flicker='true'] {
      visibility: visible;
      hyphens: auto;
  }
}

html.gsap-not-found [data-prevent-flicker='true'] {
  hyphens: auto !important;
}

.line-mask,
.word-mask,
.char-mask {
  padding-block: 0.1em;
  margin-block: -0.1em;
}





/* -------------------------------- */






.item_content {
  display: grid;
  grid-template-rows: 0fr;
  overflow: hidden;
}

.item_content >

.content_clip {
  overflow: hidden;
}

.work_item_descr_item:has(.item_checkbox:checked) .item_content {
  grid-template-rows: 1fr;
}

.work_item_descr_item:has(.item_checkbox:checked) .plus_line.is-second {
  transform: rotate(90deg);
}


.work_item_descr_item:has(.item_checkbox:checked) .item_content.is-checked {
  grid-template-rows: 0fr;
}

.work_item_descr_item:has(.item_checkbox:checked) .plus_line.is-second.is-checked {
  transform: rotate(0deg);
}



.item_checkbox:checked~.item_content {
  grid-template-rows: 1fr;
}

.item_checkbox:checked~.work_item_descr_item_headline .plus_line.is-second {
  transform: rotate(90deg);
}

.work_item_content_item.padding-t-r {
  padding-left: 0rem;
  padding-bottom: 0rem;
}

.work_item_content_item.padding-t-l {
  padding-right: 0rem;
  padding-bottom: 0rem;
}

.work_item_content_item.padding-b-l {
  padding-right: 0rem;
  padding-top: 0rem;
}

.work_item_content_item.padding-b-r {
  padding-left: 0rem;
  padding-top: 0rem;
}

.no-ratio {
  aspect-ratio: auto;
  object-fit: contain;
}

.object--cover {
  height: 100%;
  object-fit: cover;
}