.char-list { display: flex; flex-direction: column; gap: 1.5rem; }
.char-card { border: 1px solid var(--border); background: var(--bg-elevated); padding: 2rem 2.2rem; position: relative; transition: border-color 0.4s, transform 0.3s, box-shadow 0.4s; }
.char-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent, var(--accent-dim), transparent); opacity: 0; transition: opacity 0.4s; }
.char-card:hover { border-color: var(--border-warm); transform: translateY(-2px); box-shadow: 0 0 20px rgba(181, 160, 122, 0.03); }
.char-card:hover::before { opacity: 1; }
.char-header { display: flex; align-items: baseline; gap: 1rem; margin-bottom: 0.3rem; flex-wrap: wrap; }
.char-name { font-family: var(--serif); font-weight: 500; font-size: 1.35rem; color: var(--text-bright); letter-spacing: 0.02em; }
.char-cjk { font-family: var(--cjk); font-size: 0.75rem; color: var(--accent-dim); }
.char-faction { font-family: var(--sans); font-size: 0.6rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--accent-soft); margin-bottom: 1rem; }
.char-desc { font-size: 0.95rem; color: var(--text); line-height: 1.8; margin: 0; }
.aeon-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.aeon-card { border: 1px solid var(--border); background: var(--bg-elevated); padding: 1.5rem 1.6rem; position: relative; transition: border-color 0.4s, transform 0.3s, box-shadow 0.4s; }
.aeon-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent, var(--accent-dim), transparent); opacity: 0; transition: opacity 0.4s; }
.aeon-card:hover { border-color: var(--border-warm); transform: translateY(-2px); box-shadow: 0 0 20px rgba(181, 160, 122, 0.03); }
.aeon-card:hover::before { opacity: 1; }
.aeon-card .char-name { font-size: 1.15rem; margin-bottom: 0.15rem; }
.aeon-card .char-faction { margin-bottom: 0.7rem; }
.aeon-card .char-desc { font-size: 0.88rem; }
@media (max-width: 768px) { .char-card { padding: 1.5rem; } .aeon-grid { grid-template-columns: 1fr; } .aeon-card { padding: 1.3rem; } }
