/* === module: storylet === */
      /* ─── Right: Cinema Stage ─── */
      .right-panel {
        flex: 1;
        display: flex;
        flex-direction: column;
        overflow: hidden;
      }

      .cinema-stage {
        flex: 1;
        min-height: 0;
        padding: 28px;
        display: flex;
        flex-direction: column;
        gap: 20px;
        justify-content: center;
        background: radial-gradient(circle at 20% 20%, #1a1a28 0%, #0a0a0f 60%);
        position: relative;
        overflow: hidden;
      }

      .scene-card {
        border: 1px solid #2a2a3a;
        background: #111118cc;
        border-radius: 12px;
        padding: 14px 16px;
        min-height: 110px;
        transition:
          transform 0.25s ease,
          opacity 0.25s ease;
        z-index: 2;
      }
      .scene-card.cut {
        transform: translateX(-8px) scale(0.995);
        opacity: 0.7;
      }
      .scene-title {
        font-size: 14px;
        color: #9ec5ff;
        font-weight: 700;
        margin-bottom: 6px;
      }
      .scene-desc {
        font-size: 16px;
        color: #f1f3f5;
        line-height: 1.45;
        margin-bottom: 10px;
      }
      .scene-participants {
        display: flex;
        gap: 6px;
        flex-wrap: wrap;
      }
      .participant-tag {
        font-size: 11px;
        padding: 2px 8px;
        border-radius: 10px;
        border: 1px solid;
      }

      .line-card {
        border: 1px solid #3a2f2f;
        background: #161620f0;
        border-radius: 12px;
        padding: 20px;
        min-height: 180px;
        box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35);
        transition:
          transform 0.28s ease,
          opacity 0.28s ease;
        z-index: 2;
      }
      .line-card.flash {
        transform: translateY(-2px) translateX(4px);
        opacity: 0.95;
      }
      .line-speaker {
        font-size: 14px;
        font-weight: 700;
        margin-bottom: 10px;
        display: flex;
        align-items: center;
        gap: 8px;
        flex-wrap: wrap;
      }
      .emotion-tag {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        font-size: 11px;
        padding: 3px 10px;
        border-radius: 8px;
        font-weight: 600;
        white-space: nowrap;
      }
      .emotion-tag.spoken {
        background: #4a6fa520;
        color: #74c0fc;
        border: 1px solid #4a6fa540;
      }
      .emotion-tag.hidden {
        background: #e8a04020;
        color: #e8a040;
        border: 1px solid #e8a04040;
        animation: hiddenEmotionPulse 2s ease-in-out infinite;
      }
      @keyframes hiddenEmotionPulse {
        0%, 100% { box-shadow: 0 0 0 0 #e8a04040; }
        50% { box-shadow: 0 0 8px 2px #e8a04030; }
      }
      .line-content {
        font-size: 24px;
        line-height: 1.6;
        color: #f8f9fa;
        letter-spacing: 0.2px;
      }

      .facade-indicator {
        display: flex;
        align-items: center;
        gap: 10px;
        margin-bottom: 12px;
        padding: 6px 10px;
        background: #0d0d18;
        border-radius: 8px;
        border: 1px solid #2a2a3a;
      }
      .facade-indicator .fi-label {
        font-size: 11px;
        color: #888;
        white-space: nowrap;
      }
      .facade-indicator .fi-bar {
        flex: 1;
        height: 6px;
        background: #222;
        border-radius: 3px;
        overflow: hidden;
        position: relative;
      }
      .facade-indicator .fi-fill {
        height: 100%;
        border-radius: 3px;
        transition:
          width 0.5s ease,
          background 0.5s ease;
      }
      .facade-indicator .fi-value {
        font-size: 13px;
        font-weight: 700;
        font-variant-numeric: tabular-nums;
        min-width: 36px;
        text-align: right;
      }
      .facade-indicator .fi-delta {
        font-size: 11px;
        font-weight: 600;
        min-width: 32px;
      }
      .facade-indicator .fi-delta.drop {
        color: #ff6b6b;
      }
      .facade-indicator .fi-delta.rise {
        color: #51cf66;
      }
      .facade-indicator .fi-delta.zero {
        color: #666;
      }
      .facade-indicator.danger {
        border-color: #ff6b6b55;
        animation: facadePulse 1.2s ease infinite;
      }
      @keyframes facadePulse {
        0%,
        100% {
          background: #0d0d18;
        }
        50% {
          background: #2a0a0a;
        }
      }
      .facade-indicator .fi-warn {
        font-size: 10px;
        color: #ff6b6b;
        font-weight: 700;
        white-space: nowrap;
      }

      .line-card.subtitle-in .line-content {
        animation: subtitleFade 420ms ease-out;
      }
      .thought-peek-zone {
        margin-top: 10px;
      }
      .thought-peek-btn {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        font-size: 11px;
        color: #e8a040;
        background: #e8a04018;
        border: 1px solid #e8a04040;
        border-radius: 12px;
        padding: 4px 12px;
        cursor: pointer;
        animation: mismatchPulse 2s ease-in-out infinite;
      }
      @keyframes mismatchPulse {
        0%, 100% { box-shadow: 0 0 0 0 #e8a04040; }
        50% { box-shadow: 0 0 8px 2px #e8a04030; }
      }
      .thought-peek-btn.revealed {
        color: #888;
        border-color: #333;
        background: #15151f;
        cursor: default;
        animation: none;
      }
      .line-thought-content {
        margin-top: 8px;
        padding: 8px 10px;
        border-radius: 8px;
        border: 1px solid #2a2a38;
        background: #14141f;
        color: #ddd;
        font-size: 12px;
        line-height: 1.5;
      }
      .line-thought-content .speaker {
        color: #e8a0bf;
        font-weight: 700;
      }

/* === end module: storylet === */

/* === module: rumor_spread === */
      /* ── Rumor Spread (migrated to workbench splice area) ── */
      .rs-target-row { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: 8px; }
      .rs-target-row label { color: #888; font-size: 13px; display: flex; align-items: center; gap: 4px; cursor: pointer; }
      .rs-target-row label input { accent-color: #60c8e8; }
      .rs-controls { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; justify-content: center; }
      .rs-controls button {
        padding: 8px 16px; border-radius: 6px; border: 1px solid #3a3a5a;
        background: #1a1a2e; color: #ccc; cursor: pointer; font-size: 13px; transition: all 0.2s;
        font-family: inherit;
      }
      .rs-controls button:hover { border-color: #60c8e8; color: #fff; }
      .rs-controls button.primary { background: #1a3a4a; border-color: #60c8e8; color: #60c8e8; }
      .rs-controls button:disabled { opacity: 0.4; cursor: not-allowed; }
      .rs-paper { min-height: 200px; display: flex; flex-direction: column; gap: 12px; }
      .rs-paper-empty { color: #555; text-align: center; padding: 40px 20px; font-size: 14px; line-height: 1.6; }
      .rs-paper-preview { background: #0f0f1f; border-radius: 8px; padding: 16px; color: #e0e0e0; font-size: 14px; line-height: 1.6; border: 1px solid #2a2a4a; }
      .rs-paper-preview .preview-label { font-size: 11px; color: #60c8e8; margin-bottom: 6px; }
      .rs-empty-msg { color: #555; text-align: center; padding: 40px 20px; font-size: 14px; line-height: 1.6; }

/* === end module: rumor_spread === */
