@charset "utf8";
/* ーーーーーーーー全体CSSーーーーーーーー */

html {
  font-size: 100%;
  scroll-behavior: smooth;
}

body {
  font-family: "Funnel Sans", "Zen Kaku Gothic New", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
  color: #333;
  letter-spacing: 1px;
  font-size: 14px;
  background-color: #fff;

  /* 格子 */
  /* box-shadow: 0 4px 4px rgb(0 0 0 / 5%), 0 2px 3px -2px rgb(0 0 0 / 1%);
  background-image: linear-gradient(transparent calc(100% - 1px), #e6edf3 50%, #e6edf3), linear-gradient(90deg, transparent calc(100% - 1px), #e6edf3 50%, #e6edf3);
  background-size: 15px 15px;
  background-repeat: repeat;
  background-color: #ffffff; */

  /* LINE */
  /* background-color: #ffffff;
  background-size: 20px 20px;
  background-image: repeating-linear-gradient(
    0deg,
    #e6edf3,
    #e6edf3 1px,
    #fff 1px,
    #fff
  ); */

  /* ドット */
  /* background-color: #fff;
  background-image: radial-gradient(#e6edf3 1px, #fff 0px);
  background-size: 10px 10px; */

  /* paper */
  /* background-color: #fff;
  background-image:  linear-gradient(#e6edf3 2px, transparent 2px), linear-gradient(90deg, #e6edf3 2px, transparent 2px), linear-gradient(#e6edf3 1px, transparent 1px), linear-gradient(90deg, #e6edf3 1px, #fff 1px);
  background-size: 50px 50px, 50px 50px, 10px 10px, 10px 10px;
  background-position: -2px -2px, -2px -2px, -1px -1px, -1px -1px; */

  /* 十 */
  /* background-color: #fff;
  background: radial-gradient(circle, transparent 20%, #fff 20%, #fff 80%, transparent 80%, transparent), radial-gradient(circle, transparent 20%, #fff 20%, #fff 80%, transparent 80%, transparent) 25px 25px, linear-gradient(#e6edf3 2px, transparent 2px) 0 -1px, linear-gradient(90deg, #e6edf3 2px, #fff 2px) -1px 0;
  background-size: 50px 50px, 50px 50px, 25px 25px, 25px 25px; */
}

p {
  font-size: 14px;
}

/* googlefont */

.funnel-sans {
  font-family: "Funnel Sans", sans-serif;
  font-optical-sizing: auto;
  font-weight: 600;
  font-style: normal;
}

.zen-kaku-gothic-new-regular {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.zen-kaku-gothic-new-medium {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 500;
  font-style: normal;
}

.zen-kaku-gothic-new-bold {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 700;
  font-style: normal;
}

img {
  max-width: 100%;
  vertical-align: middle;
}

li {
  list-style: none;
}

a {
  color: #757474;
  text-decoration: none;
}

a:hover {
  opacity: 0.7; /* 半透明にする */
}

/* ーーーーーー全体CSSここまでーーーーーー */

/* 単発のCSS（u-で整える） */
.u-fw {
  font-weight: bold;
}

.u-fs2 {
  font-size: 10px;
  border-bottom: solid 0.8px #333;
}

/* ーーーーーーheaderここからーーーーーー */

/* logo */
#fixed-header {
  position: fixed;
  top: -70px;
  width: 100%;
  height: 70px;
  line-height: 70px;
  font-size: 2em;
  text-align: center;
  color: #333;
  transition: 0.7s;
  z-index: 9999;
}
#fixed-header.is-show {
  top: 8px;
}
#content {
  height: 2000px;
}

#fixed-header .header-logo {
  width: 150px;
}

/* navのCSS */

#g-nav {
  /*position:fixed;にし、z-indexの数値を小さくして最背面へ*/
  position: fixed;
  z-index: -1;
  opacity: 0; /*はじめは透過0*/
  /*ナビの位置と形状*/
  top: 0;
  width: 0vw;
  height: 100vh; /*ナビの高さ*/
  /*動き*/
  transition: all 0.4s;
}

/*アクティブクラスがついたら透過なしにして最前面へ*/
#g-nav.panelactive {
  opacity: 1;
  z-index: 999;
}

/*ナビゲーションの縦スクロール*/
#g-nav.panelactive #g-nav-list {
  /*ナビの数が増えた場合縦スクロール*/
  position: fixed;
  z-index: 999;
  width: 92%;
  height: 100vh; /*表示する高さ*/
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

/*ナビゲーション*/
#g-nav ul {
  width: 200px;
  display: none;
  /*ナビゲーション天地中央揃え*/
  position: absolute;
  z-index: 9999;
  top: 50%;
  left: 54%;
  transform: translate(-50%, -50%);
  border: solid 1px #333;
  padding: 35px 35px 40px;
  background-color: #ffffff;
}

#g-nav.panelactive ul {
  display: block;
}

/*リストのレイアウト設定*/

#g-nav li {
  list-style: none;
  text-align: left;
  font-size: 10px;
}

#g-nav li a {
  color: #333;
  font-weight: 600;
  text-decoration: none;
  padding: 10px;
  display: block;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 14px;
}

/*navボタンのためのCSS */
.openbtn {
  position: fixed;
  writing-mode: vertical-rl;
  z-index: 9999;
  top: 28px;
  right: -3px;
  cursor: pointer;
  background: #ffffff;
  border: solid 1px #333;
  font-size: 10px;
  font-weight: bolder;
  border-radius: 5px 0px 0px 5px;
  padding: 10px 5px 10px 5px;
}

.openbtn span:nth-child(2) {
  display: none; /* CLOSEは最初非表示 */
}

.openbtn.active span:nth-child(1) {
  display: none; /* active時はMENUを非表示 */
}

.openbtn.active span:nth-child(2) {
  display: inline; /* active時はCLOSEを表示 */
}

/* 見た目の例（任意） */
.openbtn {
  cursor: pointer;
  user-select: none;
  font-weight: bold;
  font-size: 12px;
}

