.cast-person { cursor: pointer; transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease; }
.cast-person:hover, .cast-person:focus-visible { transform: translateY(-3px); border-color: #6a1a20; box-shadow: 0 12px 30px rgba(0,0,0,.28); outline: none; }
.cast-person::after { content: "View profile"; display: block; color: var(--accent-soft); font-size: .75rem; font-weight: 800; padding: 0 .7rem .7rem; }
.actor-profile-header { display: grid; grid-template-columns: 180px 1fr; gap: 1.5rem; align-items: start; }
.actor-profile-photo-wrap { aspect-ratio: 1 / 1; overflow: hidden; border-radius: 1rem; border: 1px solid var(--border); background: linear-gradient(145deg, #29292f, #111114); }
.actor-profile-photo { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; display: block; }
.actor-profile-photo-fallback { width: 100%; height: 100%; place-items: center; font-size: 4rem; font-weight: 900; color: var(--muted); }
.actor-profile-copy h2 { font-size: 2.35rem; margin: .25rem 0 .7rem; }
.actor-profile-summary { color: #dddde2; line-height: 1.65; max-width: 700px; }
.actor-known-roles { color: var(--muted); line-height: 1.6; }
.actor-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 1rem; margin-bottom: 1rem; }
.actor-section-heading h3 { margin: .25rem 0 0; }
.actor-title-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .9rem; }
.actor-title-card { border: 1px solid var(--border); border-radius: .9rem; overflow: hidden; background: var(--panel-2); cursor: pointer; transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease; }
.actor-title-card:hover, .actor-title-card:focus-visible { transform: translateY(-3px); border-color: #6a1a20; box-shadow: 0 12px 30px rgba(0,0,0,.28); outline: none; }
.actor-title-poster { aspect-ratio: 2 / 3; }
.actor-title-copy { padding: .75rem; }
.actor-title-copy strong { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.actor-character { color: #c9c9cf; font-size: .8rem; margin-top: .35rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.available-badge { display: inline-block; margin-top: .6rem; color: var(--ok); font-size: .76rem; font-weight: 800; }
.actor-external-note { margin-top: 1.35rem; border: 1px solid var(--border); border-radius: .8rem; padding: .85rem 1rem; color: var(--muted); background: rgba(255,255,255,.02); font-size: .88rem; }
@media (max-width: 900px) { .actor-title-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 700px) { .actor-profile-header { grid-template-columns: 1fr; } .actor-profile-photo-wrap { width: min(220px, 60vw); } .actor-title-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
