@import url('https://fonts.googleapis.com/css2?family=Lora&family=Shippori+Mincho+B1:wght@500&display=swap');

 :root {
  --font-main-color: rgb(38, 28, 25);
  --font-main-color--opacity: rgba(255, 255, 255,0.4);
  --font-main-color--ruby: rgba(255, 255, 255,0.8);
  --font-link-color: rgb(146,117,47);
  --font-link-color--hover:rgb(104, 80, 26);

  --bg-color: rgb(246, 247, 244);
  --sub-color: rgb(95,96,111);
  --accent-color: rgb(200,206,209);
  --accent-color-dark: rgba(38, 28, 25, 1);

  --text-shadow: 0px 0px 5px #000;
 }
 /* ==============================================
    （１）基本事項
 ============================================== */
 html{
  font-family: "Shippori Mincho B1", serif;
  font-weight: 500;
  font-style: normal;
  font-size:17px;
  overflow-x:hidden;
  color: var(--font-main-color);
  background-color: var(--bg-color);
  scroll-behavior: smooth;
  line-height: 1.7em;
 }
 @media screen and (max-width: 844px) and (orientation: portrait) {
  html{font-size: 14px;}
 }
 a:hover,button.link:hover{
  cursor: pointer;
 }

 body{overflow-x: hidden;}
 u{text-decoration: underline;}
 /* ==============================================
    ■ 共通内容
 ============================================== */
 h2{display: none;}
 h3{
  width: 30vw;
  letter-spacing: 0.2em;
  border-bottom: 4px var(--font-main-color) double;
  padding: 4px 8px;
  margin-bottom:12px;
  display: flex;
  flex-direction: row;
 }
 h3 span{display: block;}
 h3 .text--alphabet{
  font-size:140%;
  font-family: "Lora", serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
 }
 h3 .text--japanese{
  font-size:80%;
  margin-left: 12px;
  margin-top: auto;
 }

 a.text, button.link{
  text-decoration: underline;
  color: var(--font-link-color);
 }
 a.text:hover, button.link:hover{
  color:var(--font-link-color--hover);
  transition-duration: 0.1s;
 }
 a img:not(.not-hover):hover{
  filter: blur(2px);
  filter: brightness(80%);
  transition-duration: 0.1s;
 }
 
 #frame{
  width: 100%;
  height:100%;
  position: fixed;
  border: 12px var(--font-main-color) solid;
  box-sizing: border-box;
  z-index: 5;
  pointer-events: none;
 }
 @media screen and (max-width: 844px) and (orientation: portrait) {
   h3{width: 100%;}
   #frame{display: none;}
 }
 
