:root {
  --background: #faefe5;
  --paragraphs: #5b5753;
  --heading: #151414;
  --accent-1: #f5d371;
  --light: #fefaf7;
  --shadow: #33302c0d;
  --accent-2: #9edef9;
  --accent-3: #fabdaa;
  --border: #ded2c5;
}

.w-layout-grid {
  grid-row-gap: 16px;
  grid-column-gap: 16px;
  grid-template-rows: auto auto;
  grid-template-columns: 1fr 1fr;
  grid-auto-columns: 1fr;
  display: grid;
}

.w-embed-youtubevideo {
  background-image: url('https://d3e54v103j8qbb.cloudfront.net/static/youtube-placeholder.2b05e7d68d.svg');
  background-position: 50%;
  background-size: cover;
  width: 100%;
  padding-bottom: 0;
  padding-left: 0;
  padding-right: 0;
  position: relative;
}

.w-embed-youtubevideo:empty {
  min-height: 75px;
  padding-bottom: 56.25%;
}

body {
  background-color: var(--background);
  color: var(--paragraphs);
  flex-direction: column;
  justify-content: flex-start;
  font-family: DM Sans, sans-serif;
  font-size: 18px;
  line-height: 170%;
  display: flex;
}

h1 {
  color: var(--heading);
  margin-top: 0;
  margin-bottom: 28px;
  font-family: Fahkwang, sans-serif;
  font-size: 64px;
  font-weight: 400;
  line-height: 120%;
}

h2 {
  color: var(--heading);
  margin-top: 0;
  margin-bottom: 23px;
  font-family: Fahkwang, sans-serif;
  font-size: 50px;
  font-weight: 400;
  line-height: 128%;
}

h3 {
  color: var(--heading);
  margin-top: 0;
  margin-bottom: 21px;
  font-family: Fahkwang, sans-serif;
  font-size: 38px;
  font-weight: 400;
  line-height: 130%;
}

h4 {
  color: var(--heading);
  margin-top: 0;
  margin-bottom: 19px;
  font-family: Fahkwang, sans-serif;
  font-size: 30px;
  font-weight: 400;
  line-height: 135%;
}

h5 {
  color: var(--heading);
  margin-top: 0;
  margin-bottom: 17px;
  font-family: Fahkwang, sans-serif;
  font-size: 24px;
  font-weight: 400;
  line-height: 138%;
}

h6 {
  color: var(--heading);
  margin-top: 0;
  margin-bottom: 15px;
  font-size: 18px;
  font-weight: 500;
  line-height: 150%;
}

p {
  margin-bottom: 28px;
}

a {
  border-bottom: 2px solid var(--accent-1);
  color: var(--heading);
  text-decoration: none;
  transition: border-width .2s cubic-bezier(.25, .46, .45, .94), border-color .2s cubic-bezier(.25, .46, .45, .94);
}

a:hover {
  border-bottom-color: var(--heading);
}

ul, ol {
  margin-top: 0;
  margin-bottom: 28px;
  padding-left: 36px;
}

li {
  padding-top: 3px;
  padding-bottom: 3px;
  padding-left: 8px;
}

strong {
  color: var(--heading);
  font-weight: 500;
}

em {
  font-style: italic;
}

blockquote {
  border-left: 2px solid var(--accent-1);
  color: var(--heading);
  margin-bottom: 28px;
  margin-left: 18px;
  padding: 2px 24px;
  font-size: 20px;
  font-style: italic;
  line-height: 170%;
}

figure {
  border-radius: 10px;
  margin-top: 38px;
  margin-bottom: 38px;
  overflow: hidden;
}

figcaption {
  background-color: var(--light);
  text-align: center;
  margin-top: 0;
  padding: 14px 10px;
  font-size: 16px;
  line-height: 150%;
}

.transformed-hero {
  perspective: 1700px;
  position: relative;
  overflow: hidden;
}

.flex-hero {
  z-index: 20;
  box-shadow: 5px 0 150px 0 var(--shadow);
  background-color: #000;
  align-items: flex-end;
  width: 50%;
  min-height: 100vh;
  display: flex;
  position: fixed;
}

.block-hero {
  flex-direction: column;
  flex: none;
  grid-template-rows: auto auto;
  grid-template-columns: 1fr 1fr;
  grid-auto-columns: 1fr;
  justify-content: center;
  align-items: flex-start;
  width: 42vw;
  margin: 90px 4vw 4vw;
  display: block;
}

