@charset "UTF-8";
/* ========================================
    common
        サイト全体の設定、定義など
======================================== */
/* YUI 3.5.0 reset.css (http://developer.yahoo.com/yui/3/cssreset/) - https://cssreset.com/ */
html {
  color: #000;
  background: #FFF;
}

body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, textarea, p, blockquote, th, td {
  margin: 0;
  padding: 0;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

fieldset, img {
  border: 0;
}

address, caption, cite, code, dfn, em, strong, th, var {
  font-style: normal;
  font-weight: normal;
}

ol, ul {
  list-style: none;
}

caption, th {
  text-align: left;
}

h1, h2, h3, h4, h5, h6 {
  font-size: 100%;
  font-weight: normal;
}

q:before, q:after {
  content: '';
}

abbr, acronym {
  border: 0;
  font-variant: normal;
}

sup {
  vertical-align: text-top;
}

sub {
  vertical-align: text-bottom;
}

input, textarea, select {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
}

input, textarea, select {
  *font-size: 100%;
}

legend {
  color: #000;
}

#yui3-css-stamp.cssreset {
  display: none;
}

/* ========================================
    
    base
        タグに直接効かせるスタイル

    INDEX
        - common
        - anti-aliasing
        - form

======================================== */
/* ========================================
    common
======================================== */
* {
  box-sizing: border-box;
}

body {
  font-family: "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: 83%;
  line-height: 1.75;
  font-feature-settings: "pkna";
  color: white;
}

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

a {
  outline: none;
  text-decoration: none;
}

/* ========================================
    anti-aliasing
======================================== */
body,
html {
  -webkit-font-smoothing: subpixel-antialiased;
  -moz-osx-font-smoothing: unset;
}

@media only screen and (-webkit-min-device-pixel-ratio: 2), (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
  body,
  html {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }
}

/* ========================================
    form
======================================== */
@media screen and (max-width: 1080px) {
  input, textarea, select {
    font-size: 16px;
  }
}

input[type="submit"],
input[type="reset"],
input[type="button"],
input[type="text"],
input[type="email"],
input[type="file"],
textarea,
select {
  max-width: 100%;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: white;
  color: black;
}

input[type="text"],
input[type="email"],
input[type="submit"],
input[type="reset"],
input[type="button"],
input[type="email"],
textarea {
  border-radius: 0;
  border: none;
  box-sizing: border-box;
  background-color: transparent;
  background-color: white;
  color: black;
}

input[type="text"]:-webkit-search-decoration,
input[type="email"]:-webkit-search-decoration,
input[type="submit"]:-webkit-search-decoration,
input[type="reset"]:-webkit-search-decoration,
input[type="button"]:-webkit-search-decoration,
input[type="email"]:-webkit-search-decoration,
textarea:-webkit-search-decoration {
  display: none;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="submit"]:focus,
input[type="reset"]:focus,
input[type="button"]:focus,
input[type="email"]:focus,
textarea:focus {
  outline-offset: -2px;
}

input[type="text"],
input[type="email"],
textarea {
  background-color: white;
  color: black;
  border-radius: 2px;
  padding: 3px;
  width: 100%;
}

input[type="text"],
input[type="email"] {
  height: 30px;
}

select {
  border: none;
  padding: 3px;
  border-radius: 2px;
  height: 30px;
}

/* ========================================
    
    parts
        付けるだけで動くスタイルのパーツ

    INDEX
        - element
        - layout
        - font
        - color
        - margin, padding
        - border

======================================== */
/* ========================================
    element
======================================== */
.pc-elem {
  display: block;
}

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

.sp-elem {
  display: none;
}

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

/* ========================================
    layout
======================================== */
.al-c {
  text-align: center !important;
}

.al-r {
  text-align: right !important;
}

.al-l {
  text-align: left !important;
}

.fr {
  float: right !important;
}

.fl {
  float: left !important;
}

.cf:after {
  content: "";
  display: table;
  clear: both;
}

/* ========================================
    font
======================================== */
.f-en {
  font-family: "Ovo", serif;
}

.f-jp {
  font-family: "Sawarabi Mincho";
}

.x-small {
  font-size: 0.6em;
}

.small {
  font-size: 0.8em;
}

.large {
  font-size: 1.2em;
}

.x-large {
  font-size: 1.4em;
}

.bold {
  font-weight: bold;
}

.italic {
  font-style: italic;
}

.link, .aem-post a,
.post-entry a {
  color: #e31277;
  border-bottom: 1px solid #e31277;
}

.highlight {
  background-color: #68396c;
  padding: 10px;
}

.highlight span {
  color: white;
}

/* ========================================
    color
======================================== */
.c-white {
  color: white !important;
}

.c-gray {
  color: gray !important;
}

.c-black {
  color: black !important;
}

.c-red {
  color: #ff292d !important;
}

.c-green {
  color: #0c2b04 !important;
}

.c-blue {
  color: #169bdd !important;
}

.c-darkblue {
  color: #000d22 !important;
}

.c-yellow {
  color: #edc53c !important;
}

.c-pink {
  color: #e31277 !important;
}

.c-purple {
  color: #351d37 !important;
}

.c-purple {
  color: #68396c !important;
}

.c-brown {
  color: #887047 !important;
}

.c-gold {
  color: #a17c28 !important;
}

/* ========================================
    margin, padding
======================================== */
.mt-0 {
  margin-top: 0px !important;
}

.mr-0 {
  margin-right: 0px !important;
}

.mb-0 {
  margin-bottom: 0px !important;
}

.ml-0 {
  margin-left: 0px !important;
}

.pt-0 {
  padding-top: 0px !important;
}

.pr-0 {
  padding-right: 0px !important;
}

.pb-0 {
  padding-bottom: 0px !important;
}

.pl-0 {
  padding-left: 0px !important;
}

.mt-5 {
  margin-top: 5px !important;
}

.mr-5 {
  margin-right: 5px !important;
}

.mb-5 {
  margin-bottom: 5px !important;
}

.ml-5 {
  margin-left: 5px !important;
}

.pt-5 {
  padding-top: 5px !important;
}

.pr-5 {
  padding-right: 5px !important;
}

.pb-5 {
  padding-bottom: 5px !important;
}

.pl-5 {
  padding-left: 5px !important;
}

.mt-10 {
  margin-top: 10px !important;
}

.mr-10 {
  margin-right: 10px !important;
}

.mb-10 {
  margin-bottom: 10px !important;
}

.ml-10 {
  margin-left: 10px !important;
}

.pt-10 {
  padding-top: 10px !important;
}

.pr-10 {
  padding-right: 10px !important;
}

.pb-10 {
  padding-bottom: 10px !important;
}

.pl-10 {
  padding-left: 10px !important;
}

.mt-15 {
  margin-top: 15px !important;
}

.mr-15 {
  margin-right: 15px !important;
}

.mb-15 {
  margin-bottom: 15px !important;
}

.ml-15 {
  margin-left: 15px !important;
}

.pt-15 {
  padding-top: 15px !important;
}

.pr-15 {
  padding-right: 15px !important;
}

.pb-15 {
  padding-bottom: 15px !important;
}

.pl-15 {
  padding-left: 15px !important;
}

.mt-20 {
  margin-top: 20px !important;
}

.mr-20 {
  margin-right: 20px !important;
}

.mb-20 {
  margin-bottom: 20px !important;
}

.ml-20 {
  margin-left: 20px !important;
}

.pt-20 {
  padding-top: 20px !important;
}

.pr-20 {
  padding-right: 20px !important;
}

.pb-20 {
  padding-bottom: 20px !important;
}

.pl-20 {
  padding-left: 20px !important;
}

.mt-25 {
  margin-top: 25px !important;
}

.mr-25 {
  margin-right: 25px !important;
}

.mb-25 {
  margin-bottom: 25px !important;
}

.ml-25 {
  margin-left: 25px !important;
}

.pt-25 {
  padding-top: 25px !important;
}

.pr-25 {
  padding-right: 25px !important;
}

.pb-25 {
  padding-bottom: 25px !important;
}

.pl-25 {
  padding-left: 25px !important;
}

.mt-30 {
  margin-top: 30px !important;
}

.mr-30 {
  margin-right: 30px !important;
}

.mb-30 {
  margin-bottom: 30px !important;
}

.ml-30 {
  margin-left: 30px !important;
}

.pt-30 {
  padding-top: 30px !important;
}

.pr-30 {
  padding-right: 30px !important;
}

.pb-30 {
  padding-bottom: 30px !important;
}

.pl-30 {
  padding-left: 30px !important;
}

.mt-35 {
  margin-top: 35px !important;
}

.mr-35 {
  margin-right: 35px !important;
}

.mb-35 {
  margin-bottom: 35px !important;
}

.ml-35 {
  margin-left: 35px !important;
}

.pt-35 {
  padding-top: 35px !important;
}

.pr-35 {
  padding-right: 35px !important;
}

.pb-35 {
  padding-bottom: 35px !important;
}

.pl-35 {
  padding-left: 35px !important;
}

.mt-40 {
  margin-top: 40px !important;
}

.mr-40 {
  margin-right: 40px !important;
}

.mb-40 {
  margin-bottom: 40px !important;
}

.ml-40 {
  margin-left: 40px !important;
}

.pt-40 {
  padding-top: 40px !important;
}

.pr-40 {
  padding-right: 40px !important;
}

.pb-40 {
  padding-bottom: 40px !important;
}

.pl-40 {
  padding-left: 40px !important;
}

.mt-45 {
  margin-top: 45px !important;
}

.mr-45 {
  margin-right: 45px !important;
}

.mb-45 {
  margin-bottom: 45px !important;
}

.ml-45 {
  margin-left: 45px !important;
}

.pt-45 {
  padding-top: 45px !important;
}

.pr-45 {
  padding-right: 45px !important;
}

.pb-45 {
  padding-bottom: 45px !important;
}

.pl-45 {
  padding-left: 45px !important;
}

.mt-50 {
  margin-top: 50px !important;
}

.mr-50 {
  margin-right: 50px !important;
}

.mb-50 {
  margin-bottom: 50px !important;
}

.ml-50 {
  margin-left: 50px !important;
}

.pt-50 {
  padding-top: 50px !important;
}

.pr-50 {
  padding-right: 50px !important;
}

.pb-50 {
  padding-bottom: 50px !important;
}

.pl-50 {
  padding-left: 50px !important;
}

.mt-55 {
  margin-top: 55px !important;
}

