:root {
  --highlight-border-width: 0.3vh;
  --highlight-border-color: #aaf212;
}

.top_text {
  top: 0;
  position: absolute;
  font-size: 1.8vw;
  padding: 2%;
  /* padding-left: 19%; */
  background: #61c5d7;
  color: white;
  left: 8%;
  width: 100%;
}

.covertext {
  position: absolute;
  font-size: 9vw;
  left: 0;
  top: 50%;
  translate: 0 -50%;
  padding: 1%;
  width: 35%;
  color: #674ea7;
  /* background-color: #eeeeeeff;
  border-top-right-radius: 999rem;
  border-bottom-right-radius: 999rem; */
}

.mam,
.girl-talking {
  position: absolute;
  height: 45%;
  top: 30%;
  right: 40%;
}

.girl-talking {
  height: 30%;
  top: 45%;
  right: 25%;
}

.students {
  position: absolute;
  bottom: 0;
  height: 25%;
  width: 22%;
  display: flex;
  justify-content: center;
  justify-content: space-between;
  left: 6%;
}

.students > img {
  height: 100%;
}

.students.student-right {
  left: unset;
  right: 8%;
}

.speechbox {
  left: unset;
  right: 0;
  top: 7%;
}

.sp-1,
.sp-3,
.sp-4 {
  height: 25%;
}

.sp-3,
.sp-4 {
  right: 6%;
}

.sp-2,
.sp-5 {
  width: 20%;
  height: 10%;
  top: unset;
  bottom: 20%;
  left: 30%;
}

.sp-6 {
  top: 13%;
}

.sp-7 {
  width: 25%;
  top: unset;
  bottom: 27%;
  right: 10%;
}

.sp-7 > img,
.sp-8 > img,
.sp-9 > img {
  left: 0;
  top: 10%;
}

.sp-8,
.sp-9 {
  top: 0%;
  right: 7%;
  height: 38%;
  width: 35%;
}

.sp-8 > p {
  width: 75%;
}

.sp-9 {
  top: 15%;
  height: 25%;
  width: 30%;
  right: 10%;
  user-select: none;
}

.girl-left {
  left: 3%;
  top: unset;
  bottom: 4;
  height: 55%;
}

.coverboardfull {
  background-color: #dce5e2;
}

.right-block {
  display: flex;
  flex-direction: column;
  gap: 4%;
  width: 40%;
  height: 100%;
  background-color: #eeeeee;
  position: absolute;
  right: 0;
  padding-top: 3%;
}

.right-block::after {
  content: '';
  position: absolute;
  right: 100%;
  top: 10%;
  border-right: 12vw solid #eeee;
  border-left: 12vw solid transparent;
  border-top: 12vw solid transparent;
  border-bottom: 12vw solid transparent;
}

.right-block .sentence {
  background-color: #cccccc;
  width: 80%;
  margin: 0 auto;
  border-radius: 0.4em;
  padding: 6% 12%;
  color: transparent;
  font-size: 2vw;
  border: 3px solid transparent;
}

.right-block .sentence.highlight {
  border: 3px solid #ffab40;
  background-color: transparent;
  color: #595959;
  transition: all 1000ms ease-in-out;
}

.sp-left {
  left: 10%;
  top: 15%;
  width: 45%;
  height: 25%;
  user-select: none;
}

.sp-left > img {
  width: 75%;
  left: unset;
  top: 10%;
}

.sp-left.sp-lg {
  top: 10%;
  height: 30%;
}

.sp-left.sp-lg > p {
  width: 58%;
  top: -3%;
}

.pointer {
  position: absolute;
  top: 28%;
  right: 11%;
  z-index: 20;
  height: 10%;
  cursor: pointer;
}

.pointer-left {
  left: 45%;
  top: 30%;
}
.pointer-1,
.pointer-3,
.pointer-4,
.pointer-6,
.pointer-8 {
  left: 70%;
  top: 25%;
}

.pointer-2,
.pointer-5 {
  top: 75%;
  left: 40%;
}

.pointer-7 {
  top: unset;
  bottom: 28%;
}

.letter {
  width: 45%;
  position: absolute;
  top: 15%;
  left: 50%;
  transform: translate(-50%);
}

.date,
.greeting,
.letterbody,
.sender {
  position: absolute;
  font-size: 1.9vw;
  background-color: #ffffffff;
  padding: 1%;
  border-radius: 0.5em;
}

.date {
  left: 80%;
  top: 17.5%;
}

