@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@500&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@700&display=swap");
* {
  box-sizing: border-box;
}

html,
body,
h1,
h2,
h3,
h4,
h5,
h6,
ul,
ol,
dl,
li,
dt,
dd,
p,
div,
span,
img,
a,
table,
tr,
th,
td {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: normal;
  font-size: 100%;
  vertical-align: baseline;
}

header,
footer,
nav,
section,
article,
aside,
figure,
figcaption {
  display: block;
}

body {
  line-height: 1;
}

ol,
ul {
  list-style: none;
  list-style-type: none;
}

a {
  text-decoration: none;
}

/*============================================
# ブレークポイント
============================================*/
/*============================================
# メディアクエリ
============================================*/
/*============================================
# vw変換
============================================*/
/*============================================
# 変数
============================================*/
:root {
  --font-color: #958870;
  --fs-md: 0.859375vw;
  --fs-copy: 0.9375vw;
  --maxWidth: 66.953125vw;
  --fs-md2: 11px;
  --fs-copy2: 12px;
  --maxWidth2: 897px;
}
@media screen and (max-width: 767.9px) {
  :root {
    --font-color: #736546;
  }
}
@media screen and (max-width: 767.9px) {
  :root {
    --fs-md: 2.6666666667vw;
    --fs-copy: 2.4vw;
  }
}

body {
  font-family: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  line-height: 1.7;
  color: var(--font-color);
  font-size: var(--fs-md);
  -moz-text-size-adjust: 100%;
       text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%; /* Safari */
}
@media screen and (max-width: 767.9px) {
  body {
    line-height: 1.6;
  }
}
body:has(.wrapper2) {
  font-size: var(--fs-md2);
}

img {
  vertical-align: bottom;
  height: auto;
  width: 100%;
}

button {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}

a, button {
  color: inherit;
}
@media screen and (min-width: 768px) {
  a, button {
    transition: opacity 0.2s ease;
  }
  a:hover, button:hover {
    opacity: 0.8;
  }
}

.pc {
  display: block;
}
@media screen and (max-width: 767.9px) {
  .pc {
    display: none;
  }
}

.sp {
  display: none;
}
@media screen and (max-width: 767.9px) {
  .sp {
    display: block;
  }
}

.wrapper {
  position: relative;
  overflow: hidden;
}

.wrapper {
  background: url("../images/bg.png") repeat center top/contain;
}

