/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[7].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[7].use[3]!./node_modules/next/dist/build/webpack/loaders/resolve-url-loader/index.js??ruleSet[1].rules[15].oneOf[7].use[4]!./node_modules/next/dist/compiled/sass-loader/cjs.js??ruleSet[1].rules[15].oneOf[7].use[5]!./app/lab/page.module.scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.page_lab__3EZtY {
  width: 100%;
  height: 100vh;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[7].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[7].use[3]!./node_modules/next/dist/build/webpack/loaders/resolve-url-loader/index.js??ruleSet[1].rules[15].oneOf[7].use[4]!./node_modules/next/dist/compiled/sass-loader/cjs.js??ruleSet[1].rules[15].oneOf[7].use[5]!./components/InfiniteCanvas/InfiniteCanvas.module.scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.InfiniteCanvas_wrapper__gs_P9 {
  position: relative;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  cursor: grab;
}
.InfiniteCanvas_wrapper__gs_P9:active {
  cursor: grabbing;
}

.InfiniteCanvas_container__jLnNv {
  position: absolute;
}

.InfiniteCanvas_row__0y_Aj {
  position: absolute;
}

.InfiniteCanvas_sliderImage__7oK5T {
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
  cursor: grab;
  background-size: cover;
  background-position: center;
  border-radius: 5px;
}
@media (max-width: 768px) {
  .InfiniteCanvas_sliderImage__7oK5T {
    border-radius: 10px;
  }
}
.InfiniteCanvas_sliderImage__7oK5T:active {
  cursor: grabbing;
}
.InfiniteCanvas_sliderImage__7oK5T:hover .InfiniteCanvas_cellTitle__I4cn_ {
  opacity: 1;
  transform: translateY(0);
}
.InfiniteCanvas_sliderImage__7oK5T video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  pointer-events: none;
}
@media (max-width: 768px) {
  .InfiniteCanvas_sliderImage__7oK5T video {
    pointer-events: auto; /* Required for controls to work */
    touch-action: pan-y; /* Allows vertical scrolling if needed, or set to none */
  }
}

.InfiniteCanvas_cellVideo__FlYiK {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  pointer-events: none;
}

.InfiniteCanvas_cellTitle__I4cn_ {
  position: absolute;
  bottom: 0;
  left: 0;
  padding: 12px 16px;
  color: #fff;
  font-size: 0.85rem;
  letter-spacing: 0.08em;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity 0.25s ease, transform 0.25s ease;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.65) 0%, transparent 100%);
  width: 100%;
  pointer-events: none;
}

.InfiniteCanvas_mask__rH_ao {
  position: absolute;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 9999;
  pointer-events: none;
}

.InfiniteCanvas_overlay__oZI_6 {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  z-index: 100;
  cursor: pointer;
}

.InfiniteCanvas_lightbox__akCTM {
  position: fixed;
  z-index: 10000;
  overflow: hidden;
  cursor: default;
}
.InfiniteCanvas_lightbox__akCTM video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.InfiniteCanvas_lightboxImage__ho3Ty {
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[7].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[7].use[3]!./node_modules/next/dist/build/webpack/loaders/resolve-url-loader/index.js??ruleSet[1].rules[15].oneOf[7].use[4]!./node_modules/next/dist/compiled/sass-loader/cjs.js??ruleSet[1].rules[15].oneOf[7].use[5]!./components/Loader/Loader.module.scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.Loader_overlay__Tc4XU {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: var(--foreground);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 1;
  transition: opacity 0.6s ease;
}
.Loader_overlay__Tc4XU.Loader_exit__krX2P {
  opacity: 0;
  pointer-events: none;
}

.Loader_wrapper__2uUcq {
  padding: 0.5rem;
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.Loader_wrapper__item___WIfB {
  width: 33.3333333333%;
}
.Loader_wrapper__item___WIfB:nth-child(2) {
  display: flex;
  justify-content: center;
}
.Loader_wrapper__text__vFo_w {
  color: var(--background);
  line-height: 1;
}
.Loader_wrapper__text_right__valtm {
  text-align: right;
}

.Loader_bracket___y143 {
  display: inline-flex;
  align-items: center;
  gap: 0.15em;
  font-family: "Courier New", Courier, monospace;
  font-size: clamp(1.5rem, 4vw, 2.5rem);
  letter-spacing: 0.1em;
  color: var(--background);
}

.Loader_bracketLeft__UDOBz,
.Loader_bracketRight__h2EXm {
  color: var(--background);
}

.Loader_dot__Ye8js {
  animation: Loader_pulse__f3j83 1s ease-in-out infinite;
  display: inline-block;
}

@keyframes Loader_pulse__f3j83 {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.1;
    transform: scale(0.5);
  }
}