.date::before,
.date::after,
.greeting::before,
.greeting::after,
.letterbody::before,
.letterbody::after,
.sender::after,
.sender::before {
  content: '';
  position: absolute;
  border-top: var(--highlight-border-width) solid var(--highlight-border-color);
  top: 50%;
  transform: translateY(-50%);
}

.date::after,
.greeting::after,
.letterbody::after,
.sender::after {
  border: var(--highlight-border-width) solid var(--highlight-border-color);
}

.date::before,
.greeting::before,
.letterbody::before,
.sender::before {
  --dash--line-width: 74%;
  width: var(--dash--line-width);
  left: calc(-1 * var(--dash--line-width));
}

.greeting::before,
.letterbody::before {
  left: unset;
  right: calc(-1 * var(--dash--line-width));
}

.date::after {
  width: 130%;
  height: 100%;
  left: -201%;
}

.greeting {
  width: 15%;
  top: 24%;
  left: 5%;
}

.greeting::before {
  --dash--line-width: 70%;
}

.greeting::after {
  --greeting-container-width: 100%;
  width: var(--greeting-container-width);
  height: var(--greeting-container-width);
  right: -170%;
}

.letterbody {
  width: 15%;
  padding: 1% 2.5%;
  left: 4%;
  top: 44.5%;
}

.letterbody::before {
  --dash--line-width: 76%;
}

.letterbody::after {
  width: 275%;
  height: 270%;
  transform: translateY(0);
  top: -50%;
  right: -350%;
}

.sender {
  left: 80%;
  bottom: 15.5%;
}

.sender::before {
  --dash--line-width: 65%;
}

.sender::after {
  width: 100%;
  height: 210%;
  left: -165%;
}

.letter-left {
  left: 0;
  transform: translate(0);
  height: 80%;
}

.qna {
  position: absolute;
  width: 45%;
  height: 80%;
  right: 3%;
  top: 15%;
  background-color: #eeeeeeff;
  border-radius: 0.5em;
  color: #595959;
  user-select: none;
}

.question {
  background-color: #ead1dcff;
  font-weight: bold;
  padding: 2%;
  width: 100%;
  margin: 6% auto;
  border-radius: 0.2em;
}

.options {
  background-color: #fff;
  width: 90%;
  padding: 4%;
  margin: 5% auto;
  border-radius: 0.4em;
  box-shadow: 8px 8px 2px #d9d9d9ff;
  cursor: pointer;
  position: relative;
}

.correctans {
  background-color: #ceff67ff;
}
.wrongans {
  background-color: #ffb1a3ff;
}

.correct-img,
.wrong-img {
  position: absolute;
  height: 40%;
  right: -2%;
}

.list-bg {
  background-color: #f3f3f3ff;
}

.list {
  height: 70%;
  width: 95%;
  position: absolute;
  top: 20%;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 4%;
}

.item {
  flex-basis: 33.33%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-color: #fff;
  box-shadow: 8px 8px 3px #d9d9d9ff;
  border-radius: 0.5em;
  padding: 4%;
  font-size: 2vw;
  color: #595959;
}

.item > p {
  position: relative;
  padding-top: 0.6em;
  height: 30%;
}

.img-container {
  height: 70%;
  display: flex;
  align-items: center;
}

.item > p::before {
  content: '';
  width: 100%;
  border-top: calc(1.5 * var(--highlight-border-width)) solid #d5a6bdff;
  position: absolute;
  top: -20%;
  left: 50%;
  transform: translateX(-50%);
}

.img1 {
  height: 75%;
}

.img2 {
  height: 30%;
}

.img3 {
  height: 32%;
}

.item-sm .img1 {
  height: unset;
  width: 80%;
}

.item-ticket .img2 {
  height: 60%;
}

.folding-letter {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.folding-letter-img {
  position: absolute;
  top: 42.5%;
  left: 31.5%;
  zoom: 0.95;
}
@media screen and (max-width: 768px) {
  .letterbody {
    top: 45.5%;
  }
  .sender {
    bottom: 13%;
  }
}

@media (min-aspect-ratio: 4/3) {
  :root {
    --highlight-border-width: 0.6vh;
  }
  .covertext {
    font-size: 10vh;
  }
  .right-block::after {
    border-width: 10vh;
  }
  .right-block .sentence,
  .date,
  .greeting,
  .letterbody,
  .sender,
  .item {
    font-size: 2.5vh;
  }
  .title {
    font-size: 3.5vh;
  }
}

@media screen and (max-width: 1280px) and (max-height: 595px) {
  .sender,
  .date {
    right: 5%;
  }
}