.mr-55 {
  margin-right: 55px !important;
}

.mb-55 {
  margin-bottom: 55px !important;
}

.ml-55 {
  margin-left: 55px !important;
}

.pt-55 {
  padding-top: 55px !important;
}

.pr-55 {
  padding-right: 55px !important;
}

.pb-55 {
  padding-bottom: 55px !important;
}

.pl-55 {
  padding-left: 55px !important;
}

.mt-60 {
  margin-top: 60px !important;
}

.mr-60 {
  margin-right: 60px !important;
}

.mb-60 {
  margin-bottom: 60px !important;
}

.ml-60 {
  margin-left: 60px !important;
}

.pt-60 {
  padding-top: 60px !important;
}

.pr-60 {
  padding-right: 60px !important;
}

.pb-60 {
  padding-bottom: 60px !important;
}

.pl-60 {
  padding-left: 60px !important;
}

.mt-65 {
  margin-top: 65px !important;
}

.mr-65 {
  margin-right: 65px !important;
}

.mb-65 {
  margin-bottom: 65px !important;
}

.ml-65 {
  margin-left: 65px !important;
}

.pt-65 {
  padding-top: 65px !important;
}

.pr-65 {
  padding-right: 65px !important;
}

.pb-65 {
  padding-bottom: 65px !important;
}

.pl-65 {
  padding-left: 65px !important;
}

.mt-70 {
  margin-top: 70px !important;
}

.mr-70 {
  margin-right: 70px !important;
}

.mb-70 {
  margin-bottom: 70px !important;
}

.ml-70 {
  margin-left: 70px !important;
}

.pt-70 {
  padding-top: 70px !important;
}

.pr-70 {
  padding-right: 70px !important;
}

.pb-70 {
  padding-bottom: 70px !important;
}

.pl-70 {
  padding-left: 70px !important;
}

.mt-75 {
  margin-top: 75px !important;
}

.mr-75 {
  margin-right: 75px !important;
}

.mb-75 {
  margin-bottom: 75px !important;
}

.ml-75 {
  margin-left: 75px !important;
}

.pt-75 {
  padding-top: 75px !important;
}

.pr-75 {
  padding-right: 75px !important;
}

.pb-75 {
  padding-bottom: 75px !important;
}

.pl-75 {
  padding-left: 75px !important;
}

.mt-80 {
  margin-top: 80px !important;
}

.mr-80 {
  margin-right: 80px !important;
}

.mb-80 {
  margin-bottom: 80px !important;
}

.ml-80 {
  margin-left: 80px !important;
}

.pt-80 {
  padding-top: 80px !important;
}

.pr-80 {
  padding-right: 80px !important;
}

.pb-80 {
  padding-bottom: 80px !important;
}

.pl-80 {
  padding-left: 80px !important;
}

.mt-85 {
  margin-top: 85px !important;
}

.mr-85 {
  margin-right: 85px !important;
}

.mb-85 {
  margin-bottom: 85px !important;
}

.ml-85 {
  margin-left: 85px !important;
}

.pt-85 {
  padding-top: 85px !important;
}

.pr-85 {
  padding-right: 85px !important;
}

.pb-85 {
  padding-bottom: 85px !important;
}

.pl-85 {
  padding-left: 85px !important;
}

.mt-90 {
  margin-top: 90px !important;
}

.mr-90 {
  margin-right: 90px !important;
}

.mb-90 {
  margin-bottom: 90px !important;
}

.ml-90 {
  margin-left: 90px !important;
}

.pt-90 {
  padding-top: 90px !important;
}

.pr-90 {
  padding-right: 90px !important;
}

.pb-90 {
  padding-bottom: 90px !important;
}

.pl-90 {
  padding-left: 90px !important;
}

.mt-95 {
  margin-top: 95px !important;
}

.mr-95 {
  margin-right: 95px !important;
}

.mb-95 {
  margin-bottom: 95px !important;
}

.ml-95 {
  margin-left: 95px !important;
}

.pt-95 {
  padding-top: 95px !important;
}

.pr-95 {
  padding-right: 95px !important;
}

.pb-95 {
  padding-bottom: 95px !important;
}

.pl-95 {
  padding-left: 95px !important;
}

.mt-100 {
  margin-top: 100px !important;
}

.mr-100 {
  margin-right: 100px !important;
}

.mb-100 {
  margin-bottom: 100px !important;
}

.ml-100 {
  margin-left: 100px !important;
}

.pt-100 {
  padding-top: 100px !important;
}

.pr-100 {
  padding-right: 100px !important;
}

.pb-100 {
  padding-bottom: 100px !important;
}

.pl-100 {
  padding-left: 100px !important;
}

.mt-105 {
  margin-top: 105px !important;
}

.mr-105 {
  margin-right: 105px !important;
}

.mb-105 {
  margin-bottom: 105px !important;
}

.ml-105 {
  margin-left: 105px !important;
}

.pt-105 {
  padding-top: 105px !important;
}

.pr-105 {
  padding-right: 105px !important;
}

.pb-105 {
  padding-bottom: 105px !important;
}

.pl-105 {
  padding-left: 105px !important;
}

.mt-110 {
  margin-top: 110px !important;
}

.mr-110 {
  margin-right: 110px !important;
}

.mb-110 {
  margin-bottom: 110px !important;
}

.ml-110 {
  margin-left: 110px !important;
}

.pt-110 {
  padding-top: 110px !important;
}

.pr-110 {
  padding-right: 110px !important;
}

.pb-110 {
  padding-bottom: 110px !important;
}

.pl-110 {
  padding-left: 110px !important;
}

.mt-115 {
  margin-top: 115px !important;
}

.mr-115 {
  margin-right: 115px !important;
}

.mb-115 {
  margin-bottom: 115px !important;
}

.ml-115 {
  margin-left: 115px !important;
}

.pt-115 {
  padding-top: 115px !important;
}

.pr-115 {
  padding-right: 115px !important;
}

.pb-115 {
  padding-bottom: 115px !important;
}

.pl-115 {
  padding-left: 115px !important;
}

.mt-120 {
  margin-top: 120px !important;
}

.mr-120 {
  margin-right: 120px !important;
}

.mb-120 {
  margin-bottom: 120px !important;
}

.ml-120 {
  margin-left: 120px !important;
}

.pt-120 {
  padding-top: 120px !important;
}

.pr-120 {
  padding-right: 120px !important;
}

.pb-120 {
  padding-bottom: 120px !important;
}

.pl-120 {
  padding-left: 120px !important;
}

/* ========================================
    border
======================================== */
hr {
  margin: 20px 0;
}

hr.solid {
  position: relative;
  border: none;
  border-top: 1px solid white;
  overflow: visible;
}

hr.solid:before, hr.solid:after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 8px;
  height: 8px;
  background-color: white;
  display: block;
  z-index: 2;
  margin: auto;
  color: white;
  border-radius: 100%;
}

hr.solid:before {
  left: 0;
}

hr.solid:after {
  right: 0;
}

hr.double {
  position: relative;
  border: none;
  border-top: 1px solid white;
  border-bottom: 1px solid white;
  height: 4px;
}

hr.solid--pink {
  border: none;
  border-top: 2px solid #e31277;
  margin: 10px 0;
}

hr.scale {
  border: none;
  width: 100%;
  height: 10px;
  margin: 5px 0;
  background-size: 100%;
  background-image: url("/images/common/green_line.png");
  background-repeat: no-repeat;
}

/* ========================================

    animation
        キーフレームアニメーションを定義する

    INDEX
        - opacity
        - anime

======================================== */
/* ========================================
    opacity
======================================== */
@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

