html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,dialog,figure,footer,header,menu,nav,section,time,mark,audio,video{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:rgba(0,0,0,0);font-style:normal;font-weight:normal}article,aside,details,figcaption,figure,footer,header,nav,section{display:block}ul,ol{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}img{font-size:0;line-height:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}a{margin:0;padding:0;border:0;font-size:100%;vertical-align:baseline;background:rgba(0,0,0,0)}ins{background:#fff;color:#000;text-decoration:none}mark{background:#ff9;color:#000;font-style:normal;font-weight:bold}del{text-decoration:line-through}abbr[title],dfn[title]{border-bottom:1px dotted #000;cursor:help}table{border-collapse:collapse;border-spacing:0;word-break:break-all}fieldset,img{vertical-align:top;line-height:0}input,select{vertical-align:middle}html{height:100%;overflow-y:scroll}*{margin:0;padding:0}


/*共通*/
:root {
	--width-max: 1200px;
	--color-black: #261d1e;
	--color-pink: #ff4f91;
	--color-red: #f11;
	--color-blue: #00f;
	--ff-ja: "Noto Sans JP", sans-serif;
	--ff-en: "Poppins", sans-serif;
	--fw-1: 100;
	--fw-2: 200;
	--fw-3: 300;
	--fw-4: 400;
}
body {
	height: 100%;
	font-size: 14px;
	font-family: var(--ff-ja);
	-webkit-text-size-adjust: none;
	font-feature-settings: "palt";
	word-wrap: break-word;
	line-height: 1.8;
	font-weight: var(--fw-4);
	color: var(--color-black);
	@media(width>768px) {
		font-size: 16px;
	}
}
a {
	color: var(--color-black);
	text-decoration: none;
	@media (any-hover:hover) {
		transition: color .3s;
		&:hover {
			color: var(--color-pink);
		}
	}
}
span, a {
	font-weight: inherit;
}
input, textarea, select, button {
	font-family: var(--ff-ja);
	font-size: inherit;
	font-weight: inherit;
	-webkit-appearance : none;
}
button {
	display: block;
	cursor: pointer;
	border: none;
	background: transparent;
	box-sizing: border-box;
}
.pc-none {
	@media(width>1250px) {
		display: none !important;
	}
}
.sp-none {
	@media(width<=1250px) {
		display: none !important;
	}
}


footer {
	padding: 60px clamp(20px, calc(40/750*100%), 60px) 0;
	background: var(--color-black);
	font-family: var(--ff-en);
	color: #fff;
	a {
		color: inherit;
	}
	small {
		padding: 34px 0;
		border-top: 1px solid #514545;
		display: block;
		font-size: 13px;
	}
	.logo {
		height: 34px;
		img {
			height: 100%;
			display: block;
		}
	}
	.nav {
		margin: 16px 0 12px;
		font-size: 16px;
		columns: 2;
		li {
			padding: 6px 0 7px;
		}
		a {
			&[href="off"] {
				color: #747171;
				pointer-events: none;
			}
		}
	}
	.sns {
		height: 40px;
		margin-bottom: 40px;
		display: flex;
		gap: 15px;
		a {
			width: 40px;
			aspect-ratio: 1/1;
			box-sizing: border-box;
			border: 1px solid #fff;
			border-radius: 50%;
			display: flex;
			align-items: center;
			justify-content: center;
			@media (any-hover:hover) {
				transition: opacity .3s;
				&:hover {
					opacity: .5;
				}
			}
		}
		.sns-i img {
			width: 18px;
			aspect-ratio: 1/1;
		}
		.sns-x img {
			width: 16px;
			aspect-ratio: 1/1;
		}
		.sns-y img {
			width: 20px;
			aspect-ratio: 20/14;
		}
	}
	@media(width>1250px) {
		padding-top: 80px;
		#area-footer {
			max-width: var(--width-max);
			margin: 0 auto;
			display: flex;
			flex-wrap: wrap;
		}
		small {
			width: 100%;
			padding: 54px 0 72px;
		}
		.logo {
			height: 43px;
		}
		.nav {
			margin: -9px 0 70px auto;
			font-size: 15px;
			li {
				width: 140px;
				padding: 0 0 13px;
			}
		}
		.sns {
			margin: 0 0 0 190px;
		}
	}
}


#container {
	container-type: inline-size;
	position: relative;
	overflow: clip;
	@media(width>1250px) {
		padding-top: 140px;
	}
}


#header {
	width: 100%;
	h1 {
		width: 0;
		height: 0;
		font-size: 0;
		line-height: 0;
		text-indent: -9999px;
		overflow: hidden;
	}
}


