@font-face {
  font-family: "Gilroy";
  src:
    url("../fonts/Gilroy-Regular.woff2") format("woff2"),
    url("../fonts/Gilroy-Regular.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Gilroy";
  src:
    url("../fonts/Gilroy-Medium.woff2") format("woff2"),
    url("../fonts/Gilroy-Medium.woff") format("woff");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Gilroy";
  src:
    url("../fonts/Gilroy-Semibold.woff2") format("woff2"),
    url("../fonts/Gilroy-Semibold.woff") format("woff");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Gilroy";
  src:
    url("../fonts/Gilroy-Bold.woff2") format("woff2"),
    url("../fonts/Gilroy-Bold.woff") format("woff");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
:root {
  --u: calc(min(100vw, 100vh * 1.77778) / 1920);
  --white: #fff;
  --white-80: rgba(255, 255, 255, 0.82);
  --white-35: rgba(255, 255, 255, 0.35);
  --bg: #1d1020;
  --font-head: "Gilroy", "Urbanist", "Outfit", "Helvetica Neue", Arial,
    sans-serif;
  --font-text: "Satoshi", "Helvetica Neue", Arial, sans-serif;
  --pad-x: calc(80 * var(--u));
  --col-2: 47.5%;
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}
*,
*::before,
*::after {
  box-sizing: border-box;
}
html,
body {
  margin: 0;
  height: 100%;
  color: var(--white);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body {
  font-family: var(--font-text);
}
button {
  font: inherit;
  color: inherit;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
}
h1,
h3,
p,
ul {
  margin: 0;
  padding: 0;
}
ul {
  list-style: none;
}
.hero {
  position: relative;
  width: 100%;
  height: 100svh;
  min-height: calc(560 * var(--u));
  overflow: hidden;
  isolation: isolate;
}
.hero__media {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--bg) url("../assets/poster.jpg") center / cover no-repeat;
}
.hero__video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.hero__shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(
      90deg,
      rgba(20, 8, 24, 0.45) 0%,
      rgba(20, 8, 24, 0) 32%,
      rgba(20, 8, 24, 0) 62%,
      rgba(20, 8, 24, 0.35) 100%
    ),
    linear-gradient(
      180deg,
      rgba(24, 10, 28, 0.4) 0%,
      rgba(24, 10, 28, 0) 40%,
      rgba(18, 6, 22, 0.5) 100%
    ),
    rgba(90, 40, 85, 0.22);
  transition: opacity 0.8s var(--ease);
}
.hero__ui {
  position: absolute;
  inset: 0;
}
.ui-fade {
  transition:
    opacity 0.6s var(--ease),
    transform 0.6s var(--ease),
    visibility 0.6s;
}
.menu-btn {
  position: absolute;
  left: var(--pad-x);
  top: calc(50 * var(--u));
  width: calc(26 * var(--u));
  height: calc(20 * var(--u));
  display: block;
}
.menu-btn svg {
  width: 100%;
  height: 100%;
  display: block;
}
.menu-btn path {
  transition: transform 0.35s var(--ease);
}
.menu-btn:hover path:nth-child(2) {
  transform: translateX(calc(3 * var(--u)));
}
.menu-btn:hover path:nth-child(3) {
  transform: translateX(calc(6 * var(--u)));
}
.intro {
  position: absolute;
  left: var(--pad-x);
  top: calc(168 * var(--u));
  width: calc(340 * var(--u));
  font-size: calc(17.5 * var(--u));
  line-height: calc(21 * var(--u));
  font-weight: 400;
  letter-spacing: -0.003em;
}
.intro p + p {
  margin-top: calc(19 * var(--u));
}
.hide-ui {
  position: absolute;
  left: calc(401 * var(--u));
  top: calc(332 * var(--u));
  width: calc(74 * var(--u));
  height: calc(74 * var(--u));
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(40, 18, 40, 0.35);
  -webkit-backdrop-filter: blur(calc(6 * var(--u)));
  backdrop-filter: blur(calc(6 * var(--u)));
  font-family: var(--font-text);
  font-size: calc(10.5 * var(--u));
  font-weight: 500;
  letter-spacing: -0.01em;
  transition:
    background 0.3s var(--ease),
    transform 0.3s var(--ease);
  z-index: 2;
}
.hide-ui:hover {
  background: rgba(255, 255, 255, 0.14);
  transform: scale(1.06);
}
.headline {
  position: absolute;
  left: var(--col-2);
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(121 * var(--u) * var(--fit, 1));
  line-height: 0.835;
  letter-spacing: -0.035em;
  white-space: nowrap;
}
.principles {
  position: absolute;
  left: var(--col-2);
  top: calc(50% - 60 * var(--u));
}
.principles li + li {
  margin-top: calc(18 * var(--u));
}
.principles h3 {
  font-family: var(--font-text);
  font-size: calc(18 * var(--u));
  line-height: calc(22 * var(--u));
  letter-spacing: -0.005em;
}
.principles p {
  font-size: calc(15 * var(--u));
  line-height: calc(18 * var(--u));
  color: var(--white-80);
}
.stat {
  position: absolute;
  left: var(--pad-x);
  bottom: calc(72 * var(--u));
}
.stat__value {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: calc(96 * var(--u));
  letter-spacing: -0.04em;
  margin-left: calc(-2 * var(--u));
}
.stat__label {
  margin-top: calc(22 * var(--u));
  font-size: calc(18 * var(--u));
  line-height: calc(21 * var(--u));
}
.reel {
  position: absolute;
  left: var(--col-2);
  bottom: calc(76 * var(--u));
  --tw: 165;
  --th: 110;
  --step: 206;
  --i: 0;
}
.reel__track {
  position: relative;
  margin-left: calc(13 * var(--u));
  width: calc((3 * var(--step) + var(--tw)) * var(--u));
  height: calc((var(--th) + 43) * var(--u));
}
.reel__item {
  position: absolute;
  top: 0;
  width: calc(var(--tw) * var(--u));
  height: calc(var(--th) * var(--u));
  overflow: hidden;
  opacity: 0.5;
  transition: opacity 0.4s var(--ease);
}
.reel__item:nth-child(1) {
  left: 0;
}
.reel__item:nth-child(2) {
  left: calc(1 * var(--step) * var(--u));
}
.reel__item:nth-child(3) {
  left: calc(2 * var(--step) * var(--u));
}
.reel__item:nth-child(4) {
  left: calc(3 * var(--step) * var(--u));
}
.reel__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.8s var(--ease);
}
.reel__item:hover {
  opacity: 0.85;
}
.reel__item:hover img {
  transform: scale(1.06);
}
.reel__item.is-active {
  opacity: 1;
}
.reel__item.is-next {
  opacity: 0.85;
}
.reel__frame {
  position: absolute;
  left: calc(-13 * var(--u));
  top: calc(-9 * var(--u));
  width: calc((var(--tw) + 25) * var(--u));
  height: calc((var(--th) + 18) * var(--u));
  pointer-events: none;
  transform: translateX(calc(var(--i) * var(--step) * var(--u)));
  transition: transform 0.7s var(--ease);
}
.reel__frame .c {
  position: absolute;
  width: calc(12 * var(--u));
  height: calc(12 * var(--u));
  border: 0 solid var(--white);
}
.c--tl {
  left: 0;
  top: 0;
  border-left-width: max(1px, calc(1.5 * var(--u))) !important;
  border-top-width: max(1px, calc(1.5 * var(--u))) !important;
}
.c--tr {
  right: 0;
  top: 0;
  border-right-width: max(1px, calc(1.5 * var(--u))) !important;
  border-top-width: max(1px, calc(1.5 * var(--u))) !important;
}
.c--bl {
  left: 0;
  bottom: 0;
  border-left-width: max(1px, calc(1.5 * var(--u))) !important;
  border-bottom-width: max(1px, calc(1.5 * var(--u))) !important;
}
.c--br {
  right: 0;
  bottom: 0;
  border-right-width: max(1px, calc(1.5 * var(--u))) !important;
  border-bottom-width: max(1px, calc(1.5 * var(--u))) !important;
}
.reel__plus {
  position: absolute;
  left: 50%;
  top: 50%;
  width: calc(14 * var(--u));
  height: calc(14 * var(--u));
  transform: translate(-50%, -50%);
  opacity: 0.8;
}
.reel__plus::before,
.reel__plus::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  background: var(--white);
  transform: translate(-50%, -50%);
}
.reel__plus::before {
  width: 100%;
  height: max(1px, calc(1.2 * var(--u)));
}
.reel__plus::after {
  height: 100%;
  width: max(1px, calc(1.2 * var(--u)));
}
.reel__progress {
  position: absolute;
  left: calc(-13 * var(--u));
  top: calc((var(--th) + 41) * var(--u));
  width: calc((var(--tw) + 13) * var(--u));
  height: max(1px, calc(2 * var(--u)));
  background: var(--white-35);
  transform: translateX(calc(var(--i) * var(--step) * var(--u)));
  transition: transform 0.7s var(--ease);
  overflow: hidden;
}
.reel__progress i {
  display: block;
  width: 100%;
  height: 100%;
  background: var(--white);
  transform-origin: left center;
  transform: scaleX(0);
}
.hero.ui-hidden .ui-fade {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.hero.ui-hidden .headline,
.hero.ui-hidden .principles,
.hero.ui-hidden .reel {
  transform: translateY(calc(12 * var(--u)));
}
.hero.ui-hidden .intro,
.hero.ui-hidden .stat {
  transform: translateY(calc(-12 * var(--u)));
}
.hero.ui-hidden .hero__shade {
  opacity: 0.25;
}
@media (prefers-reduced-motion: no-preference) {
  .hero__ui > * {
    animation: rise 1.1s var(--ease) backwards;
  }
  .hero__ui > .intro {
    animation-delay: 0.15s;
  }
  .hero__ui > .hide-ui {
    animation-delay: 0.35s;
  }
  .hero__ui > .headline {
    animation-delay: 0.05s;
  }
  .hero__ui > .principles {
    animation-delay: 0.3s;
  }
  .hero__ui > .stat {
    animation-delay: 0.45s;
  }
  .hero__ui > .reel {
    animation-delay: 0.55s;
  }
}
@keyframes rise {
  from {
    opacity: 0;
    translate: 0 calc(18 * var(--u));
  }
  to {
    opacity: 1;
    translate: 0 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ui-fade,
  .reel__frame,
  .reel__progress {
    transition: none;
  }
}
@media (hover: hover) and (pointer: fine) {
  html.has-dot,
  html.has-dot * {
    cursor: none !important;
  }
}
.cursor-dot {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 9999;
  width: max(6px, calc(9 * var(--u)));
  height: max(6px, calc(9 * var(--u)));
  margin: calc(max(6px, calc(9 * var(--u))) / -2) 0 0
    calc(max(6px, calc(9 * var(--u))) / -2);
  border-radius: 50%;
  background: #fff;
  pointer-events: none;
  opacity: 0;
  mix-blend-mode: difference;
  will-change: transform;
  transition: opacity 0.25s var(--ease);
}
.cursor-dot i {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: inherit;
  transition: transform 0.3s var(--ease);
}
.cursor-dot.is-visible {
  opacity: 1;
}
.cursor-dot.is-hover i {
  transform: scale(3.2);
}
.cursor-dot.is-down i {
  transform: scale(0.6);
}
.cursor-dot.is-hover.is-down i {
  transform: scale(2.6);
}
@media (hover: none), (pointer: coarse) {
  .cursor-dot {
    display: none;
  }
}
:root {
  --paper: #f9f9f9;
  --ink: #1f1f1f;
  --ink-soft: #2b2b2b;
  --red: #ee2a24;
}
.apart {
  position: relative;
  width: 100%;
  height: 100svh;
  min-height: calc(760 * var(--u));
  background: var(--paper);
  color: var(--ink);
  overflow: hidden;
}
.apart__label {
  position: absolute;
  left: var(--pad-x);
  top: calc(50% - 284 * var(--u));
  font-size: calc(15 * var(--u));
  line-height: calc(18 * var(--u));
  font-weight: 500;
  letter-spacing: -0.005em;
}
.apart__body {
  position: absolute;
  left: calc(401 * var(--u));
  top: calc(50% - 292 * var(--u));
}
.apart__title {
  margin: 0;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(76 * var(--u));
  line-height: calc(64 * var(--u));
  letter-spacing: -0.03em;
  white-space: nowrap;
  color: var(--ink);
}
.apart__title .accent {
  color: var(--red);
}
.apart__text {
  margin-top: calc(66 * var(--u));
  line-height: calc(21 * var(--u));
  letter-spacing: -0.01em;
  color: var(--ink-soft);
}
.apart__text p + p {
  margin-top: calc(21 * var(--u));
}
.cta {
  position: absolute;
  right: calc(302 * var(--u));
  top: calc(50% + 35 * var(--u));
  height: calc(57 * var(--u));
  padding: 0 calc(29 * var(--u));
  display: inline-flex;
  align-items: center;
  gap: calc(10 * var(--u));
  border-radius: calc(29 * var(--u));
  background: var(--ink);
  color: #fff;
  text-decoration: none;
  font-size: calc(18 * var(--u));
  font-weight: 500;
  letter-spacing: -0.01em;
  white-space: nowrap;
  overflow: hidden;
  isolation: isolate;
  transition: transform 0.4s var(--ease);
}
.cta::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--red);
  border-radius: inherit;
  transform: translateY(101%);
  transition: transform 0.45s var(--ease);
}
.cta:hover::before {
  transform: translateY(0);
}
.cta:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 3px;
}
.logos {
  position: absolute;
  left: 0;
  right: 0;
  bottom: calc(158 * var(--u));
  overflow: hidden;
}
.logos__track {
  display: flex;
  width: max-content;
  animation: logos-marquee 40s linear infinite;
}
.logos:hover .logos__track {
  animation-play-state: paused;
}
.logos__set {
  display: flex;
  flex: none;
}
.logos__set li {
  width: calc(340 * var(--u));
  height: calc(46 * var(--u));
  display: grid;
  place-items: center;
}
.logos__set img {
  width: calc(var(--w) * var(--u));
  height: calc(var(--h) * var(--u));
  display: block;
  opacity: 0.22;
  transition: opacity 0.3s var(--ease);
}
.logos__set img:hover {
  opacity: 0.6;
}
@keyframes logos-marquee {
  from {
    transform: translateX(calc(-40 * var(--u)));
  }
  to {
    transform: translateX(calc(-50% - 40 * var(--u)));
  }
}
.js .reveal.is-pending {
  opacity: 0;
  transform: translateY(calc(28 * var(--u)));
}
.js .reveal {
  transition:
    opacity 1s var(--ease),
    transform 1s var(--ease);
}
.js .reveal:nth-of-type(1) {
  transition-delay: 0s;
}
.apart__text.reveal {
  transition-delay: 0.15s;
}
.cta.reveal {
  transition-delay: 0.3s;
}
@media (prefers-reduced-motion: reduce) {
  .logos__track {
    animation: none;
  }
  .js .reveal.is-pending {
    opacity: 1;
    transform: none;
  }
}
.has-stage .stage {
  position: relative;
  height: calc(100svh * 2.6);
}
.has-stage .stage__sticky {
  position: sticky;
  top: 0;
  height: 100svh;
  overflow: hidden;
  background: #0d070f;
}
.has-stage .hero {
  height: 100%;
  min-height: 0;
}
.has-stage .hero__media {
  transform-origin: var(--ox, 50%) var(--oy, 50%);
  will-change: transform, border-radius, filter;
  overflow: hidden;
}
.has-stage .hero__ui {
  will-change: opacity, transform;
}
.has-stage .apart {
  position: absolute;
  inset: 0;
  height: 100%;
  min-height: 0;
  z-index: 2;
  clip-path: circle(0px at 50% 50%);
  will-change: clip-path;
  pointer-events: none;
}
.has-stage .apart.is-open {
  pointer-events: auto;
}
.lens {
  display: none;
}
.has-stage .lens {
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 3;
  width: 0;
  height: 0;
  border-radius: 50%;
  border: max(1px, calc(1.2 * var(--u))) solid rgba(255, 255, 255, 0.7);
  pointer-events: none;
  opacity: 0;
  will-change: transform, width, height, opacity;
}
.apart__title .line {
  display: block;
  overflow: hidden;
  padding-bottom: 0.1em;
  margin-bottom: -0.1em;
}
.apart__title .line__in {
  display: block;
}
.apart__title {
  position: relative;
}
.apart__title.is-typing .ch {
  visibility: hidden;
}
.apart__title.is-typing .ch.on {
  visibility: visible;
}
.apart__title .caret {
  position: absolute;
  left: 0;
  top: 0;
  width: max(2px, calc(4 * var(--u)));
  height: 0;
  background: var(--red);
  opacity: 0;
  pointer-events: none;
}
.apart__title .caret.is-on {
  opacity: 1;
}
.apart__title .caret.is-idle {
  animation: caret-blink 1s steps(1) infinite;
}
@keyframes caret-blink {
  50% {
    opacity: 0;
  }
}
.has-stage .apart [data-pre] {
  opacity: var(--t, 1);
  translate: 0 calc((1 - var(--t, 1)) * 24 * var(--u));
}
.has-stage .apart [data-in] {
  opacity: 0;
  translate: 0 calc(36 * var(--u));
  filter: blur(6px);
  transition:
    opacity 0.35s var(--ease),
    translate 0.35s var(--ease),
    filter 0.35s var(--ease);
}
.has-stage .apart.is-typed [data-in] {
  opacity: 1;
  translate: 0 0;
  filter: blur(0);
  transition:
    opacity 1s var(--ease),
    translate 1.1s var(--ease),
    filter 1s var(--ease);
  transition-delay: calc(var(--d, 0) * 1s);
}
.has-stage .apart__body {
  scale: var(--bs, 1);
  transform-origin: 0 0;
}
.cursor-dot__label {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) scale(0.6);
  font-family: var(--font-text);
  font-size: max(10px, calc(13 * var(--u)));
  font-weight: 500;
  letter-spacing: -0.01em;
  color: #000;
  white-space: nowrap;
  opacity: 0;
  transition:
    opacity 0.25s var(--ease),
    transform 0.35s var(--ease);
}
.cursor-dot.is-drag i {
  transform: scale(8.5);
}
.cursor-dot.is-drag.is-down i {
  transform: scale(7);
}
.cursor-dot.is-drag .cursor-dot__label {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}
.earn {
  position: relative;
  z-index: 5;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: calc(120 * var(--u)) 0;
  background: var(--paper);
  color: var(--ink);
  overflow: hidden;
}
.earn__head {
  padding: 0 calc(77 * var(--u)) 0 calc(84 * var(--u));
  margin-bottom: calc(40 * var(--u));
}
.earn__title {
  margin: 0;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(70 * var(--u));
  line-height: calc(68 * var(--u));
  letter-spacing: -0.03em;
  white-space: nowrap;
}
.earn__line {
  display: block;
}
.earn__title .w {
  display: inline-block;
  overflow: hidden;
  vertical-align: top;
  padding-bottom: 0.16em;
  margin-bottom: -0.16em;
}
.earn__title .w > span {
  display: inline-block;
  transform: translateY(115%) rotate(4deg);
  transform-origin: 0 100%;
  transition: transform 1.1s cubic-bezier(0.16, 1, 0.3, 1);
  transition-delay: calc(var(--w) * 0.055s);
}
.earn.is-in .earn__title .w > span {
  transform: none;
}
.earn__nav {
  display: flex;
  gap: calc(22 * var(--u));
  padding-bottom: calc(6 * var(--u));
  opacity: 0;
  transition:
    opacity 0.8s var(--ease) 0.5s,
    transform 0.9s var(--ease) 0.5s;
}
.earn.is-in .earn__nav {
  opacity: 1;
  transform: none;
}
.arrow {
  width: calc(46 * var(--u));
  height: calc(30 * var(--u));
  display: grid;
  place-items: center;
  color: var(--ink);
  transition: color 0.3s var(--ease);
}
.arrow svg {
  width: 100%;
  height: calc(20 * var(--u));
  overflow: visible;
  transition: transform 0.35s var(--ease);
}
.arrow--prev:not(:disabled):hover svg {
  transform: translateX(calc(-6 * var(--u)));
}
.arrow--next:not(:disabled):hover svg {
  transform: translateX(calc(6 * var(--u)));
}
.arrow:disabled {
  color: #cfcfcf;
  cursor: default;
}
.arrow:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 4px;
  border-radius: 4px;
}
.earn__viewport {
  padding: 0 calc(84 * var(--u));
  touch-action: pan-y;
  user-select: none;
  -webkit-user-select: none;
}
.earn__track {
  display: flex;
  gap: calc(var(--gap) * var(--u));
  will-change: transform;
}
.card {
  --dl: calc(var(--i) * 0.09s + 0.2s);
  position: relative;
  flex: none;
  width: calc(var(--card-w) * var(--u));
  height: calc(var(--card-h) * var(--u));
  background: #fff;
  color: var(--ink);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  isolation: isolate;
  opacity: 0;
  transform: translate3d(calc(60 * var(--u)), calc(160 * var(--u)), 0)
    rotate(6deg) scale(0.92);
  transform-origin: 0 100%;
  transition:
    transform 1.3s cubic-bezier(0.16, 1, 0.3, 1) var(--dl),
    opacity 0.9s var(--ease) var(--dl),
    background-color 0.55s var(--ease),
    color 0.55s var(--ease);
}
.earn.is-in .card {
  opacity: 1;
  transform: none;
}
.card__num {
  position: relative;
  overflow: hidden;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(118 * var(--u));
  letter-spacing: -0.02em;
  white-space: nowrap;
  transition: height 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}