/*×に変化*/
/* .openbtn span {
  display: inline-block;
  transition: all 0.4s;
  position: absolute;
  left: 14px;
  height: 1px;
  background-color: #333;
  width: 45%;
}

.openbtn span:nth-of-type(1) {
  top: 15px;
}

.openbtn span:nth-of-type(2) {
  top: 23px;
}

.openbtn span:nth-of-type(3) {
  top: 31px;
}

.openbtn.active span:nth-of-type(1) {
  top: 18px;
  left: 18px;
  transform: translateY(6px) rotate(-45deg);
  width: 30%;
}

.openbtn.active span:nth-of-type(2) {
  opacity: 0;
}

.openbtn.active span:nth-of-type(3) {
  top: 30px;
  left: 18px;
  transform: translateY(-6px) rotate(45deg);
  width: 30%;
} */

.header__list {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0 1.5em;
  list-style-type: none;
}

/* ーーーーーーheaderここまでーーーーーー */

/* ーーーーーーfooterここからーーーーーー */

.footer-001 {
  display: flex;
  align-items: center;
  flex-direction: column;
  padding: 20px 10px 10px;
  margin-top: 35px;
}

.footer-001 .header-logo {
  width: 150px;
  margin: 0px auto;
}

.footer-001__list {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0 18px;
  list-style-type: none;
  margin: 0px 0 5px;
  padding: 0.5em;
}

.footer-001__link {
  color: #333;
  text-decoration: none;
  font-size: 10px;
}

.footer-001__copyright {
  margin: 0;
  color: #333;
  font-weight: 200;
  font-size: 0.5em;
}

.footer-2__list {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0 1.5em;
  list-style-type: none;
  padding: 1em 0em 0em;
}

.footer-2__sns-icon {
  width: 21px;
  height: 21px;
}

/* ーーーーーーfooterここまでーーーーーー */

/* ----------ページトップ~~~~~~ーー */

/* ページトップへ戻るのCSS */

#page-top {
  position: fixed;
  bottom: 40px;
  right: 20px;
  z-index: 99;
}

#page-top a {
  text-decoration: none;
  color: #333;
  text-align: center;
  display: block;
  opacity: 0.9;
  transition: all 0.3s ease;
  font-size: x-large;
  padding: 10px;
}

#page-top a:hover {
  text-decoration: none;
  opacity: 0.5;
}

/* ーーーーーーindexここからーーーーーー */

/* mvスライダー動きのCSS */
/* 全体 */
.swiper {
  width: 100%;
  height: 100vh;
  margin: 0px auto;
  position: relative;
}

.swiper-wrapper {
  position: relative; /* 追加：fadeエフェクトでは必要 */
}

.swiper-slide {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-color: #fff;
}

.slide1-1 {
  background-image: url("../images/index-mv-ny.jpg");
}
.slide1 {
  background-image: url("../images/index-mv1-mb.jpg");
}
.slide2 {
  background-image: url("../images/index-mv2-mb.jpg");
}
.slide3 {
  background-image: url("../images/index-mv3-mb.jpg");
}
.slide4 {
  background-image: url("../images/index-mv4-mb.jpg");
}
.slide5 {
  background-image: url("../images/index-mv5-mb.jpg");
}

.logo-title {
  width: 90%;
  position: absolute;
  top: 30%;
  left: 5%;
  z-index: 3;
}

/* mvスライダーのCSSここまで*/

/* murmursコーナー */
.balloon-100 {
  display: flex;
  justify-content: center;
  align-items: start;
  gap: 0 15px;
  width: 100%;
}

.balloon-100 img {
  max-width: 70px;
  height: 100%;
  border-radius: 50%;
}

.balloon-100 p {
  position: relative;
  max-width: 100%;
  margin: 3px 0 0;
  padding: 1em 1em;
  border-radius: 5px;
  background-color: #f2f2f2;
  color: #333333;
}

.balloon-100 p::before {
  position: absolute;
  left: -15px;
  width: 15px;
  height: 30px;
  background-color: #f2f2f2;
  clip-path: polygon(0 50%, 100% 0, 100% 100%);
  content: "";
}

.murmurs-wrapper {
  margin: 30px auto;
  width: 85%;
}

.murmurs-wrapper h2 {
  font-size: 35px;
  font-weight: 600;
}

.murmurs-wrapper span {
  font-size: 11px;
  font-weight: 500;
  display: block;
  margin-top: 5px;
}

/* nowplayinggame */

.slide-playgame1 {
  background-image: url("../images/playing1-pc.png");
}
.slide-playgame2 {
  background-image: url("../images/playing2-pc.png");
}
.slide-playgame3 {
  background-image: url("../images/playing3-pc.png");
}
.slide-playgame4 {
  background-image: url("../images/playing4-pc.png");
}

.swiper2 {
  width: 85%;
  height: 60vh;
  max-height: 450px;
  margin: 30px auto 50px;
}

.swiper-slide--sub {
  position: relative;
  display: flex;
  flex-direction: column; /* 縦並び */
  justify-content: center;
  align-items: flex-start; /* 左寄せ */
  color: #fff;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover; /* スマホは画像を比率そのまま表示 */
  border-radius: 50px;
  border: solid 1px #333;
}

/* テキスト装飾 */
.swiper-slide--sub span,
.swiper-slide--sub h3,
.swiper-slide--sub p {
  background: rgba(255, 255, 255, 0.85);
  color: #333;
  display: inline-block;
  padding: 4px 8px;
  margin-left: 30px;
  margin-bottom: 10px;
  word-break: break-word; /* はみ出し防止 */
}

.swiper-slide--sub span {
  font-size: 9px;
  text-transform: uppercase;
}

.swiper-slide--sub h3 {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 12px;
}

.swiper-slide--sub p {
  font-size: 12px;
  max-width: 70%;
  padding: 10px;
}

/* 左部分 */

