@charset "utf-8";
/* CSS Document */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@300;400;500;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;700&display=swap');

* {
  box-sizing: border-box;
}
.warning-container{
  background-color: #EBEBEB;
}
.warning-box{
  width: 100%;
  padding: 0 24px;
  max-width: 756px;
  margin: 0 auto;
  display: flex;
  align-items: center;
}
.warning-left{
  width: 174px;
  color: #343434;
font-size: 18px;
font-weight: 500;
line-height: 1.6;
}
.warning-right{
  flex: 1;
  color: #343434;
font-size: 12px;
font-weight: 500;
line-height: 1.6;
padding: 12px 0;
}
footer{
  position: relative;
}
footer::after{
  content: '';
  width: 50%;
  height: 100%;
  position: absolute;
  top: 0;
  right: 0;
  background-color: #DEDEDE;
}
footer::before{
  content: '';
  width: 50%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background-color: #D70C18;
}
.footer-box{
  max-width: 1248px;
  padding: 0 24px;
  position: relative;
  z-index: 1;
  display: flex;
  align-items: stretch;
  margin: 0 auto;
}
.footer-left{
  width: calc( 100% - 280px );
  background-color: #D70C18;
  color: #FFF;
font-size: 12px;
font-weight: 500;
line-height: 1.6;
padding: 20px 0;
}
.footer-right{
  width: 280px;
background-color: #DEDEDE;
padding-left: 24px;
display: flex;
align-items: center;
}
.footer-right img{
width: 150px;
}
body {
  overflow: hidden;
  width: 100vw;
  height: 100vh;
  user-select: none;
  font-family: 'Noto Sans TC';
}

body.fix {
  overflow: visible;
  width: 100%;
  height: auto;
  user-select: auto;
}

body.dragging {
  cursor: grabbing;
}

.show {
  display: block !important;
}

.w-100 {
  width: 100% !important;
}

.code-box {
  display: inline-flex;
  width: 100%;
  max-width: 254px;
  height: 34px;
  border-radius: 7px;
  border: 1px solid #F00;
  align-items: stretch;
  margin: -12px auto 20px auto;
}

.code {
  flex: 1;
  color: #4F4F4F;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
  padding: 0 12px;
  text-align: left;
}

.copy-code {
  width: 94px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #FFF;
  font-size: 14px;
  font-weight: 600;
  background: #F00;
  border-radius: 0 7px 7px 0;
  text-decoration: none;
}

.plate-1 {
  position: absolute;
  width: 164px;
  left: 0;
  top: 519px;
}

.plate-2 {
  position: absolute;
  width: 149px;
  top: 992px;
  right: 0;
}

.plate-3 {
  position: absolute;
  width: 152px;
  top: 1713px;
  left: 0;
}

.share-card {
  width: 100%;
  max-width: 680px;
  border-radius: 100px;
  background-color: #E3686F;
  padding: 30px 78px;
  display: flex;
  align-items: center;
  margin: 40px auto 0 auto;
  position: relative;
  opacity: 0;
}