.card__num .d {
  display: inline-block;
  transform: translateY(110%);
  transition: transform 1s cubic-bezier(0.16, 1, 0.3, 1);
  transition-delay: calc(var(--dl) + 0.45s + var(--k) * 0.08s);
}
.earn.is-in .card__num .d {
  transform: none;
}
.card__spacer {
  flex: 1 1 auto;
}
.card__desc {
  margin-top: calc(10 * var(--u));
  transition: color 0.55s var(--ease);
}
.card__title,
.card__desc {
  opacity: 0;
  translate: 0 calc(16 * var(--u));
  transition:
    opacity 0.8s var(--ease) calc(var(--dl) + 0.55s),
    translate 0.9s var(--ease) calc(var(--dl) + 0.55s),
    color 0.55s var(--ease);
}
.earn.is-in .card__title,
.earn.is-in .card__desc {
  opacity: 1;
  translate: 0 0;
}
.card__media {
  --strip: inset(
    calc((var(--card-h) - 92) * var(--u)) calc(34 * var(--u))
      calc(34 * var(--u)) calc(34 * var(--u)) round calc(10 * var(--u))
  );
  position: absolute;
  inset: 0;
  z-index: 2;
  overflow: hidden;
}
.earn.is-in .card__media {
  clip-path: var(--strip);
}
.earn.is-in.is-settled .card__media {
  transition: clip-path 0.75s cubic-bezier(0.76, 0, 0.24, 1);
}
.card__media img {
  position: absolute;
  top: 0;
  left: -10%;
  width: 120%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 60%;
  display: block;
  transform: translateX(var(--px, 0px)) scale(1.12);
  transform-origin: 50% 85%;
  transition:
    transform 1.1s cubic-bezier(0.16, 1, 0.3, 1),
    filter 0.6s var(--ease);
  filter: saturate(0.85);
}
@media (hover: hover) {
  .earn.is-in .card:hover .card__media {
    transition: clip-path 0.85s cubic-bezier(0.76, 0, 0.24, 1);
  }
  .card:hover .card__media img {
    filter: saturate(1.05);
  }
}
@keyframes num-roll {
  0% {
    transform: translateY(0);
  }
  45% {
    transform: translateY(-105%);
  }
  46% {
    transform: translateY(105%);
  }
  100% {
    transform: translateY(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .card,
  .card__num .d,
  .card__title,
  .card__desc,
  .card__media,
  .earn__title .w > span,
  .earn__nav {
    transition-duration: 0.01s !important;
    transition-delay: 0s !important;
  }
  .earn.is-in .card:hover .card__num .d {
    animation: none;
  }
}
.facts {
  position: relative;
  min-height: 100svh;
  padding: calc(70 * var(--u)) 0 calc(90 * var(--u));
  background: var(--paper);
  color: var(--ink);
  overflow: hidden;
}
.facts__label {
  position: absolute;
  left: calc(75 * var(--u));
  top: calc(104 * var(--u));
  font-size: calc(15 * var(--u));
  line-height: calc(18 * var(--u));
  font-weight: 500;
}
.facts__main {
  margin-left: calc(768 * var(--u));
}
.facts__title {
  margin: 0;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(128 * var(--u));
  line-height: calc(107 * var(--u));
  letter-spacing: -0.035em;
  white-space: nowrap;
}
.facts__line {
  display: block;
}
.facts__line--indent {
  padding-left: calc(162 * var(--u));
}
.facts__title .fw {
  color: color-mix(in srgb, var(--ink) calc(var(--c, 1) * 100%), #d9d9d9);
}
.facts__stats {
  display: grid;
  grid-template-columns: calc(789 * var(--u)) auto;
  row-gap: calc(90 * var(--u));
  margin-top: calc(140 * var(--u));
}
.stat-item__num {
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(100 * var(--u));
  letter-spacing: -0.03em;
  white-space: nowrap;
}
.stat-item__val {
  display: inline-block;
  font-variant-numeric: tabular-nums;
  transition: transform 1.2s cubic-bezier(0.16, 1, 0.3, 1);
  transition-delay: calc(var(--s) * 0.12s);
}
.stat-item__cap {
  margin-top: calc(26 * var(--u));
  font-size: calc(16.5 * var(--u));
  line-height: calc(21 * var(--u));
  font-weight: 500;
  opacity: 0;
  translate: 0 calc(14 * var(--u));
  transition:
    opacity 0.8s var(--ease),
    translate 0.9s var(--ease);
  transition-delay: calc(var(--s) * 0.12s + 0.35s);
}
.facts.is-in .stat-item__cap {
  opacity: 1;
  translate: 0 0;
}
@media (prefers-reduced-motion: reduce) {
  .stat-item__val,
  .stat-item__cap {
    transition-duration: 0.01s;
    transition-delay: 0s;
  }
}
.has-facts .facts-sticky {
  position: relative;
  z-index: 6;
  background: var(--paper);
}
.has-facts .facts-sticky > .facts {
  transform-origin: var(--fx, 70%) var(--fy, 40%);
  will-change: transform;
}
.facts--dark {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: auto;
  min-height: 0;
  z-index: 2;
  background: #0b0b0c;
  color: #fff;
  clip-path: circle(0px at 70% 40%);
  pointer-events: none;
  will-change: clip-path, transform;
}
.facts--dark .facts__title .fw {
  color: color-mix(in srgb, #fff calc(var(--c, 1) * 100%), #3a3a3a);
}
.facts--dark .stat-item__cap {
  color: rgba(255, 255, 255, 0.72);
}
.facts--dark .facts__label {
  color: rgba(255, 255, 255, 0.72);
}
.has-facts .facts-sticky.is-dark .facts--dark {
  pointer-events: auto;
}
.cases {
  position: relative;
  min-height: 100svh;
  background: #0b0b0c;
  color: #fff;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.has-cases .cases-stage {
  position: relative;
  height: calc(100svh * 4);
  background: #0b0b0c;
}
.has-cases .cases {
  position: sticky;
  top: 0;
  height: 100svh;
  display: block;
}
.cases__scene {
  display: none;
}
.has-cases .cases__scene {
  display: block;
  position: absolute;
  inset: 0;
  perspective-origin: 50% 45%;
  pointer-events: none;
  opacity: var(--wall, 0);
}
.has-cases .cases__scene::after {
  content: "";
  position: absolute;
  inset: 0;
}
.wall-tile {
  position: absolute;
  left: 0;
  top: 0;
  display: block;
  object-fit: cover;
  border-radius: calc(4 * var(--u));
}
.has-cases .tile {
  display: none;
}
.case {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.has-cases .case {
  position: absolute;
  left: 50%;
  width: 0;
  height: 0;
  display: block;
  perspective: calc(1600 * var(--u));
}
.case__sheen {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(
    105deg,
    rgba(255, 255, 255, 0) 35%,
    rgba(255, 255, 255, 0.55) 50%,
    rgba(255, 255, 255, 0) 65%
  );
  background-size: 300% 100%;
  background-position: var(--sheen, 150%) 0;
  mix-blend-mode: soft-light;
  opacity: var(--sheen-o, 0);
}
.trail {
  position: fixed;
  inset: 0;
  z-index: 7;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.5s var(--ease);
}
.trail.is-on {
  opacity: 1;
}
.trail:not(.is-on) .trail__dot {
  transition: scale 0.3s var(--ease);
}
.trail__line {
  position: absolute;
  left: 0;
  top: 0;
  width: max(1px, calc(1.2 * var(--u)));
  background: rgba(255, 255, 255, 0.55);
  transform-origin: 50% 0;
  transform: scaleY(0);
  transition: transform 1.1s cubic-bezier(0.65, 0, 0.35, 1) 0.25s;
}
.trail__line--done {
  background: rgba(255, 255, 255, 0.16);
}
.trail.is-on .trail__line {
  transform: scaleY(1);
}
.trail__dot {
  position: absolute;
  left: 0;
  top: 0;
  width: calc(18 * var(--u));
  height: calc(18 * var(--u));
  margin: calc(-9 * var(--u)) 0 0 calc(-9 * var(--u));
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 calc(22 * var(--u)) rgba(255, 255, 255, 0.45);
  scale: 0;
  opacity: var(--dot-o, 1);
  transition: scale 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.trail.is-on .trail__dot {
  scale: 1;
}
.has-cases .cases__scene {
  perspective: none;
}
.has-cases .cases__scene::after {
  display: none;
}
.wall-row {
  position: absolute;
  left: 0;
  width: 100%;
  overflow: visible;
}
.wall-row--0 {
  top: calc(50% - 450 * var(--u));
}
.wall-row--1 {
  top: calc(50% - 93 * var(--u));
}
.wall-row--2 {
  top: calc(50% + 230 * var(--u));
}
.wall-row__track {
  display: flex;
  width: max-content;
  will-change: transform;
}
.wall-row--0 .wall-row__track {
  margin-left: calc(-140 * var(--u));
}
.wall-row--1 .wall-row__track {
  margin-left: calc(-380 * var(--u));
  animation-name: wall-right;
  animation-duration: 90s;
}
.wall-row--2 .wall-row__track {
  margin-left: calc(-180 * var(--u));
  animation-duration: 75s;
}
.wall-row .wall-tile {
  flex: none;
  width: calc(225 * var(--u));
  height: calc(186 * var(--u));
  margin-right: calc(250 * var(--u));
  object-fit: cover;
  border-radius: calc(2 * var(--u));
  transform: none;
}
@keyframes wall-left {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
@keyframes wall-right {
  from {
    transform: translateX(-50%);
  }
  to {
    transform: translateX(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .wall-row__track {
    animation: none;
  }
}
.wall-row__track {
  animation: none !important;
}
.wall-row {
  height: calc(186 * var(--u));
}
.wall-row--0 {
  --ry: -357;
}
.wall-row--1 {
  --ry: 0;
}
.wall-row--2 {
  --ry: 323;
}
.wall-row .wall-tile {
  position: absolute;
  left: 50%;
  top: 0;
  margin: 0 0 0 calc(-112.5 * var(--u));
  animation: wall-curve var(--dur, 80s) linear infinite;
  animation-delay: calc(var(--i) / 8 * var(--dur, 80s) * -1 + var(--off, 0s));
  backface-visibility: hidden;
}
.wall-row--0 .wall-tile {
  --dur: 80s;
  --off: -3s;
  animation-direction: reverse;
}
.wall-row--1 .wall-tile {
  --dur: 90s;
  --off: -8s;
}
.wall-row--2 .wall-tile {
  --dur: 75s;
  --off: -1s;
  animation-direction: reverse;
}
.wall-row .wall-tile {
  --ry-px: 0;
}
@keyframes wall-curve {
  0.000% {
    transform: translate(
        calc(-1900 * var(--u)),
        calc(var(--ry) * var(--u) * 1.645)
      )
      perspective(calc(700 * var(--u))) rotateY(70deg) scale(2.097);
  }
  3.125% {
    transform: translate(
        calc(-1781 * var(--u)),
        calc(var(--ry) * var(--u) * 1.446)
      )
      perspective(calc(700 * var(--u))) rotateY(70deg) scale(1.964);
  }
  6.250% {
    transform: translate(
        calc(-1662 * var(--u)),
        calc(var(--ry) * var(--u) * 1.26)
      )
      perspective(calc(700 * var(--u))) rotateY(70deg) scale(1.84);
  }
  9.375% {
    transform: translate(
        calc(-1544 * var(--u)),
        calc(var(--ry) * var(--u) * 1.086)
      )
      perspective(calc(700 * var(--u))) rotateY(70deg) scale(1.724);
  }
  12.500% {
    transform: translate(
        calc(-1425 * var(--u)),
        calc(var(--ry) * var(--u) * 0.925)
      )
      perspective(calc(700 * var(--u))) rotateY(70deg) scale(1.617);
  }
  15.625% {
    transform: translate(
        calc(-1306 * var(--u)),
        calc(var(--ry) * var(--u) * 0.778)
      )
      perspective(calc(700 * var(--u))) rotateY(70deg) scale(1.518);
  }
  18.750% {
    transform: translate(
        calc(-1188 * var(--u)),
        calc(var(--ry) * var(--u) * 0.643)
      )
      perspective(calc(700 * var(--u))) rotateY(67.31deg) scale(1.428);
  }
  21.875% {
    transform: translate(
        calc(-1069 * var(--u)),
        calc(var(--ry) * var(--u) * 0.521)
      )
      perspective(calc(700 * var(--u))) rotateY(62.52deg) scale(1.347);
  }
  25.000% {
    transform: translate(
        calc(-950 * var(--u)),
        calc(var(--ry) * var(--u) * 0.411)
      )
      perspective(calc(700 * var(--u))) rotateY(57.58deg) scale(1.274);
  }
  28.125% {
    transform: translate(
        calc(-831 * var(--u)),
        calc(var(--ry) * var(--u) * 0.315)
      )
      perspective(calc(700 * var(--u))) rotateY(52.44deg) scale(1.21);
  }
  31.250% {
    transform: translate(
        calc(-712 * var(--u)),
        calc(var(--ry) * var(--u) * 0.231)
      )
      perspective(calc(700 * var(--u))) rotateY(47.07deg) scale(1.154);
  }
  34.375% {
    transform: translate(
        calc(-594 * var(--u)),
        calc(var(--ry) * var(--u) * 0.161)
      )
      perspective(calc(700 * var(--u))) rotateY(41.43deg) scale(1.107);
  }
  37.500% {
    transform: translate(
        calc(-475 * var(--u)),
        calc(var(--ry) * var(--u) * 0.103)
      )
      perspective(calc(700 * var(--u))) rotateY(35.44deg) scale(1.069);
  }
  40.625% {
    transform: translate(
        calc(-356 * var(--u)),
        calc(var(--ry) * var(--u) * 0.058)
      )
      perspective(calc(700 * var(--u))) rotateY(28.98deg) scale(1.039);
  }
  43.750% {
    transform: translate(
        calc(-238 * var(--u)),
        calc(var(--ry) * var(--u) * 0.026)
      )
      perspective(calc(700 * var(--u))) rotateY(21.82deg) scale(1.017);
  }
  46.875% {
    transform: translate(
        calc(-119 * var(--u)),
        calc(var(--ry) * var(--u) * 0.006)
      )
      perspective(calc(700 * var(--u))) rotateY(13.43deg) scale(1.004);
  }
  50.000% {
    transform: translate(calc(0 * var(--u)), calc(var(--ry) * var(--u) * 0))
      perspective(calc(700 * var(--u))) rotateY(-0deg) scale(1);
  }
  53.125% {
    transform: translate(
        calc(119 * var(--u)),
        calc(var(--ry) * var(--u) * 0.006)
      )
      perspective(calc(700 * var(--u))) rotateY(-13.43deg) scale(1.004);
  }
  56.250% {
    transform: translate(
        calc(238 * var(--u)),
        calc(var(--ry) * var(--u) * 0.026)
      )
      perspective(calc(700 * var(--u))) rotateY(-21.82deg) scale(1.017);
  }
  59.375% {
    transform: translate(
        calc(356 * var(--u)),
        calc(var(--ry) * var(--u) * 0.058)
      )
      perspective(calc(700 * var(--u))) rotateY(-28.98deg) scale(1.039);
  }
  62.500% {
    transform: translate(
        calc(475 * var(--u)),
        calc(var(--ry) * var(--u) * 0.103)
      )
      perspective(calc(700 * var(--u))) rotateY(-35.44deg) scale(1.069);
  }
  65.625% {
    transform: translate(
        calc(594 * var(--u)),
        calc(var(--ry) * var(--u) * 0.161)
      )
      perspective(calc(700 * var(--u))) rotateY(-41.43deg) scale(1.107);
  }
  68.750% {
    transform: translate(
        calc(712 * var(--u)),
        calc(var(--ry) * var(--u) * 0.231)
      )
      perspective(calc(700 * var(--u))) rotateY(-47.07deg) scale(1.154);
  }
  71.875% {
    transform: translate(
        calc(831 * var(--u)),
        calc(var(--ry) * var(--u) * 0.315)
      )
      perspective(calc(700 * var(--u))) rotateY(-52.44deg) scale(1.21);
  }
  75.000% {
    transform: translate(
        calc(950 * var(--u)),
        calc(var(--ry) * var(--u) * 0.411)
      )
      perspective(calc(700 * var(--u))) rotateY(-57.58deg) scale(1.274);
  }
  78.125% {
    transform: translate(
        calc(1069 * var(--u)),
        calc(var(--ry) * var(--u) * 0.521)
      )
      perspective(calc(700 * var(--u))) rotateY(-62.52deg) scale(1.347);
  }
  81.250% {
    transform: translate(
        calc(1188 * var(--u)),
        calc(var(--ry) * var(--u) * 0.643)
      )
      perspective(calc(700 * var(--u))) rotateY(-67.31deg) scale(1.428);
  }
  84.375% {
    transform: translate(
        calc(1306 * var(--u)),
        calc(var(--ry) * var(--u) * 0.778)
      )
      perspective(calc(700 * var(--u))) rotateY(-70deg) scale(1.518);
  }
  87.500% {
    transform: translate(
        calc(1425 * var(--u)),
        calc(var(--ry) * var(--u) * 0.925)
      )
      perspective(calc(700 * var(--u))) rotateY(-70deg) scale(1.617);
  }
  90.625% {
    transform: translate(
        calc(1544 * var(--u)),
        calc(var(--ry) * var(--u) * 1.086)
      )
      perspective(calc(700 * var(--u))) rotateY(-70deg) scale(1.724);
  }
  93.750% {
    transform: translate(
        calc(1662 * var(--u)),
        calc(var(--ry) * var(--u) * 1.26)
      )
      perspective(calc(700 * var(--u))) rotateY(-70deg) scale(1.84);
  }
  96.875% {
    transform: translate(
        calc(1781 * var(--u)),
        calc(var(--ry) * var(--u) * 1.446)
      )
      perspective(calc(700 * var(--u))) rotateY(-70deg) scale(1.964);
  }
  100.000% {
    transform: translate(
        calc(1900 * var(--u)),
        calc(var(--ry) * var(--u) * 1.645)
      )
      perspective(calc(700 * var(--u))) rotateY(-70deg) scale(2.097);
  }
}
@media (prefers-reduced-motion: reduce) {
  .wall-row .wall-tile {
    animation-play-state: paused;
  }
}
.wall-row .wall-row__track {
  position: absolute;
  inset: 0;
  width: auto;
  margin: 0 !important;
  will-change: auto;
}
.has-cases .case {
  top: 50%;
}
.has-cases .cases__scene::before,
.has-cases .cases__scene::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 38%;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
    90deg,
    rgba(11, 11, 12, 0.82) 0%,
    rgba(11, 11, 12, 0.55) 45%,
    rgba(11, 11, 12, 0) 100%
  );
  -webkit-backdrop-filter: blur(calc(10 * var(--u)));
  backdrop-filter: blur(calc(10 * var(--u)));
  -webkit-mask-image: linear-gradient(
    90deg,
    #000 0%,
    #000 40%,
    transparent 100%
  );
  mask-image: linear-gradient(90deg, #000 0%, #000 40%, transparent 100%);
}
.has-cases .cases__scene::before {
  left: 0;
}
.has-cases .cases__scene::after {
  transform: none;
  left: auto;
  right: 0;
  inset-inline-start: auto;
  background: linear-gradient(
    270deg,
    rgba(11, 11, 12, 0.82) 0%,
    rgba(11, 11, 12, 0.55) 45%,
    rgba(11, 11, 12, 0) 100%
  );
  -webkit-mask-image: linear-gradient(
    270deg,
    #000 0%,
    #000 40%,
    transparent 100%
  );
  mask-image: linear-gradient(270deg, #000 0%, #000 40%, transparent 100%);
}
.has-facts .facts-sticky {
  overflow: hidden;
}
.facts--dark {
  top: 0;
  padding-top: calc(70 * var(--u));
}
.facts--dark .facts__label {
  top: calc(104 * var(--u));
}
.has-cases .cases__scene::before,
.has-cases .cases__scene::after {
  display: none;
}
.has-cases .cases::before,
.has-cases .cases::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 2;
  pointer-events: none;
}
.has-cases .cases::before {
  left: 0;
  -webkit-mask-image: linear-gradient(
    90deg,
    #000 0%,
    #000 40%,
    transparent 100%
  );
  mask-image: linear-gradient(90deg, #000 0%, #000 40%, transparent 100%);
}
.has-cases .cases::after {
  right: 0;
  -webkit-mask-image: linear-gradient(
    270deg,
    #000 0%,
    #000 40%,
    transparent 100%
  );
  mask-image: linear-gradient(270deg, #000 0%, #000 40%, transparent 100%);
}
html,
body {
  background: var(--paper);
}
.wall-row .wall-tile {
  opacity: 0.34;
}
.has-cases .cases::before,
.has-cases .cases::after {
  width: 30%;
}
.has-cases .cases::before {
  background: linear-gradient(
    90deg,
    rgba(11, 11, 12, 0.7) 0%,
    rgba(11, 11, 12, 0.4) 45%,
    rgba(11, 11, 12, 0) 100%
  );
}
.has-cases .cases::after {
  background: linear-gradient(
    270deg,
    rgba(11, 11, 12, 0.7) 0%,
    rgba(11, 11, 12, 0.4) 45%,
    rgba(11, 11, 12, 0) 100%
  );
}
.has-cases .cases::before,
.has-cases .cases::after {
  -webkit-backdrop-filter: blur(calc(7 * var(--u)));
  backdrop-filter: blur(calc(7 * var(--u)));
}
.site-header {
  --hc: var(--ink);
  position: fixed;
  left: calc(80 * var(--u));
  right: calc(80 * var(--u));
  top: calc(22 * var(--u));
  z-index: 50;
  height: calc(57 * var(--u));
  display: flex;
  align-items: center;
  color: var(--hc);
  opacity: 0;
  visibility: hidden;
  transform: translateY(calc(-24 * var(--u)));
  transition:
    opacity 0.6s var(--ease),
    transform 0.7s var(--ease),
    visibility 0.7s,
    color 0.45s var(--ease);
}
.site-header.is-shown {
  opacity: 1;
  visibility: visible;
  transform: none;
}
.site-header.is-light {
  --hc: #fff;
}
.site-header__menu {
  width: calc(24 * var(--u));
  height: calc(19 * var(--u));
  color: inherit;
  flex: none;
}
.site-header__menu svg {
  width: 100%;
  height: 100%;
  display: block;
}
.site-header__cta {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: calc(10 * var(--u));
  height: calc(52 * var(--u));
  padding: 0 calc(30 * var(--u));
  border: max(1px, calc(1.3 * var(--u))) solid currentColor;
  border-radius: calc(27 * var(--u));
  text-decoration: none;
  font-size: calc(17 * var(--u));
  font-weight: 500;
  letter-spacing: -0.01em;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transition:
    color 0.4s var(--ease),
    border-color 0.4s var(--ease);
}
.site-header__cta svg {
  width: calc(17 * var(--u));
  height: calc(17 * var(--u));
  transition: transform 0.4s var(--ease);
}
.site-header__cta::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  transform: translateY(101%);
  transition: transform 0.45s var(--ease);
}
.site-header__cta:hover {
  color: var(--paper);
}
.site-header.is-light .site-header__cta:hover {
  color: #0b0b0c;
}
.site-header__cta:hover::before {
  transform: translateY(0);
}
.site-header__cta:hover svg {
  transform: translateX(calc(3 * var(--u)));
}
.site-header a:focus-visible,
.site-header button:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 4px;
}
.site-header__cta {
  background: #fff;
}
.site-header.is-light .site-header__cta {
  box-shadow: none;
}
.site-header__cta::before {
  background: var(--red);
}
.site-header__cta {
  box-shadow: none;
}
.services {
  position: relative;
  z-index: 6;
  background: var(--paper);
  color: var(--ink);
}
.services__label {
  font-size: calc(15 * var(--u));
  font-weight: 500;
}
.services__title {
  margin: 0;
  font-family: var(--font-head);
  font-weight: 500;
  letter-spacing: -0.03em;
  white-space: nowrap;
}
.services__line {
  display: block;
}
.services__title .w {
  display: inline-block;
  overflow: hidden;
  vertical-align: top;
}
.services__title .w > span {
  display: inline-block;
  transition: transform 1.1s cubic-bezier(0.16, 1, 0.3, 1);
}
.services__line:nth-child(1) .w:nth-child(2) > span {
  transition-delay: 0.06s;
}
.services__line:nth-child(2) .w:nth-child(1) > span {
  transition-delay: 0.12s;
}
.services__line:nth-child(2) .w:nth-child(2) > span {
  transition-delay: 0.18s;
}
.services__intro {
  left: calc(1152 * var(--u));
  top: calc(180 * var(--u));
  margin: 0;
  font-size: calc(17.5 * var(--u));
  line-height: calc(27 * var(--u));
  font-weight: 500;
}
.services__intro span {
  display: block;
  opacity: 0;
  translate: 0 calc(14 * var(--u));
  transition:
    opacity 0.8s var(--ease),
    translate 0.9s var(--ease);
}
.services__intro span:nth-child(2) {
  transition-delay: 0.1s;
}
.services__intro span:nth-child(3) {
  transition-delay: 0.2s;
}
.services.is-in .services__intro span {
  opacity: 1;
  translate: 0 0;
}
.services__list {
  list-style: none;
  margin: calc(105 * var(--u)) 0 0;
  padding: 0;
  display: grid;
  grid-auto-flow: column;
}
.svc__link {
  display: flex;
  align-items: center;
  height: 100%;
  color: inherit;
  text-decoration: none;
  transition: opacity 0.4s var(--ease);
}
.svc__num {
  flex: none;
  overflow: hidden;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(30 * var(--u));
  line-height: 0.78;
  align-self: center;
}
.svc__num > span {
  display: inline-block;
  transition: transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
  transition-delay: calc(0.3s + var(--i) * 0.06s);
}
.svc__name {
  display: inline-block;
  overflow: hidden;
  padding-bottom: 0.12em;
  margin-bottom: -0.12em;
  font-family: var(--font-text);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.045em;
  white-space: nowrap;
}
.svc__name > span {
  display: inline-block;
  transform: translateY(105%);
  transition:
    transform 1s cubic-bezier(0.16, 1, 0.3, 1),
    translate 0.5s var(--ease);
  transition-delay: calc(0.25s + var(--i) * 0.06s), 0s;
}
.svc__arrow {
  flex: none;
  opacity: 0;
}
.services.is-in .svc__num > span,
.services.is-in .svc__name > span {
  transform: none;
}
.services.is-in .svc__arrow {
  opacity: 1;
}
@media (hover: hover) {
  .services__list:hover .svc__link {
    opacity: 0.32;
  }
  .services__list .svc__link:hover {
    opacity: 1;
  }
  .svc__link:hover .svc__arrow {
    transition-delay: 0s;
  }
}
.svc-preview {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 40;
  width: calc(217 * var(--u));
  height: calc(263 * var(--u));
  pointer-events: none;
  will-change: transform;
}
.svc-preview__inner {
  width: 100%;
  height: 100%;
  border-radius: calc(10 * var(--u));
  overflow: hidden;
  background: #d9d9d9;
  transform: scale(var(--ps, 0));
  opacity: var(--po, 0);
  transition:
    transform 0.5s cubic-bezier(0.16, 1, 0.3, 1),
    opacity 0.35s var(--ease);
}
.svc-preview.is-on .svc-preview__inner {
  --ps: 1;
  --po: 1;
}
.svc-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
@media (prefers-reduced-motion: reduce) {
  .services__title .w > span,
  .svc__num > span,
  .svc__name > span {
    transition-duration: 0.01s;
    transition-delay: 0s;
  }
}
.services {
  padding: calc(150 * var(--u)) calc(80 * var(--u)) calc(110 * var(--u));
  --col-gap: 80;
}
.services__head {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: calc(var(--col-gap) * var(--u));
  align-items: end;
}
.services__label {
  grid-column: 1 / -1;
}
.services__title {
  font-size: calc(80 * var(--u));
}
.services__line--indent {
  padding-left: calc(170 * var(--u));
}
.services__intro {
  position: static;
  padding-bottom: calc(6 * var(--u));
}
.services__list {
  margin-top: calc(90 * var(--u));
  grid-template-columns: 1fr 1fr;
  column-gap: calc(var(--col-gap) * var(--u));
  grid-template-rows: repeat(4, calc(104 * var(--u)));
}
.svc {
  position: relative;
}
.svc::before,
.svc:nth-child(4)::after,
.svc:nth-child(8)::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 1px;
  background: rgba(31, 31, 31, 0.14);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 1.2s cubic-bezier(0.65, 0, 0.35, 1);
  transition-delay: calc(0.15s + var(--i) * 0.07s);
}
.svc:nth-child(4)::after,
.svc:nth-child(8)::after {
  top: auto;
  bottom: 0;
}
.services.is-in .svc::before,
.services.is-in .svc:nth-child(4)::after,
.services.is-in .svc:nth-child(8)::after {
  transform: scaleX(1);
}
.svc__link {
  padding-right: calc(4 * var(--u));
}
.svc__num {
  width: calc(150 * var(--u));
}
.svc__name {
  font-size: calc(46 * var(--u));
}
.svc__arrow {
  margin-left: auto;
  width: calc(22 * var(--u));
  height: calc(22 * var(--u));
}
.svc__arrow {
  transition:
    opacity 0.6s var(--ease) calc(0.6s + var(--i) * 0.06s),
    translate 0.5s var(--ease),
    rotate 0.5s var(--ease);
}
.svc-preview {
  margin: calc(-150 * var(--u)) 0 0 calc(70 * var(--u));
}
@media (hover: hover) {
  .svc__link:hover .svc__name > span {
    translate: 0 0;
  }
  .svc__name {
    transition: translate 0.5s var(--ease);
  }
  .svc__link:hover .svc__name {
    translate: calc(12 * var(--u)) 0;
  }
}
.redblock {
  position: relative;
  z-index: 6;
  background: #ee2424;
}
.red-sticky {
  top: 0;
  height: 100svh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.push {
  margin: 0;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(150 * var(--u));
  line-height: 1;
  letter-spacing: -0.045em;
  text-align: center;
}
.push__line {
  display: flex;
  justify-content: center;
  white-space: nowrap;
  overflow: visible;
}
.push__line--2 {
  height: calc(var(--h2, 0) * 1em);
}
.pw {
  display: inline-block;
  width: calc(var(--w, 0) * 1px);
  overflow: visible;
}
.pw__in {
  display: inline-block;
  padding: 0 0.13em;
  opacity: var(--o, 0);
  transform: translateY(calc((1 - var(--t, 0)) * 60%))
    scale(calc(0.6 + 0.4 * var(--t, 0)));
  transform-origin: 50% 80%;
  filter: blur(calc((1 - var(--t, 0)) * 10px));
}
.push {
  color: #0b0b0c;
}
.red-sticky {
  position: sticky;
}
.pw {
  transform-origin: 0 0;
  will-change: translate, scale;
}
.push-final {
  position: absolute;
  inset: 0;
  visibility: hidden;
  pointer-events: none;
}
.pf {
  position: absolute;
  font-family: var(--font-head);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.045em;
  white-space: nowrap;
}
.pf--left {
  left: calc(80 * var(--u) - 0.13em);
}
.pf--right {
  left: calc(912 * var(--u) - 0.13em);
}
.pf__line {
  display: block;
}
.pf__w {
  display: inline-block;
  padding: 0 0.13em;
}
.red-copy {
  position: absolute;
  margin: 0;
  color: #0b0b0c;
  font-size: calc(21 * var(--u));
  line-height: calc(24 * var(--u));
  font-weight: 500;
  letter-spacing: -0.01em;
  opacity: var(--x1, 0);
  translate: 0 calc((1 - var(--x1, 0)) * 24 * var(--u));
}
.red-cta {
  position: absolute;
  align-items: center;
  gap: calc(10 * var(--u));
  height: calc(57 * var(--u));
  padding: 0 calc(42 * var(--u)) 0 calc(34 * var(--u));
  border-radius: calc(29 * var(--u));
  text-decoration: none;
  font-size: calc(18 * var(--u));
  font-weight: 500;
  letter-spacing: -0.01em;
  overflow: hidden;
  isolation: isolate;
  opacity: var(--x2, 0);
  translate: 0 calc((1 - var(--x2, 0)) * 24 * var(--u));
}
.red-cta svg {
  width: calc(18 * var(--u));
  height: calc(18 * var(--u));
  transition: transform 0.4s var(--ease);
}
.red-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
}
.pf {
  font-size: calc(150 * var(--u));
}
.pf__line {
  height: calc(123 * var(--u));
}
.pf--left {
  top: calc(50% - 540 * var(--u) + 130 * var(--u));
}
.pf--right {
  top: calc(50% - 540 * var(--u) + 330 * var(--u));
}
.red-dots {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.push {
  position: relative;
  z-index: 1;
}
.site-header.is-red {
  --hc: #0b0b0c;
}
.site-header.is-red .site-header__cta {
  background: transparent;
  color: #0b0b0c;
  border-color: #0b0b0c;
  transition:
    color 0.4s var(--ease),
    border-color 0.4s var(--ease),
    background-color 0.4s var(--ease);
}
.site-header.is-red .site-header__cta::before {
  background: #0b0b0c;
}
.site-header.is-red .site-header__cta:hover {
  color: #ee2424;
  border-color: #0b0b0c;
}
.red-copy,
.red-cta {
  display: block;
}
.red-cta {
  display: inline-flex;
}
.red-copy {
  left: calc(80 * var(--u));
  top: calc(50% - 540 * var(--u) + 538 * var(--u));
  width: calc(360 * var(--u));
  z-index: 2;
}
.red-cta {
  left: calc(80 * var(--u));
  top: calc(50% - 540 * var(--u) + 652 * var(--u));
  z-index: 2;
}
.red-cta {
  background: transparent;
  color: #fff;
  border: max(1px, calc(1.3 * var(--u))) solid #0b0b0c;
  transition: color 0.4s var(--ease);
}
.red-cta::before {
  display: block;
  background: #0b0b0c;
  transform: translateY(0);
  transition: transform 0.45s var(--ease);
}
.red-cta:hover {
  color: #0b0b0c;
}
.red-cta:hover::before {
  transform: translateY(101%);
}
.red-cta:hover svg {
  transform: translateX(calc(3 * var(--u)));
}
.method {
  position: relative;
  z-index: 7;
  background: #fafafa;
  color: #1f1f1f;
  overflow: hidden;
  --mx: 0;
  --my: 0;
  --py: 0;
}
.method__title {
  position: absolute;
  left: calc(66 * var(--u));
  margin: 0;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(102 * var(--u));
  line-height: 1.1;
  letter-spacing: -0.035em;
  white-space: nowrap;
  z-index: 3;
}
.method__title sup {
  font-family: var(--font-text);
  font-size: calc(26 * var(--u));
  font-weight: 400;
  letter-spacing: 0;
  vertical-align: top;
  position: relative;
  top: calc(12 * var(--u));
  margin-left: calc(10 * var(--u));
}
.mt__line {
  display: block;
  overflow: hidden;
  padding-bottom: 0.06em;
}
.mt__in {
  display: block;
  transform: translateY(110%);
  transition: transform 1.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.method.is-in .mt__in {
  transform: none;
}
.method__statue {
  position: absolute;
  z-index: 2;
  pointer-events: none;
}
.method__statue img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: bottom;
  clip-path: inset(100% 0 0 0);
  transform: translateY(calc(140 * var(--u))) scale(1.06);
  filter: blur(calc(14 * var(--u))) brightness(1.25);
  transition:
    clip-path 1.6s cubic-bezier(0.65, 0, 0.35, 1),
    transform 1.8s cubic-bezier(0.16, 1, 0.3, 1),
    filter 1.4s cubic-bezier(0.22, 0.61, 0.36, 1) 0.25s;
}
.method.is-in .method__statue img {
  clip-path: inset(0 0 0 0);
  transform: none;
  filter: none;
}
.method__cards {
  list-style: none;
  margin: 0;
  padding: 0;
}
.mcard {
  --x: 0;
  --y: 0;
  --d: 1;
  position: absolute;
  left: calc(var(--x) * var(--u));
  top: calc(var(--y) * var(--u));
  background: #f0f0f0;
  color: #1f1f1f;
  z-index: 1;
  overflow: hidden;
  isolation: isolate;
  translate: calc(var(--mx) * var(--d) * 10 * var(--u))
    calc(
      var(--py) * var(--d) * -70 * var(--u) + var(--my) * var(--d) * 8 *
        var(--u)
    );
  opacity: 0;
  transform: translateY(calc(90 * var(--u))) scale(0.92);
  transition:
    opacity 0.9s cubic-bezier(0.22, 0.61, 0.36, 1),
    transform 1.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.method.is-in .mcard {
  opacity: 1;
  transform: none;
}
.mcard[data-i="0"] {
  --d: 0.55;
}
.mcard[data-i="1"] {
  --d: 0.8;
}
.mcard[data-i="2"] {
  --d: 1.05;
}
.mcard[data-i="3"] {
  --d: 1.35;
  z-index: 3;
}
.mcard[data-i="4"] {
  --d: 1.15;
  z-index: 3;
}
.mcard[data-i="5"] {
  --d: 0.7;
}
.mcard--dark {
  background: #262626;
  color: #fff;
}
.mcard--glass {
  background: linear-gradient(
    160deg,
    rgba(120, 120, 120, 0.38),
    rgba(70, 70, 70, 0.5)
  );
  -webkit-backdrop-filter: blur(calc(26 * var(--u))) saturate(0.6);
  backdrop-filter: blur(calc(26 * var(--u))) saturate(0.6);
  color: #fff;
}
.mcard--mist {
  background: linear-gradient(
    28deg,
    rgba(240, 240, 240, 0.35) 0%,
    rgba(240, 240, 240, 0.92) 38%,
    #f0f0f0 70%
  );
  -webkit-backdrop-filter: blur(calc(3 * var(--u)));
  backdrop-filter: blur(calc(3 * var(--u)));
}
.mcard::before {
  content: "";
  position: absolute;
  z-index: -1;
  background: #1f1f1f;
  clip-path: circle(0% at var(--hx, 50%) var(--hy, 100%));
  transition: clip-path 0.7s cubic-bezier(0.65, 0, 0.35, 1);
}
.mcard--dark::before,
.mcard--glass::before {
  background: #ee2424;
}
.mcard--red::before {
  background: #1f1f1f;
}
.mcard:hover::before {
  clip-path: circle(150% at var(--hx, 50%) var(--hy, 100%));
}
.mcard {
  transition-property: opacity, transform, color;
  transition-duration: 0.9s, 1.2s, 0.5s;
  transition-delay: calc(0.35s + var(--i) * 0.09s),
    calc(0.35s + var(--i) * 0.09s), 0s;
}
.mcard:hover {
  color: #fff;
}
.mcard--dark:hover,
.mcard--glass:hover {
  color: #1f1f1f;
}
.mcard__num {
  position: absolute;
  overflow: hidden;
  font-family: var(--font-head);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.01em;
}
.mcard__roll {
  display: block;
}
.mcard__roll > span {
  display: block;
  height: calc(30 * var(--u));
}
.mcard__roll > span + span {
  margin-top: calc(-6 * var(--u));
}
.mcard__num {
  transition: height 0.6s cubic-bezier(0.65, 0, 0.35, 1);
}
.mcard__body {
  position: absolute;
  font-family: var(--font-text);
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.mcard__body b {
  display: block;
}
.mcard__body span {
  display: block;
  font-weight: 400;
}
.mcard::before {
  inset: -1px;
}
.mcard__body {
  letter-spacing: -0.018em;
}
.method__in {
  position: absolute;
  top: 0;
  bottom: 0;
}
.method {
  --u: calc(100vw / 1920);
}
.method__in {
  left: 0;
  width: 100%;
}
.method__statue {
  transform-origin: 50% 62%;
}
@media (min-width: 2500px) {
  .method__statue {
    scale: 0.82;
  }
}
.method {
  --kt: 0;
  --ks: 0;
}
.method .mt__in,
.method.is-in .mt__in {
  transform: none;
  transition: none;
}
.mt__c {
  display: inline-block;
  transform: translateY(
      calc((1 - clamp(0, var(--kt) * 2.2 - var(--c) * 0.11, 1)) * 112%)
    )
    rotate(calc((1 - clamp(0, var(--kt) * 2.2 - var(--c) * 0.11, 1)) * 8deg));
  transform-origin: 0 100%;
}
.method__title sup.mt__c {
  display: inline-block;
}
.method .method__statue img,
.method.is-in .method__statue img {
  transition: none;
  clip-path: inset(calc((1 - var(--ks)) * 70%) 0 0 0);
  transform: translateY(calc((1 - var(--ks)) * 220 * var(--u)))
    scale(calc(1.14 - 0.14 * var(--ks)));
  filter: blur(calc((1 - var(--ks)) * 18 * var(--u)))
    brightness(calc(1.6 - 0.6 * var(--ks)))
    contrast(calc(0.7 + 0.3 * var(--ks)));
}
.method .mcard,
.method.is-in .mcard {
  --k: 0;
  --fx: 0px;
  --fy: 0px;
  --rot: 0deg;
  opacity: clamp(0, var(--k) * 4, 1);
  transform: translate3d(
      calc((1 - var(--k)) * var(--fx)),
      calc((1 - var(--k)) * var(--fy)),
      0
    )
    rotate(calc((1 - var(--k)) * var(--rot)))
    scale(calc(0.42 + 0.58 * var(--k)));
  transition: color 0.5s var(--ease);
  transition-delay: 0s;
  will-change: transform;
}
.mcard__roll {
  transform: translateY(calc((1 - var(--kn, 1)) * 110%));
  transition: none;
}
.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
.who {
  position: relative;
  --p: 0;
}
.who__sticky {
  position: sticky;
  top: 0;
  height: 100svh;
  overflow: hidden;
}
.ws {
  position: absolute;
  inset: 0;
  color: #1f1f1f;
  font-family: var(--font-text);
}
.ws--no {
  background: #fafafa;
}
.ws--yes {
  background: #ee2424;
}
.who__edge {
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc((1 - var(--p)) * 100%);
  width: 1px;
  background: #1f1f1f;
  opacity: calc(min(var(--p), 1 - var(--p)) * 8);
}
.ws__in {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(50% - 540 * var(--u));
  height: calc(1080 * var(--u));
}
.ws__title {
  position: absolute;
  left: calc(72 * var(--u));
  top: calc(196 * var(--u));
  margin: 0;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(204 * var(--u));
  white-space: nowrap;
}
.ws__l {
  display: block;
  overflow: hidden;
}
.ws__l > span {
  display: block;
}
.ws--no .ws__word {
  color: #c4c4c4;
}
.ws__lead {
  position: absolute;
  left: calc(80 * var(--u));
  width: calc(430 * var(--u));
  margin: 0;
  font-size: calc(22 * var(--u));
  line-height: 1.36;
  letter-spacing: -0.01em;
}
.ws--no .ws__lead {
  color: rgba(31, 31, 31, 0.55);
}
.ws__list {
  position: absolute;
  right: calc(80 * var(--u));
  top: calc(650 * var(--u));
  width: calc(840 * var(--u));
  margin: 0;
  padding: 0;
  list-style: none;
}
.ws__list li {
  position: relative;
  display: grid;
  align-items: center;
  height: calc(96 * var(--u));
}
.ws__list li::before,
.ws__list li:last-child::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 1px;
  background: currentColor;
  opacity: 0.25;
  transform-origin: 0 50%;
}
.ws__list li:last-child::after {
  top: auto;
  bottom: 0;
}
.ws__it {
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(42 * var(--u));
  letter-spacing: -0.035em;
  line-height: 1;
}
.ws--no .ws__it {
  color: #b9b9b9;
}
.ws__foot {
  position: absolute;
  left: calc(80 * var(--u));
  right: calc(80 * var(--u));
  font-size: calc(15 * var(--u));
  letter-spacing: 0.02em;
}
.ws--yes .ws__it {
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.ws--yes .ws__list li:hover .ws__it {
  transform: translateX(calc(16 * var(--u)));
}
.ws--no .ws__l > span {
  transition: transform 1.2s cubic-bezier(0.16, 1, 0.3, 1) 0.2s;
}
.ws--no .ws__l + .ws__l > span {
  transition-delay: 0.3s;
}
.ws--no .ws__lead,
.ws--no .ws__foot {
  opacity: 0;
  transform: translateY(calc(18 * var(--u)));
  transition:
    opacity 0.9s var(--ease) 0.6s,
    transform 1s cubic-bezier(0.16, 1, 0.3, 1) 0.6s;
}
.ws--no .ws__list li::before,
.ws--no .ws__list li:last-child::after {
  transform: scaleX(0);
  transition: transform 1.1s cubic-bezier(0.65, 0, 0.35, 1);
  transition-delay: calc(0.55s + var(--r) * 0.1s);
}
.ws--no .ws__list li:last-child::after {
  transition-delay: 0.85s;
}
.ws--no .ws__list li > span {
  opacity: 0;
  transform: translateY(calc(14 * var(--u)));
  transition:
    opacity 0.8s var(--ease),
    transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
  transition-delay: calc(0.75s + var(--r) * 0.1s);
}
.who.is-in .ws--no .ws__list li::before,
.who.is-in .ws--no .ws__list li:last-child::after {
  transform: none;
}
.who.is-in .ws--no .ws__l > span,
.who.is-in .ws--no .ws__lead,
.who.is-in .ws--no .ws__foot,
.who.is-in .ws--no .ws__list li > span {
  opacity: 1;
  transform: none;
}
.ws--no .ws__in {
  transform: none;
  opacity: 1;
}
.ws--no .ws__word,
.ws--no .ws__it,
.ws--no .ws__lead {
  color: #1f1f1f;
}
.ws__ix {
  opacity: 1;
}
.who.is-in .ws--no .ws__list li > .ws__ix {
  opacity: 1;
}
.ws__hint b {
  font-weight: 500;
  color: #ee2424;
}
@keyframes wsWheel {
  0% {
    transform: translateY(0);
    opacity: 0;
  }
  20% {
    opacity: 1;
  }
  70% {
    transform: translateY(calc(14 * var(--u)));
    opacity: 0;
  }
  100% {
    transform: translateY(calc(14 * var(--u)));
    opacity: 0;
  }
}
.ws__btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: calc(10 * var(--u));
  height: calc(57 * var(--u));
  padding: 0 calc(42 * var(--u)) 0 calc(34 * var(--u));
  border-radius: calc(29 * var(--u));
  border: max(1px, calc(1.3 * var(--u))) solid #0b0b0c;
  color: #fff;
  text-decoration: none;
  font-size: calc(18 * var(--u));
  font-weight: 500;
  letter-spacing: -0.01em;
  overflow: hidden;
  isolation: isolate;
  transition: color 0.4s var(--ease);
}
.ws__btn::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: #0b0b0c;
  transition: transform 0.45s var(--ease);
}
.ws__btn svg {
  width: calc(18 * var(--u));
  height: calc(18 * var(--u));
  transition: transform 0.4s var(--ease);
}
.ws__btn:hover {
  color: #0b0b0c;
}
.ws__btn:hover::before {
  transform: translateY(101%);
}
.ws__btn:hover svg {
  transform: translateX(calc(3 * var(--u)));
}
.ws__foot {
  bottom: calc(60 * var(--u));
}
.ws {
  text-transform: lowercase;
}
.ws__lead {
  top: calc(683 * var(--u));
}
.ws__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.ws__hint {
  display: inline-flex;
  align-items: center;
  gap: calc(22 * var(--u));
  font-size: calc(16 * var(--u));
  letter-spacing: 0.01em;
  color: #1f1f1f;
  opacity: 1;
}
.ws__track {
  position: relative;
  width: calc(150 * var(--u));
  height: max(2px, calc(2 * var(--u)));
  background: rgba(31, 31, 31, 0.15);
  overflow: hidden;
}
.ws__track i {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  width: 100%;
  background: #ee2424;
  transform-origin: 100% 50%;
  transform: scaleX(max(var(--p), 0.001));
}
.ws__track::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  width: 35%;
  background: #ee2424;
  animation: wsPulse 1.8s cubic-bezier(0.65, 0, 0.35, 1) infinite;
  opacity: calc(1 - var(--p) * 6);
}
@keyframes wsPulse {
  0% {
    transform: translateX(110%);
  }
  60% {
    transform: translateX(-300%);
  }
  100% {
    transform: translateX(-300%);
  }
}
.ws--no .ws__foot {
  opacity: 0;
  transform: translateY(calc(18 * var(--u)));
}
.ws__title {
  letter-spacing: -0.03em;
}
.ws__title {
  line-height: 0.72;
}
.ws__l {
  padding-bottom: 0.16em;
  margin-bottom: -0.16em;
}
.talk {
  --u: calc(100vw / 1920);
  position: relative;
  background: #fafafa;
  color: #1f1f1f;
}
.talk__sticky {
  position: sticky;
  top: 0;
  height: 100svh;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.talk__text {
  margin: 0;
  font-family: var(--font-head);
  font-weight: 500;
}
.tk__w {
  display: inline-block;
  --f: 0;
}
.talk__btn {
  align-self: flex-start;
  margin-top: calc(70 * var(--u));
}
.talk.is-done .talk__btn {
  pointer-events: auto;
}
.talk__sticky {
  align-items: center;
}
.talk__text {
  text-align: center;
  line-height: 0.93;
}
.talk__text {
  letter-spacing: -0.025em;
}
.talk__text {
  font-size: calc(114 * var(--u));
}
.talk__sticky {
  padding: 0;
}
.who {
  --x: 0;
  z-index: 8;
  background: transparent;
  height: calc(100svh * 3.2);
}
.who__sticky {
  pointer-events: none;
}
.who__sticky .ws {
  pointer-events: auto;
}
.who.is-gone .ws--no {
  visibility: hidden;
}
.ws--yes {
  clip-path: inset(0 0 calc(var(--x) * 100%) calc((1 - var(--p)) * 100%));
}
.ws--yes .ws__in {
  transform: translateY(calc(var(--x) * -38vh));
  opacity: calc(1 - var(--x) * 1.4);
}
.who.is-gone .ws--yes {
  pointer-events: none;
}
.who.is-gone .ws--yes .ws__btn {
  pointer-events: auto;
}
.talk {
  z-index: 6;
  margin-top: calc(-200svh);
}
.talk__text {
  position: relative;
  white-space: nowrap;
}
.tk__line {
  display: grid;
}
.tk__half {
  grid-area: 1 / 1;
  display: block;
}
.tk__half--l {
  clip-path: inset(-30% 50% -30% -20%);
}
.tk__half--r {
  clip-path: inset(-30% -20% -30% 50%);
}
.tk__w {
  opacity: 0.13;
  transform: translateY(0.06em);
  transition:
    opacity 0.7s var(--ease),
    transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
  transition-delay: calc(var(--k) * 0.07s);
}
.talk.is-in .tk__w {
  opacity: 1;
  transform: none;
}
.talk__btn {
  position: absolute;
  left: 50%;
  margin: 0;
}
.talk:not([style*="--s: 0;"]) .talk__btn {
  pointer-events: auto;
}
.talk__btn {
  top: 0;
  translate: -50% calc(var(--by, -60px) - 50%);
  opacity: 1;
  scale: 1;
  pointer-events: auto;
  color: #1f1f1f;
  background: transparent;
  border-color: #1f1f1f;
  z-index: 2;
}
.talk__btn::before {
  transform: translateY(101%);
}
.talk__btn:hover {
  color: #fff;
}
.talk__btn:hover::before {
  transform: none;
}
.tk__half {
  transition: none;
}
.talk__text {
  transform: translateY(var(--ty, 0px));
}
.talk {
  height: calc(100svh * 3.1);
}
.tk__half--l,
.tk__half--r {
  clip-path: none;
}
.tk__c {
  font-style: normal;
}
.tk__c.is-off {
  visibility: hidden;
}
.tk__half {
  will-change: transform;
}
.ins,
.ft {
  --u: calc(100vw / 1920);
  position: relative;
  z-index: 7;
  background: #fafafa;
  color: #1f1f1f;
}
.ins {
  display: grid;
  grid-template-columns: calc(580 * var(--u)) 1fr;
  padding: calc(200 * var(--u)) calc(80 * var(--u)) 0;
}
.ins__title {
  margin: 0;
  margin-top: calc(-8 * var(--u));
  font-family: var(--font-head);
  font-weight: 500;
  line-height: 0.97;
  letter-spacing: -0.035em;
}
.ins__l {
  display: block;
  overflow: hidden;
  padding-bottom: 0.1em;
  margin-bottom: -0.1em;
}
.ins__l > span {
  display: block;
  transform: translateY(105%);
  transition: transform 1.1s cubic-bezier(0.16, 1, 0.3, 1);
}
.ins__l + .ins__l > span {
  transition-delay: 0.08s;
}
.ins.is-in .ins__l > span {
  transform: none;
}
.ins__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.ins__list li {
  position: relative;
}
.ins__list li::before,
.ins__list li:last-child::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 1px;
  background: #1f1f1f;
  transform: scaleX(0);
  transform-origin: 0 50%;
  transition: transform 1.2s cubic-bezier(0.65, 0, 0.35, 1);
  transition-delay: calc(var(--r) * 0.07s);
}
.ins__list li:last-child::after {
  top: auto;
  bottom: 0;
  transition-delay: 0.55s;
}
.ins.is-in .ins__list li::before,
.ins.is-in .ins__list li:last-child::after {
  transform: none;
}
.ins__list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: inherit;
  text-decoration: none;
}
.ins__t {
  display: block;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(40 * var(--u));
  line-height: 1;
  letter-spacing: -0.02em;
  opacity: 0;
  transform: translateY(calc(24 * var(--u)));
  transition:
    opacity 0.8s var(--ease),
    transform 1s cubic-bezier(0.16, 1, 0.3, 1),
    translate 0.6s cubic-bezier(0.16, 1, 0.3, 1),
    color 0.4s var(--ease);
  transition-delay: calc(0.2s + var(--r) * 0.07s), calc(0.2s + var(--r) * 0.07s),
    0s, 0s;
}
.ins.is-in .ins__t {
  opacity: 1;
  transform: none;
}
.ins__arr {
  width: calc(30 * var(--u));
  height: calc(30 * var(--u));
  margin-right: calc(6 * var(--u));
  flex: none;
  opacity: 0;
  translate: calc(-24 * var(--u)) 0;
  transition:
    opacity 0.4s var(--ease),
    translate 0.6s cubic-bezier(0.16, 1, 0.3, 1),
    color 0.4s var(--ease);
}
.ins__list a:hover .ins__t {
  translate: calc(24 * var(--u)) 0;
  color: #ee2424;
}
.ins__list a:hover .ins__arr {
  opacity: 1;
  translate: 0 0;
  color: #ee2424;
}
.ft {
  padding: calc(220 * var(--u)) calc(80 * var(--u)) calc(14 * var(--u));
  font-family: var(--font-text);
}
@keyframes ftDot {
  0%,
  100% {
    transform: scale(1);
  }
  50% {
    transform: scale(0.72);
  }
}
.ft .lg {
  transform-box: fill-box;
  transform-origin: 50% 100%;
  transform: translateY(40%) scaleY(0.2);
  opacity: 0;
  transition:
    transform 1s cubic-bezier(0.16, 1, 0.3, 1),
    opacity 0.6s var(--ease);
  transition-delay: calc(0.15s + var(--l) * 0.08s);
}
.ft.is-in .lg {
  transform: none;
  opacity: 1;
}
.ins__title {
  font-size: calc(69 * var(--u));
}
.mnu {
  position: fixed;
  inset: 0;
  z-index: 9000;
  display: grid;
  grid-template-columns: 50.16% 1fr;
  visibility: hidden;
  pointer-events: none;
  transition: visibility 0s linear 0.9s;
}
.mnu.is-open {
  visibility: visible;
  pointer-events: auto;
  transition: none;
}
.mnu__left {
  position: relative;
  background: #fff;
  color: #0b0b0c;
  clip-path: inset(0 100% 0 0);
  transition: clip-path 0.85s cubic-bezier(0.76, 0, 0.24, 1) 0.05s;
}
.mnu__right {
  position: relative;
  overflow: hidden;
  background: #0b0b0c;
  color: #fff;
  clip-path: inset(0 0 0 100%);
  transition: clip-path 0.85s cubic-bezier(0.76, 0, 0.24, 1);
}
.mnu.is-open .mnu__left {
  clip-path: inset(0);
  transition-delay: 0s;
}
.mnu.is-open .mnu__right {
  clip-path: inset(0);
  transition-delay: 0.08s;
}
.mnu__close {
  height: calc(47 * var(--u));
  border: 0;
  border-radius: calc(24 * var(--u));
  font-family: var(--font-text);
  cursor: pointer;
  overflow: hidden;
}
.mnu__close span {
  display: inline-block;
  transition: transform 0.45s cubic-bezier(0.65, 0, 0.35, 1);
}
.mnu__list {
  list-style: none;
  margin: 0;
  padding: 0;
  position: absolute;
  left: 0;
  right: 0;
  top: calc(141 * var(--u));
}
.mnu__list li {
  position: relative;
}
.mnu__list li + li::before,
.mnu__list li:last-child::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 1px;
  background: rgba(11, 11, 12, 0.55);
  transform: scaleX(0);
  transform-origin: 0 50%;
  transition: transform 0.9s cubic-bezier(0.65, 0, 0.35, 1);
}
.mnu__list li:first-child::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: rgba(11, 11, 12, 0.55);
  transform: scaleX(0);
  transform-origin: 0 50%;
  transition: transform 0.9s cubic-bezier(0.65, 0, 0.35, 1);
}
.mnu__list li:last-child::after {
  top: auto;
  bottom: 0;
}
.mnu.is-open .mnu__list li::before,
.mnu.is-open .mnu__list li::after {
  transform: none;
  transition-delay: calc(0.3s + var(--r) * 0.045s);
}
.mnu__list a {
  position: relative;
  display: flex;
  align-items: center;
  height: calc(94 * var(--u));
  padding-left: calc(81 * var(--u));
  color: inherit;
  text-decoration: none;
}
.mnu__list sup {
  align-self: flex-start;
  margin-top: calc(29 * var(--u));
  width: calc(26 * var(--u));
  font-family: var(--font-text);
  font-size: calc(10.5 * var(--u));
  letter-spacing: 0.02em;
  color: #9a9a9a;
  white-space: nowrap;
  opacity: 0;
  transition:
    opacity 0.6s var(--ease),
    color 0.3s var(--ease);
}
.mnu__name {
  display: block;
  overflow: hidden;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(44 * var(--u));
  line-height: 1.15;
  letter-spacing: -0.02em;
}
.mnu__name > span {
  display: block;
  transform: translateY(110%);
  transition:
    transform 0.8s cubic-bezier(0.16, 1, 0.3, 1),
    translate 0.6s cubic-bezier(0.16, 1, 0.3, 1),
    color 0.3s var(--ease);
}
.mnu.is-open .mnu__name > span {
  transform: none;
  transition-delay: calc(0.35s + var(--r) * 0.045s), 0s, 0s;
}
.mnu.is-open .mnu__list sup {
  opacity: 1;
  transition-delay: calc(0.5s + var(--r) * 0.045s), 0s;
}
.mnu__list li.is-active sup {
  color: #0b0b0c;
}
.mnu__go {
  position: absolute;
  right: calc(30 * var(--u));
  top: 50%;
  width: calc(57 * var(--u));
  height: calc(57 * var(--u));
  margin-top: calc(-28.5 * var(--u));
  display: grid;
  place-items: center;
  border: 1px solid #0b0b0c;
  border-radius: 50%;
  transform: scale(0) rotate(-90deg);
  transition:
    transform 0.55s cubic-bezier(0.34, 1.56, 0.64, 1),
    background 0.3s var(--ease),
    color 0.3s var(--ease);
}
.mnu__go svg {
  width: calc(14 * var(--u));
  height: calc(14 * var(--u));
}
.mnu.is-open .mnu__list li.is-active .mnu__go {
  transform: none;
  transition-delay: 0.9s, 0s, 0s;
}
.mnu.is-open .mnu__list:hover li.is-active:not(:hover) .mnu__go {
  transform: scale(0) rotate(-90deg);
  transition-delay: 0s;
}
.mnu.is-open .mnu__list li:hover .mnu__go {
  transform: none;
  background: #0b0b0c;
  color: #fff;
  transition-delay: 0s;
}
.mnu__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.15);
  transition: transform 1.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.mnu.is-open .mnu__video {
  transform: none;
}
.mnu__shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(11, 11, 12, 0.45),
    rgba(11, 11, 12, 0.62)
  );
}
.mnu__logo {
  position: absolute;
  left: calc(265 * var(--u));
  top: calc(163 * var(--u));
  width: calc(430 * var(--u));
  height: auto;
  color: #fff;
  overflow: visible;
}
.mnu__logo path,
.mnu__logo circle {
  transition: stroke-dashoffset 1.3s cubic-bezier(0.65, 0, 0.35, 1);
}
.mnu.is-open .mnu__logo path {
  stroke-dashoffset: 0;
  transition-delay: 0.45s;
}
.mnu.is-open .mnu__logo circle {
  stroke-dashoffset: 0;
  transition-delay: 0.6s;
}
.mnu__info {
  position: absolute;
  left: calc(276 * var(--u));
  top: calc(608 * var(--u));
  display: grid;
  grid-template-columns: calc(326 * var(--u)) auto;
}
.mnu__col {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(14 * var(--u));
}
.mnu__cap {
  margin-bottom: calc(8 * var(--u));
  font-size: calc(14 * var(--u));
  font-weight: 500;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.7);
}
.mnu__col a,
.mnu__col address,
.mnu__legal a {
  font-family: var(--font-text);
  font-size: calc(14.5 * var(--u));
  font-weight: 500;
  font-style: normal;
  line-height: 1.45;
  text-transform: uppercase;
  color: #fff;
  text-decoration: none;
  transition: color 0.3s var(--ease);
}
.mnu__col a:hover,
.mnu__legal a:hover {
  color: #ee2424;
}
.mnu__legal {
  position: absolute;
  left: calc(276 * var(--u));
  top: calc(983 * var(--u));
  display: grid;
  grid-template-columns: calc(326 * var(--u)) auto;
}
.mnu__info,
.mnu__legal {
  opacity: 0;
  transform: translateY(calc(16 * var(--u)));
  transition:
    opacity 0.6s var(--ease),
    transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}