.heading-hero {
  color: #fff;
  max-width: 850px;
  font-family: IBM Plex Mono, sans-serif;
  font-size: 3.5vw;
}

.paragraph-large {
  color: #fff;
  max-width: 570px;
  font-family: Space Mono, sans-serif;
  font-size: 20px;
  line-height: 170%;
}

.link {
  border-bottom-style: none;
  align-items: center;
  padding-top: 3px;
  padding-bottom: 3px;
  display: flex;
}

.circle {
  background-color: var(--heading);
  border-radius: 50%;
  width: 23px;
  height: 23px;
  margin-right: 12px;
  display: none;
}

.text-link {
  color: var(--heading);
  font-family: Space Mono, sans-serif;
  font-size: 18px;
  font-weight: 500;
  line-height: 140%;
  display: none;
}

.grid-links {
  grid-column-gap: 25px;
  grid-row-gap: 25px;
  grid-template-rows: auto;
  grid-template-columns: auto;
  grid-auto-columns: auto;
  grid-auto-flow: column;
  margin-top: 40px;
}

.navbar {
  background-color: #0000;
  flex-direction: row;
  flex: 0 auto;
  justify-content: center;
  align-items: center;
  margin-top: 30px;
  margin-left: 40px;
  margin-right: 40px;
  display: flex;
  position: fixed;
  top: 0%;
  left: 0%;
  right: 0%;
}

.nav-block {
  justify-content: space-between;
  align-items: center;
  width: 100%;
  display: flex;
}

.brand {
  border-bottom-style: none;
  justify-content: center;
  align-items: center;
  padding: 5px;
  display: flex;
}

.nav-link {
  text-align: right;
  border-bottom-style: none;
  padding: 12px 0;
  font-size: 18px;
  font-weight: 500;
  line-height: 140%;
  transition: padding-right .3s cubic-bezier(.25, .46, .45, .94);
  display: block;
}

.nav-link:hover {
  padding-right: 8px;
}

.nav {
  justify-content: center;
  align-items: center;
  display: flex;
}

.nav-menu {
  background-color: var(--light);
  border-radius: 10px;
  flex-direction: column;
  margin-top: 10px;
  padding: 15px 25px;
  display: flex;
  position: absolute;
  bottom: auto;
  left: auto;
}

.logo {
  height: 20px;
}

.menu-button {
  padding: 0;
}

.menu-button.w--open {
  background-color: #0000;
}

.icon-menu {
  width: 12px;
  height: 12px;
}

.block-menu-button {
  justify-content: center;
  align-items: center;
  display: flex;
}

.icon-menu-bg {
  z-index: 50;
  box-shadow: 0 15px 40px 0 var(--shadow);
  background-color: #f7f7f7;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: 44px;
  height: 44px;
  margin-left: 12px;
  font-family: Space Mono, sans-serif;
  display: none;
  position: relative;
}

.section-hero {
  transform-origin: 50% 0;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  margin-top: auto;
  padding-top: 40px;
  padding-left: 40px;
  padding-right: 40px;
  display: flex;
}

.grid-hero {
  grid-column-gap: 3vw;
  grid-row-gap: 3vw;
  grid-template-rows: auto;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  grid-auto-flow: column;
  align-items: start;
  width: 100%;
  min-height: 100vh;
}

.grid-hero---row-1 {
  grid-column-gap: 3vw;
  grid-row-gap: 3vw;
  grid-template-rows: auto;
  grid-template-columns: 1fr;
}

.image-hero {
  object-fit: cover;
  border-radius: 10px;
  width: 100%;
  line-height: 170%;
}

.grid-hero---row-2 {
  grid-column-gap: 3vw;
  grid-row-gap: 3vw;
  grid-template-rows: auto;
  grid-template-columns: 1fr;
  margin-top: 12vh;
}

.grid-hero---row-3 {
  grid-column-gap: 3vw;
  grid-row-gap: 3vw;
  grid-template-rows: auto;
  grid-template-columns: 1fr;
  align-items: start;
}

.grid-hero---row-4 {
  grid-column-gap: 3vw;
  grid-row-gap: 3vw;
  grid-template-rows: auto;
  grid-template-columns: 1fr;
  margin-top: 12vh;
}

.section {
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 5vw 40px;
  display: flex;
}

