/* ==========================================================================
   Fantasia of Blades – isolated from the rest of the theme
   ========================================================================== */

@font-face {
	font-family: "C3 Kaisei";
	src: url("../../fonts/kaisei-opti-700-subset.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "C3 Display";
	src: url("../../fonts/orbitron-700-subset.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: Orbitron;
	src: url("../../fonts/orbitron-600-subset.woff2") format("woff2");
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: Orbitron;
	src: url("../../fonts/orbitron-700-subset.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: Orbitron;
	src: url("../../fonts/orbitron-900-subset.woff2") format("woff2");
	font-weight: 900;
	font-style: normal;
	font-display: swap;
}

html.c3-intro-lock,
body.c3-modal-open,
body.c3-intro-pending {
	overflow: hidden;
}

body.concert-3rd-page {
	background: #000;
	color: #fff;
}

body.concert-3rd-page .ambient-page-bg,
body.concert-3rd-page .request-drawer,
body.concert-3rd-page .cyber-menu,
body.concert-3rd-page .site-header {
	display: none !important;
}

body.concert-3rd-page .site,
body.concert-3rd-page .site-main,
body.concert-3rd-page.has-ambient-bg .site-main {
	min-height: 0;
	padding: 0 !important;
	background: #000;
}

body.concert-3rd-page .site-footer {
	display: none !important;
}

.c3-legal {
	min-height: 100vh;
	padding: 4rem 1.5rem;
	background: #000;
	color: #fff;
}

.c3-legal__inner {
	display: flex;
	flex-direction: column;
	gap: 2.5rem;
	width: min(56rem, 100%);
	margin-inline: auto;
}

.c3-legal__head {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.c3-legal h1 {
	margin: 0;
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: 0.12em;
}

.c3-legal__head p,
.c3-legal section p,
.c3-legal li {
	margin: 0;
	color: rgba(255, 255, 255, 0.8);
	font-size: 0.875rem;
	line-height: 1.75;
}

.c3-legal__head p {
	color: rgba(255, 255, 255, 0.7);
}

.c3-legal section {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.c3-legal h2 {
	margin: 0;
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.1em;
}

.c3-legal ul {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin: 0;
	padding-left: 1.25rem;
	list-style: disc;
}

.c3-legal__back {
	margin: 1.5rem 0 0;
}

.c3-legal__back a {
	color: rgba(255, 255, 255, 0.8);
	font-size: 0.875rem;
	font-weight: 700;
	text-decoration: none;
}

.c3-legal__back a:hover,
.c3-legal__back a:focus-visible {
	color: #fff;
}

.c3 {
	--c3-pink: #dd659e;
	--c3-muted: rgba(255, 255, 255, 0.72);
	position: relative;
	overflow: hidden;
	color: #fff;
	font-family: "Noto Sans JP", sans-serif;
}

.c3 h2,
.c3-intro__copy,
.c3-details__tag,
.c3-tickets__lead,
.c3-tickets__line,
.c3-faq h2,
.c3-members h2,
.c3-about h2,
.c3-goods h2 {
	font-family: "C3 Kaisei", "Noto Sans JP", serif;
	font-weight: 700;
}

.c3-br-sp {
	display: none;
}

.c3-wrap {
	width: min(1152px, calc(100% - 3rem));
	margin-inline: auto;
}

/* Intro */
.c3-intro {
	position: fixed;
	inset: 0;
	z-index: 1100;
	padding: 1rem;
	background: #000;
	text-align: center;
	opacity: 0;
	pointer-events: auto;
}

.c3-intro.is-done {
	opacity: 0;
	pointer-events: none;
}

.c3-intro__bg,
.c3-intro__dim {
	position: absolute;
	inset: 0;
}

.c3-intro__bg {
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	opacity: 0;
}

.c3-intro__dim {
	background: rgba(0, 0, 0, 0.75);
}

.c3-intro__copy {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 1;
	width: min(48rem, 100%);
	margin: 0;
	font-family: "C3 Kaisei", "Noto Sans JP", serif;
	font-size: 1rem;
	font-weight: 600;
	line-height: 2;
	letter-spacing: 0.2em;
	color: rgba(255, 255, 255, 0.9);
	opacity: 0;
	transform: translate(-50%, -50%);
}

.c3-intro__skip {
	position: fixed;
	right: 1.5rem;
	bottom: 1.5rem;
	z-index: 1110;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.5rem 1rem;
	border: 1px solid rgba(255, 255, 255, 0.4);
	border-radius: 999px;
	background: rgba(0, 0, 0, 0.35);
	color: rgba(255, 255, 255, 0.9);
	font-size: 10px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	backdrop-filter: blur(4px);
	cursor: pointer;
}

.c3-intro__skip:hover,
.c3-intro__skip:focus-visible {
	border-color: rgba(255, 255, 255, 0.7);
	background: rgba(0, 0, 0, 0.5);
}

.c3-intro.is-done ~ .c3-intro__skip,
.c3-intro[hidden] ~ .c3-intro__skip {
	display: none;
}

.c3-hero__bg {
	opacity: 0;
}

.c3-hero__content {
	opacity: 0;
	transition: opacity 0.3s ease;
}

.c3.is-intro-done .c3-hero__content {
	opacity: 1;
}

.c3-hero__emblem-wrap {
	position: relative;
	display: inline-flex;
	flex: 0 0 auto;
	height: 3.5rem;
}

.c3-hero__emblem-color {
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;
	pointer-events: none;
}

.c3-hero__emblem-color img {
	display: block;
	height: 3.5rem;
	width: auto;
}

.c3-hero__flash {
	display: none;
	width: 100%;
	margin-top: 1.5rem;
	pointer-events: none;
}

.c3-hero__flash-bar {
	position: relative;
	width: 60vw;
	height: 4px;
	margin: 0 auto;
	opacity: 0;
}

.c3-hero__flash-bar::before,
.c3-hero__flash-bar::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 999px;
}

.c3-hero__flash-bar::before {
	background: linear-gradient(to right, transparent, rgba(251, 207, 232, 0.9), transparent);
}

.c3-hero__flash-bar::after {
	background: linear-gradient(to right, transparent, rgba(232, 121, 249, 0.4), transparent);
	filter: blur(24px);
}

/* Hero */
.c3-hero {
	position: relative;
	min-height: 100svh;
	overflow: visible;
	background: #000;
}

.c3-hero__bg,
.c3-hero__bg img,
.c3-hero__shade {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.c3-hero__bg {
	height: 110vh;
	overflow: hidden;
}

.c3-hero__bg img {
	object-fit: cover;
	object-position: top center;
}

.c3-hero__shade {
	background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.2) 50%, #000 100%);
}

.c3-hero__content {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: min(72rem, 100%);
	min-height: 100svh;
	margin: 0 auto;
	padding: 0 1.5rem;
	text-align: center;
}

.c3-hero__title {
	flex-shrink: 0;
	margin: 45vh 0 0;
}

.c3-hero__title img {
	display: block;
	width: auto;
	max-width: none;
	height: 10rem;
	min-height: 10rem;
}

.c3-hero__meta {
	display: flex;
	flex-shrink: 0;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	margin-top: -0.5rem;
	color: rgba(255, 255, 255, 0.86);
	font-size: 1rem;
	line-height: 1.15;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.c3-hero__badge {
	padding: 0.28rem 1rem;
	border: 1px solid rgba(255, 255, 255, 0.45);
	border-radius: 999px;
	background: rgba(0, 0, 0, 0.45);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	backdrop-filter: blur(8px);
}

.c3-hero__rule {
	width: 1px;
	height: 1rem;
	background: rgba(255, 255, 255, 0.3);
}

.c3-hero__date,
.c3-hero__org {
	font-size: 1rem;
	font-weight: 700;
}

.c3-hero__date strong {
	font-size: 1.25rem;
}

.c3-hero__emblem,
.c3-hero__emblem-color img {
	display: block;
	height: 3.5rem;
	min-height: 3.5rem;
	max-height: 3.5rem;
	width: auto;
	max-width: none;
}

.c3-hero__emblem {
	opacity: 0.85;
}

.c3-hero__nav {
	display: grid;
	flex-shrink: 0;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 0.75rem;
	width: min(100%, 64rem);
	margin-top: 0.85rem;
}

.c3-hero__nav a {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0.5rem;
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 16px;
	background: rgba(33, 35, 34, 0.78);
	color: #fff;
	font-family: Orbitron, sans-serif;
	font-size: clamp(11.2px, 1.68vw, 22.4px);
	font-weight: 700;
	font-style: normal;
	font-synthesis: none;
	font-optical-sizing: auto;
	line-height: 1.5;
	letter-spacing: 0;
	text-align: center;
	text-decoration: none;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	transition-property: all;
	transition-duration: 0.3s;
	transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

.c3-hero__nav a span {
	font-family: inherit;
	font-weight: inherit;
	letter-spacing: 0;
	line-height: inherit;
}

.c3-hero__nav a::before,
.c3-hero__nav a::after {
	content: "";
	position: absolute;
	inset: -2.5rem;
	pointer-events: none;
}

.c3-hero__nav a::before {
	background: linear-gradient(120deg, rgba(255, 255, 255, 0.28), rgba(255, 255, 255, 0) 40%, rgba(255, 255, 255, 0.1) 60%, rgba(255, 255, 255, 0));
	opacity: 0.7;
	transform: rotate(8deg);
}

.c3-hero__nav a::after {
	background: url("../../images/common/noise_alpha.png");
	opacity: 0.2;
	mix-blend-mode: overlay;
}

.c3-hero__nav a > * {
	position: relative;
	z-index: 1;
}

.c3-hero__nav a:hover,
.c3-hero__nav a:focus-visible {
	z-index: 2;
	color: #fff;
	text-decoration: none;
	background: rgba(33, 35, 34, 0.78);
	scale: 1.2;
}

.c3-hero__nav a:hover span,
.c3-hero__nav a:focus-visible span {
	text-decoration: none;
	text-shadow: 0 0 1px rgba(255, 255, 255, 0.95), 0 0 6px rgba(255, 255, 255, 0.9);
}

.c3-hero__qa {
	clip-path: polygon(0% 0%, 63% 0%, 100% 50%, 63% 100%, 0% 100%);
}

.c3-hero__nav a.c3-hero__ticket {
	display: flex;
	align-items: center;
	gap: 0.25rem;
	background: rgba(255, 255, 255, 0.92);
	color: #dd659e;
	font-family: "Noto Sans JP", sans-serif;
	font-size: clamp(11.2px, 1.68vw, 22.4px);
	font-weight: 700;
}

.c3-hero__nav a.c3-hero__ticket:hover,
.c3-hero__nav a.c3-hero__ticket:focus-visible {
	scale: 1;
	background: rgba(255, 255, 255, 0.9);
	color: #dd659e;
	text-decoration: none;
	opacity: 1;
}

.c3-hero__nav a.c3-hero__ticket:hover span,
.c3-hero__nav a.c3-hero__ticket:focus-visible span {
	text-shadow: none;
}

.c3-hero__ticket img {
	height: clamp(14px, 2.8vw, 28px);
	min-height: 0;
	max-height: 28px;
	width: auto;
	max-width: none;
}

.c3-hero__ticket span {
	font-family: "Noto Sans JP", sans-serif;
	font-size: clamp(8px, 1.2vw, 16px);
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: 0;
	white-space: nowrap;
}

/* Partners */
.c3-partners {
	display: grid;
	gap: 2rem;
	width: min(72rem, 100%);
	margin: 2.5rem auto 1rem;
	padding-inline: 1.5rem;
}

.c3-partners__label {
	margin: 0;
	text-align: center;
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	color: rgba(255, 255, 255, 0.6);
	text-transform: uppercase;
}

.c3-partners__list {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
	margin: 1rem 0 0;
	padding: 0;
	list-style: none;
}

.c3-partners__list--thirds {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.c3-partners__tail {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.5rem;
}

.c3-partners__group--support {
	grid-column: span 2;
}

.c3-partners__group--support .c3-partners__list {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.c3-logo {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	overflow: hidden;
	padding: 0.5rem;
	border: 1px solid rgba(255, 255, 255, 0.5);
	border-radius: 6px;
	background: rgba(255, 255, 255, 0.85);
	backdrop-filter: blur(12px);
	color: rgba(20, 20, 20, 0.85);
	text-decoration: none;
	cursor: pointer;
}

.c3-logo__media {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	transition: transform 0.24s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.c3-logo img {
	width: auto;
	height: 2.5rem;
	max-width: 100%;
	filter: none;
	object-fit: contain;
}

.c3-logo__name {
	position: absolute;
	right: 0.75rem;
	bottom: 0.625rem;
	left: 0.75rem;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1.3;
	text-align: center;
	pointer-events: none;
	opacity: 0;
	transform: translateY(10px);
	transition: opacity 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.c3-logo:hover .c3-logo__media,
.c3-logo:focus-visible .c3-logo__media {
	transform: translateY(-40px);
	transition-duration: 0.28s;
}

.c3-logo:hover .c3-logo__name,
.c3-logo:focus-visible .c3-logo__name {
	opacity: 1;
	transform: translateY(0);
	transition-duration: 0.24s;
}

/* Concept copy and details share the original sword field */
.c3-stage {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background: #000;
}

.c3-stage__swords {
	position: absolute;
	right: -4%;
	bottom: -6%;
	z-index: 0;
	width: min(62vw, 760px);
	height: auto;
	object-fit: contain;
	object-position: right center;
	opacity: 0.5;
	pointer-events: none;
	user-select: none;
}

.c3-copy {
	position: relative;
	z-index: 1;
	padding: 4.5rem 1.5rem 3.5rem;
}

.c3-copy__inner {
	position: relative;
	z-index: 1;
	width: min(72rem, 100%);
	margin: 0 auto;
	text-align: center;
}

.c3-copy__kicker,
.c3-copy__line {
	margin: 0;
	font-family: "C3 Kaisei", "Noto Sans JP", serif;
	font-weight: 700;
	color: #fff;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35), 0 4px 8px rgba(0, 0, 0, 0.45);
}

.c3-copy__kicker {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	margin-bottom: 1.75rem;
	font-size: clamp(1.25rem, 2.4vw, 2.25rem);
}

.c3-copy__kicker span:last-child,
.c3-copy__mark {
	color: #f97316;
}

.c3-copy__mark {
	display: inline-flex;
	width: 2.25rem;
	height: 2.25rem;
}

.c3-copy__mark svg {
	width: 100%;
	height: 100%;
}

.c3-copy__line {
	font-size: clamp(1.35rem, 3.4vw, 3rem);
	line-height: 1.45;
	transform: rotate(-3deg);
}

/* Details */
.c3-details {
	position: relative;
	z-index: 1;
	width: min(72rem, calc(100% - 3rem));
	margin: 0 auto;
	padding: 0 0 2rem;
}

.c3-details__grid {
	display: grid;
	gap: 2.5rem;
}

.c3-details__lead {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: left;
}

.c3-setlist {
	text-align: center;
}

.c3-details__org {
	margin: 0 0 0.5rem;
	font-size: 1.5rem;
	font-weight: 600;
	letter-spacing: 0.24em;
	color: rgba(255, 255, 255, 0.9);
}

.c3-details__title {
	display: block;
	width: auto;
	max-width: 100%;
	height: 12rem;
	margin: 0 auto;
	object-fit: contain;
}

.c3-details__tag {
	margin: 1rem 0 0;
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	color: rgba(255, 255, 255, 0.7);
}

.c3-details__facts {
	margin-top: 2rem;
	font-weight: 600;
	line-height: 1.7;
	text-align: left;
}

.c3-details__indent {
	display: inline-block;
	padding-left: 7.6em;
}

.c3-details__facts p {
	margin: 0 0 0.35rem;
}

.c3-details__date {
	font-size: 1.5rem;
	font-weight: 400;
	letter-spacing: 0.2em;
}

.c3-details__date strong {
	font-size: 2.25rem;
	font-weight: 700;
}

.c3-details__facts > p:not(.c3-details__date):not(.c3-details__sub) {
	font-size: 1rem;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.8);
}

.c3-details__sub,
.c3-details__facts span {
	color: rgba(255, 255, 255, 0.6);
	font-size: 0.75rem;
	font-weight: 400;
}

.c3-details__ended {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 240px;
	height: 52px;
	margin: 2rem auto 0;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 999px;
	background: rgba(0, 0, 0, 0.35);
	color: #fff;
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	backdrop-filter: blur(6px);
}

.c3-setlist {
	text-align: center;
}

.c3-setlist h2 {
	margin: 0 0 1rem;
	font-family: "C3 Kaisei", "Noto Serif JP", serif;
	font-size: 1.875rem;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.3;
}

.c3-setlist__group {
	margin-bottom: 1rem;
}

.c3-setlist__anime,
.c3-setlist__song--lead {
	margin: 0;
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1.35;
}

.c3-setlist__song {
	margin: 0.15rem 0 0;
	font-size: 11px;
	line-height: 1.35;
	font-weight: 700;
}

.c3-setlist__song span {
	margin-left: 0.5rem;
	color: rgba(255, 255, 255, 0.7);
	font-size: 9px;
	font-weight: 400;
}

.c3-setlist__more {
	margin: 1.5rem 0 0.35rem;
	font-size: 0.875rem;
	font-weight: 700;
}

.c3-setlist__note {
	margin: 0;
	color: rgba(255, 255, 255, 0.6);
	font-size: 8px;
	font-weight: 400;
}

/* Goods */
.c3-goods {
	width: min(1152px, calc(100% - 3rem));
	margin: 2rem auto 5rem;
	padding: 2rem 0 2.5rem;
}

[data-c3-reveal] {
	opacity: 0;
	transition: opacity 0.8s cubic-bezier(0.215, 0.61, 0.355, 1);
}

[data-c3-reveal].is-in {
	opacity: 1;
}

.c3-goods__grid {
	display: grid;
	gap: 2.5rem;
	align-items: center;
	justify-items: center;
}

.c3-goods__copy {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	justify-self: stretch;
	width: 100%;
	text-align: left;
}

.c3-goods h2,
.c3-about h2,
.c3-members h2,
.c3-faq h2 {
	margin: 0 0 1rem;
	font-size: clamp(1.5rem, 3vw, 2.2rem);
	line-height: 1.5;
	letter-spacing: 0.06em;
}

.c3-goods__copy p {
	line-height: 1.85;
	color: rgba(255, 255, 255, 0.84);
}

.c3-goods em {
	color: var(--c3-pink);
	font-style: normal;
}

.c3-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-top: 1.5rem;
	padding: 0.75rem 1.5rem;
	border-radius: 12px;
	background: #f08a24;
	color: #fff;
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-decoration: none;
}

.c3-btn svg {
	flex: 0 0 auto;
}

.c3-btn:hover,
.c3-btn:focus-visible {
	background: #de7b1f;
	color: #fff;
}

.c3-goods__cards,
.c3-members__grid {
	display: grid;
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.c3-goods__cards {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.5rem 2.25rem;
	width: min(100%, 32rem);
	justify-self: center;
	align-content: center;
	overflow: visible;
}

.c3-goods__cards a,
.c3-goods__cards li {
	color: inherit;
	text-align: center;
	text-decoration: none;
}

.c3-goods__cards a {
	display: flex;
	flex-direction: column;
	align-items: center;
	transition: opacity 0.2s ease;
}

.c3-goods__cards a:hover,
.c3-goods__cards a:focus-visible {
	opacity: 0.85;
	color: inherit;
	text-decoration: none;
}

.c3-goods__cards > li > img,
.c3-goods__cards a > img {
	display: block;
	width: 110px;
	height: 110px;
	margin: 0 auto;
	object-fit: cover;
	border-radius: 999px;
	background: #111;
}

.c3-goods__cards p {
	margin: 0.75rem 0 0;
	font-weight: 700;
	font-size: 0.875rem;
}

.c3-goods__cards span {
	margin-top: 0.25rem;
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.75rem;
}

.c3-goods__fan {
	position: relative;
	display: block;
	width: 110px;
	height: 110px;
	margin: 0 auto;
	overflow: visible;
}

.c3-goods__fan img {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 82px;
	height: 82px;
	margin: 0;
	object-fit: cover;
	border-radius: 999px;
	box-shadow: 0 0 0 2px #000;
	transform: translate(-50%, calc(-50% - 8px)) rotate(calc((var(--i) - 1.5) * 24deg)) translateX(calc((var(--i) - 1.5) * 38px));
	z-index: calc(var(--i) + 1);
}

/* About */
.c3-about {
	position: relative;
	z-index: 1;
	margin-bottom: 5rem;
	padding: 3rem 0 4rem;
	overflow: hidden;
	background: #000;
}

.c3-about__art {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	opacity: 0.3;
	pointer-events: none;
	user-select: none;
}

.c3-about::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(to bottom, #000, transparent, #000);
	pointer-events: none;
}

.c3-about__inner {
	position: relative;
	z-index: 2;
	width: min(72rem, calc(100% - 3rem));
	margin: 0 auto;
	padding-top: 0;
	text-align: center;
}

.c3-about h2 {
	margin: 0 0 2rem;
	font-size: 1.5rem;
	line-height: 1.45;
	letter-spacing: 0.1em;
}

.c3-about h2 br {
	display: none;
}

.c3-about ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.c3-about li {
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;
	margin: 0 0 1.5rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.3);
	text-align: left;
}

.c3-sword {
	position: relative;
	flex: 0 0 2rem;
	width: 2rem;
	height: 2rem;
	margin: 0.5rem 0 0 0.5rem;
	color: #fff;
	transform: rotate(225deg);
}

.c3-sword svg {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 24px;
	height: 24px;
	transform: translate(-50%, -50%) rotate(45deg);
}

.c3-sword svg.is-orange {
	color: #fb923c;
	transform: translate(-50%, -50%) rotate(135deg);
}

.c3-about li p {
	margin: 0.5rem 0 0 1rem;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.75;
}

/* Members */
.c3-members {
	margin-bottom: 4rem;
}

.c3-members h2 {
	margin: 2rem 0;
	font-size: 1.875rem;
	letter-spacing: 0;
	text-align: center;
	text-transform: uppercase;
}

.c3-members__sub {
	display: flex;
	justify-content: center;
	margin: 1rem 0 0.75rem;
	font-family: "C3 Kaisei", serif;
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: 0;
	text-align: center;
	text-transform: uppercase;
}

.c3-members__grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.c3-members button,
.c3-members__cta {
	position: relative;
	display: block;
	width: 100%;
	height: 11rem;
	overflow: visible;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.1);
	background: transparent;
	color: inherit;
	text-align: left;
	text-decoration: none;
	cursor: pointer;
	transition: transform 0.2s ease;
}

.c3-members button:hover,
.c3-members button:focus-visible,
.c3-members__cta:hover,
.c3-members__cta:focus-visible {
	z-index: 2;
	color: #fff;
	text-decoration: none;
	transform: scale(1.05);
}

.c3-members__media {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	background: transparent;
}

.c3-members__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-height: none;
	object-fit: cover;
	object-position: top center;
}

.c3-members__media::after,
.c3-members__cta::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.05) 45%, rgba(0, 0, 0, 0.9));
	pointer-events: none;
}

.c3-members__cta {
	background:
		var(--c3-cta) center / cover no-repeat;
}

.c3-members__copy,
.c3-members__cta-label {
	position: absolute;
	inset: 0;
	z-index: 3;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-end;
	gap: 0.5rem;
	padding: 1rem;
	color: #fff;
	pointer-events: none;
}

.c3-members__name,
.c3-members__cta-label {
	font-size: 1rem;
	font-weight: 600;
	text-shadow: 0 2px 8px rgba(0, 0, 0, 0.85);
}

.c3-members__cta-label {
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
}

.c3-members__cta-label svg {
	flex: 0 0 auto;
	transform: rotate(45deg);
}

.c3-members__role {
	display: flex;
	align-items: center;
	gap: 0.25rem;
	color: rgba(255, 255, 255, 0.85);
	font-size: 10px;
	font-weight: 400;
	letter-spacing: 0;
	text-shadow: 0 2px 8px rgba(0, 0, 0, 0.8);
}

.c3-members__role svg {
	flex: 0 0 auto;
}

.c3-members__cta--mobile {
	height: 11rem;
	margin-bottom: 1rem;
}

.c3-members__cta-item {
	display: none;
}

.c3-corners {
	position: absolute;
	inset: 0;
	z-index: 4;
	pointer-events: none;
}

.c3-corners__mark {
	position: absolute;
	display: inline-flex;
	color: rgba(255, 255, 255, 0.45);
}

.c3-corners__mark > span {
	position: relative;
	display: block;
	width: 18px;
	height: 18px;
}

.c3-corners__mark svg {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%) rotate(45deg);
}

.c3-corners__mark svg:last-child {
	transform: translate(-50%, -50%) rotate(-45deg);
}

.c3-corners__mark.is-tl { top: -4px; left: -4px; }
.c3-corners__mark.is-tr { top: -4px; right: -4px; }
.c3-corners__mark.is-bl { bottom: -4px; left: -4px; }
.c3-corners__mark.is-br { right: -4px; bottom: -4px; }
.c3-corners__mark.is-tl > span { transform: rotate(90deg); }
.c3-corners__mark.is-tr > span { transform: rotate(180deg); }
.c3-corners__mark.is-br > span { transform: rotate(-90deg); }

.c3-corners--modal .c3-corners__mark > span {
	width: 24px;
	height: 24px;
}

.c3-corners--modal .c3-corners__mark.is-tl { top: -8px; left: -8px; }
.c3-corners--modal .c3-corners__mark.is-tr { top: -8px; right: -8px; }
.c3-corners--modal .c3-corners__mark.is-bl { bottom: -8px; left: -8px; }
.c3-corners--modal .c3-corners__mark.is-br { right: -8px; bottom: -8px; }

/* YouTube, between members and the closing copy */
.c3-video {
	position: relative;
	z-index: 2;
	width: min(56rem, calc(100% - 2rem));
	margin: 4rem auto 0;
	padding-bottom: 2.5rem;
}

.c3-video__frame {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 0.75rem;
	background: rgba(0, 0, 0, 0.8);
}

.c3-video__frame iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

@media (min-width: 768px) {
	.c3-video {
		width: min(56rem, calc(100% - 6rem));
		padding-bottom: 3rem;
	}
}

/* Tickets */
.c3-tickets {
	position: relative;
	overflow: hidden;
	padding: 6rem 1.25rem 5rem;
	text-align: center;
}

.c3-tickets__swords {
	position: absolute;
	top: -2rem;
	left: -4rem;
	width: min(280px, 60vw);
	opacity: 0.55;
	transform: rotate(-40deg);
	pointer-events: none;
}

.c3-tickets__lead,
.c3-tickets__line {
	position: relative;
	margin: 0;
	font-size: clamp(1.2rem, 2.5vw, 1.6rem);
	letter-spacing: 0.08em;
	line-height: 1.8;
}

.c3-tickets__note {
	position: relative;
	margin: 0.75rem 0 1.25rem;
	color: var(--c3-muted);
	letter-spacing: 0.12em;
}

/* Cosplay / doll / exhibition links */
.c3-links {
	position: relative;
	z-index: 1;
	padding-top: 1.5rem;
}

.c3-links__item {
	display: flex;
	justify-content: center;
	width: min(72rem, calc(100% - 3rem));
	margin: 0 auto 4rem;
	padding: 0 0.25rem;
}

.c3-links a,
.c3-links button {
	font-family: "C3 Kaisei", "Noto Sans JP", serif;
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.45;
	color: #fff;
	text-align: center;
	background: none;
	border: 0;
	cursor: pointer;
	transition: color 0.2s ease;
}

.c3-links a:hover,
.c3-links a:focus-visible,
.c3-links button:hover,
.c3-links button:focus-visible {
	color: rgba(255, 255, 255, 0.85);
}

.c3-links__cosplay,
.c3-links__gallery {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	text-decoration: none;
}

.c3-links__doll,
.c3-links__gallery {
	flex-direction: column;
	gap: 0.5rem;
}

.c3-links__hanger {
	flex: 0 0 auto;
	color: #dd659e;
}

.c3-links__lines,
.c3-links__doll {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.c3-links .is-pink {
	color: #dd659e;
}

.c3-links .is-blush {
	color: #f0bfd3;
}

.c3-links .is-line {
	text-decoration: underline;
	text-decoration-thickness: 0.4px;
	text-underline-offset: 4px;
}

.c3-links__gallery img {
	display: block;
	width: 240px;
	height: auto;
	padding: 0.5rem;
	border-radius: 0.75rem;
	background: #fff;
}

@media (min-width: 768px) {
	.c3-links a,
	.c3-links button {
		font-size: 1.5rem;
	}

	.c3-links__gallery img {
		width: 302px;
	}
}

/* Detail sheets opened from the link section */
.c3-sheet {
	position: fixed;
	inset: 0;
	z-index: 1300;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0.75rem;
}

.c3-sheet[hidden] {
	display: none;
}

.c3-sheet__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.5);
	backdrop-filter: blur(32px);
}

.c3-sheet__panel {
	position: relative;
	z-index: 1;
	width: 100%;
	max-height: 94vh;
	overflow: auto;
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 0.375rem;
	background: rgba(0, 0, 0, 0.5);
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.6);
	backdrop-filter: blur(32px);
}