.mnu.is-open .mnu__info {
  opacity: 1;
  transform: none;
  transition-delay: 0.75s;
}
.mnu.is-open .mnu__legal {
  opacity: 1;
  transform: none;
  transition-delay: 0.85s;
}
.mnu.is-open ~ .cursor-dot {
  z-index: 9999;
}
.mnu__list li:hover .mnu__name > span {
  translate: none;
}
.mnu__name {
  transition: translate 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.mnu__list li:hover .mnu__name {
  translate: calc(18 * var(--u)) 0;
}
.mnu__logo path,
.mnu__logo circle {
  stroke-dasharray: 1.02 1;
  stroke-dashoffset: 1.02;
}
.page-studio {
  background: #fafafa;
  color: #1f1f1f;
  margin: 0;
  overflow-x: hidden;
}
.page-studio .cursor-dot {
  background: #fff;
}
.sh,
.st {
  --u: calc(100vw / 1920);
}
.sh {
  position: fixed;
  left: 0;
  right: 0;
  top: 0;
  z-index: 50;
  height: calc(90 * var(--u));
  display: flex;
  align-items: center;
  padding: 0 calc(80 * var(--u));
  color: #1f1f1f;
}
.sh__logo {
  display: block;
  width: calc(110 * var(--u));
  color: inherit;
}
.sh__logo svg {
  display: block;
  width: 100%;
  height: auto;
}
.sh__nav {
  position: absolute;
  left: calc(338 * var(--u));
  display: flex;
  gap: 0;
}
.sh__nav a {
  position: relative;
  font-family: var(--font-text);
  font-size: calc(14.5 * var(--u));
  font-weight: 500;
  text-transform: uppercase;
  color: inherit;
  text-decoration: none;
}
.sh__nav a:nth-child(1) {
  width: calc(127 * var(--u));
}
.sh__nav a:nth-child(2) {
  width: calc(137 * var(--u));
}
.sh__nav a:nth-child(3) {
  width: calc(176 * var(--u));
}
.sh__nav a:nth-child(4) {
  width: calc(131 * var(--u));
}
.sh__nav a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: calc(-3 * var(--u));
  height: 1px;
  background: currentColor;
}
.sh__nav a > * {
  pointer-events: none;
}
.sh__nav a {
  display: inline-block;
}
.sh__nav a span {
  display: inline-block;
}
.sh__nav a::after {
  width: 0;
  transition: width 0.45s cubic-bezier(0.65, 0, 0.35, 1);
}
.sh__nav a.is-active::after {
  width: calc(52 * var(--u));
}
.sh__nav a:hover {
  color: #ee2424;
}
.sh__actions {
  margin-left: auto;
  display: flex;
  gap: calc(10 * var(--u));
}
.sh__btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: calc(10 * var(--u));
  height: calc(52 * var(--u));
  padding: 0 calc(40 * var(--u));
  border: max(1px, calc(1.3 * var(--u))) solid #1f1f1f;
  border-radius: calc(27 * var(--u));
  background: transparent;
  color: #1f1f1f;
  font-family: var(--font-text);
  font-size: calc(17 * var(--u));
  text-decoration: none;
  overflow: hidden;
  isolation: isolate;
  cursor: pointer;
  transition: color 0.4s var(--ease);
}
.sh__btn svg {
  width: calc(17 * var(--u));
  height: calc(17 * var(--u));
  transition: transform 0.4s var(--ease);
}
.sh__btn::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: #1f1f1f;
  transform: translateY(101%);
  transition: transform 0.45s var(--ease);
}
.sh__btn--line:hover {
  color: #fff;
}
.sh__btn--line:hover::before {
  transform: none;
}
.sh__btn:hover svg {
  transform: translateX(calc(3 * var(--u)));
}
.sh__btn--fill {
  background: #1f1f1f;
  color: #fff;
  padding: 0 calc(38 * var(--u));
}
.sh__btn--fill::before {
  background: #ee2424;
}
.sh__btn--fill:hover::before {
  transform: none;
}
.st {
  position: relative;
  height: 100svh;
  min-height: calc(700 * var(--u));
  overflow: hidden;
}
.st__grid i {
  position: absolute;
  top: calc(100 * var(--u));
  bottom: 0;
  left: calc(var(--x) * var(--u));
  width: 0;
  border-left: 1px dashed rgba(31, 31, 31, 0.14);
  transform-origin: 50% 0;
  transform: scaleY(0);
  transition: transform 1.6s cubic-bezier(0.65, 0, 0.35, 1);
  transition-delay: calc(0.1s + var(--k) * 0.07s);
}
.st__logo {
  position: absolute;
  height: auto;
  color: #1f1f1f;
  overflow: visible;
}
.st__logo .lg {
  transform-box: fill-box;
  transform-origin: 50% 100%;
  translate: 0 var(--lift, 0px);
  transform: translateY(45%) scaleY(0.15);
  opacity: 0;
  transition:
    transform 1.1s cubic-bezier(0.16, 1, 0.3, 1),
    opacity 0.6s var(--ease);
  transition-delay: calc(0.45s + var(--l) * 0.08s);
}
.sh__logo,
.sh__nav a,
.sh__actions > * {
  opacity: 0;
  transform: translateY(calc(-14 * var(--u)));
  transition:
    opacity 0.7s var(--ease),
    transform 0.9s cubic-bezier(0.16, 1, 0.3, 1),
    color 0.3s var(--ease);
}
.sh__nav a:nth-child(2) {
  transition-delay: 0.05s;
}
.sh__nav a:nth-child(3) {
  transition-delay: 0.1s;
}
.sh__nav a:nth-child(4) {
  transition-delay: 0.15s;
}
.sh__nav a:nth-child(5) {
  transition-delay: 0.2s;
}
.sh__actions > *:nth-child(2) {
  transition-delay: 0.1s;
}
.is-ready .sh__logo,
.is-ready .sh__nav a,
.is-ready .sh__actions > * {
  opacity: 1;
  transform: none;
}
.is-ready .st__grid i {
  transform: none;
}
.is-ready .st__logo .lg {
  opacity: 1;
  transform: none;
}
.st__logo .lg {
  transition-property: transform, opacity, translate;
}
html.is-leaving body {
  opacity: 0;
  transition: opacity 0.35s var(--ease) 0.25s;
}
.is-ready .st__logo .lg {
  transition-duration: 1.1s, 0.6s, 0s;
  transition-delay: calc(0.45s + var(--l) * 0.08s),
    calc(0.45s + var(--l) * 0.08s), 0s;
}
.st__grid i {
  border-left-color: rgba(31, 31, 31, 0.07);
}
.st__bar {
  position: absolute;
  left: calc(338 * var(--u));
  width: calc(76 * var(--u));
  height: calc(8 * var(--u));
  background: #ee2424;
  transform-origin: 0 50%;
  transform: scaleX(0);
  transition: transform 0.9s cubic-bezier(0.65, 0, 0.35, 1) 0.35s;
}
.is-ready .st__bar {
  transform: none;
}
.sh::before {
  content: "";
  position: absolute;
  left: calc(338 * var(--u));
  top: 0;
  width: calc(632 * var(--u));
  height: calc(5 * var(--u));
  background: #ee2424;
  transform-origin: 0 50%;
  transform: scaleX(0);
  transition: transform 1.1s cubic-bezier(0.65, 0, 0.35, 1) 0.2s;
}
.is-ready .sh::before {
  transform: none;
}
.st__msg {
  position: absolute;
  margin: 0;
  color: #1f1f1f;
}
.st__ml {
  display: block;
  overflow: hidden;
}
.st__ml > span {
  display: block;
  transition: transform 1.1s cubic-bezier(0.16, 1, 0.3, 1);
}
.st__ml:nth-child(1) > span {
  transition-delay: 0.7s;
}
.st__ml:nth-child(2) > span {
  transition-delay: 0.78s;
}
.st__ml:nth-child(3) > span {
  transition-delay: 0.86s;
}
.st__ml:nth-child(4) > span {
  transition-delay: 0.94s;
}
.st__down {
  display: inline-flex;
  padding: 0;
  border: 0;
  background: none;
  font-family: var(--font-text);
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.8s var(--ease) 1.2s;
}
.is-ready .st__down {
  opacity: 1;
}
.st__down i {
  position: relative;
  overflow: hidden;
}
.st__down svg {
  display: block;
  width: 100%;
  height: 100%;
  animation: stDown 2s cubic-bezier(0.65, 0, 0.35, 1) infinite;
}
@keyframes stDown {
  0% {
    transform: translateY(-105%);
  }
  45% {
    transform: translateY(0);
  }
  70% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(105%);
  }
}
.st__down span {
  position: relative;
}
.st__down span::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: calc(-5 * var(--u));
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: 100% 50%;
  transition: transform 0.5s cubic-bezier(0.65, 0, 0.35, 1);
}
.st__down:hover span::after {
  transform: scaleX(1);
  transform-origin: 0 50%;
}
.st__addr {
  position: absolute;
  font-family: var(--font-text);
  font-style: normal;
  opacity: 0;
  transform: translateY(calc(14 * var(--u)));
  transition:
    opacity 0.7s var(--ease) 1.15s,
    transform 0.9s cubic-bezier(0.16, 1, 0.3, 1) 1.15s;
}
.is-ready .st__addr {
  opacity: 1;
  transform: none;
}
.sh::before {
  display: none;
}
.st__bar {
  bottom: calc(237 * var(--u) + 164 * var(--u) + 34 * var(--u));
}
.st__cta {
  position: absolute;
  display: flex;
  align-items: center;
}
.st__down {
  position: relative;
  left: auto;
  bottom: auto;
  height: auto;
  font-weight: 400;
  text-transform: none;
}
.st__down em {
  font-style: normal;
  color: #9a9a9a;
  margin-right: calc(4 * var(--u));
}
.st__down span::after {
  right: 0;
}
.st__down:hover {
  color: #ee2424;
}
.st__bar {
  display: none;
}
.st__logo {
  left: calc(339 * var(--u));
  width: calc(563 * var(--u));
  bottom: calc(188 * var(--u));
}
.st__msg {
  left: calc(1149 * var(--u));
  height: auto;
  transform: none;
  white-space: nowrap;
}
.st__ml {
  line-height: inherit;
}
.st__cta {
  left: calc(1148 * var(--u));
  bottom: calc(82 * var(--u));
  justify-content: space-between;
  gap: 0;
}
.st__down {
  color: #1f1f1f;
}
.st__addr {
  left: calc(80 * var(--u));
  bottom: calc(82 * var(--u));
  font-size: calc(14 * var(--u));
  line-height: 1.45;
  color: #1f1f1f;
}
.st__msg {
  width: auto;
}
.st__down {
  white-space: nowrap;
  flex: none;
}
.st__down {
  text-align: right;
}
.st__down {
  letter-spacing: -0.02em;
}
.st__cta {
  width: calc(379 * var(--u));
}
.st__msg {
  font-family: var(--font-head);
  font-weight: 500;
  letter-spacing: -0.025em;
  line-height: 0.93;
  text-transform: lowercase;
}
.st__msg {
  font-size: calc(42.5 * var(--u));
  bottom: calc(181 * var(--u));
}
.tm {
  --u: calc(100vw / 1920);
  position: relative;
  min-height: calc(760 * var(--u));
}
.tm__wall {
  position: absolute;
  left: 0;
  right: 0;
  top: 4%;
  bottom: 4%;
}
.tm__t {
  position: absolute;
  margin: 0;
  left: calc(var(--x) / 1920 * 100%);
  width: calc(var(--w) / 1920 * 100%);
  top: calc(var(--y) / 1043 * 100%);
  height: calc(var(--h) / 1043 * 100%);
  overflow: hidden;
  background: #8c8c8c;
  clip-path: inset(100% 0 0 0);
  transition: clip-path 1.1s cubic-bezier(0.65, 0, 0.35, 1);
  transition-delay: calc(var(--i) * 0.045s);
}
.tm.is-in .tm__t {
  clip-path: inset(0);
}
.tm__blur,
.tm__sharp {
  position: absolute;
  inset: 0;
}
.tm__t img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(var(--z));
  transform-origin: calc(var(--fx) * 100%) calc(var(--fy) * 100%);
  filter: grayscale(1) contrast(1.05);
}
.tm__t.is-r img {
  transform: rotate(180deg) scale(var(--z));
}
.tm__t.is-m img {
  transform: scaleX(-1) scale(var(--z));
}
.tm__blur img {
  transform: scale(calc(var(--z) * 1.04));
}
.tm__t.is-r .tm__blur img {
  transform: rotate(180deg) scale(calc(var(--z) * 1.04));
}
.tm__t.is-m .tm__blur img {
  transform: scaleX(-1) scale(calc(var(--z) * 1.04));
}
.tm__t::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.22;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}
.tm__sharp {
  clip-path: inset(
    var(--ly, 0px) calc(100% - var(--lx, 0px) - var(--lw, 0px))
      calc(100% - var(--ly, 0px) - var(--lh, 0px)) var(--lx, 0px)
  );
}
.tm__lens {
  position: absolute;
  left: 0;
  top: 0;
  width: var(--lw, 0px);
  height: var(--lh, 0px);
  transform: translate(var(--lx, 0px), var(--ly, 0px));
  border: 1px solid rgba(255, 255, 255, 0.75);
  pointer-events: none;
  z-index: 2;
}
.tm__lens b {
  position: absolute;
  left: 62%;
  top: 50%;
  width: calc(14 * var(--u));
  height: calc(14 * var(--u));
  margin: calc(-7 * var(--u)) 0 0 calc(-7 * var(--u));
}
.tm__lens b::before,
.tm__lens b::after {
  content: "";
  position: absolute;
  background: rgba(255, 255, 255, 0.9);
}
.tm__lens b::before {
  left: 50%;
  top: 0;
  bottom: 0;
  width: 1px;
}
.tm__lens b::after {
  top: 50%;
  left: 0;
  right: 0;
  height: 1px;
}
.tm__sharp,
.tm__lens {
  opacity: 0;
  transition: opacity 0.6s var(--ease);
  transition-delay: calc(0.6s + var(--i) * 0.045s);
}
.tm.is-in .tm__sharp,
.tm.is-in .tm__lens {
  opacity: 1;
}
.tm__t:hover .tm__lens {
  border-color: #fff;
}
.sh.is-hidden {
  transform: translateY(-110%);
}
.tm__t img {
  object-position: 42% 48%;
}
.tm__t.is-r img,
.tm__t.is-m img {
  transform-origin: 50% 50%;
}
.tm__blur img {
  filter: grayscale(1) contrast(1.02) blur(calc(6 * var(--u)));
}
.tm {
  height: calc(100svh * 2);
  overflow: visible;
  background: transparent;
  z-index: 2;
  --q: 0;
}
.tm__stick {
  position: sticky;
  top: 0;
  height: 100svh;
  overflow: hidden;
}
.tm__t {
  translate: calc(var(--dx, 0) * var(--q) * 1px)
    calc(var(--dy, 0) * var(--q) * 1px);
  scale: calc(1 - var(--q) * 0.25);
  opacity: calc(1 - var(--q) * 1.25);
}
.hw {
  --u: calc(100vw / 1920);
  position: relative;
  z-index: 1;
  margin-top: calc(-200svh);
}
.hw__stick {
  position: sticky;
  top: 0;
  height: 100svh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.hw__label {
  margin: 0 0 calc(46 * var(--u));
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(16 * var(--u));
  letter-spacing: -0.005em;
  color: #1f1f1f;
}
.hw__text {
  margin: 0;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(66 * var(--u));
  line-height: 0.985;
  letter-spacing: -0.022em;
  white-space: nowrap;
}
.hw__w {
  display: inline-block;
}
.hw__c {
  font-style: normal;
  color: #c9c9c9;
  transition: color 0.25s linear;
}
.hw__c.is-on {
  color: #1f1f1f;
}
.hw.is-done .hw__c--hl {
  color: #ee2424;
  transition: color 0.7s var(--ease);
}
.hw.is-done .hw__c--hl:nth-child(n) {
  transition-delay: 0s;
}
.tm.is-gone .tm__t {
  pointer-events: none;
}
.tm__stick {
  background: rgba(250, 250, 250, calc(1 - var(--q) * 2.2));
}
@keyframes svPulse {
  0%,
  100% {
    box-shadow:
      0 0 0 calc(4 * var(--u)) rgba(255, 255, 255, 0.35),
      0 0 calc(30 * var(--u)) rgba(255, 255, 255, 0.8);
  }
  50% {
    box-shadow:
      0 0 0 calc(12 * var(--u)) rgba(255, 255, 255, 0),
      0 0 calc(50 * var(--u)) rgba(255, 255, 255, 0.9);
  }
}
@keyframes svRing {
  0%,
  100% {
    box-shadow:
      0 0 0 calc(5 * var(--u)) #fff,
      0 0 0 calc(5 * var(--u)) rgba(255, 255, 255, 0.6);
  }
  50% {
    box-shadow:
      0 0 0 calc(5 * var(--u)) #fff,
      0 0 0 calc(18 * var(--u)) rgba(255, 255, 255, 0);
  }
}
.s2 {
  --u: calc(100vw / 1920);
  position: relative;
  z-index: 3;
  height: calc(100svh * 4.4);
}
.s2__stick {
  position: sticky;
  top: 0;
  height: 100svh;
  overflow: hidden;
}
.s2__top {
  position: absolute;
  display: flex;
  justify-content: space-between;
  padding-top: calc(18 * var(--u));
}
.s2__label {
  margin: 0;
  font-family: var(--font-head);
  font-weight: 500;
}
.s2__count {
  font-family: var(--font-text);
  font-size: calc(15 * var(--u));
  letter-spacing: 0.04em;
}
.s2__count b {
  font-weight: 500;
}
.s2__side {
  position: absolute;
}
.s2__lead {
  margin: 0 0 calc(26 * var(--u));
  font-family: var(--font-text);
  font-size: calc(14 * var(--u));
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.s2__msgs {
  position: relative;
}
.s2__msgs p {
  position: absolute;
  top: 0;
  margin: 0;
  font-family: var(--font-head);
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: -0.03em;
  opacity: 0;
  transform: translateY(calc(30 * var(--u)));
}
.s2__msgs b {
  font-weight: 500;
  color: #ee2424;
}
.s2[data-step="0"] .s2__msgs p[data-s="1"],
.s2[data-step="1"] .s2__msgs p[data-s="1"],
.s2[data-step="2"] .s2__msgs p[data-s="2"],
.s2[data-step="3"] .s2__msgs p[data-s="3"],
.s2[data-step="4"] .s2__msgs p[data-s="4"] {
  opacity: 1;
  transform: none;
  transition-delay: 0.15s;
}
.s2[data-step="0"] .s2__msgs p[data-s="1"] {
  opacity: 0.25;
}
.s2__btn {
  height: calc(57 * var(--u));
  padding: 0 calc(42 * var(--u)) 0 calc(34 * var(--u));
  font-size: calc(18 * var(--u));
  opacity: 0.3;
  transition:
    opacity 0.5s var(--ease),
    color 0.4s var(--ease);
}
.s2__btn:hover::before {
  transform: none;
}
.s2[data-step="4"] .s2__btn {
  opacity: 1;
}
.s2__bar {
  position: absolute;
  left: calc(80 * var(--u));
  right: calc(80 * var(--u));
  bottom: calc(70 * var(--u));
  height: 1px;
}
.s2__bar i {
  position: absolute;
  inset: 0;
  background: #ee2424;
  transform-origin: 0 50%;
  transform: scaleX(var(--q, 0));
}
.vsw {
  position: fixed;
  right: calc(20 * var(--u, 1px));
  bottom: calc(20 * var(--u, 1px));
  z-index: 60;
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 4px 4px 4px 12px;
  border-radius: 20px;
  background: rgba(15, 15, 16, 0.85);
  color: #fff;
  font: 500 12px/1 var(--font-text);
}
.vsw span {
  opacity: 0.6;
  margin-right: 4px;
}
.vsw a {
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  text-decoration: none;
}
.vsw a.is-on {
  background: #ee2424;
}
.s2 {
  color: #1f1f1f;
}
.s2__top {
  border-top-color: rgba(31, 31, 31, 0.16);
}
.s2__count {
  color: rgba(31, 31, 31, 0.5);
}
.s2__count b {
  color: #1f1f1f;
}
.s2__lead {
  color: rgba(31, 31, 31, 0.5);
}
.s2__btn {
  color: #1f1f1f;
  border-color: #1f1f1f;
}
.s2__btn::before {
  background: #1f1f1f;
}
.s2__btn:hover {
  color: #fff;
}
.s2__bar {
  background: rgba(31, 31, 31, 0.12);
}
.s2__top {
  border-top: 0;
}
@property --ch {
  syntax: "<length>";
  inherits: true;
  initial-value: 0px;
}
@property --cz {
  syntax: "<length>";
  inherits: true;
  initial-value: 0px;
}
.s2__cubes {
  position: absolute;
  width: calc(4 * var(--C));
  height: calc(4 * var(--C));
  pointer-events: none;
}
.cubes__floor {
  position: absolute;
  inset: 0;
  transform-style: preserve-3d;
  transform: rotateX(60deg) rotateZ(var(--spin, 45deg));
}
.cubes__grid {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
.cubes__grid i {
  border: 1px dashed rgba(31, 31, 31, 0.22);
  margin: -0.5px;
}
.cb {
  --px: 2;
  --py: 2;
  position: absolute;
  left: calc(var(--px) * var(--C) - var(--S) / 2);
  top: calc(var(--py) * var(--C) - var(--S) / 2);
  width: var(--S);
  height: var(--S);
  transform-style: preserve-3d;
  transform: translateZ(var(--cz));
}
.cb[data-k="b"] {
  --px: 2;
  --py: 0.85;
}
.cb[data-k="u"] {
  --px: 0.9;
  --py: 2.9;
}
.cb[data-k="e"] {
  --px: 3.1;
  --py: 2.9;
}
.cb__f {
  position: absolute;
  box-sizing: border-box;
  border: 1px dashed rgba(31, 31, 31, 0.5);
  background: transparent;
}
.cb__top {
  inset: 0;
  transform: translateZ(var(--ch));
}
.cb__s1 {
  left: 0;
  top: 0;
  width: 100%;
  height: var(--ch);
  transform-origin: 0 0;
  transform: rotateX(90deg);
}
.cb__s3 {
  left: 0;
  top: 100%;
  width: 100%;
  height: var(--ch);
  transform-origin: 0 0;
  transform: rotateX(90deg);
}
.cb__s2 {
  left: 0;
  top: 0;
  width: var(--ch);
  height: 100%;
  transform-origin: 0 0;
  transform: rotateY(-90deg);
}
.cb__s4 {
  left: 100%;
  top: 0;
  width: var(--ch);
  height: 100%;
  transform-origin: 0 0;
  transform: rotateY(-90deg);
}
.cb__lab {
  position: absolute;
  left: 50%;
  top: 50%;
  white-space: nowrap;
  font-family: var(--font-head);
  font-weight: 500;
  letter-spacing: -0.01em;
  color: #1f1f1f;
  transform: translate(-50%, -50%) translateZ(calc(var(--ch) + 34 * var(--u)))
    rotateZ(calc(-1 * var(--spin, 45deg))) rotateX(-60deg);
}
.cb__lab--all {
  left: calc(2 * var(--C));
  top: calc(2 * var(--C));
  transform: translate(-50%, -50%)
    translateZ(calc(3 * var(--S) + 40 * var(--u)))
    rotateZ(calc(-1 * var(--spin, 45deg))) rotateX(-60deg);
  color: #ee2424;
}
.cb.is-solid .cb__f {
  border-style: solid;
}
.cb[data-k="b"].is-solid .cb__f {
  background: #e52222;
  border-color: rgba(255, 255, 255, 0.25);
}
.cb[data-k="b"].is-solid .cb__top {
  background: #ff5050;
}
.cb[data-k="b"].is-solid .cb__s1,
.cb[data-k="b"].is-solid .cb__s3 {
  background: #d01c1c;
}
.cb[data-k="u"].is-solid .cb__f {
  background: #2a2a2a;
  border-color: rgba(255, 255, 255, 0.14);
}
.cb[data-k="u"].is-solid .cb__top {
  background: #454545;
}
.cb[data-k="u"].is-solid .cb__s1,
.cb[data-k="u"].is-solid .cb__s3 {
  background: #1b1b1b;
}
.cb.is-faint .cb__f {
  border-color: rgba(31, 31, 31, 0.18);
}
.cb.is-faint .cb__lab {
  opacity: 0.35;
}
.s2[data-step="4"] .cb {
  --px: 2;
  --py: 2;
  --ch: var(--S);
}
.s2[data-step="4"] .cb[data-k="u"] {
  --cz: 0px;
}
.s2[data-step="4"] .cb[data-k="e"] {
  --cz: var(--S);
  transition-delay: 0.12s;
}
.s2[data-step="4"] .cb[data-k="b"] {
  --cz: calc(var(--S) * 2);
  transition-delay: 0.24s;
}
.s2[data-step="4"] .cb .cb__lab {
  opacity: 0;
}
.s2[data-step="4"] .cb__lab--all {
  transition-delay: 0.9s;
}
.s2__cubes {
  --C: calc(96 * var(--u));
  --S: calc(68 * var(--u));
}
.cb[data-k="e"].is-solid .cb__f {
  background: #d6d6dc;
  border-color: rgba(255, 255, 255, 0.8);
}
.cb[data-k="e"].is-solid .cb__top {
  background: #ececf0;
}
.cb[data-k="e"].is-solid .cb__s1,
.cb[data-k="e"].is-solid .cb__s3 {
  background: #c4c4cb;
}
.cb__lab {
  font-size: calc(18 * var(--u));
}
.cb__lab--all {
  font-size: calc(24 * var(--u));
}
.s2__top {
  left: 0;
  right: 0;
  padding: 0;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.s2__label {
  font-size: calc(92 * var(--u));
  line-height: 0.95;
  letter-spacing: -0.035em;
}
.s2__top .s2__lead {
  margin: calc(22 * var(--u)) 0 0;
  font-family: var(--font-text);
  font-size: calc(20 * var(--u));
  letter-spacing: 0;
  text-transform: none;
  color: #1f1f1f;
}
.s2__count {
  position: absolute;
  right: calc(80 * var(--u));
  top: calc(-60 * var(--u));
}
.s2__cubes {
  left: calc(50% - 2 * var(--C));
}
.s2__side {
  left: 0;
  right: 0;
  width: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.s2__msgs {
  width: 100%;
  height: calc(56 * var(--u));
}
.s2__msgs p {
  left: 0;
  right: 0;
  font-size: calc(42 * var(--u));
  white-space: nowrap;
}
.s2__btn {
  margin-top: calc(26 * var(--u));
}
.s2__count {
  display: none;
}
.s2__top {
  top: calc(50% - 330 * var(--u));
}
.s2__cubes {
  top: calc(50% - 110 * var(--u));
}
.s2__side {
  top: calc(50% + 250 * var(--u));
}
.hw__stick {
  perspective-origin: 50% 30%;
}
.s2 {
  margin-top: calc(-200svh);
  background: transparent;
}
.cubes__grid {
  opacity: calc(var(--rise) * 1.6 - 0.2);
}
.cb {
  --ch: calc(var(--S) * var(--rise));
}
.cb.is-tall {
  --ch: calc(var(--S) * 2.4 * var(--rise));
}
.cb {
  opacity: calc(var(--rise) * 3 - 0.3);
}
.cb__lab {
  opacity: calc(var(--rise) * 2 - 1);
}
.s2__top {
  opacity: calc(var(--rise) * 2.2 - 1.2);
  translate: 0 calc((1 - var(--rise)) * 60 * var(--u));
}
.s2__side {
  opacity: calc(var(--rise) * 2.5 - 1.5);
  translate: 0 calc((1 - var(--rise)) * 50 * var(--u));
}
.s2__bar {
  opacity: var(--rise);
}
.hw__stick {
  perspective: none;
}
.hw__text {
  transform-origin: 50% 50%;
}
.cb__lab--all {
  opacity: 0 !important;
}
.s2[data-step="4"] .cb__lab--all {
  opacity: 1 !important;
}
.hw {
  height: calc(100svh * 4.2);
  --x: 0;
}
.hw.is-over {
  z-index: 4;
}
.hw__text {
  transform: translateY(calc(var(--x) * -38vh));
  opacity: calc(1 - var(--x) * 1.4);
}
.hw__label {
  transform: translateY(calc(var(--x) * -38vh));
  opacity: calc(1 - var(--x) * 1.4);
}
.hw__stick {
  clip-path: inset(0 0 calc(var(--x) * 100%) 0);
}
.s2 {
  --rise: 1 !important;
}
.s2__stick {
  background: #fafafa;
}
.hw {
  background: transparent;
}
.hw__stick {
  background: #fafafa;
}
.hw__edge {
  position: sticky;
  top: 0;
  display: block;
  height: 0;
  z-index: 2;
}
.hw__edge::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: calc((1 - var(--x)) * 100vh);
  height: 1px;
  background: #1f1f1f;
  box-shadow: 0 calc(-18 * var(--u)) calc(40 * var(--u)) rgba(31, 31, 31, 0.08);
  opacity: calc(min(var(--x) * 12, (1 - var(--x)) * 12, 1));
}
.ns {
  --u: calc(100vw / 1920);
  position: relative;
  z-index: 3;
  background: #fafafa;
  color: #1f1f1f;
}
.ns__stick {
  position: sticky;
  top: 0;
  height: 100svh;
  overflow: hidden;
}
.ns__title {
  position: absolute;
  left: calc(130 * var(--u));
  top: calc(50% - 320 * var(--u));
  margin: 0;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(124 * var(--u));
  line-height: 0.84;
  letter-spacing: -0.045em;
}
.ns__l {
  display: block;
  overflow: hidden;
  padding-bottom: 0.12em;
  margin-bottom: -0.12em;
}
.ns__l > span {
  display: block;
  transform: translateY(105%);
  transition: transform 1.1s cubic-bezier(0.16, 1, 0.3, 1);
}
.ns__l + .ns__l > span {
  transition-delay: 0.08s;
}
.ns.is-in .ns__l > span {
  transform: none;
}
.ns__deck {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 0;
  height: 0;
}
.ns__card {
  position: absolute;
  left: calc(-215 * var(--u));
  top: calc(-200 * var(--u));
  width: calc(430 * var(--u));
  height: calc(400 * var(--u));
  box-sizing: border-box;
  padding: calc(34 * var(--u)) calc(32 * var(--u));
  border-radius: calc(24 * var(--u));
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  will-change: transform;
  box-shadow: 0 calc(30 * var(--u)) calc(70 * var(--u)) rgba(31, 31, 31, 0.12);
}
.ns__card--dark {
  background: #222;
  color: #fff;
}
.ns__card--red {
  background: #ee2424;
  color: #fff;
}
.ns__card h3 {
  margin: 0;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(46 * var(--u));
  line-height: 0.92;
  letter-spacing: -0.03em;
}
.ns__card p {
  margin: 0;
  font-family: var(--font-text);
  font-size: calc(19 * var(--u));
  line-height: 1.25;
  opacity: 0.92;
}
.ns__card p b {
  font-weight: 500;
  opacity: 1;
}
.ns__no {
  position: absolute;
  right: calc(30 * var(--u));
  top: calc(34 * var(--u));
  font-family: var(--font-text);
  font-size: calc(14 * var(--u));
  letter-spacing: 0.04em;
  opacity: 0.55;
}
.s2__bar {
  display: none;
}
.ns {
  height: calc(100svh * 4.4);
}
.ns__title {
  visibility: hidden;
  filter: none;
  opacity: 1;
}
.ns__title .ns__l > span {
  transform: none;
}
.nf__w {
  font-style: normal;
}
.ns__push {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(50% - 124 * var(--u));
  color: #1f1f1f;
  font-size: calc(124 * var(--u));
  line-height: 0.84;
  letter-spacing: -0.045em;
  filter: blur(calc(var(--bl, 0) * 14 * var(--u)));
  opacity: calc(1 - var(--bl, 0) * 0.55);
}
.ns__push .push__line {
  height: 0.84em;
}
.ns__push .push__line--2 {
  height: calc(var(--h2, 0) * 0.84em);
}
.ns__push .pw {
  transform-origin: 0 0;
  will-change: translate;
}
.ns__push .pw__in {
  padding: 0 0.12em;
}
.ns__cta {
  position: absolute;
  left: 50%;
  bottom: calc(80 * var(--u));
  height: calc(60 * var(--u));
  padding: 0 calc(44 * var(--u)) 0 calc(36 * var(--u));
  border-radius: calc(30 * var(--u));
  font-size: calc(18 * var(--u));
  z-index: 3;
  translate: -50% calc((1 - var(--cta, 0)) * 40 * var(--u));
  opacity: var(--cta, 0);
  pointer-events: none;
}
.ns.has-cta .ns__cta {
  pointer-events: auto;
}
@keyframes obSwap {
  from {
    opacity: 0;
    transform: translateY(calc(14 * var(--u)));
    filter: blur(4px);
  }
  to {
    opacity: 1;
    transform: none;
    filter: none;
  }
}
.hz {
  --u: calc(100vw / 1920);
  --p: 0;
  position: relative;
  z-index: 3;
  height: calc(100svh * 5);
  background: #fafafa;
  color: #1f1f1f;
}
.hz__stick {
  position: sticky;
  top: 0;
  height: 100svh;
  overflow: hidden;
}
.hz__top {
  position: absolute;
  left: calc(80 * var(--u));
  right: calc(80 * var(--u));
  top: calc(50% - 380 * var(--u));
  display: grid;
  grid-template-columns: 1fr calc(470 * var(--u)) auto;
  align-items: start;
  gap: calc(60 * var(--u));
}
.hz__title {
  margin: 0;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(48 * var(--u));
  line-height: 1;
  letter-spacing: -0.03em;
}
.hz__title b {
  font-weight: 500;
  color: #ee2424;
}
.hz__l {
  display: block;
  overflow: hidden;
  padding-bottom: 0.1em;
  margin-bottom: -0.1em;
}
.hz__l > span {
  display: block;
  transform: translateY(105%);
  transition: transform 1.1s cubic-bezier(0.16, 1, 0.3, 1);
}
.hz__l + .hz__l > span {
  transition-delay: 0.1s;
}
.hz.is-in .hz__l > span {
  transform: none;
}
.hz__lead {
  margin: calc(6 * var(--u)) 0 0;
  font-family: var(--font-text);
  font-size: calc(17 * var(--u));
  line-height: 1.45;
  color: #707070;
}
.hz__count {
  margin-top: calc(6 * var(--u));
  font-family: var(--font-text);
  font-size: calc(15 * var(--u));
  color: #a8a8a8;
  font-variant-numeric: tabular-nums;
}
.hz__count b {
  color: #1f1f1f;
  font-weight: 500;
}
.hz__strip {
  position: absolute;
  left: 0;
  display: flex;
  align-items: flex-end;
  padding-left: calc(80 * var(--u));
  white-space: nowrap;
  will-change: transform;
}
.hz__w {
  position: relative;
}
.hz__w span {
  display: block;
  font-family: var(--font-head);
  font-weight: 500;
  letter-spacing: -0.055em;
  color: #e2e2e2;
  transition: color 0.5s var(--ease);
}
.hz__w sup {
  position: absolute;
  left: calc(6 * var(--u));
  font-family: var(--font-text);
  font-size: calc(15 * var(--u));
  letter-spacing: 0.02em;
  color: #b4b4b4;
  transition: color 0.5s var(--ease);
}
.hz__w.is-past span {
  color: #c9c9c9;
}
.hz__w.is-on span {
  color: #1f1f1f;
}
.hz__w.is-on sup {
  color: #ee2424;
}
.hz__w--end.is-on span {
  color: #ee2424;
}
.hz__w + .hz__w::before {
  content: "";
  position: absolute;
  right: calc(100% + 22 * var(--u));
  width: calc(66 * var(--u));
  height: 1px;
  background: rgba(31, 31, 31, 0.25);
}
.hz__ruler {
  position: absolute;
  left: calc(80 * var(--u));
  right: calc(80 * var(--u));
  height: calc(60 * var(--u));
}
.hz__ticks {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: calc(22 * var(--u));
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.hz__ticks i {
  width: 1px;
  height: calc(10 * var(--u));
  background: rgba(31, 31, 31, 0.25);
}
.hz__ticks i.is-major {
  height: calc(22 * var(--u));
  background: rgba(31, 31, 31, 0.55);
}
.hz__fill {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 2px;
  background: #ee2424;
  transform-origin: 0 50%;
  transform: scaleX(var(--p));
}
.hz__head {
  position: absolute;
  left: calc(var(--p) * 100%);
  top: calc(-14 * var(--u));
  width: 2px;
  height: calc(50 * var(--u));
  margin-left: -1px;
  background: #ee2424;
}
.hz__head::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  width: calc(12 * var(--u));
  height: calc(12 * var(--u));
  margin-left: calc(-6 * var(--u));
  border-radius: 50%;
  background: #ee2424;
}
.hz__mk {
  position: absolute;
  left: var(--x);
  top: calc(40 * var(--u));
  transform: translateX(-50%);
  font-family: var(--font-text);
  font-size: calc(14 * var(--u));
  color: #9a9a9a;
  white-space: nowrap;
}
.hz__mk:first-of-type {
  transform: none;
}
.hz__mk:last-of-type {
  transform: translateX(-100%);
}
.hz__w span {
  line-height: 0.86;
}
.hz__w sup {
  top: auto;
  bottom: calc(190 * 0.86 * 2 * var(--u) + 22 * var(--u));
}
.hz__count,
.hz__w sup {
  display: none !important;
}
.hz__w span {
  font-size: calc(130 * var(--u));
}
.hz__strip {
  gap: calc(100 * var(--u));
}
.hz__w + .hz__w::before {
  bottom: calc(45 * var(--u));
}
.hz__strip {
  top: calc(50% - 80 * var(--u));
}
.hz__ruler {
  top: calc(50% + 300 * var(--u));
}
.earn--st {
  --u: calc(100vw / 1920);
  z-index: 8;
}
.vl {
  --u: calc(100vw / 1920);
  position: relative;
  z-index: 8;
  min-height: 100vh;
  background: #fafafa;
  color: #1f1f1f;
  overflow: hidden;
}
.vl__title {
  position: relative;
  margin: 0;
  text-align: center;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(76 * var(--u));
  line-height: calc(68 * var(--u));
  letter-spacing: -0.03em;
}
.vl__l {
  display: block;
}
.vl__title b {
  font-weight: inherit;
  color: #e8262b;
}
.vl__title .w {
  display: inline-block;
  overflow: hidden;
  vertical-align: top;
}
.vl__title .w > span {
  display: inline-block;
  transform-origin: 0 100%;
  transition: transform 1.1s cubic-bezier(0.16, 1, 0.3, 1);
  transition-delay: calc(var(--w) * 0.055s);
}
.vl__tabs {
  position: relative;
  display: flex;
  justify-content: center;
  gap: calc(13 * var(--u));
  margin: calc(40 * var(--u)) auto calc(50 * var(--u));
  width: max-content;
}
.vl__tab {
  position: relative;
  z-index: 1;
  width: calc(195 * var(--u));
  height: calc(45 * var(--u));
  border: 0;
  border-radius: 999px;
  background: none;
  cursor: pointer;
  font: 500 calc(16 * var(--u))/1 var(--font-text);
  color: #b4b4b4;
  opacity: 0;
  transform: translateY(calc(14 * var(--u)));
  transition:
    color 0.45s cubic-bezier(0.65, 0, 0.35, 1),
    opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  transition-delay: 0s, calc(0.45s + var(--t) * 0.06s),
    calc(0.45s + var(--t) * 0.06s);
}
.vl.is-in .vl__tab {
  opacity: 1;
  transform: none;
}
.vl__tab:hover {
  color: #1f1f1f;
}
.vl__tab.is-on {
  color: #fff;
}
.vl__pill {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: calc(195 * var(--u));
  border-radius: 999px;
  background: #1f1f1f;
  transform: translateX(var(--px, 0px)) scaleX(var(--sx, 1));
  transform-origin: 50% 50%;
  opacity: 0;
  transition: opacity 0.6s 0.5s;
}
.vl.is-in .vl__pill {
  opacity: 1;
}
.vl__vp {
  position: relative;
  overflow: hidden;
  touch-action: pan-y;
  user-select: none;
}
.vl__vp.can-drag {
  cursor: grab;
}
.vl__track {
  display: flex;
  gap: calc(10 * var(--u));
  margin: 0;
  padding: 0 calc(80 * var(--u));
  list-style: none;
  width: max-content;
  will-change: transform;
}
.vl__card {
  flex: 0 0 auto;
  width: calc(580 * var(--u));
  height: calc(476 * var(--u));
  box-sizing: border-box;
  padding: calc(38 * var(--u)) calc(40 * var(--u)) calc(44 * var(--u));
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background: #fff;
  border-radius: calc(14 * var(--u));
  opacity: 0;
  transform: translateY(calc(60 * var(--u)));
  transition:
    opacity 0.9s cubic-bezier(0.16, 1, 0.3, 1),
    transform 1.1s cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 0.5s;
  transition-delay: calc(var(--i) * 0.08s);
}
.vl__card.is-on {
  opacity: 1;
  transform: none;
}
.vl__card.is-out {
  opacity: 0;
  transform: translateY(calc(-24 * var(--u)));
  transition:
    opacity 0.3s,
    transform 0.35s cubic-bezier(0.65, 0, 0.35, 1);
  transition-delay: calc(var(--i) * 0.03s);
}
.vl__card h3 {
  margin: 0;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(52 * var(--u));
  line-height: calc(52 * var(--u));
  letter-spacing: -0.025em;
  max-width: calc(440 * var(--u));
}
.vl__card p {
  margin: 0;
  max-width: calc(400 * var(--u));
  font: 400 calc(17 * var(--u))/1.6 var(--font-text);
  color: #7a7a7a;
  transition: color 0.4s;
}
.vl__card:hover p {
  color: #1f1f1f;
}
.talk--st {
  z-index: 8;
  margin-top: 0;
  height: calc(100svh * 2.1);
}
.talk--st + .ft {
  min-height: 100svh;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.hero__video {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1s cubic-bezier(0.65, 0, 0.35, 1);
}
.hero__video.is-on {
  opacity: 1;
}
.hero__dim {
  position: absolute;
  inset: 0;
  background: #000;
  opacity: 0;
  transition: opacity 1s cubic-bezier(0.65, 0, 0.35, 1);
  pointer-events: none;
}
.hero.is-dim .hero__dim {
  opacity: 0.7;
}
.pl {
  position: fixed;
  inset: 0;
  z-index: 1000;
  overflow: hidden;
  background: #0f0a11;
  color: #fafafa;
  transition:
    opacity 0.7s cubic-bezier(0.65, 0, 0.35, 1),
    visibility 0s 0.7s;
}
.pl.is-gone {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
html.pl-on,
html.pl-on body {
  overflow: hidden;
}
.pl__img {
  position: absolute;
  left: 0;
  top: 0;
  width: calc(var(--w) * var(--u));
  height: calc(var(--h) * var(--u));
  object-fit: cover;
  display: block;
  translate: calc(var(--x) * 1px - 50%) calc(var(--y) * 1px - 50%);
  clip-path: inset(100% 0 0 0);
  scale: 1.15;
  opacity: 1;
  transition:
    clip-path 0.55s cubic-bezier(0.76, 0, 0.24, 1),
    scale 0.9s cubic-bezier(0.16, 1, 0.3, 1);
}
.pl__img.is-on {
  clip-path: inset(0);
  scale: 1;
}
.pl.is-burst .pl__img {
  translate: calc(var(--x) * 1px - 50% + var(--bx) * 1px)
    calc(var(--y) * 1px - 50% + var(--by) * 1px);
  scale: 0.6;
  opacity: 0;
  transition:
    translate 1.2s cubic-bezier(0.76, 0, 0.24, 1),
    scale 1.2s cubic-bezier(0.76, 0, 0.24, 1),
    opacity 0.9s 0.25s;
}
.pl__hero {
  position: absolute;
  left: 50%;
  top: 50%;
  width: calc(420 * var(--u));
  height: calc(250 * var(--u));
  translate: -50% -50%;
  overflow: hidden;
  z-index: 2;
  clip-path: inset(50% 50% 50% 50%);
  transition: clip-path 0.7s cubic-bezier(0.76, 0, 0.24, 1);
}
.pl__hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  scale: 1.3;
  transition: scale 1.3s cubic-bezier(0.76, 0, 0.24, 1);
}
.pl.is-final .pl__hero {
  clip-path: inset(0);
}
.pl.is-open .pl__hero {
  width: 100vw;
  height: 100vh;
  transition:
    width 1.3s cubic-bezier(0.76, 0, 0.24, 1),
    height 1.3s cubic-bezier(0.76, 0, 0.24, 1);
}
.pl.is-open .pl__hero img {
  scale: 1;
}
html.pl-on .hero__ui > * {
  animation-play-state: paused;
}
.cta.cta--link {
  height: auto;
  padding: 0 0 calc(10 * var(--u));
  border-radius: 0;
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(8 * var(--u));
  background: none;
  color: var(--ink);
  overflow: visible;
  top: calc(50% + 30 * var(--u));
}
.cta--link::before {
  inset: auto 0 0 0;
  height: 1px;
  z-index: 0;
  border-radius: 0;
  background: var(--red);
  transform: scaleX(0);
  transform-origin: 0 50%;
  transition: transform 0.6s var(--ease);
}
.cta--link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: rgba(31, 31, 31, 0.18);
  z-index: -1;
}
.cta--link:hover::before {
  transform: scaleX(1);
}
.cta__q {
  font-family: var(--font-text);
  font-size: calc(15 * var(--u));
  font-weight: 400;
  color: #8a8a8a;
  letter-spacing: 0;
}
.cta__go {
  display: inline-flex;
  align-items: center;
  gap: calc(14 * var(--u));
}
.cta--link .cta__label {
  font-family: var(--font-head);
  font-size: calc(30 * var(--u));
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1;
}
.cta__arr {
  color: var(--red);
  flex: none;
  transition: transform 0.45s var(--ease);
}
.earn__head {
  position: relative;
}
.earn__label {
  position: absolute;
  left: var(--pad-x, calc(80 * var(--u)));
  top: calc(14 * var(--u));
  margin: 0;
  font-size: calc(15 * var(--u));
  line-height: calc(18 * var(--u));
  font-weight: 500;
  letter-spacing: -0.005em;
  opacity: 0;
  transform: translateY(calc(10 * var(--u)));
  transition:
    opacity 0.8s var(--ease),
    transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
}
.earn.is-in .earn__label {
  opacity: 1;
  transform: none;
}
.earn--st .earn__label {
  left: calc(80 * var(--u));
}
@media (hover: hover) {
  .card:hover .card__media img {
    transform: translateX(0) scale(1.02);
  }
}
.card__media img.is-framed {
  left: calc(34 * var(--u));
  top: calc(34 * var(--u));
  width: calc(100% - 68 * var(--u));
  height: calc(100% - 68 * var(--u));
  object-position: 50% 50%;
  transform: none;
  transform-origin: 50% 50%;
}
.card:hover .card__media img.is-framed {
  transform: none;
}
.card__media {
  clip-path: var(--strip);
  transition: clip-path 0.75s cubic-bezier(0.76, 0, 0.24, 1);
}
.card__media img {
  max-width: none;
}
.earn__head {
  justify-content: center;
}
.earn__nav {
  right: calc(77 * var(--u));
  bottom: 0;
}
.earn__foot {
  display: flex;
  margin-top: calc(56 * var(--u));
}
.cta.earn__cta {
  position: relative;
  right: auto;
  top: auto;
  opacity: 0;
  translate: 0 calc(20 * var(--u));
  transition:
    opacity 0.9s var(--ease) 0.7s,
    translate 1s cubic-bezier(0.16, 1, 0.3, 1) 0.7s;
}
.earn.is-in .cta.earn__cta {
  opacity: 1;
  translate: 0 0;
}
.tm__t--c img {
  filter: saturate(1.05) contrast(1.02);
  object-position: 50% 50%;
}
.tm__t--c .tm__blur img {
  filter: saturate(1.05) blur(calc(6 * var(--u)));
}
.s2[data-step="1"] .s2__msgs p[data-s="1"],
.s2[data-step="2"] .s2__msgs p[data-s="2"],
.s2[data-step="3"] .s2__msgs p[data-s="3"],
.s2[data-step="4"] .s2__msgs p[data-s="4"] {
  transition-delay: 0.85s;
}
.cta.services__cta {
  position: relative;
  right: auto;
  top: auto;
  opacity: 0;
  translate: 0 calc(16 * var(--u));
  transition:
    opacity 0.8s var(--ease) 0.2s,
    translate 0.9s var(--ease) 0.2s;
}
.services.is-in .cta.services__cta {
  opacity: 1;
  translate: 0 0;
}
.services__intro--cta {
  width: max-content;
}
.services__cta .cta__go,
.services__cta .cta__q {
  white-space: nowrap;
}
.services__intro--cta span {
  opacity: 1;
  translate: none;
  transition: none;
}
.services__intro--cta .cta__go {
  display: inline-flex;
}
.services__intro--cta .cta__label {
  display: inline;
}
.red-cta.red-cta--link {
  height: auto;
  padding: 0 0 calc(8 * var(--u));
  border: 0;
  border-radius: 0;
  background: none;
  color: #0b0b0c;
  overflow: visible;
  gap: calc(14 * var(--u));
  font-family: var(--font-head);
  font-size: calc(28 * var(--u));
  letter-spacing: -0.02em;
  line-height: 1;
}
.red-cta--link::before {
  inset: auto 0 0 0;
  height: 1px;
  border-radius: 0;
  z-index: 0;
  background: #0b0b0c;
  transform: scaleX(1);
  transform-origin: 100% 50%;
  transition: transform 0.6s var(--ease);
}
.red-cta--link:hover {
  color: #0b0b0c;
}
.red-cta--link:hover::before {
  transform: scaleX(0);
}
.red-cta--link svg {
  width: calc(20 * var(--u));
  height: calc(20 * var(--u));
}
.services__head {
  position: relative;
}
.services__label {
  position: absolute;
  left: 0;
  margin: 0;
  color: var(--ink, #1f1f1f);
}
.services__title {
  line-height: calc(68 * var(--u));
}
.red-cta.red-cta--link {
  top: calc(50% - 540 * var(--u) + 657 * var(--u));
}
.services__label {
  top: calc(24 * var(--u));
}
.ws__l {
  padding: 0.3em 0 0.3em;
  margin: -0.3em 0 -0.3em;
}
.ws--no .ws__l > span {
  transform: translateY(170%);
}
.ws--no.is-in .ws__l > span,
.who.is-in .ws--no .ws__l > span {
  transform: none;
}
.services__title .w {
  padding-top: 0.14em;
  margin-top: -0.14em;
  padding-bottom: 0.26em;
  margin-bottom: -0.26em;
}
.services__title .w > span {
  transform: translateY(150%);
}
.services.is-in .services__title .w > span {
  transform: none;
}
.vl__title .w {
  padding-top: 0.14em;
  margin-top: -0.14em;
  padding-bottom: 0.26em;
  margin-bottom: -0.26em;
}
.vl__title .w > span {
  transform: translateY(150%) rotate(4deg);
}
.vl.is-in .vl__title .w > span {
  transform: none;
}
.st__ml {
  padding-top: 0.12em;
  margin-top: -0.12em;
  padding-bottom: 0.12em;
  margin-bottom: -0.12em;
}
.st__ml > span {
  transform: translateY(140%);
}
.is-ready .st__ml > span {
  transform: none;
}
.stat-item__val {
  transform: translateY(140%);
}
.facts.is-in .stat-item__val {
  transform: none;
}
.svc__num {
  height: auto;
  padding: 0.16em 0 0.14em;
  margin-top: 0;
}
.svc__num > span {
  transform: translateY(150%);
}
.services.is-in .svc__num > span {
  transform: none;
}
.method__label,
.method__sub {
  position: absolute;
  margin: 0;
  opacity: 0;
  translate: 0 calc(14 * var(--u));
  transition:
    opacity 0.8s var(--ease) 0.3s,
    translate 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.3s;
}
.method__label {
  font-size: calc(15 * var(--u));
  line-height: calc(18 * var(--u));
  font-weight: 500;
  color: #1f1f1f;
}
.method__sub {
  font-family: var(--font-text);
  transition-delay: 0.5s;
}
.method.is-in .method__label,
.method.is-in .method__sub {
  opacity: 1;
  translate: 0 0;
}
.method__label,
.method__sub {
  left: calc(70 * var(--u));
}
.apart__text {
  font-size: calc(18 * var(--u));
  font-weight: 500;
}
.method__sub {
  font-size: calc(17.5 * var(--u));
  line-height: calc(21 * var(--u));
  font-weight: 400;
  letter-spacing: -0.01em;
  color: var(--ink-soft);
}
.mcard {
  margin: 0;
}
.cta__arr {
  width: calc(20 * var(--u));
  height: calc(20 * var(--u));
}
.cta--link:hover .cta__arr {
  transform: translateX(calc(4 * var(--u)));
}
.red-cta--link:hover svg {
  transform: translateX(calc(4 * var(--u)));
}
.method__statue {
  -webkit-mask: none;
  mask: none;
}
.mcard {
  width: calc(289 * var(--u));
  height: calc(279 * var(--u));
  border-radius: calc(16 * var(--u));
}
.mcard[data-i="0"] {
  --x: 80;
  --y: 358;
}
.mcard[data-i="1"] {
  --x: 379;
  --y: 358;
}
.mcard[data-i="2"] {
  --x: 379;
}
.mcard[data-i="3"] {
  --x: 962;
  --y: 358;
}
.mcard[data-i="4"] {
  --x: 1261;
}
.mcard[data-i="5"] {
  --x: 1549;
  --y: 358;
}
.mcard__num {
  left: calc(31 * var(--u));
  top: calc(33 * var(--u));
  font-size: calc(30 * var(--u));
  height: calc(17 * var(--u));
}
.mcard__body {
  left: calc(30 * var(--u));
  right: calc(16 * var(--u));
  bottom: calc(26 * var(--u));
  font-size: calc(16 * var(--u));
  line-height: calc(23 * var(--u));
}
.method__statue {
  height: var(--sh);
  width: calc(var(--sh) * 0.8543);
  left: calc(1072 * var(--u));
  margin-left: calc(var(--sh) * -0.42715);
}
@media (min-width: 2000px) {
  .method__statue {
    scale: none;
  }
}
.method__title {
  top: calc(196 * var(--u));
}
.method__sub {
  top: calc(310 * var(--u));
}
.method {
  height: max(100svh, calc(960 * var(--u)));
}
.method__statue {
  --sh: min(calc(1082 * var(--u)), calc(max(100vh, 960 * var(--u)) - 60px));
  transform: none;
}
.ws__l + .ws__l {
  margin-top: -0.6em;
}
.st__ml + .st__ml {
  margin-top: -0.24em;
}
.services {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.services {
  min-height: 100svh;
}
.ins {
  min-height: 100svh;
  box-sizing: border-box;
  align-content: center;
  padding-top: calc(120 * var(--u));
  padding-bottom: calc(120 * var(--u));
}
.ft {
  min-height: 100svh;
  box-sizing: border-box;
  flex-direction: column;
  justify-content: flex-end;
}
.ins__list a {
  height: max(
    calc(100 * var(--u)),
    min(calc(138 * var(--u)), calc((100vh - 240 * var(--u)) / 7))
  );
}
.vl {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: calc(90 * var(--u)) 0;
}
.services {
  padding-bottom: calc(135 * var(--u) + 22vh);
}
.has-stage .apart.is-typed .apart__text {
  --d: 0;
}
.has-stage .apart.is-typed .cta {
  --d: 0.15;
}
.has-stage .apart.is-typed .logos {
  --d: 0.3;
}
.has-stage .apart.is-typed [data-in] {
  transition-duration: 0.7s, 0.8s, 0.7s;
}
.hl__set {
  display: inline-grid;
  vertical-align: top;
}
.hl__v {
  grid-area: 1 / 1;
  display: block;
  pointer-events: none;
}
.hl__l {
  display: block;
  overflow: hidden;
  padding: 0.1em 0 0.14em;
  margin: -0.1em 0 -0.14em;
}
.hl__l > span {
  display: block;
  transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}
.hl__l + .hl__l > span {
  transition-delay: 0.06s;
}
.hl__v.is-on .hl__l > span {
  transition-delay: 0.25s;
}
.hl__v.is-on .hl__l + .hl__l > span {
  transition-delay: 0.32s;
}
.hl__v.is-out .hl__l > span {
  transition: transform 0.5s cubic-bezier(0.65, 0, 0.35, 1);
}
.hl__v.is-out .hl__l + .hl__l > span {
  transition-delay: 0.05s;
}
.hl__l + .hl__l {
  margin-top: -0.24em;
}
.hl__l > span {
  transform: translateY(150%);
}
.hl__v.is-on .hl__l > span {
  transform: none;
}
.hl__v.is-out .hl__l > span {
  transform: translateY(-150%);
}
.cta.earn__cta {
  align-items: flex-start;
  text-align: left;
}
.tk__half--l {
  transform: translateX(var(--gl, 0px));
}
.tk__half--r {
  transform: translateX(var(--gr, 0px));
}
.ft {
  display: none;
}
.ft2 {
  --u: calc(100vw / 1920);
  position: relative;
  z-index: 7;
  min-height: 100svh;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: calc(110 * var(--u)) calc(80 * var(--u)) 0;
  background: #fafafa;
  color: #1f1f1f;
  font-family: var(--font-text);
}
.ft2__loc {
  position: relative;
  padding: calc(26 * var(--u)) calc(28 * var(--u)) calc(24 * var(--u));
  border-radius: calc(16 * var(--u));
  background: #1f1f1f;
  color: #fff;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: calc(10 * var(--u));
  transition: background 0.4s cubic-bezier(0.65, 0, 0.35, 1);
}
.ft2__loc + .ft2__loc {
  background: #ee2424;
  color: #1f1f1f;
}
.ft2__loc b {
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(44 * var(--u));
  line-height: 0.95;
  letter-spacing: -0.03em;
}
.ft2__loc span {
  font-size: calc(14 * var(--u));
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.7;
  font-variant-numeric: tabular-nums;
}
.ft2__pulse {
  position: absolute;
  right: calc(24 * var(--u));
  top: calc(26 * var(--u));
  width: calc(10 * var(--u));
  height: calc(10 * var(--u));
  border-radius: 50%;
  background: currentColor;
}
.ft2__pulse::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: currentColor;
  animation: ft2-pulse 2s cubic-bezier(0.16, 1, 0.3, 1) infinite;
}
@keyframes ft2-pulse {
  from {
    transform: scale(1);
    opacity: 0.5;
  }
  to {
    transform: scale(3.4);
    opacity: 0;
  }
}
.ft2 address {
  font-style: normal;
  font-size: calc(19 * var(--u));
  line-height: 1.35;
  font-weight: 500;
}
.ft2__dots {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}
.ft2 {
  padding-top: calc(120 * var(--u));
}
.ft3__studio {
  padding-top: calc(30 * var(--u));
  border-top: 1px solid rgba(31, 31, 31, 0.16);
}
.ft3__studio address {
  font-style: normal;
  font-size: calc(18 * var(--u));
  line-height: 1.4;
  font-weight: 500;
  color: #3a3a3a;
}
.ft3__time {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: calc(10 * var(--u));
  margin-top: calc(18 * var(--u));
  font-size: calc(15 * var(--u));
  color: #7a7a7a;
  font-variant-numeric: tabular-nums;
}
.ft3__time time {
  color: #1f1f1f;
  font-weight: 500;
}
.ft3__time .ft2__pulse {
  position: relative;
  right: auto;
  top: auto;
  color: #ee2424;
  width: calc(8 * var(--u));
  height: calc(8 * var(--u));
}
.ft3__studio {
  opacity: 0;
  transform: translateY(calc(18 * var(--u)));
  transition:
    opacity 0.8s var(--ease),
    transform 1s cubic-bezier(0.16, 1, 0.3, 1);
}
.ft3__studio + .ft3__studio {
  transition-delay: 0.1s;
}
.ft2.is-in .ft3__studio {
  opacity: 1;
  transform: none;
}
.ft4 {
  padding: calc(130 * var(--u)) calc(80 * var(--u)) 0;
}
.ft4__mark {
  overflow: hidden;
  height: calc(1760 * 151 / 581 * 0.7 * var(--u));
}
.ft4__logo {
  display: block;
  width: 100%;
  height: auto;
  color: #1f1f1f;
  transform: translateY(105%);
  transition: transform 1.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.ft2.is-in .ft4__logo {
  transform: none;
}
.ft4__row {
  border-top: 1px solid rgba(31, 31, 31, 0.16);
}
.ft4__nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: calc(28 * var(--u)) 0;
}
.ft4__nav nav,
.ft4__social {
  display: flex;
  gap: calc(36 * var(--u));
}
.ft4__nav a {
  font-size: calc(18 * var(--u));
  font-weight: 500;
  color: #1f1f1f;
  text-decoration: none;
  transition: color 0.3s;
}
.ft4__nav a:hover,
.ft4__nav a.is-active {
  color: #ee2424;
}
.ft4__studios {
  display: grid;
  padding: calc(40 * var(--u)) 0 calc(48 * var(--u));
}
.ft4__cap {
  display: block;
  margin-bottom: calc(14 * var(--u));
  font-size: calc(15 * var(--u));
  font-weight: 500;
  color: #8a8a8a;
}
.ft4__city {
  margin: 0 0 calc(18 * var(--u));
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(64 * var(--u));
  line-height: 0.95;
  letter-spacing: -0.03em;
}
.ft4__studio address {
  font-style: normal;
  font-size: calc(18 * var(--u));
  line-height: 1.4;
  font-weight: 500;
  color: #3a3a3a;
}
.ft4__time {
  display: inline-flex;
  align-items: center;
  gap: calc(10 * var(--u));
  margin-top: calc(14 * var(--u));
  font-size: calc(15 * var(--u));
  color: #8a8a8a;
  font-variant-numeric: tabular-nums;
}
.ft4__time time {
  color: #1f1f1f;
  font-weight: 500;
}
.ft4__time .ft2__pulse {
  position: relative;
  right: auto;
  top: auto;
  color: #ee2424;
  width: calc(8 * var(--u));
  height: calc(8 * var(--u));
}
.ft4__bar {
  display: flex;
  justify-content: space-between;
  padding: calc(22 * var(--u)) 0 calc(26 * var(--u));
  font-size: calc(14 * var(--u));
  color: #8a8a8a;
}
.ft4__legal {
  display: flex;
  gap: calc(28 * var(--u));
}
.ft4__bar a {
  color: #1f1f1f;
  text-decoration: none;
}
.ft4__bar a:hover {
  color: #ee2424;
}
.ft4__row {
  opacity: 0;
  transform: translateY(calc(16 * var(--u)));
  transition:
    opacity 0.8s var(--ease),
    transform 1s cubic-bezier(0.16, 1, 0.3, 1);
}
.ft4__nav {
  transition-delay: 0.25s;
}
.ft4__studios {
  transition-delay: 0.35s;
}
.ft4__bar {
  transition-delay: 0.45s;
}
.ft2.is-in .ft4__row {
  opacity: 1;
  transform: none;
}
.ft4 {
  justify-content: center;
}
.ft4__mark {
  margin-bottom: calc(36 * var(--u));
}
.ft4__studios {
  padding-bottom: calc(56 * var(--u));
}
.ft4__studios {
  column-gap: 0;
  align-items: start;
}
.ft4__mapbox {
  align-self: center;
}
.ft4__map {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}
.ft4__ring {
  transform-box: fill-box;
  transform-origin: center;
  animation: ft4-ring 2.2s cubic-bezier(0.16, 1, 0.3, 1) infinite;
  opacity: 0.5;
}
.ft4__pins g:nth-child(2) .ft4__ring {
  animation-delay: 1.1s;
}
@keyframes ft4-ring {
  from {
    transform: scale(1);
    opacity: 0.5;
  }
  to {
    transform: scale(3.6);
    opacity: 0;
  }
}
.cb {
  transition:
    left 1.4s cubic-bezier(0.65, 0, 0.35, 1),
    top 1.4s cubic-bezier(0.65, 0, 0.35, 1),
    --ch 1.3s cubic-bezier(0.65, 0, 0.35, 1),
    --cz 1.4s cubic-bezier(0.65, 0, 0.35, 1);
}
.cb__f {
  transition:
    background 0.9s var(--ease),
    border-color 0.9s var(--ease),
    opacity 0.9s var(--ease);
}
.s2.is-moving .cb__lab {
  opacity: 0 !important;
  transition: opacity 0.25s var(--ease);
}
.cb__lab {
  transition: opacity 0.6s var(--ease) 0.1s;
}
.s2[data-step="1"] .s2__msgs p[data-s="1"],
.s2[data-step="2"] .s2__msgs p[data-s="2"],
.s2[data-step="3"] .s2__msgs p[data-s="3"],
.s2[data-step="4"] .s2__msgs p[data-s="4"] {
  transition:
    opacity 1s var(--ease) 0.2s,
    transform 1.4s cubic-bezier(0.65, 0, 0.35, 1);
}
.s2__msgs p {
  transition:
    opacity 0.35s var(--ease),
    transform 1.4s cubic-bezier(0.65, 0, 0.35, 1);
}
.st__down {
  font-size: calc(18 * var(--u));
  gap: calc(14 * var(--u));
  align-items: center;
}
.st__down i {
  display: block !important;
  width: calc(12 * var(--u));
  height: calc(32 * var(--u));
  color: #1f1f1f;
  opacity: 1;
}
.apart__label,
.earn__label,
.facts__label,
.services__label,
.method__label,
.card__title,
.card__desc,
.stat-item__cap,
.stat__label,
.intro p,
.apart__text,
.apart__text p,
.method__sub,
.red-copy,
.ws__lead,
.ws__btn span,
.ws__hint span,
.cta__q,
.mcard__body,
.mcard__body span,
.ft4__cap,
.ft4__time,
.ft4__time time,
.ft4 address,
.ft4__nav a,
.ft4__social a,
.s2__lead,
.hz__lead,
.ns__card p,
.ns__card b,
.vl__card p,
.vl__tab,
.st__down span,
.site-header__cta span,
.sh__btn span,
.s2__btn span,
.ns__cta span {
  font-weight: 400;
  font-size: calc(18 * var(--u));
}
.principles h3 {
  font-weight: 400;
}
.sh__nav a,
.mnu__legal a,
.ft4__legal a,
.hz__k,
.s2__n,
.cursor-dot__label,
.hide-ui__label {
  font-weight: 400;
}
.ns b,
.ns__card b,
.hz__count b,
.s2__count b,
.hz__k,
.s2__n {
  font-weight: 400;
}
.hero-logo {
  position: absolute;
  left: var(--pad-x);
  top: calc(46 * var(--u));
  display: block;
  color: #fff;
  line-height: 0;
}
.hero-logo__svg {
  width: calc(110 * var(--u));
  height: auto;
  display: block;
}
.menu-btn.menu-btn--pill {
  left: auto;
  right: var(--pad-x);
  top: calc(40 * var(--u));
  width: auto;
  height: calc(47 * var(--u));
  padding: 0 calc(36 * var(--u));
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 999px;
  background: #fff;
  color: #0b0b0c;
  cursor: pointer;
  font-family: var(--font-text);
  font-size: calc(18 * var(--u));
  font-weight: 400;
  transition:
    background 0.35s var(--ease),
    color 0.35s var(--ease);
}
.menu-btn--pill:hover {
  background: #ee2424;
  color: #fff;
}
.headline {
  top: calc(118 * var(--u));
}
.mnu__brand {
  position: absolute;
  left: calc(82 * var(--u));
  top: calc(30 * var(--u));
  color: #0b0b0c;
  line-height: 0;
  z-index: 2;
}
.mnu__brand-svg {
  width: calc(110 * var(--u));
  height: auto;
  display: block;
}
.mnu__close {
  background: #fff;
  color: #0b0b0c;
}
.mnu__close:hover {
  background: #ee2424;
  color: #fff;
}
.mnu__close {
  position: fixed;
  left: auto;
  right: calc(80 * var(--u));
  top: calc(40 * var(--u));
  z-index: 9001;
  width: auto;
  padding: 0 calc(36 * var(--u));
  font-size: calc(18 * var(--u));
  opacity: 0;
  transition:
    opacity 0.4s var(--ease),
    background 0.35s var(--ease),
    color 0.35s var(--ease);
}
.mnu.is-open .mnu__close {
  opacity: 1;
  transition-delay: 0.5s, 0s, 0s;
}
.menu-btn--pill span,
.mnu__close span {
  display: block;
  line-height: 1;
  transform: translateY(-0.12em);
}
.mnu__close:hover span {
  transform: translateY(-0.12em);
}
.stat__value {
  overflow: hidden;
}
.mnu__col a,
.mnu__col address {
  font-weight: 400;
}
.apart__text {
  width: auto;
  white-space: nowrap;
}
.earn {
  --card-h: 600;
}
.card {
  padding: calc(30 * var(--u));
  gap: calc(30 * var(--u));
  border-radius: calc(22 * var(--u));
}
.card__spacer {
  display: none;
}
.card__title {
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(28 * var(--u));
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin: calc(-6 * var(--u)) 0 calc(-14 * var(--u));
}
.card__desc {
  margin: 0;
  font-size: calc(18 * var(--u));
  line-height: 1.45;
  color: #1f1f1f;
}
.card__media,
.earn.is-in .card__media,
.earn.is-in.is-settled .card__media {
  position: relative;
  inset: auto;
  flex: 1 1 auto;
  min-height: 0;
  border-radius: calc(16 * var(--u));
  overflow: hidden;
  clip-path: none;
  transition: none;
}
@media (hover: hover) {
  .earn.is-in .card:hover .card__media {
    clip-path: none;
  }
}
.card__media img,
.card__media img.is-framed {
  position: absolute;
  inset: 0;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
  transform: scale(1.04);
  transform-origin: 50% 50%;
  filter: none;
  transition: transform 1.1s cubic-bezier(0.16, 1, 0.3, 1);
}
.card:hover .card__media img,
.card:hover .card__media img.is-framed {
  transform: scale(1);
}
.card__desc {
  min-height: calc(18 * 1.45 * 3 * var(--u));
}
.earn {
  --gap: 10;
  --card-w: 418;
}
.earn__head {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  padding-left: calc((84 + var(--card-w) + var(--gap)) * var(--u));
  padding-right: calc(80 * var(--u));
}
.earn__title {
  text-align: left;
}
.earn__head .earn__cta-slot {
  justify-self: end;
}
.earn__nav {
  position: static;
  justify-content: center;
  margin-top: calc(40 * var(--u));
  transform: none;
}
.earn__foot {
  justify-content: flex-end;
  margin: 0;
}
.facts__label,
.facts--dark .facts__label {
  left: calc(768 * var(--u));
}
.stat-item__num {
  padding: 0;
  margin: 0;
  overflow: hidden;
}
.stat-item__val {
  vertical-align: top;
}
.stat-item__num {
  line-height: 0.95;
  height: calc(62 * var(--u));
}
.facts__label,
.facts--dark .facts__label {
  top: calc(99 * var(--u));
}
.cases-stage--pj {
  height: auto !important;
}
.trail {
  display: none !important;
}
.cases--pj {
  --u: calc(100vw / 1920);
  position: relative;
  height: 100svh;
  min-height: calc(900 * var(--u));
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  padding: calc(120 * var(--u)) calc(80 * var(--u)) calc(80 * var(--u));
  background: #0b0b0c;
  color: #fff;
  overflow: hidden;
}
.pj__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: calc(40 * var(--u));
}
.pj__label {
  margin: 0;
  font-size: calc(18 * var(--u));
  color: rgba(255, 255, 255, 0.7);
}
.pj__list {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  gap: calc(10 * var(--u));
  margin: 0;
  padding: 0;
  list-style: none;
}
.pj {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  overflow: hidden;
  border-radius: calc(20 * var(--u));
  cursor: pointer;
  outline: none;
  background: #1a1a1a;
  transition:
    flex-grow 0.9s cubic-bezier(0.65, 0, 0.35, 1),
    opacity 0.9s var(--ease),
    transform 1.1s cubic-bezier(0.16, 1, 0.3, 1);
  opacity: 0;
  transform: translateY(calc(60 * var(--u)));
  transition-delay: 0s, calc(var(--i) * 0.08s), calc(var(--i) * 0.08s);
}
.cases--pj.is-in .pj {
  opacity: 1;
  transform: none;
}
.pj.is-on {
  flex-grow: 3.4;
  transition-delay: 0s;
}
.pj__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(0.55) brightness(0.75);
  transform: scale(1.08);
  transition:
    filter 0.9s var(--ease),
    transform 1.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.pj.is-on .pj__img {
  filter: none;
  transform: scale(1);
}
.pj__shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0.35) 0%,
    rgba(0, 0, 0, 0) 35%,
    rgba(0, 0, 0, 0) 45%,
    rgba(0, 0, 0, 0.75) 100%
  );
}
.pj__no {
  position: absolute;
  left: calc(30 * var(--u));
  top: calc(28 * var(--u));
  font-size: calc(18 * var(--u));
}
.pj__title {
  position: absolute;
  left: calc(30 * var(--u));
  bottom: calc(30 * var(--u));
  margin: 0;
  font-family: var(--font-head);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.02em;
  white-space: nowrap;
  transform-origin: 0 100%;
  transition:
    bottom 0.9s cubic-bezier(0.65, 0, 0.35, 1),
    font-size 0.9s cubic-bezier(0.65, 0, 0.35, 1);
}
.pj.is-on .pj__title {
  bottom: calc(190 * var(--u));
}
.pj__more {
  position: absolute;
  left: calc(30 * var(--u));
  right: calc(30 * var(--u));
  bottom: calc(30 * var(--u));
  opacity: 0;
  transform: translateY(calc(20 * var(--u)));
  pointer-events: none;
  transition:
    opacity 0.4s var(--ease),
    transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.pj.is-on .pj__more {
  opacity: 1;
  transform: none;
  pointer-events: auto;
  transition-delay: 0.45s;
}
.pj__sub {
  margin: 0 0 calc(30 * var(--u));
  max-width: calc(520 * var(--u));
  font-size: calc(18 * var(--u));
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.85);
}
.pj__row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: calc(30 * var(--u));
}
.pj__stat {
  display: flex;
  align-items: flex-end;
  gap: calc(16 * var(--u));
}
.pj__stat b {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: calc(72 * var(--u));
  overflow: hidden;
  letter-spacing: -0.04em;
}
.pj__stat span {
  max-width: calc(200 * var(--u));
  font-size: calc(18 * var(--u));
  line-height: 1.25;
}
.pj__btn {
  display: inline-flex;
  align-items: center;
  gap: calc(10 * var(--u));
  height: calc(52 * var(--u));
  padding: 0 calc(28 * var(--u));
  border-radius: 999px;
  background: #fff;
  color: #0b0b0c;
  text-decoration: none;
  font-size: calc(18 * var(--u));
  white-space: nowrap;
  transition:
    background 0.35s var(--ease),
    color 0.35s var(--ease);
}
.pj__btn svg {
  width: calc(16 * var(--u));
  height: calc(16 * var(--u));
}
.pj__btn:hover {
  background: #ee2424;
  color: #fff;
}
.cases--pj {
  align-items: stretch;
  justify-content: flex-start;
}
.pj__head,
.pj__list {
  width: 100%;
}
.pj__title {
  font-size: calc(32 * var(--u));
}
.pj.is-on .pj__title {
  font-size: calc(72 * var(--u));
}
.svc__num {
  display: none !important;
}
.svc__name {
  text-transform: lowercase;
}
.cta__arr,
.pj__btn svg,
.ws__btn svg,
.talk__btn svg,
.site-header__cta svg,
.sh__btn svg,
.s2__btn svg,
.ns__cta svg {
  color: #ee2424;
}
.red-cta--link svg {
  color: #0b0b0c;
}
.pj__btn:hover svg,
.sh__btn--fill svg {
  color: inherit;
}
.cta--link:hover .cta__arr,
.red-cta--link:hover svg,
.pj__btn:hover svg,
.ws__btn:hover svg,
.talk__btn:hover svg,
.site-header__cta:hover svg,
.sh__btn:hover svg,
.s2__btn:hover svg,
.ns__cta:hover svg {
  transform: translate(calc(3 * var(--u, 1px)), calc(-3 * var(--u, 1px)));
}
.cta__arr,
.pj__btn svg,
.ws__btn svg,
.talk__btn svg,
.site-header__cta svg,
.sh__btn svg,
.red-cta--link svg {
  transition:
    transform 0.4s var(--ease),
    color 0.35s var(--ease);
}
.svc__arrow,
.mnu__go svg,
.ins__arr {
  color: #1f1f1f;
  transition:
    color 0.35s var(--ease),
    transform 0.45s var(--ease);
}
.svc__link:hover .svc__arrow,
.mnu__list a:hover .mnu__go svg,
.ins__list a:hover .ins__arr {
  color: #ee2424;
}
.mnu__go svg {
  color: inherit;
}
.mnu__list a:hover .mnu__go {
  color: #ee2424;
  border-color: #ee2424;
}
.svc__link:hover .svc__arrow,
.mnu__list a:hover .mnu__go svg,
.ins__list a:hover .ins__arr {
  rotate: none;
  translate: none;
  transform: none;
}
@media (hover: hover) {
  .svc__link:hover .svc__arrow {
    rotate: none;
    translate: none;
  }
}
.method__statue {
  top: calc(100vh - var(--sh));
  bottom: auto;
}
.mcard[data-i="2"] {
  --y: 647;
}
.mcard[data-i="4"] {
  --y: 647;
}
.mcard::before,
.mcard:hover::before {
  display: none;
}
.mcard:hover,
.mcard--dark:hover,
.mcard--glass:hover {
  color: inherit;
}
.mcard--dark:hover {
  color: #fff;
}
.mcard:hover .mcard__num {
  height: calc(17 * var(--u));
}
.mcard:hover .mcard__body {
  transform: none;
}
.mcard__body b {
  font-family: var(--font-head);
  font-weight: 500;
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin-bottom: calc(12 * var(--u));
}
.mcard__body span,
.mcard__body {
  font-size: calc(18 * var(--u));
  line-height: 1.35;
}
.mcard__body b {
  font-size: calc(26 * var(--u));
}
.mcard--red {
  background: #ee2424 !important;
  color: #1f1f1f;
}
.mcard__body b,
.mcard__body span {
  white-space: normal;
}
.method__label {
  top: calc(161 * var(--u));
}
.mcard__body span {
  white-space: nowrap;
  font-size: calc(17 * var(--u));
}
.method__statue {
  scale: none !important;
}
.site-header__logo {
  color: inherit;
  line-height: 0;
  display: block;
}
.site-header__logo-svg {
  width: calc(110 * var(--u));
  height: auto;
  display: block;
}
.site-header__menu.site-header__menu--word {
  margin-left: auto;
  margin-right: calc(36 * var(--u));
  width: auto;
  height: auto;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
  color: inherit;
  font-family: var(--font-text);
  font-size: calc(18 * var(--u));
  font-weight: 400;
}
.site-header__menu--word span {
  position: relative;
}
.site-header__menu--word span::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -3px;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: 100% 50%;
  transition: transform 0.45s var(--ease);
}
.site-header__menu--word:hover span::after {
  transform: scaleX(1);
  transform-origin: 0 50%;
}
.site-header__menu--word ~ .site-header__cta {
  margin-left: 0;
}
.site-header__cta,
.site-header.is-light .site-header__cta {
  background: transparent !important;
  box-shadow: none;
}
.site-header__cta {
  border-color: #0b0b0c;
}
.site-header.is-light .site-header__cta {
  border-color: #fff;
}
.site-header__cta {
  color: inherit;
}
.site-header__cta:hover,
.site-header.is-light .site-header__cta:hover {
  color: #fff;
  border-color: #ee2424;
}
.site-header__cta:hover svg {
  color: #fff;
}
.cta.ws__link {
  position: relative;
  right: auto;
  top: auto;
  color: #1f1f1f;
}
.ws--yes .cta.ws__link {
  color: #1f1f1f;
}
.ws--yes .cta.ws__link::after {
  background: rgba(31, 31, 31, 0.35);
}
.ws--yes .cta.ws__link::before {
  background: #1f1f1f;
}
.ws--yes .ws__link .cta__arr {
  color: #1f1f1f;
}
.ws--no .ws__word,
.ws--no.ws .ws__word {
  color: #ee2424 !important;
}
.ws--yes .ws__word {
  color: #fff !important;
}
.site-header.is-red .site-header__cta svg {
  color: currentColor;
}
.cs {
  --u: calc(100vw / 1920);
  --g1: calc(80 * var(--u));
  --g2: calc(401 * var(--u));
}
.cs > section {
  position: relative;
  min-height: 100svh;
  box-sizing: border-box;
  overflow: hidden;
}
.sh {
  transition: color 0.4s var(--ease);
}
.page-case .sh.is-light {
  color: #fff;
}
.page-case .sh.is-light .sh__btn--line {
  border-color: rgba(255, 255, 255, 0.6);
}
.page-case .sh.is-light .sh__btn--fill {
  background: #fff;
  color: #1f1f1f;
}
.page-case .sh.is-light .sh__btn--fill:hover {
  color: #fff;
}
.page-case .sh__nav a.is-active::after {
  background: #ee2424;
}
.cs-hero {
  flex-direction: column;
  justify-content: flex-end;
}
.cs-hero__img {
  position: absolute;
  inset: -7% 0;
  width: 100%;
  height: 114%;
  object-fit: cover;
  transform: translate3d(0, var(--py, 0%), 0) scale(1.06);
  transition: transform 1.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.is-ready .cs-hero__img {
  transform: translate3d(0, var(--py, 0%), 0) scale(1);
}
.cs-hero__title {
  position: relative;
  z-index: 1;
  margin: 0;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(250 * var(--u));
  letter-spacing: -0.045em;
  line-height: 0.8;
  height: calc(176 * var(--u));
  overflow: hidden;
  border-bottom: 1px solid rgba(255, 255, 255, 0.5);
  white-space: nowrap;
}
.cs-hero__meta dt {
  color: rgba(255, 255, 255, 0.55);
}
.cs-hero__meta dd {
  color: #fff;
}
.page-case .ft2 {
  position: relative;
  z-index: 2;
}
.page-case .sh.is-light .sh__btn--line {
  color: #fff;
}
.page-case .sh.is-light .sh__btn--line:hover {
  border-color: #ee2424;
}
.cs-hero {
  display: block;
  padding: 0;
  background: #0b0b0c;
  color: #fff;
  transition:
    background-color 1.8s var(--ease),
    color 1.8s var(--ease);
}
.cs-hero__by {
  margin: 0;
  font-family: var(--font-text);
  font-size: calc(18 * var(--u));
  font-weight: 400;
  line-height: 1.3;
}
.cs-hero .cs-hero__title {
  margin: calc(14 * var(--u)) 0 0;
  height: auto;
  overflow: visible;
  border: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(172 * var(--u));
  line-height: 0.74;
  letter-spacing: -0.035em;
  white-space: nowrap;
}
.cs-hero__title span {
  display: block;
  padding-bottom: calc(10 * var(--u));
}
.cs-hero__sub {
  margin: calc(32 * var(--u)) 0 0;
  font-family: var(--font-text);
  font-size: calc(18 * var(--u));
  font-weight: 400;
  line-height: 1.3;
}
.cs-hero__meta {
  position: absolute;
  left: calc(585 * var(--u));
  top: calc(890 * var(--u));
  margin: 0;
  z-index: 1;
  display: grid;
  grid-template-columns: calc(301 * var(--u)) calc(255 * var(--u)) calc(
      250 * var(--u)
    );
  font-family: var(--font-text);
  font-size: calc(18 * var(--u));
  font-weight: 400;
  line-height: 1.3;
}
.cs-hero__meta div {
  padding-right: calc(24 * var(--u));
}
.cs-hero__meta dt {
  margin-bottom: calc(14 * var(--u));
  opacity: 0.6;
}
.cs-hero__meta dd {
  margin: 0;
}
.cs-hero__meta {
  opacity: 0;
  transform: translateY(calc(22 * var(--u)));
  transition:
    opacity 0.9s var(--ease),
    transform 1.1s cubic-bezier(0.16, 1, 0.3, 1);
}
.is-ready .cs-hero__meta {
  opacity: 1;
  transform: none;
}
.is-ready .cs-hero__title {
  transition-delay: 0.12s;
}
.is-ready .cs-hero__sub {
  transition-delay: 0.24s;
}
.is-ready .cs-hero__meta {
  transition-delay: 0.36s;
}
.cs-hero .cs-hero__meta dd,
.cs-hero .cs-hero__meta dt {
  color: inherit;
}
.page-case,
.page-case *,
.page-case *::before,
.page-case *::after {
  animation: none !important;
  transition: none !important;
}
.page-case {
  background: #000;
}
.page-case .sh {
  color: #fff;
}
.page-case .sh__btn--line {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.85);
  width: calc(195 * var(--u));
  justify-content: center;
}
.page-case .cs > section {
  min-height: 0;
  overflow: hidden;
}
.page-case .cs-hero {
  display: block;
  padding: 0;
  color: #fff;
}
.page-case .cs-hero__img {
  position: absolute;
  width: 100%;
  object-fit: cover;
  transform: none;
}
.page-case .cs-hero__by {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(176 * var(--u));
  margin: 0;
  text-align: center;
  font-family: var(--font-text);
  font-size: calc(18 * var(--u));
  font-weight: 500;
  line-height: 1.2;
  z-index: 1;
}
.page-case .cs-hero__title {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(var(--tt, 196) * var(--u));
  margin: 0;
  height: auto;
  overflow: visible;
  border: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  z-index: 1;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(var(--tf, 172) * var(--u));
  line-height: 0.77;
  letter-spacing: -0.035em;
  white-space: nowrap;
}
.page-case .cs-hero__title span {
  display: block;
  padding: 0;
  transform: none;
}
.page-case .cs-hero__sub {
  position: absolute;
  left: 0;
  right: 0;
  margin: 0;
  text-align: center;
  font-family: var(--font-head);
  font-weight: 400;
  line-height: 1.2;
  z-index: 1;
}
.page-case .cs-hero__meta {
  position: absolute;
  margin: 0;
  z-index: 1;
  display: grid;
  grid-template-columns: calc(301 * var(--u)) calc(255 * var(--u)) auto;
  font-family: var(--font-text);
  font-size: calc(14 * var(--u));
  font-weight: 500;
  line-height: calc(21 * var(--u));
  color: #fff;
}
.page-case .cs-hero__meta div {
  padding: 0;
}
.page-case .cs-hero__meta dt {
  margin: 0 0 calc(15 * var(--u));
  color: rgba(255, 255, 255, 0.6);
  opacity: 1;
}
.page-case .cs-hero__meta dd {
  margin: 0;
  color: #fff;
  white-space: nowrap;
}
.cs-ask {
  position: relative;
  height: calc(1222 * var(--u));
  background: #000;
  color: #fff;
}
.cs-ask__label {
  position: absolute;
  left: calc(79 * var(--u));
  top: calc(409 * var(--u));
  margin: 0;
  font-family: var(--font-text);
  font-size: calc(14 * var(--u));
  font-weight: 500;
  line-height: 1.2;
}
.cs-ask__q {
  position: absolute;
  left: calc(464 * var(--u));
  top: calc(var(--qt, 405) * var(--u));
  margin: 0;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(var(--qf, 66) * var(--u));
  line-height: calc(64.5 * var(--u));
  letter-spacing: -0.02em;
  white-space: nowrap;
}
.cs-ask__m {
  color: #4d4d4d;
  font-weight: 400;
}
.cs-ask__q {
  --qf: 67.2;
}
.page-case .cs-hero__title span:first-child {
  transform: translateX(calc(-20 * var(--u)));
}
.page-case .cs-hero__title {
  --tt: 222;
}
.page-case .cs-hero__sub {
  font-size: calc(16.6 * var(--u));
  top: calc(510 * var(--u));
}
.page-case .sh__btn--line {
  white-space: nowrap;
  gap: calc(10 * var(--u));
  padding: 0;
}
.page-case .cs-hero,
.page-case .cs-ask {
  --u: calc(min(100vw, 100vh * 1.77778) / 1920);
  --w: calc(100vw / 1920);
  height: 100svh;
}
.page-case .cs-hero__meta {
  left: calc(50% - 375 * var(--u));
}
.page-case .cs-ask__label {
  left: calc(79 * var(--w));
  top: calc(50% - 125 * var(--u));
}
.page-case .cs-ask__q {
  left: calc(464 * var(--w));
  top: calc(50% - 129 * var(--u));
}
.page-case .cs > section.cs-hero {
  z-index: 1;
}
.page-case .cs-hero {
  background: transparent;
}
.page-case .cs > section.cs-ask {
  position: relative;
  z-index: 2;
}
.page-case .cs {
  position: relative;
  z-index: 0;
  isolation: isolate;
}
html:has(body.page-case),
body.page-studio.page-case {
  background: #000;
}
.page-case .cs-hero {
  height: max(calc(100vw * 1258 / 1920), 100vh);
}
.page-case .cs > section.cs-hero {
  overflow: hidden;
}
.page-case .cs-hero__img {
  inset: 0;
  height: 100%;
  object-position: 50% 0%;
  z-index: 0;
}
.page-case .cs-hero__meta {
  bottom: auto;
  top: calc(100vh - 191 * var(--u));
}
.page-case .cs > section.cs-ask {
  background: #000;
}
.page-case .cs > section.rp {
  --u: calc(min(100vw, 100vh * 1.77778) / 1920);
  --w: calc(100vw / 1920);
  position: relative;
  height: 100svh;
  overflow: hidden;
}
.rp--a,
.rp--b {
  background: #000;
  color: #fff;
}
.rp__label {
  position: absolute;
  left: calc(79 * var(--w));
  top: calc(170 * var(--u));
  margin: 0;
  font-family: var(--font-text);
  font-size: calc(14 * var(--u));
  font-weight: 500;
  line-height: 1.2;
  z-index: 2;
}
.rp-a__text {
  position: absolute;
  left: calc(464 * var(--w));
  top: calc(160 * var(--u));
  margin: 0;
  font-family: var(--font-head);
  font-weight: 500;
  letter-spacing: -0.025em;
}
.rp-a__text em {
  font-style: normal;
  color: #ee2424;
}
.rp-a__foot {
  position: absolute;
  left: calc(79 * var(--w));
  right: calc(79 * var(--w));
  bottom: calc(70 * var(--u));
}
.rp-a__lead {
  margin: 0 0 calc(30 * var(--u)) calc(385 * var(--w));
  font-family: var(--font-text);
  font-size: calc(18 * var(--u));
  line-height: 1.4;
}
.rp-a__words {
  margin: 0;
  display: flex;
  justify-content: space-between;
  font-family: var(--font-head);
  font-weight: 500;
  letter-spacing: -0.05em;
  line-height: 1;
  overflow: hidden;
  border-bottom: 1px solid rgba(255, 255, 255, 0.45);
  white-space: nowrap;
}
.rp-a__words i {
  font-style: normal;
  color: #ee2424;
}
.rp-b__field {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.rp-b__pin {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 2;
  pointer-events: none;
}
.rp-b__pin i {
  position: absolute;
  left: calc(-9 * var(--u));
  top: calc(-9 * var(--u));
  width: calc(18 * var(--u));
  height: calc(18 * var(--u));
  background: #ee2424;
}
.page-case .sh:not(.is-light) {
  color: #1f1f1f;
}
.page-case .sh:not(.is-light) .sh__btn--line {
  color: #1f1f1f;
  border-color: #1f1f1f;
}
.rp-a__words {
  font-size: calc(158 * var(--u));
  height: 0.72em;
  align-items: flex-start;
}
.rp-a__words span {
  line-height: 0.98;
}
.rp-a__words i {
  align-self: center;
}
.rp-b__pin i {
  border-radius: 50% !important;
  box-shadow: none;
}
.rp-b__pin i::before,
.rp-b__pin i::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  background: rgba(238, 36, 36, 0.16);
  width: calc(46 * var(--u));
  height: calc(46 * var(--u));
}
.rp-b__pin i::after {
  width: calc(86 * var(--u));
  height: calc(86 * var(--u));
  background: rgba(238, 36, 36, 0.07);
}
.hs {
  position: relative;
}
.hs__pin {
  position: sticky;
  top: 0;
  height: 100vh;
  overflow: hidden;
}
.hs__track {
  display: flex;
  width: 200vw;
  height: 100%;
  will-change: transform;
  transform: translate3d(calc(var(--p, 0) * -100vw), 0, 0);
}
.page-case .hs__track > section {
  flex: none;
  width: 100vw;
}
.cs-ask__q {
  translate: calc(var(--p, 0) * -18vw) 0;
}
.cs-ask__label {
  translate: calc(var(--p, 0) * -8vw) 0;
}
.rp-a__lead {
  translate: calc((1 - var(--p, 0)) * 34vw) 0;
}
.rp-a__words {
  translate: calc((1 - var(--p, 0)) * 48vw) 0;
}
.rp-a__words i {
  scale: calc(0.4 + var(--p, 0) * 0.6);
}
.page-case .hs__track > section {
  --u: calc(min(100vw, 100vh * 1.77778) / 1920);
  --w: calc(100vw / 1920);
  position: relative;
  height: 100vh;
  overflow: hidden;
  background: #000;
}
.rp-a__g {
  color: var(--g, #5a5a5a);
}
.rp-a__lead {
  color: var(--ld, #bdbdbd);
}
.rp-a__words span {
  display: inline-block;
  will-change: transform;
}
.rp-a__text,
.rp-a__lead,
.rp-a__words {
  translate: none;
}
.rp-a__text {
  translate: calc((1 - var(--p, 0)) * 22vw) 0;
}
.rp__light {
  position: absolute;
  inset: 0;
  z-index: 5;
  background: #fafafa;
  color: #1f1f1f;
  --g: #969696;
  --ld: #6a6a6a;
  visibility: hidden;
}
.rp__light .rp-a__words {
  border-bottom-color: rgba(31, 31, 31, 0.3);
}
.hs {
  height: 300vh;
}
.rp-a__img {
  position: absolute;
  right: calc(80 * var(--w));
  top: calc(440 * var(--u));
  width: calc(600 * var(--u));
  aspect-ratio: 16 / 9;
  margin: 0;
  overflow: hidden;
  border-radius: calc(6 * var(--u));
  clip-path: inset(100% 0 0 0);
}
.rp-a__img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.18);
}
.rp-a__text {
  right: auto;
  white-space: nowrap;
  font-size: calc(56 * var(--u));
  line-height: 1.08;
}
.card__num {
  line-height: 1;
  height: calc(58.3 * var(--u));
}
.stat__value {
  line-height: 1;
  height: calc(59.6 * var(--u));
}
.pj__stat b {
  line-height: 1;
  height: calc(53.2 * var(--u));
}
.mcard__roll > span {
  margin-top: 0;
}
.mcard__num,
.mcard:hover .mcard__num {
  height: calc(19 * var(--u));
}
.apart__title .line {
  padding-top: 0.14em;
  margin-top: -0.14em;
}
.redblock {
  height: calc(100svh * 1.4);
}
.ws__ix {
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(42 * var(--u));
  letter-spacing: -0.035em;
  line-height: 1;
  clip-path: inset(0 0 0.36em 0);
}
.ws__list li {
  grid-template-columns: calc(130 * var(--u)) 1fr;
}
.ft4__studios {
  grid-template-columns: repeat(3, calc(440 * var(--u))) 1fr;
}
.ft4__pins g:nth-child(3) .ft4__ring {
  animation-delay: 2.2s;
}
.s2 .cb,
.s2[data-step="4"] .cb {
  transition: none !important;
}
.page-case .cs > section.sy {
  --u: calc(min(100vw, 100vh * 1.77778) / 1920);
  --w: calc(100vw / 1920);
  position: relative;
  color: #1f1f1f;
}
.sy__title {
  position: absolute;
  left: calc(79 * var(--w));
  top: calc(150 * var(--u));
  margin: 0;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(72 * var(--u));
  letter-spacing: -0.035em;
  white-space: nowrap;
}
.sy__l {
  display: block;
  overflow: hidden;
  padding: 0.12em 0 0.14em;
  margin: -0.12em 0 -0.14em;
}
.sy__l > span {
  display: block;
}
.sy__img {
  position: absolute;
  left: calc(79 * var(--w));
  top: calc(360 * var(--u));
  bottom: calc(80 * var(--u));
  margin: 0;
  overflow: hidden;
  border-radius: calc(6 * var(--u));
  background: #e9e9e9;
}
.sy__img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.sy__specs {
  position: absolute;
  right: calc(80 * var(--w));
  bottom: calc(80 * var(--u));
  width: calc(520 * var(--u));
  margin: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.sy__row {
  border-top: 1px solid rgba(31, 31, 31, 0.2);
  padding-top: calc(18 * var(--u));
  display: grid;
  column-gap: calc(20 * var(--u));
}
.sy__row dt {
  font-family: var(--font-text);
  font-size: calc(18 * var(--u));
  line-height: 1.3;
  color: #8a8a8a;
}
.sy__row dd {
  margin: 0;
}
.sy__name {
  display: block;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(36 * var(--u));
  line-height: 1;
  letter-spacing: -0.025em;
  margin-bottom: calc(14 * var(--u));
}
.sy__note {
  display: block;
  font-family: var(--font-text);
  font-size: calc(18 * var(--u));
  line-height: 1.4;
  color: #5a5a5a;
}
.sy__row--h dd {
  display: flex;
  align-items: flex-end;
  gap: calc(14 * var(--u));
}
.sy__num {
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(160 * var(--u));
  line-height: 1;
  letter-spacing: -0.05em;
  overflow: hidden;
}
.sy__unit {
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(28 * var(--u));
  letter-spacing: -0.02em;
  line-height: 1;
  padding-bottom: calc(2 * var(--u));
}
.sy__mats {
  display: flex;
  flex-direction: column;
  gap: calc(6 * var(--u));
  font-family: var(--font-head);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -0.02em;
}
.sy__title {
  line-height: 0.98;
}
.sy__num {
  height: 0.7em;
}
.sy__row {
  grid-template-columns: calc(130 * var(--u)) 1fr;
}
.sy__mats {
  font-size: calc(24 * var(--u));
  white-space: nowrap;
}
.sy__img {
  right: auto;
  width: calc(512 * var(--u));
}
.sy__img--2 {
  left: calc(79 * var(--w) + 522 * var(--u));
}
.sy__img img {
  object-position: 50% 50%;
}
.xp__label {
  position: absolute;
  left: calc(79 * var(--w));
  top: calc(170 * var(--u));
  margin: 0;
  font-family: var(--font-text);
  font-size: calc(18 * var(--u));
  color: rgba(255, 255, 255, 0.55);
}
.xp__text {
  position: absolute;
  left: calc(79 * var(--w));
  top: 50%;
  transform: translateY(-50%);
  margin: 0;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(76 * var(--u));
  line-height: 1;
  letter-spacing: -0.035em;
  white-space: nowrap;
}
.xp__text em {
  font-style: normal;
  color: #ee2424;
}
.xp__l {
  display: block;
  overflow: hidden;
  padding: 0.12em 0 0.14em;
  margin: -0.12em 0 -0.14em;
}
.xp__l > span {
  display: block;
}
.xp__vid {
  position: absolute;
  right: calc(80 * var(--w));
  top: calc(110 * var(--u));
  bottom: calc(80 * var(--u));
  aspect-ratio: 9 / 16;
  margin: 0;
  overflow: hidden;
  border-radius: calc(6 * var(--u));
  background: #111;
}
.xp__vid video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.xp__snd {
  position: absolute;
  left: calc(20 * var(--u));
  bottom: calc(20 * var(--u));
  display: inline-flex;
  align-items: center;
  gap: calc(10 * var(--u));
  padding: calc(10 * var(--u)) calc(16 * var(--u));
  border: 1px solid rgba(255, 255, 255, 0.6);
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.25);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  color: #fff;
  font-family: var(--font-text);
  font-size: calc(16 * var(--u));
  cursor: pointer;
}
.xp__snd i {
  width: calc(8 * var(--u));
  height: calc(8 * var(--u));
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
}
.xp__snd[aria-pressed="true"] i {
  background: #ee2424;
}
.xp__snd:hover {
  border-color: #ee2424;
}
.sy__specs {
  top: calc(360 * var(--u));
}
.page-case .cs > section.sy {
  height: 320svh;
  overflow: visible;
  background: transparent;
}
.sy__stick {
  --u: calc(min(100vw, 100vh * 1.77778) / 1920);
  --w: calc(100vw / 1920);
  position: sticky;
  top: 0;
  height: 100svh;
  overflow: hidden;
  background: rgb(var(--bg, 250, 250, 250));
  color: #1f1f1f;
}
.sy__stick .xp__label,
.sy__stick .xp__text {
  color: #fff;
}
.sy__stick .xp__l > span {
  transform: translateY(110%);
}
.sy__stick .xp__label {
  opacity: 0;
}
.sy__stick .xp__vid {
  right: auto;
  bottom: auto;
  aspect-ratio: auto;
  z-index: 2;
}
.sy__stick .xp__snd {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.5s var(--ease);
}
.sy__stick.is-film .xp__snd {
  opacity: 1;
  pointer-events: auto;
}
.sy__img--2 {
  z-index: 3;
}
.is-offscreen,
.is-offscreen * {
  animation-play-state: paused !important;
}
.ft4__mapbox {
  position: relative;
}
.ft4__map--pins {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  overflow: visible;
} /* case · sculpture day → night: the head by day with its facts, then the screen goes dark,
   the head turns to night and the light is projected onto it */