.content {
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: 1320px;
  display: flex;
}

.heading-welcome {
  color: #fff;
  max-width: 1220px;
  margin-bottom: 0;
  font-family: IBM Plex Mono, sans-serif;
  font-size: 50px;
  font-weight: 300;
  line-height: 136%;
}

.heading-welcome.hw1 {
  font-weight: 400;
}

.heading-welcome.hwm2, .heading-welcome.hwm3 {
  font-size: 30px;
}

.welcome {
  width: 100%;
  margin-top: 10vw;
  margin-bottom: 5vw;
}

.text-span---accent-1 {
  background-color: var(--accent-1);
  border-radius: 5px;
  padding-left: 8px;
  padding-right: 8px;
}

.text-span---accent-2 {
  background-color: var(--accent-2);
  border-radius: 5px;
  padding-left: 8px;
  padding-right: 8px;
}

.text-span---accent-3 {
  background-color: var(--accent-3);
  border-radius: 5px;
  padding-left: 8px;
  padding-right: 8px;
}

.collection-list-wrapper {
  width: 100%;
}

.collection-list {
  grid-column-gap: 0px;
  grid-row-gap: 9vw;
  grid-template-rows: auto;
  grid-template-columns: 1fr;
  grid-auto-columns: 1fr;
  display: grid;
}

.collection-item {
  flex-direction: row;
  justify-content: flex-start;
  align-items: stretch;
  display: flex;
}

.collection-item:nth-child(2n) {
  flex-direction: row-reverse;
}

.block-image-project {
  border-radius: 10px;
  width: 100%;
  overflow: hidden;
}

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

.link-block-image-project {
  border-bottom-style: none;
  flex-direction: row;
  width: 57%;
  display: flex;
}

.block-text-project {
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  width: 43%;
  padding: 40px 6.5%;
  display: flex;
}

.link-heading-project {
  border-bottom-style: none;
  margin-bottom: 24px;
}

.project-info {
  color: #fff;
  font-family: Space Mono, sans-serif;
  font-size: 16px;
  font-weight: 500;
}

.heading-project {
  color: #fff;
  margin-bottom: 0;
  font-family: IBM Plex Mono, sans-serif;
}

.project-summary {
  color: #fff;
  margin-bottom: 24px;
  font-family: Space Mono, sans-serif;
}

.link-project {
  margin-top: 34px;
}

.empty-state {
  background-color: var(--light);
  border-radius: 5px;
  padding: 18px 28px;
  display: inline-block;
}

.text-empty {
  color: var(--heading);
}

.block-heading {
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  display: flex;
}

.heading {
  color: #fff;
  max-width: 630px;
  font-family: IBM Plex Mono, sans-serif;
  font-weight: 400;
}

.grid-services {
  grid-column-gap: 70px;
  grid-row-gap: 70px;
  grid-template-rows: auto;
  grid-template-columns: 1fr 1fr 1fr;
  width: 100%;
  margin-top: 50px;
}

.services {
  flex-direction: column;
  align-items: flex-start;
  display: flex;
}

.icon-services {
  width: 26px;
  height: 26px;
}

.icon-services-bg {
  background-color: var(--accent-1);
  border-radius: 10px;
  justify-content: center;
  align-items: center;
  width: 62px;
  height: 62px;
  margin-bottom: 26px;
  display: flex;
}

.icon-services-bg.accent-2 {
  background-color: var(--accent-2);
}

.icon-services-bg.accent-3 {
  background-color: var(--accent-3);
}

.section-footer {
  justify-content: space-between;
  align-items: center;
  margin-top: auto;
  padding: 50px 40px;
  font-family: Space Mono, sans-serif;
  font-size: 16px;
  display: flex;
}

.footer {
  flex-direction: row;
  justify-content: center;
  align-items: center;
  display: flex;
}

.link-footer {
  opacity: .5;
  color: #fff;
  border-bottom-style: none;
  margin-left: 16px;
  margin-right: 16px;
  font-size: 16px;
  font-weight: 500;
  line-height: 140%;
  transition: opacity .2s cubic-bezier(.25, .46, .45, .94);
}

.link-footer:hover {
  opacity: 1;
}

.section-banner {
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding-top: 5vw;
  padding-left: 40px;
  padding-right: 40px;
  display: flex;
}