.c3-sheet__panel--doll {
	max-width: 72rem;
}

.c3-sheet__panel--gallery {
	max-width: 56rem;
	max-height: 90vh;
	border-color: rgba(255, 255, 255, 0.2);
	background: rgba(10, 10, 10, 0.92);
	backdrop-filter: blur(24px);
}

.c3-sheet .c3-modal__close {
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	z-index: 3;
}

.c3-sheet__panel--gallery .c3-corners {
	display: none;
}

.c3-doll__hero {
	position: relative;
}

.c3-doll__hero > img {
	display: block;
	width: 100%;
	height: auto;
}

.c3-doll__hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.3);
}

.c3-doll__hero-copy,
.c3-doll__hero-note {
	position: absolute;
	z-index: 1;
	left: 0;
	right: 0;
}

.c3-doll__hero-copy {
	top: 12%;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.85rem;
	padding: 0 1.25rem;
	text-align: center;
}

.c3-doll__logo {
	display: none;
	width: min(260px, 70%);
	height: auto;
}

.c3-doll__hero-copy h2,
.c3-doll__sub,
.c3-doll__ways h3,
.c3-doll__notes h3 {
	margin: 0;
	font-family: "C3 Kaisei", "Noto Sans JP", serif;
	font-weight: 700;
}