.sy__title {
  top: calc(170 * var(--u));
  font-size: calc(64 * var(--u));
  line-height: 1;
}
.sy__sc {
  position: absolute;
  left: 50%;
  top: calc(95 * var(--u));
  height: calc(100% - 95 * var(--u) + 120 * var(--u));
  aspect-ratio: 1086 / 1448;
  transform: translateX(-50%);
  pointer-events: none;
}
.sy__sc img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.sy__night,
.sy__light {
  opacity: 0;
}
.sy__light {
  filter: drop-shadow(0 0 calc(30 * var(--u)) rgba(40, 90, 255, 0.35));
}
.sy__specs {
  top: auto;
  bottom: calc(80 * var(--u));
  height: auto;
  width: calc(440 * var(--u));
  gap: calc(34 * var(--u));
  justify-content: flex-start;
}
.sy__row {
  grid-template-columns: calc(120 * var(--u)) 1fr;
}
.sy__name {
  font-size: calc(30 * var(--u));
}
.sy__note {
  font-size: calc(16 * var(--u));
}
.sy__num {
  font-size: calc(120 * var(--u));
}
.sy__mats {
  font-size: calc(22 * var(--u));
}
.sy__stick .xp__text {
  font-size: calc(56 * var(--u));
  top: 50%;
}
.sy__stick .xp__label {
  top: calc(170 * var(--u));
}
.sy__stick .xp__vid,
.sy__img {
  display: none;
}
/* case · the sculpture — one screen: two heads on the right, copy left, facts in a ruled column */
.page-case .cs > section.sy2 {
  --u: calc(min(100vw, 100vh * 1.77778) / 1920);
  --w: calc(100vw / 1920);
  position: relative;
  height: 100vh;
  height: 100svh;
  overflow: hidden;
  background: #fff;
  color: #1f1f1f;
}
.sy2__heads {
  position: absolute;
  left: calc(50% - 960 * var(--u));
  top: 0;
  width: calc(1920 * var(--u));
  height: 100%;
  pointer-events: none;
}
.sy2__a {
  position: absolute;
  left: calc(640 * var(--u));
  bottom: calc(-170 * var(--u));
  height: calc(1090 * var(--u));
  width: auto;
  z-index: 2;
}
.sy2__b {
  position: absolute;
  left: calc(1250 * var(--u));
  bottom: calc(-40 * var(--u));
  height: calc(830 * var(--u));
  width: auto;
  z-index: 1;
}
.sy2__copy {
  position: absolute;
  left: calc(79 * var(--w));
  top: calc(160 * var(--u));
  width: calc(500 * var(--u));
  z-index: 3;
}
.sy2__label {
  margin: 0 0 calc(24 * var(--u));
  font-family: var(--font-text);
  font-size: calc(18 * var(--u));
  color: #8a8a8a;
}
.sy2__title {
  margin: 0;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(64 * var(--u));
  line-height: 1;
  letter-spacing: -0.035em;
}
.sy2__job {
  margin: calc(40 * var(--u)) 0 0;
  max-width: calc(400 * var(--u));
  font-family: var(--font-text);
  font-size: calc(18 * var(--u));
  line-height: 1.45;
  color: #4a4a4a;
}
.sy2__job em {
  font-style: normal;
  color: #ee2424;
}
.sy2__facts {
  position: absolute;
  left: calc(79 * var(--w));
  bottom: calc(70 * var(--u));
  width: calc(480 * var(--u));
  margin: 0;
  z-index: 3;
  display: flex;
  flex-direction: column;
}
.sy2__f {
  display: grid;
  grid-template-columns: calc(120 * var(--u)) 1fr;
  column-gap: calc(20 * var(--u));
  padding: calc(16 * var(--u)) 0 calc(20 * var(--u));
  border-top: 1px solid rgba(31, 31, 31, 0.18);
}
.sy2__f dt {
  font-family: var(--font-text);
  font-size: calc(16 * var(--u));
  line-height: 1.4;
  color: #8a8a8a;
}
.sy2__f dd {
  margin: 0;
  font-family: var(--font-text);
  font-size: calc(16 * var(--u));
  line-height: 1.45;
  color: #4a4a4a;
}
.sy2__f dd b {
  display: block;
  margin-bottom: calc(8 * var(--u));
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(26 * var(--u));
  line-height: 1;
  letter-spacing: -0.02em;
  color: #1f1f1f;
}
.sy2__f--h dd {
  display: flex;
  align-items: flex-end;
  gap: calc(12 * var(--u));
}
.sy2__f--h dd .sy2__num {
  display: block;
  margin: 0;
  font-size: calc(96 * var(--u));
  letter-spacing: -0.05em;
  line-height: 1;
  height: 0.7em;
  overflow: hidden;
}
.sy2__unit {
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(24 * var(--u));
  color: #1f1f1f;
  letter-spacing: -0.02em;
}
.sy2__mats {
  font-family: var(--font-head) !important;
  font-weight: 500;
  font-size: calc(22 * var(--u)) !important;
  line-height: 1.2 !important;
  color: #1f1f1f !important;
  letter-spacing: -0.02em;
}
.sy2__a {
  left: calc(650 * var(--u));
  height: calc(980 * var(--u));
  bottom: calc(-150 * var(--u));
}
.sy2__b {
  left: calc(1190 * var(--u));
  height: calc(760 * var(--u));
  bottom: calc(-60 * var(--u));
}
.sy2__copy {
  top: calc(170 * var(--u));
}
/* sculpture block v2 (per mockup): big title, ruled facts, materials in three columns, larger heads */
.sy2__copy {
  top: calc(195 * var(--u));
  width: calc(800 * var(--u));
}
.sy2__title {
  font-size: calc(104 * var(--u));
  line-height: 0.86;
  letter-spacing: -0.04em;
}
.sy2__facts {
  top: calc(540 * var(--u));
  bottom: auto;
  width: calc(437 * var(--u));
}
.sy2__f {
  grid-template-columns: calc(110 * var(--u)) 1fr;
  column-gap: 0;
  padding: calc(20 * var(--u)) 0 calc(18 * var(--u));
  border-top: 1px solid rgba(31, 31, 31, 0.25);
}
.sy2__f dt {
  font-size: calc(18 * var(--u));
  color: #1f1f1f;
  padding-top: calc(4 * var(--u));
}
.sy2__f dd {
  font-size: calc(18 * var(--u));
  line-height: 1.2;
  color: #1f1f1f;
}
.sy2__f dd b {
  font-size: calc(28 * var(--u));
  margin-bottom: calc(32 * var(--u));
}
.sy2__f--h {
  padding-bottom: calc(56 * var(--u));
}
.sy2__f--h dd .sy2__num {
  font-size: calc(112 * var(--u));
  height: 0.66em;
}
.sy2__unit {
  font-size: calc(28 * var(--u));
}
.sy2__mats {
  display: flex !important;
  justify-content: space-between;
  font-size: calc(28 * var(--u)) !important;
  line-height: 1.05 !important;
}
.sy2__a {
  left: calc(585 * var(--u));
  top: calc(45 * var(--u));
  bottom: auto;
  height: calc(1009 * var(--u));
}
.sy2__b {
  left: calc(1110 * var(--u));
  top: calc(205 * var(--u));
  bottom: auto;
  height: calc(862 * var(--u));
}
.sy2__a {
  top: calc(48 * var(--u));
  height: calc(1070 * var(--u));
  left: calc(568 * var(--u));
}
.sy2__b {
  top: calc(198 * var(--u));
  height: calc(905 * var(--u));
  left: calc(1095 * var(--u));
}
.sy2__title {
  font-size: calc(100 * var(--u));
}
/* sculpture block: pinned; day → night → light */
.page-case .cs > section.sy2 {
  height: 300vh;
  height: 300svh;
  overflow: visible;
  background: transparent;
}
.sy2__stick {
  --u: calc(min(100vw, 100vh * 1.77778) / 1920);
  --w: calc(100vw / 1920);
  position: sticky;
  top: 0;
  height: 100vh;
  height: 100svh;
  overflow: hidden;
  background: rgb(var(--bg, 255, 255, 255));
  color: #1f1f1f;
}
.sy2__h {
  position: absolute;
}
.sy2__h img {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: auto;
}
.sy2__h img:first-child {
  position: relative;
  display: block;
}
.sy2__a {
  aspect-ratio: 829 / 1009;
}
.sy2__b {
  aspect-ratio: 815 / 837;
}
.sy2__n,
.sy2__l {
  opacity: 0;
}
.sy2__l {
  filter: drop-shadow(0 0 calc(24 * var(--u)) rgba(40, 90, 255, 0.3));
}
.sy2__night {
  position: absolute;
  left: calc(79 * var(--w));
  top: 0;
  bottom: 0;
  width: calc(560 * var(--u));
  color: #fff;
  pointer-events: none;
}
.sy2__nlabel {
  position: absolute;
  left: 0;
  top: calc(195 * var(--u));
  margin: 0;
  font-family: var(--font-text);
  font-size: calc(18 * var(--u));
  color: rgba(255, 255, 255, 0.55);
  opacity: 0;
}
.sy2__night .sy2__job {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  margin: 0;
  max-width: none;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(56 * var(--u));
  line-height: 1;
  letter-spacing: -0.03em;
  color: #fff;
  white-space: nowrap;
}
.sy2__night .xp__l > span {
  transform: translateY(110%);
}
.sy2__night {
  z-index: 4;
}
/* sculpture block v3 (per mockup): one composed pair of heads, title top-left, artist + height bottom-left */
.sy2__stick {
  --bg: 250, 250, 250;
}
.sy2__duo {
  left: calc(540 * var(--u));
  top: calc(40 * var(--u));
  width: calc(1380 * var(--u));
  height: calc(1040 * var(--u));
  aspect-ratio: auto;
}
.sy2__duo img {
  width: 100%;
  height: 100%;
}
.sy2__copy {
  top: calc(150 * var(--u));
}
.sy2__title {
  font-size: calc(104 * var(--u));
  line-height: 0.86;
  letter-spacing: -0.045em;
}
.sy2__facts {
  top: calc(722 * var(--u));
  width: calc(437 * var(--u));
}
.sy2__f {
  grid-template-columns: calc(110 * var(--u)) 1fr;
  padding: calc(20 * var(--u)) 0 calc(16 * var(--u));
}
.sy2__f--h {
  padding-bottom: 0;
}
.sy2__title {
  font-size: calc(100 * var(--u));
}
.ws__lead {
  white-space: nowrap;
  max-width: none;
}
.ws__list li {
  grid-template-columns: calc(88 * var(--u)) 1fr;
}
.ws__it {
  white-space: nowrap;
}
.ins__sub {
  margin: calc(24 * var(--u)) 0 0;
  font-family: var(--font-text);
  font-size: calc(18 * var(--u));
  font-weight: 400;
  line-height: 1.4;
  color: #6a6a6a;
}
/* insights: title + subtitle travel with the scroll through the list (sticky in their column) */
.ins__head {
  position: sticky;
  top: calc(110 * var(--u));
  align-self: start;
  z-index: 1;
}
.page-case .cs > section.sy2 {
  height: 220vh;
  height: 220svh;
}
/* after the fade to black: the projection film in the centre, collab's part on the left */
.page-case .cs > section.sy2 {
  height: 360vh;
  height: 360svh;
}
.sy2__film {
  position: absolute;
  left: 50%;
  top: 50%;
  width: min(calc(100vh - 40 * var(--u)), calc(1000 * var(--u)));
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  opacity: 0;
  z-index: 2;
}
.sy2__film video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.sy2__snd {
  left: auto;
  right: calc(40 * var(--u));
  bottom: calc(40 * var(--u));
  opacity: 0;
  pointer-events: none;
}
.sy2__film.is-on .sy2__snd {
  opacity: 1;
  pointer-events: auto;
}
.sy2__stick > .sy2__job {
  position: absolute;
  left: calc(79 * var(--w));
  top: 50%;
  transform: translateY(-50%);
  margin: 0;
  max-width: none;
  z-index: 3;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(52 * var(--u));
  line-height: 1;
  letter-spacing: -0.03em;
  color: #fff;
  white-space: nowrap;
}
.sy2__stick > .sy2__job em {
  font-style: normal;
  color: #ee2424;
}
.sy2__stick > .sy2__job .xp__l > span {
  transform: translateY(110%);
}
/* film full height, centred; collab's part split either side of it */
.sy2__film {
  top: 0;
  height: 100%;
  width: auto;
  transform: translateX(-50%);
}
.sy2__part {
  position: absolute;
  left: calc(79 * var(--w));
  top: 0;
  bottom: 0;
  width: calc(400 * var(--u));
  z-index: 3;
  color: #fff;
  pointer-events: none;
}
.sy2__plabel {
  position: absolute;
  left: 0;
  top: calc(150 * var(--u));
  margin: 0;
  font-family: var(--font-text);
  font-size: calc(18 * var(--u));
  color: rgba(255, 255, 255, 0.5);
  opacity: 0;
}
.sy2__part .sy2__job {
  position: absolute;
  left: 0;
  bottom: calc(80 * var(--u));
  margin: 0;
  max-width: none;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(34 * var(--u));
  line-height: 1.12;
  letter-spacing: -0.02em;
  color: #fff;
  white-space: nowrap;
}
.sy2__part .xp__l > span {
  transform: translateY(110%);
}
.sy2__via {
  position: absolute;
  right: calc(80 * var(--w));
  bottom: calc(80 * var(--u));
  width: calc(400 * var(--u));
  margin: 0;
  padding: 0;
  list-style: none;
  z-index: 3;
  color: #fff;
}
.sy2__via li {
  display: flex;
  align-items: baseline;
  gap: calc(24 * var(--u));
  padding: calc(18 * var(--u)) 0 calc(14 * var(--u));
  border-top: 1px solid rgba(255, 255, 255, 0.22);
  opacity: 0;
}
.sy2__via .sy2__vt {
  border: 0;
  padding: 0 0 calc(16 * var(--u));
  font-family: var(--font-text);
  font-size: calc(18 * var(--u));
  color: rgba(255, 255, 255, 0.5);
}
.sy2__vn {
  font-family: var(--font-text);
  font-size: calc(16 * var(--u));
  color: #ee2424;
  width: calc(30 * var(--u));
}
.sy2__vw {
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(48 * var(--u));
  line-height: 1;
  letter-spacing: -0.03em;
}
.sy2__stick > .sy2__snd {
  position: absolute;
  left: auto;
  right: calc(80 * var(--w));
  bottom: auto;
  top: calc(140 * var(--u));
  z-index: 3;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.5s var(--ease);
}
.sy2__stick > .sy2__snd.is-on {
  opacity: 1;
  pointer-events: auto;
}
/* collab's part: statement and the "through" list sit on the vertical centre; numbers match the words and are cut like every figure */
.sy2__part .sy2__job {
  top: 50%;
  bottom: auto;
  transform: translateY(-50%);
}
.sy2__via {
  top: 50%;
  bottom: auto;
  transform: translateY(-50%);
}
.sy2__vn {
  width: auto;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(48 * var(--u));
  line-height: 1;
  letter-spacing: -0.03em;
  color: #ee2424;
  clip-path: inset(0 0 0.36em 0);
}
.sy2__via li {
  gap: calc(28 * var(--u));
}
.sy2__stick > .sy2__snd {
  top: auto;
  bottom: calc(60 * var(--u));
}
.sy2__more {
  position: absolute;
  left: calc(79 * var(--w));
  bottom: calc(60 * var(--u));
  margin: 0;
  z-index: 3;
  font-family: var(--font-text);
  font-size: calc(18 * var(--u));
  color: rgba(255, 255, 255, 0.55);
  opacity: 0;
  transition: opacity 0.5s var(--ease);
}
.sy2__more.is-on {
  opacity: 1;
}
.sy2__vw {
  white-space: nowrap;
}
.sy2__via {
  width: calc(470 * var(--u));
}
.sy2__via li {
  gap: calc(22 * var(--u));
}
.sy2__vn {
  flex: none;
  width: calc(68 * var(--u));
}
/* talk block v2: two-line headline, a quiet paragraph, and the closing line */
.tk__line--s,
.tk__line--m {
  font-size: calc(30 * var(--u));
  line-height: 1.3;
  letter-spacing: -0.015em;
}
.tk__line--s {
  color: #6a6a6a;
}
.tk__line--s:first-of-type,
.talk__text .tk__line:nth-child(3) {
  margin-top: calc(56 * var(--u));
}
.tk__line--m {
  margin-top: calc(28 * var(--u));
  color: #ee2424;
}