/* ========================================
    anime
======================================== */
@keyframes pin {
  0% {
    opacity: 0;
    transform: translateY(-30px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes updown {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(10px);
  }
}

@keyframes sway {
  0%, 100% {
    transfrom: rotate(0);
  }
  50% {
    transform: rotate(5deg);
  }
}

@keyframes flashing {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.7;
  }
}

@keyframes slope {
  0%, 100% {
    transform: rotate(0);
  }
  50% {
    transform: rotate(-3deg);
  }
}

@keyframes rotate360 {
  0% {
    transform: rotate(0);
  }
  100% {
    transform: rotate(360deg);
  }
}

@keyframes shadowWhite {
  0%, 100% {
    box-shadow: 0 0 5px 5px white;
  }
  50% {
    box-shadow: 0 0 8px 8px white;
  }
}

@keyframes shadowPink {
  0%, 100% {
    box-shadow: 0 0 5px 5px #a62426;
  }
  50% {
    box-shadow: 0 0 15px 15px #a62426;
  }
}

@keyframes shadowOrange {
  0%, 100% {
    box-shadow: 0 0 5px 5px #834704;
  }
  50% {
    box-shadow: 0 0 15px 15px #834704;
  }
}

@keyframes furufuru {
  0% {
    transform: rotate(0);
  }
  3% {
    transform: rotate(5deg);
  }
  6% {
    transform: rotate(-5deg);
  }
  9% {
    transform: rotate(5deg);
  }
  12% {
    transform: rotate(-5deg);
  }
  15%, 100% {
    transform: rotate(0);
  }
}

@keyframes furufuruMin {
  0% {
    transform: rotate(0);
  }
  3% {
    transform: rotate(2deg);
  }
  6% {
    transform: rotate(-2deg);
  }
  9% {
    transform: rotate(2deg);
  }
  12% {
    transform: rotate(-2deg);
  }
  15%, 100% {
    transform: rotate(0);
  }
}

/* ========================================
    modules
        外部プラグインなどで使うもの
======================================== */
/* ========================================

    pager
        ページャーのパーツ

    INDEX
        - 機能
        - デザイン

======================================== */
/* ========================================
    機能
        アコーディオンとして使う際に最低限必要な機能
======================================== */
.js-accordion-title {
  cursor: pointer;
}

.js-accordion-body {
  display: none;
}

.js-accordion-body.open {
  display: block;
}

/* ========================================
    デザイン
        見た目の関するところ
======================================== */
.ac-menu dt {
  position: relative;
  background-color: black;
  padding: 10px 50px 10px 15px;
  transition: color 0.5s, background-color 0.5s, border-color 0.5s;
  border-bottom: 5px solid #351d37;
  font-weight: bold;
}

.ac-menu dt:not(:nth-of-type(1)) {
  margin-top: 10px;
}

.ac-menu dt:before {
  content: "";
  position: absolute;
  right: 0;
  bottom: -5px;
  margin: auto;
  background-image: url("/images/common/accordion_right.png");
  width: 78px;
  height: calc(100% + 5px);
  background-position: bottom;
  background-size: 100%;
  background-repeat: no-repeat;
}

.ac-menu dt:after {
  content: "";
  position: absolute;
  right: 8px;
  bottom: 2px;
  background-image: url("/images/common/accordion_close.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  height: 20px;
  width: 20px;
}

.ac-menu dt.js-open, .ac-menu dt.fixed-open {
  background-color: #351d37;
  border-color: black;
  color: #a17c28;
}

.ac-menu dt.js-open:after, .ac-menu dt.fixed-open:after {
  background-image: url("/images/common/accordion_open.png");
}

.ac-menu dd {
  background-color: black;
  padding: 5px 15px 10px;
}

.ac-menu dd.js-open {
  display: block;
}

/* ========================================

    inview
        inviedwのパーツ

    INDEX
        - 使い方
        - anime

======================================== */
/* ========================================
    anime
        アニメーションを定義
======================================== */
.inview-fade {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 2s cubic-bezier(0.215, 0.61, 0.355, 1), transform 2s cubic-bezier(0.215, 0.61, 0.355, 1);
}

.inview-fade.active {
  opacity: 1;
  transform: translateY(0);
}

/* ========================================
    components
        共通で使うパーツを書くスタイル
======================================== */
/* ========================================

    common
        共通に使えるパーツ

    INDEX
        - wrapper

======================================== */
/* ========================================
    wrapper
======================================== */
.wrapper {
  background-color: black;
  background-image: url("/images/common/bg.png");
}

.wrapper-inner {
  display: block;
  max-width: 414px;
  width: 100%;
  margin: auto;
  background-color: #a17c28;
  background-image: url("/images/common/pattern.png"), linear-gradient(to bottom, #a17c28 0%, #c6c65f 52%, #a17c28 100%);
  background-size: 20px;
}

.content-area {
  position: relative;
  background-color: #000d22;
  background-image: url("/images/common/bg_yellow.jpg");
  background-size: 100%;
  background-repeat: no-repeat;
  background-position: left top;
  padding-top: 130px;
  max-width: 375px;
  width: 100%;
  margin: auto;
  overflow: hidden;
}

.content-area:before {
  content: "";
  position: absolute;
  top: -12px;
  right: 0;
  left: 0;
  margin: auto;
  width: 42.5px;
  height: 86.5px;
  background-image: url("/images/common/light.png");
  background-size: 100%;
  background-repeat: no-repeat;
}

.content-area--red {
  background-image: url("/images/common/bg_red.jpg");
}

.content-area--green {
  background-image: url("/images/common/bg_green.jpg");
}

.content-area--black {
  background-image: none;
  background-color: black;
}

.content-area--black:before {
  display: none;
}

.content-area--nomember {
  background-image: url("/images/common/bg.png");
  background-repeat: repeat;
  padding-top: 100px;
}

.content-area--nomember:before {
  display: none;
}

.content-area--member {
  background-image: url("/images/common/bg_red.jpg");
  padding-top: 0;
}

.content-area--member:before {
  display: none;
}

.content {
  position: relative;
}

.content-title {
  position: relative;
  width: 100%;
  padding-top: 34.1333%;
  background-image: url("/images/common/top.png");
  background-size: 100%;
  background-repeat: no-repeat;
  pointer-events: none;
}

.content-title__img {
  position: absolute;
  top: -20px;
  right: 0;
  left: 0;
  width: 70%;
  margin: auto;
}

.section {
  background-color: #000d22;
  padding-top: 5px;
  padding-bottom: 5px;
}

.inner {
  padding: 15px;
}

.loading-overray {
  position: fixed;
  background-color: black;
  width: 100%;
  height: 100%;
  z-index: 9999;
  left: 0;
  top: 0;
  background-image: url("/images//loading.gif");
  background-size: 60px;
  background-repeat: no-repeat;
  background-position: center;
}

/* ========================================
    
    header
        ヘッダーのパーツ

    INDEX
        - common

======================================== */
/* ========================================
    common
======================================== */
.header {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 1;
}

.header .sub-logo__img {
  width: 128px;
}

/* ========================================

    footer
        フッターのパーツ

    INDEX
        - common

======================================== */
/* ========================================
    common
======================================== */
.footer {
  position: relative;
  background-color: #400d23;
  background-image: url("/images/common/pattern.png");
  background-size: 20px;
  margin-top: 80px;
  z-index: 100;
}

.pagetop-btn {
  position: absolute;
  top: -80px;
  right: 0;
  width: 80px;
}

.support-menu-list {
  padding-top: 10px;
}

.support-menu-list:after {
  content: "";
  display: table;
  clear: both;
}

.support-menu-list__item {
  float: left;
  width: 50%;
}

.support-menu-list__item a {
  display: block;
  padding: 10px;
  color: white;
  font-size: 12px;
}

.copy {
  font-family: "Ovo", serif;
  display: block;
  text-align: center;
  padding: 20px;
  font-size: 14px;
  letter-spacing: 2px;
}

/* ========================================
    
    sns
        ソーシャルメディア系のスタイル

    INDEX
        - menu

======================================== */
/* ========================================
    menu
======================================== */
.sns-menu__item, .sns-menu__item--twitter, .sns-menu__item--instagram, .sns-menu__item--facebook, .sns-menu__item--youtube, .sns-menu__item--line, .sns-menu__item--google {
  display: inline-block;
}

/* ========================================

    nav
        ナビゲーションのパーツ

    INDEX
        - global
        - trigger
        - sub
        - pnkz
        - members menu

======================================== */
.global-menu-light, .global-menu-list {
  transition: opacity 0.4s;
  opacity: 0;
}

.js-active.global-menu-light, .js-active.global-menu-list {
  transition: opacity 0.8s;
  opacity: 1;
}

/* ========================================
    global
======================================== */
.global-menu {
  display: none;
  position: fixed;
  top: 0;
  right: 0;
  z-index: 1000;
  background-color: black;
  width: 100%;
  height: 100%;
  padding-top: 90px;
}

.global-menu-light {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  width: 56px;
  height: 74px;
  margin: auto;
}

.global-menu-list {
  width: 80%;
  margin: auto;
  text-align: center;
}

.global-menu-list__item {
  margin-bottom: 5px;
}

.global-menu-list__item:nth-of-type(6) {
  margin-bottom: 20px;
}

.global-menu-list__item a {
  font-family: "Ovo", serif;
  display: inline-block;
  padding: 5px 10px;
  color: white;
  font-size: 14px;
  font-weight: bold;
}

.global-menu-list__item--3column {
  display: inline-block;
  width: 30%;
}

.global-menu-list__item--3column a {
  font-family: "Ovo", serif;
  display: block;
  color: white;
  font-weight: bold;
}

.global-menu-list__item--3column a img {
  display: block;
  margin: auto;
}

.global-menu.js-active {
  display: block;
}

.of-img {
  width: 21px;
}

.zikka-img {
  width: 26px;
}

.shop-img {
  width: 28px;
}

/* ========================================
    trigger
======================================== */
.trigger-menu {
  position: fixed;
  top: 0;
  right: 10px;
  width: 50px;
  height: 50px;
  z-index: 1100;
}

.trigger-menu:before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  background-image: url("/images/common/menu_icon.png");
  background-size: 24px;
  background-repeat: no-repeat;
  background-position: center;
}

.trigger-menu.js-active:before {
  background-image: url("/images/common/menu_icon_close.png");
}

.link-none {
  opacity: 0.2;
  pointer-events: none;
}

/* ========================================
    sub
======================================== */
/* ========================================
    pnkz
======================================== */
/* ========================================
    members menu
======================================== */
/* ========================================

    support
        サポートのパーツ

    INDEX
        - area
        - list

======================================== */
/* ========================================
    area
======================================== */
/* ========================================
    list
======================================== */
/* ========================================

    pager
        ページャーのパーツ

    INDEX
        - pager

======================================== */
/* ========================================
    pager
======================================== */
.pager .btn-back, .pager .btn-next {
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  display: block;
  background-size: 100%;
  background-repeat: no-repeat;
  width: 27px;
  height: 20px;
}

.pager .btn-list:before, .pager .btn-list span:before {
  position: absolute;
  top: 0.5px;
  bottom: 0;
  margin: auto;
  border-top: 1px solid white;
  width: 20%;
  height: 1px;
}

.pager .btn-list:after, .pager .btn-list span:after {
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  width: 6px;
  height: 6px;
  background-color: white;
  border-radius: 100%;
}

.pager {
  position: relative;
  margin: 20px 15px;
  min-height: 20px;
}

.pager .btn-back {
  background-image: url("/images/common/prev.png");
  left: 0;
}

.pager .btn-list {
  position: relative;
  display: block;
  width: 36%;
  padding: 10px;
  margin: auto;
  text-align: center;
  color: white;
  letter-spacing: 1px;
  font-size: 15px;
  font-family: "Ovo", serif;
}

.pager .btn-list:before {
  content: "";
  left: 0;
}

.pager .btn-list:after {
  content: "";
  left: 0;
}

.pager .btn-list span:before {
  content: "";
  right: 0;
}

.pager .btn-list span:after {
  content: "";
  right: 0;
}

.pager .btn-next {
  background-image: url("/images/common/next.png");
  right: 0;
}

.pager .btn-num {
  display: block;
  width: 80%;
  margin: auto;
  text-align: center;
}

.pager .btn-num__item {
  display: inline-block;
  padding: 0 3px;
  margin: 0px 4px;
  color: white;
  font-family: "Ovo", serif;
  font-size: 14px;
}

.pager .btn-num__item.current {
  position: relative;
  color: #e31277;
}

.pager .btn-num__item.current:before {
  content: "";
  position: absolute;
  bottom: -5px;
  right: 0;
  left: 0;
  margin: auto;
  width: 2px;
  height: 2px;
  background-color: #e31277;
}

.pager .btn-none {
  pointer-events: none;
  opacity: 0.2;
}

/* ========================================

    title
        見出しのパーツ

    INDEX
        - section
        - main
        - sub

======================================== */
/* ========================================
    global
        大見出し
======================================== */
.section-title, .section-title--en {
  position: relative;
  text-align: center;
  font-size: 14px;
  font-weight: bold;
  margin-bottom: 30px;
  z-index: 0;
  font-family: "Sawarabi Mincho";
}

.section-title:before, .section-title--en:before {
  content: "";
  position: absolute;
  top: -10px;
  right: 0;
  left: 0;
  margin: auto;
  background-image: url("/images/common/unyounyo_line2.png");
  width: 100%;
  height: 13px;
  background-size: 100%;
  background-repeat: no-repeat;
  transform: rotate(180deg);
  z-index: 2;
}

.section-title:after, .section-title--en:after {
  content: "";
  position: absolute;
  bottom: -10px;
  right: 0;
  left: 0;
  margin: auto;
  background-image: url("/images/common/unyounyo_line2.png");
  width: 100%;
  height: 13px;
  background-size: 100%;
  background-repeat: no-repeat;
}

.section-title__inner {
  position: relative;
  padding: 20px 10px 15px;
  width: 97%;
  background-color: black;
  margin: auto;
}

.section-title__inner:before {
  content: "";
  position: absolute;
  top: -5px;
  right: 0;
  left: 0;
  margin: auto;
  width: 26px;
  height: 23px;
  background-image: url("/images/common/menu_icon.png");
  background-repeat: no-repeat;
  background-size: 100%;
  z-index: 3;
}

.section-title--en {
  font-family: "Ovo", serif;
}

.content-title .section-title, .content-title .section-title--en {
  position: absolute;
  width: 95%;
  top: 30px;
  right: 0;
  left: 0;
  margin: auto;
}

/* ========================================
    main
        中見出し
======================================== */
.main-title, .main-title--en, .border-title, .border-title--en {
  position: relative;
  color: white;
  border-bottom: 2px solid white;
  background-image: url("/images/common/unyo_line.png");
  background-size: 100%;
  background-repeat: no-repeat;
  background-position: bottom;
  font-weight: bold;
  line-height: 1.6;
  padding: 0 3px 11px;
  margin-top: 40px;
  margin-bottom: 15px;
  font-family: "Sawarabi Mincho";
}

.main-title:before, .main-title--en:before, .border-title:before, .border-title--en:before {
  content: "";
  position: absolute;
  bottom: 3px;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: white;
  content: "";
  width: 100%;
  height: 1px;
}

.main-title--en {
  font-family: "Ovo", serif;
}

.border-title, .border-title--en {
  background-image: none;
}

.border-title--en {
  font-family: "Ovo", serif;
}

/* ========================================
    sub
        子見出し
======================================== */
.sub-title {
  text-align: center;
  margin: 10px;
  font-size: 20px;
  letter-spacing: 3px;
  font-family: "Ovo", serif;
}

/* ========================================

    btn
        ボタンのスタイル

    INDEX
        - class
        - normal
        - special

======================================== */
.btn-100,
.btn-80, .btn-100--purple,
.btn-80--purple, .btn-50, .btn-50--purple, .btn-30, .btn-30--right, .btn-30--left {
  position: relative;
  padding: 9px;
  background-image: url("/images/common/pattern.png");
  background-repeat: repeat;
  background-size: 20px;
  background-color: #887047;
  z-index: 0;
}

.btn-100:before,
.btn-80:before, .btn-100--purple:before,
.btn-80--purple:before, .btn-50:before, .btn-50--purple:before, .btn-30:before, .btn-30--right:before, .btn-30--left:before {
  content: "";
  position: absolute;
  width: calc(100% - 10px);
  height: calc(100% - 10px);
  background-color: #887047;
  border: 1px solid black;
  z-index: -1;
  top: 4px;
  left: 4px;
}

.btn-100 a, .btn-80 a, .btn-100--purple a, .btn-80--purple a, .btn-50 a, .btn-50--purple a, .btn-30 a, .btn-30--right a, .btn-30--left a,
.btn-100 input,
.btn-80 input,
.btn-100--purple input,
.btn-80--purple input,
.btn-50 input,
.btn-50--purple input,
.btn-30 input,
.btn-30--right input,
.btn-30--left input,
.btn-100 button,
.btn-80 button,
.btn-100--purple button,
.btn-80--purple button,
.btn-50 button,
.btn-50--purple button,
.btn-30 button,
.btn-30--right button,
.btn-30--left button {
  display: block;
  width: 100%;
  text-align: center;
  margin: auto;
  padding: 7px;
  color: black;
  background-color: #887047;
  border: 1px solid black;
  font-size: 13px;
}

.btn-special-100 {
  display: table;
  margin: 10px auto;
  background-image: url("/images/common/btn_door.png");
  background-size: 100%;
  background-repeat: no-repeat;
  width: 286px;
  height: 53px;
}

.btn-special-100 a,
.btn-special-100 input,
.btn-special-100 button {
  color: white;
  display: table-cell;
  width: 100%;
  height: 100%;
  text-align: center;
  vertical-align: middle;
  font-size: 18px;
  text-shadow: 1px 1px black;
  letter-spacing: 1px;
  font-family: "Ovo", serif;
  cursor: pointer;
}

.btn-100,
.btn-80, .btn-100--purple,
.btn-80--purple {
  display: block;
  width: 80%;
  margin: 10px auto;
}

.btn-50, .btn-50--purple {
  display: inline-block;
  width: 49%;
  margin-top: 2px;
  margin-bottom: 2px;
}

.btn-30, .btn-30--right, .btn-30--left {
  display: block;
  width: 30%;
}

/* ========================================
    normal
        よく使うボタン
======================================== */
.btn-100--purple,
.btn-80--purple {
  background-color: #351d37;
}

.btn-100--purple a,
.btn-100--purple input,
.btn-100--purple button,
.btn-80--purple a,
.btn-80--purple input,
.btn-80--purple button {
  background-color: #351d37;
  color: white;
}

.btn-100--purple:before,
.btn-80--purple:before {
  background-color: #351d37;
}

.btn-50--purple {
  background-color: #351d37;
}

.btn-50--purple a,
.btn-50--purple input,
.btn-50--purple button {
  background-color: #351d37;
  color: white;
}

.btn-50--purple:before {
  background-color: #351d37;
}

.btn-30, .btn-30--right, .btn-30--left {
  margin: auto;
}

.btn-30--right {
  margin-right: 0;
  margin-left: auto;
}

.btn-30--left {
  margin-right: auto;
  margin-left: 0;
}

.btn-none {
  opacity: 0.5;
  pointer-events: none;
}

/* ========================================
    special
        特別目立たせたいボタン
======================================== */
/* ========================================
  
    list
        リストのスタイル

    INDEX
        - class
        - text list
        -- thumb list
        -- circle list
        -- min thumb list
        - article

======================================== */
.time {
  display: inline-block;
  font-family: "Ovo", serif;
  letter-spacing: 1px;
  color: white;
  margin-left: 5px;
  font-weight: bold;
  font-size: 12px;
}

.day {
  border-left: 1px solid rgba(255, 255, 255, 0.6);
  border-right: 1px solid rgba(255, 255, 255, 0.6);
  padding: 0 3px;
  color: white;
  font-size: 10px;
}

.cate {
  display: inline-block;
  font-family: "Ovo", serif;
  font-size: 0.8em;
  letter-spacing: 1px;
  font-weight: bold;
  margin-left: 5px;
  margin-right: 3px;
}

.new {
  display: inline-block;
  width: 49px;
  vertical-align: middle;
}

.list, .list--thumb, .list--circle, .list--minthumb, .list--opa {
  display: block;
}

.list__item {
  word-break: break-word;
  font-size: 13px;
  background-color: black;
  padding: 10px;
}

.list__item a {
  display: block;
  color: white;
}

.list__item:not(:first-child) {
  margin-top: 2px;
}

.list__item__contentwrap {
  position: relative;
}

.list__item__content {
  padding: 0 3px;
}

.list--thumb .list__item {
  position: relative;
  width: 48%;
  display: inline-block;
  vertical-align: top;
  margin-bottom: 20px;
  padding: 0 0 10px;
  background-color: transparent;
}

.list--thumb .list__item:not(:first-child) {
  margin-top: 0;
}

.list--thumb .list__item:nth-child(2n) {
  margin-left: 2%;
}

.list--thumb .list__item__contentwrap {
  margin-top: 5px;
}

.list--thumb .time {
  font-size: 10px;
}

.list--thumb .new {
  position: absolute;
  top: -18px;
  left: 0;
}

.list--circle .list__item {
  position: relative;
  width: 49%;
  display: inline-block;
  vertical-align: bottom;
  margin-bottom: 20px;
  padding: 0 10px;
  background-color: transparent;
  text-align: center;
}

.list--circle .list__item:not(:first-child) {
  margin-top: 0;
}

.list--circle .list__item:nth-child(2n) {
  margin-left: 0;
}

.list--circle .list__item__imgwrap {
  position: relative;
  border: 2px solid #7b6013;
  box-shadow: 0 0 0 2px #b38c2f;
  padding-top: 70%;
  margin: auto;
  margin-bottom: 5px;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.list--circle .list__item:nth-child(4n+2) .list__item__imgwrap {
  border-radius: 100%;
  padding-top: 100%;
}

.list--circle .list__item:nth-child(4n+3) .list__item__imgwrap {
  border-radius: 100%;
  padding-top: 80%;
}

.list--circle .list__item:nth-child(4n+4) .list__item__imgwrap {
  border-radius: 0;
  width: 80%;
  padding-top: 100%;
}

.list--circle .time {
  margin-left: 0;
  font-size: 10px;
}

.list--circle .new {
  width: 36px;
}

.list--minthumb .list__item {
  position: relative;
  width: 100%;
  vertical-align: top;
  padding: 13px 0 17px;
  background-color: transparent;
}

.list--minthumb .list__item:not(:first-child) {
  margin-top: 0;
}

.list--minthumb .list__item:before {
  content: "";
  position: absolute;
  bottom: 0px;
  left: 0;
  width: 100%;
  height: 10px;
  background-image: url("/images/common/green_line.png");
  background-size: 100%;
  background-repeat: no-repeat;
}

.list--minthumb .list__item a {
  padding: 0 15px;
}

.list--minthumb .list__item a:after {
  content: "";
  display: table;
  clear: both;
}

.list--minthumb .list__item__imgwrap {
  float: left;
  width: 30%;
  padding-top: 30%;
}

.list--minthumb .list__item__contentwrap {
  float: left;
  width: 70%;
  padding: 5px;
}

.list--opa .list__item {
  background-color: rgba(0, 0, 0, 0.9);
}

/* ========================================
    article
======================================== */
.border-wrapper {
  padding: 8px;
  background-color: #012464;
  background-image: url("/images/common/pattern.png");
  background-size: 20px;
}

.border-inner {
  background-color: #000d22;
  background-size: 25px;
}

/* ========================================
    
    movie
        動画関係のパーツ

    INDEX
        - youtube
        - milvi

======================================== */
/* ========================================
    youtube
======================================== */
.youtube {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}

.youtube iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
}

/* ========================================
    milvi
======================================== */
.eviry-screen {
  max-width: 100%;
  max-height: 100%;
  position: absolute !important;
  top: 0;
  left: 0;
  right: 0;
  margin: auto !important;
}

.eviry-baseplayer {
  position: absolute !important;
  max-width: 100%;
  top: 0;
  left: 0;
  width: 100%;
  height: 100% !important;
}

img.eviry-poster {
  margin-left: 0 !important;
  width: auto;
  left: 50%;
  transform: translateX(-50%);
}

.movie-container {
  position: relative;
  padding-top: 56.25%;
}

.eviry-baseplayer,
.eviry-deck,
.miovip-controlpanel {
  margin: 0 auto !important;
  width: 100% !important;
}

/* ========================================
    
    post entry
        管理画面からの登録した本文の見た目調整用

======================================== */
.aem-post,
.post-entry {
  font-size: 13px;
  overflow: hidden;
  word-wrap: break-word;
  text-align: justify;
  padding: 0 5px 20px;
}

.aem-post img,
.post-entry img {
  max-width: 100%;
  height: auto !important;
}

.aem-post img.blank-img,
.post-entry img.blank-img {
  height: 100% !important;
}

.aem-post h1,
.post-entry h1 {
  font-size: 2em;
}

.aem-post h2,
.post-entry h2 {
  font-size: 1.8em;
}

.aem-post h3,
.post-entry h3 {
  font-size: 1.6em;
}

.aem-post h4,
.post-entry h4 {
  font-size: 1.4em;
}

.aem-post h5,
.post-entry h5 {
  font-size: 1.2em;
}

.aem-post h6,
.post-entry h6 {
  font-size: 1em;
}

.aem-post table,
.aem-post iframe,
.post-entry table,
.post-entry iframe {
  max-width: 100%;
}

.aem-post table,
.post-entry table {
  width: 100%;
  table-layout: fixed;
  word-break: break-word;
}

/* ========================================
  
    category
        カテゴリのスタイル

    INDEX
        - class
        - list

======================================== */
/* ========================================
    list
======================================== */
.category-list {
  position: relative;
  padding: 0 30px;
}

.category-list:after, .category-list:before {
  content: "";
  position: absolute;
  top: 0;
  height: 100%;
  width: 20px;
  background-size: 8px;
  background-repeat: repeat-y;
}

.category-list:before {
  left: 0;
  background-image: url("/images/common/category_left.png");
  background-position: left;
}

.category-list:after {
  right: 0;
  background-image: url("/images/common/category_right.png");
  background-position: right;
}

.category-list__item {
  display: inline-block;
  padding: 3px 20px;
}

.category-list__item a {
  color: white;
}

.category-list__item.current {
  position: relative;
  color: #e31277;
}

.category-list__item.current:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  margin: auto;
  width: 14px;
  height: 7px;
  background-image: url("/images/common/finger_icon.png");
  background-size: contain;
}

/* ========================================

    table
        テーブルのパーツ

    INDEX
        - 機能
        - デザイン

======================================== */
/* ========================================
    機能
        テーブルとして使う際に最低限必要な機能
======================================== */
table {
  width: 90%;
  margin: 0 auto;
}

th, td {
  border: 1px solid white;
  text-align: left;
  padding: 5px;
}

/* ========================================
    デザイン
        見た目の関するところ
======================================== */
th.w_30 {
  width: 30%;
}

th.w_45 {
  width: 45%;
}

.table-title {
  background-color: #68396c;
  color: white;
  font-weight: bold;
  vertical-align: middle;
}

.table-row td {
  color: white;
}

/* ========================================

    wall
        壁にかけるパーツ

    INDEX
        - common
        - class
        - living
        - sebastian
        - familys key
        - majikos room
        - my page
        - fortune
        - majiko

======================================== */
.wall-left, .wall-right, .wall-left--living, .wall-right--living, .wall-right--toilet, .wall-left--sebastian, .wall-left--familyskey, .wall-left--majikosroom, .wall-left--mypage, .wall-right--mypage, .wall-top--fortune {
  position: absolute;
}

/* ========================================
    common
======================================== */
.wall-left {
  top: 75px;
  width: 96px;
  left: 4px;
}

.wall-right {
  top: 67px;
  width: 93px;
  right: 10px;
}

/* ========================================
    living
======================================== */
.wall-left--living {
  top: 46px;
  width: 140px;
  left: 11px;
  animation: 2s furufuruMin infinite;
}

.wall-left--living.active {
  animation: none;
}

.wall-right--living {
  right: 9px;
  top: 48px;
  width: 80px;
}

/* ========================================
    toilet
======================================== */
.wall-right--toilet {
  right: 19px;
  top: 62px;
  width: 54px;
}

/* ========================================
    sebastian
======================================== */
.wall-left--sebastian {
  top: 65px;
  width: 150px;
  left: 9px;
  animation: 6s updown infinite cubic-bezier(0.6, -0.28, 0.735, 0.045);
}

.wall-left--sebastian img {
  transform: rotate(-20deg);
}

/* ========================================
    familys key
======================================== */
.wall-left--familyskey {
  width: 180px;
  top: 57px;
  left: 13px;
}

/* ========================================
    majikos room
======================================== */
.wall-left--majikosroom {
  width: 232px;
  top: 64px;
  left: 20px;
}

/* ========================================
    my page
======================================== */
.wall-left--mypage {
  top: 54px;
  left: 8px;
  width: 88px;
}

.wall-right--mypage {
  right: 52px;
  top: 63px;
  width: 36px;
}

/* ========================================
    fortune
======================================== */
.wall-top--fortune {
  top: 0;
  left: 0;
  width: 100%;
}

/* ========================================
    character
======================================== */
.majiko {
  width: 100px;
  position: absolute;
  top: 45px;
  right: 0;
  transition: transform 1s;
  transform: translateX(100%);
}

.majiko.active {
  transform: translateX(0);
}

.mole, .mole--2 {
  width: 100px;
  position: absolute;
  top: 65px;
  right: 0;
  transition: transform 1s;
  transform: translateX(100%);
}

.mole.active, .active.mole--2 {
  transform: translateX(0);
}

.mole--2 {
  top: 80px;
}

/* ========================================
    animation
======================================== */
.furufuru {
  animation: 2s furufuruMin infinite;
}

.furufuru.active {
  animation: none;
}

/* ========================================

    lemon
        檸檬イラストのパーツ

    INDEX
        - lemon

======================================== */
/* ========================================
    lemon
======================================== */
.lemon--part3 {
  position: absolute;
  top: -40px;
  left: -50%;
  width: 100%;
  opacity: 0;
}

.lemon--part3.js-active {
  animation: 2s lemon3 linear;
}

@keyframes lemon3 {
  0% {
    opacity: 0;
    transform: translate(20px, 0);
  }
  10% {
    opacity: 1;
    transform: translate(10px, 10px);
  }
  20% {
    opacity: 1;
    transform: translate(0px, 20px);
  }
  80% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: translate(0, 300px);
  }
}