.c3-doll__hero-copy h2 {
	font-size: clamp(1.7rem, 4vw, 3rem);
	line-height: 1.25;
}

.c3-doll__sub {
	font-size: clamp(1.15rem, 2.4vw, 1.85rem);
	font-weight: 500;
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.92);
}

.c3-doll__hero-note {
	display: none;
	bottom: 0;
	justify-content: center;
	padding: 7rem 1.5rem 2rem;
	background: linear-gradient(to top, #000, rgba(0, 0, 0, 0.72) 45%, transparent);
	text-align: center;
}

.c3-doll__hero-note p,
.c3-doll__booth p {
	margin: 0;
	font-family: "C3 Kaisei", "Noto Sans JP", serif;
	font-weight: 600;
	line-height: 2;
	color: rgba(255, 255, 255, 0.76);
}

.c3-doll__hero-note--sp {
	position: static;
	display: block;
	padding: 2.5rem 1.5rem;
	background: none;
	text-align: center;
}

.c3-doll__hero-note--sp p + p,
.c3-doll__booth p + p {
	margin-top: 1.25rem;
}

.c3-doll__ways,
.c3-doll__booth,
.c3-doll__notes {
	padding: 2rem 1.5rem 2.5rem;
	text-align: center;
}

.c3-doll__ways h3 {
	font-size: clamp(1.6rem, 3vw, 2.25rem);
	line-height: 1.45;
}

.c3-doll__cards {
	display: grid;
	gap: 1rem;
	margin-top: 1.75rem;
}

.c3-doll__cards article {
	padding: 1.1rem 1rem;
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 1rem;
}

.c3-doll__cards h4 {
	margin: 0 0 0.45rem;
	font-size: 1rem;
}

.c3-doll__cards p,
.c3-doll__notes span,
.c3-doll__notes li {
	color: rgba(255, 255, 255, 0.78);
	line-height: 1.8;
}

.c3-doll__cards p {
	margin: 0;
	font-size: 0.92rem;
}

.c3-doll__booth figure {
	margin: 1.5rem 0 0;
}

.c3-doll__booth img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 0.75rem;
}