/* case · step 01 — truth & intent: an editorial spread on paper
   left: the step, a cropped figure, the name; right: lead, insight, roles, principle */
.page-case .cs > section.st1 {
  --u: calc(min(100vw, 100vh * 1.77778) / 1920);
  --w: calc(100vw / 1920);
  position: relative;
  min-height: 100vh;
  min-height: 100svh;
  background: #fafafa;
  color: #1f1f1f;
  display: grid;
  grid-template-columns: calc(640 * var(--w)) 1fr;
  padding: calc(150 * var(--u)) calc(80 * var(--w)) calc(90 * var(--u))
    calc(79 * var(--w));
  box-sizing: border-box;
  overflow: hidden;
}
.st1__side {
  position: relative;
}
.st1__step {
  margin: 0 0 calc(10 * var(--u));
  font-family: var(--font-text);
  font-size: calc(18 * var(--u));
  color: #8a8a8a;
}
.st1__num {
  display: block;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(300 * var(--u));
  line-height: 1;
  letter-spacing: -0.06em;
  height: 0.7em;
  overflow: hidden;
  color: #ee2424;
  border-bottom: 1px solid rgba(31, 31, 31, 0.25);
  width: calc(480 * var(--u));
}
.st1__title {
  margin: calc(28 * var(--u)) 0 0;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(64 * var(--u));
  line-height: 0.95;
  letter-spacing: -0.035em;
}
.st1__main {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: calc(60 * var(--u));
  row-gap: calc(56 * var(--u));
  align-content: start;
}
.st1__lead {
  grid-column: 1 / -1;
  margin: 0;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(52 * var(--u));
  line-height: 1.02;
  letter-spacing: -0.03em;
}
.st1__k {
  display: block;
  margin-bottom: calc(18 * var(--u));
  font-family: var(--font-text);
  font-size: calc(18 * var(--u));
  color: #8a8a8a;
}
.st1__insight {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: calc(250 * var(--u)) 1fr;
  align-items: baseline;
  padding-top: calc(22 * var(--u));
  border-top: 1px solid rgba(31, 31, 31, 0.2);
}
.st1__insight p,
.st1__principle p {
  margin: 0;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(32 * var(--u));
  line-height: 1.12;
  letter-spacing: -0.02em;
}
.st1__insight em {
  font-style: normal;
  color: #ee2424;
}
.st1__roles {
  grid-column: 1 / -1;
}
.st1__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: calc(60 * var(--u));
  grid-auto-flow: column;
  grid-template-rows: repeat(4, auto);
}
.st1__list li {
  display: flex;
  align-items: baseline;
  gap: calc(20 * var(--u));
  padding: calc(14 * var(--u)) 0 calc(12 * var(--u));
  border-top: 1px solid rgba(31, 31, 31, 0.2);
}
.st1__n {
  flex: none;
  width: calc(36 * var(--u));
  font-family: var(--font-text);
  font-size: calc(16 * var(--u));
  color: #ee2424;
}
.st1__t {
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(24 * var(--u));
  line-height: 1.15;
  letter-spacing: -0.015em;
}
.st1__principle {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: calc(250 * var(--u)) 1fr;
  align-items: baseline;
  padding-top: calc(22 * var(--u));
  border-top: 1px solid #1f1f1f;
}
.st1__list {
  grid-template-columns: 1fr;
  grid-auto-flow: row;
  grid-template-rows: none;
}
.st1__list li {
  padding: calc(11 * var(--u)) 0 calc(9 * var(--u));
}
.st1__t {
  white-space: nowrap;
}
.st1__main {
  row-gap: calc(46 * var(--u));
}
.st1__lead {
  font-size: calc(48 * var(--u));
}
.st1__roles {
  display: grid;
  grid-template-columns: calc(250 * var(--u)) 1fr;
  align-items: start;
}
.st1__roles > .st1__k {
  padding-top: calc(13 * var(--u));
  margin: 0;
}

