/*---------------------------------------------
  HEADER
---------------------------------------------*/

header.top_header {
	box-shadow: 0 3px 6px rgba(0,0,0,0);
}

/* ============================================
   Loading Screen
   ============================================ */
   .loading-screen {
   	position: fixed;
   	top: 0;
   	left: 0;
   	width: 100%;
   	height: 100%;
   	background: var(--color-bg);
   	display: flex;
   	align-items: center;
   	justify-content: center;
   	z-index: 10000;
   	transition: opacity 0.8s ease, visibility 0.8s ease;
   }

   .loading-screen.hidden {
   	opacity: 0;
   	visibility: hidden;
   }

   .loading-content {
   	text-align: center;
   }

   .loading-logo {
   	font-family: var(--font-display);
   	font-size: clamp(1.1rem, 5vw, 2rem);
   	font-weight: 900;
   	letter-spacing: clamp(1px, 0.5vw, 4px);
   	background: var(--gradient-main);
   	background-size: 200% 200%;
   	-webkit-background-clip: text;
   	-webkit-text-fill-color: transparent;
   	background-clip: text;
   	animation: gradientShift 3s ease infinite;
   	margin-bottom: var(--spacing-md);
   	white-space: nowrap;
   	padding: 0 16px;
   }

   .loading-bar {
   	width: 200px;
   	height: 2px;
   	background: rgba(255, 255, 255, 0.1);
   	border-radius: var(--radius-full);
   	overflow: hidden;
   	margin: 0 auto;
   }

   .loading-progress {
   	width: 0%;
   	height: 100%;
   	background: var(--gradient-accent);
   	border-radius: var(--radius-full);
   	animation: loadingProgress 2s ease-in-out forwards;
   }

   @keyframes loadingProgress {
   	0% { width: 0%; }
   	50% { width: 70%; }
   	100% { width: 100%; }
   }

   @keyframes gradientShift {
   	0%, 100% { background-position: 0% 50%; }
   	50% { background-position: 100% 50%; }
   }


/* ============================================
   Solid Black Background
   ============================================ */
   .solid-black-bg {
   	position: fixed;
   	top: 0;
   	left: 0;
   	width: 100%;
   	height: 100%;
   	z-index: 1;
   	background: #000000;
   	pointer-events: none;
   }

/* ============================================
   Hero Background - Static Image
   ============================================ */
   .hero-background {
   	position: fixed;
   	top: 0;
   	left: 0;
   	width: 100%;
   	height: 100%;
   	z-index: 1;
   	pointer-events: none;
   	overflow: hidden;
   }

   .hero-bg-image {
   	width: 100%;
   	height: 100%;
   	object-fit: cover;
   	object-position: center;
   }

   .hero-bg-overlay {
   	position: absolute;
   	top: 0;
   	left: 0;
   	width: 100%;
   	height: 100%;
   	background: 
   	radial-gradient(ellipse at center, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%),
   	linear-gradient(to bottom, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.2) 30%, rgba(0,0,0,0.2) 70%, rgba(0,0,0,0.6) 100%);
   	pointer-events: none;
   }


/* ============================================
   Container
   ============================================ */
   .container {
   	position: relative;
   	z-index: 2;
   	max-width: 100%;
   	margin: 0 auto;
   	padding-left: 0;
   	padding-right: 0;
   }