.grid-banner {
  grid-column-gap: 0px;
  grid-row-gap: 0px;
  background-color: var(--heading);
  border-radius: 10px;
  grid-template-rows: auto;
  grid-template-columns: 1fr 1.5fr;
  width: 100%;
  overflow: hidden;
}

.block-banner-text {
  padding-top: 5vw;
  padding-bottom: 5vw;
  padding-left: 17%;
}

.heading-banner {
  color: var(--light);
  margin-bottom: 45px;
  font-family: IBM Plex Mono, sans-serif;
}

.button {
  color: var(--heading);
  background-color: #fff;
  border-bottom-style: none;
  border-radius: 10px;
  padding: 16px 38px;
  font-family: Space Mono, sans-serif;
  font-size: 18px;
  font-weight: 500;
  line-height: 140%;
  transition-property: transform, background-color;
  transition-duration: .3s, .3s;
}

.button:hover {
  background-color: var(--accent-2);
  transform: scale(.95);
}

.grid-banner-image {
  grid-column-gap: 2vw;
  grid-row-gap: 0vw;
  transform-style: preserve-3d;
  grid-template-rows: auto;
  grid-template-columns: 1fr 1fr 1fr;
  grid-auto-flow: column;
  align-items: start;
  width: 100%;
  position: absolute;
  transform: translate(10%)rotateX(34deg)rotateY(-9deg)rotateZ(26deg);
}

.grid-banner---row-1 {
  grid-column-gap: 0vw;
  grid-row-gap: 2vw;
  grid-template-rows: auto;
  grid-template-columns: 1fr;
  grid-auto-flow: row;
  transform: translate(0);
}

.image-banner {
  object-fit: cover;
  border-radius: 10px;
  width: 100%;
}

.grid-banner---row-2 {
  grid-column-gap: 0vw;
  grid-row-gap: 2vw;
  grid-template-rows: auto;
  grid-template-columns: 1fr;
  grid-auto-flow: row;
  margin-top: 120px;
}

.grid-banner---row-3 {
  grid-column-gap: 0vw;
  grid-row-gap: 2vw;
  grid-template-rows: auto;
  grid-template-columns: 1fr;
  grid-auto-flow: row;
  margin-top: 240px;
}

.block-banner-image {
  perspective: 1700px;
  flex-direction: column;
  justify-content: center;
  align-items: flex-end;
  display: flex;
  position: relative;
  transform: perspective(1000px);
}

.block-single-page {
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  width: 100%;
  margin-top: 64px;
  padding-top: 2vw;
  padding-bottom: 2vw;
  display: flex;
}

.block-single-page.center {
  text-align: center;
  align-items: center;
}

.heading-single-page {
  max-width: 850px;
}

.collection-list-wrapper-page {
  width: 100%;
}

.collection-list-page {
  grid-column-gap: 4vw;
  grid-row-gap: 5vw;
  grid-template-rows: auto auto;
  grid-template-columns: 1fr 1fr;
  grid-auto-columns: 1fr;
  align-items: start;
  display: grid;
}

.link-block-image-project-page {
  border-bottom-style: none;
  flex-direction: row;
  width: 100%;
  margin-bottom: 45px;
  display: flex;
}

.collection-item-page {
  flex-direction: column;
  align-items: flex-start;
  display: flex;
}

.collection-item-page:nth-child(2n) {
  margin-top: 5vw;
}

.link-heading-project-page {
  border-bottom-style: none;
  margin-bottom: 0;
  padding-right: 10%;
}

.main-project-image {
  object-fit: cover;
  border-radius: 10px;
  width: 100%;
  margin-top: 40px;
  margin-bottom: 2vw;
}

.block-project-description {
  width: 100%;
  margin-top: 6px;
}

.project-description {
  border-left: 1px solid var(--border);
  margin-top: 15px;
  margin-bottom: 15px;
  padding-left: 30px;
  padding-right: 80px;
  display: inline-block;
}

.heading-description {
  margin-bottom: 0;
}

.text-description {
  opacity: .5;
  color: var(--heading);
  font-size: 14px;
  font-weight: 500;
  line-height: 140%;
}

.rich-text-block {
  width: 100%;
  max-width: 780px;
  margin-top: 40px;
  margin-bottom: 1vw;
}

.grid-2-columns {
  grid-column-gap: 30px;
  grid-row-gap: 30px;
  grid-template-rows: auto;
  align-items: stretch;
  width: 100%;
}