/* case · step 01 as a swiss poster: scale contrast, a fine grid, vertical lines of type */
.page-case .cs > section.sp {
  --u: calc(min(100vw, 100vh * 1.77778) / 1920);
  --w: calc(100vw / 1920);
  display: block;
  position: relative;
  height: 100vh;
  height: 100svh;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  background: #fafafa;
  color: #1f1f1f;
}
.sp > * {
  position: absolute;
  margin: 0;
}
.sp__eye {
  left: calc(79 * var(--w));
  top: calc(118 * var(--u));
  font-family: var(--font-text);
  font-size: calc(15 * var(--u));
  letter-spacing: 0.02em;
}
.sp__title {
  left: calc(76 * var(--w));
  top: calc(150 * var(--u));
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(132 * var(--u));
  line-height: 0.86;
  letter-spacing: -0.045em;
}
.sp__scale {
  left: calc(79 * var(--w));
  top: calc(400 * var(--u));
  display: flex;
  align-items: center;
  gap: calc(18 * var(--u));
  font-family: var(--font-head);
  font-weight: 400;
  font-size: calc(84 * var(--u));
  letter-spacing: -0.04em;
  color: #c4c4c4;
  line-height: 1;
}
.sp__scale i {
  display: block;
  width: calc(150 * var(--u));
  height: 2px;
  background: #c4c4c4;
}
.sp__grid {
  left: calc(640 * var(--w));
  top: calc(112 * var(--u));
  width: calc(840 * var(--u));
  height: calc(420 * var(--u));
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  grid-template-rows: repeat(3, 1fr);
  border-top: 1px solid #e3e3e3;
  border-left: 1px solid #e3e3e3;
}
.sp__grid i {
  border-right: 1px solid #e3e3e3;
  border-bottom: 1px solid #e3e3e3;
}
.sp__grid b {
  position: absolute;
  left: calc(var(--x) * 140 * var(--u) + 8 * var(--u));
  top: calc(var(--y) * 140 * var(--u) + 6 * var(--u));
  font-family: var(--font-text);
  font-weight: 400;
  font-size: calc(15 * var(--u));
  color: #ee2424;
}
.sp__lead {
  left: calc(660 * var(--w));
  top: calc(160 * var(--u));
  width: calc(330 * var(--u));
  font-family: var(--font-head);
  font-weight: 600;
  font-size: calc(34 * var(--u));
  line-height: 0.98;
  letter-spacing: -0.02em;
}
.sp__ins {
  left: calc(640 * var(--w) + 560 * var(--u) + 14 * var(--u));
  top: calc(352 * var(--u));
  width: calc(250 * var(--u));
  font-family: var(--font-text);
  font-size: calc(17 * var(--u));
  line-height: 1.32;
  background: #fafafa;
}
.sp__vert {
  font-family: var(--font-text);
  font-size: calc(15 * var(--u));
  letter-spacing: 0.02em;
  white-space: nowrap;
  writing-mode: vertical-rl;
}
.sp__vert--r {
  right: calc(80 * var(--w));
  top: calc(118 * var(--u));
}
.sp__vert--l {
  left: calc(79 * var(--w));
  top: calc(560 * var(--u));
  transform: rotate(180deg);
}
.sp__roles {
  left: calc(300 * var(--w));
  top: calc(560 * var(--u));
  width: calc(280 * var(--u));
  padding: 0;
  list-style: none;
  font-family: var(--font-text);
  font-size: calc(16 * var(--u));
  line-height: 1.25;
  color: #9a9a9a;
  display: grid;
  gap: calc(10 * var(--u));
}
.sp__roles li {
  display: grid;
  grid-template-columns: calc(30 * var(--u)) 1fr;
}
.sp__roles span {
  color: #ee2424;
}
.sp__k {
  left: calc(640 * var(--w));
  top: calc(560 * var(--u));
  font-family: var(--font-text);
  font-size: calc(15 * var(--u));
  letter-spacing: 0.02em;
}
.sp__big {
  left: calc(634 * var(--w));
  top: calc(586 * var(--u));
  font-family: var(--font-head);
  font-weight: 700;
  font-size: calc(124 * var(--u));
  line-height: 0.84;
  letter-spacing: -0.045em;
  white-space: nowrap;
}
.sp__br {
  right: calc(150 * var(--w));
  top: calc(600 * var(--u));
  display: flex;
  align-items: center;
  gap: calc(40 * var(--u));
  font-family: var(--font-head);
  font-weight: 400;
  line-height: 1;
}
.sp__br span {
  font-size: calc(190 * var(--u));
  font-weight: 300;
  transform: scaleX(0.6);
}
.sp__br b {
  font-weight: 500;
  font-size: calc(30 * var(--u));
  color: #ee2424;
  letter-spacing: -0.02em;
}
.sp__brl {
  right: calc(150 * var(--w));
  top: calc(815 * var(--u));
  width: calc(260 * var(--u));
  text-align: center;
  font-family: var(--font-text);
  font-size: calc(15 * var(--u));
  color: #9a9a9a;
}
.sp__k2 {
  left: calc(640 * var(--w));
  top: calc(860 * var(--u));
  font-family: var(--font-text);
  font-size: calc(15 * var(--u));
  letter-spacing: 0.02em;
}
.sp__huge {
  left: calc(70 * var(--w));
  bottom: calc(-46 * var(--u));
  font-family: var(--font-head);
  font-weight: 400;
  font-size: calc(230 * var(--u));
  line-height: 1;
  letter-spacing: -0.055em;
  color: #cfcfcf;
  white-space: nowrap;
}
.sp__pr {
  left: calc(640 * var(--w));
  top: calc(905 * var(--u));
  width: calc(900 * var(--u));
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(34 * var(--u));
  line-height: 1;
  letter-spacing: -0.025em;
  color: #1f1f1f;
  z-index: 1;
}
.sp__huge {
  color: #dedede;
}

