/* 基础样式、设计基准缩放、息屏、通用控件 */
:root {
  --stage-w: 3840px; /* 设计基准宽，实际由 config.display.designWidth 注入 */
  --stage-h: 1440px; /* 设计基准高，实际由 config.display.designHeight 注入 */
  --crcc-red: #c8102e;
  --crcc-red-bright: #e5233d;
  --bg-dark: #0b0f1a;
  --bg-panel: #101626;
  --text: #ffffff;
  --text-dim: rgba(255, 255, 255, 0.6);
  /* 口号字体：仅为可替换 fallback，正式题词字样以 branding.sloganAsset 优先 */
  --slogan-font: "STZhongsong", "SimSun", "Songti SC", serif;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: #000;
  font-family: "Microsoft YaHei", "PingFang SC", "Noto Sans SC", sans-serif;
  -webkit-user-select: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  touch-action: none;
}

/* 设计基准舞台：尺寸来自 CSS 变量（由 config.display 注入），通过 JS 按 8:3 等比缩放适配任意屏幕 */
#stage {
  position: fixed;
  top: 0;
  left: 0;
  width: var(--stage-w);
  height: var(--stage-h);
  background: var(--bg-dark);
  color: var(--text);
  overflow: hidden;
  transform-origin: 0 0;
  touch-action: none;
}

.screen {
  position: absolute;
  inset: 0;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.4s ease, visibility 0.4s ease;
}

.screen.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

/* 通用返回按钮 */
.back-btn {
  pointer-events: auto;
  font-size: 40px;
  padding: 20px 50px;
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 12px;
  cursor: pointer;
  letter-spacing: 4px;
  transition: background 0.2s ease, border-color 0.2s ease;
}

.back-btn:hover {
  background: var(--crcc-red);
  border-color: var(--crcc-red);
}

/* 左右切换边缘按钮（一级/二级共用） */
.edge-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 96px;
  height: 140px;
  font-size: 80px;
  line-height: 1;
  background: rgba(0, 0, 0, 0.32);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 16px;
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease;
}

.edge-btn:hover {
  background: rgba(200, 16, 46, 0.8);
  border-color: var(--crcc-red);
}

.edge-btn--prev { left: 24px; }
.edge-btn--next { right: 24px; }

/* ============ IDLE 息屏 ============ */
.screen--idle {
  background:
    radial-gradient(1200px 600px at 50% 42%, rgba(200, 16, 46, 0.22), transparent 62%),
    linear-gradient(180deg, #0d1224 0%, #06080f 100%);
}

.idle-content {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 56px;
}

.idle-logo {
  width: 520px;
  height: auto;
  filter: drop-shadow(0 12px 32px rgba(0, 0, 0, 0.5));
}

.idle-slogan {
  font-family: var(--slogan-font);
  font-size: 120px;
  letter-spacing: 22px;
  font-weight: 700;
  color: #fff;
  text-shadow: 0 6px 30px rgba(0, 0, 0, 0.6);
}

/* 若有正式口号字样图片素材，优先使用 */
.idle-slogan-asset {
  max-width: 62%;
  max-height: 260px;
  width: auto;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 6px 30px rgba(0, 0, 0, 0.5));
}

.idle-hint {
  font-size: 34px;
  letter-spacing: 8px;
  color: var(--text-dim);
  animation: pulse 2.4s ease-in-out infinite;
}

@keyframes pulse {
  0%, 100% { opacity: 0.3; }
  50% { opacity: 0.85; }
}

/* ============ 动效：唤醒波纹 ============ */
.ripple {
  position: absolute;
  border-radius: 50%;
  border: 4px solid rgba(229, 35, 61, 0.85);
  pointer-events: none;
  transform: scale(0);
  animation: ripple 0.9s ease-out forwards;
}

@keyframes ripple {
  to {
    transform: scale(1);
    opacity: 0;
  }
}