@keyframes infinity-scroll-left {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}
.scroll-infinity__wrap {
  display: flex;
  overflow: hidden;
  margin: 25px auto 0;
}

.scroll-infinity__list {
  display: flex;
  list-style: none;
  padding: 1;
}

.scroll-infinity__list--left {
  animation: infinity-scroll-left 80s infinite linear 0.5s both;
}

.scroll-infinity__item {
  width: calc(100vw / 4);
  padding: 10px;
}

.scroll-infinity__item > img {
  width: 100%;
}

#indexmv-fixed {
  margin: 0 auto;
  width: 85%;
}

#indexmv-fixed-top {
  margin: 0 auto;
  width: 85%;
}

#indexmv-fixed-top h2 {
  font-size: 35px;
  font-weight: 600;
  margin-top: 30px;
  margin-bottom: 10px;
}

#indexmv-fixed-top span {
  font-size: 11px;
  font-weight: 500;
  display: block;
  margin-top: 5px;
}

#indexmv-fixed h2 {
  font-size: 35px;
  font-weight: 600;
  margin-top: 30px;
  margin-bottom: 10px;
}

#indexmv-fixed span {
  font-size: 11px;
  font-weight: 500;
  display: block;
  margin-top: 5px;
}

/* アコーディオンCSS */

.accordion-004 {
  width: 100%;
  border-bottom: dashed 1px #333;
}

.accordion-004 summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
  padding: 2em 1em 2em;
  cursor: pointer;
}

.accordion-004 summary::-webkit-details-marker {
  display: none;
}

.accordion-004 summary::before,
.accordion-004 summary::after {
  width: 1px;
  height: 0.9em;
  background-color: #333;
  content: "";
}

.accordion-004 summary::before {
  position: absolute;
  right: 1em;
  rotate: 90deg;
}

.accordion-004 summary::after {
  transition: rotate 0.3s;
}

.accordion-004[open] summary::after {
  rotate: 90deg;
}

@keyframes anima-button-30 {
  0% {
    box-shadow: 0 0 0 0 rgba(47, 57, 65, 0.5);
  }
  100% {
    box-shadow: 0 0 0 1.2em rgb(0 0 0 / 0%);
  }
}

.accordion-004 p {
  transform: translateY(-10px);
  opacity: 0;
  margin: 0;
  padding: 0.3em 0.5px 0.5em;
  color: #333333;
  transition: transform 0.5s, opacity 0.5s;
  font-size: 14px;
}

.accordion-004[open] p {
  transform: none;
  opacity: 1;
}

.accordion-004 .header-logo {
  width: 150px;
}

p.credit {
  font-size: 12px;
}

/* アコーディオンのタイトル内容CSS */

h3.about {
  font-size: 18px;
  font-weight: 600;
  display: inline-block; /* transformが効くようにする */
  transition: transform 0.3s ease, color 0.3s ease;
}

h3.about:hover {
  transform: scale(1.05) rotate(-1deg); /* 少し拡大＋軽く傾ける */
  color: #778892; /* ホバー時の文字色変更 */
  cursor: pointer; /* マウスカーソルをポインターに */
}

/* about this site */

img.blog-logo {
  width: 60%;
  display: block;
  margin: 15px auto;
}

.box-011 {
  position: relative;
  margin: 3.9em auto 40px;
  padding: 1em 1em;
  border: 0.8px solid #8c8c8c;
  max-width: 500px;
}

.box-011 span {
  position: absolute;
  top: -2.1em;
  left: -1px;
  padding: 0.2em 1em;
  border-radius: 5px 5px 0 0;
  background-color: #333;
  color: #fff;
  font-size: 14px;
}

.box-011 .box-011-inner {
  margin: 0;
  color: #333;
}

.aboutthissite-wrapper {
  padding: 10px;
}

/* info */

.fusen-2 {
  display: inline-block;
  position: relative;
  padding: 0.5em 1em;
  border-right: 27px solid #2589d0;
  background-color: #f5f5f5;
  color: #333333;
}

.fusen-2::before {
  position: absolute;
  bottom: 2px;
  right: -20px;
  z-index: -1;
  transform: rotate(5deg);
  width: 100%;
  height: 50%;
  background-color: #d0d0d0;
  content: "";
  filter: blur(4px);
}

p.info-text {
  margin: 15px auto 30px;
}

/* about me */

.balloon-009 {
  width: 97%;
  margin: 0 auto 30px;
}

.balloon-009 img {
  display: block;
  max-width: 160px;
  margin: 0 auto 30px; /* 画像下に余白 */
}

.balloon-009 p {
  position: relative;
  display: block; /* 中央に揃えるため */
  max-width: 650px;
  padding: 1.3em;
  border-radius: 5px;
  background-color: #efecec;
  color: #333333;
  margin: 0 auto;
}

/* 下向き三角 */
.balloon-009 p::before {
  position: absolute;
  top: -15px; /* 吹き出しの上に三角 */
  left: 50%;
  transform: translateX(-50%);
  width: 30px;
  height: 15px;
  background-color: #efecec;
  clip-path: polygon(0 100%, 50% 0, 100% 100%);
  content: "";
}

/*　-------左側ここまで-------- */

/* 右側囲み */
#index-container {
  width: 85%; /*横幅を100%にして1列に見せる*/
  margin: 40px auto 0px;
}

/* ギャラリー */
.gallery {
  margin: 0 auto;
  width: 85%;
}

.gallery h2 {
  font-weight: 600;
  font-size: 35px;
  color: #333;
  line-height: 1;
  margin: 35px 0px 10px 0px;
}

.gallery span {
  font-size: 10px;
  font-weight: 500;
  display: block;
  margin-top: 5px;
}

/*---------------------
gallery-type-btn 
----------------------*/
.type-btn {
  display: flex;
  justify-content: left;
  flex-wrap: wrap;
  margin-top: 20px;
  margin-bottom: 40px;
}

