:root {
    --perspective: 1500px;
    --grid-item-ratio: 1.5;
    --grid-width: 100%;
    --grid-height: auto;
    --grid-gap: 2vw;
    --grid-columns: 4;
    --grid-inner-scale: 1;
}

.content--spacing {
    margin-bottom: 10vh;
}

.content__title {
    position: absolute;
    height: 100vh;
    width: 100vw;
    top: 50%;
    left: 50%;
    margin: -50vh 0 0 -50vw;
    padding: 0 10vw;
    display: grid;
    place-items: center;
    text-align: center;
    font-size: clamp(1.5rem, 15vw, 6.5rem);
}

.content__title--left {
    justify-items: start;
    text-align: left;
}

.content__title--bottom {
    align-items: end;
}

.grid {
    display: grid;
    place-items: center;
    padding: 2rem;
    width: 100%;
    perspective: var(--perspective);
}

.grid-wrap {
    height: var(--grid-height);
    width: var(--grid-width);
    display: grid;
    grid-template-columns: repeat(var(--grid-columns),1fr);
    gap: var(--grid-gap);
    transform-style: preserve-3d;
}

.grid__item {
    aspect-ratio: var(--grid-item-ratio);
    width: 100%;
    height: auto;
    overflow: hidden;
    position: relative;
    border-radius: 8px;
    display: grid;
    place-items: center;
    
}

.grid__item-inner {
    position: relative;
    width: calc(1 / var(--grid-inner-scale) * 100%);
    height: calc(1 / var(--grid-inner-scale) * 100%);
    background-size: cover;
    background-position: 50% 50%;
      animation: floatXY 8s ease-in-out infinite;
}

.grid__item-inner video {
  width: 100%;
  height: 100%;
  object-fit: cover; /* ako background-size: cover */
  display: block;

}

@keyframes floatXY {
  0%   { transform: translate(0, 0); }
  25%  { transform: translate(2%, -2%); }
  50%  { transform: translate(0, -2%); }
  75%  { transform: translate(-2%, 2%); }
  100% { transform: translate(0, 0); }
}