:root {
  --header_height: 80px;
  --footer_height: 30px;

  --textbox_height: 250px;
  --textWindow_height: 160px;
  --textWindow_minWidth: 375px;
  --textWindow_maxWidth: 850px;

  --menu_width: 240px;
}

* {
  box-sizing: border-box;
}

html,
body {
  /* 高さ・幅・パディング・マージン */
  height: 100%;
  width: 100%;
  margin: 0px;
  padding: 0px;
  /* 背景・文字・枠線・影 */
  color: #323232;
}

/* サイトボックスデザイン */
#sitebox {
  /* 高さ・幅・パディング・マージン */
  height: 100%;
  width: 100%;
}

/* ヘッダーデザイン */
#header {
  /* 位置固定(上部) */
  position: fixed !important;
  top: 0;
  left: 0;
  /* ディスプレイ設定 */
  display: flex;
  justify-content: center;
  /* 高さ・幅・パディング・マージン */
  height: var(--header_height);
  width: 100%;
  /* 背景・文字・枠線・影 */
  /* background-color: rgb(240, 240, 240); */
  /* border: 1px solid rgb(255, 0, 0); */
  /* レイヤー番号 */
  z-index: 800;
}

/* フッターデザイン */
#footer {
  /* 位置固定(下部) */
  position: fixed !important;
  bottom: 0;
  left: 0;
  /* ディスプレイ設定 */
  display: flex;
  justify-content: center;
  align-items: center;
  /* 高さ・幅・パディング・マージン */
  height: var(--footer_height);
  width: 100%;
  /* 背景・文字・枠線・影 */
  background-color: rgb(240, 240, 240);
  /* レイヤー番号 */
  z-index: 700;
}

/* メインデザイン */
#main {
  /* ディスプレイ設定 */
  display: flex;
  align-items: center;
  /* 高さ・幅・パディング・マージン */
  height: 100%;
  width: 100%;
  padding-top: calc(var(--header_height));
  padding-bottom: calc(var(--footer_height));
  /* 背景・文字・枠線・影 */
  /* border: 1px solid blue; */
}

/* テキストボックス「open」ボタンデザイン */
#textboxOpenBtn {
  /* 位置固定(下部) */
  position: fixed !important;
  bottom: 40px;
  left: calc(50% - 15px);
  /* 高さ・幅・パディング・マージン */
  height: 30px;
  width: 30px;
  border-radius: 15px;
}

/* コンテンツデザイン */
#contents {
  /* ディスプレイ設定 */
  display: flex;
  flex-flow: column;
  align-items: center;
  /* 高さ・幅・パディング・マージン */
  height: 100%;
  width: 100%;
  padding: 10px 0;
  /* 背景・文字・枠線・影 */
  /* border: 1px solid red; */
  overflow-y: auto;
}

/* トップ画像デザイン */
.topImg {
  /* ディスプレイ設定 */
  display: flex;
  flex-flow: column;
  /* 背景・文字・枠線装飾 */
  max-width: 90%;
}

/* トップ画像デザイン */
.topImg img {
  /* 背景・文字・枠線装飾 */
  box-shadow: 0 2px 6px #00000080;
}

/* テキストボックスデザイン */
#textbox {
  /* 位置固定 */
  position: fixed;
  bottom: 0px;
  /* ディスプレイ設定 */
  display: flex;
  flex-flow: column;
  align-items: center;
  /* 表示設定 */
  visibility: hidden;
  /* 高さ・幅・パディング・マージン */
  height: 0px;
  width: 100%;
  /* レイヤー番号 */
  z-index: 90;
  /* 背景・文字・枠線・影 */
  /* border: 1px solid rgb(255, 0, 0); */
}

/* テキストウインドウデザイン */
#textWindow {
  /* 位置固定 */
  position: absolute;
  top: 15px;
  /* ディスプレイ設定 */
  /* display: none; */
  /* 高さ・幅・パディング・マージン */
  height: var(--textWindow_height);
  width: calc(100% - 100px);
  min-width: var(--textWindow_minWidth);
  max-width: var(--textWindow_maxWidth);
  padding: 20px;
  /* margin: 0 var(--scrollbar_width) 0 auto; */
  /* 背景・文字装飾 */
  border-radius: 10px;
  /* 背景・文字・枠線・影 */
  /* background-color: rgba(214, 74, 74, 0.85); */
  background-color: rgba(230, 230, 230, 0.95);
  border: 2px solid rgb(255, 255, 255);
  outline: 1px solid rgb(255, 255, 255);
  outline-offset: 2px;
  /* filter: drop-shadow(0px 5px 5px #858585); */
}
/* テキストエリアデザイン */
#textArea {
  /* 位置固定 */
  position: relative;
  /* 高さ・幅・パディング・マージン */
  height: 100%;
  left: 130px;
  width: calc(100% - 130px);
  /* 背景・文字・枠線・影 */
  color: rgb(50, 50, 50);
  font-weight: bold;
  /* background-color: rgba(255, 255, 255, 0.5); */
  overflow-y: auto;
}

