@font-face {
    font-family: "LadyIce_LightItalic";
    src: url("font/LADYILO_.woff2") format("woff2");
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: "komorebi_gothic_P";
    src: url("font/komorebi-gothic-P_subset.woff2") format("woff2");
    font-weight: normal;
    font-style: normal;
}

:root {
  /* color */
  --maincolor: rgba(56, 24, 161, 1);
  --maincolor_light: rgba(56, 24, 161, .2);
  --maincolor_extra_light: rgba(56, 24, 161, .15);
  --maincolor_slightly_light: rgba(87, 52, 47, .85);
  --subcolor: rgb(215, 184, 221);
  --subcolor_light: rgba(215, 184, 221, .6);
  --accentcolor: rgb(215, 184, 221);
  --accentcolor_sub: rgb(239, 128, 47, .4);
  
}

html {
	font-size: 62.5%;
	box-sizing: border-box;
	font-family: komorebi_gothic_P;
	color: var(--maincolor);
}

body {
	background-color: var(--subcolor);
	background-image: repeating-linear-gradient(-40deg, transparent, transparent 2.4rem, rgba(255, 255, 255, .4) 2.4rem, rgba(255, 255, 255, .4) 25px );
	font-size: 1.7rem;
	padding: 5rem;
}

footer {
	text-align: center;
}

.title_img {
	width: 36rem;
	height: auto;
	text-align: center;
	margin-top: 1.8rem;
}

.main_container {
	background: rgba(255,255,255,.8);
	margin: 5rem;
	padding: 2.5rem;
	text-align: center;
	border-radius: 0.5rem;
}

.heading {
	font-family: LadyIce_LightItalic;
	font-size: 3.6rem;
	margin-top: 4rem;
	margin-bottom: 2rem;
	display: flex;
	align-items: center;
}

.heading::before,
.heading::after{
	content: '';
	flex-grow: 1;
	height: 1px;
	border-bottom: 1px solid;
}

.heading::before{
	margin-right: 0.8rem;
}

.heading::after{
	margin-left: 0.8rem;
}

.heading_sub {
	font-family: LadyIce_LightItalic;
	font-size: 2.6rem;
	margin-top: 0.6rem;
}

.story_txt_container,
.system_list {
	text-align: left;
	width: fit-content;
	display: inline-block;
	line-height: 1.5;
	padding: 1.4rem 1.8em;
	border-radius: 0.5rem;
}

.story_additional_txt {
	margin-top: 2rem;
	font-size: 1.5rem;
}

.sample_item_container {
	display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem 4rem;
    padding: 0 2.5rem;
}


.sample_img {
	width: 100%;
	min-width: 0;
	border: 0.5rem solid var(--subcolor_light);
}

.chara_img {
	width: 30rem;
	border-radius: 0.5rem;
}



.link{
	background: var(--maincolor_extra_light);
	border-bottom: 1px solid;
}

.link:hover{
	background: var(--accentcolor_sub);
}

#section_character {
	position:relative;
}
.system_list {
	display: flex;
	flex-wrap: wrap;
	width: 50%;
	margin: 0 auto;
	box-sizing: content-box;
}

.system_list dt {
	display: inline-block;
	width: 30%;
	
}

.system_list dd {
	display: inline-block;
	width: 70%;
	text-align: left;
}

.chara_name {
	background: var(--accentcolor);
	padding: 0.2rem;
	white-space: nowrap;
}

.chara_txt {
	display: inline-block;
	margin-left: 1.2rem;
}

.chara_container {
	display: flex;
	flex-direction: column;
	width: fit-content;
	margin: 2rem auto 0;
	row-gap: 1rem;
}

.chara_txt_container {
	display: flex;
	align-items: center;
}

.chara_name,
.chara_txt {
	width: fit-content;
	text-align: left;
}

.dl_bt {
	display: block;
	width: fit-content;
	margin: 0 auto 2rem;
	background: var(--maincolor_light);
	padding: 0.4rem 1rem;
}

.dl_bt:hover{
	background: var(--accentcolor_sub);
}
.update_history_container {
	margin-top: 4rem;
}
.update_history_container p {
	line-height: 2;
}