@media screen and (min-width: 768px) {
  /* ========================================
  
    hover
        ホバーの動きはここに定義して、
        %始まりのクラスをextendsして使いたい

    INDEX
        - opacity

======================================== */
  /* ========================================
    opacity
======================================== */
}

/* ========================================
    pages
        ページごとに独立するスタイル
======================================== */
/* ========================================

    index
        indexページのみで使うスタイル

    INDEX
        - main

======================================== */
/* ========================================
    main
======================================== */
/* ========================================

    regist
        registページのみで使うスタイル

    INDEX
        - icon list
        - credit list
        - career list
        - career logo

======================================== */
/* ========================================
   icon list
======================================== */
.regist-icon-list {
  margin: 10px 0;
  text-align: center;
  font-size: 0px;
}

.regist-icon-list:after {
  content: "";
  display: table;
  clear: both;
}

.regist-icon-list__item {
  display: inline-block;
  width: 22%;
  height: 80px;
  font-size: 10px;
  text-align: center;
  line-height: 1.4;
  background-color: #351d37;
}

.regist-icon-list__item:not(:first-child) {
  margin-left: 1.5%;
}

.regist-icon-list__item a {
  display: table;
  width: 100%;
  height: 100%;
  color: white;
}

.regist-icon-list__item a span {
  display: table-cell;
  text-align: center;
  vertical-align: middle;
}

