@charset "UTF-8";

:root{
	--color-primary: #000000;
	--color-primary-rgb: 0,0,0;
	--color-contrast: #fff;
	--color-contrast-rgb: 255,255,255;
	--color-accent: #f782a6;
	--color-accent-rgb: 247,130,166;
	--color-accent2: #c60101;
	--color-accent2-rgb: 198,1,1;
	--color-accent-light: #ffdfe6;
	--color-accent-light-rgb: 255,223,230;
	--gradation-normal: linear-gradient(148deg,
		#bf7460  0%,
		#cc8470  8%,
		#dfa688 16%,
		#f4d0b6 21%,
		#fdeadb 24%,
		#f5ccb4 27%,
		#d8957a 36%,
		#c87d68 47%,
		#d49882 55%,
		#e8b898 61%,
		#f7dfc8 68%,
		#f2d0b8 73%,
		#dba088 80%,
		#c88070 89%,
		#d49070 100%
	);
	--gradation-light: linear-gradient(148deg,
		#d96a4f  0%,
		#e3795e  8%,
		#f39a72 16%,
		#ffc4a0 21%,
		#ffd8bf 24%,
		#ffb996 27%,
		#e07f5c 36%,
		#d4684d 47%,
		#e08663 55%,
		#f2a97a 61%,
		#ffd2ac 68%,
		#ffbe98 73%,
		#e68563 80%,
		#d76552 89%,
		#e3754f 100%
	);
	--gradation-pink: linear-gradient(148deg,
		#f2557f  0%,
		#f5638f  8%,
		#f782a6 16%,
		#fbb7c8 21%,
		#ffd6df 24%,
		#f9a3bb 27%,
		#f06a90 36%,
		#e85682 47%,
		#f0709a 55%,
		#f59ab8 61%,
		#fcc9d9 68%,
		#f8b1c6 73%,
		#ee7a9e 80%,
		#e35f89 89%,
		#f2557f 100%
	);
	--transition-default: all 0.4s ease;
	--ease-spring: linear(0, 0.0107, 0.0398, 0.0834, 0.138, 0.2003, 0.2677, 0.3379, 0.4089, 0.4791, 0.5471, 0.612, 0.6731, 0.7297, 0.7815, 0.8283, 0.87, 0.9068, 0.9388, 0.9662, 0.9892, 1.0083, 1.0237, 1.0357, 1.0449, 1.0514, 1.0556, 1.058, 1.0587, 1.0581, 1.0563, 1.0538, 1.0506, 1.0469, 1.043, 1.0388, 1.0347, 1.0306, 1.0266, 1.0228, 1.0192, 1.0159, 1.0128, 1.0101, 1.0076, 1.0055, 1.0036, 1.002, 1.0006, 0.9995, 0.9986, 0.9979, 0.9974, 0.997, 0.9967, 0.9966, 0.9966, 0.9966, 0.9967, 0.9968, 0.997, 0.9972, 0.9975, 0.9977, 0.998, 0.9982, 0.9984, 0.9987, 0.9989, 0.9991, 0.9992, 0.9994, 0.9996, 0.9997, 0.9998, 0.9999, 1, 1, 1.0001, 1.0001, 1.0002, 1.0002, 1.0002, 1.0002, 1.0002, 1.0002, 1.0002, 1.0002, 1.0002, 1.0002, 1.0001, 1.0001, 1.0001, 1.0001, 1.0001, 1.0001, 1.0001, 1.0001, 1, 1, 1);
}


