:root {
  --pku-red: #7d0e18;
  --pku-red-dark: #260407;
  --pku-red-deep: #120104;
  --gold: #f5d48b;
  --gold-strong: #d7a84e;
  --cream: #fff2d2;
  --muted: rgba(255, 242, 210, .72);
  --line: rgba(245, 212, 139, .28);
  --panel: rgba(35, 6, 8, .72);
  --panel-strong: rgba(72, 10, 16, .82);
  --shadow: 0 28px 90px rgba(0, 0, 0, .42);
}
* { box-sizing: border-box; }
html, body { width: 100%; height: 100%; }
body {
  margin: 0;
  overflow: hidden;
  color: #fff;
  background: radial-gradient(circle at 50% 20%, rgba(155, 30, 42, .45), transparent 34%), linear-gradient(180deg, var(--pku-red-dark), var(--pku-red-deep));
  font-family: "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", Arial, sans-serif;
}
button, input { font: inherit; }
a { color: inherit; }
.app-shell {
  position: relative;
  width: 100vw;
  height: 100vh;
  min-width: 1280px;
  min-height: 720px;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 18%, rgba(215, 168, 78, .16), transparent 24%),
    radial-gradient(circle at 85% 30%, rgba(255, 244, 198, .08), transparent 22%),
    linear-gradient(135deg, #210306, #66101a 52%, #180104);
}
.app-shell::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(115deg, transparent 0%, rgba(255, 223, 150, .06) 30%, transparent 58%),
    repeating-linear-gradient(0deg, rgba(255,255,255,.024) 0 1px, transparent 1px 8px);
  mix-blend-mode: screen;
}
.toast {
  position: fixed;
  left: 50%;
  bottom: 34px;
  transform: translateX(-50%) translateY(20px);
  z-index: 9999;
  padding: 13px 24px;
  border-radius: 999px;
  border: 1px solid rgba(245, 212, 139, .38);
  background: rgba(18, 4, 6, .82);
  color: var(--cream);
  font-size: 18px;
  opacity: 0;
  pointer-events: none;
  transition: .22s ease;
  backdrop-filter: blur(10px);
}
.toast.show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
.btn, .outline-btn, .start-btn, .back-home {
  cursor: pointer;
  border: 0;
  text-decoration: none;
  transition: transform .18s ease, background .18s ease, border-color .18s ease, opacity .18s ease;
}
.btn:hover, .outline-btn:hover, .start-btn:hover, .back-home:hover { transform: translateY(-2px); }
.btn {
  height: 48px;
  border-radius: 999px;
  padding: 0 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
}
.btn-strong {
  background: linear-gradient(180deg, #ffe2a6, #d7a84e);
  color: #46170b;
  font-weight: 800;
  box-shadow: 0 16px 36px rgba(0,0,0,.22);
}
.btn-light, .outline-btn {
  border: 1px solid rgba(245, 212, 139, .38);
  background: rgba(255,255,255,.06);
  color: var(--cream);
}
[hidden] { display: none !important; }
@media (max-width: 1279px) {
  body { overflow: auto; }
  .app-shell { min-width: 100vw; min-height: 100vh; }
}
