/* ============================================
   全局变量和基础样式
   ============================================ */
:root {
	/* 主色调 - 现代蓝紫色系 */
	--colorPrimary: #6366f1;
	--colorPrimaryHover: #5855eb;
	--colorPrimaryActive: #4f46e5;
	--colorSecondary: #2a2a3a;
	--colorBackground: #0a0a0f;
	--colorSurface: #141420;
	--colorCard: #1a1a28;
	--colorCardHover: #222235;
	
	/* 文本颜色 */
	--colorTextPrimary: #FFFFFF;
	--colorTextSecondary: #a8a8b8;
	--colorTextAccent: #818cf8;
	--colorTextWarning: #f87171;
	
	/* 边框和阴影 */
	--colorBorder: rgba(99, 102, 241, 0.25);
	--colorBorderActive: #6366f1;
	--shadowSmall: 0 2px 8px rgba(0, 0, 0, 0.5);
	--shadowMedium: 0 4px 16px rgba(0, 0, 0, 0.6);
	--shadowLarge: 0 8px 32px rgba(0, 0, 0, 0.7);
	--shadowButton: 0 4px 16px rgba(99, 102, 241, 0.4);
	
	/* 间距 - 移动端优化 */
	--spacingXs: 6px;
	--spacingSm: 10px;
	--spacingMd: 16px;
	--spacingLg: 20px;
	--spacingXl: 24px;
	--spacingXxl: 32px;
	
	/* 圆角 */
	--radiusSm: 10px;
	--radiusMd: 14px;
	--radiusLg: 18px;
	--radiusXl: 24px;
	--radiusFull: 50px;
	
	/* 字体大小 - 移动端优化 */
	--fontSizeXs: 11px;
	--fontSizeSm: 13px;
	--fontSizeMd: 15px;
	--fontSizeLg: 17px;
	--fontSizeXl: 20px;
	--fontSizeXxl: 24px;
	--fontSizeXxxl: 28px;
	
	/* 行高 */
	--lineHeightTight: 1.3;
	--lineHeightNormal: 1.5;
	--lineHeightRelaxed: 1.7;
}

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	-webkit-tap-highlight-color: transparent;
}

body {
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', sans-serif;
	font-size: var(--fontSizeMd);
	color: var(--colorTextPrimary);
	background: var(--colorBackground);
	min-height: 100vh;
	overflow-x: hidden;
	line-height: var(--lineHeightNormal);
	position: relative;
	padding: var(--spacingMd);
}

a {
	text-decoration: none;
	color: inherit;
}

a img {
	border: 0;
}

/* ============================================
   动态背景
   ============================================ */
#animatedBackground {
	position: fixed;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	z-index: 1;
	background: var(--colorBackground);
}

/* ============================================
   主容器 - 移动端优先
   ============================================ */
#root {
	z-index: 2;
	position: relative;
	width: 100%;
	max-width: 100%;
	margin: 0 auto;
	padding-top: var(--spacingLg);
	padding-bottom: var(--spacingXxl);
}

.contentWrapper {
	width: 100%;
	max-width: 100%;
	margin: 0 auto;
	padding: var(--spacingXl) var(--spacingLg);
	background: var(--colorCard);
	border-radius: var(--radiusXl);
	border: 1px solid var(--colorBorder);
	box-shadow: var(--shadowLarge);
}

/* ============================================
   头部和Logo
   ============================================ */
.headerSection {
	width: 100%;
	height: auto;
	overflow: hidden;
	text-align: center;
	margin-bottom: var(--spacingXl);
}

.logoImage {
	width: 100px;
	height: 100px;
	border-radius: 50%;
	box-shadow: var(--shadowMedium);
	object-fit: cover;
}

/* ============================================
   标题和文本
   ============================================ */
.mainTitle {
	font-size: var(--fontSizeXxl);
	color: var(--colorTextAccent);
	line-height: var(--lineHeightTight);
	font-weight: 700;
	margin-bottom: var(--spacingMd);
	text-align: center;
	letter-spacing: -0.3px;
}

.descriptionText {
	font-size: var(--fontSizeMd);
	color: var(--colorTextSecondary);
	line-height: var(--lineHeightNormal);
	margin-bottom: var(--spacingXl);
	text-align: center;
	font-weight: 400;
	padding: 0 var(--spacingSm);
}

/* ============================================
   卡片样式
   ============================================ */
.contentCard {
	background: var(--colorCard);
	border-radius: var(--radiusLg);
	padding: var(--spacingXl);
	margin-bottom: var(--spacingLg);
	border: 1px solid var(--colorBorder);
	box-shadow: var(--shadowMedium);
	transition: all 0.2s ease;
}

.contentCard:last-child {
	margin-bottom: 0;
}

/* ============================================
   进度条 - 重新设计
   ============================================ */
