/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/page.module.scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.page_page__9A_cN {
  position: relative;
  width: 100%;
  min-height: 100dvh;
}
.page_page__wrap__UIegS {
  display: none;
}
.page_page__9A_cN {
  /* ----------------------------------
     Background wrapper
  ---------------------------------- */
}
.page_page__wrapper___X5Y5 {
  width: 100dvw;
  height: 100dvh;
  position: fixed;
  top: 0;
  left: 0;
  overflow: hidden;
  background-color: transparent;
  color: #fff;
}
.page_page__wrapper__bg__f31Ly {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  scale: 1.05;
  will-change: transform;
  transform-origin: center;
  background-color: var(--foreground);
}
.page_page__overlay__XYpud {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -webkit-backdrop-filter: blur(100px);
  backdrop-filter: blur(100px);
  background-color: rgba(32, 33, 35, 0.5);
  pointer-events: none;
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  will-change: backdrop-filter, -webkit-backdrop-filter;
}
.page_page__9A_cN {
  /* ----------------------------------
     Description block
  ---------------------------------- */
}
.page_page__description__zdwhs {
  position: fixed;
  padding: 1rem;
  z-index: 2;
  top: 0;
  left: 0;
  text-align: justify;
  font-size: clamp(1rem, 1.5vw, 1.5rem);
  line-height: 1.5;
  opacity: 0;
}
.page_page__9A_cN {
  /* ----------------------------------
     Project info bar
  ---------------------------------- */
}
.page_page__project__NylIN {
  position: fixed;
  padding: 1rem;
  z-index: 2;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: fit-content;
  opacity: 0;
  pointer-events: none;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: center;
  -webkit-backdrop-filter: blur(0px);
          backdrop-filter: blur(0px);
  transition: all ease 0.3s;
  cursor: pointer;
}
.page_page__project__NylIN:hover, .page_page__project--hovered__d9f2j {
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  background-color: rgba(32, 33, 35, 0.2);
}
.page_page__project__NylIN:hover .page_page__project__link__button__wIy9M, .page_page__project--hovered__d9f2j .page_page__project__link__button__wIy9M {
  gap: 1.25rem;
  opacity: 0.85;
}
@media (max-width: 768px) {
  .page_page__project__NylIN {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
  }
}
.page_page__project__title__zs88C {
  opacity: 1;
}
.page_page__project__link__R_g4D {
  display: flex;
  justify-content: center;
}
.page_page__project__link__button__wIy9M {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  transition: gap 0.3s ease-in-out, opacity 0.2s ease;
}
@media (max-width: 768px) {
  .page_page__project__link__button__wIy9M span {
    display: none;
  }
}
@media (max-width: 768px) {
  .page_page__project__category__6tllS {
    text-align: right;
  }
}
.page_page__project__year__SPR1v {
  text-align: right;
}
@media (max-width: 768px) {
  .page_page__project__year__SPR1v {
    display: none;
  }
}
.page_page__project__index__VWLNJ {
  text-align: right;
}
@media (max-width: 768px) {
  .page_page__project__index__VWLNJ {
    display: none;
  }
}
.page_page__9A_cN {
  /* ----------------------------------
     Mouse-follower label
  ---------------------------------- */
}
.page_page__follower__51Trl {
  position: fixed;
  top: 0;
  left: 0;
  pointer-events: none;
  z-index: 10;
  opacity: 0;
  white-space: nowrap;
  will-change: transform, opacity;
}
.page_page__9A_cN {
  /* ----------------------------------
     3D canvas container
  ---------------------------------- */
}
.page_page__container__rpvHF {
  width: 100dvw;
  height: 100dvh;
  position: fixed;
  top: 0;
  left: 0;
  overflow: hidden;
  /* pointer-events: none; */
  opacity: 0;
  perspective: 1000px;
  transform-style: preserve-3d;
  will-change: transform, opacity;
}