/* ===== step 01 — three variants ===== */
.page-case .cs > section.sv {
  --u: calc(min(100vw, 100vh * 1.77778) / 1920);
  --w: calc(100vw / 1920);
  position: relative;
  height: 100vh;
  height: 100svh;
  overflow: hidden;
  background: #fafafa;
  color: #1f1f1f;
  box-sizing: border-box;
  padding: calc(150 * var(--u)) calc(80 * var(--w)) calc(80 * var(--u))
    calc(79 * var(--w));
}
.sv__tag {
  position: absolute;
  right: calc(80 * var(--w));
  bottom: calc(24 * var(--u));
  font-family: var(--font-text);
  font-size: calc(14 * var(--u));
  color: #ee2424;
}
.sv__lab {
  margin: 0 0 calc(18 * var(--u));
  font-family: var(--font-text);
  font-size: calc(18 * var(--u));
  color: #8a8a8a;
}

/* a — one big two-tone sentence, the details in two quiet columns below */
.sv--a {
  display: flex;
  flex-direction: column;
}
.va__top {
  display: flex;
  align-items: baseline;
  gap: calc(30 * var(--u));
}
.va__top .sv__lab {
  margin: 0;
  color: #ee2424;
}
.va__name {
  margin: 0;
  font-family: var(--font-text);
  font-weight: 400;
  font-size: calc(18 * var(--u));
  color: #1f1f1f;
}
.va__lead {
  margin: calc(40 * var(--u)) 0 0;
  max-width: calc(1640 * var(--u));
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(76 * var(--u));
  line-height: 1;
  letter-spacing: -0.035em;
  text-wrap: balance;
}
.va__g {
  color: #b4b4b4;
}
.va__g em {
  font-style: normal;
  color: #ee2424;
}
.va__bot {
  margin-top: auto;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  column-gap: calc(120 * var(--u));
  padding-top: calc(28 * var(--u));
  border-top: 1px solid rgba(31, 31, 31, 0.2);
}
.va__roles {
  margin: 0;
  padding: 0;
  list-style: none;
  columns: 2;
  column-gap: calc(40 * var(--u));
  font-family: var(--font-text);
  font-size: calc(18 * var(--u));
  line-height: 1.35;
}
.va__roles li {
  break-inside: avoid;
  display: grid;
  grid-template-columns: calc(36 * var(--u)) 1fr;
  margin-bottom: calc(10 * var(--u));
}
.va__n {
  color: #ee2424;
}
.va__pr p:last-child {
  margin: 0;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(36 * var(--u));
  line-height: 1.05;
  letter-spacing: -0.02em;
}

