* {
  -webkit-touch-callout: none;
  -o-user-select: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;

  -o-user-drag: none;
  -webkit-user-drag: none;
  -khtml-user-drag: none;
  -moz-user-drag: none;
  -ms-user-drag: none;
}
html, body, .fullcanvas {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
}
body{
  touch-action: none;
}
img {
  max-width: 100%;
  height: auto;
  object-fit: cover;
}
.center-container {
  justify-content: center;
  align-items: center;
}
.horizontal-center-container {
  position: relative;
}
.bg {
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}
.popup {
  position: absolute;
}
.relative {
  position: relative;
}
.layout-container{
  position: absolute;
  top:50%;
  left: 50%;
  width: 80vw;
  height: 145vw;
  transform: translate(-50%, -50%);
  /* position: absolute;
  top:50%;
  left: 50%;
  width: 80%;
  height: 700px;
  transform: translate(-50%, -50%); */
}
.croppie-container {
  position: absolute;
  top: 0.3%;
}

/* Page Items */
#home-page {
  display: block;
}
#adjust-page {
  display: none;
}
#generating-page {
  display: none;
}
#model-page {
  display: none;
}
#card-page {
  display: none;
}
#download-page {
  display: none;
}
#error-page {
  display: none;
}

/* modal style */
@supports (-webkit-backdrop-filter:none) or (backdrop-filter:none) {
  .modal {
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
  }
}
.modal-dialog {
  overflow-y: initial !important
}
.modal-body {
  /* height: 300px; */
  overflow-y: auto;
}
.none-rounded  {
  /* -webkit-border-radius: 0px !important;
  -moz-border-radius: 0px !important; */
  border-radius: 0 !important;
}
.custom-half-transparent {
  opacity: .9;
}
#modal-content-notification {
  width: 72%;
  height: auto;
}
#modal-content-userpolicy {
  width: 100%;
  height: auto;
}
#final-bg {
  display: none;
  z-index: -1;
}

/* Home Page */
#bgVideo {
  /* position: fixed; */
  right: 0;
  bottom: 0;
  width: 100%;
  height: auto;
}
#home-bg {
  background-image: url("/../assets/UI/01_HomePage/bg.png");
}
#home-logo {
  opacity: 0;
  position: absolute;
  top: 20px;
  right: 15px;
  width: 50%;
  height: auto;
  z-index: 1;
  animation: fadein 2s 0.5s forwards;
  animation-play-state: paused;
}
#home-press {
  opacity: 0;
  position: absolute;
  top: 42%;
  left: 22.5%;
  width: 55%;
  height: auto;
  z-index: 1;
  animation: blinking 3s 1.5s infinite;
  animation-play-state: paused;
}
#home-text {
  opacity: 0;
  position: absolute;
  top: 60%;
  left: 27.5%;
  width: 45%;
  height: auto;
  z-index: 1;
  --ysrc : 60%;
  --ydest : 52%;
  animation: fadein 2s 1s forwards,
            moveY 2s 1s forwards;
  animation-play-state: paused;
}
#main-button {
  opacity: 0;
  z-index: 3;
}
#camera-icon {
  margin-bottom: 17px;
  width: 80%;
  height: auto;
}
#agree-text {
  width: 100%;
  height: auto;
}
#user-policy {
  width: 45%;
  height: auto;
}
#policy-title {
  width: 55%;
  height: auto;
}
#policy-content {
  margin-top: 15px;
  width: 100%;
  height: auto;
}
#AgreenButton {
  margin-top: 10px;
  margin-bottom: 23px;
  width: 45%;
  height: auto;
}
#CancelButton {
  margin-top: 10px;
  margin-bottom: 23px;
  width: 45%;
  height: auto;
}
#StartButton {
  margin-top: 10px;
  margin-bottom: 23px;
  width: 55%;
  height: auto;
}

