* { margin: 0; padding: 0; box-sizing: border-box; }
body {
  background: #000; overflow: hidden;
  font-family: "Microsoft YaHei", "微软雅黑", sans-serif;
  display: flex; justify-content: center; align-items: center;
  height: 100vh; user-select: none;
}
#stage {
  width: 800px; height: 600px; position: relative;
  background: #000; overflow: hidden; transform-origin: center center;
}
.screen { position: absolute; top: 0; left: 0; width: 100%; height: 100%; display: none; }
.screen.active { display: block; }

/* ============ 开场页 ============ */
#screen-prelude { background: #000; cursor: pointer; }
#prelude-video {
  position: absolute; top: 0; left: 0;
  width: 100%; height: 100%; object-fit: fill; display: block;
  z-index: 1;
}
#prelude-start {
  position: absolute; top: 0; left: 0;
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  font-size: 28px; color: #FFD700; cursor: pointer;
  background: #000; z-index: 10;
  animation: pulse 2s infinite;
}
.prelude-skip {
  position: absolute; bottom: 10px; right: 15px;
  color: #666; font-size: 12px; pointer-events: auto; cursor: pointer; z-index: 20;
}

/* 3D房间 */
#screen-room { background: #000; }
#room-view { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
#room-bg { width: 100%; height: 100%; object-fit: fill; display: block; transition: opacity 0.4s ease; }
#room-bg.transitioning { opacity: 0; }
#room-block-overlay { position: absolute; top: 0; left: 0; pointer-events: none; display: none; }
#room-block-overlay img { position: absolute; display: block; }
#room-hotspots { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
.room-hotspot { position: absolute; cursor: pointer; }
.room-hotspot:hover { background: rgba(255,255,255,0.08); }
#room-nav-arrows { position: absolute; bottom: 20px; left: 0; right: 0; display: flex; justify-content: space-between; padding: 0 20px; z-index: 10; }
.room-arrow { width: 40px; height: 40px; background: rgba(0,0,0,0.5); color: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; font-size: 18px; transition: background 0.2s; }
.room-arrow:hover { background: rgba(255,255,255,0.3); }
.room-hint { position: absolute; bottom: 5px; left: 0; right: 0; text-align: center; color: #555; font-size: 11px; }

/* 导航栏 */
.nav-bar { position: absolute; bottom: 0; left: 0; width: 100%; height: 52px; overflow: hidden; }
.nav-bar img { width: 100%; height: 100%; display: block; }
.nav-bar-btn { position: absolute; cursor: pointer; }

/* 同学列表 */
#screen-classmat { background: #000; }
#classmat-view { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
#classmat-bg { width: 100%; height: 100%; object-fit: fill; display: block; }
#classmat-hotspots { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
.classmat-hotspot { position: absolute; cursor: pointer; border: 2px solid transparent; border-radius: 4px; transition: border-color 0.15s; }
.classmat-hotspot:hover { border-color: rgba(255,255,0,0.6); background: rgba(255,255,255,0.1); }

/* 个人页面 */
#screen-personal { background: #000; }
#personal-view { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
#personal-photo { width: 100%; height: 100%; object-fit: fill; display: block; transition: opacity 0.4s ease; }
#personal-photo.transitioning { opacity: 0; }
#personal-hotspots { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
.personal-hotspot { position: absolute; cursor: pointer; background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,0,0.3); border-radius: 2px; transition: background 0.15s; }
.personal-hotspot:hover { background: rgba(255,255,0,0.15); border-color: rgba(255,255,0,0.6); }

/* 班级页面 */
#screen-class { background: #000; }
#class-view { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
#class-bg { width: 100%; height: 100%; object-fit: fill; display: block; }
#class-content { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; }
.class-text-line {
  position: absolute;
  white-space: nowrap;
  color: #000;
  line-height: 1;
}
.class-content-img { position: absolute; }
#class-submenus { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
.class-submenu { position: absolute; cursor: pointer; display: none; }
.class-submenu img { display: block; }
#class-menu { position: absolute; cursor: pointer; }
#class-menu img { display: block; }
.class-nav-label { position: absolute; font-family: "KaiTi", "STKaiti", "楷体", serif; font-size: 21px; color: #008000; text-decoration: underline; cursor: pointer; }
.class-nav-label:hover { color: #00aa00; }

/* 占位页面 */
.placeholder-screen { text-align: center; padding-top: 200px; color: #ccc; }
.placeholder-screen h2 { font-size: 32px; color: #FFD700; margin-bottom: 15px; }
.placeholder-screen p { font-size: 16px; margin-bottom: 10px; color: #999; }
.back-btn { margin-top: 30px; padding: 10px 30px; font-size: 16px; background: rgba(255,255,255,0.1); color: #fff; border: 1px solid #555; border-radius: 5px; cursor: pointer; }
.back-btn:hover { background: rgba(255,255,255,0.2); }

/* 图片切换特效 */
.effect-fade { animation: effectFade 0.6s ease; }
@keyframes effectFade { from { opacity: 0; } to { opacity: 1; } }
.effect-slide-left { animation: effectSlideLeft 0.5s ease; }
@keyframes effectSlideLeft { from { opacity: 0; transform: translateX(-30px); } to { opacity: 1; transform: translateX(0); } }
.effect-slide-right { animation: effectSlideRight 0.5s ease; }
@keyframes effectSlideRight { from { opacity: 0; transform: translateX(30px); } to { opacity: 1; transform: translateX(0); } }
.effect-center-out { animation: effectCenterOut 0.5s ease; }
@keyframes effectCenterOut { from { opacity: 0; transform: scale(0.3); } to { opacity: 1; transform: scale(1); } }

/* ============ 窗外页面 ============ */
#screen-outwin { background: #000; }
#outwin-view { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
#outwin-bg { width: 100%; height: 100%; object-fit: fill; display: block; }
#outwin-hotspots { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }

/* ============ 清华介绍 ============ */
#screen-tsinghua { background: #000; }
#tsinghua-view { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
#tsinghua-photo { width: 100%; height: 100%; object-fit: fill; display: block; }

/* ============ 老师介绍 ============ */
#screen-teacher { background: #000; }
#teacher-view { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
#teacher-photo { width: 100%; height: 100%; object-fit: fill; display: block; }
#teacher-hotspots { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }

/* ============ 结束页 ============ */
#screen-end { background: #000; }
#end-bg { width: 100%; height: 100%; object-fit: fill; display: block; }
#end-lyrics { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; }
.end-lyric {
  position: absolute;
  font-family: "KaiTi", "STKaiti", "楷体", serif;
  color: #C0C000;
  font-weight: bold;
  white-space: nowrap;
  min-height: 1em;
}
#end-pan { position: absolute; top: 0; left: 643px; z-index: 5; }
.end-hint { position: absolute; bottom: 10px; left: 0; right: 0; text-align: center; color: #444; font-size: 11px; }


