@charset "UTF-8";
:root, *::before, *::after {
  --pd-01: 20px;
  --width-01: calc(1366px + (var(--pd-01) * 2));
  --height-header: 72px;
  --outline: 2px solid #ccc;
  --transition: .2s;
  --z-menubtn: 13;
  --z-menubg: 12;
  --z-overlay: 11;
  --z-spmenu: 10;
}
@media screen and (max-width: 767px) {
  :root, *::before, *::after {
    --height-header: 56px;
    --pd-01: 10px;
  }
}
/* リセット
============================================================ */
*, *::before, *::after {
  box-sizing: border-box;
}
body, h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd {
  margin: 0;
}
ul, ol {
  padding: 0;
  margin: 0;
}
ul {
  list-style: none;
}
table {
  border-spacing: 0;
  border-collapse: collapse;
}
/* デフォルト
============================================================ */
body {
  font-family: "Zen Maru Gothic", "游ゴシック Medium", YuGothic, YuGothicM, "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, sans-serif;
  font-style: normal;
  font-weight: 400;
  line-height: 1;
  color: #4c2500;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-text-size-adjust: 100%;
     -moz-text-size-adjust: 100%;
          text-size-adjust: 100%;
}
h1, h2, h3, h4, h5, h6 {
  line-height: 150%;
}
ol {
  padding: 0 0 0 1.25em;
}
@media all and (max-width: 767px) {
  ol {
    padding: 0 0 0 1.5em;
  }
}
a {
  color: #01f;
  word-break: normal;
  overflow-wrap: anywhere;
  text-decoration: none;
  transition: opacity var(--transition) linear, color var(--transition) linear, border var(--transition) linear, background var(--transition) linear, box-shadow var(--transition) linear, text-shadow var(--transition) linear, filter var(--transition) linear;
  line-break: strict;
}
a:focus:not(:focus-visible) {
  outline: 0;
}
a:focus-visible {
  outline: var(--outline);
}
@media (any-hover: hover) {
  a:hover img {
    filter: brightness(1.1);
  }
}
@media (hover: none) {
  a:active img {
    filter: brightness(1.1);
  }
}
a img {
  transition: filter var(--transition) linear;
}
a::before, a::after {
  transition: var(--transition) linear;
}
button {
  font-family: inherit;
  font-size: 16px;
  color: inherit;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  cursor: pointer;
  border: none;
  transition: var(--transition) linear;
  -webkit-tap-highlight-color: transparent;
}
button:focus:not(:focus-visible) {
  outline: 0;
}
button:focus-visible {
  outline: var(--outline);
}
img, picture {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}
/*! Phosphor Icons https://phosphoricons.com/ License - https://github.com/phosphor-icons/homepage/blob/master/LICENSE (MIT License) Copyright (c) 2020 Phosphor Icons */
/* レイアウト
============================================================ */
.l-wrapper {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-height: 100vh;
  overflow-y: hidden;
}
.l-wrapper:not(.p-index) {
  background-image: repeating-linear-gradient(315deg, #f9e78d, #f9e78d 4px, #fbefb5 4px, #fbefb5 8px);
  background-repeat: repeat;
  background-position: center;
  background-size: contain;
}
.l-wrapper:not(.p-index) .l-main {
  padding-block: calc(var(--height-header) + 50px) 100px;
}
/* ----------------------------------------
メインエリア
---------------------------------------- */
.l-main {
  width: 100%;
  line-height: 150%;
}
:where(.l-main) p + p {
  margin: 1em 0 0;
}
/* トップへ戻るボタン
---------------------------------------- */
.btn-to-top {
  position: fixed;
  right: 0;
  bottom: 0;
  z-index: 10;
  pointer-events: none;
  opacity: 0;
  transition: var(--transition) linear;
}
.btn-to-top.is-visible {
  pointer-events: auto;
  opacity: 1;
}
.link-to-top {
  display: block;
}
.link-to-top:focus:not(:focus-visible) {
  outline: 0;
}
.link-to-top:focus-visible {
  outline: var(--outline);
}
@media all and (max-width: 767px) {
  .link-to-top img {
    width: 100px;
  }
}
/* ヘッダー
---------------------------------------- */
.l-header {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
  width: 100%;
  height: var(--height-header);
  padding: 0 var(--pd-01);
}
@media all and (max-width: 767px) {
  .p-index .l-header {
    display: none;
  }
}
.header-inner {
  display: flex;
  align-items: center;
  width: 100%;
  max-width: 1000px;
  height: 100%;
  padding: 0 var(--pd-01);
  margin: 0 auto;
  background: #fff8ee;
  border-radius: 0 0 32px 32px;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.25);
}
@media all and (max-width: 767px) {
  .l-wrapper:not(.p-index) .header-inner {
    padding-inline: calc(var(--pd-01) * 2);
  }
}
.logo-header-link {
  display: inline-block;
}
.nav-global {
  margin: 0 0 0 50px;
}
@media all and (max-width: 767px) {
  .nav-global {
    margin-left: auto;
  }
}
.menu-global {
  display: flex;
  gap: 1em;
}
.menu-global-link {
  padding: 10px;
  font-weight: bold;
  color: #4c2500;
}
.menu-global-link:focus:not(:focus-visible) {
  outline: 0;
}
.menu-global-link:focus-visible {
  outline: var(--outline);
}
@media (any-hover: hover) {
  .menu-global-link:hover {
    opacity: 0.8;
  }
}
@media (hover: none) {
  .menu-global-link:active {
    opacity: 0.8;
  }
}
@media all and (max-width: 767px) {
  .l-wrapper:not(.p-index) .menu-global li:nth-of-type(2) {
    display: none;
  }
}
/* フッター
---------------------------------------- */
.l-footer {
  width: 100%;
  max-width: var(--width-01);
  padding: 25px var(--pd-01) 15px;
  margin: auto auto 0;
  background: #42210b;
  border-image-source: linear-gradient(#42210b, #42210b);
  border-image-slice: 0 fill;
  border-image-outset: 0 100vw;
}
@media all and (max-width: 767px) {
  .l-footer {
    padding-bottom: 100px;
    -o-border-image: none;
       border-image: none;
  }
}
.menu-site {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  justify-content: center;
}
.menu-site-link {
  font-size: 14px;
  font-weight: bold;
  color: #fff;
}
.menu-site-link::before {
  display: inline-block;
  width: 1em;
  height: 1em;
  content: "";
  background: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2232%22%20height%3D%2232%22%20fill%3D%22%23fff%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cpath%20d%3D%22m184.49%20136.49-80%2080a12%2012%200%200%201-17-17L159%20128%2087.51%2056.49a12%2012%200%201%201%2017-17l80%2080a12%2012%200%200%201-.02%2017z%22%2F%3E%3C%2Fsvg%3E") no-repeat center center;
  background-size: contain;
  transform: translateY(2px);
}
.copyright {
  margin: 20px 0 0;
  font-size: 10px;
  color: #fff;
  text-align: center;
}
/* ファーストビュー
============================================================ */
/* ローディング */
.loading {
  position: fixed;
  inset: 0;
  z-index: 100;
  width: 100vw;
  height: 100vh;
  background-color: #f9e78d;
  transition: opacity 1.5s ease;
}
.loading.is-hidden {
  display: none;
}
.spinner {
  width: 100px;
  height: 100px;
  margin: 200px auto;
  background-color: #fff;
  border-radius: 100%;
  animation: sk-scaleout 1s infinite ease-in-out;
}
@keyframes sk-scaleout {
  0% {
    transform: scale(0);
  }
  100% {
    opacity: 0;
    transform: scale(1);
  }
}
/* 雑穀米・ロゴアニメ */
.anime-zakkoku {
  position: relative;
  min-height: 980px;
  overflow: hidden;
  background-image: url("/asset/img/bg_light.png"), repeating-linear-gradient(315deg, #f9e78d, #f9e78d 4px, #fbefb5 4px, #fbefb5 8px);
  background-repeat: no-repeat, repeat;
  background-position: center, center;
  background-size: auto, contain;
}
@media all and (max-width: 1023px) {
  .anime-zakkoku {
    background-position: top 60% center, center;
  }
}
@media all and (max-width: 1174px) {
  .anime-zakkoku {
    height: calc(69.6vw + 350px);
    min-height: auto;
  }
}
.anime-zakkoku-bg {
  position: absolute;
  width: 100%;
  text-align: center;
}
.anime-zakkoku-item {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  text-align: center;
  opacity: 0;
}
@media all and (max-width: 767px) {
  .anime-zakkoku-item img {
    transform: scale(1.15);
  }
}
.is-animated .anime-zakkoku1 {
  animation: poyonca 0.6s linear 0.3s 1 forwards;
}
.is-animated .anime-zakkoku2 {
  animation: poyonca 0.6s linear 0.7s 1 forwards;
}
.is-animated .amime-logo {
  animation: logo 0.8s linear 0s 1 forwards;
}
@keyframes poyonca {
  0% {
    transform: translate(0, 5px) scale(0.25);
  }
  46% {
    transform: translate(-8px, -8px) scale(1);
  }
  58% {
    opacity: 0.9;
    transform: translate(3.28px, 3.28px) scale(0.99);
  }
  74% {
    opacity: 0.8;
    transform: translate(-1.16px, -1.16px) scale(1);
  }
  89% {
    opacity: 0.9;
    transform: translate(0.4px, 0.4px) scale(0.99);
  }
  100% {
    opacity: 1;
    transform: translate(0, 0) scale(1);
  }
}
@keyframes logo {
  0% {
    transform: scale(0.8, 1.4) translate(0%, -100%);
  }
  10% {
    transform: scale(0.8, 1.4) translate(0%, -15%);
  }
  20% {
    transform: scale(1.4, 0.6) translate(0%, 30%);
  }
  30% {
    transform: scale(0.9, 1.1) translate(0%, -10%);
  }
  40% {
    transform: scale(0.95, 1.2) translate(0%, -30%);
  }
  50% {
    transform: scale(0.95, 1.2) translate(0%, -10%);
  }
  60% {
    transform: scale(1.1, 0.9) translate(0%, 5%);
  }
  70% {
    transform: scale(1, 1) translate(0%, 0%);
  }
  100% {
    opacity: 1;
    transform: scale(1, 1) translate(0%, 0%);
  }
}
.download-promotion {
  position: absolute;
  bottom: 70px;
  left: 0;
  z-index: 10;
  display: flex;
  flex-direction: column;
  gap: 1em;
  align-items: center;
  justify-content: center;
  width: 100%;
}
.download-link {
  display: flex;
  flex-wrap: wrap;
  gap: 40px;
  justify-content: center;
}
@media all and (max-width: 767px) {
  .download-link {
    flex-direction: column;
    gap: 30px;
    align-items: center;
  }
}
.download-link-item a {
  display: block;
}
/* about
============================================================ */
.sec-about {
  position: relative;
  padding: 50px 0 340px;
  background-color: #ffd259;
  background-image: url("/asset/img/bg_about01.png");
  background-repeat: no-repeat;
  background-position: bottom;
  background-size: 100% auto;
}
@media all and (max-width: 767px) {
  .sec-about {
    padding-bottom: 45%;
    background-image: url("/asset/img/bg_about02.png"), url("/asset/img/bg_about01.png");
    background-repeat: no-repeat, no-repeat;
    background-position: left 70% bottom 20%, bottom;
    background-size: 110% auto, 100% auto;
  }
}
.sec-about::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  aspect-ratio: 240/23;
  content: "";
  background: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201920%20183.84%22%3E%3Cpath%20d%3D%22M960%20169.33C550.06%20169.33%20192.07%20101.25%200%200v183.84h1920V0c-192.07%20101.25-550.06%20169.33-960%20169.33z%22%20style%3D%22fill%3A%23ffd259%22%2F%3E%3C%2Fsvg%3E") no-repeat bottom left;
  background-size: 100% auto;
  transform: translateY(-99%);
}
.about-copy {
  margin: 30px 0 0;
  font-size: 120%;
  font-weight: bold;
  line-height: 150%;
  text-align: center;
}
.about-movie {
  position: relative;
  z-index: 10;
  width: 364px;
  height: 703px;
  padding: 90px 0 0 36px;
  margin: 30px auto 0;
  background: url("/asset/img/bg_phone.png") no-repeat center;
  background-size: 364px auto;
}
@media all and (max-width: 767px) {
  .about-movie {
    width: 320px;
    height: 618px;
    padding: 79px 0 0 32px;
    background-size: 320px auto;
  }
  .about-movie iframe {
    width: 253px;
    height: 450px;
  }
}
.about-bg02 {
  position: absolute;
  right: 0;
  bottom: 30%;
  left: 0;
  z-index: 5;
  width: 100%;
  text-align: center;
}
@media all and (max-width: 767px) {
  .about-bg02 {
    display: none;
  }
}
.about-bg03 {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 5;
  width: 100%;
  padding-inline: var(--pd-01);
  text-align: center;
}
/* キャラクター
============================================================ */
.sec-character {
  position: relative;
  padding: 200px var(--pd-01) 250px;
  background: #fffece;
}
.sec-character::after {
  position: absolute;
  right: 0;
  bottom: -149px;
  left: 0;
  width: 100%;
  height: 150px;
  content: "";
  background: #fffece;
  border-radius: 0 0 150px 150px;
}
@media all and (max-width: 767px) {
  .sec-character::after {
    bottom: -79px;
    height: 80px;
    border-radius: 0 0 80px 80px;
  }
}
@media all and (max-width: 767px) {
  .sec-character {
    padding-block: 150px 170px;
  }
}
.slide-zakkokumai {
  position: absolute;
  left: 0;
  display: flex;
  align-items: center;
  width: 100%;
  overflow: hidden;
}
.slide-zakkokumai.type-top {
  top: 50px;
}
.slide-zakkokumai.type-bottom {
  bottom: 50px;
}
.slide-zakkokumai-group {
  display: flex;
  animation: loop-slide 80s infinite linear 0s both;
}
.slide-zakkokumai-item {
  width: 1050px;
  text-align: center;
}
@media all and (max-width: 767px) {
  .slide-zakkokumai-item {
    width: 700px;
  }
  .slide-zakkokumai-item img {
    width: 600px;
  }
}
@keyframes loop-slide {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}
.character-wrap {
  display: flex;
  gap: 50px;
  justify-content: center;
  margin: 50px 0 0;
}
@media all and (max-width: 767px) {
  .character-wrap {
    flex-direction: column-reverse;
    align-items: center;
  }
}
.character-select {
  width: 50%;
  max-width: 336px;
  padding-top: 59px;
  outline: 6px solid #ff7e2a;
  background: #ffce4b url("/asset/img/bg_character_select.png") no-repeat top center;
  background-size: contain;
  border: 6px solid #ffce4b;
  border-radius: 12px;
}
@media all and (max-width: 767px) {
  .character-select {
    width: 100%;
    margin-inline: auto;
  }
}
.character-select-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  place-items: center;
  padding: 10px 0;
  background: #ffefbb;
}
@media all and (max-width: 767px) {
  .character-select-list {
    grid-template-columns: repeat(4, 1fr);
  }
  .character-select-list img {
    width: 60px;
  }
}
.character-select-btn {
  width: 86px;
  height: 86px;
  padding: 0;
  cursor: pointer;
  background: transparent;
  border: none;
}
@media all and (max-width: 767px) {
  .character-select-btn {
    width: auto;
    height: auto;
  }
}
.character-profile {
  position: relative;
  width: 50%;
  max-width: 640px;
  outline: 6px solid #ff7e2a;
  background: #ffefbb;
  border: 6px solid #ffce4b;
  border-radius: 40px;
}
@media all and (max-width: 767px) {
  .character-profile {
    width: 100%;
    max-width: 336px;
    height: 430px;
  }
}
.character-profile-item {
  position: absolute;
  top: 13%;
  right: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  gap: 30px;
  opacity: 0;
  transition: 0.2s opacity linear;
}
.character-profile-item.is-visible {
  opacity: 1;
}
.character-profile-item.is-visible img {
  animation: poyon 0.9s linear 0s 1;
}
@media all and (max-width: 767px) {
  .character-profile-item {
    top: 5%;
    gap: 20px;
  }
}
@keyframes poyon {
  0% {
    transform: scale(0.8, 1.4) translate(0%, -90%);
  }
  10% {
    transform: scale(0.8, 1.4) translate(0%, -15%);
  }
  20% {
    transform: scale(1.4, 0.6) translate(0%, 30%);
  }
  30% {
    transform: scale(0.9, 1.1) translate(0%, -10%);
  }
  40% {
    transform: scale(0.95, 1.2) translate(0%, -30%);
  }
  50% {
    transform: scale(0.95, 1.2) translate(0%, -10%);
  }
  60% {
    transform: scale(1.1, 0.9) translate(0%, 5%);
  }
  70% {
    transform: scale(1, 1) translate(0%, 0%);
  }
  100% {
    transform: scale(1, 1) translate(0%, 0%);
  }
}
.character-profile-img {
  display: grid;
  place-content: center;
  width: 275px;
  height: 275px;
  margin-inline: auto;
  background: #fff;
  border-radius: 50%;
}
@media all and (max-width: 767px) {
  .character-profile-img {
    width: 200px;
    height: 200px;
  }
  .character-profile-img img {
    width: 120px;
  }
}
.character-profile-txt {
  width: 100%;
  max-width: 20em;
  padding-inline: 20px;
  margin-inline: auto;
}
.character-profile-name {
  font-weight: bold;
  text-align: center;
}
.character-profile-nickname {
  margin: 10px 0 0;
  font-size: 36px;
  font-weight: bold;
  line-height: 100%;
  text-align: center;
}
.character-profile-desc {
  margin: 40px 0 0;
  text-align: left;
}
@media all and (max-width: 767px) {
  .character-profile-desc {
    margin: 20px 0 0;
  }
}
:is(.character-prev, .character-next) {
  position: absolute;
  top: calc(50% - 40px);
}
.character-prev {
  left: 10px;
}
.character-next {
  right: 10px;
}
.character-nav-btn {
  display: grid;
  place-content: center;
  width: 80px;
  height: 80px;
  background: #84593b;
  border-radius: 50%;
  transition: 0.2s filter linear;
}
.character-nav-btn img {
  transition: 0.2s transform linear;
}
@media (any-hover: hover) {
  .character-nav-btn:hover {
    filter: brightness(1.15);
  }
}
@media (hover: none) {
  .character-nav-btn:active {
    filter: brightness(1.15);
  }
}
.character-nav-btn.type-prev img {
  transform: scale(-1, 1);
}
@media (any-hover: hover) {
  .character-nav-btn.type-prev:hover img {
    transform: scale(-1, 1) translateX(2px);
  }
}
@media (hover: none) {
  .character-nav-btn.type-prev:active img {
    transform: scale(-1, 1) translateX(2px);
  }
}
@media (any-hover: hover) {
  .character-nav-btn.type-next:hover img {
    transform: translateX(2px);
  }
}
@media (hover: none) {
  .character-nav-btn.type-next:active img {
    transform: translateX(2px);
  }
}
@media all and (max-width: 767px) {
  .character-nav-btn {
    width: 46px;
    height: 46px;
  }
  .character-nav-btn img {
    width: 20px;
  }
}
/* お知らせ
============================================================ */
.sec-news {
  position: relative;
  padding: 150px var(--pd-01) 200px;
  background-image: repeating-linear-gradient(315deg, #f9e78d, #f9e78d 4px, #fbefb5 4px, #fbefb5 8px);
  background-repeat: repeat;
  background-position: center;
  background-size: contain;
}
@media all and (max-width: 767px) {
  .sec-news {
    padding-block: 80px 200px;
  }
}
.top-news-anime {
  position: absolute;
  left: 50%;
  width: 100%;
  max-width: 900px;
  margin: -54px 0 0;
  transform: translateX(calc(-50% - 10px));
}
@media all and (max-width: 767px) {
  .top-news-anime {
    transform: translateX(calc(-50% + 20px)) scale(0.8);
  }
}
.top-news-anime01 {
  position: absolute;
  top: -2px;
  right: 0;
  opacity: 0;
  transform: translate(-2px, 2px);
  transition: 0.2s linear;
}
.top-news-anime01.is-visible {
  opacity: 1;
  transform: translate(0);
}
.top-news-anime01.purun {
  animation: purun 0.8s linear 0s 1;
}
@keyframes purun {
  0% {
    transform: scale(1, 1) translate(0%, 0%);
  }
  15% {
    transform: scale(0.9, 0.9) translate(0%, 5%);
  }
  30% {
    transform: scale(1.3, 0.8) translate(0%, 10%);
  }
  50% {
    transform: scale(0.8, 1.3) translate(0%, -10%);
  }
  70% {
    transform: scale(1.1, 0.9) translate(0%, 5%);
  }
  100% {
    transform: scale(1, 1) translate(0%, 0%);
  }
}
.top-news-anime02 {
  position: absolute;
  right: 8px;
}
.news-wrap {
  display: flex;
  flex-direction: column;
  gap: 1em;
  width: 100%;
  max-width: 900px;
  padding: 40px 60px;
  margin: 40px auto 0;
  background: #fff;
  border-radius: 30px;
}
@media all and (max-width: 767px) {
  .news-wrap {
    gap: 1.5em;
    padding: 20px 30px;
  }
}
.news-list {
  display: grid;
  grid-template-columns: 6em 4.5em auto;
  gap: 20px;
}
@media all and (max-width: 767px) {
  .news-list {
    grid-template-rows: repeat(2, auto);
    grid-template-columns: 6em auto;
    gap: 0.25em 20px;
  }
  .news-list .news-tag {
    grid-area: 1/1/2/2;
  }
}
.news-tag {
  display: grid;
  place-content: center;
  height: 1.75em;
  font-size: 14px;
  line-height: 100%;
  color: #fff;
  border-radius: 1em;
}
.news-tag.type-news {
  background: #f94552;
}
.news-tag.type-event {
  background: #4fa516;
}
.news-tag.type-other {
  background: #525252;
}
@media all and (max-width: 767px) {
  .news-date {
    grid-area: 1/2/2/3;
  }
}
@media all and (max-width: 767px) {
  .news-title {
    grid-area: 2/1/3/3;
  }
}
.news-title a {
  color: inherit;
  text-decoration: underline;
}
@media (any-hover: hover) {
  .news-title a:hover {
    text-decoration: none;
  }
}
@media (hover: none) {
  .news-title a:active {
    text-decoration: none;
  }
}
.top-news-more {
  display: flex;
  justify-content: center;
  margin: 20px 0 0;
}
.top-news-link {
  position: relative;
  width: 180px;
  padding: 14px 40px;
  line-height: 100%;
  color: #fff;
  background: #ff7101;
  border-radius: 1.5em;
}
.top-news-link::after {
  position: absolute;
  top: 50%;
  right: 10px;
  width: 1.25em;
  height: 1.25em;
  content: "";
  background: #fff url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2027.94%2024.55%22%3E%3Cpath%20d%3D%22M15.67%2024.55c-.51%200-1.02-.2-1.41-.59-.39-.39-.59-.9-.59-1.41s.2-1.02.59-1.41l6.86-6.86H2c-1.1%200-2-.9-2-2s.9-2%202-2h19.11l-6.86-6.86c-.78-.78-.78-2.05%200-2.83.78-.78%202.05-.78%202.83%200l10.27%2010.26.12.12c.26.3.42.67.46%201.04.02.13.02.27.01.4-.03.46-.22.91-.57%201.26L17.09%2023.95c-.39.39-.9.59-1.41.59z%22%20style%3D%22fill%3A%23ff7101%22%2F%3E%3C%2Fsvg%3E") no-repeat center;
  background-size: 70% auto;
  border-radius: 1em;
  transform: translate(0, -50%);
  transition: 0.2s transform linear;
}
@media (any-hover: hover) {
  .top-news-link:hover {
    filter: brightness(1.2);
  }
  .top-news-link:hover::after {
    transform: translate(2px, -50%);
  }
}
@media (hover: none) {
  .top-news-link:active {
    filter: brightness(1.2);
  }
  .top-news-link:active::after {
    transform: translate(2px, -50%);
  }
}
/* ゲームイベント
============================================================ */
.sec-event {
  position: relative;
  padding: 100px var(--pd-01) 140px;
  background: #fff;
}
@media all and (max-width: 767px) {
  .sec-event {
    padding-block: 50px 100px;
  }
}
.sec-event::before {
  position: absolute;
  top: -126px;
  left: 0;
  width: 100%;
  height: 127px;
  content: "";
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201222.96%20127.39%22%3E%3Cpath%20d%3D%22M0%20127.39h1222.96V21.31C1212.58%205.46%201185.52%200%201172.49%200c-37.68%200-59.94%2017.73-70.86%2050.92-12.97-6.89-27.99-10.82-43.99-10.82-25.5%200-48.5%2010-64.72%2026-12.73-31.24-45.17-53.45-83.19-53.45-35.41%200-65.99%2019.26-80.3%2047.15-10.94-5.54-23.47-8.68-36.79-8.68-15.49%200-29.91%204.25-41.99%2011.57-10.53-27.98-39.14-48.06-72.8-48.06-15.74%200-30.36%204.39-42.56%2011.93-15.4-14.9-38.19-24.33-63.62-24.33-46.12%200-83.55%2031.02-83.96%2069.42-11.35-9.1-26.17-14.6-42.38-14.6-20.95%200-39.57%209.2-51.4%2023.45-9.04-38.78-46.38-67.85-91.07-67.85-34.16%200-64.02%2016.98-80.23%2042.3-11.24-5.3-23.98-8.29-37.46-8.29-14.27%200-27.7%203.35-39.41%209.24C126.5%2027.61%2092.16%208.78%2053%208.78c-19.23%200-37.3%204.55-53%2012.53V127.4z%22%20style%3D%22fill%3A%23fff%22%2F%3E%3C%2Fsvg%3E");
  background-repeat: repeat-x;
  background-size: auto 127px;
}
@media all and (max-width: 767px) {
  .sec-event::before {
    top: -79px;
    height: 80px;
    background-size: auto 80px;
  }
}
.event-link {
  margin: 80px 0 0;
  text-align: center;
}
.event-link a {
  display: inline-block;
}
.anime-event {
  position: absolute;
  bottom: 75px;
  left: 50%;
  width: 100%;
  max-width: 900px;
  transform: translateX(-50%);
}
@media all and (max-width: 767px) {
  .anime-event {
    bottom: 50px;
    transform: translateX(calc(-50% + 10px)) scale(0.8);
  }
}
.top-event-anime01 {
  position: absolute;
  right: 70px;
}
.top-event-anime02 {
  position: absolute;
  top: 23px;
  right: 0;
}
.top-event-anime02.korokoro {
  animation: korokoro 2.5s linear 0s 1;
}
@keyframes korokoro {
  0% {
    transform: translate(0%, 0%);
  }
  5% {
    transform: translate(10%, 0%) rotate(10deg);
  }
  25% {
    transform: translate(20%, 0%) rotate(20deg);
  }
  30% {
    transform: translate(-10%, 0%) rotate(-10deg);
  }
  35% {
    transform: translate(-15%, 0%) rotate(-15deg);
  }
  45% {
    transform: translate(10%, 0%) rotate(10deg);
  }
  50% {
    transform: translate(15%, 0%) rotate(15deg);
  }
  60% {
    transform: translate(-5%, 0%) rotate(-5deg);
  }
  65% {
    transform: translate(-7%, 0%) rotate(-7deg);
  }
  75% {
    transform: translate(0%, 0%) rotate(0deg);
  }
  100% {
    transform: translate(0%, 0%) rotate(0deg);
  }
}
/* ダウンロード
============================================================ */
.sec-download {
  padding: 100px var(--pd-01);
  background: #ffd259;
}
@media all and (max-width: 767px) {
  .sec-download {
    padding-block: 80px 100px;
  }
}
.download-wrap {
  width: 100%;
  max-width: 760px;
  padding: 50px;
  margin: 50px auto 0;
  background: #fff;
  border-radius: 45px;
}
.social-wrap {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  justify-content: center;
  width: 100%;
  max-width: 275px;
  padding: 50px;
  margin: 50px auto 0;
  background: #fff;
  border-radius: 27px;
}
.social-wrap::after {
  position: absolute;
  right: -57px;
  bottom: -8px;
  display: block;
  width: 115px;
  height: 90px;
  content: "";
  background: url("/asset/img/img_sns.png") no-repeat;
  background-size: contain;
}
@media all and (max-width: 767px) {
  .social-wrap::after {
    right: -30px;
    width: 90px;
    height: 70px;
  }
}
.social-wrap.purupuru::after {
  animation: purupuru 0.8s linear 0s;
}
@keyframes purupuru {
  0% {
    transform: scale(1, 1) translate(0%, 0%);
  }
  20% {
    transform: scale(1, 1.06) translate(-5%, -4%) skew(6deg, 0deg);
  }
  50% {
    transform: scale(1, 0.94) translate(5%, 4%) skew(-6deg, 0deg);
  }
  65% {
    transform: scale(1, 1.03) translate(2%, -2%) skew(-3deg, 0deg);
  }
  80% {
    transform: scale(1, 0.97) translate(-2%, 2%) skew(3deg, 0deg);
  }
  100% {
    transform: scale(1, 1) translate(0%, 0%);
  }
}
/* お知らせ
============================================================ */
.ttl-news {
  font-size: 32px;
}
.news-head {
  display: grid;
  grid-template-columns: 6em 4.5em;
  gap: 20px;
  margin: 20px 0 0;
}
.news-contents {
  margin: 40px 0 0;
}
/* 汎用スタイル
============================================================ */
.cmn-ttl-l1 {
  text-align: center;
}
.cmn-ttl-l1-main {
  font-size: 40px;
}
@media all and (max-width: 767px) {
  .cmn-ttl-l1-main {
    font-size: 32px;
  }
}
.cmn-ttl-l1-sub {
  margin: 10px 0 0;
  font-size: 25px;
  font-weight: bold;
  letter-spacing: 1px;
}
.cmn-ttl-l2 {
  display: flex;
  justify-content: center;
  margin: 80px 0 0;
  font-size: 32px;
  font-weight: bold;
}
@media all and (max-width: 767px) {
  .cmn-ttl-l2 {
    font-size: 28px;
  }
}
.cmn-ttl-l3 {
  margin: 2em 0 0;
  font-size: 20px;
  font-weight: bold;
}
.cmn-contents {
  width: 100%;
  max-width: 1000px;
  padding: 40px;
  margin: 0 auto;
  background: #fff8ee;
  border-radius: 32px;
}
@media all and (max-width: 767px) {
  .cmn-contents {
    padding-inline: 1em;
  }
}
.cmn-list li {
  position: relative;
  padding: 0 0 0 1em;
}
.cmn-list li::before {
  position: absolute;
  left: 0;
  content: "・";
}
.cmn-list-bracket {
  padding: 0;
  list-style: none;
  counter-reset: item;
}
.cmn-list-bracket > li {
  position: relative;
  padding-left: 1.5em;
}
.cmn-list-bracket > li::before {
  position: absolute;
  left: 0;
  width: 0.5em;
  text-align: right;
  content: "(" counters(item, "-") ")";
  counter-increment: item;
}
/* --- 表示/非表示 ------------------- */
@media screen and (max-width: 767px) {
  .pc-only {
    display: none;
  }
}
@media screen and (min-width: 768px) {
  .sp-only {
    display: none;
  }
}
.tb-only {
  display: none;
}
@media screen and (max-width: 1023px) and (min-width: 768px) {
  .tb-only {
    display: unset;
  }
}
/* --- 余白 ------------------- */
.m-t05em {
  margin-top: 0.5em;
}
.m-t1em {
  margin-top: 1em;
}
.m-t2em {
  margin-top: 2em;
}
.m-t120 {
  margin-top: 120px;
}
@media screen and (min-width: 768px) {
  .sp-only-m-t1em {
    margin-top: 0;
  }
}
@media screen and (max-width: 767px) {
  .sp-only-m-t1em {
    margin-top: 1em;
  }
}
/* --- 文字詰め ------------------- */
.set-center {
  text-align: center;
}
.set-left {
  text-align: left;
}
.set-right {
  text-align: right;
}