/* ============================================
   Hero Section
   ============================================ */
   .hero {
   	position: relative;
   	min-height: 100vh;
   	display: flex;
   	align-items: center;
   	justify-content: center;
   	overflow: hidden;
   	padding: 60px 20px;
   }

   .hero-content {
   	position: relative;
   	z-index: 2;
   	text-align: center;
   	max-width: 1200px;
   	width: 100%;
   	padding: 0 20px;
   }

	/* Project Name */
	.project-name {
		font-family: var(--font-display);
		font-size: clamp(1.5rem, 4.5vw, 3.5rem);
		font-weight: 900;
		letter-spacing: clamp(2px, 0.5vw, 4px);
		margin-bottom: var(--spacing-md);
		background: var(--gradient-main);
		background-size: 200% 200%;
		-webkit-background-clip: text;
		-webkit-text-fill-color: transparent;
		background-clip: text;
		text-transform: uppercase;
		animation: gradientShift 5s ease infinite;
		filter: drop-shadow(0 0 30px rgba(0, 212, 255, 0.4));
		white-space: nowrap;
	}

	/* PC: スパンは横並び */
	.project-name span {
		display: inline;
	}

	.project-name .name-tokyo::after,
	.project-name .name-starlight::after {
		content: ' ';
	}

	/* Tagline */
	.tagline {
		font-size: clamp(1.3rem, 4vw, 2rem);
		font-weight: 700;
		margin-bottom: var(--spacing-md);
		line-height: 1.4;
		color: var(--color-text);
		text-shadow: 0 4px 20px rgba(0, 212, 255, 0.3);
	}

	/* Accent Line */
	.accent-line {
		width: 80px;
		height: 3px;
		background: var(--gradient-accent);
		margin: var(--spacing-md) auto;
		border-radius: 2px;
	}

	/* Subtitle - メイン強調テキスト */
	.subtitle-main {
		font-size: clamp(1.1rem, 2.5vw, 1.4rem);
		line-height: 1.7;
		color: var(--color-text-secondary);
		max-width: 700px;
		margin: 0 auto var(--spacing-sm);
	}

	.subtitle-sub {
		font-size: clamp(0.85rem, 1.8vw, 1rem);
		line-height: 1.8;
		color: var(--color-text-muted);
		max-width: 700px;
		margin: 0 auto var(--spacing-md);
	}

	.text-accent {
		color: var(--color-cyan);
		font-weight: 700;
	}

	/* Highlight Text Block - 概要セクション締めくくり */
	.text-block-highlight {
		margin-top: var(--spacing-lg);
		padding: var(--spacing-md);
		border-left: 3px solid var(--color-gold);
		background: rgba(255, 215, 0, 0.05);
		border-radius: 0 var(--radius-md) var(--radius-md) 0;
	}

	.text-highlight {
		font-size: clamp(1.1rem, 2.2vw, 1.3rem);
		line-height: 1.9;
		color: var(--color-gold);
	}

	.text-highlight strong {
		font-size: clamp(1.2rem, 2.5vw, 1.45rem);
		display: block;
		margin-bottom: 0.3em;
	}

	/* Hero CTA */
	.hero-cta {
		margin-bottom: var(--spacing-lg);
	}

	/* Buttons */
	.btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: var(--spacing-xs);
		padding: 14px 36px;
		border-radius: var(--radius-full);
		font-size: 1rem;
		font-weight: 700;
		transition: var(--transition-base);
		cursor: pointer;
		border: none;
		position: relative;
		overflow: hidden;
	}

	.btn-primary {
		background: var(--gradient-accent);
		color: var(--color-text);
		box-shadow: 0 10px 30px rgba(0, 212, 255, 0.3);
	}

	.btn-primary:hover {
		transform: translateY(-3px);
		box-shadow: 0 15px 40px rgba(0, 212, 255, 0.5);
	}

	.btn-large {
		padding: 18px 50px;
		font-size: 1.15rem;
	}

	.btn i {
		transition: var(--transition-base);
	}

	.btn:hover i {
		transform: translateX(4px);
	}

	/* Countdown - 区切り線の代わりに配置 */
	.hero-countdown {
		margin: var(--spacing-md) auto var(--spacing-lg);
	}

	.countdown-label {
		font-size: 1.1rem;
		color: var(--color-text);
		margin-bottom: var(--spacing-sm);
		letter-spacing: 2px;
		font-weight: 600;
		text-transform: uppercase;
	}

	.countdown {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: 8px;
		background: rgba(255, 255, 255, 0.05);
		padding: 16px 24px;
		border-radius: var(--radius-lg);
		border: 1px solid rgba(255, 255, 255, 0.1);
	}

	.countdown-item {
		display: flex;
		flex-direction: column;
		align-items: center;
		min-width: 50px;
	}

	.countdown-number {
		font-family: 'Oswald', sans-serif;
		font-size: clamp(1.8rem, 4.5vw, 2.5rem);
		font-weight: 600;
		color: var(--color-text);
		line-height: 1;
		letter-spacing: 1px;
	}

	.countdown-unit {
		font-size: 0.7rem;
		color: var(--color-text-muted);
		margin-top: 4px;
		letter-spacing: 1px;
	}

	.countdown-separator {
		font-family: 'Oswald', sans-serif;
		font-size: clamp(1.5rem, 3.5vw, 2rem);
		font-weight: 600;
		color: var(--color-cyan);
		opacity: 0.6;
		animation: blink 1s ease-in-out infinite;
	}

	@keyframes blink {
		0%, 100% { opacity: 0.6; }
		50% { opacity: 1; }
	}

	/* Deadline - Static date display */
	.hero-deadline {
		margin: var(--spacing-md) auto var(--spacing-lg);
	}

	.deadline-label {
		font-size: 0.85rem;
		color: var(--color-text-muted);
		margin-bottom: var(--spacing-xs);
		letter-spacing: 2px;
		text-transform: uppercase;
	}

	.deadline-date {
		font-family: 'Oswald', sans-serif;
		font-size: clamp(2rem, 5vw, 3rem);
		font-weight: 600;
		color: var(--color-text);
		letter-spacing: 3px;
		display: inline-flex;
		align-items: baseline;
		gap: 12px;
		background: rgba(255, 255, 255, 0.05);
		padding: 16px 32px;
		border-radius: var(--radius-lg);
		border: 1px solid rgba(255, 255, 255, 0.1);
	}

	.deadline-time {
		font-size: 0.5em;
		color: var(--color-cyan);
		font-weight: 500;
	}

	/* Scroll Indicator */
	.scroll-indicator {
		position: relative;
		margin-top: var(--spacing-md);
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 8px;
		color: var(--color-text-dim);
		font-size: 0.7rem;
		letter-spacing: 2px;
	}

	.scroll-line {
		width: 1px;
		height: 30px;
		background: linear-gradient(to bottom, var(--color-text-dim), transparent);
		animation: scrollPulse 2s ease-in-out infinite;
	}

	@keyframes scrollPulse {
		0%, 100% { transform: scaleY(1); opacity: 1; }
		50% { transform: scaleY(0.5); opacity: 0.5; }
	}