.menu {
	width: 100%;
	height: 70px;
	padding: 0 clamp(20px, calc(40/750*100%), 60px);
	box-sizing: border-box;
	background: var(--color-pink);
	display: flex;
	align-items: center;
	position: relative;
	.logo {
		height: 42px;
		position: absolute;
		top: 0;
		bottom: 0;
		left: clamp(20px, calc(40/750*100%), 60px);
		margin: auto;
		a {
			height: 100%;
			display: block;
		}
		img {
			height: 100%;
		}
	}
	.menuInner {
		a {
			font-family: var(--ff-en);
			color: var(--color-black);
			&[href="off"] {
				color: #bd3e6c;
				pointer-events: none;
			}
		}
		h2 {
			width: 0;
			height: 0;
			font-size: 0;
			line-height: 0;
			text-indent: -9999px;
			overflow: hidden;
		}
	}
	.nav {
		a {
			display: flex;
			align-items: center;
			@media (any-hover:hover) {
				transition: color .3s;
				&:hover {
					color: #fff;
				}
			}
		}
	}
	.sns {
		height: 40px;
		display: flex;
		gap: 15px;
		a {
			width: 40px;
			aspect-ratio: 1/1;
			box-sizing: border-box;
			border: 1px solid var(--color-black);
			border-radius: 50%;
			display: flex;
			align-items: center;
			justify-content: center;
			@media (any-hover:hover) {
				transition: opacity .3s;
				&:hover {
					opacity: .5;
				}
			}
		}
		.sns-i img {
			width: 18px;
			aspect-ratio: 1/1;
		}
		.sns-x img {
			width: 16px;
			aspect-ratio: 1/1;
		}
		.sns-y img {
			width: 20px;
			aspect-ratio: 20/14;
		}
	}
	@media(width<=1250px) {
		.menu-open {
			width: 40px;
			height: 27px;
			font-size: 0;
			line-height: 0;
			text-indent: -999px;
			overflow: hidden;
			position: absolute;
			top: 21.5px;
			right: clamp(20px, calc(40/750*100%), 60px);
			z-index: 200;
			&::before, &::after {
				content: "";
				display: block;
				width: 100%;
				height: 1px;
				background: var(--color-black);
				position: absolute;
				inset: 0;
				margin: auto;
				rotate: 45deg;
				transition: rotate .3s;
			}
			&::after {
				rotate: -45deg;
			}
		}
		.menuInner {
			width: 100%;
			height: 100%;
			padding: 70px clamp(20px, calc(40/750*100%), 60px);
			box-sizing: border-box;
			background: var(--color-pink);
			overflow-y: auto;
			overscroll-behavior: contain;
			display: flex;
			flex-direction: column;
			position: fixed;
			top: 0;
			right: 0;
			z-index: 150;
			transition: opacity .3s;
			ul {
				width: 100%;
			}
			&[inert] {
				opacity: 0;
				pointer-events: none;
				+ .menu-open {
					border-top: 1px solid var(--color-black);
					border-bottom: 1px solid var(--color-black);
					&::before, &::after {
						rotate: 0deg;
					}
				}
			}
		}
		.nav {
			padding-top: 10px;
			li + li {
				border-top: 1px solid #fe96b0;
			}
			a {
				width: 100%;
				height: 72px;
				font-size: 16px;
				box-sizing: border-box;
			}
		}
		.sns {
			order: -1;
		}
	}
	@media(width>1250px) {
		height: 140px;
		padding-block: 0;
		justify-content: center;
		.menu-open {
			display: none;
		}
		.menuInner {
			display: flex;
		}
		.nav {
			display: flex;
			gap: 24px;
			a {
				height: 100%;
				font-size: 15px;
				position: relative;
				&::after {
					content: "";
					display: block;
					width: 6px;
					aspect-ratio: 1/1;
					border-radius: 50%;
					background: #fff;
					position: absolute;
					bottom: -8px;
					left: 0;
					right: 0;
					margin: auto;
					opacity: 0;
				}
			}
		}
		.sns {
			position: absolute;
			right: 60px;
			bottom: 0;
			top: 0;
			margin: auto;
		}
	}
}
body.home .nav-top,
body.news .nav-news,
body.profile .nav-profile,
body.works .nav-works,
body.art .nav-art,
body.exhibition .nav-exhibition,
body.contact .nav-contact,
body.fanclub .nav-fanclub,
body.shop .nav-shop {
	a::after { opacity: 1;}
}
#menuInc1 {
	width: 100%;
	transition: top .6s, opacity .6s;
	@media(width>1250px) {
		position: fixed;
		right: 0;
		top: 0;
		z-index: 500;
		&.fix {
			top: -150px;
			opacity: 0;
		}
	}
}
#menuInc2 {
	width: 100%;
	position: fixed;
	right: 0;
	top: -100px;
	z-index: 900;
	opacity: 0;
	transition: top .6s, opacity .6s;
	&.fix {
		top: 0;
		opacity: 1;
	}
	@media(width>1250px) {
		.menu {
			height: 80px;
		}
	}
}