/* b — the step on the left, the seven roles as a big ruled index on the right */
.sv--b {
  display: grid;
  grid-template-columns: calc(560 * var(--u)) 1fr;
  column-gap: calc(120 * var(--u));
}
.vb__side {
  display: flex;
  flex-direction: column;
}
.vb__num {
  display: block;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(220 * var(--u));
  line-height: 1;
  letter-spacing: -0.06em;
  height: 0.7em;
  overflow: hidden;
  border-bottom: 1px solid rgba(31, 31, 31, 0.25);
  color: #1f1f1f;
}
.vb__name {
  margin: calc(20 * var(--u)) 0 0;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(48 * var(--u));
  letter-spacing: -0.03em;
  line-height: 1;
}
.vb__lead {
  margin: calc(40 * var(--u)) 0 0;
  font-family: var(--font-text);
  font-size: calc(18 * var(--u));
  line-height: 1.45;
  color: #4a4a4a;
  max-width: calc(420 * var(--u));
}
.vb__pr {
  margin-top: auto;
  padding-top: calc(20 * var(--u));
  border-top: 1px solid rgba(31, 31, 31, 0.2);
}
.vb__pr p:last-child {
  margin: 0;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(26 * var(--u));
  line-height: 1.12;
  letter-spacing: -0.015em;
}
.vb__list {
  margin: 0;
  padding: 0;
  list-style: none;
  border-bottom: 1px solid rgba(31, 31, 31, 0.2);
}
.vb__r {
  display: flex;
  align-items: baseline;
  gap: calc(30 * var(--u));
  padding: calc(14 * var(--u)) 0 calc(12 * var(--u));
  border-top: 1px solid rgba(31, 31, 31, 0.2);
  color: #c2c2c2;
  transition: color 0.5s var(--ease);
}
.vb__r.is-on,
.vb__r:hover {
  color: #1f1f1f;
}
.vb__n {
  font-family: var(--font-text);
  font-size: calc(16 * var(--u));
  color: #ee2424;
  width: calc(30 * var(--u));
  flex: none;
}
.vb__t {
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(52 * var(--u));
  line-height: 1.02;
  letter-spacing: -0.035em;
  white-space: nowrap;
}

/* c — dark: the insight as the headline, the roles as a row of seven, the principle as a footnote */
.page-case .cs > section.sv--c {
  background: #0b0b0c;
  color: #fff;
}
.sv--c .sv__lab {
  color: rgba(255, 255, 255, 0.5);
}
.vc__lead {
  margin: 0;
  font-family: var(--font-text);
  font-size: calc(22 * var(--u));
  color: rgba(255, 255, 255, 0.75);
}
.vc__ins {
  margin: calc(30 * var(--u)) 0 0;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(120 * var(--u));
  line-height: 0.9;
  letter-spacing: -0.045em;
}
.vc__ins em {
  font-style: normal;
  color: #ee2424;
}
.vc__roles {
  position: absolute;
  left: calc(79 * var(--w));
  right: calc(80 * var(--w));
  bottom: calc(200 * var(--u));
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  column-gap: calc(18 * var(--u));
}
.vc__roles li {
  border-top: 1px solid rgba(255, 255, 255, 0.25);
  padding-top: calc(14 * var(--u));
  font-family: var(--font-text);
  font-size: calc(17 * var(--u));
  line-height: 1.3;
  color: rgba(255, 255, 255, 0.85);
}
.vc__n {
  display: block;
  margin-bottom: calc(14 * var(--u));
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(56 * var(--u));
  line-height: 1;
  letter-spacing: -0.04em;
  height: 0.7em;
  overflow: hidden;
  color: #ee2424;
}
.vc__pr {
  position: absolute;
  left: calc(79 * var(--w));
  bottom: calc(70 * var(--u));
  margin: 0;
  width: calc(1000 * var(--u));
  font-family: var(--font-head);
  font-weight: 500;
  font-size: calc(30 * var(--u));
  line-height: 1.1;
  letter-spacing: -0.02em;
}
.vc__pr .sv__lab {
  display: block;
}
.vb__t {
  font-size: calc(44 * var(--u));
}
.sv--b {
  grid-template-columns: calc(560 * var(--u)) minmax(0, 1fr);
}
.vc__roles {
  bottom: calc(240 * var(--u));
}
.vc__pr {
  width: calc(1400 * var(--u));
}
/* step 01 (variant a) — animated */
.va__lead .vw,
.va__prt .vw {
  display: inline-block;
  overflow: hidden;
  vertical-align: top;
  padding: 0.1em 0 0.14em;
  margin: -0.1em 0 -0.14em;
}
.va__lead .vw > span,
.va__prt .vw > span {
  display: inline-block;
}
.va__g .vw > span {
  transition: color 0.9s var(--ease);
}
.sv--a:not(.is-lit) .va__g .vw > span {
  color: #e4e4e4;
}
.sv--a:not(.is-lit) .va__g em {
  color: #e4e4e4;
}
.va__g em {
  transition: color 0.8s var(--ease);
}
.va__bot {
  border-top: 0;
  position: relative;
}
.va__bot::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 1px;
  background: rgba(31, 31, 31, 0.2);
  transform-origin: 0 50%;
  transform: scaleX(var(--ln, 1));
}
/* figures: one weight (bold, as 89%) and one crop (the line cuts .38em off the bottom) everywhere */
.stat-item__num {
  font-weight: 700;
  line-height: 1;
  height: 0.62em;
}
.pj__stat b {
  height: 0.62em;
}
.pj__no {
  clip-path: inset(0 0 0.36em 0);
}
/* insights: room between the title and its subtitle */
.ins__head .ins__title {
  translate: 0 calc(-30 * var(--u));
}
.ins__head {
  top: calc(140 * var(--u));
}

.cb__lab--all {
  transform: translate(-50%, -50%)
    translateZ(calc(3 * var(--S) + 95 * var(--u)))
    rotateZ(calc(-1 * var(--spin, 45deg))) rotateX(-60deg);
}