/* ============================================
   Content Section
   ============================================ */
   .content {
   	position: relative;
   	padding: var(--spacing-xl) 20px;
   	max-width: 1100px;
   	margin: 0 auto;
   }

	/* Section Base */
	.section {
		margin-bottom: var(--spacing-xxl);
		position: relative;
	}

	/* Section Title - Center Aligned */
	.section-title {
		text-align: center;
		margin-bottom: var(--spacing-xl);
		position: relative;
	}

	.title-en {
		display: block;
		font-family: var(--font-display);
		font-size: 0.75rem;
		font-weight: 600;
		letter-spacing: 4px;
		color: var(--color-cyan);
		margin-bottom: 8px;
	}

	.title-ja {
		display: block;
		font-size: clamp(1.6rem, 4vw, 2.2rem);
		font-weight: 900;
		color: var(--color-text);
	}

	.section-title::after {
		content: '';
		display: block;
		width: 60px;
		height: 3px;
		background: var(--gradient-accent);
		margin: 20px auto 0;
		border-radius: 2px;
	}

	/* Section Content - Center */
	.section-content {
		max-width: 800px;
		margin: 0 auto;
		text-align: center;
	}

	.text-block {
		margin-bottom: var(--spacing-md);
	}

	.text-lead {
		font-size: 1.1rem;
		line-height: 2;
	}

	.text-block p {
		font-size: 1.05rem;
		color: var(--color-text-secondary);
		line-height: 2;
	}

/* ============================================
   Info Grid & Cards
   ============================================ */
   .info-grid {
   	display: grid;
   	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
   	gap: 24px;
   }

   .info-card {
   	background: var(--color-bg-card);
   	padding: 30px;
   	border-radius: var(--radius-lg);
   	border: 1px solid rgba(255, 255, 255, 0.08);
   	text-align: center;
   	transition: var(--transition-base);
   }

   .info-card:hover {
   	transform: translateY(-5px);
   	border-color: rgba(0, 212, 255, 0.3);
   	box-shadow: 0 15px 40px rgba(0, 0, 0, 0.4);
   }

   .info-card-icon {
   	width: 50px;
   	height: 50px;
   	background: var(--gradient-accent);
   	border-radius: var(--radius-md);
   	display: flex;
   	align-items: center;
   	justify-content: center;
   	font-size: 1.2rem;
   	color: var(--color-text);
   	margin: 0 auto var(--spacing-sm);
   }

   .info-card-title {
   	font-weight: 700;
   	font-size: 1.2rem;
   	color: var(--color-cyan);
   	margin-bottom: 12px;
   }

   .info-card-content {
   	color: var(--color-text-muted);
   	line-height: 1.8;
   	font-size: 0.95rem;
   }

   .info-card-content small {
   	font-size: 0.85rem;
   	color: var(--color-text-dim);
   }

/* ============================================
   Highlight Box
   ============================================ */
   .highlight-box {
   	background: rgba(0, 212, 255, 0.05);
   	border: 1px solid rgba(0, 212, 255, 0.2);
   	border-radius: var(--radius-lg);
   	padding: var(--spacing-lg);
   	margin: var(--spacing-lg) 0;
   }

   .highlight-box-header {
   	display: flex;
   	align-items: center;
   	justify-content: center;
   	gap: var(--spacing-sm);
   	margin-bottom: var(--spacing-md);
   }

   .highlight-box-icon {
   	width: 40px;
   	height: 40px;
   	background: var(--gradient-accent);
   	border-radius: 50%;
   	display: flex;
   	align-items: center;
   	justify-content: center;
   	color: var(--color-text);
   	font-size: 1rem;
   }

   .highlight-box-title {
   	font-size: 1.3rem;
   	font-weight: 700;
   	color: var(--color-cyan);
   }

	/* Experience List */
	.experience-list {
		max-width: 600px;
		margin: 0 auto;
	}

	.experience-list li {
		display: flex;
		align-items: center;
		gap: var(--spacing-sm);
		padding: 16px 20px;
		margin-bottom: 12px;
		background: rgba(255, 255, 255, 0.03);
		border-radius: var(--radius-md);
		border-left: 3px solid var(--color-magenta);
		transition: var(--transition-base);
	}

	.experience-list li:hover {
		background: rgba(255, 255, 255, 0.06);
		border-left-color: var(--color-cyan);
		transform: translateX(5px);
	}

	.exp-icon {
		width: 36px;
		height: 36px;
		background: rgba(0, 212, 255, 0.15);
		border-radius: var(--radius-sm);
		display: flex;
		align-items: center;
		justify-content: center;
		color: var(--color-cyan);
		flex-shrink: 0;
		font-size: 0.9rem;
	}

	.exp-text {
		font-size: 1rem;
		color: var(--color-text-secondary);
	}

	/* Note Text */
	.note-text {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: var(--spacing-sm);
		margin-top: var(--spacing-md);
		padding: var(--spacing-sm) var(--spacing-md);
		background: rgba(255, 215, 0, 0.08);
		border-radius: var(--radius-md);
		color: var(--color-text-muted);
		font-size: 0.95rem;
		max-width: 600px;
		margin-left: auto;
		margin-right: auto;
	}

	.note-text i {
		color: var(--color-gold);
	}

