.characters-page{padding-top:76px}.characters-hero{position:relative;overflow:hidden;padding:4.8rem 1rem 3rem;border-bottom:1px solid rgba(212,175,55,.14);background:radial-gradient(circle at 50% 0,rgba(220,20,60,.16),transparent 38%),linear-gradient(180deg,#15131d,#0a0a0f)}.characters-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(212,175,55,.035) 1px,transparent 0),linear-gradient(rgba(212,175,55,.035) 1px,transparent 0);background-size:36px 36px;-webkit-mask-image:linear-gradient(180deg,black,transparent);mask-image:linear-gradient(180deg,black,transparent)}.characters-hero-inner{position:relative;z-index:1;max-width:900px;margin:0 auto;text-align:center}.characters-hero-kicker{display:inline-flex;align-items:center;gap:.45rem;margin-bottom:.85rem;padding:.5rem .78rem;border:1px solid rgba(212,175,55,.2);border-radius:999px;background:rgba(255,255,255,.035);font-family:var(--font-ui);font-size:.76rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--gold)}.characters-hero h1{font-size:clamp(2.25rem,5.6vw,4.5rem);line-height:.98;background:linear-gradient(135deg,var(--gold-light),var(--gold) 45%,#dc143c);-webkit-background-clip:text;background-clip:text;color:transparent}.characters-hero p{max-width:700px;margin:1rem auto 0;color:var(--text-secondary);font-size:1.03rem}.characters-section{width:min(1180px,calc(100% - 2rem));margin:0 auto;padding:2.6rem 0}.characters-section-head{display:grid;gap:.7rem;margin-bottom:1.4rem}.characters-section-head.center{text-align:center}.characters-section-head.center p{margin-inline:auto}.characters-section-head h2{font-size:clamp(1.8rem,3vw,2.7rem);line-height:1.05}.characters-section-head p{max-width:740px;color:var(--text-secondary)}.characters-roster-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.9rem}.characters-roster-card{position:relative;overflow:hidden;display:grid;min-height:430px;border:1px solid rgba(212,175,55,.14);border-radius:22px;background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(12,12,18,.97));box-shadow:0 16px 32px rgba(0,0,0,.22);transition:.35s ease}.characters-roster-card:hover{transform:translateY(-6px);border-color:var(--queen-color);box-shadow:0 22px 40px rgba(0,0,0,.32)}.characters-roster-art{position:relative;min-height:328px;overflow:hidden;background:radial-gradient(circle at top,rgba(255,255,255,.08),transparent 56%)}.characters-roster-art img{object-fit:cover;object-position:center top;transition:.35s ease}.characters-roster-card:hover img{transform:scale(1.035)}.characters-roster-content{position:relative;display:grid;gap:.34rem;padding:.9rem .92rem 1rem;background:linear-gradient(180deg,rgba(12,12,18,.78),rgba(12,12,18,.98))}.characters-roster-flower{font-family:var(--font-ui);font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--queen-color)}.characters-roster-content h3{font-size:1.02rem;line-height:1.1}.characters-roster-content p{color:var(--text-secondary);font-size:.84rem}.characters-roster-link{display:inline-flex;align-items:center;gap:.35rem;margin-top:.34rem;font-family:var(--font-ui);font-size:.78rem;font-weight:700;color:var(--gold-light)}.characters-kingdom-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.characters-kingdom-card{display:grid;gap:.9rem;padding:1rem;border:1px solid rgba(212,175,55,.14);border-radius:22px;background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(14,14,20,.96));box-shadow:0 14px 28px rgba(0,0,0,.18);transition:.3s ease}.characters-kingdom-card:hover{transform:translateY(-5px);border-color:var(--kingdom-color)}.characters-kingdom-card.virethra{border-color:rgba(204,0,68,.28);background:linear-gradient(180deg,rgba(204,0,68,.08),rgba(14,14,20,.96))}.characters-kingdom-header{display:flex;align-items:center;gap:.8rem}.characters-kingdom-emblem{display:flex;align-items:center;justify-content:center;width:62px;height:62px;flex:0 0 auto;border-radius:18px;background:rgba(255,255,255,.045)}.characters-kingdom-emblem img{object-fit:contain}.characters-kingdom-name{font-size:1rem;line-height:1.15}.characters-kingdom-authority{display:inline-flex;align-items:center;gap:.35rem;margin-top:.26rem;font-family:var(--font-ui);font-size:.76rem;font-weight:700;color:var(--kingdom-color)}.characters-kingdom-description{color:var(--text-secondary);font-size:.9rem;line-height:1.6}.characters-kingdom-details{display:grid;gap:.55rem}.characters-kingdom-detail{display:grid;gap:.12rem}.characters-kingdom-detail span:first-child{font-family:var(--font-ui);font-size:.68rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--gold)}.characters-kingdom-detail span:last-child{color:#e8e1d5;font-size:.86rem}.characters-traits{display:flex;flex-wrap:wrap;gap:.38rem}.characters-traits span{padding:.33rem .55rem;border-radius:999px;background:rgba(255,255,255,.05);font-family:var(--font-ui);font-size:.7rem;color:#eee5d7}.characters-kingdom-cta{display:inline-flex;align-items:center;gap:.4rem;width:fit-content;margin-top:.25rem;font-family:var(--font-ui);font-size:.78rem;font-weight:700;color:var(--kingdom-color)}.characters-bottom-cta{display:grid;justify-items:center;gap:.85rem;padding:2rem;border:1px solid rgba(212,175,55,.18);border-radius:26px;background:radial-gradient(circle at top,rgba(220,20,60,.11),transparent 55%),rgba(255,255,255,.025);text-align:center}.characters-bottom-cta h3{font-size:1.35rem}.characters-bottom-cta p{max-width:680px;color:var(--text-secondary)}.characters-primary-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.78rem 1rem;border-radius:999px;border:1px solid rgba(212,175,55,.32);background:linear-gradient(135deg,#7a1520,#b22222);font-family:var(--font-ui);font-size:.84rem;font-weight:700;color:#fff4e1}@media(max-width:1100px){.characters-roster-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.characters-kingdom-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.characters-hero{padding-top:4.2rem}.characters-section{width:min(100%,calc(100% - 1rem));padding:2rem 0}.characters-kingdom-grid,.characters-roster-grid{grid-template-columns:1fr}.characters-roster-card{min-height:390px}.characters-roster-art{min-height:300px}}