/* ========================================
   credit list
======================================== */
.credit-list {
  text-align: center;
}

.credit-list__item {
  display: inline-block;
  margin-bottom: 5px;
  width: 30px;
}

.credit-list__item img {
  vertical-align: middle;
}

/* ========================================
   career list
======================================== */
/* ========================================
   career logo
======================================== */
.a-logo {
  vertical-align: middle;
  width: 140px;
  padding: 3px 6px;
  background-color: white;
}

.d-logo {
  width: 60px;
  background-color: white;
  padding: 3px 6px;
  vertical-align: middle;
}

.d-btn {
  width: 150px;
}

/* ========================================

    login
        loginページのみで使うスタイル

    INDEX
        - login btn

======================================== */
/* ========================================
   login btn
======================================== */
.login_button {
  text-align: center;
}

/* ========================================

    nomember
        nomemberページのみで使うスタイル

    INDEX
        - login btn
        - crystal
        - anime
        - section
        - list
        - obj
        - splash

======================================== */
/* ========================================
   login btn
======================================== */
.top-logo--nomember {
  width: 160px;
  margin: auto;
  margin-top: 30px;
}

/* ========================================
   crystal
======================================== */
.hand-sand {
  position: absolute;
  top: 0;
  width: 133px;
  right: 79px;
}

.crystal-area {
  position: relative;
  height: 200px;
}

.crystal-img {
  position: absolute;
  top: 0;
}

.entry-btn, .entry-btn--zikka, .entry-btn--official, .entry-btn--shop {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  margin: auto;
}

.entry-btn {
  width: 120px;
  top: 7px;
}

.entry-btn--zikka {
  width: 77px;
  top: 60px;
  left: -82px;
}

.entry-btn--zikka.active img {
  transform-origin: center bottom;
  animation: 1s furufuru infinite;
}

