    /* ==================== POEM LOCK MODAL（二次破解 / 机密档案） ==================== */
    .poem-lock {
      position: fixed; inset: 0; z-index: 100001;
      display: flex; align-items: center; justify-content: center;
      padding: var(--space-md);
      background: color-mix(in srgb, var(--cyber-void-900) 80%, transparent);
      -webkit-backdrop-filter: blur(8px) saturate(120%);
      backdrop-filter: blur(8px) saturate(120%);
      opacity: 0; visibility: hidden;
      transition: opacity var(--transition-base), visibility 0s linear var(--duration-normal);
    }
    .poem-lock.is-open { opacity: 1; visibility: visible; transition: opacity var(--transition-base), visibility 0s; }

    .poem-lock__panel {
      position: relative; width: min(480px, 100%);
      display: flex; flex-direction: column;
      background: color-mix(in srgb, var(--cyber-void-300) 90%, transparent);
      border: 1px solid var(--cyber-magenta-500);
      clip-path: polygon(0 0, calc(100% - 18px) 0, 100% 18px, 100% 100%, 18px 100%, 0 calc(100% - 18px));
      box-shadow: 0 0 50px color-mix(in srgb, var(--cyber-magenta-500) 35%, transparent), inset 0 0 40px color-mix(in srgb, var(--cyber-magenta-500) 7%, transparent);
      transform: translateY(14px) scale(0.985);
      transition: transform var(--transition-base);
    }
    .poem-lock.is-open .poem-lock__panel { transform: none; }
    .poem-lock__panel::after {
      content: ""; position: absolute; inset: 0; pointer-events: none;
      background: repeating-linear-gradient(0deg, transparent 0, transparent 2px, rgb(0 0 0 / 14%) 2px, rgb(0 0 0 / 14%) 4px);
    }
    .poem-lock__chrome {
      display: flex; align-items: center; gap: var(--space-3xs);
      padding: var(--space-xs) var(--space-sm);
      background: var(--cyber-void-200);
      border-bottom: 1px solid var(--cyber-magenta-500);
      flex-shrink: 0;
    }
    .poem-lock__dot { width: 10px; height: 10px; border-radius: 50%; background: var(--cyber-magenta-500); }
    .poem-lock__dot:nth-child(2) { background: var(--cyber-magenta-700); }
    .poem-lock__dot:nth-child(3) { background: #6b0e2e; }
    .poem-lock__label {
      font-family: var(--font-mono); font-size: var(--text-xs);
      color: var(--cyber-magenta-500); margin-left: var(--space-xs);
      letter-spacing: 0.1em; text-transform: uppercase;
    }
    .poem-lock__close {
      margin-left: auto; width: 30px; height: 30px; flex-shrink: 0;
      display: flex; align-items: center; justify-content: center;
      border: 1px solid var(--cyber-magenta-500); background: transparent;
      color: var(--cyber-magenta-500); font-family: var(--font-mono); font-size: var(--text-sm);
      cursor: pointer; transition: all var(--transition-fast); line-height: 1;
    }
    .poem-lock__close:hover { background: var(--cyber-magenta-500); color: var(--cyber-void-900); }
    .poem-lock__body { padding: var(--space-md); overflow-y: auto; display: flex; flex-direction: column; gap: var(--space-sm); }
    .poem-lock__title {
      font-family: var(--font-display); font-size: var(--text-xl); font-weight: 700;
      letter-spacing: 0.05em; text-transform: uppercase;
      color: var(--cyber-magenta-500); text-shadow: 0 0 12px color-mix(in srgb, var(--cyber-magenta-500) 60%, transparent);
      margin-bottom: var(--space-3xs); overflow-wrap: anywhere;
    }
    .poem-lock__prompt {
      font-family: var(--font-mono); font-size: var(--text-sm);
      color: var(--cyber-chrome-400);
    }
    .poem-lock__field {
      display: flex; align-items: center; gap: var(--space-sm);
      border: 1px solid var(--cyber-magenta-700);
      background: var(--cyber-void-500);
      padding: var(--space-xs) var(--space-sm);
      transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
    }
    .poem-lock__field:focus-within {
      border-color: var(--cyber-magenta-500);
      box-shadow: 0 0 10px color-mix(in srgb, var(--cyber-magenta-500) 40%, transparent);
    }
    .poem-lock__sigil { font-family: var(--font-mono); color: var(--cyber-magenta-500); font-size: var(--text-sm); }
    .poem-lock__input {
      flex: 1; min-width: 0; background: transparent; border: none; outline: none;
      color: var(--cyber-magenta-500); font-family: var(--font-mono); font-size: var(--text-base);
      letter-spacing: 0.3em;
    }
    .poem-lock__input::placeholder { color: var(--cyber-chrome-600); letter-spacing: 0.2em; }
    .poem-lock__status {
      font-family: var(--font-mono); font-size: var(--text-sm); min-height: 1.2em;
      color: var(--cyber-chrome-400);
    }
    .poem-lock__status--ok { color: var(--cyber-green-500); text-shadow: 0 0 8px color-mix(in srgb, var(--cyber-green-500) 60%, transparent); }
    .poem-lock__status--err { color: var(--cyber-red-500); text-shadow: 0 0 8px color-mix(in srgb, var(--cyber-red-500) 60%, transparent); }
    .poem-lock__submit {
      align-self: flex-start;
      font-family: var(--font-display); font-size: var(--text-sm); letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--cyber-void-900); background: var(--cyber-magenta-500);
      border: 1px solid var(--cyber-magenta-500);
      padding: var(--space-xs) var(--space-lg);
      cursor: pointer; transition: all var(--transition-fast);
      box-shadow: 0 0 16px color-mix(in srgb, var(--cyber-magenta-500) 45%, transparent);
    }
    .poem-lock__submit:hover { background: var(--cyber-magenta-700); box-shadow: 0 0 24px color-mix(in srgb, var(--cyber-magenta-500) 65%, transparent); }
    .poem-lock--shake { animation: poem-lock-shake 0.4s; }
    @keyframes poem-lock-shake {
      0%, 100% { transform: translateX(0); }
      20% { transform: translateX(-8px); }
      40% { transform: translateX(8px); }
      60% { transform: translateX(-6px); }
      80% { transform: translateX(6px); }
    }
    @media (prefers-reduced-motion: reduce) {
      .poem-lock--shake { animation: none; }
    }

    /* Locked poetry list item（机密档案） */
    .poetry-item--locked { border-color: var(--cyber-magenta-700); }
    .poetry-item--locked:hover, .poetry-item--locked:focus-visible {
      border-color: var(--cyber-magenta-500);
      box-shadow: 0 0 10px color-mix(in srgb, var(--cyber-magenta-500) 30%, transparent);
    }
    .poetry-item--locked .poetry-item__title {
      color: var(--cyber-magenta-500); text-shadow: 0 0 6px color-mix(in srgb, var(--cyber-magenta-500) 55%, transparent);
    }
    .poetry-item__lock { font-size: var(--text-sm); flex-shrink: 0; }
