html,
body,
.ui-content {
  background: #2c3124;
}
html,
body {
  height: 100%;
  overflow: hidden;
  -webkit-overflow-scrolling: auto;
}
.app {
  max-height: 100%;
  max-height: 100vh;
  perspective: 10px;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  --scroll: 0;
}
*,
*:before,
*:after {
  box-sizing: border-box;
  position: relative;
  transition: transform 0.3s cubic-bezier(0.5, 0, 0.5, 1);
}
/* ---------------------------------- */
.ui-header,
.ui-layer {
  transform-style: preserve-3d;
}
.l-4 {
  transform: translateZ(-20px) scale(3);
}
.l-3 {
  transform: translateZ(-10px) scale(2);
}
.l-2 {
  transform: translateZ(-5px) scale(1.5);
}
.l-1 {
  transition: 0.1s transform;
  transform: translateZ(1px) scale(calc(1 + (0.15 * var(--scroll))));
}
/* ---------------------------------- */
.ui-header {
  position: relative;
  height: 95vh;
  margin-top: -6%;
}
.ui-layer {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  background-size: cover;
  background-position: center bottom;
  background-image: url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/39255/kf_1-12_layer-bg.jpg);
  mask-size: cover;
  mask-position: center bottom;
  opacity: 0.99;
}
.l-3 {
  mask-image: url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/39255/kf_1-12_layer-3-mask.png);
}
.l-2 {
  mask-image: url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/39255/kf_1-12_layer-2-mask.png);
}
.l-1 {
  background-image: url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/39255/kf_1-12_layer-1.png);
}
.ui-content {
  height: 100vh;
  color: white;
  display: grid;
  grid-template-rows: auto 1fr;
  grid-template-columns: 1fr 1fr;
  grid-gap: 3rem;
}
.ui-heading {
  font-family: "Dancing Script", sans-serif;
  font-size: 4rem;
  margin: 1rem;
  text-align: center;
  grid-row: 1/2;
  grid-column: 1/-1;
  transform: translateZ(1px) translateY(50%);
}
.ui-figure {
  --scale: 0.8;
  justify-self: end;
  align-self: flex-start;
  transition: none !important;
  transform: translateY(calc(130% * (1 - var(--scroll) * 0.5)));
}
.ui-photo {
  overflow: hidden;
  width: 40vmin;
  height: auto;
  transition: none !important;
  --scale: calc(1 * 0.5 * var(--scroll));
  transform: scale(var(--scale));
}
.ui-photo > img {
  display: block;
  width: 120%;
  margin: -10%;
  transition: none !important;
  transform: scale(calc(1 / var(--scale)));
}
.ui-description > .ui-paragraph {
  max-width: 20rem;
  font-size: 0.8rem;
  line-height: 2;
  font-family: serif;
}
.ui-nav {
  transform: translateZ(0px);
  position: fixed;
  top: 0;
  left: 0;
  height: 10vh;
  z-index: 11;
  width: 100%;
  display: flex;
  color: #374a59;
}
.ui-nav > * {
  height: 100%;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  padding: 1rem;
  background-color: #fff;
}
.ui-nav > .ui-left,
.ui-nav > .ui-right {
  text-transform: uppercase;
  font-weight: bold;
  z-index: 1;
  background: white;
}
.ui-nav > .ui-left {
  transform: translateX(50%);
}
.ui-nav > .ui-right {
  transform: translateX(-50%);
  border: 0.25rem solid currentcolor;
  border-left: none;
  border-right: none;
  border-top-color: transparent;
}
.ui-nav > .ui-center {
  flex-grow: 1;
}
.ui-nav.-expanded > .ui-left,
.ui-nav.-expanded > .ui-right {
  transform: none;
}
.ui-button {
  appearance: none;
  background: white;
  border: none;
  padding: 1rem;
  font-size: 0.5rem;
  text-transform: uppercase;
  font-weight: bold;
  transform: translateZ(0.1px);
}
.ui-item {
  margin: 0 1rem;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 1px;
}
