* {
  margin:0; padding:0;
}
@font-face {
   font-family: Yelekish;
   src: url('../../Yelekish_Font.ttf') format("truetype");
}
@font-face {
   font-family: YelekishG;
   src: url('../../YelekishGa.ttf') format("truetype");
}

header {
  width: 100%;
  height: 250px;
  padding: 50px 0;
  margin: 0px auto;
  text-align: left;
}
header .headline{
  margin: 0 0 50px 50px;
  font-family: 'Zen Antique Soft', serif;
  font-size: 64px;
  color: #333;
  border-bottom: 4px solid #7fffd4;
}
@media screen and (max-width:1400px){
  header {
    width: 100%;
    height: 50px;
    padding: 50px 0;
    margin: 0px auto;
    text-align: right;
  }
  header .headline{
    margin: 0px auto;
    padding: 0 0.5em 0.5em 0;
    font-family: 'Zen Antique Soft', serif;
    font-size: 20px;
    color: #333;
    border-bottom: 4px solid #7fffd4;
  }
}

/* main */
main {
  width: 100%;
  height: 50px;
  padding: 0px;
  margin: 0px auto;
  text-align: center;
}
main .chapter{
  margin: 25px;
  font-family: 'Zen Antique Soft', serif;
  font-size: 32px;
  color: #333;
}
@media screen and (max-width:1400px){
  main {
    position: relative;
    width: 100%;
    height: 25px;
    padding: 0px;
    margin: 0px auto;
    text-align: center;
  }
  main .chapter{
    margin: 2px;
    font-family: 'Zen Antique Soft', serif;
    font-size: 18px;
    color: #333;
  }
}
/* novel */
#novel{
  display:flex;
  width: 100%;
  font-family: 'Zen Old Mincho', serif;
  padding: 20px;
  margin: 20px;
}
#novel .novel_text{
  writing-mode: vertical-rl;
  line-height: 2.2em;
  column-count: auto;
  column-width: 18em;
  column-gap: 2em;
  column-fill: auto;
  column-rule: 1px solid #333;
  display: inline-block;
  text-align: left;
  height: auto;
  width: 95%;
}
#novel .novel_text a{
  background: #a8eaff;
}

/* footer */
footer {
  position: absolute;
  bottom: 0px;
  width: 100%;
  height: 30px;
  text-align: center;
  padding: 25px 0;
  font-family: 'Oswald', sans-serif;
  font-size: 12px;
  color: #f1fffa;
}
@media screen and (max-width:1400px){
  footer {
    position: absolute;
    bottom: 0;
    width: 100%;
    height: 20px;
    text-align: center;
    padding: 10px 0;
    font-family: 'Oswald', sans-serif;
    font-size: 8px;
    color: #f1fffa;
  }
}

/*nav*/
#g-nav{
    /*position:fixed;にし、z-indexの数値を大きくして前面へ*/
  position:fixed;
  z-index: 999;
    /*ナビのスタート位置と形状*/
	top:0;
  left: -75%;
	width:75%;
  height: 100vh;/*ナビの高さ*/
  height: 100lvh;
  background: linear-gradient(to top, rgba(127, 255, 212, 0.9) 5%, rgba(65, 105, 225, 0.9) 65%, rgba(0, 0, 205, 0.9)100%), url(../img/img001.jpg);
  background-size: cover;
    /*動き*/
	transition: all 0.6s;
}
/*アクティブクラスがついたら位置を0に*/
#g-nav.panelactive{
    left: 0;
}
/*ナビゲーションの縦スクロール*/
#g-nav.panelactive #g-nav-list{
    /*ナビの数が増えた場合縦スクロール*/
    position: fixed;
    z-index: 999;
    width:75%;
    height: 100vh;/*表示する高さ*/
  height: 100lvh;
    overflow: scroll;
    -webkit-overflow-scrolling: touch;
}
/*ナビゲーション*/
#g-nav ul {
    /*ナビゲーション天地中央揃え*/
    position: absolute;
    z-index: 999;
    top:50%;
    left:50%;
    transform: translate(-50%,-50%);
    column-count: 2;
}

/*リストのレイアウト設定*/
#g-nav li{
	list-style: none;
 	text-align: center;
	color: #fff;
	font-family: 'Zen Antique Soft', serif;
}
#g-nav li a{
	color: #fff;
	text-decoration: none;
	padding:10px;
	display: block;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-family: 'Noto Sans JP', sans-serif;
}