.type-btn li {
  border: solid 0.8px #333;
  margin: 3px;
  padding: 5px 10px 5px;
  cursor: pointer;
  font-size: 12px;
  letter-spacing: normal;
  font-weight: 600;
  border-radius: 20px;
}

.type-btn li.active {
  background-color: #dedede;
  color: #333;
}

/*--------
grid 
--------*/
.grid {
  position: relative;
  width: 100%;
}

.grid .item {
  width: 49%;
  display: block;
  position: absolute;
  z-index: 1;
}
.grid .item .item-content {
  position: relative;
  width: 100%;
  height: 100%;
  align-items: center;
}

.grid .item .item-content img {
  width: 80%;
  height: auto;
  margin: 0 auto 20px;
  transition: transform 0.3s ease; /* アニメーションの滑らかさ */
  transform-origin: center center; /* 中心を軸に回転 */
  display: block;
}

.grid .item .item-content img:hover {
  transform: rotate(3deg) scale(1.05); /* 少し傾けて拡大 */
  opacity: none;
}

/* --------------indexここまで---------------- */

/* -------------blogインデックス--------------- */

.gallery-index h2 {
  font-size: 35px;
  font-weight: 600;
  margin-top: 50px;
}

.gallery-index span {
  font-size: 11px;
  margin-top: 5px;
  margin-bottom: 10px;
  display: block;
  font-weight: 600;
}

.gallery-index {
  margin-left: 10%;
  margin-right: 5%;
  margin-bottom: 4%;
}

/* 最後の画像と言葉 */

.collage {
  width: 70%;
  display: block;
  margin: 0 auto;
}

div.end-text {
  font-size: 16px;
  margin: 0 auto;
  text-align: center;
  font-weight: 600;
}

/*  -----------プライバシーポリシ--------------- */

.privacy-policy--wrapper {
  margin: 15px;
}

.privacy-policy--wrapper h2 {
  font-size: 35px;
  font-weight: 600;
  margin-top: 50px;
}

.privacy-policy--wrapper span {
  font-size: 11px;
  margin-top: 5px;
  margin-bottom: 10px;
  display: block;
  font-weight: 600;
}

.privacy-policy {
  height: 350px;
  padding: 2em;
  overflow-y: scroll;
  border: 1px solid #333;
}

.privacy-policy__box {
  margin-top: 30px;
}

.privacy-policy__box:first-child {
  margin-top: 0px;
}

.privacy-policy__head {
  font-size: 20px;
  font-weight: 700;
}

.privacy-policy__detail {
  margin-top: 0.5em;
}

.privacy-policy--inner {
  max-width: 1000px;
  margin-top: 50px;
  margin-left: auto;
  margin-right: auto;
}

/* ---------playgamelist----------- */

.game-list-wrapper {
  margin: 7% 0% 0px 8%;
}

.game-list-wrapper h2 {
  font-size: 35px;
  font-weight: 600;
  margin-top: 50px;
}

.game-list-wrapper span {
  font-size: 11px;
  margin-top: 5px;
  margin-bottom: 10px;
  display: block;
  font-weight: 600;
}

.box-015 {
  position: relative;
  width: 70%;
  max-width: 450px;
  margin: 2em auto 5em;
  padding: 3em 1.5em 3em 1.5em;
  border-radius: 3px;
  box-shadow: 0 2px 3px rgb(0 0 0 / 20%);
  background-color: #fafafa;
  color: #333333;
  transform: rotate(-2deg); /* 左に5度傾ける */
  display: block;
}

.box-015::before,
.box-015::after {
  position: absolute;
  content: "";
}

.box-015::before {
  top: -15px;
  right: 10px;
  height: 50px;
  width: 15px;
  border: 3px solid #999;
  border-radius: 10px;
  box-shadow: 1px 1px 2px rgb(0 0 0 / 30%);
  transform: rotate(10deg);
}

.box-015::after {
  top: 0;
  width: 10px;
  right: 20px;
  border: solid 5px #fafafa;
}

.gamedevice {
  font-size: 16px;
  margin-bottom: 20px;
  font-weight: 600;
}

.sub-sentence {
  display: flex;
}

span.gamename2 {
  font-size: 11px;
  margin-top: 5px;
  margin-bottom: 10px;
  display: block;
}

span.gamename3 {
  font-size: 11px;
  margin-top: 5px;
  margin-bottom: 10px;
  text-align: right;
  display: block;
}

.box-015 .gamedevice:nth-of-type(2) {
  margin-top: 20px; /* 好きな値に変更 */
}

.game-title-list {
  font-size: 12px;
  border-bottom: dashed 0.8px #333;
  padding: 5px;
}

.game-title-list a {
  display: inline-block;
  transition: transform 0.3s ease;
  font-size: 12px;
}

.game-title-list a:hover span {
  display: inline-block; /* transform適用のため */
  transform: rotate(-3deg) translateY(-5px) scale(1.05);
}

span.game-no {
  font-size: 9px;
}

.box-010 {
  position: relative;
  max-width: 500px;
  margin: 1.5em auto 0em;
  padding: 4.5em 1.5em 1em;
  box-shadow: 0 2px 3px rgb(0 0 0 / 20%);
  background-color: #fafafa;
  color: #333333;
}

.box-010 span {
  position: absolute;
  top: -15px;
  left: 1px;
  transform: translateX(-0.3em) rotate(-5deg);
  padding: 0.5em 1em;
  border-right: 2px dotted rgb(0 0 0 / 10%);
  border-left: 2px dotted rgb(0 0 0 / 10%);
  box-shadow: 0 0 5px rgb(0 0 0 / 20%);
  background-color: rgb(255 255 255 / 40%);
  font-weight: 600;
}

.box-010 p {
  margin: 0;
}

.img-pic3 {
  width: 80%;
  display: block;
  margin: 50px auto;
  transform: rotate(5deg); /* 左に5度傾ける */
}

.img-pic4 {
  width: 80%;
  display: block;
  margin: 50px auto;
  transform: rotate(-5deg); /* 左に5度傾ける */
}

