@charset "UTF-8";
/*
 * tamaboku.net
*/
.l-content, .header-menu {
  max-width: 1020px;
  margin: 0 auto; }

.js .character-pager > ul:after, .header-social:after, .spec-item .spec-item-inner02:after, .spec-item .spec-btn:after {
  display: block;
  visibility: hidden;
  clear: both;
  height: 0;
  content: ".";
  font-size: 0; }

.story-body .story-lead, .story-body p, .terms-head {
  color: #330b0c; }

.game-head, .game-body, .global-menu-link, .spec-list-item {
  color: #ffffff; }

.character-item .voice-link dd a {
  color: #555555; }

.character-item > h3, .character-item .character-item-inner > p, .l-content, .spec-list-item, .story-body, .terms-body {
  font-family: YuGothic, "游ゴシック", "メイリオ", "ＭＳ Ｐゴシック", sans-serif; }

/*! normalize.css 2012-01-31T16:06 UTC - http://github.com/necolas/normalize.css */
/* =============================================================================
   HTML5 display definitions
   ========================================================================== */
/*
 * Corrects block display not defined in IE6/7/8/9 & FF3
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
nav,
section {
  display: block; }

/*
 * Corrects inline-block display not defined in IE6/7/8/9 & FF3
 */
audio,
canvas,
video {
  display: inline-block;
  *display: inline;
  *zoom: 1; }

/*
 * Prevents modern browsers from displaying 'audio' without controls
 */
audio:not([controls]) {
  display: none; }

/*
 * Addresses styling for 'hidden' attribute not present in IE7/8/9, FF3, S4
 * Known issue: no IE6 support
 */
[hidden] {
  display: none; }

/* =============================================================================
   Base
   ========================================================================== */
/*
 * 1. Corrects text resizing oddly in IE6/7 when body font-size is set using em units
 *    http://clagnut.com/blog/348/#c790
 * 2. Prevents iOS text size adjust after orientation change, without disabling user zoom
 *    www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/
 */
html {
  font-size: 100%;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
  -ms-text-size-adjust: 100%;
  /* 2 */ }

/* 
 * Addresses font-family inconsistency between 'textarea' and other form elements.
 */
html,
button,
input,
select,
textarea {
  font-family: sans-serif; }

/*
 * Addresses margins handled incorrectly in IE6/7
 */
body {
  margin: 0; }

/* =============================================================================
   Links
   ========================================================================== */
/*
 * Addresses outline displayed oddly in Chrome
 */
/*
 * Improves readability when focused and also mouse hovered in all browsers
 * people.opera.com/patrickl/experiments/keyboard/test
 */
a:hover,
a:active {
  outline: 0; }

/* =============================================================================
   Typography
   ========================================================================== */
/*
 * Neutralise smaller font-size in 'section' and 'article' in FF4+, Chrome, S5
 * Fix IE6/7 heading font-size not being relative to the root font-size
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0; }

h2 {
  font-size: 1.5em;
  margin: 0.83em 0; }

h3 {
  font-size: 1.17em;
  margin: 1em 0; }

h4 {
  font-size: 1em;
  margin: 1.33em 0; }

h5 {
  font-size: 0.83em;
  margin: 1.67em 0; }

h6 {
  font-size: 0.75em;
  margin: 2.33em 0; }

/*
 * Addresses styling not present in IE7/8/9, S5, Chrome
 */
abbr[title] {
  border-bottom: 1px dotted; }

/*
 * Addresses style set to 'bolder' in FF3+, S4/5, Chrome
*/
b,
strong {
  font-weight: bold; }

blockquote {
  margin: 1em 40px; }

/*
 * Addresses styling not present in S5, Chrome
 */
dfn {
  font-style: italic; }

/*
 * Addresses styling not present in IE6/7/8/9
 */
mark {
  background: #ff0;
  color: #000; }

/*
 * Corrects font family set oddly in IE6, S4/5, Chrome
 * en.wikipedia.org/wiki/User:Davidgothberg/Test59
 */
pre,
code,
kbd,
samp {
  font-family: monospace, serif;
  _font-family: 'courier new', monospace;
  font-size: 1em; }

/*
 * Improves readability of pre-formatted text in all browsers
 */
pre {
  white-space: pre;
  white-space: pre-wrap;
  word-wrap: break-word; }

/*
 * 1. Addresses CSS quotes not supported in IE6/7
 * 2. Addresses quote property not supported in S4
 */
/* 1 */
q {
  quotes: none; }

/* 2 */
q:before,
q:after {
  content: '';
  content: none; }

small {
  font-size: 75%; }

/*
 * Prevents sub and sup affecting line-height in all browsers
 * gist.github.com/413930
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

/* =============================================================================
   Lists
   ========================================================================== */
ul,
ol {
  margin-left: 0;
  padding: 0 0 0 40px; }

dd {
  margin: 0 0 0 40px; }

nav ul,
nav ol {
  list-style: none;
  list-style-image: none; }

/* =============================================================================
   Embedded content
   ========================================================================== */
/*
 * 1. Removes border when inside 'a' element in IE6/7/8/9, FF3
 * 2. Improves image quality when scaled in IE7
 *    code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/
 */
img {
  border: 0;
  /* 1 */
  -ms-interpolation-mode: bicubic;
  /* 2 */ }

/*
 * Corrects overflow displayed oddly in IE9 
 */
svg:not(:root) {
  overflow: hidden; }

/* =============================================================================
   Figures
   ========================================================================== */
/*
 * Addresses margin not present in IE6/7/8/9, S5, O11
 */
figure {
  margin: 0; }

/* =============================================================================
   Forms
   ========================================================================== */
/*
 * Corrects margin displayed oddly in IE6/7
 */
form {
  margin: 0; }

/*
 * Define consistent border, margin, and padding
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

/*
 * 1. Corrects color not being inherited in IE6/7/8/9
 * 2. Corrects text not wrapping in FF3 
 * 3. Corrects alignment displayed oddly in IE6/7
 */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  white-space: normal;
  /* 2 */
  *margin-left: -7px;
  /* 3 */ }

/*
 * 1. Corrects font size not being inherited in all browsers
 * 2. Addresses margins set differently in IE6/7, FF3+, S5, Chrome
 * 3. Improves appearance and consistency in all browsers
 */
button,
input,
select,
textarea {
  font-size: 100%;
  /* 1 */
  margin: 0;
  /* 2 */
  vertical-align: baseline;
  /* 3 */
  *vertical-align: middle;
  /* 3 */ }

/*
 * Addresses FF3/4 setting line-height on 'input' using !important in the UA stylesheet
 */
button,
input {
  line-height: normal;
  /* 1 */ }

/*
 * 1. Improves usability and consistency of cursor style between image-type 'input' and others
 * 2. Corrects inability to style clickable 'input' types in iOS
 * 3. Removes inner spacing in IE7 without affecting normal text inputs
 *    Known issue: inner spacing remains in IE6
 */
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
  cursor: pointer;
  /* 1 */
  -webkit-appearance: button;
  /* 2 */
  *overflow: visible;
  /* 3 */ }

/*
 * Re-set default cursor for disabled elements
 */
button[disabled],
input[disabled] {
  cursor: default; }

/*
 * 1. Addresses box sizing set to content-box in IE8/9
 * 2. Removes excess padding in IE8/9
 * 3. Removes excess padding in IE7
      Known issue: excess padding remains in IE6
 */
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
  *height: 13px;
  /* 3 */
  *width: 13px;
  /* 3 */ }

/*
 * 1. Addresses appearance set to searchfield in S5, Chrome
 * 2. Addresses box-sizing set to border-box in S5, Chrome (include -moz to future-proof)
 */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  /* 2 */
  box-sizing: content-box; }