/* ============================================
   Timeline
   ============================================ */
   .timeline {
   	position: relative;
   	max-width: 700px;
   	margin: 0 auto;
   	padding-left: 40px;
   }

   .timeline-line {
   	position: absolute;
   	left: 24px;
   	top: 0;
   	bottom: 0;
   	width: 2px;
   	background: linear-gradient(180deg, var(--color-cyan) 0%, var(--color-magenta) 100%);
   }

   .step {
   	position: relative;
   	padding-left: 50px;
   	margin-bottom: var(--spacing-xl);
   }

   .step-number {
   	position: absolute;
   	left: 0;
   	top: 0;
   	width: 50px;
   	height: 50px;
   	background: var(--gradient-accent);
   	border-radius: 50%;
   	display: flex;
   	align-items: center;
   	justify-content: center;
   	font-family: var(--font-display);
   	font-size: 1.3rem;
   	font-weight: 900;
   	color: var(--color-text);
   	box-shadow: 0 8px 25px rgba(0, 212, 255, 0.3);
   	z-index: 1;
   }

   .step-content {
   	background: var(--color-bg-card);
   	padding: var(--spacing-md);
   	border-radius: var(--radius-lg);
   	border: 1px solid rgba(255, 255, 255, 0.08);
   }

   .step-title {
   	font-size: 1.2rem;
   	font-weight: 700;
   	color: var(--color-text);
   	margin-bottom: var(--spacing-sm);
   }

   .step-description {
   	color: var(--color-text-muted);
   	line-height: 1.9;
   	font-size: 0.95rem;
   }

   .step-date {
   	color: var(--color-cyan);
   	font-weight: 500;
   }

   .step-highlight {
   	display: inline-flex;
   	align-items: center;
   	gap: var(--spacing-xs);
   	margin-top: var(--spacing-sm);
   	padding: 6px 14px;
   	background: rgba(255, 215, 0, 0.1);
   	border-radius: var(--radius-full);
   	color: var(--color-gold);
   	font-size: 0.85rem;
   }

/* ============================================
   Apply Section
   ============================================ */
   .apply-site-box {
   	background: var(--color-bg-card);
   	border: 2px solid var(--color-cyan);
   	border-radius: var(--radius-lg);
   	padding: var(--spacing-lg);
   	margin-bottom: var(--spacing-xl);
   	text-align: center;
   }

   .apply-site-header {
   	display: flex;
   	align-items: center;
   	justify-content: center;
   	gap: var(--spacing-sm);
   	margin-bottom: var(--spacing-md);
   }

   .apply-site-icon {
   	width: 45px;
   	height: 45px;
   	background: var(--gradient-accent);
   	border-radius: 50%;
   	display: flex;
   	align-items: center;
   	justify-content: center;
   	font-size: 1.2rem;
   	color: var(--color-text);
   }

   .apply-site-header h3 {
   	font-size: 1.2rem;
   	color: var(--color-text);
   }

   .apply-site-url {
   	text-align: center;
   }

   .url-label {
   	display: block;
   	font-size: 0.85rem;
   	color: var(--color-cyan);
   	margin-bottom: 8px;
   }

   .url-link {
   	display: inline-flex;
   	align-items: center;
   	gap: var(--spacing-xs);
   	font-family: var(--font-display);
   	font-size: 1.1rem;
   	font-weight: 600;
   	color: var(--color-text);
   	transition: var(--transition-base);
   }

   .url-link:hover {
   	color: var(--color-cyan);
   }

   .url-link i {
   	font-size: 0.85rem;
   	opacity: 0.7;
   }

	/* Subsection Title */
	.subsection-title {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: var(--spacing-sm);
		font-size: 1.3rem;
		font-weight: 700;
		color: var(--color-cyan);
		margin-bottom: var(--spacing-lg);
	}

	/* Submission List */
	.submission-list {
		display: flex;
		flex-direction: column;
		gap: var(--spacing-md);
		max-width: 700px;
		margin: 0 auto;
	}

	.submission-item {
		display: flex;
		gap: var(--spacing-md);
		background: var(--color-bg-card);
		border-radius: var(--radius-lg);
		padding: var(--spacing-md);
		border: 1px solid rgba(255, 255, 255, 0.08);
		transition: var(--transition-base);
	}

	.submission-item:hover {
		border-color: rgba(0, 212, 255, 0.3);
	}

	.submission-number {
		font-family: var(--font-display);
		font-size: 2rem;
		font-weight: 900;
		background: var(--gradient-accent);
		-webkit-background-clip: text;
		-webkit-text-fill-color: transparent;
		background-clip: text;
		line-height: 1;
		flex-shrink: 0;
		width: 50px;
	}

	.submission-content h4 {
		font-size: 1.1rem;
		font-weight: 700;
		color: var(--color-text);
		margin-bottom: var(--spacing-sm);
	}

	.submission-content ul {
		display: flex;
		flex-direction: column;
		gap: 4px;
	}

	.submission-content li {
		color: var(--color-text-muted);
		font-size: 0.9rem;
		padding-left: var(--spacing-sm);
		border-left: 2px solid var(--color-magenta);
	}

	.submission-content li strong {
		color: var(--color-text-secondary);
	}