.wrapper:not(:has(#goodJob.hidden)) .footer {
  margin-top: 2.65625vw;
}
@media screen and (max-width: 767.9px) {
  .wrapper:not(:has(#goodJob.hidden)) .footer {
    margin-top: 8.2666666667vw;
  }
}
.wrapper:not(:has(#presentButtons.hidden)) .footer {
  margin-top: 0.46875vw;
}
@media screen and (max-width: 767.9px) {
  .wrapper:not(:has(#presentButtons.hidden)) .footer {
    margin-top: 5.4666666667vw;
  }
}
@media screen and (max-width: 767.9px) {
  .wrapper:not(:has(.hard-ttl.hidden)) .footer {
    margin-top: 8vw;
  }
}
@media screen and (max-width: 767.9px) {
  .wrapper:not(:has(#fantastic.hidden)) .footer {
    margin-top: 8.1333333333vw;
  }
}

#contents #puzzleContainment {
  margin-top: 3.515625vw;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment {
    margin-top: 8.5333333333vw;
  }
}
#contents #puzzleContainment:not(:has(#goodJob.hidden)) {
  margin-top: 1.171875vw;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment:not(:has(#goodJob.hidden)) {
    margin-top: 8.5333333333vw;
  }
}
#contents #puzzleContainment:not(:has(#goodJob.hidden)) #leftArea {
  padding-left: 0;
}
#contents #puzzleContainment:not(:has(#goodJob.hidden)) #leftArea #sourceImage {
  height: 22.578125vw !important;
  width: 33.671875vw !important;
  border: 0.3125vw solid #fff;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment:not(:has(#goodJob.hidden)) #leftArea #sourceImage {
    width: 100% !important;
    height: auto !important;
    border-width: 0.8vw;
  }
}
#contents #puzzleContainment:not(:has(#goodJob.hidden)) > div:not(.bottom-actions) {
  max-width: 72.03125vw;
  gap: 3.046875vw;
  align-items: center;
  padding-bottom: 0.78125vw;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment:not(:has(#goodJob.hidden)) > div:not(.bottom-actions) {
    max-width: 89.3333333333vw;
    gap: 5.2vw;
    padding-bottom: 2.4vw;
  }
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment:not(:has(#goodJob.hidden)) .bottom-actions {
    padding-top: 23.4666666667vw;
  }
}
#contents #puzzleContainment:not(:has(#fantastic.hidden)) {
  margin-top: 1.171875vw;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment:not(:has(#fantastic.hidden)) {
    margin-top: 8.2666666667vw;
  }
}
#contents #puzzleContainment:not(:has(#fantastic.hidden)) #leftArea {
  padding-left: 0;
}
#contents #puzzleContainment:not(:has(#fantastic.hidden)) #leftArea #sourceImage {
  height: 22.578125vw !important;
  width: 33.671875vw !important;
  border: 0.3125vw solid #fff;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment:not(:has(#fantastic.hidden)) #leftArea #sourceImage {
    width: 100% !important;
    height: auto !important;
    border-width: 0.8vw;
  }
}
#contents #puzzleContainment:not(:has(#fantastic.hidden)) > div:not(.bottom-actions) {
  max-width: 72.03125vw;
  gap: 3.046875vw;
  align-items: center;
  padding-bottom: 0.78125vw;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment:not(:has(#fantastic.hidden)) > div:not(.bottom-actions) {
    max-width: 89.6vw;
    gap: 5.2vw;
    padding-bottom: 2.4vw;
  }
}
#contents #puzzleContainment:not(:has(#fantastic.hidden)) .bottom-actions {
  max-width: 25.46875vw;
  gap: 1.25vw;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment:not(:has(#fantastic.hidden)) .bottom-actions {
    max-width: unset;
    margin-top: 33.3333333333vw;
    gap: 2.4vw;
  }
}
#contents #puzzleContainment:not(:has(#presentButtons.hidden)) {
  margin-top: 0.390625vw;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment:not(:has(#presentButtons.hidden)) {
    margin-top: 2.4vw;
  }
}
#contents #puzzleContainment:not(:has(#presentButtons.hidden)) > div {
  gap: 2.578125vw;
  max-width: 63.671875vw;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment:not(:has(#presentButtons.hidden)) > div {
    gap: 0;
    max-width: 85.7333333333vw;
  }
}
#contents #puzzleContainment:not(:has(#presentButtons.hidden)) #leftArea {
  text-align: center;
  padding-left: 0;
}
#contents #puzzleContainment:not(:has(#presentButtons.hidden)) #leftArea .present-ttl {
  display: block;
  transform: translateX(-0.546875vw);
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment:not(:has(#presentButtons.hidden)) #leftArea .present-ttl {
    transform: translateX(0);
  }
}
#contents #puzzleContainment:not(:has(#presentButtons.hidden)) #leftArea #sourceImage {
  height: 19.375vw !important;
  width: 28.90625vw !important;
  border: 0.3125vw solid #fff;
  margin-top: 0.9375vw;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment:not(:has(#presentButtons.hidden)) #leftArea #sourceImage {
    width: 82.1333333333vw !important;
    height: auto !important;
    border-width: 0.8vw;
    margin-top: 1.4666666667vw;
  }
}
#contents #puzzleContainment:not(:has(#presentButtons.hidden)) #rightArea {
  width: 25.625vw;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment:not(:has(#presentButtons.hidden)) #rightArea {
    width: 72.2666666667vw;
    margin: 4.9333333333vw auto 0;
  }
}
#contents #puzzleContainment:not(:has(#presentButtons.hidden)) #rightArea #pile {
  min-width: unset;
}
#contents #puzzleContainment:not(:has(#presentButtons.hidden)) .present-attention {
  display: block;
}
#contents #puzzleContainment:not(:has(#presentButtons.hidden)) .present-attention li {
  display: inline;
  font-weight: 500;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment:not(:has(#presentButtons.hidden)) .present-attention li {
    display: block;
  }
}
#contents #puzzleContainment:not(:has(#presentButtons.hidden)) .bottom-actions {
  margin-top: -0.234375vw;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment:not(:has(#presentButtons.hidden)) .bottom-actions {
    margin-top: 2.8vw;
  }
}
#contents #puzzleContainment:not(:has(.hard-ttl.hidden)) {
  margin-top: -0.859375vw;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment:not(:has(.hard-ttl.hidden)) {
    margin-top: 0;
  }
}
#contents #puzzleContainment:not(:has(.hard-ttl.hidden)) .bottom-actions {
  max-width: 25.46875vw;
  gap: 1.25vw;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment:not(:has(.hard-ttl.hidden)) .bottom-actions {
    max-width: unset;
    margin-top: 5.3333333333vw;
    gap: 2.5333333333vw;
  }
}
#contents #puzzleContainment:not(:has(#presentButtons.hidden)):has(.try-hard-btn.hidden) .bottom-actions {
  margin-top: 1.71875vw;
}
#contents #puzzleContainment .hard-ttl {
  width: 21.5625vw;
  margin-inline: auto;
  padding-bottom: 0.546875vw;
  transform: translateX(-0.15625vw);
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment .hard-ttl {
    width: 40.6666666667vw;
    padding-bottom: 1.6vw;
    transform: translateX(0);
  }
}
#contents #puzzleContainment .present-attention {
  display: none;
  text-align: center;
  margin-top: 0.78125vw;
  font-weight: 500;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment .present-attention {
    margin-top: 7.8666666667vw;
    text-align: left;
    width: 72.2666666667vw;
    margin-inline: auto;
    text-indent: -1.25em;
    padding-left: 1.25em;
  }
  #contents #puzzleContainment .present-attention li:not(:first-child) {
    margin-top: 0.9333333333vw;
  }
}
#contents #puzzleContainment > div {
  display: flex;
  max-width: 70.078125vw;
  margin: auto;
  gap: 3.4375vw;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment > div {
    display: block;
    max-width: 89.3333333333vw;
  }
}
#contents #puzzleContainment > div #leftArea {
  padding-left: 1.5625vw;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment > div #leftArea {
    padding-left: 0;
  }
}
#contents #puzzleContainment > div #leftArea #sourceImage {
  height: 21.015625vw;
  width: 31.5625vw;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment > div #leftArea #sourceImage {
    width: 100%;
    height: auto;
  }
}
#contents #puzzleContainment > div #leftArea .present-ttl {
  width: 35.078125vw;
  display: none;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment > div #leftArea .present-ttl {
    width: 85.7333333333vw;
  }
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment > div #rightArea {
    margin-top: 4.6666vw;
  }
}
#contents #puzzleContainment > div #rightArea #pile {
  min-width: 35.078125vw;
}
#contents #puzzleContainment > div #rightArea #puzzleSolved {
  text-align: center;
}
#contents #puzzleContainment > div #rightArea #puzzleSolved h2 {
  width: 100%;
  margin: 1.71875vw auto 0;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment > div #rightArea #puzzleSolved h2 {
    width: 100%;
    margin: 0 auto;
  }
}
#contents #puzzleContainment > div #rightArea #goodJob {
  margin-top: -0.46875vw;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment > div #rightArea #goodJob {
    margin-top: 0;
    padding-top: 1.3333333333vw;
  }
}
#contents #puzzleContainment > div #rightArea #goodJob h2 img {
  width: 37.890625vw;
  display: block;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment > div #rightArea #goodJob h2 img {
    width: 62.2666666667vw;
    margin: 0 auto;
  }
}
#contents #puzzleContainment > div #rightArea #goodJob .present-btn {
  width: 30.078125vw;
  display: block;
  margin-top: 1.09375vw;
  margin-left: 4.453125vw;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment > div #rightArea #goodJob .present-btn {
    width: 57.0666666667vw;
    margin-top: 4vw;
    margin-inline: auto;
  }
}
#contents #puzzleContainment > div #rightArea #fantastic {
  margin-top: -1.40625vw;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment > div #rightArea #fantastic {
    margin-top: 5.8666666667vw;
  }
}
#contents #puzzleContainment > div #rightArea #fantastic img {
  width: 38.515625vw;
  display: block;
  transform: translateX(0.3125vw);
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment > div #rightArea #fantastic img {
    width: 85.4666666667vw;
    transform: translateX(0);
    margin: 0 auto;
  }
}
#contents #puzzleContainment > div #rightArea #presentButtons {
  margin-top: 3.828125vw;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment > div #rightArea #presentButtons {
    margin-top: 5.0666666667vw;
  }
}
#contents #puzzleContainment > div #rightArea #presentButtons ul li:nth-child(2) {
  margin-top: 1.328125vw;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment > div #rightArea #presentButtons ul li:nth-child(2) {
    margin-top: 4.1333333333vw;
  }
}
#contents #puzzleContainment > div #rightArea .form-btn-sub {
  display: block;
  width: 24.6875vw;
  margin: 1.5625vw auto 0;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment > div #rightArea .form-btn-sub {
    width: 69.8666666667vw;
    margin-top: 3.7333333333vw;
  }
}
#contents #puzzleContainment > div #rightArea .form-btn {
  display: block;
  margin: 0.3125vw auto 0;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment > div #rightArea .form-btn {
    margin-top: 1.0666666667vw;
  }
}
#contents #puzzleContainment > div #rightArea .try-hard-btn {
  display: block;
  width: 17.96875vw;
  transform: translateX(0.3125vw);
  margin: 1.640625vw auto 0;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment > div #rightArea .try-hard-btn {
    width: 57.3333333333vw;
    transform: translateX(0);
    margin-top: 2.6666666667vw;
  }
}
#contents #puzzleContainment .bottom-actions {
  margin-top: 1.484375vw;
  display: flex;
  gap: 1.875vw;
  max-width: 24.140625vw;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment .bottom-actions {
    max-width: unset;
    flex-direction: column-reverse;
    gap: 2.1333333333vw;
    margin-top: 8vw;
  }
}
#contents #puzzleContainment .bottom-actions .restart-btn {
  width: 10.859375vw;
  display: block;
  margin-inline: auto;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment .bottom-actions .restart-btn {
    width: 37.0666666667vw;
  }
}
#contents #puzzleContainment .bottom-actions .share-btn {
  display: block;
  width: 11.40625vw;
  margin-inline: auto;
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment .bottom-actions .share-btn {
    width: 38.8vw;
  }
}
#contents #puzzleContainment .bottom-actions .hard-present-btn {
  display: block;
  width: 13.359375vw;
  transform: translateY(-0.078125vw);
}
@media screen and (max-width: 767.9px) {
  #contents #puzzleContainment .bottom-actions .hard-present-btn {
    width: 57.0666666667vw;
    transform: translateY(0);
    margin-inline: auto;
  }
}

