.npc-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.npc-card { display: flex; flex-direction: column; min-width: 0; padding: 20px; border: 1px solid #303030; border-radius: 11px; background: #090909; }
.npc-card header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding-bottom: 16px; border-bottom: 1px solid #2b2b2b; }
.npc-kicker { display: block; margin-bottom: 5px; color: #9e9e9e; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.npc-card h2 { margin: 0 0 8px; font-size: 17px; line-height: 1.25; overflow-wrap: anywhere; }
.npc-kind { color: #e6c176; font-size: 12px; }
.npc-world { flex: none; max-width: 40%; padding: 5px 9px; border: 1px solid #604e30; border-radius: 99px; color: #d9bc82; background: #18140d; font-size: 11px; text-align: center; overflow-wrap: anywhere; }
.npc-card dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 20px; margin: 18px 0; }
.npc-card dl > div { min-width: 0; }
.npc-card dt { margin-bottom: 5px; color: #9e9e9e; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.npc-card dd { margin: 0; color: #f0f0f0; font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; }
.npc-card dl > div:last-child { grid-column: 1 / -1; }
.npc-card dl > div:last-child dd { font: 11px/1.45 Consolas, monospace; color: #c8c8c8; }
.npc-copy { align-self: flex-start; margin-top: auto; }
@media (max-width: 1150px) { .npc-list { grid-template-columns: 1fr; } }
@media (max-width: 620px) { .npc-card { padding: 16px; } .npc-card header { gap: 10px; } .npc-card h2 { font-size: 15px; } .npc-card dl { gap: 14px 12px; } }