.share-card.active {
  animation: popupBounce 0.5s forwards cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.share-dog {
  width: 202px;
  position: absolute;
  bottom: 0;
  right: 0;
}

.share-mb {
  display: none;
}

.share-card span {
  color: #FFF;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.04em;
}

.share-list {
  display: inline-flex;
  margin-left: 12px;
}

.share-list li {
  display: inline-block;
  margin-right: 18px;
}

.share-list li a {
  display: flex;
  width: 60px;
  height: 60px;
  position: relative;
  align-items: center;
  justify-content: center;
}

.share-list li a img {
  width: 30px;
  position: relative;
  z-index: 1;
}

.share-list li a::after {
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-color: #fff;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: transform 0.3s;
}

.share-list li a:hover::after {
  transform: translate(-50%, -50%) scale(1.1);
}

.result-title {
  color: #FFF;
  font-size: 44px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.1em;
  text-align: center;
}

.result-note {
  color: #FFF;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
  text-align: center;
}

.result-row {
  margin: 40px -12px -24px -12px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.result-col {
  width: 50%;
  padding: 0 12px;
  margin-bottom: 24px;
  display: none;
}

.result-col.active {
  display: block;
}

.result-card {
  border-radius: 30px;
  border: 4px solid #FEF2A3;
  background: #FFF;
  padding: 30px;
  display: flex;
  align-items: center;
  height: 100%;
}

.result-img {
  width: 130px;
  height: 130px;
  margin-right: 30px;
  background-size: 130px;
  background-repeat: no-repeat;
  background-position: center left;
}

.result-info {
  flex: 1;
  padding-left: 30px;
  border-left: dotted 4px #EEABA9;
}

.result-name {
  color: #3C3C3C;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.03em;
  margin-bottom: 8px;
}

.result-date {
  color: #D70C18;
  font-size: 16px;
  font-weight: 500;
  line-height: 160%;
  letter-spacing: 0.03em;
  margin-bottom: 8px;
}

.result-text {
  color: #4F4F4F;
  font-size: 16px;
  font-weight: 500;
  line-height: 160%;
  letter-spacing: 0.03em;
}

.result-text ol {
  list-style-type: decimal;
  padding-left: 1.5em;
  margin-bottom: 0;
}

.join {
  width: 129px;
  position: absolute;
  top: -224px;
  right: 0;
  overflow: hidden;
}

.join img {
  width: 200%;
}

.join:hover img {
  animation: storeStep 0.3s steps(2) infinite;
}

.gifts-car {
  overflow: hidden;
  border-radius: 20px;
}

.gifts-car-head {
  display: flex;
  padding: 20px 40px;
  justify-content: space-between;
  align-items: center;
  background-color: #D70C18;
}

.gifts-car-info {
  color: #FFF;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.03em;
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
}

.gift-num {
  font-family: 'Poppins';
  font-size: 24px;
  font-weight: 600;
  display: inline-block;
  margin: 0 8px;
}

.gift-list-btn {
  display: inline-block;
  width: 28px;
  height: 28px;
  background-image: url(../images/gifts/up.svg);
  background-repeat: no-repeat;
  background-size: 16px;
  background-position: center center;
  margin-left: 8px;
}

.submit-btn {
  color: #FFF;
  font-size: 14px;
  font-weight: 600;
  display: inline-block;
  padding: 8px 44px 8px 16px;
  background-image: url(../images/next-icon-1.svg);
  background-repeat: no-repeat;
  background-size: 20px;
  background-position: center right 16px;
  text-decoration: none;
  border-radius: 30px;
  transition: transform 0.3s;
  position: relative;
  z-index: 1;
  background-color: #AC0108;
}

.gift-list {
  padding: 0;
  margin: 0;
  background-color: #fff;
  display: none;
  max-height: 265px;
  overflow: auto;
}

.gift-list li {
  display: flex;
  padding: 8px 50px;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #E9E9E9;
}

.gift-list li:last-child {
  border-bottom: none;
}

.gift-pic {
  width: 36px;
}

.delete {
  display: inline-block;
}

.delete img {
  width: 24px;
}

.gifts-car.active .gift-list-btn {
  background-image: url(../images/gifts/dw.svg);
}

.gifts-car.active .gift-list {
  display: block;
}

.fixed-bottom {
  width: calc(100% - 40px);
  position: fixed;
  z-index: 99;
  bottom: 40px;
  left: 20px;
}

.point-card {
  display: block;
  text-decoration: none;
  border-radius: 50px;
  background: linear-gradient(90deg, #FFF 33.72%, #FFF5F5 74.24%);
  box-shadow: 0 8px 30px 0 rgba(245, 0, 0, 0.08);
  position: relative;
  color: #A355F5;
  font-size: 44px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.08em;
  padding: 60px 320px 60px 60px;
  margin-top: 40px;
}

.point-card img {
  width: 319px;
  position: absolute;
  right: 0;
  bottom: -1px;
}

.point-card span {
  color: #E93F45;
  ;
}

.gifts-title {
  font-size: 44px;
  color: #464444;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.1em;
  text-align: center;
}

.gifts-note {
  color: #D70C18;
  font-size: 18px;
  font-weight: 400;
  text-align: center;
}

.gifts-row {
  margin-top: 40px;
  margin: 40px -10px -40px -10px;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}

.gifts-col {
  display: inline-block;
  padding: 0 10px;
  margin-bottom: 40px;
}

.check-container {
  display: block;
  cursor: pointer;
  position: relative;
}

.check-container input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.check-card {
  display: block;
  width: 160px;
  height: 160px;
  border: 4px solid #FFF;
  border-radius: 40px;
  background-size: 94px;
  background-repeat: no-repeat;
  background-position: center center;
  background-color: #fff;
  position: relative;
  box-sizing: border-box;
}

.check-container input:checked~.check-card {
  border: 4px solid #FABABE;
}

.check-btn {
  display: inline-block;
  width: 40px;
  height: 40px;
  background-image: url(../images/gifts/add.svg);
  background-repeat: no-repeat;
  background-size: 40px;
  position: absolute;
  bottom: 4px;
  right: 4px;
}

.check-container input:checked~.check-card .check-btn {
  background-image: url(../images/gifts/checked.svg);
}

.banner {
  margin-top: 62px;
  position: relative;
  height: 33.125vw;
  background-image: url(../images/gifts/gift-banner.png);
  background-size: cover;
}

.result-banner {
  margin-top: 62px;
  position: relative;
  height: 27.56vw;
  background-image: url(../images/gifts/result-banner.png);
  background-size: cover;
  background-position: center center;
}

.show-xs {
  display: none;
}

.banner-info {
  width: 100%;
  max-width: 1116px;
  padding: 0 28px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  margin-top: -20px;
}

.banner-sub-title {
  color: #FEF2A3;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.03em;
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  opacity: 0;
  animation: fadeInUp 1s forwards 0.1s cubic-bezier(0.19, 1, 0.22, 1);
}

.banner-sub-title span {
  display: inline-block;
  font-family: 'Poppins';
  font-size: 24px;
  font-weight: 600;
}

.banner-text {
  color: #FFF;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.03em;
  margin-bottom: 16px;
  opacity: 0;
  animation: fadeInUp 1s forwards 0.3s cubic-bezier(0.19, 1, 0.22, 1);
}

.slogan {
  opacity: 0;
  width: 453px;
  margin-bottom: 16px;
  animation: fadeInUp 1s forwards 0.2s cubic-bezier(0.19, 1, 0.22, 1);
}

@keyframes fadeInUp {
  0% {
    opacity: 0;
    transform: translateY(50px);
  }

  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

section {
  width: 100%;
  background-color: #FFF1F0;
  background-image: url(../images/gifts/background.png);
  background-position: bottom center;
  background-repeat: no-repeat;
  background-size: 100% auto;
  position: relative;
  z-index: 1;
  padding: 80px 0 164px;
  border-radius: 40px 40px 0 0;
  margin-top: -40px;
}

.result-section {
  width: 100%;
  background-color: #D70D18;
  background-image: url(../images/gifts/L.svg), url(../images/gifts/R.svg);
  background-position: top left, top right;
  background-repeat: no-repeat;
  background-size: 332px auto;
  position: relative;
  z-index: 1;
  padding: 60px 0;
  border-radius: 40px 40px 0 0;
  margin-top: -40px;
}

.container {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 20px;
}

.container.fix {
  max-width: 1162px;
}

.button-container {
  display: none;
}

header {
  width: 100%;
  height: 62px;
  position: fixed;
  top: 0;
  left: 0;
  background-color: #D70C18;
  padding: 0 34px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  z-index: 999;
}

.logo {
  display: inline-block;
  width: 128px;
}

.logo img {
  width: 100%;
}

.menu {
  display: inline-flex;
  padding: 0;
  margin: 0;
}

.menu li {
  display: inline-block;
  margin-left: 40px;
}

.menu li a {
  color: #FFF;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.08em;
  display: block;
  text-decoration: none;
}

.mission-note {
  color: #F00;
  text-align: center;
  font-size: 14px;
  font-weight: 400;
  margin-top: 4px;
}

.loading {
  position: fixed;
  width: 100%;
  height: 100%;
  background-color: #D70D18;
  z-index: 9999;
  transition: opacity 0.5s ease-out;
  pointer-events: none;
}

.loading.fade-out {
  opacity: 0;
  transform-origin: center center;
}

.loading-kv.active {
  animation: pop-shrink 1s forwards cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

@keyframes pop-shrink {
  0% {
    transform: scale(1);
    opacity: 1;
  }

  50% {
    transform: scale(1.1);
    opacity: 1;
  }

  100% {
    transform: scale(0);
    opacity: 0;
  }
}

canvas {
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 1;
}

.loading-kv-box {
  display: inline-block;
  width: 320px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 3;
}

.loading-kv {
  width: 100%;
  margin-bottom: 20px;
}

.loading-logo {
  width: 100%;
  position: absolute;
  left: 0;
  bottom: 24px;
  z-index: 3;
  text-align: center;
     color: #FFF;
text-align: center;
font-size: 12px;
font-weight: 500;
line-height: 1.6;
}
.loading-logo img{
  display: inline-block;
   width: 221px;
  }
.light-box {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 24px;
}

.loading-light {
  width: 10px;
  height: 10px;
  margin: 4px;
  border-radius: 50%;
  background-color: rgb(255, 255, 255);
}

.anim-growUp {
  animation-name: growUp;
  animation-duration: 700ms;
  animation-timing-function: ease-in;
  animation-direction: alternate;
  animation-iteration-count: infinite;
}

.anim-growUp-delay-1 {
  animation-delay: 350ms;
}

.anim-growUp-delay-2 {
  animation-delay: 700ms;
}


@keyframes growUp {
  0% {
    width: 10px;
    height: 10px;
    box-shadow: 0 0 0 transparent;
  }

  100% {
    width: 24px;
    height: 24px;
    box-shadow: 0 0 15px white;

  }
}

.modal-star {
  position: absolute;
  right: -36px;
  bottom: 90px;
  width: 64px;
}

.modal-tree {
  position: absolute;
  left: -30px;
  bottom: 40px;
  width: 55px;
}

.bg-light {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.bg-light img {
  width: 60vw;
  max-width: 1900px;
  min-width: 1000px;
  transform-origin: center center;
  animation: rotate linear 6s infinite;
}

.done-box {
  display: inline-flex;
  flex-direction: column;
  width: 240px;
}

.done-box .btn {
  width: 100%;
  margin-bottom: 8px;
  justify-content: center;
}

.typewriter {
  white-space: pre-wrap;
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

.done-icon {
  width: 250px;
  margin-bottom: 12px;
}

.red {
  color: #F00 !important;
}

.modal-close {
  display: inline-block;
  width: 36px;
  height: 36px;
  position: absolute;
  top: 6px;
  right: 6px;
  background-image: url(../images/miss-close.svg);
  background-size: cover;
}

.doll-mask,
.mission-mask,
.modal-mask {
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999;
  background: rgba(77, 77, 77, 0.70);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  display: none;
  align-items: center;
  justify-content: center;
}

.doll-body {
  width: 578px;
  position: relative;
  opacity: 0;
  z-index: 1;
}

.doll-body.fix {
  margin-top: 100px;
}

.doll-mask.active,
.mission-mask.active,
.modal-mask.active {
  display: flex;
}


.modal-mask.active .modal-body {
  animation: popup 0.5s forwards 0.1s;
}

@keyframes popup {
  0% {
    transform: translateY(50px);
    opacity: 0;
  }

  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

.doll-mask.active .doll-body,
.mission-mask.active .doll-body {
  transform: translateZ(0);
  will-change: transform, opacity;
  backface-visibility: hidden;
  animation: popupBounce 0.5s forwards cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.doll-mask.fix.active .doll-body {
  animation: popupBounce 0.5s forwards cubic-bezier(0.175, 0.885, 0.32, 1.275) 5.2s;
}

@keyframes popupBounce {
  0% {
    transform: scale(0.6);
    opacity: 0;
  }

  100% {
    transform: scale(1);
    opacity: 1;
  }
}

.doll-bg {
  width: 578px;
}

.modal-body {
  max-width: 760px;
  width: calc(100% - 48px);
  position: relative;
  opacity: 0;
  background-color: #fff;
  padding: 40px 30px;
  border-radius: 20px;
}

.modal-logo {
  width: 200px;
  height: 200px;
  border-radius: 50%;
  overflow: hidden;
  position: absolute;
  top: -24px;
  left: -24px;
  padding: 34px;
  background-color: #fff;
  box-shadow: 0 12px 16px rgba(0, 0, 0, 0.10);
}

.modal-logo img {
  width: 100%;
}

.modal-content {
  color: #4F4F4F;
  padding-left: 166px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.03em;
}

.modal-content h5 {
  color: #3C3C3C;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.04em;
  margin-bottom: 14px;
}

.modal-content p {
  margin-bottom: 14px;
}

.modal-content ul {
  padding-left: 1.5em;
  list-style-type: disc;
}
.modal-content ol {
  padding-left: 1.5em;
  list-style-type:decimal;
}
.modal-btn-box {
  padding: 40px 0;
  text-align: center;
  margin: 0 -6px;
}

.gift-btn {
  padding-top: 40px;
  text-align: center;
  margin: 0 -6px;
}

.modal-btn-box .btn,
.gift-btn a {
  margin: 0 6px;
  min-width: 232px;
  justify-content: center;
}

.note {
  color: #999;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.03em;
  margin-bottom: 14px;
}

.buble {
  width: 100%;
  height: auto;
  animation: rotate linear 20s infinite;
  transform-origin: center center;
}

@keyframes rotate {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

.doll-content {
  position: absolute;
  z-index: 1;
  top: 46%;
  left: 50%;
  width: 300px;
  text-align: center;
  transform: translate(-50%, -50%);
}

.doll-content.fix {
  position: static;
  transform: translate(0, 0);
  margin: 0 auto;
}

.doll-icon {
  width: 150px;
  margin-bottom: 8px;
}

.doll-title {
  color: #3C3C3C;
  font-size: 28px;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.08em;
  margin-bottom: 8px;
}

.doll-text {
  color: #4F4F4F;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.03em;
  margin-bottom: 20px;
}

.btn-box {
  display: flex;
  justify-content: center;
  margin: 0 -6px;
}

.btn-box a {
  margin: 0 6px;
}

.btn {
  height: 46px;
  border-radius: 46px;
  padding: 0 24px;
  display: inline-flex;
  align-items: center;
  color: #FFF;
  font-size: 16px;
  font-weight: 400;
  text-decoration: none;
  outline: none;
  position: relative;
  z-index: 1;
}

.btn::after {
  content: '';
  display: inline-block;
  background-color: #F00;
  border: solid 1px #F00;
  border-radius: 46px;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: -1;
  transition: transform 0.3s;
}

.btn.fix::after {
  box-shadow: -1px -3px 4px 0 rgba(0, 0, 0, 0.25) inset, 2px 4px 4px 0 rgba(255, 255, 255, 0.63) inset;
}

.btn:hover::after,
.btn-outline:hover::after {
  transform: translate(-50%, -50%) scale(1.06);
}

.btn-outline {
  height: 46px;
  border-radius: 46px;
  padding: 0 24px;
  display: inline-flex;
  align-items: center;
  color: #F00;
  font-size: 16px;
  font-weight: 400;
  text-decoration: none;
  outline: none;
  position: relative;
}

.btn-outline::after {
  content: '';
  display: inline-block;
  background-color: #FFF;
  border: solid 1px #F00;
  border-radius: 46px;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: -1;
  transition: transform 0.3s;
}

.btn-outline.fix {
  color: #fff;
}

.btn-outline.fix::after {
  background-color: rgba(255, 255, 255, 0.25);
  border: 1px solid #FFF;
  box-shadow: -1px -3px 4px 0 rgba(0, 0, 0, 0.25) inset, 2px 4px 4px 0 rgba(255, 255, 255, 0.63) inset;
}

.search {
  display: inline-block;
  width: 20px;
  height: 20px;
  background-image: url(../images/search-icon.svg);
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-position: center center;
  margin-left: 10px;
}

.next {
  display: inline-block;
  width: 20px;
  height: 20px;
  background-image: url(../images/next-icon.svg);
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-position: center center;
  margin-left: 10px;
}

.next.fix {
  background-image: url(../images/next-icon-1.svg);
}

.star {
  width: 64px;
  position: absolute;
  z-index: 4;
  top: 56px;
  right: 60px;
}

.star img {
  width: 100%;
  animation: float 8s alternate linear 1.5s infinite;
}

@keyframes float {
  0% {
    transform: translateY(0);
  }

  25% {
    transform: translateY(-12px);
  }

  50% {
    transform: translateY(10px);
  }

  75% {
    transform: translateY(-8px);
  }

  100% {
    transform: translateY(0);
  }
}

.tree-icon {
  width: 64px;
  position: absolute;
  z-index: 4;
  bottom: 106px;
  left: 50px;
}

.tree-icon img {
  width: 100%;
  animation: float 9.3s alternate linear 0s infinite;
}

.default-face {
  width: 240px;
  margin-bottom: 16px;
  margin-top: -160px;
}

.doll-tab {
  display: flex;
  margin-bottom: 20px;
}

.doll-tab li {
  width: 33.3%;
}

.doll-tab li a {
  display: block;
  color: #343434;
  text-align: center;
  font-size: 16px;
  font-weight: 400;
  padding: 8px 0;
  text-decoration: none;
  border-bottom: 4px solid transparent;
}

.doll-tab li a.active {
  border-bottom: 4px solid #F00;
}

.tab-box {
  position: relative;
}

.tab-panel {
  position: absolute;
  top: 0;
  left: 0;
  visibility: hidden;
}

.tab-panel.active {
  visibility: visible;
  position: relative;
  z-index: 1;
}

.doll-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin-bottom: 12px;
}

.doll-col {
  width: 33.3%;
  padding: 0 8px;
  margin-bottom: 4px;
}

.doll-container {
  display: block;
  cursor: pointer;
  position: relative;
}

.doll-container input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.doll-radio {
  display: block;
  width: 70px;
  height: 70px;
  border-radius: 50%;
  background-size: 100%;
  background-position: center center;
  background-color: #E6E6E6;
  transform-origin: center center;
  transition: transform 0.3s ease-in-out;
}

.doll-container input:checked~.doll-radio {
  background-color: #FFAEAE;
  transform: scale(0.8);
}

.doll-result {
  display: inline-block;
  position: relative;
  width: 250px;
  height: 250px;
  overflow: hidden;
  border-radius: 50%;
  margin-bottom: 20px;
}

.doll-result.fix {
  width: 60px;
  height: 60px;
  margin-bottom: 0;
}

.doll-result img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
}

.done-close {
  display: inline-block;
  width: 24px;
  height: 24px;
  position: absolute;
  top: 60px;
  right: 110px;
  background-image: url(../images/miss-close.svg);
  background-size: cover;
  z-index: 9;
}

.mission-cover {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 4;
  background: rgba(0, 0, 0, 0.40);
  display: none;
}

.mission-cover.active {
  display: block;
}

.notice-icon {
  display: none;
  padding: 12px 24px;
  align-items: center;
  color: #FFF;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.1em;
  border-radius: 50px;
  border: 1px solid #FFF;
  position: absolute;
  left: 50%;
  top: -102px;
  transform: translateX(-50%);
  white-space: nowrap;
}

.mission-notice.active .notice-icon {
  display: inline-flex;
  animation: fadeOut 0.5s forwards 3s;
}

.notice-icon img {
  width: 20px;
  margin-left: 12px;
}

.mission-notice {
  width: calc(100% - 40px);
  max-width: 434px;
  position: fixed;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  border-radius: 20px;
  background: rgba(215, 13, 24, 0.90);
  padding: 20px 20px 20px 30px;
  display: none;
}

.mission-notice.active {
  display: block;
}

@keyframes fadeOut {
  0% {
    opacity: 1;
  }

  100% {
    opacity: 0;
  }
}

.mission-close {
  display: inline-block;
  width: 24px;
  height: 24px;
  position: absolute;
  top: 4px;
  right: 4px;
  background-image: url(../images/miss-close.svg);
  background-size: cover;
}

.mission-info {
  display: flex;
  align-items: center;
}

.mission-notice-text {
  display: none;
  flex: 1;
  color: #FFF;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.56px;
  padding-left: 12px;
}

.mission-notice-text.active {
  display: block;
}

.mission-steps {
  width: 100%;
  top: -32px;
  position: absolute;
  left: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}

.mission-step {
  display: inline-block;
  width: 44px;
  height: 44px;
  background-color: #6D6D6D;
  border: solid 1px #fff;
  background-image: url(../images/store.svg);
  background-repeat: no-repeat;
  background-size: 20px;
  background-position: center center;
  border-radius: 50%;
}

.mission-step.active {
  background-image: url(../images/store-1.svg);
  background-color: #D70D18;
}

.arrow-1 {
  width: 8px;
  margin: 0 8px;
}

.tree {
  width: 320px;
  overflow: hidden;
  position: absolute;
  top: 525px;
  left: 1339px;
  z-index: 1;
}

.tree .tree-img {
  width: 1000%;
  animation: storeStep 1.2s steps(10) infinite;
}

.dog {
  width: 128px;
  overflow: hidden;
  position: absolute;
  top: 210px;
  left: 90px;
  z-index: 2;
}

.dog .dog-img {
  width: 800%;
  animation: storeStep 1.5s steps(8) infinite;
}

.talking {
  width: 131px;
  position: absolute;
  top: 720px;
  left: 1546px;
  z-index: 3;
}

.talking img {
  animation: floatB 6s alternate linear 0s infinite;
}

@keyframes floatB {
  0% {
    transform: translateY(0);
  }

  25% {
    transform: translateY(-6px);
  }

  50% {
    transform: translateY(5px);
  }

  75% {
    transform: translateY(-4px);
  }

  100% {
    transform: translateY(0);
  }
}

.ballon-1 {
  display: inline-block;
  width: 269px;
  position: absolute;
  top: 81px;
  right: 465px;
  z-index: 2;
}

.ballon-1 img {
  width: 100%;
  animation: float 9.3s alternate linear 0s infinite;
}

.ballon-2 {
  display: inline-block;
  width: 188px;
  position: absolute;
  top: 61px;
  right: 389px;
  z-index: 1;
}

.ballon-2 img {
  width: 100%;
  animation: float 7.6s alternate linear 0.2s infinite;
}

.store {
  display: inline-block;
  position: absolute;
  z-index: 1;
  overflow: hidden;
}

.store img {
  width: 200%;
  height: auto;
}

.store:hover img {
  animation: storeStep 0.3s steps(2) infinite;
}

.mission {
  display: inline-block;
  position: absolute;
  z-index: 1;
  overflow: hidden;
}

.mission img {
  width: 200%;
  height: auto;
}

.mission.active {
  z-index: 5;
}

.mission.active img {
  animation: storeStep 0.3s steps(2) infinite;
}

.mission:hover img {
  animation: storeStep 0.3s steps(2) infinite;
}

@keyframes storeStep {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-100%);
  }
}

.store-1 {
  width: 220px;
  top: 96px;
  left: 149px;
}

.store-2 {
  width: 224px;
  top: 469px;
  left: 100px;
}

.store-3 {
  width: 230px;
  top: 710px;
  left: 70px;
}

.store-4 {
  width: 250px;
  top: 1060px;
  left: 45px;
}

.store-5 {
  width: 212px;
  top: 205px;
  left: 400px;
}

.store-6 {
  width: 238px;
  top: 1240px;
  left: 275px;
}

.store-7 {
  width: 254px;
  top: 620px;
  left: 610px;
}

.store-8 {
  width: 412px;
  top: 180px;
  left: 790px;
}

.mission-2 {
  width: 169px;
  top: 558px;
  left: 1006px;
}

.store-10 {
  width: 214px;
  top: 970px;
  left: 1090px;
}

.store-11 {
  width: 201px;
  top: 1260px;
  left: 850px;
}

.store-12 {
  width: 237px;
  top: 330px;
  left: 1300px;
}

.store-13 {
  width: 231px;
  top: 1056px;
  left: 1380px;
}

.store-14 {
  width: 236px;
  top: 1260px;
  left: 1509px;
}

.store-15 {
  width: 221px;
  top: 135px;
  left: 2000px;
}

.store-16 {
  width: 237px;
  top: 250px;
  left: 1750px;
}

.mission-1 {
  width: 274px;
  top: 457px;
  left: 1605px;
}

.mission-3 {
  width: 288px;
  top: 740px;
  right: 572px;
}

.store-19 {
  width: 220px;
  top: 1066px;
  right: 792px;
}

.store-20 {
  width: 226px;
  top: 1260px;
  right: 883px;
}

.store-21 {
  width: 238px;
  top: 274px;
  right: 173px;
}

.store-22 {
  width: 210px;
  top: 450px;
  right: 389px;
}

.store-23 {
  width: 240px;
  top: 772px;
  right: 73px;
}

.store-24 {
  width: 303px;
  top: 917px;
  right: 335px;
}

.store-25 {
  width: 235px;
  top: 1200px;
  right: 55px;
}

.store-26 {
  width: 208px;
  top: 1260px;
  right: 331px;
}

#viewport {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

#content {
  position: absolute;
  width: 3000px;
  height: 1600px;
  background-image: url(../images/bg.png);
  background-size: 3000px 1600px;
  background-position: top left;
  transition: transform 0.3s linear;
}

.prev-btn {
  width: 80px;
  position: fixed;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  z-index: 3;
}

.next-btn {
  width: 80px;
  position: fixed;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  z-index: 3;
}

.prev-btn:hover,
.next-btn:hover {
  opacity: 0.8;
}

@media (max-width:1440px) {
  .banner {
    margin-top: 62px;
    position: relative;
    height: 477px;
    background-size: 1440px auto;
    background-position: bottom center;
    background-repeat: no-repeat;
  }

  .result-banner {
    margin-top: 62px;
    position: relative;
    height: 397px;
    background-size: 1440px auto;
    background-position: bottom center;
    background-repeat: no-repeat;
  }
}

@media (max-width:1366px) {

  .plate-1,
  .plate-2,
  .plate-3 {
    display: none;
  }
}

@media (max-width:1024px) {
  section {
    padding: 80px 0 264px;
  }

  .join {
    width: 100px;
    top: -150px;
  }

  .point-card {
    border-radius: 20px;
    font-size: 20px;
    padding: 20px 80px 20px 20px;
  }

  .point-card img {
    width: 98px;
  }

  .banner {
    background-position: bottom right -70px;
  }

  .slogan {
    width: 343px;
  }

}

@media (max-width:768px) {
  .result-title {
    font-size: 32px;
  }

  .result-note {
    font-size: 14px;
  }

  .result-col {
    width: 100%;
    margin-bottom: 12px;
  }

  .result-card {
    border-radius: 16px;
    border: 2px solid #FEF2A3;
    padding: 20px;
  }

  .result-img {
    width: 78px;
    height: 78px;
    margin-right: 20px;
    background-size: 78px;
    background-position: center center;
  }

  .result-info {
    padding-left: 20px;
    border-left: dotted 2px #EEABA9;
  }

  .result-name {
    font-size: 20px;
    margin-bottom: 4px;
  }

  .result-date {
    font-size: 14px;
    margin-bottom: 4px;
  }

  .result-text {
    font-size: 14px;
  }

  .share-list,
  .share-card span {
    display: none;
  }

  .share-mb {
    display: inline-flex;
    color: #FFF;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0.8px;
    text-decoration: none;
  }

  .share-mb img {
    margin-left: 4px;
  }

  .share-card {
    padding: 30px;

  }

  .gift-btn {
    padding-top: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin-bottom: -12px;
  }

  .gift-btn a {
    margin-bottom: 12px;
  }

  .gifts-title {
    font-size: 32px;
  }

  .gifts-note {
    font-size: 14px;
  }

  .gifts-row {
    margin-top: 40px;
    margin: 20px -6px -12px -6px;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
  }

  .gifts-col {
    display: inline-block;
    padding: 0 6px;
    margin-bottom: 12px;
  }

  .slogan {
    width: 320px;
  }

  .banner {
    margin-top: 54px;
    position: relative;
    height: 98.68vw;
    background-image: url(../images/gifts/gift-banner-1.png);
    background-size: cover;
    background-position: bottom center;
  }

  .result-banner {
    margin-top: 54px;
    position: relative;
    height: 53.33vw;
    background-image: url(../images/gifts/result-banner-1.png);
    background-size: cover;
  }

  .modal-logo {
    width: 120px;
    height: 120px;
    top: -60px;
    left: 50%;
    padding: 24px;
    margin-left: -60px;
  }

  .modal-body {
    width: calc(100% - 24px);
    position: relative;
    opacity: 0;
    background-color: #fff;
    padding: 70px 30px 30px 30px;
    border-radius: 16px;
    margin-top: 60px;
  }

  .modal-tree {
    width: 40px;
    position: absolute;
    left: -12px;
    bottom: 30px;
  }

  .modal-star {
    width: 40px;
    position: absolute;
    right: -6px;
    bottom: 80px;
  }

  .modal-content {
    padding-left: 0;
    overflow: auto;
    font-size: 14px;
  }

  .modal-btn-box {
    padding-top: 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin-bottom: -12px;
  }

  .modal-btn-box .btn {
    min-width: 232px;
    justify-content: center;
    margin: 0 0 12px 0;
  }

  .prev-btn,
  .next-btn {
    width: 40px;
  }

  .prev-btn img,
  .next-btn img {
    width: 100%;
  }

  header {
    height: 54px;
    padding: 0 20px;
  }

  .logo {
    width: 114px;
  }

  .button-container {
    display: inline-block;
    position: relative;
    height: 24px;
    width: 24px;
    cursor: pointer;
    z-index: 100;
    transition: opacity .25s ease;
  }


  .button-container.active .top {
    -webkit-transform: translateY(6px) translateX(0) rotate(45deg);
    transform: translateY(6px) translateX(0) rotate(45deg);
  }

  .button-container.active .middle {
    opacity: 0;
  }

  .button-container.active .bottom {
    -webkit-transform: translateY(-6px) translateX(0) rotate(-45deg);
    transform: translateY(-6px) translateX(0) rotate(-45deg);
  }

  .button-container span {
    border: none;
    height: 2px;
    width: 20px;
    border-radius: 2px;
    position: absolute;
    top: 5px;
    left: 2px;
    transition: all .35s ease;
    background-color: #fff;
  }

  .button-container span:nth-of-type(2) {
    top: 11px;
    width: 16px;
    left: 6px;
  }

  .button-container span:nth-of-type(3) {
    top: 17px;
  }

  .menu {
    position: absolute;
    top: 100%;
    left: 0;
    background-color: #D70C18;
    height: calc(100dvh - 54px);
    width: 100%;
    flex-direction: column;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s;
  }

  .menu.active {
    max-height: 100vh;
  }

  .menu>li {
    display: inline-block;
    margin-left: 0;
    padding: 16px 32px;
  }

  .menu>li:first-child {
    margin-top: 32px;
  }

  .menu>li>a {
    line-height: 1.4;
  }
  .warning-box {
    flex-direction: column;
    align-items: flex-start;
}
.warning-left {
    width:100%;
    font-size: 16px;
    padding-top: 24px;
    text-align: center;
}
.warning-right {
    width: 100%;
}
.footer-box{
  padding: 0;
}
.footer-right{
  display: none;
}
.footer-left {
    width: 100%;
    padding: 10px 0;
    text-align: center;
}
}

@media (max-width:540px) {
  #viewport {
    position: absolute;
    top: 0;
    left: 0;
    zoom: 0.7;
  }

  .banner {
    min-height: 380px;
  }

  .result-banner {
    min-height: 200px;
  }

  .show-xs {
    display: block;
  }

  .hide-xs {
    display: none;
  }

  .banner-info {
    margin-top: -10px;
  }

  .banner-sub-title {
    font-size: 14px;
    margin-bottom: 12px;
  }

  .banner-sub-title span {
    font-size: 20px;
  }

  .banner-text {
    font-size: 14px;
  }

  section {
    background-image: url(../images/gifts/background-1.png);
    border-radius: 20px 20px 0 0;
    margin-top: -20px;
    padding: 40px 0 244px;
  }

  .result-section {
    width: 100%;
    background-color: #D70D18;
    background-image: url(../images/gifts/L-1.svg), url(../images/gifts/R-1.svg);
    background-position: top left, top right;
    background-repeat: no-repeat;
    background-size: 83px auto;
    position: relative;
    z-index: 1;
    padding: 40px 0;
    border-radius: 20px 20px 0 0;
    margin-top: -20px;
  }

  .gifts-car-head {
    padding: 10px 20px;
  }

  .gifts-car-info {
    font-size: 14px;
  }

  .gift-num {
    font-size: 20px;
    margin: 0 6px;
  }

  .share-dog {
    width: 120px;
  }

  .fixed-bottom {
    bottom: 20px;
  }

  .gift-list {
    max-height: 159px;
  }

  .default-face {
    width: 180px;
    margin-bottom: 16px;
    margin-top: -160px;
  }

  .doll-result {
    width: 180px;
    height: 180px;
  }

  .star {
    width: 34px;
    position: absolute;
    z-index: 4;
    top: 66px;
    right: 110px;
  }

  .tree-icon {
    width: 30px;
    position: absolute;
    z-index: 4;
    bottom: 96px;
    left: 110px;
  }

  .point-card .btn {
    margin-top: 12px;
  }
  .slogan {
        width: 300px;
    }
}