/* ============================================
   Activities Section
   ============================================ */
   .activities-list {
   	display: flex;
   	flex-direction: column;
   	gap: var(--spacing-md);
   	max-width: 700px;
   	margin: 0 auto;
   }

   .activity-item {
   	display: flex;
   	gap: var(--spacing-md);
   	padding: var(--spacing-md);
   	background: var(--color-bg-card);
   	border-radius: var(--radius-lg);
   	border: 1px solid rgba(255, 255, 255, 0.05);
   	transition: var(--transition-base);
   }

   .activity-item:hover {
   	border-color: rgba(255, 255, 255, 0.15);
   }

   .activity-item.featured {
   	background: rgba(255, 215, 0, 0.05);
   	border-color: rgba(255, 215, 0, 0.2);
   }

   .activity-icon {
   	width: 45px;
   	height: 45px;
   	border-radius: var(--radius-md);
   	display: flex;
   	align-items: center;
   	justify-content: center;
   	font-size: 1.1rem;
   	flex-shrink: 0;
   }

   .activity-icon.cyan {
   	background: rgba(0, 212, 255, 0.15);
   	color: var(--color-cyan);
   }

   .activity-icon.magenta {
   	background: rgba(255, 0, 255, 0.15);
   	color: var(--color-magenta);
   }

   .activity-icon.gold {
   	background: rgba(255, 215, 0, 0.15);
   	color: var(--color-gold);
   }

   .activity-content h4 {
   	font-size: 1.05rem;
   	font-weight: 700;
   	color: var(--color-text);
   	margin-bottom: 4px;
   }

   .activity-content p {
   	color: var(--color-text-muted);
   	font-size: 0.9rem;
   }

/* ============================================
   Notes Section
   ============================================ */
   .notes-list {
   	display: flex;
   	flex-direction: column;
   	gap: 10px;
   	max-width: 700px;
   	margin: 0 auto;
   }

   .notes-list li {
   	display: flex;
   	align-items: flex-start;
   	gap: var(--spacing-sm);
   	padding: 12px 16px;
   	background: rgba(255, 255, 255, 0.02);
   	border-radius: var(--radius-md);
   	border-left: 2px solid var(--color-text-dim);
   	font-size: 0.95rem;
   }

   .notes-list li i {
   	color: var(--color-text-dim);
   	margin-top: 3px;
   	flex-shrink: 0;
   }

   .notes-list li span {
   	color: var(--color-text-muted);
   }

/* ============================================
   Privacy Info Section (PIPA対応)
   ============================================ */
   /*.privacy-info-section {
   	margin-top: var(--spacing-xl);
   }

   .privacy-notice {
   	max-width: 800px;
   	margin: 0 auto var(--spacing-lg);
   	padding: 20px 24px;
   	background: linear-gradient(135deg, rgba(0, 212, 255, 0.08), rgba(255, 0, 128, 0.05));
   	border: 1px solid rgba(0, 212, 255, 0.2);
   	border-radius: var(--radius-md);
   	text-align: center;
   }

   .privacy-notice p {
   	color: var(--color-text-secondary);
   	font-size: 0.95rem;
   	line-height: 1.8;
   }

   .privacy-info-grid {
   	display: grid;
   	grid-template-columns: repeat(2, 1fr);
   	gap: var(--spacing-md);
   	max-width: 900px;
   	margin: 0 auto var(--spacing-lg);
   }

   .privacy-info-card {
   	display: flex;
   	gap: 16px;
   	padding: 24px;
   	background: rgba(255, 255, 255, 0.03);
   	border: 1px solid rgba(255, 255, 255, 0.08);
   	border-radius: var(--radius-md);
   	transition: all 0.3s ease;
   }

   .privacy-info-card:hover {
   	border-color: rgba(0, 212, 255, 0.3);
   	background: rgba(0, 212, 255, 0.05);
   }

   .privacy-card-icon {
   	width: 48px;
   	height: 48px;
   	min-width: 48px;
   	display: flex;
   	align-items: center;
   	justify-content: center;
   	background: linear-gradient(135deg, var(--color-cyan), var(--color-magenta));
   	border-radius: 50%;
   	font-size: 1.2rem;
   	color: white;
   }

   .privacy-card-content {
   	flex: 1;
   }

   .privacy-card-label {
   	font-size: 0.8rem;
   	color: var(--color-cyan);
   	margin-bottom: 6px;
   	font-weight: 500;
   }

   .privacy-card-company {
   	font-size: 1.1rem;
   	font-weight: 700;
   	color: var(--color-text);
   	margin-bottom: 4px;
   }

   .privacy-card-detail {
   	font-size: 0.85rem;
   	color: var(--color-text-muted);
   }

   .privacy-footer {
   	text-align: center;
   	padding: 16px 20px;
   	background: rgba(255, 255, 255, 0.02);
   	border-radius: var(--radius-md);
   	max-width: 700px;
   	margin: 0 auto;
   }

   .privacy-footer p {
   	display: flex;
   	align-items: center;
   	justify-content: center;
   	gap: 10px;
   	color: var(--color-text-muted);
   	font-size: 0.9rem;
   }

   .privacy-footer i {
   	color: var(--color-cyan);
   }

   @media (max-width: 768px) {
   	.privacy-info-grid {
   		grid-template-columns: 1fr;
   	}

   	.privacy-info-card {
   		padding: 20px;
   	}

   	.privacy-card-icon {
   		width: 42px;
   		height: 42px;
   		min-width: 42px;
   		font-size: 1rem;
   	}

   	.privacy-card-company {
   		font-size: 1rem;
   	}

   	.privacy-notice {
   		padding: 16px 18px;
   	}

   	.privacy-notice p {
   		font-size: 0.9rem;
   	}
   }*/