.entry-btn--official {
  width: 50px;
  top: 40px;
  right: -140px;
}

.entry-btn--shop {
  width: 40px;
  top: 120px;
  right: -100px;
}

/* ========================================
   anime
======================================== */
.anime-pin {
  opacity: 0;
  transform: translateY(30px);
}

.anime-pin.active {
  animation: pin 0.1s forwards cubic-bezier(0.55, 0.055, 0.675, 0.19);
}

.anime-entry {
  opacity: 0;
}

.anime-entry.active {
  animation: fadeIn 0.5s forwards cubic-bezier(0.55, 0.055, 0.675, 0.19);
}

/* ========================================
   section
======================================== */
.section--nomember {
  position: relative;
}

.family-title {
  position: absolute;
  top: 35px;
  width: 185px;
  margin: auto;
  right: 0;
  left: 0;
}

/* ========================================
   list
======================================== */
.nomember-list {
  position: absolute;
  top: 28%;
  right: 0;
  left: 0;
  width: 50%;
  margin: auto;
}

.nomember-list__item {
  text-align: center;
}

.nomember-list__item a {
  color: white;
  padding: 4%;
  display: inline-block;
  font-family: "Ovo", serif;
  letter-spacing: 2px;
}

/* ========================================
   obj
======================================== */
.nomember-obj, .nomember-obj--left, .nomember-obj--right, .nomember-obj--moon, .nomember-obj--star, .nomember-obj--eye {
  position: absolute;
}

.nomember-obj--left {
  top: 20px;
  left: 40px;
  width: 30px;
}

.nomember-obj--right {
  top: -28px;
  right: 5px;
  width: 60px;
}

.nomember-obj--moon {
  top: 10px;
  right: 10px;
  width: 105px;
}

.nomember-obj--star {
  top: 0;
  left: 0;
  width: 100%;
}

.nomember-obj--eye img {
  position: absolute;
  top: 0;
}

.eye-area {
  position: absolute;
  top: 0;
}

.eye-area div:nth-of-type(1) {
  top: 40px;
  left: 90px;
  width: 20px;
  height: 20px;
  animation: 2s roll-right 2s infinite;
}

.eye-area div:nth-of-type(2) {
  top: 144px;
  left: 35px;
  width: 10px;
  height: 10px;
  animation: 1s roll-left 1s infinite;
}

.eye-area div:nth-of-type(3) {
  top: 200px;
  left: 280px;
  width: 12px;
  height: 12px;
  animation: roll-right 0.4s infinite linear;
}