.anim--fadein--before{ opacity:0; }
.anim--fadein--before.anim--fadein--finished{
  animation-duration:1.5s;
  animation-fill-mode:forwards;
}
.anim--fadein--before.anim--fadein--finished.anim--vertical {animation-name: vertical--fadein; }
@keyframes vertical--fadein {
  0%{
    opacity: 0;
    transform: translateY(50px);
  }
  100%{
    opacity:1;
    transform: translateY(0px);
  }  
}
.anim--fadein--before.anim--fadein--finished.anim--fade {animation-name: fade-fadein; }
@keyframes fade-fadein {
  0%{ opacity: 0; }
  30%{ opacity: 0; }
  100%{ opacity:1; }  
}
@media screen and (max-width: 844px) and (orientation: portrait) {
  h2{
    display: block;
    margin: 24px auto;
    text-align: center;
    letter-spacing: 0.2em;
  }
  h2 span{
    display: block;
  }
  h2 .text--alphabet{
    font-size: 200%;
    margin-bottom: 12px;
  }
  h2 .text--japanese{
    font-size: 100%;
    letter-spacing: 0.4em;
  }
  h3.pc-only{
    display:none;
  }
  .anim--fadein--before.anim--fadein--finished{
    animation-duration:0.8s;
  }
  @keyframes vertical--fadein {
    0%{
      opacity: 0;
      transform: translateY(20px);
    }
    100%{
      opacity:1;
      transform: translateY(0px);
    }  
  }
}

 /* ==============================================
    ■ ヒーロー画面
 ============================================== */
 #hero{
  width:100vw;
  height: 100vh;
  position: relative;
  margin:0px auto;
 }
 #hero .bg-wrapper{
  width: 100%;
  height: 100%;
  z-index:-3;
  position: absolute;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  display: flex;
  flex-direction: row;
  justify-content: space-around;
  left: 0px;
 }
 #hero .bg-wrapper .overlay{
  width: 100%;
  height: 100%;
  background-color: rgba(0,0,0,30%);
  position: absolute;
 }
 #hero .bg-wrapper .bg{
  width: 50%;
  position: relative;
  z-index:-4;
 }
 #hero .bg-wrapper .bg>div{
  width:100%;
  height:100%;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  position: absolute;
  animation: change-bg-frame 30s infinite;
  opacity: 0;
 }
 #amayakou-bg .item1{background-image:url("img/Game__02__bg.webp");}
 #amayakou-bg .item2{background-image:url("img/Game__02__bg-2.webp");}
 #amayakou-bg .item3{background-image:url("img/Game__02__bg-3.webp");}
 #reta-bg .item1{ background-image:url("img/Game__01__bg.png"); }
 #reta-bg .item2{ background-image:url("img/Game__01__bg-2.png"); }
 #reta-bg .item3{ background-image:url("img/Game__01__bg-3.png"); }

 #hero .bg-wrapper .bg .item1{animation-delay: 0s;}
 #hero .bg-wrapper .bg .item2{animation-delay: 10s;}
 #hero .bg-wrapper .bg .item3{animation-delay: 20s;}

@keyframes change-bg-frame {
  0%{ opacity: 0;}
  10%{ opacity: 1;}
  36%{ opacity: 1;}
  45%{ opacity: 0;}
  100%{ opacity: 0;}
}

#hero>.desc{
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 100%;
  padding-right:80px;
}
#hero .event-logo img{
  width: 45vw;
  filter: brightness(100);
}
#hero>.desc .place, #hero>.desc .date{
  margin: 16px 0;
  padding: 12px 16px;
  display: inline-block;
  background-color: var(--font-main-color);
  color: #fff;
}
#hero>.desc .date{
  font-family: "Lora", serif;
}
#hero>.desc .heading{
  font-family: "Lora", serif;
  font-size: 140%;
}
#hero>.desc .detail{
  font-size: 200%;
  margin-left: 12px;
}