.footer {
  height: 5.078125vw;
  background: url("../images/footer_bg.png") no-repeat center/100% 100%;
  text-align: center;
  display: grid;
  place-items: center;
  margin-top: 2.65625vw;
  position: relative;
}
@media screen and (max-width: 767.9px) {
  .footer {
    height: 14vw;
    margin-top: 8.4vw;
    background-image: url("../images/footer_bg_sp.png");
  }
}
.footer::after {
  content: "";
  position: absolute;
  top: -6.875vw;
  right: 2.34375vw;
  width: 8.828125vw;
  height: 10.390625vw;
  background: url("../images/footer_deco.png") no-repeat center/contain;
}
@media screen and (max-width: 767.9px) {
  .footer::after {
    top: -9.8666666667vw;
    right: 4.9333333333vw;
    width: 17.8666666667vw;
    height: 21.0666666667vw;
    background-image: url("../images/footer_deco_sp.png");
  }
}
.footer_copyright {
  color: #fff;
  font-size: var(--fs-copy);
}

/* required snapPuzzle styles */
.snappuzzle-wrap {
  position: relative;
  display: block;
  overflow: clip;
}

.snappuzzle-pile {
  position: relative;
}

.snappuzzle-piece {
  cursor: move;
}

.snappuzzle-slot {
  position: absolute;
  background: #fff;
  opacity: 0.8;
}

.snappuzzle-slot-hover {
  background: #eee;
}

.ui-draggable.ui-draggable-handle.correct {
  pointer-events: none !important;
}

.ui-draggable.ui-draggable-handle {
  background-repeat: no-repeat;
}

.hidden {
  display: none !important;
}