.preload * {
  -webkit-transition: none !important;
  -moz-transition: none !important;
  -ms-transition: none !important;
  -o-transition: none !important;
  transition: none !important;
}
body{
  position: relative;
  overflow: hidden;
  background-image: url("/layouts/homebg.jpg");
  background-repeat: no-repeat;
  background-size: cover;
}
main {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: nowrap;
  height: calc(var(--vh, 1vh) * 100);
  min-height: 600px;
  padding-top: 90px;
  font-family: 'NSimSun', sans-serif;
  letter-spacing: 2px;
  overflow: hidden;
}
.book {
  position: relative;
  opacity: 0;
  width: 35%;
  height: 70%;
  max-width: 550px;
  max-height: 550px;
  min-height: 400px;
  overflow: visible;
  -webkit-transform: translateX(50%);
          transform: translateX(50%);
  -webkit-transition: all 1s ease-in-out;
  transition: all 1s ease-in-out;
  -webkit-transition-delay: 1s;
          transition-delay: 1s;
}

.book.open{
  opacity: 1;
  -webkit-animation: slideInUp 1.5s;
          animation: slideInUp 1.5s;
}

.cover, .page {
  position: absolute;
  width: 100%;
  height: 100%;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  -webkit-transform-origin: left center;
          transform-origin: left center;
  -webkit-transition: inherit;
  transition: inherit;
}

.cover {
  z-index: 500;
  -moz-transform: perspective(700px) rotateY(0deg);
  -webkit-transform: perspective(700px) rotateY(0deg);
          transform: perspective(700px) rotateY(0deg);
  background-image: url("/about/bookCover.png");
  background-size: 100% 100%;
}
.cover h1 {
  font-size: 2.2em;
  letter-spacing: 2px;
  padding: 0.5em;
  text-align: center;
  color: #333;
}

.page {
  padding: 60px;
  font-family: 'NSimSun', sans-serif;
  font-size: 12px;
  color: #222;
}

.page.left {
  -moz-transform: perspective(700px) rotateY(180deg) translateX(-100%);
  -webkit-transform: perspective(700px) rotateY(180deg) translateX(-100%);
          transform: perspective(700px) rotateY(180deg) translateX(-100%);
  background-size: 100% 100%;
  padding-top: 30px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
}
.page.left:before {
  left: 0;
}
.page.left .bookmark-wrapper{
  visibility: hidden;
}
.page.right {
  padding-top: 80px;
  background-size: 100% 100%;
  position: relative;
}
.bookmark-wrapper {
  position: absolute;
  display: -webkit-box;
  display: flex;
  justify-content: space-around;
  left: 0;
  top: -58px;
  width: 100%;
}
.bookmark-wrapper .bookmark {
  position: relative;
  z-index: 99;
  cursor: pointer;
  width: 72px;
  height: 60px;
  font-size: 20px;
  text-align: center;
  padding-top: 15px;
  background-repeat: no-repeat;
  background-size: cover;
  color: #333;
}
.bookmark-wrapper .bookmark.active {
  height: 125px;
}
.page.right:before {
  right: 0;
}
#icon-wrapper{
  position: absolute;
  bottom: 20%;
  right: 10%;
  width: 22%;
}
.page.right #icon-wrapper img{
  width: 100%;
}
.page h1 {
  margin: 0;
  padding: 10px;
  font-size: 25px;
  font-weight: bold;
}
.page p {
  line-height: 1.5;
  font-size: 16px;
}
.page #book-prev{
  opacity: 0;
  position: absolute;
  width: 15%;
  height: 20%;
  background-size: cover;
  background-repeat: no-repeat;
  cursor: pointer;
  left: 0;
  bottom: 6%;
}
.page #book-prev:hover{
  opacity: 1;
}
.page #book-next{
  opacity: 0;
  position: absolute;
  width: 15%;
  height: 20%;
  background-size: cover;
  background-repeat: no-repeat;
  cursor: pointer;
  right: 0px;
  bottom: 6%;
}
.page #book-next:hover{
  opacity: 1;
}
.photo-wrapper{
  position: relative;
  height: 70%;
  margin-top: 10px;
  overflow: visible;
}
.photo-wrapper .tape{
  position: absolute;
  z-index: 200;
  width: 50px;
}
.photo-wrapper #tape-top{
  top: -20px;
  left: -20px;
}
.photo-wrapper #tape-bottom{
  bottom: -20px;
  right: -20px;
}
.photo-wrapper #groupPhoto{
  width: 100%;
  height: 100%;
}
.photo-wrapper #groupPhoto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.page-control{
  z-index: 300;
  position: absolute;
  display: flex;
  justify-content: space-between;
  width: 80%;
  max-width: 1200px;
  animation: fadeOut 3s;
}
.page-control i{
  font-size: 60px;
  margin: 0;
}
.page-control i:hover{
  cursor: pointer;
}
.last-page .page .book-next{
  display: none;
}
.first-page .page-control{
  justify-content: flex-end;
}
.first-page .page .book-prev{
  display: none;
}
.open .cover {
  -moz-transform: perspective(700px) rotateY(-180deg);
  -webkit-transform: perspective(700px) rotateY(-180deg);
          transform: perspective(700px) rotateY(-180deg);
}
.open .page.left {
  z-index: 200;
  -moz-transform: perspective(700px) rotateY(0deg) translateX(-100%);
  -webkit-transform: perspective(700px) rotateY(0deg) translateX(-100%);
          transform: perspective(700px) rotateY(0deg) translateX(-100%);
}
.open .page:before {
  width: 10px;
}
.mobile-content{
  display: none;
  visibility: hidden;
}
*, *:before, *:after {
  box-sizing: border-box;
}
.deco{
  width: 12%;
}
#decoRightTop{
  position: absolute;
  right: 0;
  top: 0;
  padding-top: 10%;
}
#decoRightBottom{
  position: absolute;
  right: 0;
  bottom: 0;
}
#decoLeft{
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  padding-top: 10%;
}