/* !foundation */
/* --------------------------- */
html,body {
	font-family:'Hiragino Sans','ヒラギノ角ゴシック',YuGothic,'Yu Gothic','メイリオ', Meiryo,'ＭＳ Ｐゴシック','MS PGothic',sans-serif;
	-webkit-font-feature-settings: 'palt' 1;
	font-feature-settings: 'palt' 1;
	-webkit-font-variant-ligatures:none;
	font-variant-ligatures:none;
}
body {
	color: var(--color-contrast);
	background-color: var(--color-accent2);
	overflow-x: hidden;
	position: relative;
	text-align: center;
	width: 100vw;
}
body::before {
	content: "";
	display: block;
	width: 100vw;
	height: 100lvh;
	position: fixed;
	top: 0;
	left: 0;
	background: url('../imgs/body_bg_leopard.png') 0 0 no-repeat;
	background-size: cover;
	z-index: -1;
	pointer-events: none;
}
* {
	box-sizing: border-box;
}
a,
a img {
	color: var(--color-accent2);
	transition: var(--transition-default);
}
a img {
	opacity: 1;
	transform: translate3d(0, 0, 0);
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}
a:visited {
	color: rgba(var(--color-contrast-rgb), .875);
}
a:hover {
	color: var(--color-accent);
	text-decoration: none;	
}
a:hover img {
	opacity: 0.6;
}
a.noborder {
	text-decoration: none;
}
img {
	max-width: 100%;
	height: auto;
	vertical-align: bottom;
}
hr {
	border: 0;
	height: 1px;
	background-image: linear-gradient(90deg, rgba(var(--color-contrast-rgb),0) 0%, rgba(var(--color-contrast-rgb),.5) 50%, rgba(var(--color-contrast-rgb),0) 100%);
	margin: 5rem auto;
	clear: both;
}
.btn,
.btn:visited {
	width: fit-content;
	display: block;
	text-align: center;
	text-decoration: none;
	border: solid 2px var(--color-accent2);
	padding: 0.5em 1.5em;
	color: var(--color-contrast);
	background: var(--color-primary);
	border-radius: 100vmax;
}
.btn:hover {
	background: var(--color-accent2);
	border-color:  var(--color-primary);
	color: var(--color-contrast);
}
label.btn {
	transition: var(--transition-default);
	cursor: pointer;
}
img{
	-webkit-touch-callout:none;
	-webkit-user-select:none;
	-moz-touch-callout:none;
	-moz-user-select:none;
	user-select:none;
}