.c3-doll__booth figcaption {
	margin-top: 0.6rem;
	font-size: 0.8rem;
	color: rgba(255, 255, 255, 0.62);
}

.c3-doll__notes ul {
	max-width: 46rem;
	margin: 1.4rem auto 0;
	padding: 0;
	list-style: none;
	text-align: left;
}

.c3-doll__notes li {
	padding: 0.85rem 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.c3-doll__notes strong {
	display: block;
	margin-bottom: 0.25rem;
	color: #fff;
}

.c3-doll__rules {
	margin-top: 1.5rem !important;
}

.c3-doll__rules li {
	padding-left: 1rem;
}

.c3-doll__rules li::before {
	content: "・";
}

.c3-gallery {
	display: grid;
}

.c3-gallery__photo {
	min-height: 18rem;
	background: #000;
}

.c3-gallery__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.c3-gallery__body {
	padding: 1.5rem 1.25rem 2rem;
}

.c3-gallery__body h2 {
	margin: 0.75rem 0 0;
	font-family: "C3 Kaisei", "Noto Sans JP", serif;
	font-size: 1.5rem;
	line-height: 1.35;
}

.c3-gallery__copy {
	display: grid;
	gap: 1rem;
	margin-top: 1.5rem;
}

.c3-gallery__copy p {
	margin: 0;
	font-size: 0.875rem;
	line-height: 1.75;
	color: rgba(255, 255, 255, 0.8);
}

.c3-gallery__body a {
	display: inline-flex;
	margin-top: 2rem;
	padding: 0.5rem 1.25rem;
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: 999px;
	color: #fff;
	font-size: 0.875rem;
	letter-spacing: 0.08em;
	text-decoration: none;
}

.c3-gallery__body a:hover,
.c3-gallery__body a:focus-visible {
	border-color: rgba(255, 255, 255, 0.55);
	background: rgba(255, 255, 255, 0.08);
}

@media (min-width: 501px) {
	.c3-doll__hero::after {
		display: none;
	}

	.c3-doll__logo {
		display: block;
	}
}

@media (min-width: 768px) {
	.c3-sheet {
		padding: 1.5rem;
	}

	.c3-doll__logo {
		width: min(340px, 42%);
	}

	.c3-doll__cards {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.c3-sheet__panel--gallery .c3-corners {
		display: block;
	}

	.c3-gallery {
		grid-template-columns: 1.05fr 0.95fr;
		min-height: 28rem;
	}

	.c3-gallery__body {
		padding: 2rem;
	}

	.c3-gallery__body h2 {
		font-size: 1.875rem;
	}
}

@media (min-width: 813px) {
	.c3-doll__hero-note {
		display: flex;
	}

	.c3-doll__hero-note--sp {
		display: none;
	}

	.c3-doll__booth {
		display: grid;
		grid-template-columns: 1.1fr 0.9fr;
		gap: 1.5rem;
		align-items: center;
		text-align: left;
	}

	.c3-doll__booth figure {
		margin: 0;
	}
}

/* Fog sits at the bottom of the whole page, same as the original BottomImage. */
.c3-page-fog {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
}

.c3-page-fog__art {
	position: absolute;
	inset-inline: 0;
	bottom: 0;
}

.c3-page-fog__art img {
	display: block;
	width: 112%;
	max-width: none;
	height: auto;
	margin-left: -6%;
	transform-origin: bottom center;
}

.c3-page-fog__art::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom, #000 0%, rgba(0, 0, 0, 0.85) 25%, rgba(0, 0, 0, 0.7) 48%, rgba(0, 0, 0, 0.5) 62%, rgba(0, 0, 0, 0.3) 75%, rgba(0, 0, 0, 0.15) 88%, transparent 100%);
}

.c3-page-fog__glow {
	position: absolute;
	border-radius: 999px;
}

.c3-page-fog__glow--center {
	bottom: 6rem;
	left: 50%;
	width: 15rem;
	height: 15rem;
	background: rgba(56, 189, 248, 0.45);
	filter: blur(130px);
	transform: translateX(-50%);
}

.c3-page-fog__glow--side {
	right: 10%;
	bottom: 10rem;
	width: 13rem;
	height: 13rem;
	background: rgba(59, 130, 246, 0.35);
	filter: blur(120px);
}

.c3-hero,
.c3-stage,
.c3-copy,
.c3-details,
.c3-goods,
.c3-about,
.c3-members,
.c3-video,
.c3-tickets,
.c3-bottom {
	position: relative;
	z-index: 1;
}

.c3-bottom {
	padding-bottom: 0.5rem;
}

/* FAQ */
.c3-faq {
	padding: 4rem 0 0;
}

.c3-faq .c3-wrap {
	width: min(72rem, 100%);
	padding-inline: 1.5rem;
}

.c3-faq h2,
.c3-faq__lead {
	text-align: center;
}

.c3-faq h2 {
	margin: 0 0 1rem;
	font-size: 1.5rem;
	letter-spacing: 0.16em;
	line-height: 1.4;
}

.c3-faq__lead {
	margin: 0 0 2rem;
	max-width: none;
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.875rem;
	font-weight: 400;
	letter-spacing: 0.08em;
	line-height: 1.6;
}

.c3-faq__cols {
	display: flex;
	gap: 1.5rem;
	overflow-x: auto;
	padding-bottom: 1rem;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.c3-faq__cols::-webkit-scrollbar {
	display: none;
}

.c3-faq__group {
	display: flex;
	flex: 0 0 50vw;
	flex-direction: column;
	min-width: 200px;
	margin: 0 auto;
	scroll-snap-align: start;
	background: transparent;
}

.c3-faq h3 {
	margin: 0 0 1rem;
	padding-inline: 0.5rem;
	color: rgba(255, 255, 255, 0.8);
	font-size: 1.125rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-align: center;
}

.c3-faq__group ul {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 0.75rem;
	margin: 0;
	padding: 1rem;
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 1rem;
	list-style: none;
	background: transparent;
}

.c3-faq__group button {
	display: -webkit-box;
	width: 100%;
	padding: 0;
	overflow: hidden;
	border: 0;
	background: transparent;
	color: #fff;
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1.625;
	text-align: left;
	cursor: pointer;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.c3-faq__group button:hover,
.c3-faq__group button:focus-visible {
	color: rgba(255, 255, 255, 0.8);
}

.c3-foot {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
	width: min(1152px, calc(100% - 3rem));
	margin: 0 auto;
	padding: 1rem 0 1.5rem;
	color: rgba(255, 255, 255, 0.6);
	font-size: 0.75rem;
}

.c3-foot p {
	margin: 0;
}

.c3-foot__meta {
	display: flex;
	flex-direction: column-reverse;
	align-items: center;
	gap: 0.75rem;
}

.c3-foot nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
}

.c3-foot a {
	color: rgba(255, 255, 255, 0.7);
	text-decoration: none;
}

.c3-foot a:hover,
.c3-foot a:focus-visible {
	color: #fff;
}

.c3-foot__home {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.5rem 1rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.3);
	color: #fff;
	font-size: 0.72rem;
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
}

.c3-foot__home:hover,
.c3-foot__home:focus-visible {
	background: rgba(255, 255, 255, 0.4);
	color: #fff;
}

.c3-foot__sns {
	display: flex;
	align-items: center;
	gap: 0.35rem;
}

.c3-foot__sns a {
	display: inline-flex;
	padding: 0.45rem;
	color: rgba(255, 255, 255, 0.7);
}

/* Modal */
.c3-modal {
	position: fixed;
	inset: 0;
	z-index: 1300;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
}

.c3-modal[hidden] {
	display: none;
}

.c3-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.8);
	backdrop-filter: blur(4px);
}

