h3 { font-family: var(--serif); font-weight: 400; font-size: 1.3rem; color: var(--text-bright); margin-bottom: 0.8rem; letter-spacing: 0.02em; }
.faction-block { border: 1px solid var(--border); background: var(--bg-elevated); padding: 2rem 2.2rem; margin-bottom: 1.5rem; position: relative; }
.faction-block::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent, var(--accent-dim), transparent); }
.faction-name { font-family: var(--serif); font-weight: 500; font-size: 1.25rem; color: var(--text-bright); margin-bottom: 0.3rem; }
.faction-tag { font-family: var(--sans); font-size: 0.6rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--accent-soft); margin-bottom: 1rem; }
.faction-block p { font-size: 0.95rem; color: var(--text); line-height: 1.8; margin-bottom: 0; }
.hierarchy { margin: 2rem 0; }
.hierarchy-item { padding: 0.9rem 0; border-bottom: 1px solid var(--border); display: flex; gap: 1rem; align-items: baseline; }
.hierarchy-item:last-child { border-bottom: none; }
.h-name { font-family: var(--serif); font-weight: 500; font-size: 1.05rem; color: var(--text-bright); min-width: 140px; flex-shrink: 0; }
.h-title { font-family: var(--serif); font-style: italic; font-size: 0.9rem; color: var(--accent-soft); min-width: 180px; flex-shrink: 0; }
.h-domain { font-size: 0.88rem; color: var(--text-muted); }
.concept { margin-bottom: 2.5rem; }
.concept h3 { margin-bottom: 0.6rem; }
.concept p { font-size: 0.95rem; color: var(--text); margin-bottom: 0; }
@media (max-width: 768px) { .faction-block { padding: 1.5rem; } .hierarchy-item { flex-direction: column; gap: 0.2rem; } .h-name, .h-title { min-width: auto; } }
