html, body {
  margin: 0;
  padding: 0;
  height: 100%;
}
body { padding: 0; margin: 0 }
#unity-container { position: absolute }
#unity-container.unity-desktop { left: 50%; top: 50%; transform: translate(-50%, -50%) }
#unity-container.unity-mobile { position: fixed; width: 100%; height: 100% }
#unity-canvas { background: #1B1B1B }
.unity-mobile #unity-canvas { width: 100%; height: 100% }
#unity-loading-bar { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); text-align: center;}
#unity-progress-bar-empty { width: 141px; height: 18px; margin-top: 10px; margin-left: 6.5px; background: url('progress-bar-empty-light.png') no-repeat center }
#unity-progress-bar-full { width: 0%; height: 18px; margin-top: 10px; background: url('progress-bar-full-light.png') no-repeat center }
#unity-footer { position: relative }
.unity-mobile #unity-footer { display: none }
#unity-logo-title-footer { float:left; width: 102px; height: 38px; background: url('unity-logo-title-footer.png') no-repeat center }
#unity-build-title { float: right; margin-right: 10px; line-height: 38px; font-family: arial; font-size: 18px }
#unity-fullscreen-button { cursor:pointer; float: right; width: 38px; height: 38px; background: url('fullscreen-button.png') no-repeat center }
#unity-warning { position: absolute; left: 50%; top: 5%; transform: translate(-50%); background: white; padding: 10px; display: none }

#unity-logo {
  height: 17vw;
  max-height: 73px;
  aspect-ratio: 4.1714;
  background: url('deepxrlab_logo.png') no-repeat center;
  background-size: contain;
  margin-top: -110px; /* 위로 10px 이동 */
}

#loading-dots {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  height: 30px;
  margin-top: 0px;
  /* 애니메이션 제어 변수 */
  --bar-duration: 0.7s;   /* 각 막대의 개별 애니메이션 시간 */
  --wave-duration: 0.5s;  /* 첫 막대에서 마지막 막대까지 물결이 전달되는 시간 */
  --end-delay: 0.2s;      /* 마지막 막대 종료 후 전체 반복 전까지의 대기 시간 */
}

#loading-dots div {
  background-color: #fff;
  width: 6px;
  height: 24px;
  margin: 0 4.5px;
  border-radius: 3px;
  transform-origin: center;
  /* 전체 주기를 계산하여 animation-duration으로 설정 */
  animation-name: scale-up-down;
  animation-timing-function: cubic-bezier(0.45, 0, 0.55, 1);
  animation-iteration-count: infinite;
  animation-duration: calc(var(--bar-duration) + var(--wave-duration) + var(--end-delay));
}

#loading-dots div:nth-child(1) {
  animation-delay: 0s;
}

#loading-dots div:nth-child(2) {
  /* 전체 웨이브 시간을 3등분하여 순차적으로 delay 적용 */
  animation-delay: calc(var(--wave-duration) / 3);
}

#loading-dots div:nth-child(3) {
  animation-delay: calc(var(--wave-duration) / 3 * 2);
}

#loading-dots div:nth-child(4) {
  animation-delay: var(--wave-duration);
}

@keyframes scale-up-down {
  /*
    애니메이션의 실제 움직임은 전체 주기a의 매우 짧은 부분에서만 발생합니다.
    (예: bar:0.4s, wave:0.4s, end:0.8s -> total:1.6s. 0.4/1.6 = 25%)
    0%~25% 구간에서만 움직이고, 나머지 75%는 대기합니다.
  */
  0%, 25%, 100% {
    transform: scaleY(1);
  }
  12.5% {
    transform: scaleY(1.5);
  }
}

#splash-screen {
  position: fixed; 
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: white;

  display: flex;
  justify-content: center; 
  align-items: center;      
  z-index: 9999;
}

.logo {
  display: flex;
  justify-content: center;
  align-items: center; 
  /* margin-top: 40vh;
  margin-left: 40vw; */
  width: clamp(200px, 40vh, 350px);
  object-fit: contain; 
}