/*========= ボタンのためのCSS ===============*/
.openbtn{
	position:fixed;
    z-index: 9999;/*ボタンを最前面に*/
	top:10px;
	left: 10px;
	cursor: pointer;
    width: 50px;
    height:50px;
}
/*×に変化*/
.openbtn span{
    display: inline-block;
    transition: all .4s;
    position: absolute;
    left: 14px;
    height: 3px;
    border-radius: 2px;
	background-color: #666;
  	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%;
}

/* a */
a:link, a:visited, a:hover, a:active {
  color: #313e50;
  text-decoration: none;
}
a.footerlink:link,
a.footerlink:visited,
a.footerlink:hover,
a.footerlink:active {
  color: #f1fffa;
}

/* h */
h1 {
  color: #313e50;/*文字色*/
  padding: 0.5em 0;/*上下の余白*/
  font-size: 64px;
}
h2 {
  margin: 0;
  position: relative;
  text-align: center;
  font-family: 'Zen Old Mincho', serif;
}
@media screen and (max-width:1400px){
  h1 {
    color: #313e50;/*文字色*/
    padding: 0.5em 0;/*上下の余白*/
    font-size: 32px;
  }
  h2 {
    margin: 0;
    position: relative;
    text-align: center;
    font-family: 'Zen Old Mincho', serif;
  }
}
/* index-menu */
.toc-004 {
    max-width: 75%;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 30px;
    padding: 1em 1em 1em 2em;
    border-top: 4px double #ddd;
    border-bottom: 4px double #ddd;
    background-image: linear-gradient(-45deg, transparent 25%, #eee 25%, #eee 50%, transparent 50%, transparent 75%, #eee 75%, #eee);
    background-clip: padding-box;
    background-size: 4px 4px;
}

.toc-004 div {
    display: block;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
    padding: 5px 0;
}

.toc-004 div::before {
    display: inline-block;
    width: 1em;
    height: 1em;
    margin-right: 5px;
    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%2024%2024%22%20fill%3D%22%23333%22%3E%3Cpath%20d%3D%22M3.8%2017.2h-3c-.5%200-.8.4-.8.8v3c0%20.4.3.8.8.8h3c.4%200%20.8-.3.8-.8v-3c-.1-.4-.4-.8-.8-.8zm0-15h-3c-.5%200-.8.4-.8.8v3c0%20.4.3.8.8.8h3c.4%200%20.8-.3.8-.8V3c-.1-.4-.4-.8-.8-.8zm0%207.6h-3c-.5%200-.8.3-.8.7v3c0%20.4.3.8.8.8h3c.4%200%20.8-.3.8-.8v-3c-.1-.4-.4-.7-.8-.7zM23.2%2018h-15c-.4%200-.8.3-.8.8v1.5c0%20.4.3.8.8.8h15c.4%200%20.8-.3.8-.8v-1.5c0-.5-.3-.8-.8-.8zm0-15h-15c-.4%200-.7.3-.7.8v1.5c0%20.4.3.7.7.7h15c.5%200%20.8-.3.8-.8V3.8c0-.5-.3-.8-.8-.8zm0%207.5h-15c-.4%200-.8.3-.8.8v1.5c0%20.4.3.8.8.8h15c.4%200%20.8-.3.8-.8v-1.5c0-.5-.3-.8-.8-.8z%22%2F%3E%3C%2Fsvg%3E');
    content: '';
}

.toc-004 label::after {
    margin-left: 7px;
    font-size: .7em;
    color: #166c9d;
    content: "[open]";
    cursor: pointer;
}

.toc-004:has(:checked) label::after {
    content: "[close]";
}

.toc-004 input {
    display: none;
}

.toc-004 ol {
    list-style-type: upper-roman;
    width: fit-content;
    margin: auto;
    padding: 0 1.2em;
    overflow: hidden;
}

.toc-004 > ol {
    height: 0;
}

.toc-004:has(:checked) > ol {
    height: auto;
}

.toc-004 ol ol {
    margin-top: 5px;
    list-style-type: lower-roman;
    font-size: 80%;
}

.toc-004 li {
    padding: 5px 0;
}

.toc-004 a {
    color: #333;
    text-decoration: none;
}