.button-51 {
  display: flex;
  justify-content: center;
  position: relative;
  width: fit-content;
  margin: 10px auto;
  padding: 0.9em 2em;
  border: none;
  border-bottom: 2px solid #e6edf3;
  background-color: transparent;
  color: #333;
  font-size: 1em;
  font-size: 12px;
}

.button-51::after {
  position: absolute;
  bottom: -3px;
  left: 0;
  transform: scaleX(0);
  transform-origin: center left;
  width: 100%;
  height: 2px;
  background-color: #121212;
  content: "";
  transition: transform 0.3s ease;
}

.button-51:hover::after {
  transform: scaleX(1);
}

div.space {
  margin: 40px;
}

/* -------------ブログ記CSS--------------- */

/* ゲームタイトル */
.game-title-wrapper {
  margin: 50px auto;
}

.game-category {
  font-size: 20px;
  font-weight: 600;
}

div.sub-category {
  border: solid 0.8px #333;
  font-size: 10px;
  padding: 2px 5px;
  margin: 5px 5px 5px 0;
  width: fit-content;
}

span.gamename {
  font-size: 10px;
  font-weight: 100;
}

/* ブログタイトル・記事 */

#blog-container {
  width: 85%;
  margin: 0px auto 30px;
}

/*  */

.blogtitle-parent {
  display: flex;
  align-items: center;
  margin: 50px auto 2px;
}

.blogtitle-parent h2.no {
  font-weight: 600;
  font-size: 25px;
  color: #333;
  line-height: 1;
  background: transparent;
}

h3.blog {
  font-size: 18px;
  font-weight: 600;
}

h4.subhead {
  margin: 40px 0 0px;
  font-weight: 600;
}

.box-ds {
  width: 85%;
  position: relative;
  margin: 4em auto;
  padding: 1.8em;
  box-shadow: 0 2px 3px rgb(0 0 0 / 20%);
  background-color: #f2f2f2;
  color: #333333;
  border-radius: 10px;
}

.box-ds span {
  position: absolute;
  top: -15px;
  transform: translateX(-0.3em) rotate(-3deg);
  padding: 0.8em 1em;
  border-right: 2px dotted rgb(0 0 0 / 10%);
  border-left: 2px dotted rgb(0 0 0 / 10%);
  box-shadow: 0 0 5px rgb(0 0 0 / 20%);
  background-color: rgb(255 255 255 / 40%);
  font-weight: 600;
  font-size: 0.95em;
}

.box-ds p {
  margin: 0;
  font-size: 0.9em;
}

.box-ds > div {
  margin-top: 2em;
  margin-bottom: 1em;
  color: #030303;
  font-weight: 600;
  font-size: 0.95em;
}

.box-ds > p {
  margin: 0;
  color: #333;
}

.subtitle {
  margin-top: 14px;
  margin-bottom: 30px;
  padding-top: 10px;
  border-top: dashed 1px #333;
  font-weight: 600;
}

/* atsumori updatecss*/

.box-019 {
  position: relative;
  margin: 5em auto;
  padding: 1.8em;
  border: 3px solid #333;
  border-radius: 20px;
  background-color: #fff;
}

.box-019 > div {
  position: absolute;
  top: -1.15em;
  left: -0.5em;
  padding: 0.4em 1.4em;
  border-radius: 25px;
  background-color: #333;
  color: #fff;
  font-size: 1em;
}

.box-019 > div::before {
  position: absolute;
  bottom: -8px;
  left: 50%;
  transform: translateX(-50%);
  width: 16px;
  height: 8px;
  background-color: #333;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  content: "";
}

.box-019 p {
  margin: 0;
}

/*  */

p.blog {
  margin: 30px auto;
}


.pic-mv {
  width: 70%;
  display: block;
  margin: 50px auto;
  border-radius: 20px;
}

.img-pic {
  width: 80%;
  display: block;
  margin: 40px auto 5px;
}

.img-pic1 {
  width: 65%;
  display: block;
  margin: 40px auto;
}

.img-pic2 {
  width: 80%;
  display: block;
  margin: 20px auto;
}

.img-pic5 {
  max-width: 550px;
  width: 90%;
  display: block;
  margin: 25px auto;
}

.instagram-post {
  display: flex;
  justify-content: center; /* 横方向中央寄せ */
  margin: 30px 0; /* 上下余白はお好みで */
}

.x-post {
  display: flex;
  justify-content: center; /* 横方向中央寄せ */
  margin: 0 auto; /* 上下余白はお好みで */
}

.gamecredit {
  font-size: 10px;
  font-weight: 100;
}

.game-title-wrapper--2 {
  margin: 11% 0% 0px 10%;
}

/* youtube用 */

.video-wrap {
  width: 90%; /* 画面幅に合わせる */
  max-width: 360px; /* PCの最大幅を調整 */
  margin: 30px auto; /* 中央寄せ */
  aspect-ratio: 9 / 16; /* Shorts縦長比率 */
  border-radius: 10px;
  overflow: hidden;
  transform: translateY(0px);
}

.video-wrap-top {
  width: 100%; /* 画面幅に合わせる */
  margin: 30px auto; /* 中央寄せ */
  border-radius: 10px;
  overflow: hidden;
}

.video-wrap iframe {
  width: 100%;
  height: 100%;
}

/* video直置き */

.video-wrap--2 {
  /* 比率を変えたい場合はここ変更 */
  width: 100%; /* ページ幅いっぱい */
  max-width: 550px; /* 最大幅の制限（不要なら消す） */
  margin: 0px auto; /* 中央寄せ */
}

.video-wrap--2 video {
  width: 70%;
  height: 100%;
  /* 画面いっぱいに切り取り表示（全体見せたいなら contain） */
  display: block;
  margin: 45px auto;
}

/* otherblog用css */

/* other-blog用タイトル・リンク */

.other-blogindex-parent h2 {
  font-size: 28px;
  font-weight: 600;
  margin-top: 30px;
}

