/* 游戏引擎外观（浅色宣纸）—— 站点与导出模板共用同一套视觉 */

.game-root{
  position:relative;
  aspect-ratio:4/3;min-height:440px;
  display:flex;flex-direction:column;
  overflow:hidden;
  font-family:"Noto Serif SC","Source Han Serif SC","Songti SC",STSong,"SimSun",serif;
  transition:background .6s ease;
  background:#ffffff;
}

.game-empty{
  margin:auto;text-align:center;
  color:#a5a29a;font-size:13px;letter-spacing:.14em;
}
.game-empty-icon{font-size:22px;margin-bottom:14px;opacity:.4}

.game-title{
  position:absolute;inset:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:12px;padding:34px;text-align:center;
}
.game-title::before{
  content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:340px;height:340px;border-radius:50%;
  background:repeating-radial-gradient(circle at center,
    transparent 0 53px,rgba(76,92,114,.07) 53px 54px);
  -webkit-mask-image:radial-gradient(circle,#000 34%,transparent 72%);
  mask-image:radial-gradient(circle,#000 34%,transparent 72%);
  pointer-events:none;
}
.game-title > *{position:relative}
.game-title .gt-sub{
  color:#a5a29a;font-size:10.5px;letter-spacing:.5em;text-indent:.5em;
}
.game-title h3{
  margin:6px 0 4px;
  font-family:inherit;font-weight:400;font-size:30px;
  letter-spacing:.24em;text-indent:.24em;color:#1f1f1d;
}
.game-title .gt-meta{color:#7c8089;font-size:11.5px;letter-spacing:.2em}

.scene-wrap{
  position:relative;flex:1;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:20px 22px;
}
.scene-label{
  position:absolute;top:18px;left:22px;
  font-size:10.5px;letter-spacing:.28em;color:#a5a29a;
}
.stat-bar{
  position:absolute;top:18px;right:22px;
  display:flex;gap:14px;
  font-size:10.5px;letter-spacing:.14em;color:#7c8089;
}

.dialogue{
  background:rgba(255,253,248,.86);
  border:1px solid rgba(76,92,114,.16);
  border-radius:4px;
  padding:22px 26px 26px;
  backdrop-filter:blur(6px);
  min-height:132px;
  cursor:pointer;
}
.speaker{
  display:inline-block;margin-bottom:10px;
  font-size:12.5px;font-weight:500;letter-spacing:.2em;
}
.speaker:empty{display:none}
.line-text{
  font-size:16px;line-height:2.15;letter-spacing:.06em;
  color:#1f1f1d;white-space:pre-wrap;min-height:2.6em;
}
.line-text.narration{color:#4f4d48}
.caret{
  display:inline-block;width:1px;height:.95em;vertical-align:-2px;
  background:#4c5c72;animation:blink 1.05s steps(1) infinite;
  margin-left:3px;
}
@keyframes blink{50%{opacity:0}}

.choices{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.choice{
  text-align:left;padding:13px 20px;
  border-radius:4px;
  border:1px solid rgba(76,92,114,.22);
  background:rgba(255,253,248,.92);
  color:#333f50;
  font-family:inherit;font-size:14px;letter-spacing:.08em;
  cursor:pointer;transition:.2s;
}
.choice:hover{
  background:rgba(76,92,114,.07);
  border-color:#4c5c72;
  transform:translateX(4px);
}
.choice:disabled{opacity:.4;cursor:default;transform:none}

.advance-hint{
  position:absolute;bottom:6px;right:22px;
  font-size:10.5px;letter-spacing:.24em;color:#a5a29a;
  animation:pulse 2s ease-in-out infinite;
}
@keyframes pulse{50%{opacity:.3}}

.ending{margin:auto;text-align:center;padding:36px}
.ending .tag{
  font-size:10.5px;letter-spacing:.5em;text-indent:.5em;color:#7c8ca1;
}
.ending h3{
  margin:18px 0 12px;font-weight:400;font-size:24px;letter-spacing:.16em;
}
.ending p{
  color:#4f4d48;font-size:13.5px;line-height:2;letter-spacing:.06em;
  max-width:360px;margin:0 auto 26px;
}