/* 「CLOSE(×)」ボタンデザイン */
#textWin_closeBtn {
  /* 高さ・幅・パディング・マージン */
  height: 30px;
  width: 30px;
  border-radius: 15px;
  /* 位置固定 */
  position: absolute;
  top: -15px;
  right: 15px;
}

/* 「キャラクター名」ボックスデザイン */
#textWin_characterNameBtn {
  /* 高さ・幅・パディング・マージン */
  height: 30px;
  width: 120px;
  padding: 1rem 1rem;
  border-radius: 20px;
  /* 位置固定 */
  position: absolute;
  top: 110px;
  left: 10px;
}

/* 「AUTO」ボタンデザイン */
#textWin_autoBtn {
  /* 高さ・幅・パディング・マージン */
  height: 30px;
  width: 45px;
  border-radius: 15px;
  /* 位置固定 */
  position: absolute;
  top: 142px;
  right: 90px;
}

/* 「NEXT」ボタンデザイン */
#textWin_nextBtn {
  /* 高さ・幅・パディング・マージン */
  height: 30px;
  width: 60px;
  border-radius: 15px;
  /* 位置固定 */
  position: absolute;
  top: 142px;
  right: 15px;
}

/* SDキャラクター画像デザイン */
.sdimg {
  width: 150px;
  /* 表示位置 */
  position: absolute;
  bottom: 20px;
  left: -5px;
  /* 背景・文字・枠線装飾 */
  box-sizing: border-box;
}

/* menuデザイン */
#menu {
  /* 位置固定 */
  position: fixed !important;
  top: var(--header_height);
  right: calc(-1 * var(--menu_width));
  /* 表示設定 */
  visibility: hidden;
  /* 高さ・幅・パディング・マージン */
  height: calc(100% - var(--header_height) - var(--footer_height));
  width: var(--menu_width);
  padding: 10px;
  /* 背景・文字・枠線装飾 */
  color: white;
  background-color: rgba(50, 50, 50, 0.6);
  /* レイヤー番号 */
  z-index: 810;
  /* アニメーション */
  transition: all 0.4s;
}
#menu.active {
  right: 0px;
}

/* メニューアイコンデザイン */
.menuIcon {
  /* 位置固定 */
  position: absolute;
  top: 15px;
  right: 15px;
  /* 高さ・幅・パディング・マージン */
  width: 50px;
  height: 50px;
  /* 背景・文字・枠線装飾 */
  cursor: pointer;
  border-radius: 5px;
  /* background: rgb(255, 255, 255); */
  /* レイヤー番号 */
  z-index: 820;
}

/* メニューアイコン*/
.menuIcon span {
  /* 位置固定 */
  position: absolute;
  left: 14px;
  /* ディスプレイ設定 */
  display: inline-block;
  /* 高さ・幅・パディング・マージン */
  height: 2px;
  width: 45%;
  /* 背景・文字・枠線装飾 */
  border-radius: 2px;
  background: rgb(50, 50, 50);
  /* アニメーション */
  transition: all 0.4s;
}

/* メニューアイコン「≡」デザイン */
.menuIcon span:nth-of-type(1) {
  /* 位置 */
  top: 15px;
}
.menuIcon span:nth-of-type(2) {
  /* 位置 */
  top: 23px;
}
.menuIcon span:nth-of-type(3) {
  /* 位置 */
  top: 31px;
}

/* メニューアイコン「×」デザイン */
.menuIcon.active span:nth-of-type(1) {
  /* 位置 */
  top: 18px;
  left: 18px;
  /* 高さ・幅・パディング・マージン */
  width: 45%;
  /* 変形 */
  transform: translateY(6px) rotate(-45deg);
}
.menuIcon.active span:nth-of-type(2) {
  /* 透過 */
  opacity: 0;
}
.menuIcon.active span:nth-of-type(3) {
  /* 位置 */
  top: 30px;
  left: 18px;
  /* 高さ・幅・パディング・マージン */
  width: 45%;
  /* 変形 */
  transform: translateY(-6px) rotate(45deg);
}

/* 設定デザイン */
#setting {
  /* 位置固定 */
  position: fixed !important;
  top: 0;
  left: 0;
  /* ディスプレイ設定 */
  display: flex;
  align-items: center;
  justify-content: center;
  /* 表示設定 */
  visibility: hidden;
  /* 高さ・幅・パディング・マージン */
  height: 100%;
  width: 100%;
  padding-top: calc(var(--header_height));
  padding-bottom: calc(var(--footer_height));
  /* 背景・文字・枠線・影 */
  background-color: rgba(255, 255, 255, 0.6);
  /* border: 1px solid rgb(255, 0, 0); */
  /* レイヤー番号 */
  z-index: 100;
}

