@import url('https://fonts.googleapis.com/css?family=Montserrat:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i&family=Lora:ital,wght@0,400..700;1,400..700');
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@100;300;400;500;700;900&family=Noto+Serif+TC:wght@200;300;400;500;600;700;900&display=swap");

.cofo-raffine-regular {
  font-family: "cofo-raffine", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.cofo-raffine-bold {
  font-family: "cofo-raffine", sans-serif;
  font-weight: 900;
  font-style: normal;
}

body {
  overflow-x: hidden;
  -webkit-transition: all 300ms linear;
  transition: all 300ms linear;
}

/*LOAD*/
.loading {
  width: 100%;
  height: 100%;
  position: fixed;
  left: 0;
  top: 0;
  background-color: #fff;
}


/* Loading Screen */
.loading {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 99999;
  background: transparent;
}

/* 上下遮罩 */
.loading-top,
.loading-bottom {
  position: absolute;
  left: 0;
  width: 100%;
  background: #897e79;
  /* 深色遮罩 */
  z-index: 2;
}

.loading-top {
  top: 0;
  height: 50%;
}

.loading-bottom {
  bottom: 0;
  height: 50%;
}

/* 跑條 */
.loading-bar-container {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 100%;
  height: 2px;
  background: rgba(0, 0, 0, 0.1);
  overflow: hidden;
  z-index: 3;
}

.loading-bar {
  width: 0%;
  height: 100%;
  background: linear-gradient(90deg, #fff, #fff);
  /* 淡色系漸層 */
  /*transition: width 0.5s linear;*/
}

.loading-title {
  position: absolute;
  top: calc(50% - 30px);
  left: 50%;
  transform: translateX(-50%);
  color: #fff;
  /* loading文字改白色 */
  font-family: "cofo-raffine", serif;
  font-weight: 400;
  font-size: 2rem;
  text-transform: uppercase;
  letter-spacing: 0.5rem;
  z-index: 3;
}

.loading-percentage {
  position: absolute;
  bottom: 2%;
  left: 5%;
  font-family: "cofo-raffine";
  font-weight: 400;
  color: #fff;
  /* loading文字改白色 */
  font-size: 10vw;
  line-height: 12vw;
  letter-spacing: 0.5rem;
  z-index: 3;
}

.loading-enter-wrap {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  z-index: 5;
  color: #fff;
  display: none;
  opacity: 0;
}

.loading-enter-text {
  margin-bottom: 24px;
}

.loading-enter-text .en {
  font-family: "Lora", "Montserrat", sans-serif;
  font-size: 36px;
  font-weight: 400;
  letter-spacing: 0.1em;
  margin-bottom: 0px;
}

.loading-enter-text .tw {
  font-family: "Noto Serif TC", sans-serif;
  font-size: 24px;
  font-weight: 300;
  letter-spacing: 0.2em;
}

.loading-enter-btn {
  background: transparent;
  border: none;
  color: #fff;
  font-family: "Noto Serif TC", sans-serif;
  font-size: 19px;
  letter-spacing: 0.2em;
  line-height: 24px;
  padding: 0px 0px 8px 0;
  cursor: pointer;
  /* transition: all 0.5s ease; */
  width: 110px;
  position: relative;
}

.loading-enter-btn:hover {
  /* No color invert as requested */
}

.loading-enter-btn .text-en {
  font-family: "Lora", "Montserrat", sans-serif;
  display: inline-block;
  opacity: 1;
  transition: opacity 0.5s ease;
  text-align: start;
}

.loading-enter-btn .text-tw {
  font-weight: 300;
  position: absolute;
  top: 40%;
  left: 50%;
  transform: translate(-50%, -50%);
  opacity: 0;
  transition: opacity 0.5s ease;
}

.loading-enter-btn:hover .text-en {
  /* opacity: 0; */
}

.loading-enter-btn:hover .text-tw {
  opacity: 1;
}

.loading-enter-line {
  position: absolute;
  left: 15px;
  bottom: 0;
  width: 80px;
  height: 3px;
  overflow: hidden;
  transition: width 0.4s ease;
}

.loading-enter-line .line-ani {
  position: absolute;
  top: 0;
  right: 0;
  width: 200px;
  height: 3px;
}

.loading-enter-btn:hover .loading-enter-line {
  width: 103.5px;
}

.loading-enter-line .line-ani img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.loading-icon {
  position: absolute;
  left: 86.5%;
  top: 93%;
  width: 30px;
  height: 30px;
  transform: translateY(-50%) scale(0.5);
  /* 🔑 初始縮小 */
  opacity: 0;
  transition:
    opacity .4s var(--ease),
    transform .5s var(--ease);
}

.loading-icon img {
  width: 100%;
  height: 100%;
  display: block;
}

.loading-enter-btn:hover .loading-icon {
  opacity: 1;
  transform: translateY(-50%) scale(1);
  /* 🔑 從小到大 */
}