.c3-modal__dialog {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	width: min(42rem, 100%);
	max-height: 90vh;
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, 0.2);
	background: rgba(0, 0, 0, 0.9);
}

.c3-modal__photo {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: #111;
}

.c3-modal__photo img {
	display: block;
	width: 100%;
	height: 100%;
	max-height: none;
	object-fit: cover;
	object-position: top center;
	border-radius: 0;
}

.c3-modal__photo img[hidden] {
	display: none;
}

.c3-modal__shade {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.4), transparent);
}

.c3-modal__close {
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	z-index: 5;
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	padding: 0.5rem 0.75rem;
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 999px;
	background: rgba(0, 0, 0, 0.5);
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	cursor: pointer;
}

.c3-modal__close:hover,
.c3-modal__close:focus-visible {
	border-color: rgba(255, 255, 255, 0.4);
	background: rgba(0, 0, 0, 0.7);
	color: #fff;
}

.c3-modal__x {
	position: relative;
	width: 1rem;
	height: 1rem;
	transform: rotate(225deg);
}

.c3-modal__x svg {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%) rotate(45deg);
}

.c3-modal__x svg:last-child {
	transform: translate(-50%, -50%) rotate(135deg);
}

.c3-modal__body {
	position: relative;
	flex: 1;
	overflow: visible;
	padding: 1.5rem 1.5rem 2rem;
}