/*
 * Removes inner padding and search cancel button in S5, Chrome on OS X
 */
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button {
  -webkit-appearance: none; }

/*
 * Removes inner padding and border in FF3+
 * www.sitepen.com/blog/2008/05/14/the-devils-in-the-details-fixing-dojos-toolbar-buttons/
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0; }

/*
 * 1. Removes default vertical scrollbar in IE6/7/8/9
 * 2. Improves readability and alignment in all browsers
 */
textarea {
  overflow: auto;
  /* 1 */
  vertical-align: top;
  /* 2 */ }

/* =============================================================================
   Tables
   ========================================================================== */
/* 
 * Remove most spacing between table cells
 */
table {
  border-collapse: collapse;
  border-spacing: 0; }

/* ======================================= */
/* headings
/* ======================================= */
.content-head {
  padding: 0 15px; }
  @media (max-width: 29.938em) {
    .content-head img {
      width: 100% !important; } }

.content-subhead {
  margin: 0;
  padding: 0; }

.reader {
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  width: 1px;
  height: 1px;
  margin: 0;
  padding: 0;
  overflow: hidden; }

/* ======================================= */
/* heroimage
/* ======================================= */
.heroimage {
  position: relative; }
  .heroimage .l-content-wrap {
    background-color: #6a2e43;
    background-image: url(../img/heroimage_01.jpg);
    background-position: top center;
    background-repeat: no-repeat;
    background-size: cover;
    min-height: 451px;
    width: 100%; }
    @media (max-width: 48.063em) {
      .heroimage .l-content-wrap {
        max-width: 100%;
        background-image: url(../img/sp_heroimage_01.jpg);
        background-size: cover; } }
    @media (max-width: 29.938em) {
      .heroimage .l-content-wrap {
        min-height: 280px; } }
    .heroimage .l-content-wrap .l-content {
      position: relative; }
      @media (max-width: 48.063em) {
        .heroimage .l-content-wrap .l-content {
          text-align: center; } }
  .heroimage .heroimage-social {
    padding: 15px 0 0;
    background-color: #672c41; }
    @media (min-width: 48.063em) {
      .heroimage .heroimage-social {
        display: none; } }
    .heroimage .heroimage-social .l-box {
      padding: 0; }
    .heroimage .heroimage-social .social-list {
      margin: 0 auto; }
  .heroimage .download {
    padding: 15px 0 0;
    background-color: #672c41; }
    @media (min-width: 48.063em) {
      .heroimage .download {
        position: absolute;
        bottom: 10px;
        left: 24%;
        padding: 0;
        background-color: transparent; } }
    @media (min-width: 48.063em) {
      .heroimage .download .pure-u-1-2:first-child .l-box {
        margin-right: 30px;
        width: 217px; } }
    @media (min-width: 48.063em) {
      .heroimage .download .pure-u-1-2:last-child .l-box {
        width: 218px; } }
    .heroimage .download img {
      height: 44px; }
      @media (min-width: 29.938em) {
        .heroimage .download img {
          height: auto;
          min-height: 64px; } }
  .heroimage .download-howto {
    padding: 15px 15px 0;
    background-color: #6a2c43; }
    .heroimage .download-howto ul {
      margin: 0;
      padding: 0; }
    .heroimage .download-howto li {
      margin: 0;
      padding: 0;
      list-style-type: none; }
    .heroimage .download-howto .download-howto-inner {
      position: relative;
      margin: 0 auto; }
      @media (min-width: 29.938em) {
        .heroimage .download-howto .download-howto-inner {
          width: 480px; } }

/*
SCSS variables are information about icon's compiled state, stored under its original file name

.icon-home {
  width: $icon-home-width;
}

The large array-like variables contain all information about a single icon
$icon-home: x y offset_x offset_y width height total_width total_height image_path;

At the bottom of this section, we provide information about the spritesheet itself
$spritesheet: width height image $spritesheet-sprites;
*/
/*
The provided mixins are intended to be used with the array-like variables

.icon-home {
  @include sprite-width($icon-home);
}

.icon-email {
  @include sprite($icon-email);
}
*/
/*
The `sprites` mixin generates identical output to the CSS template
  but can be overridden inside of SCSS

@include sprites($spritesheet-sprites);
*/
/* for sprite_retina */
/* ======================================= */
/* character
/* ======================================= */
.character {
  padding: 30px 0;
  background-color: #f4e7cd; }
  @media (min-width: 48.063em) {
    .character {
      padding: 80px 0 20px; } }
  .character .l-content {
    position: relative; }
  @media (max-width: 29.938em) {
    .character .l-box {
      padding: 0 30px; } }

@media (min-width: 48.063em) {
  .js .character {
    background-image: url(../img/character_bg_01.jpg);
    background-repeat: no-repeat;
    background-position: bottom center;
    background-size: cover; } }

.character-head {
  margin: 0;
  text-align: center; }
  .character-head img {
    width: 358px;
    height: auto; }

.character-slider {
  position: relative; }
  .character-slider ul {
    margin: 0;
    padding: 0;
    list-style-type: none; }
  .character-slider li {
    margin: 0;
    padding: 0;
    list-style-type: none;
    z-index: 50; }

.character-list {
  width: 100%;
  padding-bottom: 1em; }
  @media (min-width: 29.938em) {
    .character-list {
      width: 85%;
      margin: 0 auto; } }
  @media (min-width: 48.063em) {
    .character-list {
      width: 80%; } }

.character-item {
  padding-top: 370px;
  background-repeat: no-repeat;
  background-position: 50% 55px;
  background-size: 150px auto; }
  @media (min-width: 29.938em) {
    .character-item {
      padding: 120px 0 0;
      min-height: 380px;
      background-position: 100% 50px;
      background-size: auto 450px; } }
  @media (min-width: 48.063em) {
    .character-item {
      padding-top: 100px;
      min-height: 505px;
      background-position: top right;
      background-size: auto; } }
  .character-item > h3 {
    margin: 0 0 10px 0;
    padding: 0;
    line-height: 1.4;
    font-size: 18px;
    font-size: 1.125rem; }
    @media (min-width: 29.938em) {
      .character-item > h3 {
        font-size: 24px;
        font-size: 1.5rem;
        width: 55%;
        margin-bottom: 20px;
        margin-left: 0; } }
    @media (min-width: 48.063em) {
      .character-item > h3 {
        width: 65%;
        margin-bottom: 10px;
        font-size: 28px;
        font-size: 1.75rem; } }
    .character-item > h3 .voice-btn {
      cursor: pointer; }
      .character-item > h3 .voice-btn img {
        vertical-align: middle;
        width: 30px;
        height: 30px; }
        @media (min-width: 48.063em) {
          .character-item > h3 .voice-btn img {
            width: 40px;
            height: 40px; } }
      .character-item > h3 .voice-btn:hover {
        opacity: 0.7; }
    .character-item > h3 .voice-btn-stop {
      display: none;
      cursor: pointer; }
      .character-item > h3 .voice-btn-stop img {
        vertical-align: middle;
        width: 30px;
        height: 30px; }
        @media (min-width: 48.063em) {
          .character-item > h3 .voice-btn-stop img {
            width: 40px;
            height: 40px; } }
      .character-item > h3 .voice-btn-stop:hover {
        opacity: 0.7; }
    .character-item > h3 .character-name {
      display: block;
      font-size: 26px;
      font-size: 1.625rem; }
      @media (min-width: 48.063em) {
        .character-item > h3 .character-name {
          display: inline;
          font-size: 28px;
          font-size: 1.75rem; } }
    .character-item > h3 .character-voice {
      margin-left: -.5em; }
      @media (min-width: 48.063em) {
        .character-item > h3 .character-voice {
          margin-left: 0; } }
  @media (min-width: 48.063em) {
    .character-item .character-item-inner {
      max-height: 180px;
      overflow: auto; } }
  .character-item .character-item-inner > p {
    margin: 0;
    padding: 0;
    line-height: 1.6;
    font-size: 16px;
    font-size: 1rem; }
    @media (min-width: 29.938em) {
      .character-item .character-item-inner > p {
        font-size: 18px;
        font-size: 1.125rem;
        width: 55%;
        margin-left: 0; } }
    @media (min-width: 48.063em) {
      .character-item .character-item-inner > p {
        width: 65%;
        line-height: 1.8;
        font-size: 20px;
        font-size: 1.25rem; } }
    @media (max-width: 48.063em) {
      .character-item .character-item-inner > p br {
        display: none; } }
  .character-item.item01 {
    background-image: url(../img/character_item01_bg_01.png); }
  .character-item.item02 {
    background-image: url(../img/character_item02_bg_01.png); }
  .character-item.item03 {
    background-image: url(../img/character_item03_bg_01.png); }
  .character-item.item04 {
    background-image: url(../img/character_item04_bg_01.png); }
  .character-item.item05 {
    background-image: url(../img/character_item05_bg_01.png); }
  .character-item.item06 {
    background-image: url(../img/character_item06_bg_01.png); }
  .character-item.item07 {
    background-image: url(../img/character_item07_bg_01.png); }
  .character-item.item08 {
    background-image: url(../img/character_item08_bg_01.png); }
  .character-item.item09 {
    background-image: url(../img/character_item09_bg_01.png); }
  .character-item.item10 {
    background-image: url(../img/character_item10_bg_01.png); }
  .character-item.item11 {
    background-image: url(../img/character_item11_bg_01.png); }
  .character-item.item12 {
    background-image: url(../img/character_item12_bg_01.png); }
  .character-item .voice-link {
    margin-top: 15px; }
    .character-item .voice-link dt {
      display: inline;
      margin: 0;
      padding: 0; }
      .character-item .voice-link dt:after {
        content: "："; }
    .character-item .voice-link dd {
      display: inline;
      margin: 0;
      padding: 0; }
      .character-item .voice-link dd.voice-link-mp3:after {
        content: "｜"; }

.character-pager {
  display: none; }

@media (min-width: 48.063em) {
  .js .character-pager {
    display: block;
    margin-top: 30px;
    position: absolute;
    bottom: 9%;
    left: 11%;
    z-index: 50; } }
.js .character-pager > ul {
  margin: 0;
  padding: 0; }
  @media (min-width: 48.063em) {
    .js .character-pager > ul {
      width: 450px; } }

.character-pager-item {
  float: left;
  margin: 0 5px 5px 0 !important;
  padding: 0;
  list-style-type: none; }
  .character-pager-item a {
    width: 70px;
    height: 0;
    display: block;
    background-repeat: no-repeat;
    background-size: 70px 70px;
    text-indent: 100%;
    white-space: nowrap;
    overflow: hidden;
    outline: none; }
  .character-pager-item .item01 {
    background-image: url(../img/sprite.png);
    background-position: -70px 0px;
    width: 70px;
    height: 70px;
    background-size: 350px 350px; }
    .character-pager-item .item01.active, .character-pager-item .item01:hover {
      background-image: url(../img/sprite.png);
      background-position: 0px -210px;
      width: 70px;
      height: 70px;
      background-size: 350px 350px; }
  .character-pager-item .item02 {
    background-image: url(../img/sprite.png);
    background-position: 0px -70px;
    width: 70px;
    height: 70px;
    background-size: 350px 350px; }
    .character-pager-item .item02.active, .character-pager-item .item02:hover {
      background-image: url(../img/sprite.png);
      background-position: -70px -70px;
      width: 70px;
      height: 70px;
      background-size: 350px 350px; }
  .character-pager-item .item03 {
    background-image: url(../img/sprite.png);
    background-position: -140px 0px;
    width: 70px;
    height: 70px;
    background-size: 350px 350px; }
    .character-pager-item .item03.active, .character-pager-item .item03:hover {
      background-image: url(../img/sprite.png);
      background-position: -140px -70px;
      width: 70px;
      height: 70px;
      background-size: 350px 350px; }
  .character-pager-item .item04 {
    background-image: url(../img/sprite.png);
    background-position: 0px -140px;
    width: 70px;
    height: 70px;
    background-size: 350px 350px; }
    .character-pager-item .item04.active, .character-pager-item .item04:hover {
      background-image: url(../img/sprite.png);
      background-position: -70px -140px;
      width: 70px;
      height: 70px;
      background-size: 350px 350px; }
  .character-pager-item .item05 {
    background-image: url(../img/sprite.png);
    background-position: -140px -140px;
    width: 70px;
    height: 70px;
    background-size: 350px 350px; }
    .character-pager-item .item05.active, .character-pager-item .item05:hover {
      background-image: url(../img/sprite.png);
      background-position: -210px 0px;
      width: 70px;
      height: 70px;
      background-size: 350px 350px; }
  .character-pager-item .item06 {
    background-image: url(../img/sprite.png);
    background-position: -210px -70px;
    width: 70px;
    height: 70px;
    background-size: 350px 350px; }
    .character-pager-item .item06.active, .character-pager-item .item06:hover {
      background-image: url(../img/sprite.png);
      background-position: -210px -140px;
      width: 70px;
      height: 70px;
      background-size: 350px 350px; }
  .character-pager-item .item07 {
    background-image: url(../img/sprite.png);
    background-position: 0px 0px;
    width: 70px;
    height: 70px;
    background-size: 350px 350px; }
    .character-pager-item .item07.active, .character-pager-item .item07:hover {
      background-image: url(../img/sprite.png);
      background-position: -70px -210px;
      width: 70px;
      height: 70px;
      background-size: 350px 350px; }
  .character-pager-item .item08 {
    background-image: url(../img/sprite.png);
    background-position: -140px -210px;
    width: 70px;
    height: 70px;
    background-size: 350px 350px; }
    .character-pager-item .item08.active, .character-pager-item .item08:hover {
      background-image: url(../img/sprite.png);
      background-position: -210px -210px;
      width: 70px;
      height: 70px;
      background-size: 350px 350px; }
  .character-pager-item .item09 {
    background-image: url(../img/sprite.png);
    background-position: -280px 0px;
    width: 70px;
    height: 70px;
    background-size: 350px 350px; }
    .character-pager-item .item09.active, .character-pager-item .item09:hover {
      background-image: url(../img/sprite.png);
      background-position: -280px -70px;
      width: 70px;
      height: 70px;
      background-size: 350px 350px; }
  .character-pager-item .item10 {
    background-image: url(../img/sprite.png);
    background-position: -280px -140px;
    width: 70px;
    height: 70px;
    background-size: 350px 350px; }
    .character-pager-item .item10.active, .character-pager-item .item10:hover {
      background-image: url(../img/sprite.png);
      background-position: -280px -210px;
      width: 70px;
      height: 70px;
      background-size: 350px 350px; }
  .character-pager-item .item11 {
    background-image: url(../img/sprite.png);
    background-position: 0px -280px;
    width: 70px;
    height: 70px;
    background-size: 350px 350px; }
    .character-pager-item .item11.active, .character-pager-item .item11:hover {
      background-image: url(../img/sprite.png);
      background-position: -70px -280px;
      width: 70px;
      height: 70px;
      background-size: 350px 350px; }
  .character-pager-item .item12 {
    background-image: url(../img/sprite.png);
    background-position: -140px -280px;
    width: 70px;
    height: 70px;
    background-size: 350px 350px; }
    .character-pager-item .item12.active, .character-pager-item .item12:hover {
      background-image: url(../img/sprite.png);
      background-position: -210px -280px;
      width: 70px;
      height: 70px;
      background-size: 350px 350px; }

.bx-wrapper .bx-controls-direction a {
  position: absolute;
  top: 50%;
  margin-top: -30px;
  outline: 0;
  width: 30px;
  height: 30px;
  text-indent: -9999px;
  z-index: 60; }
  .bx-wrapper .bx-controls-direction a:hover {
    opacity: 0.7; }
  @media (min-width: 48.063em) {
    .bx-wrapper .bx-controls-direction a {
      width: 60px;
      height: 60px; } }

.bx-wrapper .bx-prev {
  left: 10px;
  background: url(../img/character_icon_left.png) no-repeat 0 0;
  background-size: 30px 30px;
  z-index: 60; }
  @media (min-width: 48.063em) {
    .bx-wrapper .bx-prev {
      background-size: 60px 60px; } }

.bx-wrapper .bx-next {
  right: 10px;
  background: url(../img/character_icon_right.png) no-repeat 0 0;
  background-size: 30px 30px;
  z-index: 60; }
  @media (min-width: 48.063em) {
    .bx-wrapper .bx-next {
      background-size: 60px 60px; } }

.js .voice-link {
  display: none; }

/* ======================================= */
/* common
/* ======================================= */
.l-wrap {
  position: relative; }

.l-container {
  margin-right: auto;
  margin-left: auto; }

.l-box {
  padding: 0 15px; }
  @media (max-width: 48.063em) {
    .l-box {
      padding-bottom: 25px; } }

.l-main {
  padding-top: 47px;
  background-color: #330b0c; }
  @media (min-width: 48.063em) {
    .l-main {
      padding-top: 54px; } }

.download-link {
  list-style-type: none;
  margin: 0;
  padding: 0; }
  .download-link .pure-u-1-2:first-child .l-box {
    padding: 0 15px 0 15px;
    text-align: right; }
    @media (min-width: 48.063em) {
      .download-link .pure-u-1-2:first-child .l-box {
        padding: 0;
        text-align: left; } }
  .download-link .pure-u-1-2:last-child .l-box {
    padding: 0 15px 0 0;
    text-align: left; }
    @media (min-width: 48.063em) {
      .download-link .pure-u-1-2:last-child .l-box {
        padding: 0;
        text-align: left; } }
  .download-link img {
    height: 44px; }
    @media (min-width: 29.938em) {
      .download-link img {
        height: auto;
        min-height: 64px; } }

.download-link-item {
  margin: 0;
  padding: 0;
  display: inline; }
  .download-link-item a {
    display: inline-block; }
  .download-link-item img {
    vertical-align: bottom; }

.anchor {
  margin-top: -47px !important;
  padding-top: 47px !important; }
  @media (min-width: 48.063em) {
    .anchor {
      margin-top: -54px !important;
      padding-top: 54px !important; } }

.social-list {
  display: table;
  margin: 35px auto 0;
  padding: 0;
  list-style-type: none;
  text-align: center; }
  .social-list .social-item {
    display: table-cell;
    padding: 0 5px;
    vertical-align: bottom; }

/* ======================================= */
/* footer
/* ======================================= */
#footer {
  text-align: center;
  padding: 80px 0 30px; }
  @media (max-width: 48.063em) {
    #footer {
      padding: 30px 0; } }

.footer-brand {
  margin-bottom: 80px; }
  @media (max-width: 48.063em) {
    .footer-brand {
      margin-bottom: 30px; } }
  .footer-brand a {
    display: inline-block;
    cursor: pointer; }
    .footer-brand a > object {
      pointer-events: none; }

.footer-menu-list {
  margin: 0;
  padding: 0; }

.footer-menu-item {
  margin-left: 1em;
  list-style-type: none;
  font-size: 13px;
  font-size: 0.8125rem; }
  @media (min-width: 29.938em) {
    .footer-menu-item {
      display: inline; } }
  @media (min-width: 29.938em) {
    .footer-menu-item:before {
      content: '|'; } }
  .footer-menu-item:first-child {
    margin-left: 0; }
    @media (min-width: 29.938em) {
      .footer-menu-item:first-child:before {
        content: none; }
      .footer-menu-item:first-child .blank {
        padding-left: 0; } }
  .footer-menu-item a {
    color: #231815;
    padding-left: 1em;
    text-decoration: none; }
    .footer-menu-item a.blank {
      padding-right: 15px;
      background-image: url(../img/footer_icon_01@x2.png);
      background-repeat: no-repeat;
      background-position: right center;
      background-size: 12px 9px; }

.copyright {
  display: block;
  margin-top: 15px;
  font-size: 13px;
  font-size: 0.8125rem; }

/* ======================================= */
/* game
/* ======================================= */
.game {
  padding: 30px 0 5px;
  background-color: #672c41; }
  @media (min-width: 48.063em) {
    .game {
      padding: 80px 0;
      background-image: url(../img/game_bg_01.png);
      background-repeat: repeat-x;
      background-position: bottom center;
      background-size: auto; } }

.game-head {
  margin: 0;
  padding: 0 15px;
  text-align: center; }
  @media (max-width: 48.063em) {
    .game-head {
      margin: 0 0 20px 0; } }
  .game-head .content-head {
    margin: 0 0 40px 0; }
    .game-head .content-head img {
      width: 456px;
      height: auto; }
  .game-head .content-subhead {
    margin: 0;
    line-height: 1.8125;
    font-size: 32px;
    font-size: 2rem;
    font-weight: normal; }
    @media (max-width: 48.063em) {
      .game-head .content-subhead {
        line-height: 1.6;
        font-size: 20px;
        font-size: 1.25rem; } }
    @media (min-width: 48.063em) {
      .game-head .content-subhead span {
        display: block; } }

.game-body {
  margin-top: 5px; }
  .game-body .l-box {
    margin: 20px 0 0; }
  .game-body .caption {
    margin: 12px 0 0;
    padding: 0;
    line-height: 1.6;
    font-size: 14px;
    font-size: 0.875rem; }
  .game-body .notice {
    margin-top: 60px; }
    @media (max-width: 29.938em) {
      .game-body .notice {
        margin-top: 30px; } }
    .game-body .notice p {
      margin-bottom: 0; }

/* ======================================= */
/* header
/* ======================================= */
#header {
  position: fixed;
  width: 100%;
  top: 0;
  background-color: #330b0c;
  z-index: 10000; }

.header-wrap {
  padding: 0 15px; }
  @media (min-width: 48.063em) {
    .header-wrap {
      padding: 15px;
      min-height: 24px; } }
  @media (max-width: 48.063em) {
    .header-wrap {
      padding-right: 0;
      padding-left: 0; } }

.header-menu {
  position: relative;
  font-smoothing: antialiased; }

.global-menu {
  text-align: center; }
  @media (min-width: 48.063em) {
    .global-menu {
      text-align: right; } }

@media (min-width: 48.063em) {
  .global-menu-item {
    display: inline-block; } }

.global-menu-link {
  padding: .4em .5em; }
  @media (min-width: 48.063em) {
    .global-menu-link {
      padding: 0 .5em;
      white-space: normal;
      font-size: 14px;
      font-size: 0.875rem; } }
  .global-menu-link:hover, .global-menu-link:focus {
    background-color: inherit;
    text-decoration: underline; }
    @media (max-width: 48.063em) {
      .global-menu-link:hover, .global-menu-link:focus {
        text-decoration: none; } }

.header-social {
  width: auto;
  position: absolute;
  top: -10px;
  left: 0;
  margin-top: 0; }
  @media (max-width: 48.063em) {
    .header-social {
      display: none; } }
  .header-social .pure-menu-list {
    display: table;
    padding: 0;
    list-style-type: none;
    text-align: center; }
    .header-social .pure-menu-list .pure-menu-item {
      display: table-cell;
      padding: 0 5px;
      padding-top: 10px;
      text-align: center;
      vertical-align: bottom;
      min-height: 22px; }
      .header-social .pure-menu-list .pure-menu-item.fb-btn {
        min-width: 98px; }
      .header-social .pure-menu-list .pure-menu-item.tw-btn {
        padding-left: 10px;
        min-width: 90px; }

.fb_iframe_widget > span {
  vertical-align: baseline !important; }

.slicknav_menu {
  display: none;
  background-color: #330b0c !important; }

.slicknav_nav ul {
  margin-left: 0 !important; }

@media (max-width: 48.063em) {
  .js #header-menu {
    display: none; }

  .js .slicknav_menu {
    display: block; }

  .js #mobileMenu {
    display: block;
    position: fixed;
    width: 100%;
    z-index: 10000; } }
/* ======================================= */
/* information
/* ======================================= */
.information {
  padding: 18px 0 0;
  background-color: #672c41; }
  @media (min-width: 48.063em) {
    .information {
      padding: 27px 0 55px;
      background-image: url(../img/information_bg_01.jpg);
      background-repeat: repeat-y;
      background-position: top center;
      background-size: cover; } }

.information-head {
  margin: 20px 0 5px 0;
  color: #e0cea7;
  font-size: 20px;
  font-size: 1.25rem;
  font-weight: normal;
  text-shadow: -3px 0px 3px #3e1515, 0px -3px 3px #3e1515, -3px -3px 3px #3e1515, 3px 0px 3px #3e1515, 0px 3px 3px #3e1515, 3px 3px 3px #3e1515, 3px -3px 3px #3e1515, -3px 3px 3px #3e1515; }
  .information-head:before {
    content: '■'; }

.movie-body {
  position: relative;
  padding-bottom: 56.25%;
  padding-top: 30px;
  height: 0;
  overflow: hidden; }
  @media (max-width: 48.063em) {
    .movie-body {
      max-height: 270px; } }
  .movie-body iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; }

.fb-body {
  height: 300px; }
  @media (max-width: 48.063em) {
    .fb-body .fb-page span {
      width: 100% !important; } }

.tw-body {
  height: 300px; }

/* ======================================= */
/* relatedContents
/* ======================================= */
.relatedContents {
  padding: 30px 0;
  background-color: #3f1515; }
  @media (min-width: 48.063em) {
    .relatedContents {
      padding: 80px 0;
      background-image: url(../img/relatedContents_bg_01.jpg);
      background-repeat: repeat;
      background-position: top left; } }

.relatedContents-head {
  margin: 0 0 40px 0;
  text-align: center; }
  @media (max-width: 48.063em) {
    .relatedContents-head {
      margin: 0 0 30px 0; } }
  .relatedContents-head img {
    width: 356px;
    height: auto; }

@media (max-width: 48.063em) {
  .relatedContents-body .l-box {
    padding-bottom: 0; } }
.relatedContents-body p {
  margin: 0; }
@media (max-width: 29.938em) {
  .relatedContents-body .pure-u-1-2.hide {
    display: none; } }

/* ======================================= */
/* spec
/* ======================================= */
.spec {
  padding: 40px 0;
  background-color: #662b3f;
  border-bottom: 1px solid #cf7f80; }
  @media (max-width: 29.938em) {
    .spec {
      padding: 20px 0 0; } }

.spec-head {
  margin: 0 0 46px 0;
  text-align: center; }
  .spec-head img {
    width: 500px;
    height: auto; }

.spec-body p {
  margin: 0; }

.spec-list {
  list-style-type: none;
  margin: 0;
  padding: 0; }

.spec-list-item {
  line-height: 1.8;
  font-size: 16px;
  font-size: 1rem; }
  .spec-list-item > dl {
    margin: 0;
    padding: 0; }
    .spec-list-item > dl > dt {
      display: inline; }
      .spec-list-item > dl > dt:before {
        content: '■'; }
    .spec-list-item > dl > dd {
      display: inline;
      margin: 0; }
      .spec-list-item > dl > dd:before {
        content: '：'; }
  @media (max-width: 29.938em) {
    .spec-list-item {
      line-height: 1.6;
      font-size: 14px;
      font-size: 0.875rem; } }

.spec-download-link {
  margin-top: 5px; }
  .spec-download-link .pure-u-md-1 {
    margin-top: 5px; }
    @media (min-width: 48.063em) {
      .spec-download-link .pure-u-md-1:first-child .l-box img {
        width: 185px; } }
    @media (min-width: 48.063em) {
      .spec-download-link .pure-u-md-1:last-child .l-box img {
        width: 185px;
        height: auto; } }
    .spec-download-link .pure-u-md-1 img {
      height: 44px;
      vertical-align: bottom; }
      @media (min-width: 29.938em) {
        .spec-download-link .pure-u-md-1 img {
          height: auto;
          min-height: 54px; } }

.spec-item {
  margin-top: 15px; }
  @media (min-width: 29.938em) {
    .spec-item {
      margin-top: 60px; } }
  .spec-item .spec-item-inner {
    padding: 35% 0;
    min-height: 280px;
    background-size: 100% auto;
    background-position: top left;
    background-repeat: no-repeat;
    text-align: center; }
    @media (min-width: 48.063em) {
      .spec-item .spec-item-inner {
        padding: 35% 0 18%;
        min-height: 280px; } }
  .spec-item .spec-item-inner02 {
    margin: 0 26% 0 28%; }
  .spec-item .spec-text {
    margin: 0;
    padding: 0;
    line-height: 1.4;
    font-size: 14px;
    font-size: 0.875rem;
    text-align: left; }
  .spec-item .spec-list02 {
    margin: 0;
    padding: 0;
    line-height: 1.2;
    font-size: 13px;
    font-size: 0.8125rem;
    text-align: left; }
    .spec-item .spec-list02 dt {
      margin: 0;
      padding: 0; }
    .spec-item .spec-list02 dd {
      margin: 0;
      padding: 0; }
  .spec-item .spec-list02-item {
    margin: 0 0 0 30px;
    padding: 0;
    list-style-type: disc; }
  .spec-item .spec-title {
    margin: 0 0 15px 0;
    padding: 0 0 10px 0;
    font-size: 18px;
    font-size: 1.125rem;
    line-height: 1.2;
    background: url(../img/spec_bg_04.png) no-repeat bottom center;
    background-size: 50% auto; }
  .spec-item .spec-subtitle {
    margin: 5px 0 3px;
    padding: 0;
    line-height: 1.2;
    font-size: 14px;
    font-size: 0.875rem; }
  .spec-item .spec-btn {
    margin: 15px 0 0;
    padding: 0;
    list-style-type: none;
    text-align: center; }
    .spec-item .spec-btn img {
      max-width: 100%;
      vertical-align: bottom; }
    .spec-item .spec-btn .spec-btn-item {
      margin-top: 8px; }
      .spec-item .spec-btn .spec-btn-item:first-child {
        float: left;
        width: 48%; }
      .spec-item .spec-btn .spec-btn-item:last-child {
        float: right;
        width: 48%; }

.spec-browser .spec-item-inner {
  background-image: url(../img/spec_bg_01.png); }

.spec-mobile-app .spec-item-inner {
  background-image: url(../img/spec_bg_02.png); }

.spec-desktop-app .spec-item-inner {
  background-image: url(../img/spec_bg_03.png); }

/* ======================================= */
/* story
/* ======================================= */
.story {
  padding: 30px 0 5px;
  background-color: #f4e7cd; }
  @media (min-width: 48.063em) {
    .story {
      padding: 80px 0 72px;
      background-image: url(../img/story_bg_01.jpg);
      background-repeat: no-repeat;
      background-position: bottom center;
      background-size: cover; } }

.story-head {
  margin: 0 0 40px 0;
  text-align: center; }
  @media (max-width: 48.063em) {
    .story-head {
      margin: 0 0 20px 0; } }
  .story-head img {
    width: 356px;
    height: auto; }

.story-body {
  text-align: center; }
  .story-body .story-lead {
    margin: 0 0 30px 0;
    line-height: 1.875;
    font-size: 32px;
    font-size: 2rem; }
    @media (max-width: 48.063em) {
      .story-body .story-lead {
        margin: 0 0 20px 0;
        line-height: 1.6;
        font-size: 20px;
        font-size: 1.25rem; } }
  .story-body p {
    margin: 0;
    padding: 0;
    letter-spacing: .1em;
    line-height: 2;
    font-size: 20px;
    font-size: 1.25rem;
    text-shadow: -3px 0px 3px #f7edd6, 0px -3px 3px #f7edd6, -3px -3px 3px #f7edd6, 3px 0px 3px #f7edd6, 0px 3px 3px #f7edd6, 3px 3px 3px #f7edd6, 3px -3px 3px #f7edd6, -3px 3px 3px #f7edd6;
    opacity: 0.8; }
    @media (max-width: 48.063em) {
      .story-body p {
        letter-spacing: .03em;
        line-height: 1.6;
        font-size: 16px;
        font-size: 1rem;
        text-align: left; } }
    @media (max-width: 48.063em) {
      .story-body p br {
        display: none; } }

/* ======================================= */
/* terms
/* ======================================= */
.terms {
  padding: 30px 0;
  background-color: #f8f3e0; }
  @media (min-width: 48.063em) {
    .terms {
      padding: 78px 0; } }

.terms-head {
  margin: 0 0 20px 0;
  line-height: 1;
  font-size: 30px;
  font-size: 1.875rem;
  font-weight: normal; }
  @media (min-width: 48.063em) {
    .terms-head {
      margin: 0; } }

.terms-body .terms-subhead {
  margin: 0 0 15px 0;
  line-height: 1;
  font-size: 20px;
  font-size: 1.25rem;
  font-weight: normal; }
  .terms-body .terms-subhead:before {
    content: '■'; }
  @media (min-width: 48.063em) {
    .terms-body .terms-subhead {
      margin-bottom: 30px; } }
.terms-body .terms-item {
  margin-top: 40px; }
  .terms-body .terms-item a {
    color: #231815;
    text-decoration: underline; }
    .terms-body .terms-item a.blank {
      padding-right: 15px;
      background-image: url(../img/footer_icon_01@x2.png);
      background-repeat: no-repeat;
      background-position: right center;
      background-size: 12px 9px; }
    .terms-body .terms-item a:hover {
      text-decoration: none; }
  @media (min-width: 48.063em) {
    .terms-body .terms-item {
      margin-top: 80px; } }
.terms-body p {
  margin: 0;
  padding: 0;
  line-height: 1.6;
  font-size: 18px;
  font-size: 1.125rem; }
  @media (max-width: 48.063em) {
    .terms-body p {
      line-height: 1.6;
      font-size: 14px;
      font-size: 0.875rem; } }
.terms-body ul li {
  margin: 0;
  padding: 0;
  line-height: 1.6;
  font-size: 18px;
  font-size: 1.125rem; }
  @media (max-width: 48.063em) {
    .terms-body ul li {
      line-height: 1.6;
      font-size: 14px;
      font-size: 0.875rem; } }
