html {
  overflow-x: hidden;
  max-width: 100vw;
}

body {
  background-color: var(--color-bg-level0);
  display: flex;
  align-items: center;
  max-width: 100vw;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: #3c3c3c var(--color-bg-level1);
}

body::-webkit-scrollbar {
  width: 12px;
}
body::-webkit-scrollbar-track {
  background: var(--color-bg-level1);
}
body::-webkit-scrollbar-thumb {
  background-color: #3c3c3c;
  border-radius: 20px;
  border: 2px solid var(--color-bg-level1);
}

main {
  max-width: 1440px;
  width: 100%;
  padding: var(--space-one-and-half);
}

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

nav a {
  padding: var(--space-half) var(--space-one);
  font-size: 18px;
  color: var(--color-content-subtle);
  text-decoration: none;
  transition: color 0.2s ease;
}

nav a:last-child {
  padding: var(--space-half) 0 var(--space-half) var(--space-one);
}

nav a:hover {
  color: var(--color-content-contrast);
}

.header {
  position: relative;
  margin-top: var(--space-two);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.header svg,
.header > div {
  transform-origin: center;
  transition: opacity 0.75s ease-out, transform 0.75s ease-out;
  opacity: 1;
}

.header svg:hover,
.header > div:hover {
  transform: scale3d(0.99, 0.99, 0.99);
  opacity: 0.9;
}

.header-polygon-1 {
  position: absolute;
  top: 450px;
  left: -50px;
}

.header-polygon-2 {
  position: absolute;
  top: 225px;
  left: 400px;
}

.header-polygon-3 {
  position: absolute;
  top: 45px;
  left: 250px;
}

.header-polygon-4 {
  position: absolute;
  top: 5px;
  right: 40px;
  z-index: 3;
}

.header-polygon-5 {
  position: absolute;
  bottom: 47px;
  right: 375px;
}

.header-polygon-6 {
  position: absolute;
  top: 225px;
  right: -40px;
}

.header-polygon-7 {
  position: absolute;
  bottom: -175;
  right: -22px;
}

.header-polygon-8 {
  position: absolute;
  top: 0;
  right: -20px;
}

.header-polygon-9 {
  position: absolute;
  bottom: -72px;
  right: -72px;
}

.header-polygon-10 {
  position: absolute;
  top: 110px;
  left: -53px;
}

.header-left-image {
  background-image: url("../imgs/left.png");
  background-size: cover;
  background-repeat: no-repeat;
  clip-path: url(#leftPath);
  z-index: 2;
}

.header-right-image {
  background-image: url("../imgs/right.png");
  background-size: cover;
  background-repeat: no-repeat;
  clip-path: url(#rightPath);
  opacity: 0.6;
  z-index: 2;
}

.tagline__wrapper {
  margin-left: var(--space-four);
}

.tagline {
  color: var(--color-base-white);
}

.tagline > span {
  display: block;
}

.link-blocks {
  display: flex;
  justify-content: space-around;
  margin-top: var(--space-four);
  margin-bottom: 20rem;
}

.link-block-container {
  position: relative;
}

.link-block-container:nth-child(2) {
  transform: translateY(8rem);
}

.link-block {
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-items: center;
  height: 300px;
  width: 280px;
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  background-color: rgba(60, 60, 60, 0.3);
  text-decoration: none;
  transition: background-color 0.2s ease;
  position: relative;
  overflow: visible;
  z-index: 9;
  transform-style: preserve-3d;
  transform: perspective(300px);
}

.link-block > svg {
  fill: var(--color-content-contrast);
  transition: fill 0.2s ease;
}

.link-block > .uni-text {
  transition: color 0.2s ease;
  transform: translateZ(20px);
}

.link-block:hover {
  background-color: rgba(60, 60, 60, 0.6);
}

.link-block:hover svg {
  fill: var(--color-base-white);
}

.link-block:hover .uni-text {
  color: var(--color-content-contrast);
}

.uniform-polygon-1,
.uniform-polygon-1a {
  position: absolute;
  left: -62px;
  top: 18px;
}

.uniform-polygon-1a {
  opacity: 0;
  transition: opacity 0.4s ease;
  left: -60px;
}

.link-block-container:hover .uniform-polygon-1a {
  opacity: 1;
  animation: switch 3s infinite ease alternate;
}

@keyframes switch {
  25% {
    transform: translate3d(-10px, 24px, 0);
  }

  75% {
    transform: translate3d(10px, -24px, 0);
  }
}

.uniform-polygon-2 {
  position: absolute;
  left: -132px;
  top: 200px;
  transform: rotateY(-180deg);
}

.writing-polygon-1 {
  position: absolute;
  right: 0;
  top: 18px;
}

.writing-polygon-1 path {
  stroke-dasharray: 0;
  stroke-dashoffset: 0;
  transition: stroke-dashoffset 0.5s ease, stroke-width 0.5s ease;
}

.link-block-container:hover .writing-polygon-1 path {
  stroke-dasharray: 500;
  stroke-width: 2;
  animation: dash 3s infinite ease-in-out alternate;
}

@keyframes dash {
  from {
    fill-opacity: 0;
    stroke-dashoffset: 0;
  }
  to {
    fill-opacity: 0.5;
    stroke-dashoffset: 500;
  }
}

.writing-polygon-2 {
  position: absolute;
  left: -96px;
  bottom: -60px;
}

.brand-polygon-1 {
  position: absolute;
  right: 20px;
  bottom: 12px;
  transition: transform 0.5s ease;
}

.link-block-container:hover .brand-polygon-1 {
  animation: switch2 3s infinite ease alternate;
  stroke-width: 2px;
}

.brand-polygon-2 {
  position: absolute;
  right: 72px;
  bottom: 4px;
  transition: transform 0.5s ease;
}

.link-block-container:hover .brand-polygon-2 {
  animation: switch1 3s infinite ease alternate;
}

@keyframes switch1 {
  to {
    transform: translate3d(3rem, -1.5rem, 20rem) scale(1.5);
  }
}

@keyframes switch2 {
  to {
    transform: translate3d(-3rem, 1rem, 0) scale(0.5);
  }
}

.brand-polygon-3 {
  position: absolute;
  left: -128px;
  top: -72px;
}

footer {
  display: flex;
  justify-content: space-between;
  margin-top: var(--space-four);
  padding: var(--space-one-and-quarter) 0 var(--space-one) 0;
  border-top: 1px solid var(--color-bg-level0-accent);
}

.footer__left {
  display: flex;
}

.footer__logo {
  fill: var(--color-brand-orange);
  margin-right: var(--space-half);
  margin-top: -1px;
}

.footer__icon {
  fill: var(--color-content-nonessential);
  transition: fill 0.2s cubic-bezier(0.445, 0.05, 0.55, 0.95);
  height: 16px;
  width: 16px;
}

.footer__icon:hover {
  fill: var(--color-content-subtle);
}

.footer__copyright {
  display: inline;
}

@media screen and (max-width: 450px) {
  nav a {
    font-size: 16px;
    padding: var(--space-half);
  }

  nav a:last-child {
    padding: var(--space-half) 0 var(--space-half) var(--space-half);
  }

  .header-polygon-7 {
    display: none;
  }

  footer {
    flex-direction: column;
  }

  .footer__right {
    margin-top: var(--space-one);
  }

  .footer__logo {
    display: none;
  }
}

@media screen and (max-width: 480px) {
  .tagline > span {
    display: inline;
  }
}

@media screen and (max-width: 580px) {
  .header-right-image {
    background-position-x: -180px;
  }

  .logo__design-word {
    display: none;
  }
}

@media screen and (max-width: 680px) {
  .writing-polygon-2 {
    display: none;
  }

  .uniform-polygon-2 {
    display: none;
  }

  .brand-polygon-3 {
    display: none;
  }
}

@media screen and (max-width: 740px) {
  .tagline__wrapper {
    margin-left: 0;
  }
}

@media screen and (max-width: 780px) {
  .header-polygon-2 {
    display: none;
  }

  .footer__copyright {
    margin-left: 0;
    display: block;
  }
}

@media screen and (max-width: 940px) {
  .link-blocks {
    flex-direction: column;
    margin-bottom: 10rem;
  }

  .link-block-container {
    transform: translateX(3rem);
  }

  .link-block-container:nth-child(2) {
    transform: translateX(-3rem);
    align-self: flex-end;
  }

  .link-block-container:nth-child(3) {
    align-self: flex-start;
  }
}

@media screen and (max-width: 1000px) {
  .header-polygon-9 {
    display: none;
  }
}

@media screen and (max-width: 1300px) {
  .header-polygon-2 {
    left: 0;
  }

  .header-polygon-9,
  .header-left-image > svg {
    display: none;
  }
}