.c3-modal__role {
	margin: 0 0 0.5rem;
	color: rgba(255, 255, 255, 0.9);
	font-size: 1.125rem;
	letter-spacing: 0.2em;
	text-shadow: 0 2px 8px rgba(0, 0, 0, 0.75);
}

.c3-modal h2 {
	margin: 0;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.875rem;
	font-weight: 700;
	letter-spacing: 0;
	text-shadow: 0 2px 8px rgba(0, 0, 0, 0.8);
}

.c3-modal__bio-wrap {
	max-height: 10rem;
	margin-top: 1rem;
	overflow: auto;
	padding-right: 0.5rem;
}

.c3-modal__bio {
	margin: 0;
	color: rgba(255, 255, 255, 0.9);
	font-size: 0.875rem;
	line-height: 1.625;
	white-space: pre-line;
	text-shadow: 0 2px 4px rgba(0, 0, 0, 0.7);
}

.c3-modal__cat {
	margin: 0 0 0.5rem;
	font-size: 0.75rem;
	letter-spacing: 0.2em;
	color: rgba(255, 255, 255, 0.7);
}

.c3-modal[data-kind="faq"] .c3-modal__photo,
.c3-modal[data-kind="faq"] .c3-modal__role,
.c3-modal[data-kind="faq"] .c3-corners {
	display: none;
}