#hero .share{
  margin: 0 auto;
  position: absolute;
  z-index:2;
  right:3%;
  bottom:3%;
  display: flex;
  align-items: center;
  flex-direction: row;
}
#hero .share .heading{
  font-size: 100%;
  font-family: "Lora", serif;
  text-align: center;
  color: #fff;
  margin-right:8px;
}
#hero .share ul{
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
}
#hero .share ul li{
  display: inline-block;
  margin: 0 8px;
}
@media screen and (max-width: 844px) and (orientation: portrait) {
  #hero{height:100vh;}
  #hero .bg-wrapper{
    flex-direction: column;
  }
  #hero .bg-wrapper .bg{
    height: 50%;
    width: 100%;
  }
  #hero>.desc{
    padding: 24px;
  }
  #hero .event-logo img{
    width: 90vw;
  }
  #hero>.desc .place, #hero>.desc .date{
    margin: 4px 0;
    padding: 2px 4px;
  }
  #hero>.desc .heading{
    font-size: 90%;
  }
  #hero>.desc .detail{
    font-size: 100%;
  }
  #hero .share{
    right:3%;
    bottom:2%;
  }
}
 /* ==============================================
    ■ イベント概要
 ============================================== */
 #intro{
  width:95vw;
  position: relative;
  display: flex;
  flex-direction: column;
  padding-bottom:64px;
  margin:80px auto;
 }

 #intro .catch{
  font-size: 200%;
  margin: 40px auto;
  text-align: center;
  letter-spacing: 0.2em;
  line-height: 1.5em;
 }

 #intro .detail{
   margin: 32px auto;
   padding: 24px 32px;
   text-align: left;
   max-width: 720px;
   border-left: 4px var(--font-main-color) double;
   border-right: 4px var(--font-main-color) double;
 }
 #intro .detail p{ line-height: 2em;}
 #intro .detail p:not(:last-child){
   margin-bottom: 32px;
 }
 #intro .detail p.notice{
   font-size: 80%;
   opacity: 80%;
}
 
 @media screen and (max-width: 844px) and (orientation: portrait) {
  #intro{
    padding-bottom:0px;
    margin:32px auto 80px;
  }
  #intro .catch{
    font-size: 200%;
    letter-spacing: 0.15em;
    line-height: 2em;
  }
  #intro .detail{
    max-width: 90vw;
    margin:16px auto;
  }
 }
 /* ==============================================
    ■ ゲーム設定
 ============================================== */
 .game-info{
  width:100vw;
  position: relative;
  display: flex;
  flex-direction: column;
  padding-bottom:64px;
  margin:80px auto;
 }

 .game-info .bg{
  top:0;
  bottom: 0;
  width: 61.8%;
  z-index:-3;
  position: absolute;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
 }

 .game-info .wrapper{
  display: flex;
  flex-direction: column;
  width: 90%;
  margin: 64px auto;
 }
 .game-info .visual--sp{display:none;}
 #reta .logo img{max-width: 420px;}
 #amayakou .logo img{max-width: 280px;}
 .game-info .content .overview, .game-info .content .product{ margin: 32px 0; }
 .game-info .content .overview .detail p:not(:last-child){ margin-bottom:12px; }
 .game-info span{ background-color: var(--bg-color); }

 .game-info .product table th,.game-info .product table td{padding-bottom: 2px;}
 .game-info .product table th{font-size: 80%;}
 .game-info .product table td{
   padding-left: 24px;
   font-size: 90%;
 }
 .game-info .screenshot ul{
   display: flex;
   flex-direction: row;
 }
 .game-info .screenshot ul li:not(:last-child){margin-right:12px;}
 .game-info .screenshot ul li img{max-width:288px;}

 #amayakou .bg{
  right:0;
  background-image:url("img/Game__02__bg-3.webp");
 }
 #reta .bg{ left:0; background-image:url("img/Game__01__bg.png"); }
 #reta h3{margin-left: auto;}
 #reta h3{ justify-content: flex-end; }
 #reta .detail, #reta .logo{text-align: right;}
 #reta table{margin-left:auto;}
 #reta .screenshot ul{justify-content: flex-end;}

 @media screen and (max-width: 844px) and (orientation: portrait) {
   .game-info{
      margin: 56px auto;
      padding-bottom: 0;
    }
    #amayakou.game-info{
      margin-bottom: 80px;
    }
   .game-info .bg{ display: none;}
   .game-info .visual--sp{
      display:block;
      width: 40vw;
      margin: 0 auto;
   }
   .game-info .wrapper{
      width: 95vw;
      margin: 0 auto;
   }
   .game-info .screenshot ul{
      flex-direction: row;
      justify-content: space-around;
   }
   .game-info .screenshot ul li{width: calc(95vw/3);}
   .game-info .screenshot ul li:not(:last-child){margin-right:0px;}
   .game-info .screenshot ul li img{max-width:95%;}
   .game-info .logo,#reta .logo{text-align: center;}
   #reta .logo img{
      max-width: 70%;
      margin: 0 auto 24px;
    }
   #amayakou .logo img{
      max-width: 50%;
      margin: 0 auto 24px;
    }
   #reta h3{margin-left: 0;}
   #reta h3{ justify-content: flex-start; }
   #reta .detail{text-align: left;}
   #reta table{margin-left: 0;}
   #reta .screenshot ul{justify-content: space-around;}
 }
 
 /* ==============================================
    ■ 交通アクセス・イベント概要
 ============================================== */
 #info{
   margin: 80px auto;
   width:90vw;
   display: flex;
   flex-direction: row;
   justify-content: space-between;
   flex-wrap: wrap;
 }
 #outline, #access{ width: 48%; }
 #outline table td, #outline table th{padding-bottom:16px;}
 #outline table td{
   padding-left: 40px;
 } 
 #outline .notice{
   font-size: 80%;
   margin-top: 48px;
}
 #access .map{
   margin: 24px 0;
 }
 #access .map iframe{ width: 60%; }
 #access table td, #access table th{padding-bottom:16px;}
 #access table td{
   padding-left: 40px;
 } 
 #access .notice{
   font-size: 80%;
   margin-top: 16px;
 }

 
 @media screen and (max-width: 844px) and (orientation: portrait) {
   #info{
      width: 95vw;
      flex-direction: column;
      margin: 0px auto;
   }
   #outline, #access{
      width: 100%;
      margin: 0px auto;
   }
   #outline{margin-bottom: 80px;}
   #access{margin-bottom: 40px;}
   #info table{
    display: block;
    width: 100%;
   }
   #info table tbody{
    width: 100%;
   }
   #access .map iframe{ width: 95%; }
   #info table tr{
    display: flex;
    flex-direction: column;
   } 
   #info table tr:not(:last-child){ margin-bottom: 24px; } 
  #info table th{
    padding-bottom:2px;
    font-size: 90%;
  }
  #info table th span::before{
    content: '-';
    display: inline-block;
    margin-right: 4px;
  }
   #info table td{
    padding-bottom: 0px;
    padding-left: 0px;
  }
 }
 /* ==============================================
    ■ フッター
 ============================================== */
 footer{
   text-align: center;
   font-size: 80%;
   margin: 32px auto;
   font-family: "Lora", serif;
 }

 /* ==============================================
    ■ luminous.js
 ============================================== */