/* ============================================
   CTA Section
   ============================================ */
   .cta-section {
   	text-align: center;
   	padding: var(--spacing-xxl) var(--spacing-md);
   	background: rgba(0, 212, 255, 0.03);
   	border-radius: var(--radius-xl);
   	border: 1px solid rgba(0, 212, 255, 0.1);
   }

   .cta-content {
   	max-width: 600px;
   	margin: 0 auto;
   }

   .cta-title {
   	font-size: clamp(1.6rem, 4vw, 2.2rem);
   	font-weight: 900;
   	color: var(--color-text);
   	margin-bottom: var(--spacing-sm);
   }

   .cta-subtitle {
   	font-size: 1.1rem;
   	color: var(--color-text-secondary);
   	margin-bottom: var(--spacing-lg);
   }

   .cta-contact {
   	margin-top: var(--spacing-xl);
   }

   .cta-contact p {
   	font-size: 0.9rem;
   	color: var(--color-text-muted);
   	margin-bottom: 8px;
   }

   .cta-contact a {
   	color: var(--color-text-secondary);
   	font-size: 1rem;
   }

   .cta-contact a:hover {
   	color: var(--color-cyan);
   }

/* ============================================
   Fixed Apply Button
   ============================================ */
   .fixed-apply-btn {
   	position: fixed;
   	bottom: 24px;
   	right: 24px;
   	z-index: 1000;
   	opacity: 0;
   	transform: translateY(20px) scale(0.8);
   	transition: opacity 0.4s ease, transform 0.4s ease;
   	pointer-events: none;
   }

   .fixed-apply-btn.visible {
   	opacity: 1;
   	transform: translateY(0) scale(1);
   	pointer-events: auto;
   }

   .fixed-apply-btn .btn {
   	width: 120px;
   	height: 120px;
   	padding: 0;
   	border-radius: 50%;
   	display: flex;
   	align-items: center;
   	justify-content: center;
   	font-size: 2.4rem;
   	background: linear-gradient(135deg, #00d4ff 0%, #ff00ff 100%);
   	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
   	position: relative;
   	transition: box-shadow 0.3s ease, transform 0.3s ease;
   }

   .fixed-apply-btn .btn:hover {
   	box-shadow: 0 6px 28px rgba(0, 0, 0, 0.5);
   	transform: scale(1.05);
   }

   .fixed-apply-btn .btn i {
   	margin: 0;
   	font-size: 2.4rem;
   	position: absolute;
   	top: 50%;
   	left: 50%;
   	transform: translate(-50%, -50%);
   	transition: none;
   	color: #ffffff;
   }

   .fixed-apply-btn .btn:hover i {
   	transform: translate(-50%, -50%);
   }

   .fixed-apply-btn .btn span {
   	display: none;
   }

	/* Bottom Spacer */
	.bottom-spacer {
		height: 100px;
	}



/* ============================================
   AOS Animations
   ============================================ */
   [data-aos] {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease, transform 0.6s ease;
	}

	[data-aos].aos-animate {
	    opacity: 1;
	    transform: translateY(0);
	}

/* ============================================
   Responsive Styles
   ============================================ */
   @media (max-width: 768px) {
   	/* モバイル用: 写真コラージュ - 画面全体に大きく敷き詰め */
   	.photo-track {
   		gap: 30px;
   		animation-duration: 100s;
   	}

   	/* 大・中・小のサイズバリエーション */
   	.photo-item.pos-1 {
   		transform: rotate(-8deg) translateY(-60px);
   		width: 85vw; /* 大 */
   	}

   	.photo-item.pos-2 {
   		transform: rotate(6deg) translateY(80px);
   		width: 55vw; /* 小 */
   	}

   	.photo-item.pos-3 {
   		transform: rotate(-4deg) translateY(-30px);
   		width: 95vw; /* 特大 */
   	}

   	.photo-item.pos-4 {
   		transform: rotate(7deg) translateY(60px);
   		width: 70vw; /* 中 */
   	}

   	.photo-item.pos-5 {
   		transform: rotate(-6deg) translateY(-80px);
   		width: 60vw; /* 小〜中 */
   	}

   	.photo-item.pos-6 {
   		transform: rotate(5deg) translateY(50px);
   		width: 90vw; /* 大 */
   	}

   	.photo-item.pos-7 {
   		transform: rotate(-5deg) translateY(-20px);
   		width: 75vw; /* 中〜大 */
   	}

   	/* 固定応募ボタン - モバイル用 */
   	.fixed-apply-btn {
   		bottom: 20px;
   		right: 20px;
   	}

   	.fixed-apply-btn .btn {
   		width: 100px;
   		height: 100px;
   		font-size: 2rem;
   	}

   	.fixed-apply-btn .btn i {
   		font-size: 2rem;
   		position: absolute;
   		top: 50%;
   		left: 50%;
   		transform: translate(-50%, -50%);
   	}

   	.bottom-spacer {
   		height: 90px;
   	}

   	/* スマホ: タイトルを3行で大きく表示 */
   	.project-name {
   		font-size: 2.8rem;
   		letter-spacing: 3px;
   		line-height: 1.15;
   		white-space: normal;
   		text-align: center;
   		display: flex;
   		flex-direction: column;
   		align-items: center;
   	}

   	.project-name span {
   		display: block;
   		font-size: 2.5rem;
   	}

   	.project-name .name-tokyo::after,
   	.project-name .name-starlight::after {
   		content: none;
   	}

   	/* スマホ: メインメッセージを大きく強調 */
   	.subtitle-main {
   		font-size: 1.15rem;
   		line-height: 1.8;
   		margin-bottom: var(--spacing-md);
   	}

   	.subtitle-main .text-accent {
   		font-size: 1.2rem;
   	}

   	.subtitle-sub {
   		font-size: 0.85rem;
   		line-height: 1.9;
   		margin-bottom: var(--spacing-md);
   	}

   	/* スクロールインジケーター調整 */
   	.scroll-indicator {
   		margin-top: var(--spacing-md);
   	}

   	.scroll-line {
   		height: 25px;
   	}

   	/* ヒーロー全体のパディング調整 - 6.1インチ最適化 */
   	.hero {
   		padding: 40px 16px 24px;
   		min-height: 100svh;
   		display: flex;
   		flex-direction: column;
   		justify-content: center;
   	}

   	.hero-content {
   		padding-top: 0;
   	}

   	/* タグライン調整 */
   	.tagline {
   		font-size: 1.1rem;
   		margin-bottom: var(--spacing-md);
   	}

   	/* カウントダウン調整 */
   	.hero-countdown {
   		margin: var(--spacing-md) auto var(--spacing-lg);
   	}

   	.countdown {
   		padding: 12px 18px;
   	}

   	.countdown-item {
   		min-width: 42px;
   	}

   	.countdown-number {
   		font-size: 1.6rem;
   	}

   	.countdown-unit {
   		font-size: 0.65rem;
   	}

   	.countdown-separator {
   		font-size: 1.3rem;
   	}

   	.countdown-label {
   		font-size: 0.8rem;
   		margin-bottom: 8px;
   	}

   	.content {
   		padding: var(--spacing-lg) 16px;
   	}

   	.section {
   		margin-bottom: var(--spacing-xl);
   	}

   	.info-grid {
   		grid-template-columns: 1fr;
   		gap: 16px;
   	}

   	.info-card {
   		padding: 24px;
   	}

   	.timeline {
   		padding-left: 30px;
   	}

   	.timeline-line {
   		left: 18px;
   	}

   	.step {
   		padding-left: 40px;
   	}

   	.step-number {
   		width: 40px;
   		height: 40px;
   		font-size: 1.1rem;
   	}

   	.step-content {
   		padding: var(--spacing-sm) var(--spacing-md);
   	}

   	.submission-item {
   		flex-direction: column;
   		gap: var(--spacing-sm);
   	}

   	.submission-number {
   		font-size: 1.5rem;
   		width: auto;
   	}

   	.activity-item {
   		flex-direction: column;
   		gap: var(--spacing-sm);
   		text-align: center;
   	}

   	.activity-icon {
   		margin: 0 auto;
   	}

   	.countdown {
   		padding: 12px 16px;
   		gap: 4px;
   	}

   	.countdown-item {
   		min-width: 40px;
   	}

   	.countdown-number {
   		font-size: 1.4rem;
   	}

   	.countdown-separator {
   		font-size: 1.2rem;
   	}

   	.countdown-unit {
   		font-size: 0.6rem;
   	}
   }

   @media (max-width: 480px) {
   	.highlight-box-header {
   		flex-direction: column;
   	}

   	.experience-list li {
   		flex-direction: column;
   		text-align: center;
   		gap: 8px;
   	}

   	.apply-site-header {
   		flex-direction: column;
   	}

   	.url-link {
   		font-size: 0.9rem;
   		word-break: break-all;
   	}

   	.btn {
   		width: 100%;
   	}

   	.note-text {
   		flex-direction: column;
   		text-align: center;
   		gap: 8px;
   	}

   	.cta-contact a {
   		font-size: 14px;
   	}

   }

   @media screen and (max-width: 365px) {
   	.highlight-box {
   		padding: 3rem 1.5rem;
   	}
   }


/*---------------------------------------------
  TOP
---------------------------------------------*/

.top-main-contents {
	overflow:hidden;
	clear:both;
}




/*---------------------------------------------
  TOP CONTENTS
---------------------------------------------*/

.top-main-contents .container {
	padding:10px 15px 64px 15px;
}

.top-main-contents .more {
	text-align:center;
	margin-top:32px;
}




/*-----------------------------
  bnr
-----------------------------*/

#bnr {
	overflow:hidden;
	clear:both;
	margin:0 auto 50px;
}

