/* ==================== 公共基础样式 ==================== */

/* 页面根容器，限制最大宽度并居中 */
#app {
  width: 100%;
  min-width: 320px;
  overflow-x: hidden;
}

/* 内容容器 */
.container {
  width: 100%;
  margin: 0 auto;
}

/* 图片默认自适应，防止溢出 */
img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* ==================== 页面结构样式 ==================== */

/* ==================== Banner 组件样式 ==================== */

/* Banner 主体：按 Figma 设计固定 1920×823，居中并限制最大宽度 */
.banner {
  position: relative;
  width: 1920px;
  height: 824px;
  max-width: 100%;
  margin: 0 auto;
  overflow: hidden;
  background-color: #000;
}

/* Banner 背景图层：绝对定位铺满 */
.banner-bg {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.banner-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Banner 内容层：承载绝对定位装饰元素 */
.banner-content {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  pointer-events: none;
}

/* Banner 装饰图：按 Figma 坐标 (341.04, 73) 与尺寸 247.02×79.92 等比定位 */
.banner-decoration {
  position: absolute;
  left: 17.7625%;
  top: 8.87%;
  width: 12.8667%;
  height: auto;
  pointer-events: auto;
}

/* ==================== 校园动态（part_1）组件样式 ==================== */

/* 板块整体：桂花山水背景图铺满，内容居中 */
.news-section {
  padding-top: 80px;
  padding-bottom: 80px;
  background: #f2eee3 url("../images/news-bg.png") center top / cover no-repeat;
}

/* 板块标题：装饰图居中展示（468×162） */
.news-heading {
  margin: 0;
  text-align: center;
}

.news-title-img {
  width: 468px;
  max-width: 100%;
  margin: 0 auto;
}

/* 内容卡片：1200×847，半透明白底 + 20px 圆角，内部左右布局 */
.news-card {
  display: flex;
  width: 1200px;
  max-width: 100%;
  height: 847px;
  margin: 49px auto 0;
  padding: 40px;
  box-sizing: border-box;
  background: rgba(255, 255, 255, 0.5);
  border-radius: 20px;
}

/* 左侧焦点新闻：633×767 白底卡片，1px 浅灰描边 */
.news-featured {
  flex: 0 0 633px;
  width: 633px;
  height: 767px;
  background: #fff;
  border: 1px solid #ddd;
  overflow: hidden;
}

/* 焦点新闻配图：633×521.5，悬停时轻微放大 */
.news-featured-img {
  width: 633px;
  height: 521px;
  overflow: hidden;
}

.news-featured-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.news-featured:hover .news-featured-img img {
  transform: scale(1.05);
}

/* 焦点新闻文字区：左右 40px 内边距，顶部 26.5px */
.news-featured-text {
  padding: 26px 40px 0;
}

/* 焦点新闻标题：20px 黑色，文字顶对齐，预留 60px 高度 */
.news-featured-title {
  height: 60px;
  margin: 0;
  font-size: 20px;
  line-height: 30px;
  font-weight: 400;
  color: #000;
  overflow: hidden;
}

/* 焦点新闻摘要：14px 灰色，两行 46px，超出省略 */
.news-featured-desc {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  height: 46px;
  margin: 13px 0 0;
  font-size: 14px;
  line-height: 23px;
  color: #999;
  overflow: hidden;
}

/* 焦点新闻信息行：47px 高，日期居左、来源居右 */
.news-featured .news-meta {
  justify-content: space-between;
  height: 47px;
  margin-top: 9px;
}

/* 新闻信息行通用：日期 + 来源 */
.news-meta {
  display: flex;
  align-items: center;
  font-size: 16px;
  color: #999;
}

/* 日期：CSS 日历图标 + 日期文字 */
.news-date {
  display: flex;
  align-items: center;
  gap: 5px;
}

/* 纯 CSS 日历图标（19×19，对应设计稿日历 SVG 图形，规范禁用 SVG 故用 CSS 绘制） */
.date-icon {
  position: relative;
  flex: 0 0 19px;
  width: 19px;
  height: 19px;
}

/* 日历外框与横向分隔线 */
.date-icon::before {
  content: "";
  position: absolute;
  left: 2.4px;
  top: 3.2px;
  width: 14.2px;
  height: 14.2px;
  box-sizing: border-box;
  border: 2px solid #ddd;
  border-radius: 2px;
  background: linear-gradient(#ddd, #ddd) no-repeat 0 2.7px / 100% 2px;
}

/* 日历顶部两个挂环 */
.date-icon::after {
  content: "";
  position: absolute;
  left: 5.3px;
  top: 1.6px;
  width: 2px;
  height: 3.2px;
  background: #ddd;
  border-radius: 1px;
  box-shadow: 6.3px 0 0 #ddd;
}

/* 右侧新闻列表：458px 宽，顶部偏移 62px，4 条新闻各 142px、间距 25px */
.news-list {
  display: flex;
  flex-direction: column;
  gap: 25px;
  width: 458px;
  margin-top: 62px;
  margin-left: 25px;
}

/* 单条新闻：142px 高，悬停时标题变为金色 */
.news-item {
  height: 142px;
  cursor: pointer;
}

/* 新闻标题：24px 深灰，单行省略 */
.news-item-title {
  height: 34px;
  margin: 0;
  font-size: 24px;
  line-height: 34px;
  font-weight: 400;
  color: #333;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: color 0.3s ease;
}

.news-item:hover .news-item-title {
  color: #bea77d;
}

/* 新闻摘要：14px 深灰，两行 46px，超出省略 */
.news-item-desc {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  height: 46px;
  margin: 20px 0 0;
  font-size: 14px;
  line-height: 23px;
  color: #333;
  overflow: hidden;
}

/* 新闻信息行：24px 高，来源与日期间隔 60px */
.news-item .news-meta {
  height: 24px;
  margin-top: 18px;
}

.news-item .news-source {
  margin-left: 60px;
}

/* 查看更多按钮：314×59，金色描边 + 金色文字，悬停反白 */
.news-more {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 314px;
  height: 59px;
  margin: 50px auto 0;
  box-sizing: border-box;
  font-size: 20px;
  color: #bea77d;
  text-decoration: none;
  border: 1px solid #bea77d;
  border-radius: 10px;
  transition:
    background-color 0.3s ease,
    color 0.3s ease;
}

.news-more:hover {
  background: #bea77d;
  color: #fff;
}

.part_2 {
  padding-top: 80px;
  padding-bottom: 80px;
  background-image: url(../images/part_2_bg.png);
  background-size: cover;
}

.part_2 .part_2-title {
  display: block;
  margin: 0 auto;
}

.part_2 .part_2-content {
  width: 1200px;
  margin: 0 auto;
}

.part_2 .part_2-content .part_2-info {
  color: #bea77d;
  display: flex;
  justify-content: space-between;
  margin-top: 80px;
}

.part_2 .part_2-content .part_2-lantern {
  margin-top: 20px;
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  justify-content: space-between;
}

.part_2-lantern-img {
  width: 80%;
  margin: 0 auto;
}

.part_2-lantern-img-active {
  width: 80%;
  margin: 0 auto;
  display: none;
}

/* 点亮后：显示点亮态花灯图，隐藏默认图 */
.part_2-lantern-item.is-lit .part_2-lantern-img {
  display: none;
}

.part_2-lantern-item.is-lit .part_2-lantern-img-active {
  display: block;
}

.part_2-lantern-item-btn {
  width: 50%;
  background-color: #20264b;
  border: 1px solid #bea176;
  color: #d9c585;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 32px;
  border-radius: 24px;
  padding: 8px;
  cursor: pointer;
  transition:
    background-color 0.3s ease,
    color 0.3s ease,
    box-shadow 0.3s ease;
}

/* 点亮后：按钮变为金色高亮态 */
.part_2-lantern-item.is-lit .part_2-lantern-item-btn {
  color: #333;
  background: #faa810;
  box-shadow: 0 0 16px rgba(250, 168, 16, 0.5);
}

/* 点亮计数：当前数量红色强调 */
.part_2-light-count {
  font-size: 32px;
  font-weight: 400;
  color: #c70915;
}

/* 计数变化时的跳动反馈动画 */
.part_2-light-count.is-bump {
  animation: part-2-count-bump 0.5s ease;
}

@keyframes part-2-count-bump {
  0% {
    transform: scale(1);
  }
  40% {
    transform: scale(1.5);
  }
  100% {
    transform: scale(1);
  }
}

/* ==================== 灯谜弹窗（part_2）组件样式 ==================== */

/* 弹窗容器：默认隐藏，激活时 flex 居中 */
.part-2-riddle-modal,
.part-2-win-modal {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 99;
  display: none;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

.part-2-riddle-modal.is-open,
.part-2-win-modal.is-open {
  display: flex;
}

/* 遮罩层：深色半透明 */
.part-2-riddle-mask {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgba(20, 24, 48, 0.65);
}

/* 弹窗主体：暖白色底 + 圆角阴影 */
.part-2-riddle-dialog {
  position: relative;
  width: 520px;
  max-width: 90%;
  padding: 36px 32px;
  box-sizing: border-box;
  background: #fffaf7;
  border-radius: 20px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25);
  animation: part-2-dialog-in 0.35s ease;
}

/* 弹窗入场动画：轻微上浮淡入 */
@keyframes part-2-dialog-in {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 关闭按钮：右上角红色叉号 */
.part-2-riddle-close {
  position: absolute;
  right: 14px;
  top: 10px;
  width: 44px;
  height: 44px;
  padding: 0;
  font-size: 32px;
  line-height: 1;
  color: #b93a2f;
  background: transparent;
  border: none;
  cursor: pointer;
  transition: color 0.3s ease;
}

.part-2-riddle-close:hover {
  color: #d9534f;
}

/* 弹窗头部：标题标签居中 */
.part-2-riddle-header {
  text-align: center;
}

/* 标题标签：红色圆角胶囊，如“灯谜 · 第 2 盏” */
.part-2-riddle-tag {
  display: inline-block;
  padding: 6px 18px;
  font-size: 14px;
  font-weight: 500;
  color: #fff;
  background: #b93a2f;
  border-radius: 999px;
}

/* 谜面文字：红褐色居中 */
.part-2-riddle-question {
  margin: 24px 0 0;
  font-size: 22px;
  font-weight: 500;
  line-height: 36px;
  text-align: center;
  color: #8b2e22;
}

/* 谜目：如“打一文具”，红色小字居中 */
.part-2-riddle-type {
  margin: 8px 0 0;
  font-size: 14px;
  text-align: center;
  color: #b93a2f;
}

/* 选项区：纵向排列 */
.part-2-riddle-options {
  margin-top: 26px;
}

/* 单个选项：白色底 + 浅灰描边圆角按钮 */
.part-2-riddle-option {
  display: block;
  width: 100%;
  min-height: 48px;
  margin-top: 12px;
  padding: 10px 20px;
  box-sizing: border-box;
  font-family: inherit;
  font-size: 16px;
  color: #333;
  text-align: center;
  background: #fff;
  border: 1px solid #e5dcd4;
  border-radius: 12px;
  cursor: pointer;
  transition:
    background-color 0.3s ease,
    border-color 0.3s ease,
    color 0.3s ease;
}

.part-2-riddle-option:not(:disabled):hover {
  background: #fff0ea;
}

/* 答对选项：绿色高亮 */
.part-2-riddle-option.is-right {
  color: #2e7d32;
  background: #e8f5e9;
  border-color: #4caf50;
}

/* 答错选项：红色高亮 + 抖动动画 */
.part-2-riddle-option.is-wrong {
  color: #c70915;
  background: #ffebee;
  border-color: #c70915;
  cursor: not-allowed;
  animation: part-2-option-shake 0.4s ease;
}

@keyframes part-2-option-shake {
  0%,
  100% {
    transform: translateX(0);
  }
  25% {
    transform: translateX(-6px);
  }
  75% {
    transform: translateX(6px);
  }
}

/* 答题反馈文字 */
.part-2-riddle-feedback {
  min-height: 22px;
  margin: 16px 0 0;
  font-size: 14px;
  text-align: center;
  color: #4caf50;
}

.part-2-riddle-feedback.is-error {
  color: #c70915;
}

/* 通关弹窗：居中展示 */
.part-2-win-dialog {
  text-align: center;
}

.part-2-win-title {
  margin: 10px 0 0;
  font-size: 36px;
  font-weight: 500;
  color: #b93a2f;
}

.part-2-win-desc {
  margin: 18px 0 0;
  font-size: 18px;
  line-height: 30px;
  color: #5c3a32;
}

/* 通关确认按钮：红色胶囊按钮 */
.part-2-win-confirm {
  min-width: 180px;
  height: 49px;
  margin-top: 26px;
  padding: 0 30px;
  font-family: inherit;
  font-size: 18px;
  font-weight: 500;
  color: #fff;
  background: #b93a2f;
  border: none;
  border-radius: 999px;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.part-2-win-confirm:hover {
  background: #d9534f;
}

/* ==================== 诗词接龙（part_3）组件样式 ==================== */

/* 板块整体：按 Figma 设计 1920×1711，诗词卷轴背景铺满 */
.poetry-section {
  width: 1920px;
  max-width: 100%;
  min-height: 1711px;
  margin: 0 auto;
  padding: 104px 0 80px;
  box-sizing: border-box;
  background: url("../images/part-3-bg.png") center top / cover no-repeat;
}

/* 内容容器：1218px 宽居中 */
.poetry-inner {
  width: 1218px;
  max-width: 100%;
  margin: 0 auto;
}

/* 板块标题：装饰图居中 */
.poetry-heading {
  margin: 0;
  text-align: center;
}

.poetry-title-img {
  width: 410px;
  max-width: 100%;
  margin: 0 auto;
}

/* 状态栏：计数 + 进度条 + 玩法提示，1027px 宽居中 */
.poetry-status {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 1027px;
  max-width: 100%;
  height: 48px;
  margin: 42px auto 0;
}

/* 已对出计数：金色文字，当前数量红色强调 */
.poetry-count {
  margin: 0;
  font-size: 18px;
  font-weight: 500;
  color: #bea77d;
}

.poetry-count-num {
  font-size: 32px;
  font-weight: 400;
  color: #c70915;
}

/* 计数跳动动画 */
.poetry-count-num.is-bump {
  animation: poetry-count-bump 0.5s ease;
}

@keyframes poetry-count-bump {
  0% {
    transform: scale(1);
  }
  40% {
    transform: scale(1.5);
  }
  100% {
    transform: scale(1);
  }
}

/* 进度条：597×11 圆角胶囊 */
.poetry-progress {
  flex: 1;
  max-width: 597px;
  margin: 0 20px;
}

.poetry-progress-track {
  position: relative;
  width: 100%;
  height: 11px;
  background: rgba(190, 167, 125, 0.44);
  border-radius: 999px;
  overflow: hidden;
}

.poetry-progress-fill {
  width: 0%;
  height: 100%;
  background: #9e2b25;
  border-radius: 999px;
  transition: width 0.6s ease;
}

/* 玩法提示：金色右对齐 */
.poetry-hint {
  margin: 0;
  font-size: 18px;
  font-weight: 500;
  color: #bea77d;
}

/* 诗词卡片网格：2 列，42px 间距 */
.poetry-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 42px;
  width: 1218px;
  max-width: 100%;
  margin: 90px auto 0;
}

/* 单张诗牌卡片：588×274，白底 + 金边 + 左侧暗红竖条 */
.poetry-card {
  position: relative;
  width: 588px;
  max-width: 100%;
  min-height: 274px;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid #c8a45c;
  transition: background 0.5s ease;
}

/* 左侧暗红装饰条 */
.poetry-card-bar {
  position: absolute;
  left: 0;
  top: 0;
  width: 6px;
  height: 100%;
  background: #9e2b25;
}

/* 卡片主体内容区：宽 528px，左侧避开 6px 装饰条 */
.poetry-card-body {
  position: relative;
  padding: 20px 20px 20px 32px;
  box-sizing: content-box;
}

/* 已点亮态：米黄色渐变背景 */
.poetry-card.is-solved {
  background: linear-gradient(90deg, #fffdf5 0%, #fdf4e0 100%);
}

/* 编号：金色右上对齐 */
.poetry-card-no {
  text-align: right;
  font-size: 14px;
  font-weight: 400;
  color: #bea77d;
  position: absolute;
  right: 20px;
}

/* 诗句区域 */
.poetry-card-verse {
  height: 91px;
  margin-top: 16px;
}

/* 上句：黑色 28px */
.poetry-card-line1 {
  margin: 0;
  font-size: 28px;
  line-height: 42px;
  font-weight: 400;
  color: #000;
}

/* 下句占位：大号“？” */
.poetry-card-line2 {
  margin: 0;
  font-size: 28px;
  line-height: 42px;
  font-weight: 400;
  color: #c70915;
}

.poetry-card-line2.is-missing {
  font-size: 36px;
  line-height: 44px;
  color: #cabb93;
}

/* 选项区：横向排列 */
.poetry-card-options {
  display: flex;
  flex-wrap: wrap;
  gap: 17px;
  margin-top: 38px;
}

/* 选项胶囊：米黄底 + 浅金描边 */
.poetry-card-option {
  padding: 4px 18px;
  box-sizing: border-box;
  font-family: inherit;
  font-size: 18px;
  font-weight: 500;
  color: #989283;
  background: #fff7e9;
  border: 1px solid #e7d3a8;
  border-radius: 999px;
  cursor: pointer;
  transition:
    background 0.3s ease,
    color 0.3s ease,
    border-color 0.3s ease,
    box-shadow 0.3s ease;
}

.poetry-card-option:not(:disabled):hover {
  background: #ffeccf;
  box-shadow: 0 0 8px rgba(190, 167, 125, 0.3);
}

/* 正确选项：金色渐变高亮 */
.poetry-card-option.is-correct {
  color: #6c4e14;
  background: linear-gradient(180deg, #efca7a 0%, #dfae50 100%);
  border-color: #e7d3a8;
  cursor: default;
}

/* 错误选项：红色描边 */
.poetry-card-option.is-wrong {
  color: #c70915;
  background: #ffebee;
  border-color: #c70915;
  cursor: not-allowed;
  animation: poetry-option-shake 0.4s ease;
}

/* 未选中的其他选项：完成后置灰 */
.poetry-card-option.is-passive {
  color: #b0a99a;
  background: #fff7e9;
  border-color: #e7d3a8;
  cursor: default;
}

@keyframes poetry-option-shake {
  0%,
  100% {
    transform: translateX(0);
  }
  25% {
    transform: translateX(-6px);
  }
  75% {
    transform: translateX(6px);
  }
}

/* 出处信息：卡片底部 */
.poetry-card-source {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 40px;
  font-size: 18px;
  font-weight: 500;
  color: #ada18e;
}

.poetry-card-source[aria-hidden="true"] {
  visibility: hidden;
}

/* 出处图标：CSS 书本形状替代 SVG */
.poetry-card-icon {
  position: relative;
  width: 18px;
  height: 14px;
  border: 1px solid #ada18e;
  border-radius: 1px;
  background: linear-gradient(#fff 50%, #ada18e 50%, #ada18e 52%, #fff 52%);
}

.poetry-card-icon::before {
  content: "";
  position: absolute;
  left: 2px;
  top: -2px;
  width: 2px;
  height: 4px;
  background: #ada18e;
  border-radius: 1px;
  box-shadow: 11px 0 0 #ada18e;
}

/* 全部完成提示：默认隐藏，完成后淡入 */
.poetry-complete {
  margin: 20px 0 0;
  font-size: 24px;
  text-align: center;
  color: #9e2b25;
  opacity: 0;
  transform: translateY(10px);
  transition:
    opacity 0.5s ease,
    transform 0.5s ease;
}

.poetry-tip {
  text-align: center;
  margin-top: 20px;
  color: #bea77d;
  font-size: 18px;
}

.poetry-complete.is-show {
  opacity: 1;
  transform: translateY(0);
}

/* ==================== 中秋文化（part_4）组件样式 ==================== */

/* 板块整体：按 Figma 设计 1918×921，温暖底纹背景图居中覆盖 */
.culture-section {
  position: relative;
  width: 1920px;
  max-width: 100%;
  min-height: 921px;
  margin: 0 auto;
  padding-top: 88px;
  padding-bottom: 60px;
  box-sizing: border-box;
  overflow: hidden;
}

/* 背景图层：绝对定位铺满 */
.culture-bg {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}

.culture-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 内容层：承载标题与卡片 */
.culture-inner {
  position: relative;
  z-index: 1;
}

/* 板块标题装饰图（406×110） */
.culture-heading {
  margin: 0;
  text-align: center;
}

.culture-title-img {
  width: 406px;
  max-width: 100%;
  margin: 0 auto;
}

/* 三张知识卡片容器：1285px 宽，横向三列 */
.culture-cards {
  display: grid;
  grid-template-columns: repeat(3, 406px);
  gap: 33.5px;
  width: 1285px;
  max-width: 100%;
  margin: 80px auto 0;
  align-items: stretch;
}

/* 单张知识卡片：白底 + 金色描边 + 圆角 */
.culture-card {
  display: flex;
  flex-direction: column;
  min-height: 612px;
  padding: 41px;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid #bea77d;
  border-radius: 20px;
  transition:
    transform 0.4s ease,
    box-shadow 0.4s ease;
}

.culture-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.12);
}

/* 卡片顶部装饰图标 */
.culture-card-icon {
  height: 95px;
}

.culture-card-icon img {
  width: auto;
  max-width: 100%;
  height: 100%;
  object-fit: contain;
}

/* 卡片标题：暗红色 30px */
.culture-card-title {
  margin: 20px 0 0;
  font-size: 30px;
  font-weight: 400;
  color: #9e2b25;
}

/* 时间轴列表：左侧留空用于圆点与连线 */
.culture-timeline {
  position: relative;
  margin: 40px 0 0;
  padding: 0 0 0 26px;
  list-style: none;
}

/* 时间轴竖线 */
.culture-timeline::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 9px;
  bottom: 24px;
  width: 1px;
  background: #d9d0c0;
}

/* 时间轴条目 */
.culture-timeline-item {
  position: relative;
  padding: 0 0 28px;
  font-size: 18px;
  line-height: 27px;
}

.culture-timeline-item:last-child {
  padding-bottom: 0;
}

/* 时间轴圆点 */
.culture-timeline-item::before {
  content: "";
  position: absolute;
  left: -26px;
  top: 8px;
  width: 9px;
  height: 9px;
  background: #bea77d;
  border: 2px solid #fff;
  border-radius: 50%;
  box-shadow: 0 0 0 1px #d9d0c0;
}

/* 标签：黑色加粗 */
.culture-label {
  color: #000;
  font-weight: 500;
}

/* 描述：深色复古灰 */
.culture-desc {
  color: #989283;
  font-weight: 500;
}

/* 卡片来源：金色 14px */
.culture-source {
  margin: auto 0 0;
  padding-top: 28px;
  font-size: 14px;
  color: #bea77d;
}

/* ==================== 知识问答（part_5）组件样式 ==================== */

/* 板块整体：按 Figma 设计 1918×906，背景图旋转 180° 还原设计稿 */
.quiz-section {
  position: relative;
  width: 1920px;
  max-width: 100%;
  min-height: 906px;
  margin: 0 auto;
  padding-top: 102px;
  padding-bottom: 60px;
  box-sizing: border-box;
  overflow: hidden;
}

/* 背景图层：绝对定位铺满，图片旋转 180° */
.quiz-bg {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}

.quiz-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: rotate(180deg);
}

/* 内容层 */
.quiz-inner {
  position: relative;
  z-index: 1;
}

/* 板块标题装饰图（544×116） */
.quiz-heading {
  margin: 0;
  text-align: center;
}

.quiz-title-img {
  width: 544px;
  max-width: 100%;
  margin: 0 auto;
}

/* 答题卡片：1352×596，白底金边圆角 */
.quiz-card {
  width: 1352px;
  max-width: 100%;
  min-height: 596px;
  margin: 40px auto 0;
  padding: 41px;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid #bea77d;
  border-radius: 20px;
}

/* 顶部状态栏：题号 + 进度条 */
.quiz-status {
  display: flex;
  align-items: center;
  gap: 20px;
}

/* 题号：当前题号红色高亮 */
.quiz-count {
  flex: 0 0 auto;
  margin: 0;
  font-size: 18px;
  font-weight: 500;
  color: #000;
}

.quiz-count-current {
  font-size: 32px;
  font-weight: 400;
  color: #c70915;
}

.quiz-count-total {
  font-size: 18px;
  color: #000;
}

/* 进度条：10px 高圆角胶囊 */
.quiz-progress {
  flex: 1;
  max-width: 1153px;
}

.quiz-progress-track {
  width: 100%;
  height: 10px;
  background: #ddd;
  border-radius: 999px;
  overflow: hidden;
}

.quiz-progress-fill {
  width: 0%;
  height: 100%;
  background: #c70915;
  border-radius: 999px;
  transition: width 0.4s ease;
}

/* 题目文字：32px 黑色 */
.quiz-question {
  margin: 38px 0 0;
  font-size: 32px;
  font-weight: 400;
  line-height: 44px;
  color: #000;
}

/* 选项区：两行，第一行两个，第二行一个居左 */
.quiz-options {
  display: flex;
  flex-wrap: wrap;
  gap: 20px 15px;
  margin-top: 40px;
}

/* 单个选项：默认米黄底 + 金色描边 */
.quiz-option {
  width: 582px;
  max-width: 100%;
  height: 58px;
  padding: 0 20px;
  box-sizing: border-box;
  font-family: inherit;
  font-size: 24px;
  font-weight: 400;
  color: #47433c;
  text-align: center;
  background: #faf5ea;
  border: 1px solid #b89757;
  border-radius: 999px;
  cursor: pointer;
  transition:
    background-color 0.3s ease,
    border-color 0.3s ease,
    color 0.3s ease,
    transform 0.2s ease;
}

.quiz-option:not(:disabled):hover {
  transform: scale(1.02);
}

/* 答错选项：浅红底 + 红字 */
.quiz-option.is-wrong {
  color: #ab3e3e;
  background: #fdf0f0;
  border-color: #e58787;
}

/* 答对选项：浅绿底 + 绿字 */
.quiz-option.is-right {
  color: #387d47;
  background: #effaf1;
  border-color: #54986d;
}

/* 未参与且已答题的选项：置为不可点 */
.quiz-option.is-disabled {
  cursor: not-allowed;
  opacity: 0.7;
}

/* 答题反馈区：米黄背景 + 金色文字 */
.quiz-feedback {
  margin-top: 40px;
  padding: 20px;
  background: #fdf8ec;
  border: 1px solid #f1dcb8;
  opacity: 0;
  transform: translateY(10px);
  transition:
    opacity 0.4s ease,
    transform 0.4s ease;
}

.quiz-feedback.is-show {
  opacity: 1;
  transform: translateY(0);
}

.quiz-feedback-text {
  margin: 0;
  font-size: 24px;
  line-height: 36px;
  color: #bea77d;
  text-align: center;
}

/* 下一题 / 完成挑战 按钮：金色胶囊 */
.quiz-next {
  display: block;
  width: 151px;
  height: 43px;
  margin: 30px auto 0;
  padding: 0;
  font-family: inherit;
  font-size: 20px;
  font-weight: 400;
  color: #000;
  background: #e3b152;
  border: 1px solid #e8bc63;
  border-radius: 999px;
  cursor: pointer;
  transition:
    background-color 0.3s ease,
    box-shadow 0.3s ease;
}

.quiz-next:disabled {
  background: #e3d2b2;
  border-color: #d8c9a8;
  cursor: not-allowed;
}

.quiz-next:not(:disabled):hover {
  background: #f0c46a;
  box-shadow: 0 4px 14px rgba(227, 177, 82, 0.4);
}

/* ==================== 云上寄语·心愿升空（part_6）组件样式 ==================== */

/* 板块整体：夜空背景图居中铺满，内容流式排列，任意屏宽自动居中 */
.wish-section {
  width: 100%;
  max-width: 1920px;
  margin: 0 auto;
  padding: 80px 0 85px;
  box-sizing: border-box;
  background: url("../images/part-6-bg.png") no-repeat center top / cover;
}

/* 板块标题装饰图（453×242）：流式居中 */
.wish-heading {
  margin: 0;
  text-align: center;
}

.wish-title-img {
  width: 453px;
  max-width: 100%;
  margin: 0 auto;
}

/* 心愿卡展示区：1330×496，仅作为内部卡片的定位参照（卡片允许定位），
   负上边距还原设计稿中首尾卡片与标题装饰图的交叠关系 */
.wish-stage {
  position: relative;
  width: 1330px;
  max-width: 100%;
  height: 496px;
  margin: -110px auto 0;
}

/* 心愿卡：220×105，蓝紫渐变底 + 金色描边，默认缓慢上下漂浮 */
.wish-card {
  position: absolute;
  width: 220px;
  height: 105px;
  box-sizing: border-box;
  background: linear-gradient(180deg, #3a497f 0%, #2a376a 100%);
  border: 1px solid #c8a45c;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.3);
  animation: wish-card-float 4.5s ease-in-out infinite alternate;
}

/* 新卡入场：缩放弹出动画，结束后由 JS 移除 .is-new 恢复漂浮动画 */
.wish-card.is-new {
  animation: wish-card-pop 0.45s ease both;
}

/* 初始七张卡的漂浮节奏错开，避免整齐划一 */
.wish-card-2,
.wish-card-5 {
  animation-duration: 5.2s;
  animation-delay: -1.6s;
}

.wish-card-3,
.wish-card-6 {
  animation-duration: 3.8s;
  animation-delay: -2.4s;
}

.wish-card-4,
.wish-card-7 {
  animation-duration: 4.9s;
  animation-delay: -0.8s;
}

/* 初始七张卡位置（相对展示区，按 Figma 设计稿） */
.wish-card-1 {
  left: 0;
  top: 307px;
}

.wish-card-2 {
  left: 1110px;
  top: 0;
}

.wish-card-3 {
  left: 756px;
  top: 381px;
}

.wish-card-4 {
  left: 58px;
  top: 42px;
}

.wish-card-5 {
  left: 305px;
  top: 391px;
}

.wish-card-6 {
  left: 510px;
  top: 186px;
}

.wish-card-7 {
  left: 1046px;
  top: 269px;
}

/* 卡片左侧金色竖条 */
.wish-card-bar {
  position: absolute;
  left: 0;
  top: 0;
  width: 5px;
  height: 100%;
  background: #bea77d;
}

/* 卡片心愿文案 */
.wish-card-text {
  position: absolute;
  left: 31px;
  top: 15px;
  width: 178px;
  margin: 0;
  font-size: 18px;
  font-weight: 500;
  line-height: 26px;
  color: #f6f6f6;
}

/* 卡片右下角装饰图标（62×63） */
.wish-card-icon {
  position: absolute;
  left: 156px;
  top: 42px;
  width: 62px;
  height: 63px;
}

/* 放飞完成提示：居中于展示区，默认透明 */
.wish-toast {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 60;
  margin: 0;
  padding: 14px 34px;
  font-size: 20px;
  color: #bea77d;
  white-space: nowrap;
  background: rgba(33, 44, 91, 0.85);
  border: 1px solid #bea77d;
  border-radius: 999px;
  opacity: 0;
  transform: translate(-50%, -50%);
  transition: opacity 0.5s ease;
  pointer-events: none;
}

.wish-toast.is-show {
  opacity: 1;
}

/* 底部操作面板：宽 1164 半透明圆角底，流式居中，高度随标签换行自适应 */
.wish-panel {
  width: 1164px;
  max-width: 100%;
  margin: 64px auto 0;
  box-sizing: border-box;
  padding: 37px 0;
  background: rgba(33, 44, 91, 0.5);
  border-radius: 20px;
}

/* 祝福标签行：胶囊按钮横向排列，放不下时自动换行 */
.wish-tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 17px;
  padding: 0 37px;
}

/* 单个祝福标签：深蓝底 + 复古描边 + 金字 */
.wish-tag {
  height: 49px;
  padding: 0 20px;
  box-sizing: border-box;
  font-family: inherit;
  font-size: 18px;
  font-weight: 500;
  color: #bea77d;
  white-space: nowrap;
  background: #313f73;
  border: 1px solid #989283;
  border-radius: 999px;
  cursor: pointer;
  transition:
    background-color 0.3s ease,
    transform 0.2s ease,
    box-shadow 0.3s ease;
}

.wish-tag:hover {
  background: #3d4d85;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(190, 167, 125, 0.25);
}

/* 操作按钮行 */
.wish-actions {
  display: flex;
  justify-content: center;
  gap: 24px;
  margin-top: 34px;
}

/* 按钮公共样式：151×43 胶囊 */
.wish-btn {
  width: 151px;
  height: 43px;
  padding: 0;
  box-sizing: border-box;
  font-family: inherit;
  font-size: 20px;
  font-weight: 400;
  border-radius: 999px;
  cursor: pointer;
  transition:
    background-color 0.3s ease,
    box-shadow 0.3s ease,
    transform 0.2s ease;
}

/* 放飞心愿：金色实心 */
.wish-btn-fly {
  color: #000;
  background: #e3b152;
  border: 1px solid #e8bc63;
}

.wish-btn-fly:hover {
  background: #f0c46a;
  box-shadow: 0 4px 14px rgba(227, 177, 82, 0.4);
}

.wish-btn:active {
  transform: scale(0.96);
}

/* 心愿卡缓慢上下漂浮 */
@keyframes wish-card-float {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(-6px);
  }
}

/* 新心愿卡弹出入场 */
@keyframes wish-card-pop {
  0% {
    opacity: 0;
    transform: scale(0.6);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

/* ==================== 响应式媒体查询 ==================== */

/* 手机适配：768px 及以下 */
@media (max-width: 768px) {
  /* Banner 宽度占满视口，高度按 1920:823 比例自适应 */
  .banner {
    width: 100%;
    height: calc(100vw * 823 / 1920);
  }
  .banner-decoration {
    width: 24%;
    left: 8%;
  }

  /* 校园动态板块：整体上下留白收紧 */
  .news-section {
    padding-top: 40px;
    padding-bottom: 40px;
  }

  /* 板块标题装饰图缩小 */
  .news-title-img {
    width: 240px;
  }

  /* 内容卡片：改为纵向布局，高度自适应 */
  .news-card {
    flex-direction: column;
    width: auto;
    height: auto;
    margin: 30px 15px 0;
    padding: 15px;
  }

  /* 焦点新闻：宽度占满卡片 */
  .news-featured {
    flex: none;
    width: 100%;
    height: auto;
  }

  /* 焦点新闻配图：宽度占满，高度按比例自适应 */
  .news-featured-img {
    width: 100%;
    height: auto;
  }

  .news-featured-img img {
    height: auto;
  }

  /* 焦点新闻文字区内边距收紧 */
  .news-featured-text {
    padding: 20px 15px 20px;
  }

  /* 焦点新闻标题允许换行 */
  .news-featured-title {
    height: auto;
    font-size: 18px;
    line-height: 28px;
  }

  /* 焦点新闻摘要高度自适应 */
  .news-featured-desc {
    height: auto;
    margin-top: 10px;
  }

  /* 焦点新闻信息行收紧 */
  .news-featured .news-meta {
    height: 44px;
    margin-top: 10px;
  }

  /* 新闻列表：占满卡片宽度，取消顶部偏移 */
  .news-list {
    width: 100%;
    margin-top: 25px;
    margin-left: 0;
  }

  /* 单条新闻高度自适应 */
  .news-item {
    height: auto;
  }

  /* 新闻标题缩小字号并允许换行 */
  .news-item-title {
    height: auto;
    font-size: 18px;
    line-height: 28px;
    white-space: normal;
  }

  /* 新闻摘要与信息行间距收紧 */
  .news-item-desc {
    height: auto;
    margin-top: 10px;
  }

  .news-item .news-meta {
    height: 44px;
    margin-top: 10px;
    font-size: 14px;
  }

  .news-item .news-source {
    margin-left: 30px;
  }

  /* 查看更多按钮上移 */
  .news-more {
    margin-top: 30px;
  }

  /* ================ */
  .part_2 .part_2-title {
    width: 240px;
  }

  .part_2 .part_2-content {
    width: 100%;
    padding: 20px;
  }
  .part_2 .part_2-content .part_2-info {
    flex-direction: column;
  }
  .part_2 .part_2-content .part_2-lantern {
    grid-template-columns: repeat(4, 1fr);
    gap: 20px 0;
  }
  .part_2-lantern-item-btn {
    width: 92%;
  }

  /* 灯谜弹窗：内边距与字号收紧 */
  .part-2-riddle-dialog {
    padding: 28px 20px;
  }

  .part-2-riddle-question {
    font-size: 18px;
    line-height: 30px;
  }

  .part-2-riddle-option {
    min-height: 44px;
    font-size: 15px;
  }

  .part-2-win-title {
    font-size: 28px;
  }

  .part-2-win-desc {
    font-size: 15px;
    line-height: 26px;
  }

  /* 诗词接龙板块：高度自适应，内边距收紧 */
  .poetry-section {
    width: 100%;
    min-height: auto;
    padding: 40px 0 60px;
  }

  .poetry-inner {
    width: auto;
    padding: 0 15px;
  }

  .poetry-title-img {
    width: 240px;
  }

  /* 状态栏：纵向排列 */
  .poetry-status {
    flex-direction: column;
    align-items: flex-start;
    width: auto;
    height: auto;
    gap: 12px;
    margin-top: 30px;
  }

  .poetry-count {
    font-size: 14px;
  }

  .poetry-count-num {
    font-size: 24px;
  }

  .poetry-progress {
    width: 100%;
    max-width: 100%;
    margin: 0;
  }

  .poetry-hint {
    font-size: 14px;
  }

  /* 诗词卡片：单列布局 */
  .poetry-grid {
    grid-template-columns: 1fr;
    gap: 20px;
    width: auto;
    margin-top: 30px;
  }

  .poetry-card {
    width: auto;
    min-height: auto;
  }

  .poetry-card-body {
    padding: 15px;
  }

  .poetry-card-verse {
    height: auto;
  }

  .poetry-card-line1,
  .poetry-card-line2 {
    font-size: 20px;
    line-height: 32px;
  }

  .poetry-card-line2.is-missing {
    font-size: 28px;
    line-height: 36px;
  }

  .poetry-card-options {
    gap: 10px;
    margin-top: 20px;
  }

  .poetry-card-option {
    height: 36px;
    padding: 0 14px;
    font-size: 14px;
  }

  .poetry-card-source {
    margin-top: 20px;
    font-size: 14px;
  }

  .poetry-complete {
    margin-top: 30px;
    font-size: 18px;
  }

  /* 中秋文化板块：背景自适应高度，卡片单列 */
  .culture-section {
    width: 100%;
    min-height: auto;
    padding-top: 40px;
    padding-bottom: 50px;
  }

  .culture-title-img {
    width: 220px;
  }

  .culture-cards {
    grid-template-columns: 1fr;
    gap: 20px;
    width: auto;
    margin: 30px 15px 0;
  }

  .culture-card {
    min-height: auto;
    padding: 25px;
  }

  .culture-card-icon {
    height: 64px;
  }

  .culture-card-title {
    margin-top: 14px;
    font-size: 22px;
  }

  .culture-timeline {
    margin-top: 22px;
  }

  .culture-timeline-item {
    padding-bottom: 18px;
    font-size: 15px;
    line-height: 24px;
  }

  .culture-source {
    padding-top: 18px;
    font-size: 12px;
  }

  /* 知识问答板块：高度自适应，卡片边距收紧 */
  .quiz-section {
    width: 100%;
    min-height: auto;
    padding-top: 40px;
    padding-bottom: 50px;
  }

  .quiz-title-img {
    width: 260px;
  }

  .quiz-card {
    width: auto;
    min-height: auto;
    margin: 25px 15px 0;
    padding: 20px;
  }

  .quiz-status {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }

  .quiz-count {
    font-size: 15px;
  }

  .quiz-count-current {
    font-size: 24px;
  }

  .quiz-progress {
    width: 100%;
    max-width: 100%;
  }

  .quiz-question {
    margin-top: 22px;
    font-size: 18px;
    line-height: 28px;
  }

  .quiz-options {
    flex-direction: column;
    gap: 12px;
    margin-top: 22px;
  }

  .quiz-option {
    width: 100%;
    height: 44px;
    font-size: 15px;
  }

  .quiz-feedback {
    margin-top: 20px;
    padding: 14px;
  }

  .quiz-feedback-text {
    font-size: 15px;
    line-height: 24px;
  }

  .quiz-next {
    width: 130px;
    height: 40px;
    margin-top: 20px;
    font-size: 16px;
  }

  /* 心愿祈福板块：上下留白收紧 */
  .wish-section {
    padding: 40px 0 30px;
  }

  .wish-title-img {
    width: 240px;
  }

  /* 心愿卡展示区：取消与标题的交叠，宽度占满，高度收紧 */
  .wish-stage {
    width: auto;
    height: 360px;
    margin: 25px 15px 0;
  }

  /* 心愿卡整体缩小 */
  .wish-card {
    width: 150px;
    height: 76px;
  }

  .wish-card-bar {
    width: 4px;
  }

  .wish-card-text {
    left: 14px;
    top: 10px;
    width: 120px;
    font-size: 12px;
    line-height: 18px;
  }

  .wish-card-icon {
    left: 104px;
    top: 34px;
    width: 42px;
    height: 42px;
  }

  /* 初始卡片在小屏下按百分比重新排布，避免溢出 */
  .wish-card-1 {
    left: 2%;
    top: 6%;
  }

  .wish-card-2 {
    left: 54%;
    top: 2%;
  }

  .wish-card-3 {
    left: 28%;
    top: 26%;
  }

  .wish-card-4 {
    left: 4%;
    top: 48%;
  }

  .wish-card-5 {
    left: 52%;
    top: 52%;
  }

  .wish-card-6 {
    left: 8%;
    top: 74%;
  }

  .wish-card-7 {
    left: 50%;
    top: 78%;
  }

  .wish-toast {
    padding: 10px 20px;
    font-size: 14px;
  }

  /* 底部面板：自适应高度，标签换行排列 */
  .wish-panel {
    width: auto;
    height: auto;
    margin: 25px 15px 0;
    padding: 20px 15px;
  }

  .wish-tags {
    flex-wrap: wrap;
    gap: 10px;
    padding: 0;
  }

  .wish-tag {
    height: 44px;
    padding: 0 16px;
    font-size: 14px;
  }

  .wish-actions {
    gap: 15px;
    margin-top: 20px;
  }

  .wish-btn {
    width: 130px;
    height: 44px;
    font-size: 16px;
  }
}
