@charset "UTF-8";
@font-face {
  font-family: "NotoSans";
  font-style: normal;
  font-weight: 400;
  src: url("../font/NotoSansJP/NotoSansJP-Regular.otf") format("truetype");
}
@font-face {
  font-family: "NotoSans";
  font-style: normal;
  font-weight: 500;
  src: url("../font/NotoSansJP/NotoSansJP-Medium.otf") format("truetype");
}
@font-face {
  font-family: "NotoSans";
  font-style: normal;
  font-weight: 700;
  src: url("../font/NotoSansJP/NotoSansJP-Bold.otf") format("truetype");
}
@font-face {
  font-family: "BwGradualDEMO";
  font-style: normal;
  font-weight: 500;
  src: url("../font/Bw-Gradual-DEMO/BwGradualDEMO-Medium.otf") format("truetype");
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 500;
  src: url("../font/Manrope/Manrope-Medium.otf") format("truetype");
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 600;
  src: url("../font/Manrope/Manrope-SemiBold.otf") format("truetype");
}
.u-desktop {
  display: none;
}
@media screen and (max-width: 768px) {
  .u-desktop {
    display: block;
  }
}

@media screen and (max-width: 768px) {
  .u-mobile {
    display: none;
  }
}

body {
  font-family: "NotoSans", sans-serif;
  color: #333;
}

/* リキッドレイアウト対応 */
html {
  font-size: 16px;
}
@media (max-width: 1061px) {
  html {
    font-size: 1.5080113101vw;
  }
}
@media screen and (max-width: 768px) {
  html {
    font-size: 16px;
  }
}
@media (max-width: 375px) {
  html {
    font-size: 4.2666666667vw;
  }
}

/* pcの電話番号発信対応 */
@media screen and (max-width: 768px) {
  a[href^="tel:"] {
    pointer-events: none;
  }
}

/* ホバー */
a {
  text-decoration: none;
  color: inherit;
}
/*
html5doctor.com Reset Stylesheet
v1.6.1
Last Updated: 2010-09-17
Author: Richard Clark - http://richclarkdesign.com
Twitter: @rich_clark
*/
/*要素のフォントサイズやマージン・パディングをリセットしています*/
html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  -webkit-margin-before: 0;
          margin-block-start: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

/*行の高さをフォントサイズと同じにしています*/
body {
  line-height: 1;
}

/*新規追加要素のデフォルトはすべてインライン要素になっているので、section要素などをブロック要素へ変更しています*/
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

/*nav要素内ulのマーカー（行頭記号）を表示しないようにしています*/
/*nav ul {
    list-style:none;
}*/
ol,
ul {
  list-style: none;
}

/*引用符の表示が出ないようにしています*/
blockquote,
q {
  quotes: none;
}

/*blockquote要素、q要素の前後にコンテンツを追加しないように指定しています*/
blockquote:before,
blockquote:after,
q:before,
q:after {
  content: "";
  content: none;
}

/*a要素のフォントサイズなどをリセットしフォントの縦方向の揃え位置を親要素のベースラインに揃えるようにしています*/
a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

/* ins要素のデフォルトをセットし、色を変える場合はここで変更できるようにしています */
ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none;
}

/* mark要素のデフォルトをセットし、色やフォントスタイルを変える場合はここで変更できるようにしています
また、mark要素とは、文書内の検索結果で該当するフレーズをハイライトして、目立たせる際に使用するようです。*/
mark {
  background-color: #ff9;
  color: #000;
  font-style: italic;
  font-weight: bold;
}

/*テキストに打ち消し線が付くようにしています*/
del {
  text-decoration: line-through;
}

/*IEではデフォルトで点線を下線表示する設定ではないので、下線がつくようにしています
また、マウスオーバー時にヘルプカーソルの表示が出るようにしています*/
abbr[title],
dfn[title] {
  border-bottom: 1px dotted;
  cursor: help;
}

/*隣接するセルのボーダーを重ねて表示し、間隔を0に指定しています*/
table {
  border-collapse: collapse;
  border-spacing: 0;
}

/*水平罫線のデフォルトである立体的な罫線を見えなくしています*/
hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #cccccc;
  margin: 1em 0;
  padding: 0;
}

/*縦方向の揃え位置を中央揃えに指定しています*/
input,
select {
  vertical-align: middle;
}