.dl_form_container {
	margin-top: 3rem;
}

.dl_explain_txt {
	position: relative;
	margin-top: 3rem;
	margin-bottom: 3rem;
}
.dl_explain_txt::after {
	content: '';
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	bottom: -2rem; 

	width: 1.5rem; 
	height: 1.2rem; 
	background-color: var(--maincolor);
	clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.heading_sub_jp{
	display: flex;
	align-items: center;
	max-width: 40rem;
	margin: 5.5rem auto 3rem;
}

.heading_sub_jp::before,
.heading_sub_jp::after {
content: "";
flex-grow: 1;
	margin: 0 1rem;
	height: 1px;
	border-bottom: 1px dotted;
}

.heading_sub_history {
	border-bottom: 1px dashed;
	max-width: 30rem;
	margin: 5rem auto 1.4rem;
}

.strikethrough {
	text-decoration:line-through;
}

/* README Page */

.readme_container {
	line-height: 1.5;
	
}
.readme_container :is(p, h2, h3, h4) {
    text-align: left;
    display: inline-block;
    width: fit-content;
}
.readme_item_container {
	display: flex;
	flex-direction: column;
	
}

.list_container {
	display: flex;
	flex-direction: column;
	align-items: center;
	background: var(--subcolor_light);
	padding: 1rem 2rem;
	border-radius: 0.5rem;
	width: fit-content;
	margin: 2rem auto 0;
}
.list span:not(:last-child)::after {
    content: "\00a0/\00a0";
}
.border {
	border-bottom: 1px dashed var(--maincolor);
	margin-top: 4rem;
}


.how_container {
	display: flex;
	flex-direction: column;
	width: fit-content;
}

.how_item {
	display: flex;
	flex-direction: column;
	background: var(--subcolor);
	border-radius: 0.25rem;
	text-align: left;
	margin-top: 1rem;
	
	padding: 1rem;
}
.caution_container {
	display: flex;
	flex-direction: column;
}
.caution_container p {
	text-indent: 0;
	padding-left: 1em;
	text-indent: -1em;
	margin-bottom: 0.8rem;
}

.thanks_item{
	margin-bottom: 1.4rem;
}

.thanks_item span:not(:last-child)::after {
    content: ",\00a0";
}

.thanks_item span{
	display: inline-block;
	
}

.readme_container h2 {
    font-size: 2rem;
    margin-top: 2.4rem;
    margin-bottom: 0.6rem;
    /*border-bottom: 5px solid var(--accentcolor);*/
    background: var(--accentcolor);
    width: fit-content;
    padding: 0 2rem;
    border-radius: 5rem;
}

.readme_container h3 {
    border-bottom: 5px solid var(--accentcolor);
    width: fit-content;
    margin-bottom: 0.4rem;
}

.readme_container h4 {
    
    display: inline-block;
}

.readme_container h1 {
    font-size: 2.4rem;
    margin-bottom: 0.6rem;
}

.readme_txt_container {
	padding: 2.5rem 10rem 5rem 10rem;
	width: fit-content;
	margin: 0 auto;
}

.back_bt {
	border: var(--accentcolor) 2px solid;
	border-radius: 5rem;
	padding: 1rem 1.5rem;
	margin-top: 4rem;
	display: inline-block;
}

@media screen and (max-width: 767px) {
	html {
	overflow: auto;
	overflow-wrap: break-word;
	}
  body {
    padding: 0;
    font-size: 1.4rem;
    max-width: 100%;
    overflow: hidden;
  }
  img {
    max-width: 100%;
  }
  
  .main_container {
	margin: 2.5rem;
	padding: 2.5rem;
}
.story_txt_container {
	width: 100%;
}
.chara_txt_container {
	flex-direction: column;
	gap: 1rem;
	align-items: flex-start;
}

.chara_txt {
	margin-left: 0;
}
.chara_img {
	width: 20rem;
}

.sample_item_container {
    grid-template-columns: 1fr;
}

.system_list {
	width: 80%;
}
}
@media screen and (max-width: 1024px) {
	html {
	word-break: break-all;
	}
.readme_txt_container {
	padding: 0;
	width: auto;
}

}