/* ===== Background blur =====*/
.bg-blur {
  background-image: url(assets/02-applied_learning-bg-1920.jpg);
  width: 100vw;
  height: 100dvh;
  background-size: cover;
  background-position: center;
  display: flex;
  justify-content: center;
  align-items: flex-start;
}

/* ===== Main content area ===== */
.main {
  background-image: url(assets/02-applied_learning-kv-1920.jpg);
  background-size: cover;
  background-position: center;
  width: 100%;
  position: relative;
  height: calc(100vw * (9 / 16));
  max-width: calc(100dvh * (16 / 9));
  max-height: 100dvh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* ===== Wooden frame ===== */
.frame {
  position: absolute;
  width: 48.65%;
  height: 80.19%;
  left: 3.13%;
  top: 7.22%;
  background-color: white;
  border-radius: 2.5%;
  z-index: 1;
  transform: translateX(0%);
  transition: transform 0.3s;
  transition-timing-function: cubic-bezier(1, -0.46, 0.295, 1.65);
}
.frame::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: white;
  border-radius: inherit;
  z-index: -1;
}
.frame::before {
  content: '';
  position: absolute;
  top: -1.5%;
  left: -1.5%;
  right: -1.5%;
  bottom: -1.5%;
  border-radius: 3.5%;
  background-image: url('assets/wood-texture@3x.png');
  background-repeat: repeat;
  background-size: auto;
  pointer-events: none;
  z-index: -2;
}

/* ===== content container (scrollable) ===== */
.frame-content {
  height: 100%;
  padding: 20px;
  overflow: auto;
  display: flex;
  flex-direction: column;
  gap: 32px;
}

section {
  display: flex;
  flex-direction: column;
}

.page-info {
  gap: 12px;
}

.page-title h1 {
  color: var(--theme-1);
  font-size: 42px;
  font-family: 'roboto', 'Noto Sans HK';
  font-weight: 500;
  line-height: 64px;
}

.page-info p {
  color: var(--dark-gray);
  font-size: 16px;
  font-family: 'roboto', 'Noto Sans HK';
  font-weight: normal;
  line-height: 24px;
}

.page-section {
  display: flex;
  flex-direction: row;
  gap: 12px;
}

.page-section svg {
  width: 32px;
  fill: var(--theme-1);
}
.page-section p {
  color: var(--theme-1);
  font-size: 18px;
  font-family: 'roboto', 'Noto Sans HK';
  font-weight: 500;
  line-height: 28px;
}

/* ===== cohort select button  ===== */
.cohorts-select {
  flex-direction: row;
  flex-wrap: wrap;
  /* try to fill the button height as large as possible */
  height: -moz-available;
  height: -webkit-fill-available;
  height: fill-available;
}

/* ===== cohort select button > outer shadow ===== */
.cohort-select-btn {
  display: flex;
  width: 33%;
  padding: 1.2%;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  flex-shrink: 0;
  border-radius: 24px;
  background: linear-gradient(180deg, #f5f5f5 0%, #fff 100%);
  cursor: pointer;
}

/* ===== cohort select button > button edge ===== */
.cohort-select-btn-inner {
  height: 100%;
  display: flex;
  padding: 8px;
  position: relative;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  border-radius: 12px;
  background-blend-mode: multiply, normal;
  box-shadow: 0px 4px 8px 0px rgba(0, 0, 0, 0.4);
  transition: box-shadow 0.1s, padding 0.1s;
}

/* ===== cohort select button > button edge > color control ===== */
.red {
  background: var(--red_cohort), linear-gradient(180deg, #e9e9e9 0%, #fff 100%);
}
.yellow {
  background: var(--yellow_cohort), linear-gradient(180deg, #e9e9e9 0%, #fff 100%);
}
.blue {
  background: var(--blue_cohort), linear-gradient(180deg, #e9e9e9 0%, #fff 100%);
}

/* ===== cohort select button > button surface ===== */
.cohort-select-btn-inner > div {
  height: 100%;
  display: flex;
  position: relative;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 4.88%;
  width: 100%;
  border-radius: 12px;
  background-blend-mode: multiply, normal;
}
/* ===== cohort select button > button surface > color control ===== */
.red > div {
  background: var(--red_cohort), linear-gradient(180deg, #fff 0%, #e9e9e9 100%);
}
.yellow > div {
  background: var(--yellow_cohort), linear-gradient(180deg, #fff 0%, #e9e9e9 100%);
}
.blue > div {
  background: var(--blue_cohort), linear-gradient(180deg, #fff 0%, #e9e9e9 100%);
}

/* ===== cohort select button > icon ===== */
.cohort-select-btn-inner > div svg {
  width: 17.3%;
  min-width: 22px;
  fill: white;
  -webkit-filter: drop-shadow(0px 4px 8px rgba(0, 0, 0, 0.4));
  filter: drop-shadow(0px 4px 8px rgba(0, 0, 0, 0.4));
  transition: transform 0.1s;
  padding-top: 10px; /* preserve space on smallest button size */
}
/* ===== cohort select button > text ===== */
.cohort-select-btn-inner > div p {
  font-size: 2.42vw;
  font-family: 'roboto', 'Noto Sans HK';
  text-align: center;
  font-weight: bold;
  color: white;
  text-shadow: 0px 4px 8px rgba(0, 0, 0, 0.4);
  transition: transform 0.1s;
  padding-bottom: 10px; /* preserve space on smallest button size */
}

/* ===== cohort select button > hover animation ===== */
.cohort-select-btn-inner:hover {
  padding: 4px;
  box-shadow: 0px 0px 1px 2px rgba(0, 0, 0, 0.4);
}

.cohort-select-btn-inner:hover > div {
  background: rgba(0, 0, 0, 0.1);
}

.cohort-select-btn-inner:hover > div > svg,
.cohort-select-btn-inner:hover > div > p {
  transform: translateY(4px);
}

/* ===== Navigation bar frame ===== */
.navbar-apl-lobby {
  display: flex;
  /* gap: 2.11%; */
  height: 7.78%;
  min-width: 29.32%;
  border-image-slice: 80 80 80 80 fill;
  border-image-width: 20% 2% 20% 2%;
  border-image-outset: 0px 0px 0px 0px;
  border-image-repeat: stretch stretch;
  border-image-source: url('assets/nav-bg-5.png');
  border-style: solid;
  padding: 0 1.04%;
  margin-top: auto;
  margin-bottom: 1.22%;
}
.navbar-apl-lobby a {
  height: 100%;
  display: flex;
  width: fit-content;
  justify-content: center;
  align-items: center;
}
.spacer{
  width:  2.11%;
}

/* ===== navigation bar buttons ===== */

.nav-btn {
  height: 82.1%;
  width: auto;
}

/* ===== hover area ===== */
#hover-main {
  position: absolute;
  top: 24.77%;
  right: 23.67%;
  opacity: 0;
  transition: opacity 0.1s;
}

#hover-apl_rc {
  position: absolute;
  top: 13.1%;
  right: 10.21%;
  opacity: 0;
  transition: opacity 0.1s;
}

#hover-info {
  position: absolute;
  top: 4.44%;
  right: 0.03%;
  opacity: 0;
  transition: opacity 0.1s;
}

#hover-main:hover,
#hover-apl_rc:hover,
#hover-info:hover {
  opacity: 1;
}

/* ===== tooltip ===== */
#tooltip-main,
#tooltip-apl_rc,
#tooltip-info {
  position: absolute;
  display: none;
  z-index: 999;
}

.pre-load {
  transform: translateX(-110%);
}