/* Adjust Page */
#inputImg {
  z-index: 0;
}
/* #adjust-mask {
  position: absolute;
  top: 0.3%;
  left: 0.5%;
  width: 99%;
  height: 0;
  padding-bottom: 132.32%;
  clip-path: polygon(0% 0%, 
    100% 0%, 
    100% 100%, 
    0% 100%);
}
#adjust-canvas {
  position: absolute;
  width: 100%;
  height: 0;
  padding-bottom: 133.32%;
  pointer-events: none;
}
#adjust-frame {
  position: absolute;
  width: 100%;
  height: auto;
  pointer-events: none;
} */
#adjust-face {
  width: 70%;
  height: auto;
  top: 7%;
  right: 15%;
  z-index: 2;
  pointer-events: none;
}
#adjust-text {
  width: 100%;
  height: auto;
  bottom: 13%;
  /* top: 78%; */
  right: 0;
  z-index: 1;
  pointer-events: none;
}
#adjust-button {
  opacity: 0;
  z-index: 3;
}

/* Generating  Page */
#generating-rendering {
  width: 33%;
  height: auto;
  top: 40%;
  left: 33.5%;
}
#generating-line {
  width: 61%;
  height: auto;
  top: 48%;
  left: 19.5%;
}
#generating-gif {
  width: 61%;
  height: auto;
  top: 40%;
  left: 19.5%;
}

/* Model Page */
#model-black {
  z-index: 3;
}
#model-text {
  width: 70%;
  height: auto;
  top: 70%;
  left: 15%;
  z-index: 4;
}
#model-button {
  opacity: 0;
  z-index: 5;
}

/* 3D Scene */
#ThreeScene {
  display: none;
  z-index: 3;
}
#renderCanvas {
  position: absolute;
  top: 0.3%;
  left: 0.5%;
  width: 99%;
  pointer-events: none;
}
#renderCanvas-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: auto;

  /* width: 370px;
  height: 490px;
  left: 50%;
  top: 2.5%;
  transform: translateX(-50%); */
}
#renderCanvas-light {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: auto;

  /* width: 360px;
  height: 480px;
  left: 50%;
  top: 3%;
  transform: translateX(-50%); */
  animation: fadeout 3s 1s forwards;
  animation-play-state: paused;
  pointer-events: none;
}
#renderCanvas-photo {
  position: absolute;
  top: 0.3%;
  left: 0.5%;
  width: 99%;
  height: auto;

  animation: fadeout 3s 1s forwards;
  animation-play-state: paused;
  pointer-events: none;
}

/* Card Page */
#card {
  width: 360px;
  height: 480px;
  top: 3%;
  left: 50%;
  transform: translateX(-50%);
  /* left: 6%;
  right: 6%; */
}
#card-text {
  bottom: 12%;
  width: 100%;
  height: auto;
}

/* Download Page */
/* #download-bg {
  background-image: url("/../assets/UI/09_SavedPage/bg.png");
}
#download-icon {
  opacity: 1;
  position: absolute;
  top: 30%;
  left: 25%;
  width: 50%;
  height: auto;
}
#download-copyright {
  opacity: 1;
  position: absolute;
  top: 92%;
  left: 27.5%;
  width: 45%;
  height: auto;
}
#download-button {
  opacity: 1;
  position: absolute;
  top: 57%;
  left: 22%;
  width: 56%;
  height: auto;
  z-index: 1;
}
#download-complete {
  opacity: 0;
  position: absolute;
  top: 35%;
  left: 37.5%;
  width: 25%;
  height: auto;
} */
#download-img-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: auto;
}
#download-img {
  position: absolute;
  top: 0.3%;
  left: 0.5%;
  width: 99%;
  height: auto;

  -webkit-touch-callout: initial;
  -o-user-select: initial;
  -webkit-user-select: initial;
  -khtml-user-select: initial;
  -moz-user-select: initial;
  -ms-user-select: initial;
  user-select: initial;

}
#download-text {
  top: 74%;
  left: 20%;
  width: 60%;
  height: auto;
}
#download-thanks {
  top: 80%;
  left: 12.5%;
  width: 75%;
  height: auto;
}
#download-official-button {
  top: 92%;
  left: 10%;
  width: 80%;
  height: auto;
  z-index: 2;
}