/* material
--------------------------- */
.clearFloat {
	clear: both;
}
.alignleft {
	float: left;
	margin: 0.375em 1.75em 1.75em 0;
}
.alignright {
	float: right;
	margin: 0.375em 0 1.75em 1.75em;
}
.aligncenter {
	clear: both;
	display: block;
	margin: 0.375em auto;
	text-align: center!important;
}
.sp {
	display: none;
}
.flexCont {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
ul[class],ol[class] {
	list-style: none;
	margin: 0 auto;
	padding: 0;
}
.clearfix:before,
.clearfix:after {
	content: " ";
	display: table;
}
.clearfix:after {
	clear: both;
}
.tate {
	-webkit-font-feature-settings: 'palt' 0;
	font-feature-settings: 'palt' 0;
	-webkit-writing-mode: vertical-rl;
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
}
/* !font */
/* --------------------------- */
.wf-noto-r, body {
	font-family: "Noto Sans JP", serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
}
.wf-roboto-condensed-b {
	font-family: "Roboto Condensed", sans-serif;
	font-optical-sizing: auto;
	font-weight: 700;
	font-style: normal;
}
.kaisei-harunoumi-bold, .contTitle, .crewTitle, .andmore {
	font-family: "Kaisei HarunoUmi", serif;
	font-weight: 700;
	font-style: normal;
}
.txtSdw {
	text-shadow: 0 0 40px rgba(var(--color-accent-rgb),.9),0 0 30px rgba(var(--color-accent-rgb),.9),0 0 20px rgba(var(--color-accent-rgb),.9),0 0 10px rgba(var(--color-accent-rgb),.9);
}
.txtSdwMin {
	text-shadow: 0 0 20px rgba(var(--color-accent-rgb),.9),0 0 15px rgba(var(--color-accent-rgb),.9),0 0 10px rgba(var(--color-accent-rgb),.9),0 0 5px rgba(var(--color-accent-rgb),.9);
}
.capsS {
	font-size: 0.8em;
}
.capsL {
	font-size: 1.5em;
}
.shadow {
	filter: drop-shadow(0 0 20px rgba(var(--color-primary-rgb), .875));
}
/* !layout */
/* --------------------------- */

/* !header */
/* --------------------------- */
.homeHeader {
	display: grid;
	place-items: center;
	width: 100%;
	padding: 30lvh 0;
	margin: 0 0 3rem;
	position: relative;
	
	&::before, &::after {
		content: "";
		display: block;
		width: 100%;
		height: 50lvh;
		background-color: var(--color-primary);
		position: absolute;
		left: 0;
		z-index: 20000;
		transition: scale 1.6s cubic-bezier(1,0,0,1);
	}
	&::before {
		top: 0;
		transform-origin: 0 0;
	}
	&::after {
		bottom: 0;
		transform-origin: left bottom;
	}
	.loaded &::before,
	.loaded &::after {
		scale: 1 0.15;
	}
}
.siteTitle {
	position: relative;
	z-index: 10000;
	margin: 0;
	width: 80vw;
	transition: filter 1.0s ease 0.4s;
	filter: blur(128px);
	
	.sitelogo {
		width: min(100%, 1400px);
	}
	
	.loaded & {
		filter: blur(0);
	}
}
.glow {
	width: 15vw;
	height: 15vw;
	position: absolute;
	top: 50%;
	left: 50%;
	mix-blend-mode: plus-lighter;
	z-index: 11000;
	opacity: 0;
	animation: glowBlink 3.0s infinite 2.0s;
	
	&.glow1 {
		translate: -180% -117%;
	}
	
	&.glow2 {
		translate: -295% 0%;
		animation: glowBlink 2.4s infinite 2.4s;
	}
	
	&.glow3 {
		translate: 185% -55%;
		animation: glowBlink 2.9s infinite 2.9s;
	}
}
@keyframes glowBlink {
	0% {
		opacity: 0;
	}
	20% {
		opacity: 1;
	}
	40% {
		opacity: 0;
	}
}

.headerEntry {
	padding: 0.5em 3em 0.625em;
	color: var(--color-accent2);
	background: linear-gradient(90deg, rgba(var(--color-contrast-rgb), 0) 0%, rgba(var(--color-contrast-rgb), .8) 10%, rgba(var(--color-contrast-rgb), .8) 90%, rgba(var(--color-contrast-rgb), 0) 100%);
	position: absolute;
	left: 50%;
	bottom: 12.5lvh;
	opacity: 0;
	transform: skewX(0deg) translateX(-10%);
	translate: -50% 0;
	transition: transform 0.4s ease 1.6s, opacity 0.4s ease 1.6s;
	
	font-size: 2em;
	line-height: 1;
	font-weight: 900;
	
	dt {
		margin: 0 0 0.5em;
	}
	dd {
		margin: 0;
		font-size: 1.5em;
		white-space: nowrap;
	}
	
	.loaded & {
		opacity: 1;
		transform: skewX(-10deg) translateX(0);
	}
}

.scroll {
	width: 1px;
	height: 4.5lvh;
	position: absolute;
	left: 50%;
	bottom: 1lvh;
	z-index: 22000;
	overflow: hidden;
	
	span {
		position: absolute;
		top: -100%;
		left: 0;
		width: 100%;
		height: 100%;
		background-color: var(--color-contrast);
		animation: scrollLine 2.0s infinite 3.0s;
	}
}
@keyframes scrollLine {
	0% {
		top: -100%;
	}
	50% {
		top: 100%;
	}
	100% {
		top: 100%;
	}
}

/* !content */
/* --------------------------- */
main {
	position: relative;
}
.content {
	width: min(960px, 90vw);
	margin: 8rem auto;
	padding: 4.5rem 1.5rem;
	position: relative;
	background-color: rgba(var(--color-primary-rgb), .6);
	box-shadow: 1rem 1rem 0 0 rgba(var(--color-primary-rgb), .25);
	backdrop-filter: blur(4px);
	border-radius: 1.5rem;
}
.contTitle {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.25em;
	margin: 0 auto 5rem;
	font-size: 4em;
	line-height: 1;
	font-weight: 900;
	padding: 0.125rem 0 0.25rem;
	position: relative;
	color: transparent;
	background: var(--gradation-normal);
	background-clip: text;
	transform: skewX(-7.5deg);
	filter: drop-shadow(3px 3px 0 rgba(var(--color-primary-rgb), .75));
	
	&::before, &::after {
		content: "";
		display: block;
		width: 2em;
		height: 4px;
		background: var(--gradation-normal);
		background-size: 200% auto;
		border-radius: 2px;
	}
	
	.kerning {
		letter-spacing: -0.15em;
		
		.kerning {
			letter-spacing: -0.3em;
		}
	}
	
	.capsS {
		white-space: nowrap;
		font-size: 0.666em;
	}
}
.contCatch {
	font-size: 2em;
	line-height: 1.5;
	font-weight: 700;
	margin: 0 auto 1em;
}
.contTxt {
	font-size: 1em;
	line-height: 1.75;
	text-align: left;
	margin: 0 0 1em;
}
.centering {
	width: fit-content;
	margin-inline: auto;
}

.introTxt {
	font-size: 2.5em;
	line-height: 1.625;
	font-weight: 900;
	color: var(--color-contrast);
	margin: 0 auto 0.875em;
	transform: skewX(-10deg);
	text-shadow: 0.1em 0.1em 0 rgba(0,0,0,.5);
}

.entrySchedule {
	font-size: 3em;
	line-height: 1.375;
	font-weight: 900;
	margin: 0 auto 1em;
	transform: skewX(-10deg);
}

.content.msg {
	padding-bottom: 0;
}
.msgWrap {
	display: grid;
	grid-template-columns: 420px 1fr;
	align-items: end;
	
	.msg & .btnModal {
		position: absolute;
		left: 12.5%;
		bottom: 1em;
	}
	
	.curator & {
		align-items: center;
	}
}
.msgBody {
	padding-bottom: 2em;
	
	.curator & {
		padding-bottom: 0;
	}
}
.msgBody p {
	font-size: 1em;
	line-height: 1.5;
	font-weight: 700;
	text-align: left;
	margin: 0 0 0.75em -3em;
	
	.curator & {
		line-height: 1.75;
		margin-left: 0;
		padding: 0 1em;
	}
}

.btnModal {
	display: inline-block;
	font-size: 1.5em;
	font-weight: 900;
	margin-top: 0.5em;
	padding: 0.25em 0.75em 0.375em;
	background: var(--color-primary);
	border: solid 2px var(--color-accent2);
	color: var(--color-accent2);
	cursor: pointer;
	pointer-events: auto;
	transition: all ease 0.4s;
	border-radius: 100vmax;
}
.btnModal:hover {
	background: var(--color-accent2);
	color: var(--color-primary);
}
.checkModal {
	display: none;
}
.modalBg {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100lvh;
	background: rgba(var(--color-primary-rgb),0);
	z-index: 100;
	pointer-events: none;
	transition: background 0.2s ease;
}
.checkModal:checked ~ .modalBg {
	background: rgba(var(--color-primary-rgb),.7);
	pointer-events: auto;
	transition: background 0.4s ease;
}
.modalWrap {
	position: fixed;
	top: 50%;
	left: 50%;
	z-index: 200;
	translate: -50% -40%;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.2s ease 0;
	transition-behavior: allow-discrete;
	border: solid 2px var(--color-accent2);
	width: min(800px, 90vw);
	max-height: 95svh;
	padding: 1.5rem;
	background: var(--color-primary);
	display: none;
	transform: translateY(1rem);
}
.checkModal:checked ~ .modalWrap {
	pointer-events: auto;
	transition: opacity 0.4s ease 0.4s, transform 0.4s ease 0.4s;
	opacity: 1;
	transform: translateY(0);
	translate: -50% -50%;
	display: block;
	
	@starting-style {
		opacity: 0;
		transform: translateY(1rem);
	}
}
.modalBody {
	width: 100%;
	max-height: calc( 95svh - 10rem );
	overflow-x: hidden;
	overflow-y: auto;
	padding: 1rem 0;
	color: var(--color-contrast);
}
.modalClose {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 1.4em;
	height: 1.4em;
	font-size: 2rem;
	background: var(--color-accent2);
	color: var(--color-primary);
	cursor: pointer;
	position: absolute;
	top: 0;
	right: 0;
}
.modalTitle {
	font-size: 2em;
	line-height: 1.375;
	margin: 0 auto 0.5em;
}
.modalBody .contTitle {
	font-size: 2.75em;
	margin: 0 auto 0.5em;
}
.faqItem {
	margin: 0 auto;
	font-size: 1em;
	line-height: 1.666;
	text-align: left;
	letter-spacing: 0.05em;
	
	dt, dd {
		display: grid;
		grid-template-columns: 2.5em 1fr;
		gap: 0.5em;
		align-items: start;
	}
	dt {
		margin: 0 0 1em;
		opacity: 0.8;
		align-items: center;
	}
	dd {
		font-weight: 700;
		margin: 0;
		
		&:not(:last-of-type) {
			margin-bottom: 1em;
			padding-bottom: 1em;
			border-bottom: solid 1px rgba(var(--color-contrast-rgb), .5);
		}
	}
	span {
		font-size: 2em;
		font-weight: 900;
		line-height: 1;
		text-align: right;
	}
}

.cs {
	font-size: 2em;
	font-weight: 900;
	padding: 2em 0;
}
.andmore {
	font-size: 4em;
	font-weight: 900;
	padding: 1em 0;
	transform: skewX(-7.5deg);
}

.crewTitle {
	font-size: 2em;
	letter-spacing: 0.05em;
	text-indent: 0.05em;
	margin: 0 auto 1em;
	transform: skewX(-10deg);
}
.crewMemberWrap {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 4.5rem;
	margin: 0 auto 4.5rem;
	max-width: 90%;
}
.crewMember {
	margin: 0;
	
	img {
		width: 100%;
	}
	
	figcaption {
		margin: 0.375em 0 0;
		font-size: 2.5em;
		line-height: 1;
		font-weight: 700;
	}
}

ul.qualsList {
	width: fit-content;
	font-size: 1.625em;
	line-height: 1.5;
	font-weight: 900;
	margin: 0 auto 1.5em;
	color: var(--color-accent2);
	display: grid;
	gap: 0.75em;
	
	li {
		background-color: var(--color-contrast);
		transform: skewX(-7.5deg);
		padding: 0.5em 1em 0.625em;
		box-shadow: 8px 8px 0 rgba(var(--color-primary-rgb), .5);
	}
	
	.qlNotice {
		font-size: 0.5em;
		display: block;
		font-weight: 700;
	}
}

.selectionCont {
	width: fit-content;
	max-width: 100%;
	margin-inline: auto;
	
	.flowTitle {
		margin-top: 1.5em;
	}
}
.flowWrap {
	width: fit-content;
	max-width: 100%;
	margin-inline: auto;
	display: grid;
	gap: 2rem;
}
.flowCont {
	box-shadow: 0 0 0 8px rgba(var(--color-accent-rgb), .333);
	background-color: var(--color-contrast);
	color: var(--color-primary);
	padding: 1.5rem 1.5rem 1.5rem;
	position: relative;
	
	&:not(:last-of-type)::after {
		content: "";
		display: block;
		width: 5rem;
		height: 2rem;
		background-color: var(--color-accent2);
		clip-path: polygon(50% 100%, 0% 0%, 100% 0%);
		position: absolute;
		top: 100%;
		left: 50%;
		z-index: 10;
		translate: -50% calc(50% - 16px);
	}
}
.flowTitle {
	color: var(--color-contrast);
	background: linear-gradient(90deg, rgba(var(--color-accent2-rgb),0) 0%, rgba(var(--color-accent2-rgb),1) 15%, rgba(var(--color-accent2-rgb),1) 85%, rgba(var(--color-accent2-rgb),0) 100% );
	font-size: 1.625em;
	font-weight: 900;
	margin: 0 auto 0.75em;
	padding: 0.375em 0.5em 0.4375em;
	text-shadow: 2px 2px 0 rgba(var(--color-primary-rgb), .25);
}
.flowTxt {
	font-size: 1.125em;
	line-height: 1.5;
	font-weight: 500;
	margin: 0 auto;
	
	&:has(+ *) {
		margin-bottom: 1em;
	}
}
ul.notesList {
	width: fit-content;
	max-width: 90%;
	font-size: 0.875em;
	line-height: 1.5;
	text-align: left;
	
	li {
		text-indent: -1em;
		padding-left: 1em;
		margin-bottom: 0.375em;
		
		&::before {
			content: "※";
		}
	}
}

.termsCont {
	width: min(800px, 90%);
	margin: 3rem auto 3rem;
}
.termsTitle {
	font-size: 1.5em;
	font-weight: 900;
	background-color: #f0f0f0;
	color: var(--color-primary);
	padding: 0.5em;
	margin: 0;
	border-radius: 1.5rem 1.5rem 0 0;
	border-bottom: solid 1px var(--color-primary);
}
.termsBody {
	width: 100%;
	max-height: 15rem;
	overflow-y: auto;
	background-color: var(--color-contrast);
	color: var(--color-primary);
	padding: 1.5em 2em;
	margin: 0 auto 1rem;
	font-size: 0.8125em;
	line-height: 1.5;
	text-align: justify;
	border-radius: 0 0 1.5rem 1.5rem;
	
	p,ul,ol {
		margin: 0 0 0.75em;
		
		ul, ol {
			margin-top: 0.375em;
			padding-left: 1.5em;
		}
		ol {
			list-style-type: upper-roman;
		}
	}
	li {
		margin-bottom: 0.5em;
	}
	a {
		color: var(--color-accent2);
	}
}
.termsCheckWrap {
	position: relative;
}
.tooltip {
	position: absolute;
	bottom: calc(100% + 10px);
	left: 50%;
	transform: translateX(-50%);
	background: var(--color-primary);
	color: var(--color-contrast);
	font-size: 12px;
	line-height: 1.5;
	white-space: nowrap;
	padding: 7px 12px;
	border-radius: 6px;
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.15s;
	z-index: 100;
}
.tooltip::after {
	content: '';
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	border: 5px solid transparent;
	border-top-color: var(--color-primary);
}
.tooltip.show { opacity: 1; }
.termsCheck {
	display: block;
	width: fit-content;
	font-size: 1.25em;
	line-height: 1;
	font-weight: 700;
	margin: 0 auto;
	padding: 0.625em 1.5em 0.75em;
	border: solid 2px var(--color-contrast);
	border-radius: 100vmax;
	cursor: pointer;
	transition: border-color 0.3s ease, color 0.3s ease;
	
	&:not(:has(:disabled)):hover, &:has(:checked) {
		border-color: var(--color-accent2);
		color: var(--color-accent2);
	}
	
	&:has(:disabled) {
		opacity: 0.5;
	}
}

.btnEntry {
	display: inline-block;
	font-size: 1.5em;
	font-weight: 900;
	margin-top: 0.5em;
	padding: 0.375em 1.25em 0.4375em;
	background: var(--color-primary);
	border: solid 2px var(--color-accent2);
	color: var(--color-accent2);
	cursor: pointer;
	pointer-events: auto;
	transition: all ease 0.4s;
	border-radius: 100vmax;
	
	&:not(:disabled):hover {
		background: var(--color-accent2);
		color: var(--color-primary);
	}
	&:disabled {
		opacity: 0.5;
		cursor: default;
	}
	
	&.btnBack {
		background-color: rgba(var(--color-primary-rgb), .5);
		border-color: rgba(var(--color-contrast-rgb), .5);
		color: rgba(var(--color-contrast-rgb), .5);
		
		&:hover {
			background-color: rgba(var(--color-primary-rgb), 1);
			border-color: rgba(var(--color-contrast-rgb), 1);
			color: rgba(var(--color-contrast-rgb), 1);
		}
	}
}

.profileTxt {
	width: min(40em, 90%);
	font-size: 1em;
	line-height: 1.875;
	text-align: left;
	font-weight: 500;
	letter-spacing: 0.15em;
	margin: 0 auto 1em;
}

/* !footer */
/* --------------------------- */
.gFooter {
	font-family:'Hiragino Sans','ヒラギノ角ゴシック',YuGothic,'Yu Gothic','メイリオ', Meiryo,'ＭＳ Ｐゴシック','MS PGothic',sans-serif;
	background: var(--color-primary);
	color: var(--color-contrast);
	padding: 1.5em;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	position: relative;
	z-index: 100;
	gap: 1.5rem;
}
.copyright {
	font-size: 1em;
	margin: 0;
	font-weight: bold;
	display: flex;
	justify-content: center;
	align-items: center;
	white-space: nowrap;
}
.copyright .capsL {
	font-size: 1.3125em;
}

/* !animation */
/* --------------------------- */
/* .invisible {
	opacity: 0;
}
.visible {
	transition: opacity 0.8s ease;
	opacity: 1;
} */

.lowerHeader {
	margin: 0 auto;
	background: var(--color-primary);
	padding: 1rem;
}
.formWrap {
	margin: 0 auto 1.5rem;
	width: min(640px, 90%);
}
.formGrid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
}
.formTel {
	display: grid;
	grid-template-columns: repeat(5, auto);
	align-items: center;
	gap: 0.5em;
}
.formItem {
	padding: 1em;
	border-bottom: solid 1px rgba(var(--color-contrast-rgb), .5);
}
.formLabel {
	margin: 0 0 0.5em;
	font-size: 1.125em;
	line-height: 1;
	display: block;
	text-align: left;
	font-weight: bold;
	
	&:has(.required) {
		display: flex;
		justify-content: flex-start;
		align-items: center;
		gap: 0.5em;
	}
	
	.required {
		font-size: 0.75em;
		line-height: 1;
		background-color: var(--color-accent2);
		color: var(--color-contrast);
		display: block;
		padding: 0.25em 0.5em 0.3125em;
		border-radius: 1.5em;
	}
}
.formBody {
	position: relative;
	text-align: left;
	
	input, textarea, select {
		width: 100%;
		font-size: 1.125em;
		padding: 0.75em;
		border: none;
		outline: none;
		border-radius: 0.375em;
		transition: box-shadow 1s var(--ease-spring);
		
		&:focus {
			box-shadow: 0 0 0 4px var(--color-accent2);
			background-color: rgba(var(--color-contrast-rgb), 1);
		}
	}
	*:invalid, input:placeholder-shown {
		background-color: rgba(var(--color-contrast-rgb), .5);
		
		&:focus {
			background-color: rgba(var(--color-contrast-rgb), 1);
		}
	}
	*:valid {
		background-color: rgba(var(--color-contrast-rgb), 1);
	}
	input[type=date], input[type=number], input[type=checkbox] {
		width: auto;
	}
	input.p-postal-code {
		width: 10em;
	}
	textarea {
		height: 8em;
	}
	*::placeholder {
		color: rgba(var(--color-contrast-rgb), .75);
	}
	.count {
		position: absolute;
		right: 8px;
		bottom: 8px;
		font-size: 0.75em;
		color: rgba(var(--color-primary-rgb), .5);
	}
	p {
		line-height: 1.5;
	}
}
.formBodyParts {
	margin-bottom: 1em;
	
	label {
		display: block;
		margin-bottom: 0.5em;
	}
	input {
		color: var(--color-primary);
	}
}
.sourceDownload {
	margin: 1em 0 1.5em;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 1rem;
	
	dt, dd {
		margin: 0;
		align-content: center;
	}
}
.formSubmit {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 1.5rem;
	margin-top: 1.5rem;
}
.confirmItem {
	display: grid;
	grid-template-columns: 12em 1fr;
	
	.formLabel {
		font-weight: 400;
		line-height: 1.375;
		color: rgba(var(--color-contrast-rgb), .6);
	}
	.formValue {
		text-align: left;
		font-size: 1.25em;
		line-height: 1.375;
		
		p {
			margin: 0 0 0.5em;
		}
	}
}
.notice {
	font-size: 0.875em;
	line-height: 1.5;
	text-align: left;
	
	li {
		margin-bottom: 0.5em;
		text-indent: -1em;
		padding-left: 1em;
		
		&::before {
			content: "※";
		}
	}
}

