/* Native responsive sizing for the story library and episode menus. */
.story-shell {
    --story-label-size: clamp(.75rem, .55vw, 1rem);
    --story-text-size: clamp(.9rem, .7vw, 1.25rem);
}
.episode-copy, .chapter-summary-copy, .chapter-reward, .story-card-copy { min-width: 0; }
.episode-facts { flex-wrap: wrap; }
.chapter-summary-copy strong { white-space: normal; overflow-wrap: anywhere; }
.chapter-reward small { white-space: normal; overflow-wrap: anywhere; }
.chapter-rewards-header p { max-width: 560px; }
.story-shell .story-back,
.story-shell .story-kicker,
.story-shell .story-season span,
.story-shell .story-season strong,
.story-detail-navigation > span,
.story-card-volume, .story-card-status, .story-card-kicker,
.story-card-tags, .story-card-progress, .story-card-cta,
.story-library-kicker, .story-library-count, .story-carousel-hint,
.episode-label, .episode-state, .episode-visual-title span,
.episode-facts dt, .episode-formats, .progress-eyebrow,
.progress-value span, .chapter-rewards-kicker,
.chapter-summary-copy small, .chapter-dropdown-label,
.chapter-status-badge, .chapter-reward small {
    font-size: var(--story-label-size);
}
.story-shell .story-heading p, .story-card-copy p,
.episode-facts dd, .episode-formats b, .episode-progress p,
.chapter-rewards-header p, .chapter-reward b,
.episode-cta, .chapter-claim {
    font-size: var(--story-text-size);
}
.episode-cta, .story-card-cta { min-height: 48px; }

@media (min-width: 1760px) {
    .story-shell { width: 94%; padding-top: 130px; }
    .story-shell .story-heading h1 { font-size: clamp(4rem, 3.4vw, 7rem); }
    .story-heading p { max-width: 1000px; }
    .episode-content {
        grid-template-columns: minmax(0, 1.75fr) minmax(360px, .65fr);
        gap: clamp(34px, 2vw, 72px);
        padding: clamp(34px, 2vw, 72px);
    }
    .episode-copy h2 { font-size: clamp(3.35rem, 2.6vw, 5.5rem); }
    .episode-logline { max-width: 1200px; font-size: clamp(1.22rem, 1vw, 1.8rem); }
    .episode-visual-title strong { font-size: clamp(3rem, 2.3vw, 5rem); }
    .cast-member img { width: clamp(36px, 1.8vw, 64px); height: clamp(36px, 1.8vw, 64px); }
    .progress-value strong { font-size: clamp(2.8rem, 2vw, 4.5rem); }
    .chapter-rewards { margin: 0 clamp(34px, 2vw, 72px) 40px; }
    .chapter-rewards-header h3 { font-size: clamp(1.6rem, 1.3vw, 2.8rem); }
    .chapter-row summary { min-height: clamp(88px, 4.5vw, 140px); }
    .chapter-summary-copy strong { font-size: clamp(1.1rem, .9vw, 1.65rem); }
    .chapter-index { font-size: clamp(2rem, 1.6vw, 3rem); }
    .chapter-rewards-panel { grid-template-columns: minmax(0, 1fr) clamp(180px, 10vw, 280px); }
    .chapter-claim { width: 100%; min-height: 56px; }
    .chapter-reward {
        grid-template-columns: clamp(56px, 2.6vw, 88px) minmax(0, 1fr);
        min-width: clamp(190px, 12vw, 320px);
        gap: 6px 14px;
        padding: 12px;
    }
    .chapter-reward img { width: clamp(56px, 2.6vw, 88px); height: clamp(56px, 2.6vw, 88px); }
    .story-card { min-height: clamp(480px, 26vw, 760px); }
    .story-card-copy { min-height: clamp(399px, 22vw, 660px); padding: 50px clamp(42px, 3vw, 100px); }
    .story-card-copy h3 { max-width: 1000px; font-size: clamp(3.6rem, 2.8vw, 6rem); }
    .story-card-copy p { max-width: clamp(400px, 25vw, 800px); }
    .story-card-topline { padding-inline: clamp(34px, 2vw, 72px); }
}

@media (max-width: 1250px) {
    .story-page .landing-nav > a,
    .story-page .landing-nav > .bsv2-loadout-sep { display: none; }
    .story-page .landing-nav-dropdown-menu {
        max-height: calc(100dvh - 76px);
        overflow-y: auto;
    }
}
@media (max-width: 760px) {
    .story-shell { width: calc(100% - 28px); }
    .story-detail-navigation { flex-wrap: wrap; }
    .episode-visual-title strong { overflow-wrap: anywhere; }
    .chapter-summary-copy strong { font-size: 1rem; line-height: 1.4; }
    .chapter-reward-items { grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr)); }
    .chapter-reward { grid-template-columns: 42px minmax(0, 1fr); }
    .story-card-bottom { flex-wrap: wrap; }
    .story-card-status { letter-spacing: .03em; }
    .story-card-copy { padding-top: 36px; }
    .story-card--coming .story-card-copy { padding-top: 72px; }
    .progress-value { flex-wrap: wrap; }
}
@media (max-width: 380px) {
    .story-card-topline { align-items: flex-start; flex-wrap: wrap; }
    .episode-number { left: 12px; }
    .episode-state { right: 12px; max-width: calc(100% - 100px); letter-spacing: .03em; }
}