/* ----------------------------------
   Keyframes
---------------------------------- */
@keyframes page_bgDrift__5hefT {
  0% {
    transform: rotate(0deg) translateX(0%) translateY(0%);
  }
  25% {
    transform: rotate(1deg) translateX(2%) translateY(-1.5%);
  }
  50% {
    transform: rotate(0deg) translateX(-2%) translateY(1.5%);
  }
  75% {
    transform: rotate(-1deg) translateX(1.5%) translateY(-2%);
  }
  100% {
    transform: rotate(0deg) translateX(0%) translateY(0%);
  }
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/Header/Header.module.scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.Header_header__1RJ5C {
  position: fixed;
  top: 1rem;
  left: 0;
  z-index: 10000000;
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  column-gap: 20px;
  row-gap: 20px;
  padding-left: 20px;
  padding-right: 20px;
  box-sizing: border-box;
  width: 100%;
}
@media (max-width: 768px) {
  .Header_header__1RJ5C {
    padding-left: 10px;
    padding-right: 10px;
  }
}
.Header_header__identity__uTTmE {
  grid-column: 1/span 3;
}
.Header_header__role__LFs_H {
  grid-column: 4/span 4;
}
@media (max-width: 768px) {
  .Header_header__role__LFs_H {
    grid-column: 4/span 5;
  }
}
.Header_header__role__job__aGegK, .Header_header__role__available__cFhUC {
  margin: 0;
}
.Header_header__location__WzJul {
  grid-column: 9/13;
  text-align: right;
  display: flex;
  flex-direction: column;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ProjectList/ProjectList.module.scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.ProjectList_list__2IUfb {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 100;
  overflow-y: auto;
  flex-direction: column;
  padding: 4rem 0rem 6rem;
  background-color: rgba(32, 33, 35, 0.96);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}
@media (max-width: 768px) {
  .ProjectList_list__2IUfb {
    padding: 5rem 0rem 8rem;
  }
}
.ProjectList_list__bg_container__8WAQ6 {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
  background-color: #202123;
}
@media (max-width: 768px) {
  .ProjectList_list__bg_container__8WAQ6 {
    display: none;
  }
}
.ProjectList_list__bg_layer__WT1QO {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  will-change: opacity;
}
.ProjectList_list__bg_overlay__UlZ2O {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  -webkit-backdrop-filter: blur(100px);
  backdrop-filter: blur(100px);
  background-color: rgba(32, 33, 35, 0.5);
}
.ProjectList_list__preview__LI193 {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0.9);
  width: 40vw;
  aspect-ratio: 16/10;
  z-index: 1;
  pointer-events: none;
  opacity: 0;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.4s ease;
  overflow: hidden;
}
.ProjectList_list__preview__layer__POl32 {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  will-change: opacity;
}
.ProjectList_list__preview--active___mtF6 {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}
@media (max-width: 768px) {
  .ProjectList_list__preview__LI193 {
    display: none;
  }
}
.ProjectList_list__wrapper___bequ {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  width: 100%;
  box-sizing: border-box;
}
.ProjectList_list__wrapper___bequ::before, .ProjectList_list__wrapper___bequ::after {
  content: "";
  flex: 1 1;
  min-height: 4rem;
}
@media (max-width: 768px) {
  .ProjectList_list__wrapper___bequ::after {
    min-height: 10rem;
  }
}
.ProjectList_list__item__lMNaw {
  position: relative;
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  column-gap: 20px;
  row-gap: 20px;
  padding-top: 8px;
  padding-bottom: 8px;
  padding-left: 20px;
  padding-right: 20px;
  box-sizing: border-box;
  width: 100%;
  cursor: pointer;
  transition: background-color 0.2s ease;
  background-color: rgba(32, 33, 35, 0);
}
.ProjectList_list__item__lMNaw:hover {
  background-color: rgba(32, 33, 35, 0.05);
  -webkit-backdrop-filter: blur(20px);
          backdrop-filter: blur(20px);
  z-index: 2;
}
@media (max-width: 768px) {
  .ProjectList_list__item__lMNaw {
    display: grid;
    grid-template-columns: 2rem 1fr auto;
    grid-template-rows: auto auto;
    column-gap: 10px;
    row-gap: 2px;
    padding: 12px 16px;
    align-items: start;
    border-bottom: 1px solid rgba(244, 244, 246, 0.06);
  }
  .ProjectList_list__item__lMNaw:last-child {
    border-bottom: none;
  }
  .ProjectList_list__item__lMNaw:active {
    background-color: rgba(244, 244, 246, 0.04);
  }
}
.ProjectList_list__item__index__EQFxi {
  opacity: 0.3;
  font-size: 11px;
  grid-column: 1/span 1;
  align-self: center;
}
@media (max-width: 768px) {
  .ProjectList_list__item__index__EQFxi {
    display: flex;
    align-items: center;
    grid-column: 1;
    grid-row: 1/span 2;
    align-self: center;
    font-size: 10px;
  }
}
.ProjectList_list__item__info__2kU39 {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 0;
}
.ProjectList_list__item__title__3yiVm {
  grid-column: 2/span 3;
  opacity: 1;
}
@media (max-width: 768px) {
  .ProjectList_list__item__title__3yiVm {
    grid-column: 2;
    grid-row: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}
.ProjectList_list__item__category__fhJQw {
  grid-column: 5/span 1;
}
@media (max-width: 768px) {
  .ProjectList_list__item__category__fhJQw {
    grid-column: 2;
    grid-row: 2;
    font-size: 10px;
    opacity: 0.45;
  }
}
.ProjectList_list__item__tools__MUyh8 {
  grid-column: 7/span 4;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
@media (max-width: 768px) {
  .ProjectList_list__item__tools__MUyh8 {
    display: none;
  }
}
.ProjectList_list__item__year__SW8IH {
  grid-column: 12/span 1;
  font-size: 11px;
  text-align: right;
  align-self: center;
}
@media (max-width: 768px) {
  .ProjectList_list__item__year__SW8IH {
    grid-column: 3;
    grid-row: 1/span 2;
    align-self: center;
    font-size: 10px;
    opacity: 0.45;
  }
}
.ProjectList_list__overlay__SVY6Q {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 100;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(32, 33, 35, 0) 0%, rgba(32, 33, 35, 0) 85%, rgb(32, 33, 35) 90%, rgb(32, 33, 35) 100%);
}
@media (max-width: 768px) {
  .ProjectList_list__overlay__SVY6Q {
    display: block;
  }
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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);
  }
}