.lum-lightbox{ z-index: 20 !important; }

@media screen and (max-width: 844px) and (orientation: portrait) {
  .lum-lightbox-inner img {
    max-width: 90vw !important;
    max-height: 80vh !important;
  }
}

.modal { display: none; }
.modal.is-open {
  display: block;
  width: 100vw;
  height:100vh;
  position: fixed;
  top:0;
  left:0;
  background-color: rgba(0,0,0,75%);
  z-index: 20;
  transition-duration: 0.3s;
}
.modal.is-open .overlay{
  width: 100vw;
  height: 100vh;
  position: fixed;
  top:0;
  left:0;
}
.modal .modal-container{
  background-color: var(--bg-color);
  position: fixed;
  left: 50%;
  top: 50%;
  transform: translateX(-50%) translateY(-50%);
  padding: 40px 32px;
  z-index: 21;
}
.modal .modal-container p{
  text-align: center;
  margin: 20px auto 40px;
}
.modal .modal-container h3{
  border: 0;
  font-size: 150%;
  text-align: center;
  padding: 0;
  display: block;
  width: 100%;
  margin: 0px auto 12px;
}
.modal .modal-link-select li{
  width: 100%;
}
.modal .modal-link-select a{
  display: block;
  width: 100%;
  background:var(--accent-color);
  padding: 4px 8px;
  text-align: center;
}
.modal .modal-link-select li:first-child{
  margin-bottom:12px;
}
.modal .modal-link-select a:hover{
  filter: brightness(80%);
  transition-duration: 0.3s;
 }
@media screen and (max-width: 844px) and (orientation: portrait) {
  .modal .modal-container {
    inset: 20% 10%;
    transform: none;
    padding: 24px 8px;
  }
}