@charset "utf-8";
/* CSS Document */
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
 margin: 0;
 padding: 0;
 border: 0;
 font-size: 100%;
 font: inherit;
 vertical-align: baseline;
}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
 display: block;
}
html, body {
 margin: 0;
 padding: 0;
 font-family: "YuGothic", "Yu Gothic", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "メイリオ", "Meiryo", "ＭＳ ゴシック", sans-serif;
 width: 100%;
 -webkit-text-size-adjust: 100%;
 background-color: #f4f4f4;
}
img {
 width: 100%;
 vertical-align: bottom;
}
*, *:before, *:after {
 -webkit-box-sizing: border-box;
 box-sizing: border-box
}
a:link, a:active, a:visited {
 text-decoration: none;
}
body {
 background-color: #FFF;
}
main {
 position: relative;
 z-index: 100;
}
#bg::before {
 content: '';
 position: fixed;
 top: 0;
 left: 0;
 right: 0;
 bottom: 0;
 background-repeat: repeat;
 background-position: center top;
 background-size: 180px auto; /*background-size: 375px auto;*/
 background-image: url("../img/bg.jpg");
 filter: brightness(0.6);
 z-index: 1;
 width: 100%;
 height: 100vh;
}
#start, #stamp, #next, #other {
 display: none;
}
.headBox {
 max-width: 560px;
 margin: 0 -25px;
 padding: 15px 10px 0;
 background-repeat: repeat;
 background-position: center top;
 background-size: 260px auto; /*background-size: 375px auto;*/
 background-image: url("../img/bg.jpg")
}
.wrapper {
 color: #FFF;
 background-color: #0091e2;
 max-width: 560px;
 margin: 0 auto;
 padding: 0 25px 25px;
}
html, body, #main_body {
 height: 100%;
}
.wrapper {
 height: auto;
 min-height: 100%;
}
.step1 {
 background-repeat: repeat;
 background-position: center top;
 background-size: 375px auto; /*background-size: 375px auto;*/
 background-image: url("../img/bg.jpg");
 padding: 0 1em 1em;
 margin: 0 -25px 1em;
 overflow: hidden;
}
.step1Img1 {
 position: relative;
 z-index: 100;
}
.step1Img2 {
 position: relative;
 z-index: 102;
 margin-top: -22%;
}
.ft {
 animation: bound-anim 1.5s;
 position: relative;
}
.anim2 {
 animation: bound-anim2 2s;
}
.anim3 {
 animation: bound-anim3 1.8s ease-in-out infinite alternate-reverse;
}
.sFont {
 font-size: 15px;
}
.tac {
 text-align: center;
}
.btnBox {
 background-color: #cccccc;
 font-size: 30px;
 font-weight: bold;
 border-radius: 2em;
 text-align: center;
 line-height: 1;
 letter-spacing: 0.05em;
 box-shadow: 0px 7px 0px 0 rgba(0, 0, 0, 0.85);
 margin: 20px auto;
 width: 90%;
}
.btnBox.on {
 color: #000;
 background-color: #fffa00;
 font-weight: bold;
 cursor: pointer;
}
.btnBox a {
 padding: 0.5em;
 color: #000;
 display: block;
}
.tasseiBox {
 max-width: 560px;
 margin: 30% auto 0;
 padding: 25px 25px 25px;
}
.modal {
 display: none;
 position: fixed;
 z-index: 1000;
 left: 0;
 top: 0;
 width: 100%;
 height: 100%;
 overflow: auto;
 background-color: rgba(0, 0, 0, 0.5);
 align-items: center;
}
.modalContent {
 color: #000;
 max-width: 560px;
 background-color: #fff;
 margin: 0 auto 0;
 padding: 30px 1em;
 border: 1px solid #888;
 width: 90%;
 position: relative;
}
.modal .txt1 {
 font-size: 24px;
 font-weight: bold;
 text-align: center;
 margin-bottom: 0.25em;
}
.modal .txt2 {
 font-size: 12px;
 text-align: center;
}
.modal .btnBox.on {
 font-size: 22px;
 padding: 0.8em;
 font-weight: bold;
 cursor: pointer;
 margin-bottom: 0;
}
#close {
 position: absolute;
 top: 15px;
 right: 15px;
 display: block;
 width: 30px;
 height: 30px;
 cursor: pointer;
}
.closeBtn {
 display: block;
 position: relative;
 width: 30px;
 height: 30px;
 background: #ec1e79;
}
.closeBtn::before, .closeBtn::after {
 content: "";
 position: absolute;
 top: 50%;
 left: 50%;
 width: 3px;
 height: 25px;
 background: #fff;
 border-radius: 8px;
}
.closeBtn::before {
 transform: translate(-50%, -50%) rotate(45deg);
}
.closeBtn::after {
 transform: translate(-50%, -50%) rotate(-45deg);
}
.stampBox {
 margin-top: 25px;
 background-color: #FFF;
 color: #ed1e79;
 border-radius: 12px;
 padding: 25px;
 font-size: 26px;
}
.stampTxt {
 font-size: 26px;
 text-align: center;
 font-weight: 900;
 line-height: 1.2;
 margin-bottom: 23px;
}
.stamps {
 display: flex;
 justify-content: space-between;
 flex-wrap: wrap;
 max-width: 400px;
 margin: 0 auto;
}
.stamps .obj {
 flex-basis: 48%;
 border: 2px solid #ed1e79;
 padding: 10px;
 margin-bottom: 4%;
 position: relative;
 z-index: 100;
}
.stamps .obj:nth-child(3), .stamps .obj:nth-child(4) {
 margin-bottom: 0;
}
.obj {
 position: relative;
}
@media screen and (min-width:560px) {
 .headBox {
  max-width: 560px;
  margin: 0 -25px;
  padding: 15px 10px 0;
 }
 .wrapper {
  border-left: 8px solid #f1a206;
  border-right: 8px solid #f1a206;
 }
 .modalContent {
  padding: 50px 0;
 }
 .stampBox {
  margin-top: 25px;
  padding: 35px 25px;
  font-size: 28px;
 }
 .step1Img2 {
  position: relative;
  z-index: 102;
  margin-top: -120px;
 }
 .tasseiBox {
  max-width: 440px;
  width: 80%;
  margin: 0 auto;
  padding: 200px 0 25px;
 }
}
.box1 {
 margin: 25px auto 15px; /*animation: bound-anim2 1s;*/
}
.box2 {
 width: 61.4666667%;
 margin: 0 auto 13%;
 animation: bound-anim 2s;
}
@keyframes bound-anim {
 0% {
  filter: blur(5px);
  transform: scale(8) translate(0px, 0px) rotateZ(0deg)
 }
 20% {
  transform: scale(1);
  filter: blur(5px);
 }
 21% {
  transform: scale(1);
  filter: blur(0);
 }
 25% {
  ;
  transform: translate(2px, 0) rotateZ(1deg)
 }
 26% {
  transform: translate(0px, 0) rotateZ(0deg)
 }
 27% {
  transform: translate(2px, 0px) rotateZ(-1deg)
 }
 28% {
  transform: translate(0px, 0px) rotateZ(0deg)
 }
}
@keyframes bound-anim2 {
 0% {
  transform: scale(1);
 }
 8% {
  transform: scale(0.9);
 }
 15% {
  transform: scale(1);
 }
 23% {
  transform: scale(0.8);
 }
 30% {
  transform: scale(1);
 }
 100% {
  transform: scale(1);
 }
}
@keyframes bound-anim3 {
 0% {
  transform: translateY(-1%);
 }
 100% {
  transform: translateY(1%);
 }
}