#castDialog[hidden] { display: none !important; }
#castDialog { display: flex; align-items: center; padding: 64px 0 20px; }
#castDialog .cast-chain {
    display: flex; align-items: stretch; gap: 20px; position: relative;
    width: 100%; max-height: calc(100dvh - 100px); padding: 12px 24px;
    overflow-x: auto; overflow-y: hidden; overscroll-behavior: contain;
    scrollbar-width: thin; scrollbar-color: var(--primary) transparent;
    scroll-snap-type: x proximity; touch-action: pan-x pan-y;
}
#castDialog .cast-dialog__panel {
    flex: 0 0 min(940px, calc(100vw - 48px)); margin-inline: auto;
    max-height: min(860px, calc(100dvh - 124px)); min-width: 0;
    scroll-snap-align: center; border-radius: 22px;
    animation: cast-chain-enter .28s ease both;
}
#castDialog .cast-chain--multiple .cast-dialog__panel { flex-basis: min(680px, calc((100vw - 68px) / 2)); margin-inline: 0; }
#castDialog .cast-chain--multiple .cast-profile { grid-template-columns: minmax(130px, 31%) minmax(0, 1fr); }
#castDialog .cast-chain--multiple .cast-profile__content { padding: 24px; }
#castDialog .cast-chain--multiple .cast-profile h2 { font-size: clamp(23px, 2.3vw, 32px); }
#castDialog .cast-chain--multiple .cast-credits { grid-template-columns: 1fr; }
#castDialog .cast-dialog__toolbar { grid-template-columns: minmax(0, 1fr) 42px; }
#castDialog .cast-dialog__toolbar > span { grid-column: 1; }
#castDialog .cast-dialog__toolbar > button { grid-column: 2; }
#castDialog .cast-chain__close-all {
    position: absolute; top: 14px; right: 24px; z-index: 3;
    display: flex; align-items: center; gap: 12px; padding: 10px 16px;
    border: 1px solid var(--border-light); border-radius: 12px;
    background: var(--surface); color: var(--text-primary); font: inherit; cursor: pointer;
}
#castDialog .cast-chain__close-all > span { font-size: 22px; }
#castDialog .cast-chain__status { padding: 36px; min-height: 160px; color: var(--text-secondary); }
#castDialog button.lore-tag { font-family: inherit; cursor: pointer; }
#castDialog button.cast-credit { text-align: left; font-family: inherit; cursor: pointer; width: 100%; }
#castDialog button:focus-visible { outline: 2px solid var(--primary); outline-offset: -3px; }
@keyframes cast-chain-enter { from { opacity: 0; transform: translateX(24px) scale(.98); } to { opacity: 1; transform: none; } }
@media (max-width: 900px) {
    #castDialog .cast-chain { gap: 12px; padding-inline: 12px; }
    #castDialog .cast-dialog__panel,
    #castDialog .cast-chain--multiple .cast-dialog__panel { flex-basis: calc(100vw - 40px); }
}
@media (max-width: 640px) {
    #castDialog .cast-profile,
    #castDialog .cast-chain--multiple .cast-profile { display: block; }
    #castDialog .cast-profile__portrait { min-height: 220px; height: 32dvh; }
    #castDialog .cast-profile__content { margin-top: 0; padding: 20px; }
}
@media (prefers-reduced-motion: reduce) {
    #castDialog .cast-dialog__panel { animation: none; transition: none; }
}
