  .reveal {
    position: absolute; inset: 0;
    z-index: 1000;                   /* 永远压在景物之上：景物可能被临时提到 999（布局/测试），不能挡住卡片按钮 */
    display: flex; align-items: center; justify-content: center;
    background: rgba(20,16,36,.62);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
    opacity: 0;
    transition: opacity .2s ease;
  }
  .reveal[hidden] { display: none; }
  .reveal.on { opacity: 1; }
  .reveal-card {
    position: relative;
    width: 258px;
    padding: 26px 20px 18px;
    border-radius: 26px;
    text-align: center;
    background: radial-gradient(circle at 50% 32%, #3A2E66 0%, #241C44 70%);
    border: 1px solid rgba(255,214,102,.34);
    box-shadow: 0 18px 50px rgba(0,0,0,.42), 0 0 0 6px rgba(255,214,102,.08);
    opacity: 0;                                  /* 过场音乐期间卡片藏着 */
    transform: translateY(10px) scale(.96);
    transition: transform .26s cubic-bezier(.2,.9,.3,1.2), opacity .2s ease;
  }
  .reveal.show .reveal-card { opacity: 1; transform: translateY(0) scale(1); }
  .reveal-rays {
    position: absolute; left: 50%; top: 96px;
    width: 300px; height: 300px;
    margin: -150px 0 0 -150px;
    border-radius: 50%;
    background:
      radial-gradient(circle, rgba(255,236,170,.9) 0%, rgba(255,214,102,.34) 36%, rgba(255,214,102,0) 66%),
      repeating-conic-gradient(from 0deg,
        rgba(255,214,102,.55) 0deg 6deg,
        rgba(255,214,102,0) 6deg 24deg);
    -webkit-mask-image: radial-gradient(circle, #000 18%, transparent 66%);
    mask-image: radial-gradient(circle, #000 18%, transparent 66%);
    animation: raysSpin 10s linear infinite;
    pointer-events: none;
  }
  @keyframes raysSpin { to { transform: rotate(360deg); } }
  .reveal-art {
    position: relative;
    z-index: 1;
    width: 132px; height: auto;
    aspect-ratio: 256 / 190;
    object-fit: contain;
    filter: drop-shadow(0 0 16px rgba(255,214,102,.95)) drop-shadow(0 0 40px rgba(255,190,60,.5));
    pointer-events: none;
  }
  .reveal.show .reveal-art { animation: revealPop .46s cubic-bezier(.2,1.35,.4,1) both; }
  @keyframes revealPop {
    0% { transform: scale(.35); opacity: 0; }
    62% { transform: scale(1.1); opacity: 1; }
    100% { transform: scale(1); opacity: 1; }
  }
  .reveal-name {
    position: relative; z-index: 1;
    margin-top: 4px;
    font-size: 21px; font-weight: 700; letter-spacing: .04em;
    color: #FFF1DD;
    text-shadow: 0 2px 10px rgba(0,0,0,.35);
  }
  .reveal-sub {
    position: relative; z-index: 1;
    margin-top: 2px;
    font-size: 11px; letter-spacing: .22em;
    color: #F0C87A;
  }
  .reveal-desc {
    position: relative; z-index: 1;
    margin-top: 8px;
    padding: 0 2px;
    font-size: 12px; line-height: 1.55;
    color: rgba(255,241,221,.8);
  }
  .reveal-desc:empty { display: none; }
  .reveal-btn {
    position: relative; z-index: 1;
    width: 100%; height: 46px;
    margin-top: 16px;
    border: 0; border-radius: 999px;
    background: linear-gradient(180deg, #FFD166, #FFA53D);
    color: #5E3826;
    font-size: 15px; font-weight: 700; letter-spacing: .04em;
    box-shadow: 0 6px 16px rgba(255,140,60,.4);
    cursor: pointer;
  }
  .reveal-btn:active { transform: translateY(1px) scale(.99); }
  .reveal-btn:focus { outline: none; }
  .reveal-btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(255,255,255,.55), 0 6px 16px rgba(255,140,60,.4);
  }
  #capture-reveal.on:not(.show)::after {
    content: "";
    position: absolute; left: 50%; top: 50%;
    width: 230px; height: 230px;
    margin: -115px 0 0 -115px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,214,102,.4), rgba(255,214,102,0) 68%);
    animation: revealCharge .68s ease-out forwards;
    pointer-events: none;
  }
  @keyframes revealCharge {
    0% { opacity: 0; transform: scale(.5); }
    70% { opacity: .95; transform: scale(1); }
    100% { opacity: 0; transform: scale(1.18); }
  }
  .reveal.flying .reveal-card {
    box-shadow: 0 0 0 0 rgba(255,214,102,0);
    border-color: rgba(255,214,102,0);
    background: transparent;
  }
  .reveal.flying .reveal-rays,
  .reveal.flying .reveal-name,
  .reveal.flying .reveal-desc,
  .reveal.flying .reveal-sub,
  .reveal.flying .reveal-btn {
    opacity: 0;
    transition: opacity .16s ease;
  }

  .pen-card { width: 276px; }
  .pen-card .reveal-rays { top: 76px; opacity: .82; }
  .pen-card .reveal-name { font-size: 22px; margin-top: 2px; }
  .pen-lock {
    position: relative;
    width: 92px; height: 42px;
    margin: 0 auto 8px;
    border: 3px solid rgba(255,214,102,.85);
    border-bottom: 0;
    border-radius: 5px 5px 0 0;
    z-index: 1;
  }
  .pen-lock::before,
  .pen-lock::after {
    content: "";
    position: absolute; left: -9px; right: -9px;
    height: 2px;
    background: rgba(255,214,102,.62);
  }
  .pen-lock::before { top: 12px; }
  .pen-lock::after { top: 27px; }
  .pen-text {
    position: relative; z-index: 1;
    margin-top: 8px;
    font-size: 12px; line-height: 1.7;
    color: rgba(255,241,221,.82);
  }
  .pen-later {
    position: relative; z-index: 1;
    display: block;
    margin: 8px auto 0;
    color: rgba(255,241,221,.5);
    font-size: 11px;
  }

  /* 首次获得物品：沿用收羊卡的暗底 + 金色光条，只放图标的仪式卡。
   * 所有变体都用同一圈金色光晕：图案保持素材原色，变体差异只在名字后缀数字上 */
  .item-reveal-card .reveal-art {
    width: 112px;
    aspect-ratio: 1 / 1;
    filter: drop-shadow(0 0 16px rgba(255,214,102,.95)) drop-shadow(0 0 40px rgba(255,190,60,.5));
  }
  .item-reveal-card .reveal-rays { top: 92px; }

  .nav-btn.dex-bump { animation: dexBump .6s cubic-bezier(.3,1.4,.4,1); }
  .tray-handle.tray-bump, .tray-body.tray-bump { animation: dexBump .6s cubic-bezier(.3,1.4,.4,1); }
  @keyframes dexBump {
    0% { transform: scale(1); }
    25% { transform: scale(1.16) rotate(-4deg); }
    45% { transform: scale(.96) rotate(3deg); }
    65% { transform: scale(1.08) rotate(-2deg); }
    100% { transform: scale(1) rotate(0); }
  }
  /* 减弱动态时的替代反馈：只亮一下、不位移，保证"看见了但没被动画打扰" */
  .tray-handle.tray-hint, .tray-body.tray-hint { animation: trayHint .4s ease-out both; }
  @keyframes trayHint {
    0% { filter: none; }
    40% { filter: brightness(1.14) drop-shadow(0 0 10px rgba(255,214,120,.95)); }
    100% { filter: none; }
  }


  @keyframes shakeX {
    0%, 100% { translate: 0; }
    25% { translate: -3px; }
    75% { translate: 3px; }
  }
  .shake { animation: shakeX .18s ease-in-out 2; }

  @media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
      animation-duration: .01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: .01ms !important;
      scroll-behavior: auto !important;
    }
    .ship-fixed { animation: none !important; }
    /* 回收的降级反馈必须看得见：就地淡出 + 图标静态高亮，不能跟着 .01ms 一起没了 */
    .bait-ghost.retrieving-fade .item-ico { animation-duration: .22s !important; }
    .tray-handle.tray-hint, .tray-body.tray-hint { animation-duration: .4s !important; }
  }