.c3-modal[data-kind="faq"] .c3-modal__bio::before {
	content: "A.";
	display: block;
	margin-bottom: 0.5rem;
	font-weight: 700;
	color: #fff;
}

@media (min-width: 768px) {
	.c3-modal[data-kind="member"] .c3-modal__dialog {
		display: block;
	}

	.c3-modal[data-kind="member"] .c3-modal__body {
		position: absolute;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 2;
		max-height: 20rem;
		padding-bottom: 1.5rem;
	}

	.c3-modal[data-kind="member"] .c3-modal__bio-wrap {
		max-height: 8rem;
	}

	.c3-modal[data-kind="member"] .c3-modal__shade {
		background: linear-gradient(to top, #000, transparent);
		top: auto;
		height: 50%;
	}
}

@media (min-width: 768px) {
	.c3-hero__bg {
		height: 100%;
	}

	.c3-hero__title {
		margin-top: 50vh;
	}

	.c3-hero__title img {
		height: 13rem;
		min-height: 13rem;
	}

	.c3-details__grid {
		grid-template-columns: 1.1fr 0.9fr;
		align-items: start;
	}

	.c3-copy {
		padding: 3rem 1.5rem 2.5rem;
	}

	.c3-stage__swords {
		width: min(54vw, 680px);
		opacity: 0.46;
	}

	.c3-details__grid {
		align-items: center;
		gap: 2rem;
	}

	.c3-details__lead {
		text-align: left;
	}

	.c3-details__facts > p:not(.c3-details__date):not(.c3-details__sub) {
		font-size: 1.125rem;
	}

	.c3-details__date {
		font-size: 1.875rem;
	}

	.c3-about__art {
		width: 100%;
		height: auto;
		object-fit: contain;
		opacity: 0.4;
	}

	.c3-about h2 {
		font-size: 2.25rem;
	}

	.c3-about h2 br {
		display: block;
	}

	.c3-about li {
		margin-left: 7.5rem;
	}

	.c3-setlist {
		text-align: center;
	}


	.c3-goods {
		margin-top: 3rem;
		padding-top: 2.5rem;
		padding-bottom: 3rem;
	}

	.c3-goods__cards > li > img,
	.c3-goods__cards a > img,
	.c3-goods__fan {
		width: 140px;
		height: 140px;
	}

	.c3-goods__fan img {
		width: 100px;
		height: 100px;
	}

	.c3-hero__nav {
		gap: 1rem;
	}

	.c3-hero__title,
	.c3-hero__meta,
	.c3-hero__nav a {
		opacity: 0;
	}

	.c3-hero__flash {
		display: block;
	}

	.c3-intro__copy {
		font-size: 1.125rem;
		text-shadow: 0 1px 4px rgba(255, 255, 255, 0.55), 0 3px 9px rgba(255, 255, 255, 0.45), 0 6px 14px rgba(255, 255, 255, 0.35);
	}

	.c3-faq h2 {
		font-size: 1.875rem;
	}

	.c3-faq__group {
		flex-basis: 34vw;
		width: 34vw;
	}

	.c3-partners {
		grid-template-columns: repeat(8, minmax(0, 1fr));
		align-items: start;
	}

	.c3-partners > .c3-partners__group {
		grid-column: span 3;
	}

	.c3-partners__tail {
		grid-column: span 2;
		grid-template-columns: 1fr 1fr;
	}

	.c3-partners__group--support,
	.c3-partners__group--host {
		grid-column: auto;
	}

	.c3-partners__group--support .c3-partners__list {
		grid-template-columns: 1fr;
	}

	.c3-foot {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
	}

	.c3-foot p {
		text-align: left;
	}

	.c3-foot__meta {
		flex-direction: row;
		align-items: center;
		gap: 1rem;
	}

	.c3-foot__home br {
		display: none;
	}
}

@media (min-width: 1024px) {
	.c3-members__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.c3-members__cta--mobile,
	.c3-members__sub {
		display: none;
	}

	.c3-members__cta-item {
		display: block;
	}

	.c3-about__inner {
		text-align: left;
	}

	.c3-about li p {
		font-size: 1.125rem;
	}

	.c3-goods__grid {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
		align-items: center;
		justify-items: center;
	}

	.c3-goods__copy {
		justify-self: start;
	}

	.c3-faq__cols {
		overflow: visible;
	}

	.c3-faq__group {
		flex: 1 1 0;
		width: auto;
		min-width: 0;
	}
}

@media (min-width: 1536px) {
	.c3-hero__title {
		margin-top: 60vh;
	}
}

@media (max-width: 767px) {
	.c3-br-sp {
		display: inline;
	}

	.c3-hero__meta {
		margin-top: 0.75rem;
	}

	.c3-hero__title img {
		width: 80vw;
		height: auto;
	}

	.c3-hero__meta {
		flex-direction: column;
		gap: 0.7rem;
		margin-top: 0.75rem;
	}

	.c3-hero__rule,
	.c3-hero__emblem {
		display: none;
	}

	.c3-hero__nav {
		display: none;
	}


	.c3-details__org,
	.c3-details__title,
	.c3-details__tag {
		display: none;
	}

	.c3-copy__mark {
		width: 0.85rem;
		height: 0.85rem;
	}

	.c3-details__title {
		height: auto;
		width: min(100%, 280px);
	}

}

@media (prefers-reduced-motion: reduce) {
	.c3-intro,
	.c3-hero__nav a,
	.c3-logo__media,
	.c3-logo__name {
		transition: none;
	}

	.c3-logo:hover .c3-logo__media,
	.c3-logo:focus-visible .c3-logo__media {
		transform: none;
	}

	[data-c3-reveal] {
		opacity: 1;
		transition: none;
	}
}