a.other-blogindex {
  font-size: 10px;
  display: block;
  background-color: #fff;
  border: solid 0.8px #333;
  color: #333;
  padding: 5px 20px;
  margin: 10px 0;
  font-weight: 600;
  text-align: center;
  width: fit-content;
  border-radius: 20px;
}

div.index--blogindex a.other-blogindex {
  margin: 25px auto 45px;
}

a.other-blogindex:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 0 #999;
}

a.other-blogindex:active {
  transform: translateY(2px);
  box-shadow: 0 1px 0 #999;
}

.other-blog-wraaper {
  width: 90%;
  margin: 0 auto 30px;
  border-top: dashed 1px #333;
}

.slider1 {
  position: relative; /* ボタンがabsoluteなので、位置の基準値を設定する */
  overflow: hidden; /* はみ出した部分を隠す */
}

.p-home-works .swiper-button-next,
.p-home-works .swiper-button-prev {
  /* background-color: #fff; ボタンの背景色 */
  border-radius: 50px;
  width: 30px;
  height: 30px;
}
.p-home-works .swiper-button-next {
  right: 2%; /* ボタンを右端にくっつける */
}
.p-home-works .swiper-button-prev {
  left: 2%; /* ボタンを左端にくっつける */
}
.p-home-works .swiper-button-next::after {
  /* content: "→"; ボタンの矢印変更 */
  color: #333;
  font-size: 2rem;
}
.p-home-works .swiper-button-prev::after {
  /* content: "←"; ボタンの矢印変更 */
  color: #333;
  font-size: 2rem;
}

.p-home__works-inr {
  width: 100%;
  margin: 0px auto;
}
/* スライダーのCSSここまで */

/* ーーーーーーーーーーーーーーーーーーーーーーー */
/* ーーーーーーpc・タブレットここからーーー-ーー */
/* ーーーーーーーーーーーーーーーーーーーーーーー */

