/* 邂逅：邀请函 / 渐变字 / 线下场景 / 约时间
   —— 由 styles.css 第 2919–3253 行原样切分，规则与顺序未改动。 */
/* ====== 华丽邀请函专属样式 ====== */
.invite-wrapper {
  display: flex;
  justify-content: center;
  margin: 16px 0;
  perspective: 1000px;
}
.envelope-box {
  width: 280px;
  height: 380px;
  position: relative;
  cursor: pointer;
  transition: all 0.5s ease;
}
.envelope-box.opened {
  opacity: 0;
  transform: scale(0.9) translateY(-20px);
  pointer-events: none;
  display: none;
}
.envelope-bg {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #FFFFFF 0%, #E5E9F0 100%);
  clip-path: polygon(0% 4%, 4% 0%, 96% 0%, 100% 4%, 100% 96%, 96% 100%, 4% 100%, 0% 96%);
  box-shadow: 0 15px 40px rgba(0,0,0,0.12), inset 0 0 20px rgba(255,255,255,1);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border: 1px solid #DCE1E8;
}
.envelope-bg::after {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(135deg, rgba(255,255,255,1) 0%, rgba(229,233,240,0) 80%);
  clip-path: polygon(0 0, 50% 50%, 100% 0);
  pointer-events: none;
}
.env-text {
  font-family: 'Great Vibes', 'Snell Roundhand', cursive;
  font-size: 56px;
  color: #8B9BB4;
  text-shadow: 1px 1px 0px #fff;
  margin-bottom: 5px;
  z-index: 2;
  transform: rotate(-5deg);
}
.env-sub {
  font-family: 'Cinzel Decorative', 'Times New Roman', serif;
  font-size: 12px;
  color: #A2ACB9;
  letter-spacing: 8px;
  z-index: 2;
  text-transform: uppercase;
}
.seal-img {
  position: absolute;
  bottom: 30px;
  width: 60px;
  height: 60px;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><linearGradient id="g" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" stop-color="%237B8DA8"/><stop offset="100%" stop-color="%234A5B7B"/></linearGradient></defs><circle cx="50" cy="50" r="45" fill="url(%23g)" filter="drop-shadow(0 6px 10px rgba(0,0,0,0.3))"/><circle cx="50" cy="50" r="38" fill="none" stroke="rgba(255,255,255,0.4)" stroke-width="1.5" stroke-dasharray="3 3"/><path d="M30 50 L70 50 M50 30 L50 70" stroke="rgba(255,255,255,0.2)" stroke-width="2"/><text x="50" y="59" font-family="KaiTi, serif" font-size="26" fill="%23DFE5EF" text-anchor="middle" font-weight="bold">封</text></svg>');
  background-size: contain;
  background-repeat: no-repeat;
  z-index: 5;
}
.letter-box {
  display: none;
  width: 100%;
  max-width: 300px; /* 限制最大宽度，不要占满屏幕 */
  margin: 0 auto;   /* 居中 */
  background: radial-gradient(circle at top right, rgba(255,255,255,1) 0%, rgba(230,238,245,0.8) 100%), linear-gradient(135deg, #F0F4F8 0%, #D8E2EC 100%);
  border-radius: 8px;
  padding: 20px 16px; /* 缩小内边距 */
  box-shadow: 0 15px 40px rgba(0,0,0,0.15);
  border: 1px solid #FFF;
  position: relative;
  opacity: 0;
  transform: translateY(20px) rotate(2deg);
  transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}
.letter-box.show {
  display: block;
  opacity: 1;
  transform: translateY(0) rotate(1.5deg);
}
.deco-butterfly {
  position: absolute;
  top: -25px; left: -25px;
  width: 120px; height: 120px;
  pointer-events: none;
  filter: drop-shadow(0 8px 12px rgba(163,184,214,0.3));
  z-index: 11;
}
.deco-lace {
  position: absolute;
  bottom: -15px; right: -15px;
  width: 130px; height: 130px;
  pointer-events: none;
  opacity: 0.8;
  z-index: 11;
}
.letter-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  z-index: 14;
}
.letter-title-en {
  font-family: 'Cinzel Decorative', 'Times New Roman', serif;
  font-size: 22px;
  color: #2C3E50;
  letter-spacing: 2px;
  margin: 0;
  line-height: 1;
}
.letter-sub-en {
  font-family: 'Great Vibes', cursive;
  font-size: 24px;
  color: #7B8DA8;
  margin-top: 2px;
  margin-bottom: 16px;
}
.letter-title-cn {
  font-family: "Songti SC", "STSong", "SimSun", serif;
  font-size: 26px;
  font-weight: 900;
  letter-spacing: 12px;
  margin-bottom: 20px;
  margin-left: 12px;
  /* 华丽渐变字 */
  background: linear-gradient(180deg, #2C3E50 0%, #7B8DA8 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(1px 2px 1px rgba(255,255,255,0.8));
}
.letter-date {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: 12px;
  color: #3A4B65;
  font-weight: 600;
  text-align: center;
  line-height: 1.8;
  margin-bottom: 20px;
  background: rgba(255,255,255,0.6);
  padding: 6px 16px;
  border-radius: 20px;
  border: 1px dashed #A3B8D6;
  letter-spacing: 1px;
}
.letter-body {
  font-family: "Songti SC", "STSong", "SimSun", serif;
  font-size: 14px;
  color: #2C3E50;
  line-height: 2;
  text-align: justify;
  text-align-last: center;
  font-weight: 500;
  margin-bottom: 20px;
}
.letter-actions {
  display: flex;
  gap: 10px;
  width: 100%;
  z-index: 15;
}
.btn-reject, .btn-accept {
  flex: 1;
  padding: 10px;
  border-radius: 8px;
  border: 1px solid #A3B8D6;
  background: rgba(255,255,255,0.5);
  color: #7A8B9E;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
}
.btn-accept {
  background: linear-gradient(135deg, #8B9BB4, #4A5B7B);
  color: #fff;
  border: none;
  box-shadow: 0 4px 12px rgba(74,91,123,0.3);
}
.btn-ghost {
  flex: 0 1 auto;
  min-width: 76px;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px dashed #A3B8D6;
  background: rgba(255,255,255,0.35);
  color: #7A8B9E;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}
.invite-confirm {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.invite-confirm-copy {
  width: 100%;
  padding: 9px 10px;
  border-radius: 8px;
  background: rgba(46,139,87,0.08);
  border: 1px dashed rgba(46,139,87,0.35);
  text-align: center;
  color: #3D6B52;
}
.invite-confirm-copy b { display:block; font-size:12px; }
.invite-confirm-copy span { display:block; margin-top:2px; font-size:10px; opacity:.75; }
.invite-confirm .btn-accept { flex: 1 1 130px; }
.invite-confirm .btn-ghost { flex: 0 0 auto; }

/* 线下场景条：只在原消息区顶部加一层，不动原有卡片美化 */
.encounter-scene-strip{
  margin: 0 0 20px;
  padding: 16px 16px 14px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(30,25,28,.94), rgba(44,34,38,.9));
  box-shadow: 0 10px 28px rgba(0,0,0,.16);
  color: #f1e7dd;
  font-family: var(--enc-title-font, serif);
}
.encounter-scene-strip .scene-kicker{
  font-family: "Cinzel Decorative", "Times New Roman", serif;
  font-size: 8px;
  letter-spacing: 2.4px;
  color: #c8a96b;
  opacity: .9;
}
.encounter-scene-strip .scene-title{
  margin-top: 4px;
  font-size: 22px;
  letter-spacing: 4px;
  line-height: 1.2;
  color: #f6ede2;
}
.encounter-scene-strip .scene-title span{
  margin-left: 8px;
  font-family: "Cinzel Decorative", serif;
  font-size: 9px;
  letter-spacing: 1.4px;
  opacity: .55;
  vertical-align: middle;
}
.encounter-scene-strip .scene-sub{
  margin-top: 5px;
  font-family: -apple-system, "PingFang SC", sans-serif;
  font-size: 9px;
  letter-spacing: .4px;
  opacity: .62;
}

/* 约时间弹层 */
.invite-time-mask{
  position: fixed; inset: 0; z-index: 5200;
  background: rgba(35,24,32,.38);
  backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px);
  display: flex; align-items: flex-end;
}
.invite-time-sheet{
  width: 100%;
  background: #FFF9FC;
  border-radius: 22px 22px 0 0;
  padding: 12px 16px calc(18px + env(safe-area-inset-bottom));
  box-shadow: 0 -10px 40px rgba(70,40,55,.18);
  animation: inviteSheetUp .24s ease-out;
}
@keyframes inviteSheetUp{from{transform:translateY(24px);opacity:.5}to{transform:none;opacity:1}}
.invite-time-sheet .its-kicker{font-size:8px;letter-spacing:2.4px;color:#A8919E;font-family:"Cinzel Decorative",serif}
.invite-time-sheet h3{margin:5px 0 3px;font-family:"Noto Serif SC","Songti SC",serif;font-size:19px;color:#3A3036;letter-spacing:1px}
.invite-time-sheet p{margin:0 0 11px;font-size:10px;color:#A8919E;line-height:1.55}
.invite-time-option{
  width:100%;display:flex;align-items:center;justify-content:space-between;
  padding:11px 12px;margin-bottom:7px;border-radius:12px;
  background:#fff;border:1px solid #F0E2EA;color:#4A3D45;
  font-size:12px;cursor:pointer;
}
.invite-time-option em{font-style:normal;font-size:10px;color:#B9A7B0}
.invite-time-cancel{
  width:100%;padding:11px;border-radius:12px;border:1px solid #EADDE5;
  background:transparent;color:#8B7A84;font-size:12px;cursor:pointer;
}
/* ============================================================
   世界书 · 星图（只用 wbx- 前缀，避免碰到旧 .wb-* 样式）
   ============================================================ */
.app-fullscreen.scope-app-worldbook{
  --wbx-ink:#2D2938;
  --wbx-muted:#7E758C;
  --wbx-soft:#A99FB5;
  --wbx-line:rgba(91,74,114,.1);
  --wbx-glass:rgba(255,255,255,.74);
  --wbx-serif:"Noto Serif SC","Songti SC","STSong",serif;
  display:block;overflow:hidden;color:var(--wbx-ink);
  background:
    radial-gradient(120% 60% at 8% 0%,rgba(255,255,255,.75),transparent 46%),
    linear-gradient(158deg,#FFE1EC 0%,#F2E8FF 47%,#DCEEFF 100%);
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
}
.toast.wbx-toast{
  top:auto;bottom:calc(92px + env(safe-area-inset-bottom));
  padding:9px 18px;border-radius:999px;
  background:rgba(14,18,30,.92);
  border:1px solid rgba(155,185,255,.16);
  color:#E8EFFF;font-size:11px;font-weight:550;letter-spacing:.03em;
  box-shadow:0 14px 34px rgba(0,0,0,.38);
  backdrop-filter:blur(22px);
  max-width:82%;text-align:center;
}
.wbx-status{
  position:absolute;top:0;left:0;right:0;height:40px;z-index:70;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 19px;pointer-events:none;
  color:#4A4358;font-size:12px;font-weight:700;letter-spacing:.01em;
  transition:color .35s;
}
.wbx-status.light{color:#F3F7FF;}
.wbx-sig{display:flex;align-items:flex-end;gap:1.5px;height:10px;}
.wbx-sig i{display:block;width:2.5px;border-radius:1px;background:currentColor;}
.wbx-sig i:nth-child(1){height:4px;opacity:.6}
.wbx-sig i:nth-child(2){height:6px;opacity:.78}
.wbx-sig i:nth-child(3){height:8px;opacity:.9}
.wbx-sig i:nth-child(4){height:10px}
.wbx-right{display:flex;align-items:center;gap:6px;}
.wbx-batt{width:20px;height:10px;border:1px solid currentColor;border-radius:3px;padding:1px;box-sizing:border-box;position:relative;}
.wbx-batt i{display:block;height:100%;border-radius:1.5px;transition:width .3s;}
.wbx-batt::after{content:"";position:absolute;right:-3px;top:3px;width:2px;height:4px;background:currentColor;border-radius:1px;}
.wbx-batt-num{font-size:9px;font-weight:650;min-width:24px;text-align:right;opacity:.9;}