/* Error Page */
#error-icon {
  position: absolute;
  top: 30%;
  left: 15%;
  width: 70%;
  height: auto;
}
#retake-button-error {
  display: none;
  position: absolute;
  top: 65%;
  left: 10%;
  width: 80%;
  height: auto;
  z-index: 2;
}

/* Camera Button */
#cameraFileInput, #retakeInputAdjust, #retakeInputCard, #retakeInputError  {
  display: none;
}
#retake-button-adjust, #retake-button-card  {
  display: none;
  position: absolute;
  bottom: 0;
  left: 1%;
  width: 45%;
  height: auto;
  z-index: 2;
}
#confirm-button-adjust, #confirm-button-card {
  display: none;
  position: absolute;
  bottom: 0;
  right: 1%;
  width: 45%;
  height: auto;
  z-index: 2;
}

/* CSS Animation */
/* #home-bg-animation {
  position: absolute;
  width: 600px;
  height: 1298px;
  background-image: url("/assets/UI/SpriteSheets/homepage.png");
  animation: playX9000 0.625s steps(15) infinite,
              playY20768 10s steps(16) infinite;
  z-index: 1;
}
#logo-animation {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 60%; 
  padding-bottom: 45%;
  background-image: url("/assets/UI/01_HomePage/logo_ani.png");
  background-size: 600% 800%;
  --xdest: -500%;
  --ydest: -700%;
  animation: playX 0.3s steps(5) 1s 7 forwards,
            playY 2.1s steps(7) 1s forwards;
  z-index: 1;
}
#press-animation {
  position: absolute;
  top: 47%;
  left: 27.5%;
  width: 45%;
  padding-bottom: 13.125%;
  background-image: url("/assets/UI/01_HomePage/press_ani.png");
  background-size: 900% 1100%;
  --xdest: -900%;
  --ydest: -1100%;
  animation: playX 0.36s steps(9) infinite,
          playY 3.96s steps(11) infinite;
  animation-play-state: paused;
  z-index: 1;
}
#text-animation {
  position: absolute;
  top: 48%;
  left: 20%;
  width: 60%;
  padding-bottom: 45%;
  background-image: url("/assets/UI/01_HomePage/text_ani.png");
  background-size: 600% 800%;
  --xdest: -500%;
  --ydest: -700%;
  animation: playX 0.25s steps(5) 1.5s 7 forwards,
          playY 1.75s steps(7) 1.5s 1 forwards;
  animation-play-state: paused;
  z-index: 1;
} */
#model-animation {
  position: absolute;
  top: 10%;
  left: 10%;
  width: 80%;
  padding-bottom: 100%;
  background-image: url("/assets/UI/06_3DPage/model_ani.png");
  background-size: 600% 800%;
  --xdest: -500%;
  --ydest: -700%;
  animation: playX 0.25s steps(5) 21 forwards,
              playY 1.75s steps(7) 3 forwards;
  z-index: 4;
}
#generating-animation {
  position: absolute;
  top: 32%;
  left: 20%;
  width: 60%;
  padding-bottom: 50%;
  background-image: url("/assets/UI/05_ConvertingPage/generating_ani.png");
  background-size: 800% 900%;
  --xdest: -800%;
  --ydest: -900%;
  animation: playX 0.3s steps(8) infinite,
              playY 2.7s steps(9) infinite;
  z-index: 1;
}

/* animation function */
@keyframes fadein {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes fadeout {
  from { opacity: 1; }
  to { opacity: 0; }
}
@keyframes blinking {
  0% { opacity: 0; }
  40% { opacity: 1; }
  60% { opacity: 1; }
  100% { opacity: 0; }
}
@keyframes moveX {
  from { top: var(--xsrc); }
  to { top: var(--xdest); }
}
@keyframes moveY {
  from { top: var(--ysrc); }
  to { top: var(--ydest); }
}
@keyframes playX {
  from { background-position-x: 0px; }
  to { background-position-x: var(--xdest); }
}
@keyframes playY {
  from { background-position-y: 0px; }
  to { background-position-y: var(--ydest); }
}

/* #camera {
  display: block;
  max-width: 100%;
  margin: 1rem auto;
  touch-action: none;
} */

/* #camera.reset {
  transition: transform 0.3s ease-in-out;
} */