.block-right {
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding-top: 40px;
  padding-bottom: 40px;
  padding-left: 12%;
  display: flex;
}

.image {
  object-fit: cover;
  border-radius: 10px;
  width: 100%;
  height: 100%;
}

.block-image {
  flex-direction: column;
  justify-content: center;
  align-items: stretch;
  display: flex;
}

.block-left {
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding-top: 40px;
  padding-bottom: 40px;
  padding-right: 12%;
  display: flex;
}

.paragraph {
  color: #fff;
  max-width: 600px;
  font-family: Space Mono, sans-serif;
  font-size: 16px;
  font-weight: 400;
}

.grid-clients {
  grid-column-gap: 4vw;
  grid-row-gap: 4vw;
  grid-template-rows: auto;
  grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
  align-items: center;
  width: 100%;
  margin-top: 50px;
  margin-bottom: 20px;
}

.client-logo {
  max-height: 40px;
}

.grid-contact {
  grid-column-gap: 30px;
  grid-row-gap: 30px;
  grid-template-rows: auto;
  grid-template-columns: 1fr 1fr;
  width: 100%;
  margin-top: 40px;
}

.form {
  grid-column-gap: 30px;
  grid-row-gap: 20px;
  grid-template-rows: auto auto;
  grid-template-columns: 1fr 1fr;
  grid-auto-columns: 1fr;
  justify-items: start;
  display: grid;
}

.text-field {
  border-style: none none solid;
  border-width: 1px;
  border-color: var(--border);
  color: var(--heading);
  background-color: #0000;
  height: 50px;
  margin-bottom: 0;
  padding: 15px 0;
  font-size: 18px;
  font-weight: 500;
  line-height: 140%;
  transition: border-color .3s cubic-bezier(.25, .46, .45, .94);
}

.text-field:focus {
  border-bottom-color: var(--heading);
}

.text-field::placeholder {
  color: #15141480;
}

.textarea {
  border-style: none none solid;
  border-width: 1px;
  border-color: var(--border);
  color: var(--heading);
  background-color: #0000;
  min-width: 100%;
  max-width: 100%;
  min-height: 130px;
  max-height: 400px;
  margin-bottom: 10px;
  padding: 15px 0;
  font-size: 18px;
  font-weight: 500;
  line-height: 140%;
  transition: border-color .3s cubic-bezier(.25, .46, .45, .94);
}

.textarea:focus {
  border-bottom-color: var(--heading);
}

.textarea::placeholder {
  color: #15141480;
}

.form-block {
  width: 100%;
  margin-top: 25px;
}

.block-form {
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  display: flex;
}

.success-message {
  background-color: var(--accent-2);
  text-align: left;
  border-radius: 10px;
  padding: 20px 25px;
}

.text-success {
  color: var(--heading);
  line-height: 140%;
}

.error-message {
  background-color: var(--accent-3);
  border-radius: 10px;
  padding: 20px 25px;
}

.text-error {
  color: var(--heading);
  line-height: 140%;
}

.block-contact {
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding-left: 25%;
  display: flex;
}

.text-info-contact {
  color: #1514147d;
  margin-bottom: 5px;
  font-size: 14px;
  font-weight: 500;
  line-height: 140%;
}

.heading-info-contact {
  margin-bottom: 0;
}

.contact-information {
  border-left: 1px solid var(--border);
  margin-top: 35px;
  margin-bottom: 35px;
  padding-left: 30px;
}

.utility-page-wrap {
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: 100%;
  max-height: 100%;
  margin-top: auto;
  padding-top: 100px;
  display: flex;
}

.utility-page-content {
  text-align: center;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: 300px;
  margin-bottom: 0;
  display: flex;
}

.utility-page-form {
  grid-column-gap: 18px;
  grid-row-gap: 18px;
  flex-direction: column;
  grid-template-rows: auto auto;
  grid-template-columns: 1fr;
  grid-auto-columns: 1fr;
  place-items: stretch stretch;
  display: grid;
}

.page-content {
  width: 100%;
  max-width: 780px;
}

.space {
  background-color: var(--border);
  width: 100%;
  height: 1px;
  margin-top: 80px;
  margin-bottom: 80px;
}

.grid-image-licensing {
  grid-column-gap: 12px;
  grid-row-gap: 12px;
  grid-template-rows: auto;
  grid-template-columns: 1fr 1fr 1fr;
}

