* {
    margin:0;
    padding:0;
    scroll-behavior: smooth;
  }
  body {
    font-family: sans-serif;
  }

  .navbar {
    display: flex;
    position: fixed;
    /* justify-content: center; */
    width: 100vw;
    height: 80px;
    z-index: 1000;
     background-image: linear-gradient(to bottom, rgba(72, 65, 103, 0.8), rgba(255, 255, 255, 0));
    letter-spacing:1px ;
    /* 文字間隔 */
  }
  .menu {
    display: flex;
    list-style: none;
    /* padding: 15px 30px; */
    gap: 30px;
    font-weight: bold;
    position: absolute;
    right: 50px;
    top: 20px;
  }

  .logo {
    /* ロゴマーク左寄せ */
     position: absolute;
     left: 40px;
     top: 20px;
  }.logo img{
    /* ロゴマーク　画像サイズ */
    width:320px;
  }
  .logo .logo_2 {
    /* ロゴマーク縮小アニメーション */
    transition: transform 0.5s ease;
    transform-origin: left top;
     /* ← 縮小の起点を左上に設定 */
  }
  .logo .logo_2.shrink {
    transform: scale(0.5); 
    /* 縮小比率 */
  }


  .inmenu {
    /* サブメニュー中央寄せ */
    display: flex;
    position: relative;
    justify-content: center;
  }
  .inmenu  a {
    color: white;
    text-decoration: none;
    padding: 10px 20px;
    border-radius: 10px;
    display: block;
    cursor: pointer;
    transition: 0.3s;
    text-align: center;
  }
  /* 親のactive */
  .inmenu.active > a {
  background:white;
  color:rgb(101, 106, 139);
  font-weight: bold;
}

  /* サブメニュー */
  .submenu {
    display: none;
    top: 44px;
    font-size: 10pt;
    line-height: 20px;
    position: absolute;
    /* background:#ffffff; */
    list-style: none;
    min-width: 140px;
    /* font-weight: bold; */
    /* border-radius: 0 0 5px 5px; */
  }
  .submenu li a {
    display: block;
    padding: 8px 15px;
    color: white;
    text-decoration: none;
    transition:  0.3s;
  }
  .submenu li a:hover {
    background: rgb(82, 89, 137);
    color: white;
    z-index: 1;
  }
  /* ホバーでサブメニュー表示 */
  .inmenu:hover > .submenu {
    display: block;
  }
  .submenu li a.active {
  background: rgb(82, 89, 137);
  color: white;
  font-weight: bold;
  }


  section {
    height: 100vh;
    width: 100vw;
    padding: 100px 30px 30px 30px;
    box-sizing: border-box;
  }


  #top { 
    background-image: url('img/top.png');
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    background-attachment: fixed; 
    width: 100vw;
    height: 100vh;
  }
  .top_h1 {
    position: absolute;
    bottom: 100px;
    right: 50px;
    color: white;
    font-size: 25pt;
    letter-spacing:4px ;
  }
  .top_p {
    position: absolute;
    bottom: 75px;
    right: 112px;
    color: white;
    font-size: 10pt;
    letter-spacing:1px ;
  }
 .diagonal-background {
    position: absolute;
     background: linear-gradient(130deg, rgba(72, 65, 103, 0.455) 5%, rgba(72, 65, 103, 0)30%);
    clip-path: polygon(  0% 0%, 50% 0%, 0% 100%);
    color: white;
    height: 100vh;
    width: 100vw;
    margin: 0px;
  } 




  #game_rule  { background: #9d354f; }
  #game_story {
    background-image: url('img/\ background.png'); 
    background-size: cover;
    display: flex ;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    background-attachment: fixed; 
  }
  .game_rule_box {
    background-color: rgb(255, 255, 255);
    width: 100%;
    height: 100%;
    border-radius: 30px;
  }
  .game_rule_box {
    background-color: #9d354f;
    background-image: url('img/game_rule.png'); 
    background-size: auto 100%;   
    /* 高さを100%、幅は自動で比率維持 */
    background-repeat: no-repeat;
    background-position: center center;
  }
  .game_rule_box h1 {
    font-size: 20pt;
    margin-bottom: 0.5vh;
    color: white;
    text-align: center;
  }

  .game_rule_box_2 {
    /* background-color: rgba(255, 255, 255, 0.31); */
    width: 100%;
    height: 100%;
    border-radius: 30px;
    position: relative;
    height: 100%;      
  }
  .game_rule_box_2 h1 {
    font-size: 20pt;
    margin-bottom: 0.5vh;
    color: white;
    text-align: center;
  }
  .game_rule_box_2 p {
  position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin: 0 auto; /* 中央に配置（ブロック要素に必要） */
    text-align: left; /* テキストを中央寄せ */
    color: white;
    border: 2px solid rgb(208, 186, 255);
    background-color: #b2b2b23f;
    border-radius: 20px;
    padding: 30px 40px;
    width: 90vh;
    line-height: 4.4vh;
    font-weight: bold;
    letter-spacing: 0.2vh;
    }



  #character { background: #9d354f; }
  .character {
    background: #f0f0f0;
    width: 100vw;
    height: 100vh;
    text-align: center;
  }
  .character h2{
    font-size: 20pt;
    margin-bottom: 0.5vh;
    color: white;
  }
  .screens {
    position: relative;
    height: 80%;
    width: 100%;
    margin: 0 auto;
    border-radius: 20px;
    overflow: hidden;
  }
  .screen {
    position: absolute;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    color: white;
    opacity: 0;
    pointer-events: none;
    transition: 2s ease-in-out;
  }
  .screen.visible {
    opacity: 1;
    pointer-events: auto;
    z-index: 1;
  }
  #screen1, #screen2,  #screen3,   #screen4{ background-color: #9d354f;; }
  .controls {
    text-align: center;
    margin-top: 20px;
  }
  /* スクリーンレイアウト */
  .screens_box{
    display: flex;
    color:   rgb(82, 89, 137);
  }
  .screens_box h1{
    font-size: 7vh;
  }
  .screen .mini {
    font-size: 2vh;
    margin-bottom: 1vh;
    letter-spacing: 0.5vw;
  }
  .screens_box p{
    font-size: 2.5vh;
    width: 70vh;
    line-height: 4.5vh;
    padding: 2vh;
    text-align: left;
  }
  /* 見に画像 */
  .screens_box img {
    height: 27vw;
    margin:  auto;
  }
  .screens_text {
    background-color: rgb(255, 255, 255);
    padding: 5vh;
    border-radius: 30px;
  }
  .screens_text .icon {
    display: flex;
    gap: 4vh;
  }
  .screens_text .icon img {
    height: 20vh;
  }
  .icon img:hover {
    transform: scale(1.6);
    transition: 0.3s ease;
  }



  .controls button {
    padding: 10px 20px;
    font-size: 16px;
    margin: 0 10px;
    border: none;
    background: white;
    color:rgb(101, 106, 139);
    border-radius: 8px;
    cursor: pointer;
    transition: 0.2s;
    font-weight: bold;
    letter-spacing: 0.2vh;
    }
  .controls button:hover {
    transform: scale(1.1);
    background:rgb(101, 106, 139);
    color: white;
    font-weight: bold;
    letter-spacing: 0.2vh;
  }
  .controls button.active {
  transform: scale(1.1);
  background: rgb(101, 106, 139);
  color: white;
  font-weight: bold;
  letter-spacing: 0.2vh;
}







  .store * {
    box-sizing: border-box;
  }
  .store {
    /* background-image: url('img/\ background.png'); */
    background-color: #9d354f;
    background-size: cover;
    display: flex ;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    background-attachment: fixed; 
  }
  /* 購入進むボタンレイアウト */
   #open {
    position: relative;
    /* top: 80px; */
    padding: 2vh 2vw;
    font-size: 3vh;
    cursor: pointer;
    border-radius: 10px;
    background:white;
    color: rgb(101, 106, 139);
    border: none;
    transition: transform 0.2s ease, 0.2s ease;
  }
  #open:hover {
    transform: scale(1.1);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    background-color: rgb(108, 100, 109);
    color: white;
  }
  /* ストアゲームの画像 */
  .store_photo {
    height: 100%;
    margin: 0;
     margin-left: -2.5vw;
  }
  .store_photo img {
    width: 65vw;
    height: 100%;
  }
  /* ストアの注文ページの箱レイアウト */
  .store_box {
    /* background-image: url('img/chack.png');
    background-size: cover; */
    background-color: rgb(148, 136, 160);
    position: relative;
    width: 35%;
    height: 100%;
    margin-left: auto;
    border-radius: 30px;
    padding:  1vh 3vw ;
    color: white;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .store_text {
    text-align: center;
    height: 60%;
    width: 100%;
  }
  .store_text h1 {
    padding: 2vh 0vw;
    letter-spacing: 0.2vh;
    font-size: 3.5vh;
  }
  .store_ul {
    display: flex;
    list-style: none;
    gap: 20px;
  }
  .store_li {
    border-bottom: 2px solid white;
    padding: 1vh 1vw;
    color: rgb(255, 255, 255);
    width: 100%;
    height: 100%;
    font-size: 1.5vh;
  }
  
  .store_text p {
    line-height: 30px;
    text-align: left;
    letter-spacing: 0.1vh;
    padding: 3vh 0vw;
    font-size: 2vh;
  }
  /* フルスクリーンのオーバーレイ */
  .store_overlay {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(23, 24, 40, 0.8);
    display: none; /* 初期は非表示 */
    justify-content: center;
    align-items: center;
    z-index: 1000;
  }
  /* 中央に出る白いボックス（閉じるボタン用） */
  .store_overlay_content {
    background: rgb(176, 109, 195);
    padding: 2vh 2vw;
    border-radius: 20px;
    position: relative;
    width: 60vh;
    height: 85vh;
  }

  /* 閉じるボタン */
  .store_close {
    position: absolute;
    top: 3vh; right: 2vw;
    background-color: rgb(255, 255, 255);
    border: none;
    color: rgb(237, 101, 101);
    font-weight: bold;
    font-size: 20px;
    padding: 8px 14px;
    border-radius: 10px;
    cursor: pointer;
  }

  .store_overlay .product {
    display: block;
    text-align: center;
  }
  .store_overlay img {
    width: 7vw;
  }
  .order_form {
    font-size: 3vh;
    font-weight: bold;
    color:  rgb(255, 255, 255);
    margin: 1vh 1vw;
  }
  .product .¥1000 {
    font-size: 3vh;
    font-weight: lighter;
    color: white;
    margin: 1vh 1vw;
  }
  .store_title {
    font-size: 2vh;
    color: white;
    margin: 1vh 0vw;
  }
  input {
    display: block;
    width: 99%;
    height: 3vh;
    border-radius: 5px;
    border: none;
  }
  textarea {
    display: block;
    width: 99%;
    height: 5vh;
    border-radius: 5px;
    resize: none;
    border: none;
  }
  #store_btn {
    position: absolute;
    display: flex;
    bottom: 3vh;
    background-color: rgb(129, 76, 135);
    color: white;
    border: none;
    padding: 5px;
    border-radius: 5px;
    cursor: pointer;
    font-size: 1vw;
  }
   #store_btn:hover{
    position: absolute;
    display: flex;
    bottom: 3vh;
    background-color: rgb(157, 90, 164);
    color: white;
    border: none;
    padding: 5px;
    border-radius: 5px;
    cursor: pointer;
    font-size: 1vw;
  }

  #contact { background: #9d354f; }


  .overlay {
    aspect-ratio: 1280 / 400;
    background-color: rgba(0, 0, 0, 0.576);
    z-index: 1;
    background-attachment: fixed; 
  }
  footer {
    aspect-ratio: 1280 / 400;
    background-image: url('img/forest_2.png');
    background-color: #00000069;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    background-attachment: fixed; 
  }
  .footer_menu {
    display: flex;
    position: absolute;
    top: 30px;
    left: 50%;
    transform: translate(-50%);
    list-style: none;
    gap: 90px;
    aspect-ratio: 1280 / 400;
  }
  .footer_menu a{
    text-decoration: none;
    color: white;
    font-weight: bold;
    letter-spacing:0.5px ;
  }
  .footer_text {
    position: relative;
    color: white;
    z-index: 1;
  }
  .footer_menu_line {
    padding: 10px 10px;
    border-left: 1px solid #ccc; 
    /* ↑区切り線 */
    list-style: none;
    line-height: 15px;
    font-size: 10pt;
  }
  .footer_menu_line a{
    font-weight: lighter;
  }
  .footer_menu_line a:hover{
    font-weight: lighter;
    color:  rgb(168, 176, 229);
  }
  .Copyright {
    position: relative;
    aspect-ratio: 1280 / 400;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
  }