@media screen and (min-width: 1080px) {
  /*ーーーーーー全体CSS（pc）ここからーーーーーー */

  body {
    font-size: 16px;
  }

  p {
    font-size: 16px;
  }

  a {
    font-size: 14px;
  }

  /*ーーーーーー全体CSS（pc）ここまでーーーーーー */

  /*  */

  .u-fs2 {
    font-size: 12px;
  }

  /* topへ戻る */
  #page-top {
    position: fixed;
    bottom: 40px;
    right: 60px;
    font-size: 12px;
    z-index: 99;
  }

  /* ------ヘッダー（pc）ここからーーーーーー */

  #fixed-header {
    position: fixed;
    top: -70px;
    width: 100%;
    height: 70px;
    line-height: 70px;
    font-size: 2em;
    text-align: center;
    color: #333;
    transition: 0.7s;
    z-index: 9999;
  }

  #header nav {
    margin: 0 auto;
    width: 95%;
    /* max-width: 1200px; */
    display: flex;
    justify-content: space-between;
    padding-top: 20px;
    padding-bottom: 15px;
  }

  #header .navi {
    list-style: none;
    width: 44%;
    max-width: 315px;
  }

  #header .mail {
    font-size: 20px;
  }

  #g-nav.panelactive #g-nav-list {
    width: 100%;
  }

  li {
    font-size: 20px;
  }

  .icon {
    width: 10%;
    margin-left: 0.35em;
    padding-right: 10px;
  }

  .openbtn {
    top: 40px;
    right: -1px;
    font-size: 13px;
  }

  /*ナビゲーション*/
  #g-nav ul {
    padding: 35px 50px 45px;
    width: 350px;
    top: 50%;
    left: 50%;
  }

  /* フッター*/

  .footer-001 {
    display: flex;
    align-items: center;
    flex-direction: column;
    padding: 0px 10px 10px;
  }

  .footer-001__list {
    gap: 0 1.5em;
  }

  /* ---------プライバシーポリシー（pc）----------- */

  .privacy-policy--wrapper {
    margin: 50px;
  }

  /* ーーーーーindex(PC)ここからーーーーー */

  /* topへ戻る */

  #page-top a {
    font-size: xx-large;
  }

  /*  左と右を囲う全体のエリア */

  #all-wrapper {
    display: flex;
    flex-wrap: wrap;
    position: relative;
    margin: 0 auto;
  }

  .slide1-1 {
  background-image: url("../images/index-mv-ny.jpg");
}

  .slide1 {
    background-image: url("../images/index-mv1.jpg");
  }
  .slide2 {
    background-image: url("../images/index-mv2.jpg");
  }
  .slide3 {
    background-image: url("../images/index-mv3.jpg");
  }
  .slide4 {
    background-image: url("../images/index-mv4.jpg");
  }
  .slide5 {
    background-image: url("../images/index-mv5.jpg");
  }

  .murmurs-wrapper h2 {
    font-size: 50px;
    margin-top: 50px;
  }

  #indexmv-fixed-top h2 {
    font-size: 50px;
    margin-top: 50px;
  }

  .gallery-index h2 {
    font-size: 50px;
  }

  /*aboutpageの左エリア*/
  #indexmv-fixed {
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    width: 40%;
    height: 100vh;
    justify-content: center;
    border-bottom: 0;
    margin: 3em 0em 15em 3em;
  }

  #indexmv-fixed-gamelist {
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    width: 40%;
    height: 100vh;
    display: flex;
    justify-content: center;
    border-bottom: 0;
    margin: 0px auto 250px;
  }

  .logo-title {
    width: 45%;
    position: absolute;
    top: 18%;
    left: 5%;
    z-index: 3;
  }

  .logo-sub {
    width: 30%;
    position: absolute;
    top: 60%;
    left: 65%;
    z-index: 3;
  }

  /* 流れるゲーム画像 */
  .scroll-infinity__item {
    width: calc(100vw / 7);
    padding: 30px;
  }

  /*右エリア*/
  #index-container {
    /*横半分50%にする*/
    width: 50%;
    border-top: none;
  }

  h3.about {
    font-size: 30px;
  }

  h2.blog span {
    font-size: 20px; /* 必要ならサイズ指定 */
  }

  .accordion-004 p {
    font-size: 15px;
  }

  .aboutthissite-wrapper {
    padding: 10px;
    width: 65%;
    margin: 0 auto;
  }

  /* aboutme */

  .balloon-009 {
    display: flex;
    justify-content: center;
    align-items: start;
    gap: 0 18px;
    width: 97%;
    margin: 0 auto 30px;
  }

  .balloon-009 img {
    max-width: 110px;
    height: 100%;
    margin: 0;
  }

  .balloon-009 p {
    position: relative;
    max-width: 60%;
    margin: 3px 0 0;
    padding: 0.8em 1em;
    border-radius: 5px;
    background-color: #efecec;
    color: #333333;
  }

  .balloon-009 p::before {
    position: absolute;
    left: -6px;
    width: 15px;
    height: 30px;
    background-color: #efecec;
    clip-path: polygon(0 50%, 100% 0, 100% 100%);
    content: "";
  }

  /* 下向き三角 */
  .balloon-009 p::before {
    top: 45px; /* 吹き出しの上に三角 */
  }

  .playgame-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* 3列に分ける */
    gap: 10px; /* 列の間隔 */
  }

  .playgameimg {
    width: 90%;
    display: block;
    transition: transform 0.3s ease; /* スムーズに動かす */
  }

  .playgameimg:hover {
    transform: rotate(-5deg); /* 左に5度傾ける */
  }

  .balloon-006 {
    display: flex;
    justify-content: center;
    position: relative;
    max-width: 600px;
    margin: 15px auto 30px;
    padding: 1em;
  }

  /* index mv(PC) ここから*/
  .swiper {
    width: 100%;
    height: 100vh;
  }

  .swiper-wrapper {
    position: relative; /* 追加：fadeエフェクトでは必要 */
  }

  .swiper-slide {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-color: #fff;
  }

  /* nowplayinggame */

  .swiper2 {
    width: 80%;
    height: 55vh;
    margin: 30px auto;
  }

  .slide-playgame1 {
    background-image: url("../images/playing1-pc.png");
  }
  .slide-playgame2 {
    background-image: url("../images/playing2-pc.png");
  }
  .slide-playgame3 {
    background-image: url("../images/playing3-pc.png");
  }

  .swiper-slide--sub span {
    font-size: 9px;
  }

  .swiper-slide--sub h3 {
    font-size: 22px;
    margin-bottom: 20px;
  }

  .swiper-slide--sub p {
    font-size: 14px;
    font-weight: 400;
  }

  /* ギャラリー */

  .grid .item {
    width: 47%;
    margin: 3.5px;
    display: block;
    position: absolute;
    z-index: 1;
  }

  div.index--blogindex a.other-blogindex {
    margin: 25px auto 40px;
  }

  .type-btn li {
    border: solid 0.8px #333;
    margin: 5px 5px;
    padding: 5px 10px 5px;
    cursor: pointer;
    font-size: 14px;
    letter-spacing: normal;
    font-weight: 600;
  }

  .collage {
    width: 50%;
    display: block;
    margin: 0 auto;
  }

  /* ---------ブログインデックス(pc)ーーーーーー */

  .gallery h2 {
    font-size: 50px;
    margin-top: 70px;
  }

  .gallery-index {
    margin-left: 5%;
    margin-right: 5%;
    margin-bottom: 2%;
  }

  /* ーーーーーブログ各ページ~ーーーーーーーー */

  #blogmv-fixed {
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    width: 50%;
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    border-bottom: 0;
    /* margin: 100px auto 150px; */
  }

  #blog-container {
    /*横半分50%にする*/
    width: 50%;
  }

  #blog-container {
    margin-top: 180px;
    width: 49%;
    margin-right: 3em;
  }

  .game-title-wrapper {
    margin: 5% 0% 0px 0%;
  }

  .game-title-wrapper--2 {
    margin: 5% 0% 0px 10%;
  }

  .game-list-wrapper {
    margin: 12% 0% 0px 0%;
  }

  .game-list-wrapper h2 {
    font-size: 50px;
  }

  .blogtitle-parent {
    align-items: center;
    margin: 10px auto;
  }

  .gamecredit {
    font-size: 10px;
    font-weight: 100;
    text-align: center;
  }

  /* youtube用 */

  .video-container {
    width: 100%;
  }

  .video-wrap {
    width: 100%; /* 画面幅に合わせる */
    margin: 55px auto; /* 中央寄せ */
    aspect-ratio: 9 / 16; /* Shorts縦長比率 */
  }

  .video-wrap-index {
    max-width: 100%; /* 画面幅に合わせる */
    height: 100%;
    border-radius: 10px;
    margin: 50px auto; /* 中央寄せ */
  }

  .video-wrap-top {
    max-width: 900px; /* 画面幅に合わせる */
    height: 100%;
    border-radius: 10px;
    margin: 50px auto; /* 中央寄せ */
  }

  .video-wrap iframe {
    width: 100%;
    height: 100%;
  }

  .instagram-post iframe {
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .img-pic {
    width: 80%;
    display: block;
    margin: 50px auto;
  }

  h2.blog.otherblog {
    font-size: 35px;
  }

  h3.blog {
    font-size: 23px;
  }

  .game-category {
    /* クラスは . から始まる */
    font-size: 25px;
    font-weight: 600;
  }

  .blogtitle-parent h2.no {
    font-size: 30px;
  }

  .other-blog-wraaper {
    width: 90%;
    margin: 15px auto 0;
    padding: 0 20px; /* 画面端との余白 */
    box-sizing: border-box;
  }

  .other-blogindex-parent {
    display: flex;
    margin: 40px 20px;
    align-items: center; /* ← 縦方向の中央揃え */
    gap: 20px; /* h2 と a の間の余白 */
  }

  .other-index-parent {
    display: flex;
    gap: 8px;
  }

  /* h2側の余計なmarginをリセットして揃えやすくする */
  .other-blogindex-parent h2 {
    margin: 0; /* ブラウザ標準の上下マージンを消す */
  }

  /* swiperコンテナ */
  .swiper-container.slider1 {
    width: 100%;
    overflow: hidden; /* はみ出し防止 */
    box-sizing: border-box;
  }

  /* swiperラッパー */
  .swiper-wrapper {
    display: flex;
    box-sizing: border-box;
  }

  /* 各スライド */
  .swiper-slide {
    flex-shrink: 0;
    width: auto; /* 自動幅調整 */
    box-sizing: border-box;
  }

  /* スライド内の画像 */
  .swiper-slide img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
  }

  /* ナビゲーションボタン */
  .swiper-button-next,
  .swiper-button-prev {
    color: #333;
  }

  /* ページネーション */
  .swiper-pagination {
    bottom: 10px !important;
  }

  a.other-blogindex {
    font-size: 12px;
  }

  /* playgamelist(pc) */

  .box-015 {
    position: relative;
    width: 375px;
    box-shadow: rgba(0, 0, 0, 0.2) 0px 2px 3px;
    background-color: rgb(250, 250, 250);
    color: rgb(51, 51, 51);
    padding: 3em 2em;
    border-radius: 3px;
  }

  span.gamename2 {
    font-size: 12px;
  }

  span.gamename3 {
    font-size: 12px;
  }

  .game-title-list {
    font-size: 16px;
    border-bottom: dashed 0.8px #333;
    padding: 5px;
  }

  .game-title-list a {
    display: inline-block;
    transition: transform 0.3s ease;
    font-size: 14px;
  }

  .box-010 {
    position: relative;
    max-width: 500px;
    margin: 1.5em auto 20px;
    padding: 4.5em 1.5em 1em;
    box-shadow: 0 2px 3px rgb(0 0 0 / 20%);
    background-color: #fafafa;
    color: #333333;
  }

  div.space {
    margin: 100px;
  }

  /* プライバシー */

  .privacy-policy--wrapper h2 {
    font-size: 50px;
  }
}