.image-licensing {
  object-fit: cover;
  border-radius: 10px;
  width: 100%;
}

.grid-icon-licensing {
  grid-column-gap: 12px;
  grid-row-gap: 12px;
  grid-template-rows: auto;
  grid-template-columns: auto auto auto;
  justify-items: start;
}

.block-icon-licensing {
  display: inline-block;
}

.font {
  border: 1px solid var(--border);
  border-radius: 10px;
  align-items: center;
  margin-bottom: 15px;
  padding: 25px 40px;
  display: flex;
}

.fahkwang {
  margin-bottom: 0;
  margin-left: 40px;
}

.dm-sans {
  margin-bottom: 0;
  margin-left: 40px;
  font-family: DM Sans, sans-serif;
}

.grid-colors {
  grid-column-gap: 12px;
  grid-row-gap: 12px;
  grid-template-rows: auto;
  grid-template-columns: 1fr 1fr 1fr;
}

.block-color {
  border: 1px solid var(--border);
  background-color: var(--background);
  border-radius: 10px;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  padding: 50px 20px 20px;
  display: flex;
}

.block-color.border {
  background-color: var(--border);
}

.block-color.light {
  background-color: var(--light);
}

.block-color.accent-1 {
  background-color: var(--accent-1);
}

.block-color.accent-2 {
  background-color: var(--accent-2);
}

.block-color.accent-3 {
  background-color: var(--accent-3);
}

.block-color.shadow {
  background-color: var(--shadow);
}

.block-color.heading {
  background-color: var(--heading);
}

.block-color.paragraphs {
  background-color: var(--paragraphs);
}

.text-color {
  color: var(--heading);
  margin-bottom: 4px;
  font-size: 16px;
  font-weight: 500;
  line-height: 140%;
}

.text-color.light {
  color: var(--light);
}

.hex-color {
  color: #15141480;
  text-transform: uppercase;
  font-size: 14px;
  font-weight: 500;
  line-height: 120%;
}

.hex-color.light {
  color: #fefaf780;
}

.buttons {
  border: 1px solid var(--border);
  border-radius: 10px;
  align-items: center;
  margin-bottom: 15px;
  padding: 30px;
  display: flex;
}

.grid-buttons {
  grid-column-gap: 25px;
  grid-row-gap: 25px;
  grid-template-rows: auto;
  grid-template-columns: auto;
  grid-auto-columns: auto;
  grid-auto-flow: column;
  align-items: center;
}

.image-instructions {
  border: 1px solid var(--border);
  object-fit: cover;
  border-radius: 10px;
  width: 100%;
  margin-top: 20px;
  margin-bottom: 10px;
}

.body {
  color: #000;
  background-color: #000;
}

.heading-2, .heading-3, .heading-4 {
  color: #fff;
  font-family: IBM Plex Mono, sans-serif;
  font-weight: 300;
}

.youtube {
  flex: 0 auto;
  align-self: center;
}

.grid {
  grid-template-columns: 2.25fr 1fr;
}

.heading-5 {
  background-color: red;
}

.hero {
  align-items: center;
  padding-top: 100px;
  padding-bottom: 100px;
  display: block;
}

.flex-container {
  flex-direction: row;
  flex: 1;
  align-items: center;
  display: flex;
}

.hero-image-mask {
  width: 100%;
  margin-left: 40px;
}

.hero-image {
  object-fit: cover;
  object-position: 50% 50%;
  flex: 0 .5 auto;
  width: 100%;
  height: 100%;
}

.heading-6 {
  color: #fff;
  object-fit: fill;
  margin-top: 0;
  font-family: IBM Plex Mono, sans-serif;
  font-size: 64px;
}

.paragraph-2 {
  color: #fff;
  font-family: Space Mono, sans-serif;
}

.text-block {
  color: #fff;
  justify-content: flex-start;
  align-items: stretch;
  display: flex;
}

.feature-section {
  padding-top: 100px;
  padding-bottom: 100px;
}

.feature-image-mask {
  width: 100%;
  margin-right: 40px;
}

.feature-image {
  object-fit: contain;
  object-position: 50% 50%;
  width: 100%;
  height: 100%;
}

