/* Cast geometry and motion follow the observed public reference component. */
#detail-dialog .detail-cast h3{margin-bottom:20px}
/* Horizontal scrollers also clip vertically. Bleed into the existing gutter so
   scaled portraits, their glow and keyboard outlines have room at every edge. */
.detail-cast-list{gap:20px;margin:-8px -12px;padding:16px 12px 24px;scroll-padding-inline:12px;overflow-y:auto}
.cast-person{flex:0 0 128px;width:128px;gap:12px;text-decoration:none;color:inherit;outline-offset:6px}
.cast-portrait{display:block;position:relative;z-index:1;width:96px;height:96px;flex:none;overflow:hidden;border-radius:50%;border:1px solid #ffffff1a;background:#ffffff0d;box-shadow:0 10px 15px -3px #0003,0 4px 6px -4px #0003;transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease}
.cast-person .cast-portrait img,.cast-person .cast-placeholder{display:block;width:100%;height:100%;margin:0;border-radius:inherit;object-fit:cover;object-position:center;transition:none}
.cast-person .cast-placeholder{display:grid;place-items:center;font-size:24px;color:#ffffff4d}
.cast-portrait.image-unavailable:after{content:attr(data-initial);display:grid;place-items:center;position:absolute;inset:0;font-size:24px;color:#ffffff4d}
.cast-copy{display:block;width:100%;text-align:center;transition:transform .3s ease}
.cast-copy strong,.cast-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400}
.cast-copy strong{font-size:14px!important;font-weight:500!important;line-height:20px;color:#ffffffe6;transition:color .3s ease}
.cast-copy small{font-size:12px!important;line-height:16px;margin-top:2px;color:#ffffff80;transition:color .3s ease}
a.cast-person:is(:hover,:focus-visible) .cast-portrait{transform:scale(1.1);border-color:#ffffff4d;box-shadow:0 10px 15px -3px #fff3,0 4px 6px -4px #fff3}
a.cast-person:is(:hover,:focus-visible) .cast-copy{transform:translateY(4px)}
a.cast-person:is(:hover,:focus-visible) .cast-copy strong{color:#fff}
a.cast-person:is(:hover,:focus-visible) .cast-copy small{color:#ffffffb3}
.cast-loading{color:#ffffff73;font-size:14px;padding:24px 0}
.person-page{width:min(1536px,calc(100% - 2 * var(--page-gutter)));margin:0 auto;padding:138px 0 80px;min-height:85vh;animation:page-in .25s ease-out}
.person-profile{display:grid;grid-template-columns:280px minmax(0,1fr);gap:52px}
.person-portrait{position:relative;aspect-ratio:2/3;overflow:hidden;border-radius:14px;background:#ffffff0a;border:1px solid #ffffff12}
.person-portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.person-portrait-initial{position:absolute;inset:0;display:grid;place-items:center;font-size:72px;font-weight:700;color:#ffffff30}
.person-facts{margin:32px 0 0;display:grid;gap:22px}
.person-facts div{min-width:0}.person-facts dt{font-size:14px;font-weight:650;color:#ffffffe6}.person-facts dd{margin:5px 0 0;font-size:14px;line-height:1.55;color:#ffffff80;overflow-wrap:anywhere}
.person-main{min-width:0}.person-main h1{margin:0 0 32px;font-family:var(--display);font-size:44px;line-height:1.15;letter-spacing:-1.4px;font-weight:750;background:linear-gradient(#fff,#a1a1aa);background-clip:text;-webkit-background-clip:text;color:transparent}
.person-main h2{margin:0 0 20px;font-size:24px;line-height:1.3;font-weight:700;letter-spacing:-.4px}
.person-bio-section{margin-bottom:40px}.person-biography{white-space:pre-line;font-size:15px;line-height:1.8;color:#ffffffb3;margin:0;display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}.person-biography.is-expanded{display:block}
.person-read-more{display:inline-block;padding:0;margin-top:12px;background:none;border:0;color:#ffffffad;font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:color .2s ease}.person-read-more:hover{color:#fff}
.person-known-for{margin-bottom:44px}
/* Negative margins offset the extra padding without moving the original first
   poster or changing the space between this rail and the surrounding copy. */
.person-known-grid{display:grid;grid-auto-flow:column;grid-auto-columns:156px;gap:16px;overflow-x:auto;scrollbar-width:none;margin:-12px -12px -20px;padding:16px 16px 32px;scroll-padding-inline:16px;scroll-snap-type:x proximity}.person-known-grid::-webkit-scrollbar{display:none}.person-known-grid>.movie-card{scroll-snap-align:start}
.person-filmography-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}.person-filmography-heading h2{margin-bottom:4px}.person-filmography-heading>div>span{font-size:12px;color:#ffffff73}
.person-media-tabs{display:inline-flex;flex:none;gap:0;padding:4px;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:999px}
.person-media-tabs button{border:0;border-radius:999px;min-width:96px;padding:9px 18px;background:transparent;color:#ffffffa6;font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:color .25s,background-color .25s,box-shadow .25s}
.person-media-tabs button[aria-selected=true]{background:#fff;color:#080808;box-shadow:0 0 12px #ffffff28}.person-media-tabs button:hover{color:#fff}.person-media-tabs button[aria-selected=true]:hover{color:#080808}
.person-credits{border:1px solid #ffffff12;background:#ffffff03;border-radius:14px;overflow:hidden}
.person-credit{display:flex;align-items:center;gap:24px;padding:18px 22px;color:inherit;text-decoration:none;border-bottom:1px solid #ffffff0d;transition:background-color .2s ease}.person-credit:last-child{border-bottom:0}.person-credit:hover,.person-credit:focus-visible{background:#ffffff09}
.person-credit:focus-visible{outline:2px solid #fff;outline-offset:-3px}
.person-credit-year{width:40px;flex:none;color:#ffffff73;font-size:13px}.person-credit-copy{min-width:0;flex:1}.person-credit-copy strong{display:block;font-size:14px;font-weight:600;color:#ffffffe6}.person-credit-copy small{display:block;margin-top:3px;font-size:12px;color:#ffffff73}.person-credit-arrow{color:#ffffff59;transition:transform .25s,color .25s}.person-credit:hover .person-credit-arrow{transform:translateX(3px);color:#fff}
.person-load-more{display:block;margin:24px auto 0}.person-empty{padding:22px;color:#ffffff73;font-size:14px}.person-status{font-size:12px;color:#ffffff66;margin:20px 0}.person-status:empty{display:none}
.person-message{padding:80px 24px;text-align:center}.person-message h1{font-size:36px}.person-message p{color:#ffffff80}.person-message .button{display:inline-flex;margin:16px 6px}
.person-loading{display:grid;grid-template-columns:280px minmax(0,1fr);gap:52px}.person-loading-portrait{aspect-ratio:2/3;border-radius:14px;background:#ffffff08}.person-loading h1{font-size:32px;color:#ffffff80}.person-loading div>span{display:block;height:18px;max-width:800px;background:#ffffff08;border-radius:8px;margin:18px 0}.person-loading div>span:last-child{width:65%}.person-loading{animation:person-pulse 1.4s ease-in-out infinite}@keyframes person-pulse{50%{opacity:.5}}
@media(min-width:768px){.cast-portrait{width:112px;height:112px}}
@media(min-width:1024px){.cast-person{flex-basis:144px;width:144px}}
@media(max-width:760px){.detail-cast-list{margin-right:-24px;padding-right:24px;scroll-padding-right:24px}}
@media(max-width:1023px){.person-page{padding-top:120px}.person-profile,.person-loading{grid-template-columns:220px minmax(0,1fr);gap:32px}.person-main h1{font-size:38px}.person-known-grid{grid-auto-columns:144px}.person-filmography-heading{align-items:flex-start;flex-direction:column;gap:16px}}
@media(max-width:640px){.person-page{width:calc(100% - 40px);padding:100px 0 90px}.person-profile,.person-loading{grid-template-columns:minmax(0,1fr);gap:28px}.person-sidebar{display:grid;grid-template-columns:130px minmax(0,1fr);gap:24px}.person-facts{margin:0;gap:14px}.person-facts dt,.person-facts dd{font-size:12px}.person-main h1{font-size:34px;margin-bottom:26px}.person-main h2{font-size:21px}.person-biography{font-size:14px}.person-known-grid{grid-auto-columns:132px;gap:12px;margin-right:-20px;padding-right:20px}.person-filmography-heading{flex-direction:row;align-items:center;gap:12px}.person-media-tabs button{min-width:0;padding:8px 11px;font-size:12px}.person-credit{padding:16px 14px;gap:14px}.person-credit-year{width:32px;font-size:12px}.person-credit-copy strong{font-size:13px}.person-credit-copy small{font-size:11px}.person-loading-portrait{width:130px}.person-message{padding:48px 0}.person-message h1{font-size:28px}}
@media(prefers-reduced-motion:reduce){:where(html:not([data-motion=full])) .cast-portrait,:where(html:not([data-motion=full])) .cast-copy,:where(html:not([data-motion=full])) .cast-copy strong,:where(html:not([data-motion=full])) .cast-copy small,:where(html:not([data-motion=full])) .person-media-tabs button,:where(html:not([data-motion=full])) .person-credit,:where(html:not([data-motion=full])) .person-credit-arrow{transition:none}:where(html:not([data-motion=full])) .person-page,:where(html:not([data-motion=full])) .person-loading{animation:none}:where(html:not([data-motion=full])) a.cast-person:is(:hover,:focus-visible) .cast-portrait,:where(html:not([data-motion=full])) a.cast-person:is(:hover,:focus-visible) .cast-copy,:where(html:not([data-motion=full])) .person-credit:hover .person-credit-arrow{transform:none}}
html[data-motion=reduced] .cast-portrait,html[data-motion=reduced] .cast-copy,html[data-motion=reduced] .cast-copy strong,html[data-motion=reduced] .cast-copy small,html[data-motion=reduced] .person-media-tabs button,html[data-motion=reduced] .person-credit,html[data-motion=reduced] .person-credit-arrow{transition:none}
html[data-motion=reduced] .person-page,html[data-motion=reduced] .person-loading{animation:none}
html[data-motion=reduced] a.cast-person:is(:hover,:focus-visible) .cast-portrait,html[data-motion=reduced] a.cast-person:is(:hover,:focus-visible) .cast-copy,html[data-motion=reduced] .person-credit:hover .person-credit-arrow{transform:none}