/* ---- 20251222 ---- */

/* コンテナ（最大幅と中央寄せ） */
.gallery-container {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
}

/* タイトル */
.gallery-title {
    font-size: 1.5rem;
    font-weight: bold;
    text-align: center;
    margin-bottom: 24px;
}

@media (min-width: 768px) {
    .gallery-title {
        font-size: 2rem;
    }
}

/* Swiperコンテナの調整 */
.swiper-youtube {
    width: 100%;
    overflow: hidden;
    height: auto;
    padding-top: 35px;
    padding-bottom: 100px; /* ページネーション用の下部余白 */
}

/* YouTube動画の枠（16:9の比率を維持） */
.video-wrapper {
    position: relative;
    width: 100%;
    padding-top: 56.25%; /* 16:9 Aspect Ratio */
    overflow: hidden;
    border-radius: 12px;
    
    cursor: pointer;
}

.video-link {
    text-decoration: none;
    color: inherit;
    display: block;
    transition: transform 0.2s;
}

.video-link:hover {
    transform: translateY(-4px);
}

.video-thumbnail {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.play-button {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 58px;
    height: 38px;
    background: rgba(255, 0, 0, 0.9);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    color: white;
    line-height: 1;
    transition: all 0.3s;
}

.video-link:hover .play-button {
    background: rgb(255, 0, 0);
    transform: translate(-50%, -50%) scale(1.1);
}

/* Swiper: スライド自体の設定 */
.swiper-youtube .swiper-slide {
    height: auto; 
    display: flex;
    flex-direction: column;
    transition: transform 0.3s;
}

/* 動画情報エリア */
.video-info {
    padding: 16px 8px;
}

.video-link .video-info h3 {
    font-size: 1rem;
    font-weight: 600;
    margin: 0 0 8px 0;
    line-height: 1.4;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.video-link .video-info p {
    font-size: 0.85rem;
    margin: 0;
    line-height: 1.5;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

/* スマホ時のフェードアニメーション */
.swiper-youtube .swiper-slide-active .video-wrapper {
    animation: fadeInScale 0.6s ease-out forwards;
}

@keyframes fadeInScale {
    from { 
        opacity: 0; 
        transform: scale(0.95); 
    }
    to { 
        opacity: 1; 
        transform: scale(1); 
    }
}

/* ページネーション（下の点々）のデザイン */
.swiper-youtube .swiper-pagination-bullet {
    background: #ccc;
    opacity: 0.5;
    width: 10px;
    height: 10px;
}
.swiper-youtube .swiper-pagination{
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 4px;
  bottom: 70px !important;
}

.swiper-youtube .swiper-pagination-bullet-active {
    background: #cc0000; /* YouTubeカラー */
    opacity: 1;
    transform: scale(1.2);
}

/* ナビゲーション矢印 */
.swiper-youtube .swiper-button-next,
.swiper-youtube .swiper-button-prev {
    color: #fff;
    text-shadow: 0 2px 4px rgba(0,0,0,0.8);
    transition: color 0.3s;
}

.swiper-youtube .swiper-button-next::after,
.swiper-youtube .swiper-button-prev::after {
    font-size: 24px;
}

.swiper-youtube .swiper-button-next:hover,
.swiper-youtube .swiper-button-prev:hover {
    color: #990000;
    text-shadow: none;
}

/* ステータス表示（ローディング・エラー） */
.status-message {
    text-align: center;
    padding: 40px;
    color: #888;
    font-size: 0.9rem;
    letter-spacing: 0.05em;
}

.error-message {
    display: none;
    color: #ff8888;
    background: rgba(127, 29, 29, 0.3);
    padding: 12px;
    border-radius: 8px;
    margin-bottom: 16px;
    text-align: center;
}

/* ユーティリティクラス */
.hidden {
    display: none !important;
}