@media screen and (max-width: 991px) {
  h1 {
    font-size: 52px;
  }

  h2 {
    font-size: 42px;
  }

  h3 {
    font-size: 33px;
  }

  h4 {
    font-size: 26px;
  }

  h5 {
    font-size: 21px;
  }

  .transformed-hero {
    overflow: visible;
  }

  .flex-hero {
    width: 100%;
    min-height: 60vh;
    padding: 130px 10% 90px;
    position: relative;
  }

  .block-hero {
    width: 100%;
    max-width: 550px;
    margin: 0;
  }

  .heading-hero {
    font-size: 4.5vw;
  }

  .grid-hero {
    grid-column-gap: 2vw;
    grid-row-gap: 2vw;
    min-height: auto;
    margin-top: -130px;
  }

  .grid-hero---row-1 {
    grid-column-gap: 2vw;
    grid-row-gap: 2vw;
    margin-top: -7vh;
  }

  .grid-hero---row-2 {
    grid-column-gap: 2vw;
    grid-row-gap: 2vw;
    margin-top: 6vh;
  }

  .grid-hero---row-3 {
    grid-column-gap: 2vw;
    grid-row-gap: 2vw;
  }

  .grid-hero---row-4 {
    grid-column-gap: 2vw;
    grid-row-gap: 2vw;
    margin-top: 6vh;
  }

  .section {
    padding-top: 6vw;
    padding-bottom: 6vw;
  }

  .welcome {
    margin-top: 12vw;
    margin-bottom: 6vw;
  }

  .collection-list {
    grid-row-gap: 12vw;
  }

  .grid-services {
    grid-column-gap: 50px;
    grid-row-gap: 50px;
    margin-top: 40px;
  }

  .section-footer {
    padding-top: 40px;
    padding-bottom: 40px;
  }

  .section-banner {
    padding-top: 6vw;
  }

  .block-banner-text {
    padding-top: 6vw;
    padding-bottom: 6vw;
  }

  .heading-banner {
    font-size: 32px;
  }

  .block-single-page {
    margin-top: 75px;
    padding-top: 3vw;
    padding-bottom: 3vw;
  }

  .collection-list-page {
    grid-row-gap: 6vw;
  }

  .link-block-image-project-page {
    margin-bottom: 30px;
  }

  .collection-item-page:nth-child(2n) {
    margin-top: 6vw;
  }

  .main-project-image {
    margin-bottom: 3vw;
  }

  .project-description {
    padding-left: 25px;
    padding-right: 70px;
  }

  .grid-2-columns {
    grid-column-gap: 15px;
    grid-row-gap: 15px;
  }

  .block-right {
    padding-left: 8%;
  }

  .block-left {
    padding-right: 8%;
  }

  .grid-clients {
    grid-column-gap: 5vw;
    grid-row-gap: 5vw;
    grid-template-columns: 1fr 1fr 1fr;
    margin-top: 40px;
  }

  .grid-contact {
    grid-column-gap: 15px;
    grid-row-gap: 15px;
    margin-top: 75px;
    padding-top: 3vw;
    padding-bottom: 3vw;
  }

  .form {
    grid-template-columns: 1fr;
  }

  .block-contact {
    padding-left: 20%;
  }

  .contact-information {
    padding-left: 25px;
  }

  .space {
    margin-top: 70px;
    margin-bottom: 70px;
  }
}