.eye-area div:nth-of-type(4) {
  top: 300px;
  left: 287px;
  width: 15px;
  height: 15px;
  animation: 1.5s roll-left 1.5s infinite cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

@keyframes roll-right {
  0% {
    transform: rotate(0);
  }
  100% {
    transform: rotate(360deg);
  }
}

@keyframes roll-left {
  0% {
    transform: rotate(0);
  }
  100% {
    transform: rotate(-360deg);
  }
}

/* ========================================
   obj
======================================== */
.regist-splash {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 999;
  background-color: black;
}

.regist-splash__section {
  display: none;
}

.regist-splash__section.active {
  display: block;
}

.regist-splash .onoff {
  text-align: center;
  margin-top: 200px;
}

.regist-splash .onoff .onoff__left, .regist-splash .onoff .onoff__right {
  display: inline-block;
  width: 100px;
  cursor: pointer;
}

.regist-splash .onoff__left {
  padding: 10px 28px;
  border-right: 1px solid white;
}

.regist-splash .onoff__right {
  padding: 18px;
}

.regist-splash .bg-door {
  background-image: url("/images/intro/bg.png");
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
  height: 100%;
}

.regist-splash .bell {
  position: absolute;
  top: 25%;
  right: 0;
  left: 0;
  width: 50vw;
  max-width: 270px;
  margin: auto;
  cursor: pointer;
}

@media screen and (max-width: 320px) {
  .regist-splash .bell {
    top: 24%;
  }
}

.regist-splash .bell img {
  position: absolute;
  top: 0;
}

.regist-splash .bell-text {
  position: absolute;
  top: 45%;
  width: 177px;
  right: 0;
  left: 0;
  margin: auto;
}

@media screen and (max-width: 320px) {
  .regist-splash .bell-text {
    top: 47%;
    width: 177px;
  }
}

.regist-splash .bell-box {
  position: absolute;
  top: 57%;
  right: 0;
  left: 0;
  margin: auto;
}

@media screen and (max-width: 320px) {
  .regist-splash .bell-box {
    top: 61%;
  }
}

.regist-splash .skip {
  position: absolute;
  bottom: 20px;
  right: 20px;
  width: 36px;
}

.regist-splash .family-text__content {
  position: relative;
  width: 80%;
  display: block;
  margin: auto;
  text-align: left;
  padding: 10px 15px;
  background-color: black;
  border: 1px solid white;
  border-radius: 3px;
  font-size: 16px;
  font-family: "Ovo", serif;
  letter-spacing: 1px;
}

@media screen and (max-width: 320px) {
  .regist-splash .family-text__content {
    padding: 5px 15px;
  }
}

.regist-splash .family-text__content:before {
  content: "";
  width: 13px;
  height: 25px;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 14px;
  margin: auto;
  background-size: cover;
  z-index: 1;
  background-image: url("/images/common/accordion_close.png");
}

.regist-splash .family-text__select {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  width: 80%;
  height: 50px;
  margin: auto;
  opacity: 0;
}

@media screen and (max-width: 320px) {
  .regist-splash .family-text__select {
    height: 40px;
  }
}

.regist-splash .js-non-active {
  display: none;
}

/* ========================================

    membertop
        membertopページのみで使うスタイル

    INDEX
        - title
        - image
        - member
        - banner
        - atelier
        - members

======================================== */
/* ========================================
   title
======================================== */
.header--member {
  height: 365px;
  position: relative;
  overflow: hidden;
}

.top-logo {
  width: 169px;
  position: absolute;
  top: 20px;
  right: 0;
  left: 0;
  margin: auto;
  z-index: 100;
}

.section--member, .section--member--news, .section--member--atelier, .section--member--menu {
  position: relative;
  z-index: 10;
  background-image: url("/images/top/all_bg.jpg");
}

.section--member--news {
  background-image: none;
}

.section--member--atelier {
  background-color: #0c2b04;
  margin-top: -15px;
  z-index: 9;
}

.section--member--menu {
  overflow: hidden;
  height: 390px;
  top: -3px;
}

.section--member--menu.add-majitter {
  height: 430px;
}

/* ========================================
   image
======================================== */
.layer-1 {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1;
}

.layer-2 {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 2;
}

.layer-3 {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 3;
}

.layer-4 {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 4;
}

.add-height {
  height: 100%;
}

.layer-4 {
  background: radial-gradient(closest-side circle at 50%, transparent 70%, transparent, rgba(0, 0, 0, 0.7));
}

.layer-4.pointer-none {
  pointer-events: none;
}

.membertop-hand1, .membertop-hand2, .membertop-hand3, .membertop-table, .membertop-light--right, .membertop-light--left, .membertop-spot, .membertop-cry--left, .membertop-cry--right, .membertop-enn, .membertop-knife, .membertop-fork, .membertop-man, .membertop-pin {
  position: absolute;
}

.membertop-hand1 {
  max-width: 114px;
  width: 30%;
  top: 138px;
  left: -10px;
  transform-origin: left center;
  animation: 4s slope infinite;
}

.membertop-hand2 {
  max-width: 150px;
  width: 47%;
  top: 80px;
  left: -46%;
  right: 0;
  margin: auto;
  transform-origin: right center;
  animation: 6s slope infinite;
}

.membertop-hand3 {
  position: absolute;
  top: -20px;
  left: 0;
  width: 141px;
}

.membertop-hand3__hand {
  position: relative;
  z-index: 1;
  pointer-events: none;
}

.membertop-hand3__water {
  position: absolute;
  top: 26px;
  right: 4px;
  width: 20px;
  height: 69px;
  display: block;
}

.membertop-hand3__water.active {
  display: none;
}

.membertop-frame {
  margin-top: 30px;
}

.membertop-table {
  width: 100%;
  top: 30px;
  left: 0;
}

.membertop-light--right {
  top: 0;
  right: 60px;
  width: 60px;
}

.membertop-light--right img {
  opacity: 0.7;
}

.membertop-light--right:before {
  content: "";
  width: 15px;
  height: 24px;
  border-radius: 100%;
  background-color: #834704;
  position: absolute;
  bottom: 41px;
  left: 0;
  right: 0;
  margin: auto;
  box-shadow: 0 0 5px 5px #834704;
  animation: 3s shadowOrange 3s infinite;
}

.membertop-light--left {
  top: -40px;
  left: 20px;
  width: 30px;
}

.membertop-light--left img {
  opacity: 0.7;
}

.membertop-light--left:before {
  content: "";
  width: 10px;
  height: 17px;
  border-radius: 100%;
  background-color: white;
  position: absolute;
  bottom: 24px;
  left: 0;
  right: 0;
  margin: auto;
  box-shadow: 0 0 5px 5px white;
  animation: 5s shadowWhite  5s infinite;
  opacity: 0.5;
}

.membertop-spot {
  top: 0px;
  left: 35px;
  width: 80px;
}

.membertop-spot img {
  opacity: 0.8;
}

.membertop-spot:before {
  content: "";
  width: 15px;
  height: 24px;
  border-radius: 100%;
  background-color: white;
  position: absolute;
  bottom: 29px;
  left: 0;
  right: 0;
  margin: auto;
  box-shadow: 0 0 5px 5px white;
  animation: 3s shadowWhite 2s infinite;
}

.membertop-cry--left {
  width: 73px;
  top: 234px;
  left: 0;
  animation: 4s flashing infinite;
}

.membertop-cry--left img {
  animation: 6s updown infinite linear;
}

.membertop-cry--right {
  width: 96px;
  top: 63px;
  right: 30px;
  animation: 2s flashing infinite;
}

.membertop-cry--right img {
  animation: 12s updown infinite linear;
}

.membertop-enn {
  width: 84px;
  right: -28px;
  top: 245px;
  animation: 20s rotate360 infinite linear;
}

.membertop-knife {
  top: 138px;
  width: 99px;
  right: 27px;
  animation: 8s updown infinite linear;
}

.membertop-knife img {
  animation: 4s sway infinite linear;
}

.membertop-fork {
  top: 177px;
  width: 57px;
  right: 15px;
  animation: 4s updown infinite linear;
}

.membertop-fork img {
  animation: 8s sway infinite linear;
}

.membertop-man {
  top: 135px;
  right: 0;
  left: 0;
  margin: auto;
  width: 33%;
}

.membertop-pin {
  top: 229px;
  right: 0;
  left: 0;
  width: 60px;
  margin: auto;
}

.membertop-pin img {
  transform-origin: center bottom;
  animation: 1s furufuru infinite;
}

@media screen and (max-width: 320px) {
  .membertop-pin {
    top: 216px;
    right: 0;
    left: 0;
    width: 40px;
    margin: auto;
  }
}

.membertop-calendar {
  position: absolute;
  top: 110px;
  right: 0;
  left: 0;
  margin: auto;
  width: 64px;
}

.membertop-calendar__day__1, .membertop-calendar__day__2 {
  float: left;
  width: 48%;
}

.membertop-calendar__day__2 {
  margin-left: 3%;
}

.membertop-calendar__month img {
  vertical-align: top;
  margin-top: 2px;
}

.membertop-silet {
  position: absolute;
  bottom: -40px;
  left: 0;
  width: 100px;
  z-index: 100;
  transition: 5s;
  transform: translateX(0) linear;
  pointer-events: none;
}

.membertop-silet.active {
  transform: translateX(220px);
}

.membertop-silet img {
  transform: rotateY(0);
}

.membertop-silet img.active {
  transform: rotateY(180deg);
}

/* ========================================
   member
======================================== */
.member-info {
  position: absolute;
  width: 65%;
  text-align: center;
  margin: auto;
  right: 0;
  left: 0;
  top: 200px;
  line-height: 1;
}

@media screen and (max-width: 320px) {
  .member-info {
    top: 292px;
  }
}

.member-info .member-info__text, .member-info .member-info__text--en {
  background-color: black;
  display: inline-block;
  line-height: 1;
  margin-bottom: 3px;
  letter-spacing: 2px;
  font-family: "Sawarabi Mincho";
}

.member-info__text {
  line-height: 1.4;
}

.member-info__text--en {
  font-family: "Ovo", serif;
}

/* ========================================
   banner
======================================== */
.banner-list {
  padding: 35px 20px 0;
  position: relative;
}

.banner-list__item a {
  border: 3px solid #6e0f39;
}

/* ========================================
   atelier
======================================== */
.atelier-area {
  overflow-x: scroll;
  -webkit-overflow-scrolling: touch;
  padding-top: 50px;
}

.atelier-list {
  position: relative;
  padding-bottom: 170px;
  background-image: url("/images/top/atelier_bg.png");
  background-size: contain;
}

.atelier-list:after {
  content: "";
  display: table;
  clear: both;
}

.atelier-list__item {
  position: relative;
  width: 125px;
  margin: -50px 0;
  padding: 0 1%;
  float: left;
}

.atelier-list__light {
  position: relative;
  width: 48px;
  display: block;
  margin: auto;
  z-index: 10;
}

.atelier-list__spot {
  position: absolute;
  top: 71px;
  opacity: 0.2;
  z-index: 2;
  right: 0;
  left: 0;
  margin: auto;
}

.atelier-list .atelier-list__pic1, .atelier-list .atelier-list__pic3, .atelier-list .atelier-list__pic2 {
  position: relative;
  width: 95%;
  display: block;
  margin: auto;
  z-index: 1;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  margin-top: 20px;
}

.atelier-list .atelier-list__pic1 img, .atelier-list .atelier-list__pic3 img, .atelier-list .atelier-list__pic2 img {
  transform: scale(1.1);
}

.atelier-list__pic1, .atelier-list__pic3 {
  border-radius: 100%;
}

.atelier-list__pic1 {
  margin-top: 20px;
}

.atelier-list__pic2 {
  border-radius: 0;
}

.atelier-btn {
  z-index: 1000;
  position: absolute;
  bottom: 17px;
  right: 0;
  left: 0;
}

/* ========================================
   members
======================================== */
.members-obj--footer, .members-obj--curtain, .members-obj--bg, .members-obj--door, .members-obj--star, .members-obj--majikosroom, .members-obj--qanda, .members-obj--fortune, .members-obj--livingroom, .members-obj--majimeotame, .members-obj--majime, .members-obj--otame, .members-obj--familyskey, .members-obj--sebastiansroom, .members-obj--leaf, .members-obj--overray, .members-obj--overray-inview, .members-obj--majikoimg, .members-obj--majikocomment, .members-obj--lemon, .members-obj--lemon2, .add-majitter .members-obj--footer, .add-majitter .members-obj--curtain, .add-majitter .members-obj--bg, .add-majitter .members-obj--door, .add-majitter .members-obj--star, .add-majitter .members-obj--majikosroom, .add-majitter .members-obj--qanda, .add-majitter .members-obj--fortune, .add-majitter .members-obj--livingroom, .add-majitter .members-obj--majimeotame, .add-majitter .members-obj--majime, .add-majitter .members-obj--otame, .add-majitter .members-obj--familyskey, .add-majitter .members-obj--sebastiansroom, .add-majitter .members-obj--majitter, .add-majitter .members-obj--leaf, .add-majitter .members-obj--overray, .add-majitter .members-obj--overray-inview, .add-majitter .members-obj--majikoimg, .add-majitter .members-obj--majikocomment, .add-majitter .members-obj--lemon, .add-majitter .members-obj--lemon2 {
  position: absolute;
}

.members-obj--footer {
  top: 168px;
  left: 0;
}

.members-obj--curtain {
  top: 0;
  left: 0;
}

.members-obj--bg {
  top: 0;
  left: 0;
}

.members-obj--door {
  top: 0;
  left: -32px;
  width: 75px;
  animation: 1s furufuruMin infinite;
}

.members-obj--door.active {
  animation: none;
}

.members-obj--star {
  top: 0;
  right: 0;
  width: 90px;
}

.members-obj--majikosroom {
  width: 137px;
  top: 0;
  left: 25px;
}

.members-obj--qanda {
  top: 12px;
  right: 6%;
  width: 191px;
}

.members-obj--fortune {
  width: 203px;
  left: -5px;
  top: 114px;
}

.members-obj--livingroom {
  width: 210px;
  right: 0;
  top: 97px;
}

.members-obj--majimeotame {
  width: 188px;
  top: 206px;
  padding-left: 13px;
  padding-right: 69px;
}

.members-obj--majime {
  top: 26%;
  left: 0;
  width: 57%;
}

.members-obj--otame {
  top: 57%;
  left: 15%;
  width: 67%;
}

.members-obj--familyskey {
  top: 243px;
  width: 123px;
  right: 0;
  left: 0;
  margin: auto;
}

.members-obj--sebastiansroom {
  top: 234px;
  width: 145px;
  right: 0px;
}

.members-obj--leaf {
  top: 164px;
  width: 180px;
  right: 0px;
  pointer-events: none;
}

.members-obj--overray {
  width: 100%;
  height: 100%;
  background-color: black;
  pointer-events: none;
  opacity: 0;
  transition: 0.3s;
}

.members-obj--overray.active {
  opacity: 0.8;
  pointer-events: auto;
}

.members-obj--overray-inview {
  width: 100%;
  height: 100%;
  background-color: black;
  pointer-events: none;
  opacity: 1;
  transition-delay: 1s;
  transition: 1s;
}

.members-obj--overray-inview.active {
  opacity: 0;
}

.members-obj--majikoimg {
  width: 92px;
  position: absolute;
  top: 110px;
  left: 31px;
  transition: 0.3s;
  transform: translateX(-100%);
}

.members-obj--majikoimg.active {
  transform: translateX(0);
}

.members-obj--majikocomment {
  width: 200px;
  position: absolute;
  top: 46px;
  left: 101px;
  color: white;
  transition: 0.3s;
  background-image: url("/images/top/comment.png");
  transform: translateX(-200%);
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
  height: 100px;
  padding: 16px 36px 34px 32px;
}

.members-obj--majikocomment a {
  display: block;
  height: 100%;
  width: 100%;
  color: white;
  overflow: hidden;
}

.members-obj--majikocomment:before {
  content: "";
  width: 30px;
  height: 15px;
  position: absolute;
  right: 43px;
  bottom: 12px;
  background-image: url("/images/top/right_hand.png");
  background-repeat: no-repeat;
  background-size: contain;
}

.members-obj--majikocomment.active {
  transform: translateX(0);
}

.members-obj--lemon {
  width: 92px;
  position: absolute;
  top: 110px;
  left: 31px;
  transition: 0s;
  transform: translateX(-100%);
}

.members-obj--lemon.active {
  transform: translateX(1000px);
  transition: 2s cubic-bezier(0.55, 0.055, 0.675, 0.19);
}

.members-obj--lemon2 {
  width: 92px;
  position: absolute;
  top: 110px;
  left: 31px;
  transition: 0s;
  transform: translateX(-100%);
}

.members-obj--lemon2.active {
  transform: translateX(1000px);
  transition: 2s cubic-bezier(0.55, 0.055, 0.675, 0.19);
}

.add-majitter .members-obj--footer {
  top: 199px;
  left: 0;
}

.add-majitter .members-obj--curtain {
  top: 0;
  left: 0;
}

.add-majitter .members-obj--bg {
  top: 0;
  left: 0;
}

.add-majitter .members-obj--door {
  top: 0;
  left: -32px;
  width: 75px;
  animation: 1s furufuruMin infinite;
}

.add-majitter .members-obj--door.active {
  animation: none;
}

.add-majitter .members-obj--star {
  top: 0;
  right: 0;
  width: 90px;
}

.add-majitter .members-obj--majikosroom {
  width: 137px;
  top: 0;
  left: 25px;
}

.add-majitter .members-obj--qanda {
  top: 12px;
  right: 6%;
  width: 191px;
}

.add-majitter .members-obj--fortune {
  width: 203px;
  left: -5px;
  top: 114px;
}

.add-majitter .members-obj--livingroom {
  width: 200px;
  right: 0;
  top: 97px;
}

.add-majitter .members-obj--majimeotame {
  width: 205px;
  top: 223px;
  padding-left: 17px;
  padding-right: 65px;
}

.add-majitter .members-obj--majime {
  top: 26%;
  left: -1px;
  width: 63%;
}

.add-majitter .members-obj--otame {
  top: 57%;
  left: 14%;
  width: 79%;
}

.add-majitter .members-obj--familyskey {
  top: 226px;
  width: 123px;
  right: -19px;
  left: 0;
  margin: auto;
}

.add-majitter .members-obj--sebastiansroom {
  top: 215px;
  width: 138px;
  right: -5px;
}

.add-majitter .members-obj--majitter {
  top: 314px;
  width: 165px;
  right: 0px;
}

.add-majitter .members-obj--leaf {
  top: 159px;
  width: 170px;
  right: -20px;
  pointer-events: none;
}

.add-majitter .members-obj--overray {
  width: 100%;
  height: 100%;
  background-color: black;
  pointer-events: none;
  opacity: 0;
  transition: 0.3s;
}

.add-majitter .members-obj--overray.active {
  opacity: 0.8;
  pointer-events: auto;
}

.add-majitter .members-obj--overray-inview {
  width: 100%;
  height: 100%;
  background-color: black;
  pointer-events: none;
  opacity: 1;
  transition-delay: 1s;
  transition: 1s;
}

.add-majitter .members-obj--overray-inview.active {
  opacity: 0;
}

.add-majitter .members-obj--majikoimg {
  width: 92px;
  position: absolute;
  top: 110px;
  left: 31px;
  transition: 0.3s;
  transform: translateX(-100%);
}

.add-majitter .members-obj--majikoimg.active {
  transform: translateX(0);
}

.add-majitter .members-obj--majikocomment {
  width: 200px;
  position: absolute;
  top: 46px;
  left: 101px;
  color: white;
  transition: 0.3s;
  background-image: url("/images/top/comment.png");
  transform: translateX(-200%);
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
  height: 100px;
  padding: 16px 36px 34px 32px;
}

.add-majitter .members-obj--majikocomment a {
  display: block;
  height: 100%;
  width: 100%;
  color: white;
  overflow: hidden;
}

.add-majitter .members-obj--majikocomment:before {
  content: "";
  width: 30px;
  height: 15px;
  position: absolute;
  right: 43px;
  bottom: 12px;
  background-image: url("/images/top/right_hand.png");
  background-repeat: no-repeat;
  background-size: contain;
}

.add-majitter .members-obj--majikocomment.active {
  transform: translateX(0);
}

.add-majitter .members-obj--lemon {
  width: 92px;
  position: absolute;
  top: 110px;
  left: 31px;
  transition: 0s;
  transform: translateX(-100%);
}

.add-majitter .members-obj--lemon.active {
  transform: translateX(1000px);
  transition: 2s cubic-bezier(0.55, 0.055, 0.675, 0.19);
}

.add-majitter .members-obj--lemon2 {
  width: 92px;
  position: absolute;
  top: 110px;
  left: 31px;
  transition: 0s;
  transform: translateX(-100%);
}

.add-majitter .members-obj--lemon2.active {
  transform: translateX(1000px);
  transition: 2s cubic-bezier(0.55, 0.055, 0.675, 0.19);
}

.shop-link {
  display: block;
  position: relative;
  z-index: 10;
}

/* ========================================

    fortune
        fortuneページのみで使うスタイル

    INDEX
        - crystal
        - anime
        - box

======================================== */
/* ========================================
   crystal
======================================== */
.crystal-images {
  position: absolute;
  top: 1px;
  right: 0;
  left: 0;
  margin: auto;
  width: 80%;
  padding-top: 85%;
  z-index: 0;
  overflow: hidden;
}

.crystal-images__hand {
  position: absolute;
  top: 0;
  z-index: 3;
}

.crystal-images__crystal {
  position: absolute;
  top: 48px;
  width: 80%;
  right: 0;
  left: 0;
  margin: auto;
  z-index: 2;
}

.crystal-images__shadow {
  position: absolute;
  bottom: 0;
  z-index: 1;
}

.crystal-images__circle {
  position: fixed;
  top: 27%;
  left: 25%;
  width: 50vw;
  height: 50vw;
  margin: auto;
  background-color: black;
  transition: 0.5s;
  border-radius: 100%;
}

.fortune-text {
  position: relative;
  z-index: 10;
}

/* ========================================
   anime
======================================== */
.js-up {
  transition: 1s;
  transform: translateY(0);
}

.js-up.active {
  transform: translateY(-100%);
}

.js-top.active {
  z-index: 9999;
}

.js-fadeout {
  opacity: 1;
  transition: 1s;
}

.js-fadeout.active {
  opacity: 0;
}

.js-blackout {
  transition: 0.5s;
  transform: scale(0);
}

.js-blackout.active {
  transform: scale(10);
}

/* ========================================
   box
======================================== */
.fortune-result__hand {
  position: relative;
  width: 80px;
  height: 80px;
  background-color: black;
  border: 4px double white;
  border-radius: 100%;
  margin: auto;
  box-shadow: 0px 0px 0px 1px white;
  overflow: hidden;
  z-index: 1;
}

.fortune-result__hand img {
  width: 60%;
  position: absolute;
  right: 0;
  bottom: -10px;
  left: 0;
  margin: auto;
  transition: 0.3s;
  transform: translateY(100%);
}

.fortune-result__hand.active img {
  transform: translateY(0);
}

.box {
  border: 4px double white;
  box-shadow: 0 0 0 1px white;
  position: relative;
  width: 100%;
  margin-top: -40px;
}

.star-area {
  text-align: center;
  margin-top: 70px;
}

.star-area__item {
  display: inline-block;
}

.star-area__item:not(:first-child):before {
  content: "・";
  display: inline-block;
  width: 13px;
  text-align: left;
  margin: 0 4px;
}

.star-area__item img {
  display: inline-block;
  width: 20px;
  vertical-align: top;
}

.result-title {
  text-align: center;
  margin-top: 20px;
  font-size: 22px;
  line-height: 1.2;
  margin-bottom: 10px;
  font-family: "Ovo", serif;
  letter-spacing: 1px;
}

.result-sub-title {
  text-align: center;
  margin-bottom: 20px;
  font-family: "Ovo", serif;
  letter-spacing: 1px;
}

.result-from {
  text-align: center;
  margin-top: 20px;
  font-family: "Ovo", serif;
  background-image: url("/images/fortune/line.png");
  background-repeat: no-repeat;
  background-position: bottom;
  background-size: 100%;
  height: 26px;
  width: 100px;
  margin: auto;
}

.result-text {
  text-align: center;
  font-size: 16px;
  margin-top: 10px;
  font-family: "Sawarabi Mincho";
  letter-spacing: 3px;
  margin-bottom: 50px;
}

.js-fadein {
  opacity: 0;
  transition: 0.5s;
}

.js-fadein.active {
  opacity: 1;
}

/* ========================================

    fanilyskey（members card）
        fanilyskey（members card）ページのみで使うスタイル

    INDEX
        - members card

======================================== */
/* ========================================
   members card
======================================== */
.members-card {
  position: relative;
  width: 320px;
  height: 268px;
  margin: auto;
}

.members-card__no {
  position: absolute;
  position: absolute;
  top: 117px;
  right: 26px;
  color: #510000;
  font-size: 24px;
  font-family: "Ovo", serif;
  letter-spacing: 2px;
}

.members-card__card {
  position: absolute;
}

.members-card__name {
  position: absolute;
  top: 189px;
  left: 21px;
  width: 126px;
  height: 34px;
  color: black;
  line-height: 1.2;
  font-size: 12px;
}

.members-card__birth {
  position: absolute;
  top: 219px;
  left: 55px;
  color: black;
  font-family: "Ovo", serif;
  letter-spacing: 2px;
}

.members-card__role {
  position: absolute;
  top: 235px;
  left: 55px;
  color: black;
  width: 150px;
  font-family: "Ovo", serif;
  letter-spacing: 2px;
}

.members-card__imgbox {
  position: absolute;
  top: 91px;
  left: 21px;
  width: 127px;
  height: 76px;
  overflow: hidden;
  z-index: 0;
}

.members-card__imgbox:before {
  content: "";
  background-image: url("/images/common/pattern.png");
  background-size: 24px;
  background-color: #0c2b04;
  width: 100px;
  height: 200px;
  position: absolute;
  top: -30px;
  right: -35px;
  transform: rotate(20deg);
  z-index: 2;
}

.members-card__roleimg {
  position: absolute;
  width: 45%;
  right: 2%;
  top: 4%;
  z-index: 3;
}

.members-card__img {
  position: absolute;
  width: 70%;
  z-index: 1;
}

.members-card__qr {
  position: absolute;
  width: 66px;
  right: 64px;
  top: 163px;
}

.choise-file-btn {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
}

.loading-img {
  width: 40px;
}

.image_thumb-area {
  display: none;
}

.error_404 {
  width: 200px;
  margin: 0 auto;
}

.error_404 img {
  width: 100%;
}

.majitter-title {
  top: -80px;
}

.majitter .icon {
  width: 20%;
  text-align: center;
  padding-right: 10px;
}

.majitter .icon__img {
  max-width: 55px;
}

.majitter-post {
  width: 80%;
}

.majitter .em {
  width: 100%;
  margin: 5px;
  padding: 5px 0;
  overflow: hidden;
  display: flex;
  padding-left: 10px;
}

.majitter .em--item {
  width: 19%;
  display: flex;
  margin-right: 1%;
  margin-bottom: 0;
}

.majitter .em--item:last-child {
  margin-right: 0;
}

.majitter .em--item__icon i {
  font-size: 1.2rem;
}

.majitter .em--item__count {
  width: 50px;
  margin: 0 auto;
}

.majitter .em--item__icon, .majitter .em--item__count {
  text-align: center;
  display: block;
  font-size: 0.8em;
  letter-spacing: -1px;
}

.majitter .em--item .fa-3x {
  font-size: 1.5em;
}

.flex {
  display: flex;
}

.animated {
  animation-duration: 1s;
  animation-fill-mode: both;
}

@keyframes rubberBand {
  from {
    transform: scale3d(1, 1, 1);
  }
  30% {
    transform: scale3d(1.25, 0.75, 1);
  }
  40% {
    transform: scale3d(0.75, 1.25, 1);
  }
  50% {
    transform: scale3d(1.15, 0.85, 1);
  }
  65% {
    transform: scale3d(0.95, 1.05, 1);
  }
  75% {
    transform: scale3d(1.05, 0.95, 1);
  }
  to {
    transform: scale3d(1, 1, 1);
  }
}

.rubberBand {
  animation-name: rubberBand;
}
