html, body {
  height: 100%;
  margin: 0; 
  padding: 0; 
  overflow: hidden;
  touch-action: none;
  -ms-touch-action: none;
  font-family: 'FKGroteskNeueTrial-Bold', 'NotoSansKR', 'NotoSansSC', 'AppleColorEmoji', sans-serif;
  font-weight: 600;
}

::-webkit-scrollbar { 
  width: 0;
}

canvas {
  position: fixed;
  top: 0;
  left: 0;
  pointer-events: none;
  z-index: -1;
}

button { 
  border: none;
  background: none;
  cursor: pointer;
  font-size: 0;
  -webkit-text-fill-color: black;
  color: black;
  text-shadow: rgb(255, 255, 255) 0px 0px 6px;
}

.floater {
  opacity: 0;
  position: absolute;
  transform-style: preserve-3d;
  transition: opacity 0.5s linear;
  pointer-events: none;
  z-index: -1;
  font-family: 'ReadyActive-light';
  white-space: nowrap;
  font-size: 200px;
  color: white;
}

.book {
  position: fixed;
  top: 0;
  left: 0;
  width: 100dvw;
  height: 100dvh;
  display: flex;
  align-items: center;
  justify-content: center;
}


#pages-scale {
  position: absolute;
  top: 10px;
  width: calc(100% - 20px);
  height: calc(100% - 100px);
  border: 2px solid white;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  overflow-x: hidden;
  overflow-y: auto;
}


#cover-front {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  width: 350px;
  display: none;
  text-align: center;
}

#cover-back {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  width: 350px;
  display: none;
  text-align: center;
}

#pages-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

#pages { 
  position: relative;
  padding: 0 0 10px 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  transform-origin: center center;
  gap: 5px;
  overflow-y: auto;
  overflow-x: hidden;
  font-weight: 600;
}

.line {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
}

.letter {
  min-width: 14px;
  height: 28px;
  line-height: 28px;
  outline: none;
  font-family: 'FKGroteskMonoTrial-Regular', 'Noto Sans KR', 'Noto Sans SC', sans-serif;
  text-align: center;
  font-size: 19px;
  text-transform: uppercase;
}

.letter-selected {
}

#soundOn {
  position: fixed;
  top: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
  -moz-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  -o-transform: translateX(-50%);
  transform: translateX(-50%);
  width: calc(100% - 80px);
  height: calc(100% - 90px);
  z-index: 3;
  background: transparent;
}

#prevBtn {
  position: fixed;
  top: 0;
  left: 0;
  width: 40px;
  height: calc(100% - 90px);
  z-index: 3;
}

#nextBtn {
  position: fixed;
  top: 0;
  right: 0;
  width: 40px;
  height: calc(100% - 90px);
  z-index: 3;
}


input[type="range"] {
  position: fixed;
  bottom: 60px;
  left: 50%;
  -webkit-transform: translateX(-50%);
  -moz-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  -o-transform: translateX(-50%);
  transform: translateX(-50%);
  width: calc(100% - 16px);
  height: 2px;
  margin: 0;
  outline: none;
  -webkit-appearance: none;
  appearance: none;
  -webkit-transition: .2s;
  transition: .2s;
  
}

input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 15px;
  height: 15px;
  cursor: pointer;
  filter: drop-shadow(0 0 2px white);
  border-radius: 50%;
}

input[type="range"]::-moz-range-thumb {
  width: 15px;
  height: 15px;
  cursor: pointer;
  filter: drop-shadow(0 0 2px black);
  border-radius: 50%;
}

#pageSlider {
  flex: 1;
}


#pageIndicator { 
  display: inline-block;
  position: absolute;
  bottom: 5px;
  left: 50%;
  -webkit-transform: translateX(-50%);
  -moz-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  -o-transform: translateX(-50%);
  transform: translateX(-50%);
  padding: 10px;
  font-family: 'FKGroteskNeueTrial-Bold';
  font-size: 19px;
  color: black;
}

#title {
  position: fixed; 
  bottom: 5px; 
  left: 10px; 
  padding: 10px 10px 10px 0;
  font-family: 'FKGroteskNeueTrial-Bold';
  font-size: 15px;
  z-index: 3;
}

#saveBtn {
  position: fixed; 
  bottom: 5px; 
  right: 10px; 
  padding: 10px 0 10px 10px;
  font-family: 'FKGroteskNeueTrial-Bold';
  font-size: 15px;
  z-index: 3;
}