/* !sp */
/* --------------------------- */
@media screen and (max-width:768px) {
	/* !sp common */
	/* --------------------------- */
	.floatLeft,
	.floatRight,
	.alignleft,
	.alignright {
		display: block;
		text-align: center;
		float: none;
		margin: 16px auto;
	}
	.nosp {
		display: none;
	}
	.sp {
		display: block;
	}
	.flexCont {
		display: block;
	}
	/* !sp layout */
	/* --------------------------- */
	html {
		font-size: clamp(12px, 3.5vw, 16px);
	}
	body::before {
		z-index: -1;
	}
	body::after {
		z-index: -10;
	}
	main {
		max-width: 100vw;
		overflow-x: hidden;
	}
	/* !sp header */
	/* --------------------------- */
	.homeHeader {
		
		.loaded &::before,
		.loaded &::after {
			scale: 1 0.25;
		}
	}
	.siteTitle {
		width: 90vw;
	}
	.glow {
		width: 16.875vw;
		height: 16.875vw;
	}
	.headerEntry {
		font-size: 1em;
		bottom: 15lvh;
	}
	.content {
		padding: 3rem 1rem;
		box-shadow: 0.625rem 0.625rem 0 0 rgba(var(--color-primary-rgb), .25);
	}
	.contTitle {
		font-size: 1.875em;
		margin-bottom: 1em;
		filter: drop-shadow(1px 1px 0 rgba(var(--color-primary-rgb), .75));
		
		&::before, &::after {
			width: 1.25em;
			height: 2px;
		}
	}
	.contCatch {
		font-size: 1.5em;
	}
	.introTxt {
		font-size: 1.25em;
		line-height: 1.5;
		transform: skewX(-5deg);
	}
	.btnModal {
		font-size: 1.25em;
	}
	.msgWrap {
		display: flex;
		flex-direction: column-reverse;
		
		.msg & .btnModal,.curator & .btnModal {
			position: absolute;
			left: 50%;
			bottom: 1.5rem;
			transform: translateX(-50%);
		}
	}
	.msgBody {
		padding: 0 0.5em;
	}
	.msgBody p {
		font-size: 0.875em;
		margin-left: 0;
		
		.curator & {
			padding: 0;
		}
	}
	.entrySchedule {
		font-size: 1.75em;
	}
	.crewTitle {
		font-size: 1.5em;
	}
	.crewMemberWrap {
		max-width: 95%;
		gap: 1.5rem;
		margin: 0 auto 3rem;
	}
	.crewMember figcaption {
		font-size: 1.75em;
	}
	ul.qualsList {
		font-size: 1.375em;
		line-height: 1.375;
		
		li {
			box-shadow: 4px 4px 0 rgba(var(--color-primary-rgb), .5);
		}
		.qlNotice {
			margin-top: 0.5em;
		}
	}
	.modalBody .contTitle {
		font-size: 1.5em;
	}
	.faqItem {
		font-size: 0.875em;
	}
	.flowWrap {
		max-width: 90%;
	}
	.flowTitle {
		font-size: 1.5em;
	}
	.flowTxt {
		font-size: 1em;
	}
	.termsCheck {
		font-size: 1.125em;
	}
	.profileTxt {
		font-size: 0.875em;
		letter-spacing: 0.1em;
	}
	.formGrid {
		grid-template-columns: 1fr;
	}
	.formItem {
		padding: 1em 0.5em;
	}
	.formLabel {
		font-size: 0.9375em;
	}
	.formBody {
		input, textarea, select {
			font-size: 16px;
		}
	}
	.confirmItem {
		grid-template-columns: 1fr;
	}
	.sourceDownload {
		grid-template-columns: 1fr;
		gap: 0.5rem;
		
		dd {
			margin-bottom: 0.75em;
		}
	}
}
@media print {
	body { display: none }
}