.progressBarContainer {
	background: var(--colorSurface);
	height: 6px;
	border-radius: var(--radiusFull);
	overflow: hidden;
	margin-bottom: var(--spacingLg);
	position: relative;
}

.progressBar {
	height: 100%;
	background: var(--colorPrimary);
	width: 0%;
	transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1);
	border-radius: var(--radiusFull);
	position: relative;
}

.progressBar::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
	animation: shimmer 2s infinite;
}

@keyframes shimmer {
	0% { transform: translateX(-100%); }
	100% { transform: translateX(100%); }
}

.progressText {
	font-size: var(--fontSizeSm);
	color: var(--colorTextSecondary);
	text-align: center;
	font-weight: 600;
	margin-bottom: var(--spacingXl);
	letter-spacing: 0.3px;
	text-transform: uppercase;
}

/* ============================================
   问题部分
   ============================================ */
.questionSection {
	display: block;
	animation: fadeIn 0.3s ease;
}

.questionTitle {
	text-align: left;
	font-size: var(--fontSizeLg);
	color: var(--colorTextPrimary);
	font-weight: 600;
	margin-bottom: var(--spacingXl);
	line-height: var(--lineHeightNormal);
	padding: 0 var(--spacingXs);
}

.optionsList {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: var(--spacingMd);
}

.optionItem {
	display: flex;
	align-items: center;
	padding: var(--spacingLg);
	background: var(--colorSurface);
	border: 2px solid var(--colorBorder);
	border-radius: var(--radiusMd);
	cursor: pointer;
	transition: all 0.2s ease;
	font-weight: 500;
	font-size: var(--fontSizeMd);
	color: var(--colorTextPrimary);
	position: relative;
	overflow: hidden;
}

.optionItem::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	width: 4px;
	background: var(--colorPrimary);
	transform: scaleY(0);
	transition: transform 0.2s ease;
}

.optionItem:active {
	background: var(--colorCardHover);
	border-color: var(--colorBorderActive);
	transform: scale(0.98);
}

.optionItem:active::before {
	transform: scaleY(1);
}

.optionItem label {
	display: flex;
	align-items: center;
	width: 100%;
	cursor: pointer;
	gap: var(--spacingMd);
}

.optionItem label input[type="radio"] {
	width: 20px;
	height: 20px;
	cursor: pointer;
	accent-color: var(--colorPrimary);
	flex-shrink: 0;
}

/* ============================================
   完成部分
   ============================================ */
.completionSection {
	display: block;
	text-align: center;
	animation: fadeIn 0.4s ease;
}

.completionTitle {
	font-size: var(--fontSizeXl);
	color: var(--colorTextAccent);
	font-weight: 700;
	margin-bottom: var(--spacingLg);
	line-height: var(--lineHeightTight);
}

.completionText {
	font-size: var(--fontSizeMd);
	color: var(--colorTextSecondary);
	text-align: center;
	font-weight: 400;
	margin-bottom: var(--spacingXl);
	line-height: var(--lineHeightRelaxed);
	padding: 0 var(--spacingSm);
}

.primaryButton {
	overflow: hidden;
	position: relative;
	background: var(--colorPrimary);
	color: var(--colorTextPrimary);
	border: none;
	padding: var(--spacingLg) var(--spacingXl);
	border-radius: var(--radiusMd);
	font-size: var(--fontSizeLg);
	font-weight: 600;
	cursor: pointer;
	transition: all 0.2s ease;
	box-shadow: var(--shadowButton);
	width: 100%;
	letter-spacing: 0.5px;
}

.primaryButton:active {
	transform: scale(0.98);
	box-shadow: 0 2px 8px rgba(99, 102, 241, 0.3);
	background: var(--colorPrimaryActive);
}

/* ============================================
   通知部分
   ============================================ */
.noticeTitle {
	font-size: var(--fontSizeLg);
	color: var(--colorTextWarning);
	font-weight: 600;
	margin-bottom: var(--spacingLg);
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--spacingSm);
}

.noticeText {
	overflow: hidden;
}

.noticeText p {
	color: var(--colorTextSecondary);
	line-height: var(--lineHeightRelaxed);
	font-size: var(--fontSizeSm);
	margin-bottom: var(--spacingMd);
	text-align: left;
}

.noticeText p:last-child {
	margin-bottom: 0;
}

/* ============================================
   链接部分
   ============================================ */
.footerLinks {
	text-align: center;
	border-top: 1px solid var(--colorBorder);
	margin-top: var(--spacingXl);
	padding-top: var(--spacingLg);
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--spacingMd);
}

.footerLinks a {
	display: inline-block;
	color: var(--colorTextAccent);
	text-decoration: none;
	font-size: var(--fontSizeXs);
	transition: color 0.2s ease;
	padding: var(--spacingXs) var(--spacingSm);
	border-radius: var(--radiusSm);
	font-weight: 500;
}