/*画像を縦に並べた時に余白が出ないように*/
img {
  vertical-align: top;
  font-size: 0;
  line-height: 0;
}

/*box-sizingを全ブラウザに対応*/
*,
*:before,
*:after {
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}

.c-sample {
  margin-top: 0;
}

.l-sample {
  margin-top: 0;
}

.c-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px;
}
@media screen and (max-width: 768px) {
  .c-inner {
    padding: 8px;
  }
}

/* header */
.p-header {
  position: fixed;
  z-index: 100;
  right: 0;
}
.p-header__link {
  display: flex;
}
.p-header__linkSNS {
  display: inline-block;
  background: url("../../assets/img/header/header-button-sns.webp");
  background-size: cover;
  background-position: center;
  width: 100px;
  height: 100px;
  position: relative;
}
.p-header__linkSNS a {
  display: inline-block;
  width: 50px;
  height: 50px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.p-header__linkSNS img {
  width: 50%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.p-header__linkLang {
  display: inline-block;
  background: url("../../assets/img/header/header-button-lang.webp");
  background-size: cover;
  background-position: center;
  width: 212px;
  height: 100px;
  position: relative;
}
.p-header__linkLang a {
  width: 160px;
  height: 42px;
  text-align: center;
  line-height: 42px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-weight: bold;
}

/* Hero Section */
.p-fv {
  position: relative;
  max-height: 100vh;
  min-height: 66vw;
  height: 66vw;
  background-image: url("../../assets/img/fv/fv-bg.webp");
  background-size: cover;
  background-position: center;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .p-fv {
    max-height: 100vh;
    min-height: 170vw;
    height: 72vh;
    background-image: url("../../assets/img/fv/fv-bg-sp.webp");
  }
}
.p-fv__logo {
  position: absolute;
  z-index: 2;
  text-align: center;
  top: 40%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 1200px;
  width: 100%;
}
@media screen and (max-width: 768px) {
  .p-fv__logo {
    top: 45%;
  }
}
.p-fv__logo img {
  max-width: 1200px;
  width: 90%;
  height: auto;
  top: 50%;
}

.p-message {
  background-color: #01030d;
  background-image: url("../../assets/img/message/message-card.webp");
  background-repeat: no-repeat;
  background-size: 67%;
  background-position: 50% 90%;
  position: relative;
  height: 55vw;
}
.p-message__heading h2 img {
  display: block;
  max-width: 900px;
  width: 70vw;
  position: absolute;
  top: 42%;
  left: 50%;
  transform: translate(-50%, -50%);
  opacity: 0;
  transition: 0.5s;
}
.p-message__heading h2 img.is-fadein {
  opacity: 1;
}
@media screen and (max-width: 768px) {
  .p-message {
    background-size: 90%;
    background-position: 50% 88%;
    height: 70vw;
  }
  .p-message__heading h2 img {
    top: 40%;
    width: 85vw;
  }
}

.p-features {
  position: relative;
  z-index: 0;
  background-color: #01030d;
  padding: 20px 0 40px 0;
}
.p-features::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0) 90%, rgba(0, 0, 0, 0.8) 100%), url("../../assets/img/features/features-bg.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  filter: brightness(0.5);
  pointer-events: none;
}
.p-features__item h3 img {
  max-width: 500px;
  width: 100%;
}
@media screen and (max-width: 768px) {
  .p-features__item h3 img {
    max-width: 280px;
  }
}
.p-features__h3Img--01 {
  position: relative;
  top: 90px;
}
@media screen and (max-width: 768px) {
  .p-features__h3Img--01 {
    top: 30px;
  }
}
.p-features__h3Img--02 {
  text-align: right;
  position: relative;
  top: 90px;
}
@media screen and (max-width: 768px) {
  .p-features__h3Img--02 {
    top: 50px;
  }
}
.p-features__h3Img--03 {
  margin-top: 90px;
}
@media screen and (max-width: 768px) {
  .p-features__h3Img--03 {
    margin-top: 50px;
  }
}
.p-features__content {
  text-align: right;
}
.p-features__content--02 {
  text-align: left;
}
.p-features__content--03 p {
  color: #fff;
  margin-right: 12px;
  font-size: 12px;
}
.p-features__contentImg {
  max-width: 900px;
  width: 100%;
  text-align: right;
  display: inline-block;
}