#bnr .bnr {
	width:100%;
	position:relative;
}

#bnr .bnr a {
display:block;
}


#bnr .bnr .post-eyecatch {
	overflow: hidden;
	position: relative;
	width:480px;
	padding-top: 75%;
	border-radius: 32px;
	box-shadow: 0 3px 6px rgba(0,0,0,0.16);
	z-index:-1;
}

#bnr .bnr .post-eyecatch img {
    width: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    object-fit: cover;
    object-position: top;
    max-width: none;
    max-height: none;
    min-width: 100%;
    min-height: 100%;
}

#bnr .bnr .post-eyecatch::after {
    content:"";
    display: block;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1;
    background-color: rgba(255, 255,255, 0);
	-webkit-transition: all .3s ease;
	transition: all .3s ease;
}

#bnr .bnr:hover .post-eyecatch::after {
    background-color: rgba(255, 255,255, .4);
}

#bnr .bnr .post-title {
    width: 100%;
	padding:0px 10px;
	margin:0 !important;
	position:absolute;
	color:#fff;
	text-align:center;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
	z-index:999;
	-webkit-transition: all .3s ease;
	transition: all .3s ease;
	display:none;
	
}

#bnr .bnr:hover .post-title {
    display:block;
}



@media screen and (max-width: 991px) {

#bnr .bnr .post-eyecatch {
	width:240px;
	border-radius: 4px;
}

}