#mainarea {
	padding: 0 clamp(20px, calc(40/750*100%), 60px);
	@media(width>1250px) {
		max-width: var(--width-max);
		margin: 0 auto;
	}
}


main {
	padding-bottom: 65px;
	@media(width>1250px) {
		padding-bottom: 200px;
	}
	a {
		color: var(--color-pink);
		@media (any-hover:hover) {
			transition: opacity .3s;
			&:hover {
				opacity: .5;
			}
		}
	}
	.mt-0 { margin-top: 0 !important; }	
	.f-en {	font-family: var(--ff-en); }
	.title-1 {
		padding: 35px 0 29px;
		line-height: 1;
		span {
			display: block;
		}
		.en {
			font-size: 50px;
			font-weight: var(--fw-1);
			font-family: var(--ff-en);
		}
		.ja {
			margin-top: 8px;
			padding-left: 1.2em;
			font-size: 12px;
			position: relative;
			&::before {
				content: "";
				display: block;
				width: 8px;
				aspect-ratio: 1/1;
				border-radius: 50%;
				background: var(--color-pink);
				position: absolute;
				top: 3px;
				left: 1px;
			}
		}
		@media(width>1250px) {
			padding: 72px 0 80px;
			.en {
				font-size: 80px;
			}
			.ja {
				margin-top: 11px;
				padding-left: 1.5em;
				font-size: 15px;
				&::before {
					width: 10px;
					top: 3.5px;
					left: 3px;
				}
			}
		}
	}
	.title-2 {
		margin-top: 2em;
		padding-left: .8em;
		font-size: 24px;
		line-height: 1.2;
		position: relative;
		&::before {
			content: "";
			display: block;
			width: 10px;
			height: 10px;
			background: var(--color-pink);
			border-radius: 50%;
			position: absolute;
			top: .4em;
			left: 0;
		}
		@media(width>1250px) {
			padding-left: 1.25em;
		}
	}
	.disc {
		li {
			padding-left: .4em;
			position: relative;
			&::before {
				content: "";
				display: block;
				width: 3px;
				height: 3px;
				border-radius: 50%;
				background: var(--color-black);
				position: absolute;
				top: 13px;
				left: 0;
			}
		}
		@media(width>768px) {
			&::before {
				top: 20px;
			}
		}
	}
	.btn {
		min-height: 48px;
		width: min(100%, 335px);
		margin: 25px auto 0;
		padding: .8em 4em;
		color: var(--color-black);
		border: 1px solid var(--color-black);
		border-radius: 999px;
		box-sizing: border-box;
		font-size: 14px;
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: center;
		text-align: center;
		line-height: 1.2;
		position: relative;
		.f-en {
			padding-block: .8em .7em;
		}
		.btn-arrow {
			width: 20px;
			height: 1px;
			display: block;
			background: var(--color-pink);
			position: absolute;
			bottom: 0;
			top: 0;
			right: 19px;
			margin: auto;
			&::after {
				content: "";
				display: block;
				width: 8.5px;
				height: 8.5px;
				border-right: 1px solid var(--color-pink);
				border-top: 1px solid var(--color-pink);
				box-sizing: border-box;
				rotate: 45deg;
				position: absolute;
				right: 1px;
				top: 0;
				bottom: 0;
				margin: auto;
			}
		}
		@media (any-hover:hover) {
			transition: color .3s, border-color .3s;
			.btn-arrow {
				transition: right .3s;
			}
			&:hover {
				color: var(--color-pink);
				border-color: var(--color-pink);
				opacity: 1;
				.btn-arrow {
					right: 10px;
				}
			}
		}
		@media(width>1250px) {
			width: fit-content;
			min-width: 240px;
		}
	}
	.link-arrow {
		width: fit-content;
		padding-right: 33px;
		display: block;
		color: var(--color-black);
		position: relative;
		.btn-arrow {
			width: 20px;
			height: 1px;
			display: block;
			background: var(--color-pink);
			position: absolute;
			bottom: 0;
			top: 0;
			right: 0;
			margin: auto;
			&::after {
				content: "";
				display: block;
				width: 8.5px;
				height: 8.5px;
				border-right: 1px solid var(--color-pink);
				border-top: 1px solid var(--color-pink);
				box-sizing: border-box;
				rotate: 45deg;
				position: absolute;
				right: 1px;
				top: 0;
				bottom: 0;
				margin: auto;
			}
		}
		@media (any-hover:hover) {
			transition: color .3s;
			.btn-arrow {
				transition: right .3s;
			}
			&:hover {
				opacity: 1;
				color: var(--color-pink);
				.btn-arrow {
					right: -5px;
				}
			}
		}
	}
}

/*レイアウト
.anime {
	transition: opacity .3s .2s, translate .3s .2s;
	opacity: 0;
	translate: 0 80px 0;
	&.active {
		opacity: 1;
		translate: 0;
	}
}
	*/