/* Game Info Section */
.p-info {
  background: linear-gradient(to bottom, rgb(0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0) 90%, rgb(0, 0, 0) 100%), url("../../assets/img/info/info-bg.webp");
  background-size: 100%;
  background-position: top;
  padding: 8% 0;
}
@media screen and (max-width: 768px) {
  .p-info {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
  }
}
.p-info__content {
  position: relative;
  background-image: url("../../assets/img/info/info-frame.webp");
  background-size: 100% 100%;
  background-position: center;
  max-width: 700px;
  width: 100%;
  height: auto;
  display: flex;
  justify-content: center;
  align-items: center;
  aspect-ratio: 3/2;
  margin: 0 auto;
}
.p-info__contentCharacter {
  position: absolute;
  top: -54px;
  left: -80px;
  width: 110px;
}
.p-info__contentCharacter img {
  width: 100%;
}
@media screen and (max-width: 768px) {
  .p-info__contentCharacter {
    left: -20px;
  }
  .p-info__contentCharacter img {
    width: 80%;
  }
}
.p-info__contentWrapper {
  padding: 60px;
}
@media screen and (max-width: 768px) {
  .p-info__contentWrapper {
    padding: 50px 30px;
  }
}

.p-info__row {
  display: flex;
  margin: 10px 0;
  color: #fff;
  letter-spacing: 0.07em;
  line-height: 2;
}
@media screen and (max-width: 768px) {
  .p-info__row {
    font-size: 12px;
  }
}

.p-info__label {
  width: -moz-fit-content;
  width: fit-content;
  font-weight: bold;
  margin-right: 8px;
}

.p-info__value {
  flex: 1;
}

/* sega */
.p-logo {
  padding: 0 12px;
  background: linear-gradient(to bottom, rgb(0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0) 90%, rgb(0, 0, 0) 100%), url("../../assets/img/sega/sega-bg.webp");
  background-size: cover;
  background-position: center;
  height: 500px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5vw;
}
.p-logo__wrapper {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 5vw;
}
@media screen and (max-width: 768px) {
  .p-logo__wrapper {
    flex-direction: column;
    align-items: center;
  }
}
@media screen and (max-width: 768px) {
  .p-logo {
    height: 320px;
  }
}
.p-logo__jokers {
  max-height: 62px;
  height: 100%;
  width: -moz-fit-content;
  width: fit-content;
}
.p-logo__jokers img {
  max-height: 85px;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
.p-logo__sega {
  max-height: 66px;
  height: 100%;
  width: -moz-fit-content;
  width: fit-content;
}
.p-logo__sega img {
  max-height: 66px;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
@media screen and (max-width: 768px) {
  .p-logo__sega {
    max-height: 48px;
  }
  .p-logo__sega img {
    max-height: 48px;
  }
}

/* Footer */
.p-footer__img {
  text-align: center;
  padding: 30px 0;
  max-height: 80vh;
  height: 60vw;
  background: linear-gradient(to bottom, rgb(0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0) 90%, rgb(0, 0, 0) 100%), url("../../assets/img/footer/footer-bg.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
@media screen and (max-width: 768px) {
  .p-footer__img {
    height: 70vw;
  }
}
.p-footer__logo {
  position: relative;
  z-index: 2;
  text-align: center;
  top: 100px;
}
@media screen and (max-width: 768px) {
  .p-footer__logo {
    top: 40px;
  }
}
.p-footer__logo img {
  max-width: 700px;
  width: 60%;
  height: auto;
}
@media screen and (max-width: 768px) {
  .p-footer__logo img {
    width: 70%;
  }
}
.p-footer__copyright {
  background: #000;
  color: #fff;
  text-align: center;
  padding: 8px 0;
  font-size: 12px;
}

/* 左から右へフェードイン（初期状態） */
.fadein-from-bottom {
  opacity: 0;
  transform: translateY(30px);
  /* 左に30pxずらす */
  transition: opacity 0.6s ease, transform 0.6s ease;
}

/* 左から右へフェードイン（アニメ完了時） */
.fadein-from-bottom.is-active {
  opacity: 1;
  transform: translateX(0);
}

/* 右から左へフェードイン（初期状態） */
.fadein-from-right {
  opacity: 0;
  transform: translateY(30px);
  /* 右に30pxずらす */
  transition: opacity 0.6s ease, transform 0.6s ease;
}

/* 右から左へフェードイン（アニメ完了時） */
.fadein-from-right.is-active {
  opacity: 1;
  transform: translateX(0);
}