@media screen and (max-width: 767px) {
  h1 {
    font-size: 42px;
  }

  h2 {
    font-size: 34px;
  }

  h3 {
    font-size: 27px;
  }

  h4 {
    font-size: 22px;
  }

  h5 {
    font-size: 19px;
  }

  .flex-hero {
    padding-top: 110px;
    padding-bottom: 70px;
  }

  .heading-hero {
    font-size: 6vw;
  }

  .paragraph-large {
    font-size: 18px;
  }

  .grid-links {
    margin-top: 30px;
  }

  .navbar {
    margin-top: 20px;
    margin-left: 6%;
    margin-right: 6%;
  }

  .section-hero {
    padding-top: 20px;
    padding-left: 2%;
    padding-right: 2%;
  }

  .grid-hero {
    margin-top: -110px;
  }

  .grid-hero---row-1 {
    margin-top: -5vh;
  }

  .section {
    padding: 8vw 6%;
  }

  .welcome {
    margin-top: 16vw;
    margin-bottom: 8vw;
  }

  .collection-item {
    flex-direction: column;
    grid-template-rows: auto auto;
    grid-template-columns: 1fr 1fr;
    grid-auto-columns: 1fr;
    display: block;
  }

  .collection-item:nth-child(2n) {
    flex-direction: column;
  }

  .link-block-image-project {
    width: 100%;
  }

  .block-text-project {
    width: 100%;
    padding-left: 0%;
    padding-right: 0%;
  }

  .link-project {
    margin-top: 12px;
  }

  .grid-services {
    grid-column-gap: 30px;
    grid-row-gap: 30px;
    grid-template-columns: 1fr 1fr;
  }

  .section-footer {
    flex-direction: column;
    padding: 30px 6%;
  }

  .footer {
    padding-top: 12px;
    padding-bottom: 12px;
  }

  .section-banner {
    padding-top: 8vw;
    padding-left: 2%;
    padding-right: 2%;
  }

  .grid-banner {
    grid-template-rows: auto auto;
    grid-template-columns: 1fr;
  }

  .block-banner-text {
    text-align: center;
    padding: 10vw 10% 0;
  }

  .grid-banner-image {
    place-items: start stretch;
    height: 620px;
    position: relative;
    transform: translate(0%)rotateX(34deg)rotateY(-9deg)rotateZ(17deg);
  }

  .block-single-page {
    padding-top: 6vw;
    padding-left: 4%;
    padding-right: 4%;
  }

  .collection-list-page {
    grid-row-gap: 14vw;
    grid-template-columns: 1fr;
  }

  .collection-item-page:nth-child(2n) {
    margin-top: 0;
  }

  .main-project-image {
    margin-bottom: 4vw;
  }

  .rich-text-block {
    padding-left: 4%;
    padding-right: 4%;
  }

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

  .block-right, .block-left {
    padding-left: 0%;
    padding-right: 0%;
  }

  .grid-clients {
    grid-column-gap: 6vw;
    grid-row-gap: 6vw;
    grid-template-columns: 1fr 1fr;
  }

  .grid-contact {
    grid-row-gap: 50px;
    grid-template-columns: 1fr;
    padding: 6vw 3%;
  }

  .block-contact {
    padding-left: 0%;
  }

  .contact-information {
    margin-top: 30px;
    margin-bottom: 30px;
  }

  .utility-page-wrap {
    padding-left: 6%;
    padding-right: 6%;
  }

  .grid-image-licensing, .grid-colors {
    grid-template-columns: 1fr 1fr;
  }

  .hero {
    padding: 40px 20px;
  }

  .flex-container {
    flex-direction: column;
  }

  .hero-image-mask {
    order: -1;
    margin-left: 0;
    margin-right: 0;
  }

  .feature-section {
    padding: 40px 20px;
  }

  .feature-image-mask {
    margin-right: 0;
  }

  .feature-image {
    margin-left: auto;
    margin-right: auto;
  }
}

@media screen and (max-width: 479px) {
  h1 {
    font-size: 34px;
  }

  h2 {
    font-size: 28px;
  }

  h3 {
    font-size: 23px;
  }

  h4 {
    font-size: 20px;
  }

  h5, h6 {
    font-size: 17px;
  }

  .heading-hero {
    font-size: 8vw;
  }

  .grid-services {
    grid-template-columns: 1fr;
  }

  .footer {
    flex-direction: column;
  }

  .link-footer {
    padding-top: 10px;
    padding-bottom: 10px;
  }

  .grid-banner-image {
    height: 540px;
  }

  .project-description {
    margin-top: 10px;
    margin-bottom: 10px;
    padding-right: 40px;
  }

  .grid-2-columns {
    grid-row-gap: 50px;
  }

  .block-right, .block-left {
    padding-top: 0;
    padding-bottom: 0;
  }

  .grid-clients {
    grid-column-gap: 18vw;
    grid-row-gap: 10vw;
  }

  .client-logo {
    max-height: 30px;
  }

  .font {
    flex-direction: column;
    align-items: center;
  }

  .fahkwang, .dm-sans {
    margin-top: 20px;
    margin-left: 0;
  }

  .grid-colors {
    grid-template-columns: 1fr;
  }

  .grid-buttons {
    grid-auto-flow: row;
    justify-items: center;
  }

  .hero {
    margin-top: 60px;
    margin-bottom: 140px;
  }

  .heading-6 {
    margin-top: 0;
    font-size: 40px;
  }
}