.footerLinks a:active {
	color: var(--colorPrimaryHover);
	background: var(--colorSurface);
}

/* ============================================
   弹窗样式
   ============================================ */
.modalDialog {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 10000;
	display: flex;
	align-items: center;
	justify-content: center;
	animation: fadeIn 0.3s ease;
	padding: var(--spacingLg);
}

.modalOverlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.85);
	backdrop-filter: blur(4px);
}

.modalContent {
	position: relative;
	background: var(--colorCard);
	border-radius: var(--radiusXl);
	padding: var(--spacingXxl);
	max-width: 100%;
	width: 100%;
	border: 1px solid var(--colorBorder);
	box-shadow: var(--shadowLarge);
	animation: slideUp 0.3s ease;
	z-index: 10001;
}

.modalTitle {
	font-size: var(--fontSizeXxl);
	color: var(--colorTextAccent);
	font-weight: 700;
	margin-bottom: var(--spacingLg);
	text-align: center;
	line-height: var(--lineHeightTight);
}

.modalBody {
	font-size: var(--fontSizeMd);
	color: var(--colorTextSecondary);
	line-height: var(--lineHeightRelaxed);
	margin-bottom: var(--spacingXl);
	text-align: center;
}

.modalButton {
	width: 100%;
	background: var(--colorPrimary);
	color: var(--colorTextPrimary);
	border: none;
	padding: var(--spacingLg) var(--spacingXl);
	border-radius: var(--radiusMd);
	font-size: var(--fontSizeLg);
	font-weight: 600;
	cursor: pointer;
	transition: all 0.2s ease;
	box-shadow: var(--shadowButton);
	letter-spacing: 0.5px;
}

.modalButton:active {
	transform: scale(0.98);
	box-shadow: 0 2px 8px rgba(99, 102, 241, 0.3);
	background: var(--colorPrimaryActive);
}

@keyframes fadeIn {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

@keyframes slideUp {
	from {
		transform: translateY(20px);
		opacity: 0;
	}
	to {
		transform: translateY(0);
		opacity: 1;
	}
}

/* ============================================
   响应式设计 - PC端最大宽度500px
   ============================================ */
@media (min-width: 480px) {
	body {
		padding: var(--spacingLg);
	}
	
	#root {
		padding-top: var(--spacingXl);
	}
	
	.contentWrapper {
		padding: var(--spacingXxl) var(--spacingXl);
		max-width: 500px;
	}
	
	.logoImage {
		width: 110px;
		height: 110px;
	}
	
	.mainTitle {
		font-size: var(--fontSizeXxxl);
	}
	
	.descriptionText {
		font-size: var(--fontSizeLg);
	}
	
	.questionTitle {
		font-size: var(--fontSizeXl);
	}
	
	.optionItem {
		padding: var(--spacingXl);
	}
	
	.modalContent {
		max-width: 420px;
		padding: var(--spacingXxl);
	}
	
	.modalTitle {
		font-size: 26px;
	}
}

@media (min-width: 768px) {
	body {
		padding: var(--spacingXl);
	}
	
	.contentWrapper {
		max-width: 500px;
		padding: var(--spacingXxl) var(--spacingXxl);
	}
	
	.logoImage {
		width: 120px;
		height: 120px;
	}
	
	.mainTitle {
		font-size: 30px;
	}
	
	.descriptionText {
		font-size: var(--fontSizeLg);
	}
	
	.contentCard {
		padding: var(--spacingXxl);
	}
	
	.questionTitle {
		font-size: var(--fontSizeXl);
	}
	
	.optionItem {
		padding: var(--spacingXl) var(--spacingXxl);
		font-size: var(--fontSizeLg);
	}
	
	.primaryButton {
		font-size: var(--fontSizeXl);
		padding: var(--spacingXl) var(--spacingXxl);
	}
	
	.modalContent {
		max-width: 480px;
		padding: 36px;
	}
	
	.modalTitle {
		font-size: 28px;
	}
	
	.modalBody {
		font-size: var(--fontSizeLg);
	}
	
	.modalButton {
		font-size: var(--fontSizeXl);
		padding: var(--spacingXl) var(--spacingXxl);
	}
}

/* ============================================
   横屏优化
   ============================================ */
@media (max-height: 600px) and (orientation: landscape) {
	body {
		padding: var(--spacingSm);
	}
	
	#root {
		padding-top: var(--spacingMd);
		padding-bottom: var(--spacingLg);
	}
	
	.contentWrapper {
		padding: var(--spacingLg);
	}
	
	.headerSection {
		margin-bottom: var(--spacingLg);
	}
	
	.logoImage {
		width: 80px;
		height: 80px;
	}
	
	.mainTitle {
		font-size: var(--fontSizeXl);
		margin-bottom: var(--spacingSm);
	}
	
	.descriptionText {
		font-size: var(--fontSizeSm);
		margin-bottom: var(--spacingLg);
	}
}