/* 設定エリアデザイン */
#settingArea {
  display: flex;
  flex-flow: column;
  align-items: center;
  justify-content: center;
  /* 高さ・幅・パディング・マージン */
  width: 70%;
  max-width: 600px;
  min-width: 320px;
  /* 背景・文字・枠線・影 */
  color: rgb(50, 50, 50);
  background-color: rgba(255, 255, 255, 0.9);
  border: 1px solid rgb(50, 50, 50);
}

/* 設定エリアデザイン */
#settingArea input[type="range"] {
  cursor: pointer;
  /* 高さ・幅・パディング・マージン */
  width: 250px;
  /* 背景・文字・枠線・影 */
  appearance: none;
  height: 3px;
  margin-top: 0px;
  background-color: rgb(200, 200, 200);
  border-radius: 50%;
}

/* テキストボックス設定デザイン */
#settingTextboxStatus {
  /* ディスプレイ設定 */
  display: flex;
  flex-flow: column;
  align-items: center;
  justify-content: center;
  /* 高さ・幅・パディング・マージン */
  height: 100%;
  width: 100%;
  /* 背景・文字・枠線・影 */
  /* background-color: rgba(50, 50, 50, 0.4); */
  /* border: 1px solid rgb(255, 0, 0); */
}

/* テキストボックス設定デザイン */
#setting_dispIntervalSpeedRng,
#setting_autoMsgChangeIntervalSpeedRngDiv {
  /* ディスプレイ設定 */
  display: flex;
  flex-flow: row;
  align-items: center;
  /* border: 1px solid rgb(255, 0, 0); */
}

/* キャラクター設定デザイン */
#settingCharaStatus {
  /* ディスプレイ設定 */
  display: flex;
  flex-flow: column;
  align-items: center;
  justify-content: center;
  /* 高さ・幅・パディング・マージン */
  height: 100%;
  width: 100%;
  /* 背景・文字・枠線・影 */
  /* background-color: rgba(50, 50, 50, 0.4); */
  /* border: 1px solid rgb(255, 0, 0); */
}

/* 「LV_UP」「RESET」「ALL_RESET」ボタンデザイン */
#setting_lvUpBtn,
#setting_resetBtn,
#setting_allResetBtn {
  /* 高さ・幅・パディング・マージン */
  height: 30px;
  margin: 10px;
  width: 100px;
  border-radius: 15px;
}

/* 共通ボタンデザイン */
.cmnbtn {
  /* ディスプレイ設定 */
  display: flex;
  justify-content: center;
  align-items: center;
  /* 背景・文字装飾 */
  color: white;
  /* 背景・文字・枠線装飾 */
  cursor: pointer;
  box-sizing: border-box;
  border: 2px solid white;
  filter: drop-shadow(2px 2px 2px #00000066);
}

/* 共通フォント指定クラス */
.fs10 {
  font-size: 10px;
}
.fs12 {
  font-size: 12px;
}
.fs14 {
  font-size: 14px;
}
.fs16 {
  font-size: 16px;
}
.fs18 {
  font-size: 18px;
}
.fs20 {
  font-size: 20px;
}
.fs22 {
  font-size: 22px;
}
.fs24 {
  font-size: 24px;
}
.fwbold {
  font-weight: bold;
}

ul {
  list-style: none;
  padding: 0 0 0 10px;
}

li {
  padding: 4px 0 0 20px;
}

#textArea span {
  opacity: 0;
}

@keyframes animeText {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

/* debugデザイン */
#debug {
  /* 位置固定 */
  position: fixed !important;
  top: 0;
  left: 0;
  /* 表示設定 */
  visibility: hidden;
  /* 高さ・幅・パディング・マージン */
  height: 100%;
  width: 100%;
  padding: 10px;
  /* 背景・文字・枠線装飾 */
  font-family: monospace;
  font-size: 12px;
  color: white;
  background-color: rgba(0, 0, 0, 0.7);
  /* レイヤー番号 */
  z-index: 1000;
}

#debug div {
  /* 高さ・幅・パディング・マージン */
  padding: 4px;
  /* 背景・文字・枠線装飾 */
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

#debug pre {
  margin: 0px;
}

@media screen and (max-width: 480px) {
  /* テキストエリアデザイン */
  #textArea {
    /* 高さ・幅・パディング・マージン */
    height: 100%;
    left: 100px;
    width: calc(100% - 100px);
    font-size: 0.9rem;
  }

  /* SDキャラクター画像デザイン */
  .sdimg {
    width: 120px;
  }

  /* 「キャラクター名」ボックスデザイン */
  #textWin_characterNameBtn {
    /* 高さ・幅・パディング・マージン */
    width: 100px;
  }

  /* 「AUTO」ボタンデザイン */
  #textWin_autoBtn {
    /* 高さ・幅・パディング・マージン */
    width: 40px;
    /* 位置固定 */
    right: 60px;
  }

  /* 「NEXT」ボタンデザイン */
  #textWin_nextBtn {
    /* 高さ・幅・パディング・マージン */
    width: 40px;
  }
}