@-webkit-keyframes slideInUp {
  0% {
    -webkit-transform: translateY(100px);
            transform: translateY(100px);
    opacity: 0;
  }
  50% {
    -webkit-transform: translateY(0px);
            transform: translateY(0px);
    opacity: 1;
  }
  100% {
    -webkit-transform: translateY(0px) translateX(50%);
            transform: translateY(0px) translateX(50%);
  }
}

@keyframes slideInUp {
  0% {
    -webkit-transform: translateY(100px);
            transform: translateY(100px);
    opacity: 0;
  }
  50% {
    -webkit-transform: translateY(0px);
            transform: translateY(0px);
    opacity: 1;
  }
  100% {
    -webkit-transform: translateY(0px) translateX(50%);
            transform: translateY(0px) translateX(50%);
  }
}

@keyframes fadeOut {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

/* 預設樣式為電腦版 */

/* 大螢幕 (e.g.橫躺平板) 922~1200px */
@media (max-width: 1200px) {
  .book {
    width: 38%;
    height: 70%;
  }
  .photo-wrapper {
    height: 60%;
  }
  .page-control{
    width: 100%;
    padding: 0 10px;
  }
  .page.left{
    padding: 40px;
    padding-top: 30px;
  }
  .deco{
    width: 10%;
  }
  .bookmark-wrapper .bookmark.active {
    height: 110px;
  }
}

/* 中螢幕 (e.g.直立平板) 768~922px */
@media (max-width: 992px) {
  body{
    overflow-y: scroll;
  } 
  .page{
    padding: 40px;
  }
  .book {
    width: 45%;
    height: 50%;
  }
  .bookmark-wrapper{
    top: -45px;
  }
  .bookmark-wrapper .bookmark {
    width: 55px;
    height: 47px;
  }
  .bookmark-wrapper .bookmark.active {
    height: 100px;
  }
}

@media (max-width: 992px) and (orientation: portrait),
(min-width: 1024px) and (max-height: 1366px) and (orientation: portrait) {
  main{
    padding-top: 0;
  }
  .photo-wrapper {
    height: 40%;
  }
  #decoRightTop{
    position: absolute;
    left: 0;
    bottom: 0;
    top: auto;
    padding-top: 0%;
    transform-origin: center center;
    transform: scaleX(-1);
    filter: FlipH; 
    -ms-filter: "FlipH"; 
    width: 20%;
  }
  #decoRightBottom{
    position: absolute;
    right: 0;
    bottom: 0;
    width: 20%;
  }
  #decoLeft{
    position: absolute;
    left: 50%;
    top: -14%;
    height: 40%;
    width: auto;
    transform: translateX(-50%) rotate(90deg);
    padding-top: 0%;
  }
}

/* 小螢幕 (e.g.橫躺手機) 577~767px */
@media (max-width: 767px) { 
  .deco{
    display: none;
  }
  .page{
    padding: 40px;
  }
}

/* 超小螢幕 (e.g.直立手機), 576px以下 */
@media (max-width: 576px) { 
  header{
    position: relative;
  }
  body{
    overflow-y: hidden;
    height: calc(var(--vh, 1vh) * 100);
  } 
  main{
    position: relative;
    overflow: hidden;
    padding-top: 0;
    height: 100%;
    align-items: flex-start;
  }
  .mobile-content{
    display: block;
    visibility: visible;
  }
  .book {
    width: 95%;
    height: 75%;
    margin-top: 45px;
    min-height: auto;
    transform: none;
  }
  .book-container{
    overflow: hidden;
  }
  .book.open{
    animation: slideInLeft 1.5s;
  }
  .cover, .page {
    min-height: 400px;
    transform-origin: bottom center;
  }
  .cover {
    transform: perspective(500px) rotateX(0deg);
  }
  .page {
    font-family: 'NSimSun', serif;
    line-height: 1.2em;
    color: #222;
  } 
  .page p{
    font-size: 3.75vw;
  }
  .page h1{
    padding: 0px;
  }
  .page.left{
    padding-top: 45px;
    padding-left: 15%;
    padding-right: 8%;
    transform: none;
  }
  .page.left .bookmark-wrapper{
    visibility: visible;
  }
  .photo-wrapper{
    height: 45%;
    margin: 5% 0;
  }
  .page.right{
    z-index: 201;
    transform: perspective(500px) rotateX(180deg) translateY(100%);
  }
  .page.right .bookmark-wrapper{
    visibility: hidden;
  }
  .page.right .description-wrapper{
    display: none;
    visibility: hidden;
  }
  #icon-wrapper{
    display: none;
  }
  .bookmark-wrapper{
    z-index: 201;
    padding: 0 10px;
  }
  .bookmark-wrapper .bookmark {
    width: 60px;
  }
  .bookmark-wrapper .bookmark.active {
    height: 90px;
  }
  .open .cover{
    transform: perspective(500px) rotateX(-180deg);
  }
  .open .page.left{
    /* transform: perspective(500px) rotateX(0deg) translateY(-100%); */
    transform: none;
  }
  .open .page.right{
    transform: perspective(500px) rotateX(0deg) translateY(100%);
  }
  .page-control{
    position: fixed;
    top: 50vh;
    transform: none;
  }
}

@keyframes slideInLeft{
  0%{
    transform: translateX(-100px);
    opacity: 0;
  }
  50%{ 
    transform: translateX(0px);
    opacity: 1;
  }
  100%{
    opacity: 1;
    transform: translateX(0px);
  }
}