@charset "utf-8";
/* --init-- */
:root{
	--accent-color: #cf1c3b;
}
body {
	-webkit-box-pack: justify;
	-moz-box-pack: justify;
	-ms-flex-pack: justify;
	-webkit-justify-content: center;
	justify-content: center;
	align-items: center;
}
.animation-area {
	display: flex;
	flex-direction: column;
}
/* --color-- */
.nav-menu a{
	color: #3e3e3e;
	fill: #3e3e3e;
}
.nav-menu a:hover {
	color: var(--accent-color);
	fill: var(--accent-color);
}
em{color:#ff9a9a}

.site-name a, .site-name a:hover, .site-name a:visited{color: inherit;}

.read-about-this h2{color: #646573;}
body{background: #f4f4f4}
.read-about-this::before{background: #646573;}
.this-site{background: #646573;}
.this-site::after{background: #c8c9d8;}
.me{background: #c8c9d8;}
.me::after{background: #b1b6cc;}
.links{background: #b1b6cc;}
.links::after{background: #d6dff1;}
.contact{background: #d6dff1;}
.contact::after{background: #f4f4f4;}
.exit{background: #f4f4f4;}

/* --z-index-- */
body {z-index: -1;}
.circles{z-index: 0;}
.display-block {z-index: 1;}
.site-name {z-index: 2;}
.home-nav {z-index: 2;}
.about-scroll-nav {z-index: 2;}
.indicator-wrap{z-index: 1;}
.read-about-this{z-index: 1;}

/* --site name-- */
.site-name{
	margin: 0;
	padding: 0;
	min-height: 5rem;
	display: inline-block;
	position: relative;
	top: 3.5em;
	text-align: center;
}
.site-name h1 {
	font-size: 5rem;
	letter-spacing: 0.1em;
	white-space: nowrap;
	display: inline-block;
	color: #fff;
	text-shadow: 4px 4px 10px #00203b7d;
}

/* --home main-- */
#main {
	display: flex;
}
.container {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-template-rows: min-content max-content min-content;
	margin: 0 0 0 auto;
}
.home-nav{
	grid-column: 1 / 2;
	grid-row: 2 / 4;
}
.site-name{
	grid-column: 2 / 3;
	grid-row: 1 / 2;
}
.display-block{
	grid-column: 2 / 3;
	grid-row: 2 / 3;
}
.indicator-wrap{
	grid-column: 2 / 3;
	grid-row: 3 / 4;
}

/* --nav list-- */
.home-nav {
	font-family: 'Jura', sans-serif;
	font-weight: 600;
	list-style: none;
	display: flex;
	flex-direction: column;
	white-space: nowrap;
	align-self: center;
	text-align: right;
	margin-right: 2rem;
	padding: 0;
	height: fit-content;
	position: relative;
	left: 30%;
}

/* -- list decoration --  */
.nav-menu li {
	list-style-type: none;
	background-color: #eeeeee4d;
	cursor: pointer;
	transition: all 0.3s ease;
	border-radius: 0.5rem;
	box-shadow: 0 4px 8px rgba(0, 0, 50, 0.2);
	backdrop-filter: blur( 5px );
	-webkit-backdrop-filter: blur( 5px );
}
.nav-menu li::before {
	position: absolute;
	top: 0;
	right: 0;
	content: "";
	display: block;
	width: 5%;
	height: 100%;
	border-bottom-right-radius: inherit;
	border-top-right-radius: inherit;
	background: var(--accent-color);
	transform: scaleX(0);
	transform-origin: right;
	transition: all 0.18s ease;
	transition-property: transform;
}

.nav-menu li:hover::before {
	transform: scaleX(1);
	transform-origin: right;
}

/* --list items-- */
.contents-list li{
	font-size: 1.8em;
	width: 12rem;
	margin: 1rem 0;
	padding: 1rem 1.5rem;
}
.about-list li{
	font-size: 1.2em;
	width: 10rem;
	margin: 0.5rem 0;
	padding: 0.5rem 1.5rem;
}

/* --contents disp-- */
.display-block {
	width: 75vw;
	height: 60vh;
	border-top-left-radius: 100vh;
	border-bottom-left-radius: 100vh;
	background-color: white;
	align-items: center;
	align-self: self-start;
	overflow: hidden;
	clip-path: view-box;
}

.halftone {
	width: inherit;
	height: inherit;
	border-radius: inherit;
	aspect-ratio: 1;
	position: absolute;
	background: #ff0000;
	filter: contrast(50);
	mix-blend-mode: saturation;
	z-index: 2;
}
.halftone::after {
	--mask: linear-gradient(170deg, rgb(0 0 0 /0) 10%, rgb(0 0 0/0.5) 12%,rgb(0 0 0) 35% 75%,rgb(0 0 0/0.5) 90%, rgb(0 0 0/0) 100%);
	--bgSize: 1.5rem;
	--bgPosition: calc(var(--bgSize) / 2);
	--stop1: 5%;
	--stop2: 100%;
	content: '';
	position: absolute;
	inset: 0;
	border: solid 4px #ff0000;
	border-radius: inherit;
	background-image: radial-gradient(circle at center, black var(--stop1), transparent var(--stop2)), radial-gradient(circle at center, black var(--stop1), transparent var(--stop2));
	background-size: var(--bgSize) var(--bgSize);
	background-repeat: round;
	background-position: 0 0, var(--bgPosition) var(--bgPosition);
	mask-image: var(--mask);
}
.illust-slide{
	z-index: 1;
	img{
		width: 75vw;
		object-fit: cover;
	}
}

/* -- about scroll nav -- */
.about-scroll-nav{
	width: 13rem;
	padding: 0.5rem;
	display: flex;
	flex-direction: column;
	flex-wrap: wrap;
	position: fixed;
	align-items: center;
	bottom: 0;
	right: 0;
	h2{
		display: inline-block;
		margin: 0 2rem;
		font-weight: normal;
		text-align: end;
		color: #2a344e7a;
	}
	ul{
		list-style-type: none;
		position: relative;
		display: flex;
		flex-wrap: wrap;
		flex: 1;
		gap: 0.5em;
		li{
			min-width: 3rem;
			flex: 1 1 45%;
			border-radius: 5rem;
			background: #ffffff30;
			a{
				display: block;
				padding: 0.5em 1em;
				font-size: 1em;
				color: #2a344e7a;
			}
		}
	}
}
.about-scroll-nav {
	opacity: 0;
	pointer-events: none;
	transform: translateY(20px);
	transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.about-scroll-nav.show {
	opacity: 1;
	pointer-events: visible;
	transform: translateY(0);
}

/* -- hero section -- */
.read-about-this{
	-webkit-box-pack: justify;
	-moz-box-pack: justify;
	-ms-flex-pack: justify;
	-webkit-justify-items: center;
	justify-items: center;
	margin: 3% 0;
	flex: 1;
	h2{
		position: relative;
		top: 1.5em;
		font-weight: lighter;
	}
}
.read-about-this::before{
	content: "";
	position: absolute;
	left: 0;
	bottom: -2px;
	width: 100%;
	height: 15vh;
	clip-path: polygon(50% 90%, 100% 0, 100% 100%, 0% 100%, 0% 0%);
}

.this-site::after, .me::after, .links::after,
.contact::after{
	content: "";
	display: block;
	position: relative;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 10vh;
	top: 1px;
}
.this-site::after {
	clip-path: polygon(0 0, 100% 95%, 100% 100%, 0 100%);
}
.me::after{
	clip-path: polygon(0 95%, 100% 0, 100% 100%, 0 100%);
}
.links::after{
	clip-path: polygon(0 0, 100% 95%, 100% 100%, 0 100%);
}
.contact::after{
	clip-path: polygon(0 0, 100% 95%, 100% 100%, 0 100%);
}

/* -- about section -- */
.slide-in{
	display: flex;
	flex-direction: column;
	min-height: 20vh;
	position: relative;
	width: fit-content;
	max-width: 80%;
	height: 100%;
	align-content: center;
	align-items: center;
	margin: 5rem 0;
}
.about-section .slide-in{
	opacity: 0;
	transform: translateY(5vh);
	transition: 0.6s;
}
.about-section .slide-in.active{
	opacity: 1;
	transform: translateY(0);
}
.about-section{
	display: flex;
	flex-direction: column;
	width: 100svw;
	height: fit-content;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
	-moz-box-pack: justify;
	-ms-flex-pack: justify;
	-webkit-justify-content: center;
	justify-content: center;
	align-content: center;
	align-items: center;
	h3{
		margin: 1em 0;
	}
}
/* -- collapsible -- */
.collapsible-trigger::before{content:"✦";}
.collapsible-trigger{cursor: pointer;}
.collapsible-content{
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.5s cubic-bezier(0.49, 0.71, 0.34, 0.98);
}
#me .collapsible-content.expanded{max-height: fit-content;}
#bookmarks.collapsible-content.expanded{max-height: fit-content;}

.site-genre-info, .profile, .played-numbering, .link-info, .contact-info{
	display: grid;
	gap: 0.3rem;
	grid-template-columns: auto 1fr;
	h4, hr {grid-column: 1/3}
	.item{grid-column: 1/2}
	.content{grid-column: 2/3}
	.content::before{content:":"; margin:0 0.5rem;}
}

.this-website {
	color: #d9d9d9;
	display: flex;
	flex-direction: column;

	.annotation-num::before, sup::before{content: "*";}
	.annotation-num::after{content: "...";}
	.annotation{
		li{
			display: flex;
			font-size: small;
			margin: 0.5em;
		}
	}
}
.this-website > *{
	align-self: center;
}

.me{
	.played-numbering{
		position: relative;
	}
	.mmz {
		display: flex;
		flex-direction: column;
		justify-content: center;
		max-width: 25rem;
		background: #f3f3f3;
		color: #565a6a;
		padding: 5rem;
		border-radius: 5rem;
		.mmz-icon{
			display: flex;
			width: 10rem;
			height: 10rem;
			position: absolute;
			top: -3rem;
			border-radius: 100%;
			align-self: center;
			overflow: hidden;
			img{
				width: 100%;
			}
		}
	}
}

.links {
	.link-here{
		width: fit-content;
		background: #f3f3f3;
		padding: 5rem;
		border-radius: 5rem;
		.bnr-img{
			display: flex;
			flex-direction: column;
		}
	}
	.bookmarks{
		display: flex;
		max-width: calc((200px + 0.5rem) * 4);
		flex-wrap: wrap;
		-webkit-box-pack: justify;
		-moz-box-pack: justify;
		-ms-flex-pack: justify;
		-webkit-justify-content: flex-start;
		justify-content: flex-start;
		gap: 0.5rem;
	}
	.bookmark-banner{
		position: relative;
		width: 200px;
		height: 40px;
		a{
			display: inline-block;
			position: absolute;
			width: 100%;
			height: 100%;
			z-index: 3;
		}
		img{
			position: absolute;
			z-index: 1;
		}
		.caption{
			position: absolute;
			color: #ffffffb0;
			background: #000000b0;
			width: 100%;
			height: 100%;
			z-index: 2;
			transition: 0.2s;
			opacity: 0;
		}
	}
	.bookmark-banner:hover .caption{opacity: 1;}
	.search-and-event, .material-and-script{
		border-left: dashed 1px #3d3d3d;
		padding: 0 1rem;
		ul{
			display: flex;
			list-style: none;
			gap: 1rem;
		}
		li::before{
			content: "✦";
		}
	}
}

.contact-list {
	height: fit-content;
	h4{
		font-weight: normal;
	}
	ul{
		display: flex;
		list-style: none;
		gap: 1rem;
	}
	li::before{
			content: "✦";
	}
}

.exit {
	.slide-in{
		min-height: fit-content;
		height: fit-content;
		margin: 0;
	}
	.exit-button{
		color: #9591a6;
		display: flex;
		flex-flow: column;
		align-items: center;
		flex-direction: column;
		text-align: center;
		.material-icons{
			display: block;
			font-size: 50px;
		}
		.exit-txt{
			display: block;
			font-size: 1rem;
		}
	}
	.exit-button::after {
		content: "";
		align-self: start;
		position: relative;
		left: 0;
		bottom: 0;
		width: 0;
		height: 1px;
		background-color: #a4a4a4; /* ボーダーの色 */
		transition: width 0.2s ease-in-out;
	}
	.exit-button:hover::after {
		width: 100%;
	}

}