/* 森系测试 · 兑换码付费墙 (paywall.css) */
html.pw-locked { overflow: hidden; }

.pw-overlay {
  position: fixed; inset: 0; z-index: 2147483647;
  display: flex; align-items: center; justify-content: center;
  padding: 24px; box-sizing: border-box;
  background: rgba(232, 237, 229, 0.72);
  -webkit-backdrop-filter: blur(14px) saturate(120%);
  backdrop-filter: blur(14px) saturate(120%);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
}
.pw-card {
  width: 100%; max-width: 360px; box-sizing: border-box;
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid rgba(122, 158, 126, 0.45);
  border-radius: 20px;
  padding: 34px 26px 28px;
  text-align: center;
  box-shadow: 0 24px 60px rgba(45, 55, 45, 0.22);
  animation: pw-in 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
}
@keyframes pw-in { from { opacity: 0; transform: translateY(14px) scale(0.98); } to { opacity: 1; transform: none; } }

.pw-mark { font-size: 11px; letter-spacing: 0.4em; color: #7A9E7E; text-transform: uppercase; font-weight: 600; }
.pw-title { font-family: "Noto Serif SC", "Songti SC", serif; font-size: 23px; color: #3A4A3A; margin: 12px 0 6px; font-weight: 700; }
.pw-sub { font-size: 13px; color: #8A9A8A; line-height: 1.7; margin: 0 0 22px; }
.pw-input {
  width: 100%; box-sizing: border-box; height: 46px; padding: 0 16px;
  font-size: 15px; letter-spacing: 0.08em; text-align: center;
  color: #3A4A3A; background: #F1F4EE;
  border: 1px solid rgba(122, 158, 126, 0.4); border-radius: 12px;
  outline: none; transition: border-color 0.2s, box-shadow 0.2s;
}
.pw-input:focus { border-color: #5F8A6A; box-shadow: 0 0 0 3px rgba(122, 158, 126, 0.18); }
.pw-btn {
  width: 100%; height: 46px; margin-top: 14px; border: none; border-radius: 12px;
  font-size: 15px; font-weight: 600; letter-spacing: 0.1em; color: #fff; cursor: pointer;
  background: linear-gradient(135deg, #7A9E7E, #5F8A6A);
  transition: transform 0.15s, opacity 0.2s;
}
.pw-btn:active { transform: scale(0.98); }
.pw-err { min-height: 18px; margin-top: 12px; font-size: 12.5px; color: #c0584f; opacity: 0; transition: opacity 0.2s; }
.pw-err.show { opacity: 1; }
.pw-card.pw-shake { animation: pw-shake 0.4s; }
@keyframes pw-shake { 0%, 100% { transform: translateX(0); } 20% { transform: translateX(-8px); } 40% { transform: translateX(8px); } 60% { transform: translateX(-5px); } 80% { transform: translateX(5px); } }
.pw-foot { margin-top: 18px; font-size: 11px; color: #a8b3a8; }