/*-----------------------------
  NEWS
-----------------------------*/

#top-main-contents #news .post-item-type_a1 a {
	color:#5F6368;
}


/*-----------------------------
  BIOGRAPHY
-----------------------------*/

#top-main-contents #biography dt {
margin: 0 auto 32px;
/*max-width: 800px;*/
}



/*-----------------------------
  FANCLUB
-----------------------------*/

#top-main-contents #fanclub dt {
	width:50%;
	max-width:450px;
	margin:0px auto 32px;
	text-align:center;
}

@media screen and (max-width: 767px) {
	
#top-main-contents #fanclub dt {
	width:100%;
}

}

/***** plan *****/
#service.service_single .plan {
	width:100%;
	margin:0 auto 32px;
	border-radius: .25rem;
	box-shadow: 0 3px 6px rgba(0,0,0,0.16);
	overflow: hidden;
}


#service.service_single .plan h3 {
	width:80%;
	max-width: 450px;
	margin:32px auto;
	padding: 0 16px;
}

#service.service_single .plan .description {
	padding:16px 16px 32px;
}

#service.service_single .plan .price {
	padding:16px;
	text-align:center;
}

#service.service_single .plan .registration a {
	padding:16px;
	border-top:solid 1px #DADCE0;
	text-align:center;
	display:block;
}

/*-----------------------------
  FANCLUB（複数プラン）
-----------------------------*/
#service.service_multiple .lead {
	font-size: 14px;
	margin-bottom: 64px;
}

/***** plan *****/

#service.service_multiple .plan {
margin-bottom: 0;
}

#service.service_multiple .plan ul {
	clear:both;
	text-align:center;
	padding: 10px 0;
}

#service.service_multiple .plan li {
	padding: 32px 0 0;
	box-sizing: border-box;
	box-shadow: 0 3px 6px rgba(0,0,0,0.16);
	border-radius: 3px;
}

#service.service_multiple .plan li dl  {
	margin:0 16px 32px;
}

#service.service_multiple .plan li dt  {
	margin-bottom:16px;
	font-weight: normal;
}

#service.service_multiple .plan li dt .plan_name {
	font-size:20px;
}

#service.service_multiple .plan li dd {
	text-align:left;
}

#service.service_multiple .plan li .registrations a {
	padding:16px 0;
	border-top: solid 1px #E0E0E0;
	display:block;
}


@media screen and (min-width: 768px) {

#service.service_multiple .plan ul {
	clear:both;
}

#service.service_multiple .plan li {
	display:inline-block;
	margin: 0px 1.5%;
}

#service.service_multiple .plan.plan-2 li {
	width:40%;
}

#service.service_multiple .plan.plan-3 li {
	width:30%;
	float: left;
	display: block;
}
	
}


@media screen and (max-width: 767px) {

#service.service_multiple .plan li {
	margin-bottom:32px;
}

}

/*-----------------------------
  PROFILE
-----------------------------*/

.top-main-contents #profile dt {
margin: 0 auto 32px;
}

/*-----------------------------
  banner
-----------------------------*/

.top-main-contents #link_list ul {
/*text-align: center;*/
overflow: hidden;
clear: both;
}

.top-main-contents #link_list li {
width: 100%;
max-width: 300px;
margin: 0 1.5% 16px;
display: inline-block;
}

.top-main-contents #link_list li a:hover {
opacity: 0.7;
}


@media screen and (max-width: 575px) {

.top-main-contents #link_list li {
max-width: 100%;
margin: 0 auto 16px;
display: inline-block;
}

}


/*-----------------------------
  fadein
-----------------------------*/
.fadein {
  opacity: 0;
  visibility: hidden;
  transform: translateY(40px);
  transition: all 1s;
}
.fadein.is-show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0px);
}