    .rmap-legend {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 6px 16px;
      margin: 16px 0 8px;
      font-size: 0.875rem;
      color: #888;
    }
    .rmap-theme { display: inline-flex; align-items: center; gap: 6px; }
    .rmap-swatch {
      display: inline-block;
      width: 18px;
      height: 4px;
      border-radius: 2px;
      background: #4a9eff;
    }
    .rmap-swatch-dig { background: #ff6a00; }
    .rmap-open {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font: inherit;
      font-size: 0.875rem;
      font-weight: 500;
      color: #2c5282;
      background: transparent;
      border: 1px solid #a0b4cc;
      border-radius: 999px;
      padding: 3px 12px;
      cursor: pointer;
      transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
    }
    .rmap-open:hover,
    .rmap-open:focus-visible {
      background: #2c5282;
      border-color: #2c5282;
      color: #fff;
      outline: none;
    }
    .rmap-open svg { transition: transform 0.25s ease; }
    .rmap-open[aria-expanded="true"] svg { transform: rotate(180deg); }

    .rwheel {
      margin: 14px 0 8px;
      padding: 28px 28px 24px;
      background: #fff;
      border-radius: 8px;
      box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
    }
    .rwheel { overflow: hidden; }
    .rwheel[hidden] { display: none; }
    .rw-lede {
      font-family: 'Epilogue', sans-serif;
      font-size: 1.15rem;
      line-height: 1.5;
      color: #1a1a1a;
      max-width: 680px;
      margin-bottom: 20px;
    }
    .rw-lede em { font-style: normal; color: #2c5282; }
    .rw-lede { position: relative; z-index: 1; }
    .rw-body {
      display: flex;
      flex-direction: column;
      gap: 6px;
    }
    .rw-figure { width: 100%; }
    .rw-info {
      min-height: 112px;
      padding: 16px 4px 4px;
      border-top: 1px solid transparent;
      transition: border-color 0.2s ease;
      font-size: 0.9375rem;
      line-height: 1.6;
      color: #555;
    }
    .rw-info p { margin: 0 0 6px; }
    .rw-info.rw-info-on { border-top-color: #efeeeb; }
    .rw-info-hint { color: #999; font-size: 0.875rem; }
    .rw-info-meta {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      gap: 8px;
      color: #888;
      font-size: 0.875rem;
    }
    .rw-info-title {
      font-family: 'Epilogue', sans-serif;
      font-size: 1.1rem;
      font-weight: 600;
      line-height: 1.4;
      color: #1a1a1a;
    }
    .rw-info-name {
      font-size: 0.875rem;
      font-weight: 600;
      letter-spacing: 0.1em;
      text-transform: uppercase;
    }
    .rw-info-desc { color: #444; max-width: 760px; }
    .rw-info-papers { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
    .rw-info-chip {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      font: inherit;
      font-size: 0.875rem;
      color: #333;
      background: #fafaf8;
      border: 1px solid #e3e7ee;
      border-radius: 999px;
      padding: 3px 12px 3px 4px;
      cursor: pointer;
      transition: border-color 0.2s ease, background 0.2s ease;
    }
    .rw-info-chip:hover, .rw-info-chip:focus-visible { border-color: #2c5282; background: #f0f6ff; outline: none; }
    .rw-figure svg { display: block; width: 100%; height: auto; overflow: visible; }
    .rw-card {
      flex: 0 0 260px;
      font-size: 0.875rem;
      line-height: 1.6;
      color: #555;
    }
    .rw-card-head {
      font-weight: 600;
      color: #1a1a1a;
      margin-bottom: 6px;
    }
    .rw-card-text { margin-bottom: 14px; }
    .rw-key { list-style: none; margin: 0 0 14px; padding: 0; }
    .rw-key li {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 3px 0;
      cursor: default;
      color: #444;
    }
    .rw-key svg { flex: 0 0 auto; }
    .rw-card-hint { color: #999; }
    .rw-card-meta {
      display: flex;
      align-items: center;
      gap: 8px;
      font-size: 0.875rem;
      color: #888;
      margin-bottom: 8px;
    }
    .rw-card-title {
      font-family: 'Epilogue', sans-serif;
      font-size: 1.05rem;
      font-weight: 600;
      line-height: 1.4;
      color: #1a1a1a;
      margin-bottom: 10px;
    }
    .rw-badge {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      flex: 0 0 auto;
      width: 24px;
      height: 24px;
      border-radius: 50%;
      font-size: 0.875rem;
      font-weight: 600;
    }
    .rw-jmp {
      font-size: 0.875rem;
      font-weight: 600;
      letter-spacing: 0.04em;
      color: #2c5282;
      border: 1px solid #a0b4cc;
      border-radius: 999px;
      padding: 0 8px;
    }

    /* Cloud map */
    .rw-svg text { font-family: 'Poppins', 'Noto Sans SC', sans-serif; }
    .rw-bubble { cursor: pointer; outline: none; transition: opacity 0.3s ease; }
    .rw-pop {
      transform-box: view-box;
      transform-origin: var(--ox) var(--oy);
      transition: transform 0.25s ease;
    }
    .rw-float { animation: rw-float var(--fd) ease-in-out infinite alternate; }
    @keyframes rw-float {
      from { transform: translateY(0); }
      to { transform: translateY(var(--fy)); }
    }
    .rw-bubble .rw-num { font-size: 22px; font-weight: 700; }
    .rw-bubble .rw-num-lg { font-size: 26px; }
    .rw-bubble .rw-kw { font-size: 23px; font-weight: 500; fill: #333; }
    .rw-bubble .rw-tag { font-size: 17px; font-weight: 700; letter-spacing: 0.06em; fill: #2c5282; }
    .rw-bubble.rw-on .rw-pop { transform: scale(1.12); }
    .rw-bubble.rw-on .rw-dot { filter: url(#rw-shadow); }
    .rw-bubble.rw-on .rw-kw { font-weight: 600; fill: #1a1a1a; }
    .rw-bubble:focus-visible .rw-dot { stroke: #1a1a1a; stroke-width: 3; }
    .rw-svg.rw-dim .rw-bubble:not(.rw-on) { opacity: 0.28; }
    .rw-hot { cursor: pointer; outline: none; }
    .rw-hit { fill: transparent; transition: fill 0.2s ease; }
    .rw-hot:hover .rw-hit, .rw-hot.rw-on .rw-hit, .rw-hot:focus-visible .rw-hit { fill: rgba(255, 255, 255, 0.85); stroke: #c9d4e3; stroke-width: 1.2; }
    .rw-sector text {
      font-size: 24px;
      font-weight: 600;
      letter-spacing: 0.16em;
    }
    .rw-orbit-name text {
      font-size: 21px;
      font-style: italic;
      paint-order: stroke;
      stroke: #fff;
      stroke-width: 6px;
      stroke-linejoin: round;
    }
    .rw-core-text {
      font-family: 'Epilogue', 'Noto Sans SC', sans-serif;
      font-size: 23px;
      font-weight: 600;
      fill: #fff;
    }
    .rw-key-stages { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 6px; }
    .rw-key-cloud {
      font-size: 0.875rem;
      font-weight: 600;
      padding: 1px 10px;
      border-radius: 999px;
      cursor: default;
    }

    /* Opening animation */
    .rw-svg .rw-core,
    .rw-svg .rw-clouds,
    .rw-svg .rw-orbits {
      transform-box: view-box;
      transform-origin: var(--cx) var(--cy);
    }
    .rwheel.rw-anim .rw-core { opacity: 0; transform: scale(0.5); }
    .rwheel.rw-anim .rw-clouds { opacity: 0; transform: scale(0.85); }
    .rwheel.rw-anim .rw-orbits { opacity: 0; transform: scale(0.92); }
    .rwheel.rw-anim .rw-labels { opacity: 0; }
    .rwheel.rw-anim .rw-pop { opacity: 0; transform: scale(0.2); }
    .rwheel.rw-anim.rw-play .rw-core {
      opacity: 1; transform: none;
      transition: opacity 0.5s ease, transform 0.7s cubic-bezier(0.2, 0.8, 0.2, 1);
    }
    .rwheel.rw-anim.rw-play .rw-clouds {
      opacity: 1; transform: none;
      transition: opacity 1.4s ease, transform 1.6s cubic-bezier(0.2, 0.8, 0.2, 1);
    }
    .rwheel.rw-anim.rw-play .rw-orbits {
      opacity: 1; transform: none;
      transition: opacity 1s ease 0.25s, transform 1.2s cubic-bezier(0.2, 0.8, 0.2, 1) 0.25s;
    }
    .rwheel.rw-anim.rw-play .rw-labels { opacity: 1; transition: opacity 0.8s ease 1.5s; }
    .rwheel.rw-anim.rw-play .rw-pop {
      opacity: 1; transform: none;
      transition: opacity 0.4s ease var(--d), transform 0.7s cubic-bezier(0.34, 1.56, 0.64, 1) var(--d);
    }

    .rw-list { display: none; }
    .rw-bubble { -webkit-tap-highlight-color: transparent; }

    .paper-card { scroll-margin-top: 16px; }
    .paper-card.rmap-flash {
      box-shadow: 0 0 0 2px #2c5282, 0 3px 12px rgba(0, 0, 0, 0.07);
    }

    .rw-bg { cursor: default; }
    .rw-info-go {
      display: none;
      align-items: center;
      gap: 6px;
      margin-top: 4px;
      font: inherit;
      font-size: 0.875rem;
      font-weight: 500;
      color: #fff;
      background: #2c5282;
      border: none;
      border-radius: 999px;
      padding: 6px 16px;
      cursor: pointer;
    }

    @media (max-width: 820px) {
      .rwheel { padding: 22px 16px 16px; }
      .rw-lede { font-size: 1.05rem; margin-bottom: 8px; }
      .rw-figure { max-width: 480px; margin: 0 auto; }
      .rw-info { min-height: 130px; padding-top: 14px; }
      .rw-info-go { display: inline-flex; }
      .rw-info-hint { margin-bottom: 8px; }
      .rw-svg.rw-m .rw-sector text { font-size: 31px; letter-spacing: 0.12em; }
      .rw-svg.rw-m .rw-orbit-name text { font-size: 29px; stroke-width: 8px; }
      .rw-svg.rw-m .rw-core-text { font-size: 28px; }
      .rw-svg.rw-m .rw-hit { rx: 18px; }
    }
    @media (prefers-reduced-motion: reduce) {
      .rw-float { animation: none; }
    }
  
    :lang(zh) .rw-orbit-name text { font-style: normal; }
