/* Podcast page composition. Player and persistent dock styling stays isolated
   in podcast-player.css so their lifecycle remains independent of page visits. */
.podcast-page:not(.podcast-page--landing) {
    inline-size: min(100% - 2rem, 76rem);
    margin-inline: auto;
    padding-block: var(--s1);
}

.podcast-landing {
    display: grid;
    gap: var(--s1);
}

.center:has(.podcast-page--landing) { max-inline-size: none; }
.shell.center:has(.podcast-page--episode) {
    inline-size: min(1380px, calc(100% - 32px));
    max-inline-size: none;
}
.podcast-page--landing { inline-size: min(1216px, calc(100% - 32px)); margin-inline: auto; max-inline-size: none; padding: 0; }
.podcast-home.podcast-landing { display: block; inline-size: 100%; margin-inline: auto; max-inline-size: none; padding: clamp(20px, 4vw, 64px) clamp(16px, 3vw, 32px) clamp(64px, 8vw, 128px); }
.podcast-home__opening { align-items: start; border-block-end: 1px solid var(--rule); display: grid; gap: clamp(32px, 6vw, 96px); grid-template-columns: minmax(0, 1fr) minmax(18rem, .82fr); padding-block: 0 64px; }
.podcast-home .podcast-intro { inline-size: 100%; margin: 0; max-inline-size: 43rem; padding: 0; }
.podcast-home .podcast-intro hgroup { border-block-end: 1px solid var(--rule); margin: 0 0 1rem; padding-block-end: 1.1rem; }
.podcast-home .podcast-intro hgroup h1 { font: 560 clamp(2.8rem, 6vw, 5.75rem)/.91 var(--font-serif); letter-spacing: -.055em; margin: 0; white-space: normal; }
.podcast-home .podcast-intro hgroup p { font: 600 clamp(16px, 1.8vw, 21.6px)/1.25 var(--font-sans); margin: 8px 0 0; }
.podcast-home .podcast-intro > p, .podcast-home .podcast-intro .principle { font: clamp(1.06rem, 1.35vw, 1.25rem)/1.55 var(--font-serif); }
.podcast-home .podcast-intro .principle { border-block: 0; border-inline-start: 3px solid var(--ink); font-weight: 400; margin-inline: 0; padding: 0 0 0 1rem; }
.podcast-home .podcast-intro h2 { font: 600 28.5px/42.75px var(--font-serif); margin: 23.655px 0 0; }
.podcast-home .podcast-landing__recent { margin-block-start: clamp(40px, 5vw, 64px); }
.podcast-home .podcast-landing__latest, .podcast-home .podcast-landing__recent { gap: 0; }
.podcast-home .podcast-landing__recent { display: block; }
.podcast-home .page-label { border: 0; color: var(--muted); display: block; font: 700 11.52px/normal var(--font-sans); letter-spacing: .11em; margin: 18.4px 0 11.2px; padding: 0; text-transform: uppercase; }
.podcast-home .podcast-landing__recent-list { background: var(--rule); border: 1px solid var(--rule); display: grid; gap: 1px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.podcast-home .podcast-landing__recent, .podcast-home .podcast-landing__recent-list, .podcast-home .podcast-landing__recent-list > li { inline-size: 100%; max-inline-size: none; }
.podcast-home .podcast-landing__recent-list { margin: 16px 0 clamp(48px, 7vw, 96px); padding: 0; }
.podcast-home .podcast-landing__recent-list .podcast-landing-card { background: var(--canvas); border: 0; display: grid; gap: 13.6px; grid-template-columns: 160px minmax(0, 1fr); padding: 13.6px; }
.podcast-landing-card__art, .podcast-landing-card__art img { block-size: 160px; display: block; inline-size: 160px; object-fit: contain; }
.podcast-home .podcast-landing-card h2 { border: 0; font: 600 clamp(1.15rem, 1.8vw, 1.65rem)/1 var(--font-serif); letter-spacing: -.025em; margin: .2rem 0; padding: 0; }
.podcast-home .podcast-landing-card__summary { -webkit-box-orient: vertical; -webkit-line-clamp: 3; color: var(--muted); display: -webkit-box; font-size: 14.72px; line-height: 1.3; margin: 6.4px 0 0; overflow: hidden; }
.podcast-home .podcast-meta { font: 700 11.52px/1.2 var(--font-sans); margin: 4.48px 0; }
.podcast-landing-lead__art, .podcast-landing-lead__art img { aspect-ratio: 1; display: block; inline-size: min(100%, 336px); margin-inline: auto; object-fit: cover; }
.podcast-landing-lead__copy { padding: 16px 0; }
.podcast-home .podcast-landing-lead h2 { border: 0; font: 560 clamp(2rem, 3.5vw, 3.7rem)/.94 var(--font-serif); letter-spacing: -.05em; margin: .45rem 0; padding: 0; }
.podcast-landing-lead__summary { color: var(--muted); font-size: 14.72px; line-height: 1.3; margin: 6.4px 0 0; }
.podcast-home .podcast-listen-links { margin: 0; }
.podcast-home__archive-link { margin: 0; }

.podcast-landing__episodes,
.podcast-landing__latest,
.podcast-landing__recent {
    display: grid;
    gap: var(--s-1);
}

.podcast-landing h2,
.podcast-archive h2,
.podcast-people-group > h2 {
    border-block-end: 1px solid var(--rule);
    margin: 0;
    padding-block-end: var(--s-3);
}

.podcast-landing__recent-list {
    border-block-start: 1px solid var(--rule);
    list-style: none;
    margin: 0;
    padding: 0;
}

.podcast-landing__recent-list .podcast-row {
    border-block-end: 1px solid var(--rule);
    padding-block: var(--s-2);
}

.podcast-landing__archive-link { margin: 0; }

.podcast-archive,
.podcast-people,
.podcast-person-appearances { max-inline-size: none; }

.podcast-episode-member-teaser {
    background: var(--panel);
    border-inline-start: 0.25rem solid var(--accent);
    margin-block: var(--s0);
    max-inline-size: 62ch;
    padding: var(--s-1);
}

.podcast-episode-member-teaser > * { margin-block: 0; }
.podcast-episode-member-teaser > * + * { margin-block-start: var(--s-3); }
.podcast-episode-member-teaser__eyebrow {
    color: var(--muted);
    font-family: var(--font-mono);
    font-size: var(--type-small);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.podcast-episode-member-teaser h2 { font-size: var(--s0); }
.podcast-episode-member-teaser__copy p { margin: 0; }
.podcast-episode-member-teaser__cta a {
    border: 1px solid currentColor;
    color: inherit;
    display: inline-block;
    font-family: var(--font-sans);
    font-size: var(--type-small);
    font-weight: 700;
    padding: var(--s-4) var(--s-2);
    text-decoration: none;
}
.podcast-episode-member-teaser__cta a:hover,
.podcast-episode-member-teaser__cta a:focus-visible { background: var(--ink); color: var(--canvas); }

.podcast-episode-layout { gap: clamp(var(--s1), 6vw, var(--s3)); }
.podcast-episode-chapters { max-inline-size: none; }
.podcast-show-notes { min-inline-size: 0; }

.podcast-people > li { text-align: center; }
.podcast-person__avatar-frame,
span.podcast-person__avatar { margin-inline: auto; }
.podcast-person__role { color: var(--muted); }
.podcast-person-hero { align-items: center; }

@media (min-width: 60rem) {
    .podcast-page--episode { inline-size: min(100% - 2rem, 90rem); }
    .podcast-episode-layout { grid-template-columns: minmax(0, 1fr) minmax(20rem, 0.78fr); }
    .podcast-episode-sidebar { grid-column: 2; }
    .podcast-show-notes { grid-column: 1; grid-row: 1; }
}

@media (max-width: 40rem) {
    .shell.center:has(.podcast-page--landing) { inline-size: min(1380px, calc(100% - 20px)); }
    .podcast-page:not(.podcast-page--landing) { inline-size: min(100% - 1rem, 76rem); }
    /* The approved source resolves these against its 16px root. Keep the
       landing editorial type at those actual mobile values under this app's
       18px root rather than scaling the headline and authored introduction. */
    .podcast-home .podcast-intro hgroup { padding-block-end: 17.6px; }
    .podcast-home .podcast-intro hgroup h1 { font-size: 44.8px; }
    .podcast-home .podcast-intro > p,
    .podcast-home .podcast-intro .principle {
        font-size: 16.96px;
        line-height: 26.288px;
    }
    .podcast-episode-member-teaser { margin-inline: 0; }
    .podcast-home__opening, .podcast-home .podcast-landing__recent-list { grid-template-columns: 1fr; }
    .podcast-home .podcast-landing__recent-list .podcast-landing-card { grid-template-columns: 112px minmax(0, 1fr); }
    .podcast-landing-card__art, .podcast-landing-card__art img { block-size: 112px; inline-size: 112px; object-fit: cover; }
}

/* Fallthrough's approved landing cascade keeps editorial links in ink. The
   latest title retains the standard underline; shelf titles are card labels. */
.podcast-home.podcast-landing :is(.podcast-landing-lead h2, .podcast-landing-card h2) a {
    color: inherit;
}
.podcast-home.podcast-landing .podcast-landing-card h2 a { text-decoration: none; }
.podcast-home.podcast-landing .podcast-landing-lead .podcast-meta > * + *::before {
    content: '·';
    margin-inline: .8ch;
}

/* The source image remains a 336px square inside the desktop lead's supplied
   Quiet Steel frame. The frame collapses to the card width on narrow screens. */
@media (min-width: 761px) {
    .podcast-landing-lead__art {
        align-items: center;
        background: rgb(32 37 34);
        block-size: 336px;
        display: grid;
        inline-size: 100%;
        justify-content: center;
        margin: 0;
    }
    .podcast-landing-lead__art img {
        block-size: 336px;
        inline-size: 336px;
        margin: 0;
    }
}

.podcast-home .podcast-landing-lead .podcast-meta {
    letter-spacing: .09em;
    text-transform: uppercase;
}
.podcast-home .podcast-landing-lead__summary {
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    display: -webkit-box;
    overflow: hidden;
}

/* Contributor pages use the supplied editorial directory rather than the
   legacy boxed-card component. The data grouping and chronological
   appearances stay exactly as the controller provides them. */
.podcast-people-directory,
.podcast-person-page {
    color: var(--ink);
    margin-inline: auto;
    max-inline-size: 1216px;
    padding: clamp(20px, 4vw, 64px) clamp(16px, 3vw, 32px) clamp(64px, 8vw, 128px);
}
.podcast-people-directory__head {
    border-block-end: 1px solid var(--rule);
    margin-block-end: 32px;
    text-align: start;
}
.podcast-people-directory h1,
.podcast-person-page h1 {
    font: 560 clamp(48px, 6vw, 88px)/.9 var(--font-serif);
    letter-spacing: -.06em;
    margin: 0;
}
.podcast-people-directory .podcast-people-group {
    margin-block: 48px;
}
.podcast-people-directory .podcast-people__label {
    border: 0;
    color: var(--muted);
    font: 700 11.52px/1.35 var(--font-sans);
    letter-spacing: .1em;
    margin: 0 0 16px;
    padding: 0;
    text-transform: uppercase;
}
.podcast-people-directory .podcast-people {
    gap: clamp(12px, 1.4vw, 20px);
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.podcast-people-directory .podcast-person,
.podcast-people-directory .podcast-person__link {
    background: var(--tint);
    display: block;
    inline-size: 100%;
    max-inline-size: none;
}
.podcast-people-directory .podcast-person__link {
    color: inherit;
    text-decoration: none;
}
.podcast-people-directory .podcast-person__avatar-frame,
.podcast-people-directory span.podcast-person__avatar {
    border: 0;
    inline-size: 100%;
}
.podcast-people-directory .podcast-person__avatar,
.podcast-people-directory img.podcast-person__avatar {
    filter: grayscale(1);
    inline-size: 100%;
}
.podcast-people-directory .podcast-person__body {
    display: grid;
    gap: 4px;
    padding: 12.8px;
    text-align: start;
}
.podcast-people-directory .podcast-person__role {
    color: var(--muted);
    font: 400 10.88px/1.35 var(--font-sans);
    letter-spacing: 0;
    margin: 0;
    order: 2;
    text-transform: none;
}
.podcast-people-directory .podcast-person__name {
    font: 600 17.6px/1.05 var(--font-serif);
    letter-spacing: -.025em;
    margin: 0;
    order: 1;
    text-align: start;
}
.podcast-people-directory .podcast-person:hover img.podcast-person__avatar,
.podcast-people-directory .podcast-person:focus-within img.podcast-person__avatar {
    filter: grayscale(0);
}

.podcast-person-page { max-inline-size: 72ch; padding-block-start: clamp(20px, 3vw, 40px); }
.podcast-person-page h1 {
    font: 560 clamp(48px, 6vw, 84px)/.9 var(--font-serif);
    margin: 8.8px 0;
}
.podcast-person-page > .podcast-person__back {
    display: inline-block;
    font-weight: 700;
    margin-block-end: 20px;
}
.podcast-person-page > .podcast-person-hero {
    display: block;
    text-align: center;
}
.podcast-person-page .podcast-person-hero .podcast-person__avatar-frame,
.podcast-person-page .podcast-person-hero span.podcast-person__avatar {
    border: 0;
    border-radius: 0;
    inline-size: min(100%, 384px);
    margin-inline: auto;
}
.podcast-person-page .podcast-person-hero img.podcast-person__avatar {
    border-radius: 0;
    filter: grayscale(1);
}
.podcast-person-page .podcast-person-hero__body {
    inline-size: 100%;
    margin-inline: 0;
    max-inline-size: none;
}
.podcast-person-page .podcast-person-hero__body > p:not(.eyebrow) {
    font: 18.4px/1.6 var(--font-serif);
    margin-inline: auto;
    max-inline-size: 60ch;
}
.podcast-person-page .podcast-person__role {
    align-self: center;
    color: var(--muted);
    display: block;
    font: 700 10.88px/1.35 var(--font-sans);
    inline-size: fit-content;
    letter-spacing: .09em;
    margin-inline: auto;
    max-inline-size: none;
    text-align: center;
    text-transform: uppercase;
}
.podcast-person-page .podcast-person__links {
    display: flex;
    flex-wrap: wrap;
    gap: 11.2px;
    justify-content: center;
    list-style: none;
    padding: 0;
}
.podcast-person-page .podcast-person__links a { color: inherit; }
.podcast-person-page .podcast-person-appearances {
    margin-block-start: 64px;
}
.podcast-person-page .podcast-person-appearances > h2 {
    border: 0;
    font: 600 clamp(1.8rem, 3vw, 2.8rem)/1 var(--font-serif);
    letter-spacing: normal;
    margin: .83em 0;
    padding: 0;
}
.podcast-person-page .podcast-person-appearances {
    border: 0;
    padding-block: 0;
}
.podcast-person-page .podcast-appearances {
    border-block: 1px solid var(--rule);
    list-style: none;
    margin: 0;
    padding: 0;
}
.podcast-person-page .podcast-appearances > li { border-block-end: 1px solid var(--rule); }
.podcast-person-page .podcast-appearances > li:last-child { border-block-end: 0; }
.podcast-person-page .podcast-appearances a {
    align-items: center;
    color: inherit;
    display: grid;
    gap: 16px;
    grid-template-columns: 80px minmax(0, 1fr);
    padding-block: 11.2px;
    text-decoration: none;
}
.podcast-person-page .podcast-appearances__item--noart a { grid-template-columns: 1fr; }
.podcast-person-page .podcast-appearances .podcast-cover {
    block-size: 80px;
    inline-size: 80px;
    object-fit: cover;
}
.podcast-person-page .podcast-appearances span { display: grid; min-inline-size: 0; }
.podcast-person-page .podcast-appearances small { color: var(--muted); font: 10.88px/1.35 var(--font-sans); }
.podcast-person-page .podcast-appearances strong { font: 600 17.6px/1.1 var(--font-serif); overflow-wrap: anywhere; }

/* Archive desktop uses the same uncapped 76rem reading surface as the
   approved ledger. The legacy shell was still imposing a 112ch maximum. */
@media (min-width: 761px) {
    .shell.center:has(.podcast-page--people),
    .shell.center:has(.podcast-page--person),
    .shell.center:has(.podcast-page--episodes) {
        inline-size: min(1380px, calc(100% - 32px));
        max-inline-size: none;
    }
    .podcast-page.podcast-page--people {
        inline-size: min(1216px, 100%);
        margin-inline: auto;
        max-inline-size: none;
        padding: 0;
    }
    .podcast-page.podcast-page--person {
        inline-size: min(690.842px, 100%);
        margin-inline: auto;
        max-inline-size: none;
        padding: 0;
    }
    .podcast-page--person .podcast-person-page {
        box-sizing: border-box;
        font-size: 19px;
        inline-size: 100%;
        max-inline-size: none;
        padding: 40px 32px 115.2px;
    }
    .podcast-page--person .podcast-person-hero {
        display: block;
        text-align: center;
    }
    .podcast-page--people .podcast-people-directory {
        box-sizing: border-box;
        inline-size: 100%;
        max-inline-size: none;
        padding: clamp(20px, 4vw, 64px) clamp(16px, 3vw, 32px) clamp(64px, 8vw, 128px);
    }
    .podcast-page--people .podcast-people-directory__head {
        align-items: stretch;
        display: block;
        inline-size: 100%;
        margin-block-end: 36px;
        max-inline-size: none;
        text-align: start;
    }
    .podcast-page--people .podcast-people-directory h1 {
        margin-block: .67em;
    }
    .podcast-page.podcast-page--episodes {
        inline-size: min(1216px, 100%);
        margin-inline: auto;
        max-inline-size: none;
        padding: 0;
    }
    .podcast-page--episodes .podcast-archive {
        margin: 0;
        max-inline-size: none;
        padding: clamp(20px, 4vw, 64px) clamp(16px, 3vw, 32px) clamp(64px, 8vw, 128px);
    }
    .podcast-page--episodes .podcast-archive__head {
        align-items: center;
        border-block-end: 1px solid var(--rule);
        display: grid;
        gap: 16px;
        grid-template-columns: minmax(0, 1fr) minmax(256px, 400px);
        margin: 0;
        padding-block: 8px 16px;
    }
    .podcast-page--episodes .podcast-archive h1 {
        font: 560 clamp(33.6px, 3.2vw, 40px)/.95 var(--font-serif);
        letter-spacing: -.045em;
        margin: 0;
    }
    .podcast-page--episodes .podcast-archive-search {
        align-items: end;
        display: grid;
        gap: 6.4px;
        grid-template-columns: minmax(0, 1fr) auto;
    }
    .podcast-page--episodes .podcast-archive-search__label {
        color: inherit;
        font: inherit;
        grid-column: 1 / -1;
        letter-spacing: 0;
        text-transform: none;
    }
    .podcast-page--episodes .podcast-archive-search__field {
        background: var(--reading);
        border: 1px solid var(--rule);
        color: var(--ink);
        font: inherit;
        padding: 11.2px;
    }
    .podcast-page--episodes .podcast-archive-search__submit {
        background: transparent;
        border: 1px solid var(--rule);
        color: inherit;
        font: 700 12.8px/normal var(--font-sans);
        letter-spacing: 0;
        min-block-size: 44px;
        padding: 8.8px;
        text-transform: none;
    }
    .podcast-page--episodes .podcast-archive-section {
        margin-block-start: clamp(40px, 6vw, 80px);
    }
    .podcast-page--episodes .podcast-archive-section > h2 {
        border: 0;
        font: 600 clamp(24px, 2.3vw, 34.4px)/1 var(--font-serif);
        letter-spacing: -.025em;
        margin: 0;
        padding: 0;
    }
    .podcast-page--episodes .podcast-feature {
        border: 0;
        column-gap: 24px;
        display: grid;
        grid-template-columns: minmax(192px, 352px) minmax(0, 1fr);
        padding: 0;
    }
    .podcast-page--episodes .podcast-feature--noart {
        grid-template-columns: minmax(0, 1fr);
    }
    .podcast-page--episodes .podcast-feature .podcast-episode-listing__art {
        aspect-ratio: 1;
        block-size: auto;
        border: 0;
        inline-size: 100%;
        max-inline-size: none;
        object-fit: cover;
    }
    .podcast-page--episodes .podcast-feature__body {
        display: block;
        padding: 0;
    }
    .podcast-page--episodes .podcast-facts,
    .podcast-page--episodes .podcast-facts dd {
        color: var(--muted);
        font: 700 11.52px/1.35 var(--font-sans);
        letter-spacing: .09em;
        text-transform: uppercase;
    }
    .podcast-page--episodes .podcast-facts > div + div::before {
        content: '·';
        margin-inline-end: .8ch;
    }
    .podcast-page--episodes .podcast-feature__title {
        font: 560 clamp(28.8px, 3vw, 48px)/.95 var(--font-serif);
        letter-spacing: -.04em;
        margin: 5.6px 0;
        max-inline-size: none;
    }
    .podcast-page--episodes .podcast-feature__title a {
        color: inherit;
        text-decoration-thickness: 1px;
        text-underline-offset: .12em;
    }
    .podcast-page--episodes .podcast-feature__summary {
        color: var(--ink);
        font: 400 19px/28.5px var(--font-serif);
        margin: 17px 0 0;
        max-inline-size: 65ch;
    }

    /* Archive fidelity: the Fallthrough source keeps the section heading's
       full editorial register before the latest feature, then uses ruled
       picks and a plain ledger rather than the legacy boxed archive chrome. */
    .podcast-page--episodes .podcast-archive-section > h2 {
        margin-block: 0 29px;
    }
    .podcast-page--episodes .podcast-feature__body {
        padding-block-start: 12px;
    }
    .podcast-page--episodes .podcast-feature__body .podcast-facts {
        margin-block-end: 6px;
    }
    .podcast-page--episodes .podcast-archive-section[aria-labelledby="start-heading"] > h2 {
        margin-block-start: 29px;
    }
    .podcast-page--episodes .podcast-picks {
        display: grid;
        gap: 16px;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        list-style: none;
        margin: 0;
        padding: 0;
    }
    .podcast-page--episodes .podcast-pick {
        background: transparent;
        border: 0;
        border-block-start: 1px solid var(--rule);
        display: block;
        padding: 11.2px 0 0;
    }
    .podcast-page--episodes .podcast-pick__title {
        font: 600 clamp(18.4px, 1.8vw, 26.4px)/1 var(--font-serif);
        letter-spacing: -.025em;
        margin: 3.2px 0;
    }
    .podcast-page--episodes .podcast-pick__note {
        color: var(--ink);
        font: 400 16px/24px var(--font-serif);
        margin: 6.4px 0 0;
    }
    .podcast-page--episodes .podcast-archive-section--record .podcast-archive-section__head {
        border: 0;
        margin: 0 0 16px;
        padding: 0;
    }
    .podcast-page--episodes .podcast-record {
        border-block: 1px solid var(--rule);
        margin: 0;
    }
    .podcast-page--episodes .podcast-record .podcast-row {
        border-block-end: 1px solid var(--rule);
        padding: 16px 0;
    }
}

@media (max-width: 760px) {
    .podcast-page.podcast-page--people {
        inline-size: min(calc(100% - 32px), 1216px);
        margin-inline: auto;
        max-inline-size: none;
        padding: 20px 16px 64px;
    }
    .podcast-page.podcast-page--person {
        inline-size: min(calc(100% - 32px), 1216px);
        margin-inline: auto;
        max-inline-size: none;
        padding: 20px 16px 64px;
    }
    .podcast-people-directory,
    .podcast-person-page {
        padding: 0;
    }
    .podcast-people-directory .podcast-people {
        gap: 12px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .podcast-people-directory .podcast-people-group {
        margin-block: 32px;
    }
}

/* Archive support is a full-bleed conclusion to the real episode ledger, not
   the legacy inset callout. The content and membership route stay untouched. */
.podcast-page--episodes .podcast-archive-foot {
    margin-block-start: 64px;
    max-inline-size: none;
}

.podcast-page--episodes .podcast-archive-support {
    align-items: end;
    background: var(--ink);
    border: 0;
    color: var(--canvas);
    display: grid;
    gap: 16px 48px;
    grid-template-columns: minmax(0, 1fr) auto;
    margin-inline: calc(50% - 50vw);
    max-inline-size: none;
    padding: clamp(32px, 5vw, 64px) max(16px, calc((100vw - 1216px) / 2));
    width: 100vw;
}

.podcast-page--episodes .podcast-archive-support h2 {
    font: 560 clamp(40px, 5vw, 64px)/.94 var(--font-serif);
    grid-column: 1;
    letter-spacing: -.05em;
    margin: 0;
}

.podcast-page--episodes .podcast-archive-support__lede {
    font: 17.28px/1.6 var(--font-serif);
    grid-column: 1;
    margin: 0;
    max-inline-size: 60ch;
}

.podcast-page--episodes .podcast-archive-support__cta {
    grid-column: 2;
    grid-row: 1 / span 2;
    margin: 0;
}

.podcast-page--episodes .podcast-archive-support__cta a {
    align-items: center;
    background: var(--canvas);
    color: var(--ink);
    display: inline-flex;
    font: 700 13.6px/normal var(--font-sans);
    min-block-size: 44px;
    padding: 12px 16px;
    text-decoration: none;
}

@media (max-width: 760px) {
    .podcast-page--episodes .podcast-archive-support {
        display: block;
        padding: 32px 16px;
    }

    .podcast-page--episodes .podcast-archive-support__cta {
        margin: 24px 0 0;
    }
}

/* Episode detail follows the approved open listening ledger at desktop. The
   real player, cuts, gates and native fallback remain the existing component. */
@media (min-width: 761px) {
    .podcast-page.podcast-page--episode {
        inline-size: min(1216px, calc(100% - 32px));
        margin-inline: auto;
        max-inline-size: none;
        padding: 0;
    }
    .podcast-page--episode .podcast-episode-page {
        gap: 0;
        inline-size: min(1216px, 100%);
        margin-inline: auto;
        max-inline-size: none;
        padding: 56px 32px 140px;
    }
    .podcast-page--episode .podcast-episode-hero {
        align-items: start;
        border: 0;
        border-block-end: 1px solid var(--rule);
        gap: clamp(32px, 5vw, 72px);
        grid-template-columns: 384px minmax(0, 1fr);
        padding: 20px 0 44px;
    }
    .podcast-page--episode .podcast-episode-hero__art {
        inline-size: 384px;
        max-inline-size: 384px;
    }
    .podcast-page--episode .podcast-episode-cover {
        border: 0;
        inline-size: 384px;
    }
    .podcast-page--episode .podcast-episode-hero__body {
        align-self: center;
    }
    .podcast-page--episode .podcast-episode-hero h1 {
        font: 560 clamp(43.2px, 4.8vw, 84px)/.9 var(--font-serif);
        letter-spacing: -.06em;
        margin: .45rem 0 1.4rem;
        max-inline-size: 13ch;
    }
    .podcast-page--episode .podcast-episode-people .podcast-person__avatar-frame,
    .podcast-page--episode .podcast-episode-people span.podcast-person__avatar {
        block-size: 36px;
        border: 0;
        border-radius: 50%;
        inline-size: 36px;
    }
}

/* The approved detail keeps the authored episode facts visible even after
   the controller enhances its player. It is a reading ledger, not a boxed
   control surface. */
.podcast-page--episode .podcast-episode-page:has(.podcast-player) .podcast-episode-facts__runtime {
    display: flex;
}
.podcast-page--episode .podcast-episode-facts,
.podcast-page--episode .podcast-episode-facts dd {
    font: 700 11.52px/1.35 var(--font-sans);
    letter-spacing: .09em;
    text-transform: uppercase;
}
.podcast-page--episode .podcast-episode-actions a {
    border: 0;
    font: 700 12.8px/normal var(--font-sans);
    padding: 0;
    text-decoration: underline;
}
.podcast-page--episode .podcast-episode-actions a:hover,
.podcast-page--episode .podcast-episode-actions a:focus-visible {
    background: transparent;
    color: inherit;
}
.podcast-page--episode .podcast-episode-people .podcast-person__role {
    color: var(--muted);
    font: 700 9.92px/normal var(--font-sans);
    letter-spacing: .09em;
    text-transform: uppercase;
}
.podcast-page--episode .podcast-episode-people .podcast-person__name { font-weight: 650; }
.podcast-page--episode .podcast-listen-band {
    border-block: 1px solid var(--rule);
    gap: 24px;
    grid-template-columns: minmax(0, 1fr) minmax(256px, 352px);
    margin-block: 24px 48px;
    padding: 32px;
}
.podcast-page--episode .podcast-listen-band:not(.podcast-listen-band--single) {
    gap: 24px;
    grid-template-columns: minmax(0, 1fr) minmax(256px, 352px);
}
.podcast-page--episode .podcast-player {
    background: transparent;
    border: 0;
    padding: 0;
}
.podcast-page--episode .podcast-player__edition-fact {
    align-items: baseline;
    border-block-end: 1px solid var(--rule);
    column-gap: 12.8px;
    display: flex;
    margin: 0;
    padding-block-end: 8.8px;
}
.podcast-page--episode .podcast-player--enhanced:has(.podcast-player__editions) .podcast-player__edition-fact {
    display: flex;
}
.podcast-page--episode .podcast-player__edition-label {
    font: 700 10.88px/normal var(--font-sans);
    letter-spacing: .1em;
    text-transform: uppercase;
}
.podcast-page--episode .podcast-player__ui {
    /* The approved player is ordinary flow. A grid makes adjacent edition and
       scrub margins add instead of collapse, pushing every control row down. */
    display: block;
}
/* The enhanced controls ship in the document for progressive enhancement,
   but the native audio is the sole no-script player. This must override the
   component flow display above when the HTML hidden state is present. */
.podcast-page--episode .podcast-player__ui[hidden] { display: none; }
.podcast-page--episode .podcast-player__gate-actions {
    align-items: flex-start;
    flex-direction: column;
}
.podcast-page--episode .podcast-player__gate-primary-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.podcast-page--episode .podcast-player__play {
    block-size: 56px;
    border-radius: 50%;
    inline-size: 56px;
    min-block-size: 56px;
    min-inline-size: 56px;
}
.podcast-page--episode .podcast-player__key,
.podcast-page--episode .podcast-player__settings > summary {
    block-size: 44px;
    inline-size: 44px;
    min-block-size: 44px;
    min-inline-size: 44px;
    padding: 0;
}
.podcast-page--episode .podcast-player__editions {
    gap: 8px;
    margin-block: 16px;
}
.podcast-page--episode .podcast-player__editions label {
    border: 1px solid var(--rule);
    font: 650 12.48px/1.2 var(--font-sans);
    min-block-size: 0;
    padding: 7.2px 9.6px;
    text-transform: none;
}
.podcast-page--episode .podcast-player__editions input:checked + label {
    background: var(--ink);
    border-color: var(--ink);
    color: var(--canvas);
}
.podcast-page--episode .podcast-player__scrub {
    margin: 21.6px 0 11.2px;
    min-block-size: 0;
    padding-block: 0;
}
.podcast-page--episode .podcast-player__bar {
    block-size: 8px;
}
.podcast-page--episode .podcast-player__seek {
    inset: -9px 0;
    opacity: 0;
    position: absolute;
    width: 100%;
}
.podcast-page--episode .podcast-player__seek::-webkit-slider-runnable-track,
.podcast-page--episode .podcast-player__seek::-moz-range-track {
    background: transparent;
    block-size: 0;
}
.podcast-page--episode .podcast-player__seek::-webkit-slider-thumb,
.podcast-page--episode .podcast-player__seek::-moz-range-thumb {
    appearance: none;
    background: transparent;
    block-size: 0;
    border: 0;
    inline-size: 0;
    margin: 0;
}
.podcast-page--episode .podcast-player__status {
    display: flex;
    font: 12.48px/normal var(--font-mono);
    justify-content: space-between;
    margin: 11.2px 0 0;
}
.podcast-page--episode .podcast-player__status > * + *::before {
    content: none;
    margin: 0;
}
.podcast-page--episode .podcast-player:has(.podcast-player__editions) .podcast-player__clock-total,
.podcast-page--episode .podcast-player--one-edition .podcast-player__clock-total {
    display: inline;
}
.podcast-page--episode .podcast-player__ticks {
    display: none;
}
.podcast-page--episode .podcast-listen-links--compact {
    container-type: inline-size;
    display: block;
}
.podcast-page--episode .podcast-listen-links--compact .podcast-listen-links__eyebrow {
    color: var(--ink);
    font: 400 20px/1 var(--font-serif);
    letter-spacing: -.025em;
    margin: 0 0 16px;
    text-transform: none;
}
.podcast-page--episode .podcast-listen-links--compact .podcast-listen-cards {
    gap: 10.4px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0;
}
.podcast-page--episode .podcast-listen-links--compact .podcast-listen-cards > li {
    display: flex;
}
.podcast-page--episode .podcast-listen-links--compact .podcast-listen-card {
    border: 1px solid var(--rule);
    box-sizing: border-box;
    block-size: 100%;
    flex-direction: column;
    gap: 5.6px;
    justify-content: center;
    min-block-size: 86px;
    padding: 8px;
    text-align: center;
}
.podcast-page--episode .podcast-listen-links--compact .podcast-listen-card__logo {
    background: transparent;
    block-size: 28.8px;
    border: 0;
    flex: 0 0 28.8px;
    inline-size: 28.8px;
}
.podcast-page--episode .podcast-listen-links--compact .podcast-listen-card__logo img {
    block-size: 22.4px;
    inline-size: 22.4px;
}
.podcast-page--episode .podcast-listen-links--compact .podcast-listen-card__label {
    font: 400 13px/1.1 var(--font-sans);
    min-inline-size: 0;
    overflow-wrap: anywhere;
    white-space: normal;
}

/* Chapters and notes are the supplied two-column reading ledger below the
   player. The template retains its data attributes and members-only rows;
   this only replaces the legacy progress-card presentation. */
@media (min-width: 761px) {
    .podcast-page--episode .podcast-episode-layout {
        display: grid;
        gap: clamp(32px, 5vw, 80px);
        grid-template-columns: minmax(256px, 352px) minmax(0, 68ch);
        max-inline-size: none;
        padding-block: clamp(20px, 2.5vw, 40px) clamp(32px, 5vw, 72px);
    }
    .podcast-page--episode .podcast-episode-sidebar {
        grid-column: 1;
        margin: 0;
    }
    .podcast-page--episode .podcast-show-notes {
        grid-column: 2;
        grid-row: 1;
        margin: 0;
        max-inline-size: none;
    }
    .podcast-page--episode .podcast-episode-section > h2 {
        border: 0;
        font: 650 clamp(24px, 2.5vw, 36.8px)/1 var(--font-serif);
        letter-spacing: -.025em;
        margin: 0 0 16px;
        padding: 0;
    }
    .podcast-page--episode .podcast-chapter-list {
        border-block: 1px solid var(--rule);
        margin: 0;
        padding: 0;
    }
    .podcast-page--episode .podcast-chapter > :where(div, button) {
        align-items: center;
        background: transparent;
        border: 0;
        border-block-end: 1px solid var(--rule);
        color: inherit;
        display: grid;
        gap: 11.2px;
        grid-template-columns: 19.2px 72px minmax(0, 1fr) 72px;
        padding: 13.6px 0;
        text-align: start;
    }
    .podcast-page--episode .podcast-chapter > button { cursor: pointer; }
    .podcast-page--episode .podcast-chapter--current > button { background: var(--tint); }
    .podcast-page--episode .podcast-chapter__cue { font-size: 10.4px; }
    .podcast-page--episode .podcast-chapter__time,
    .podcast-page--episode .podcast-chapter__duration {
        color: var(--muted);
        font: 12.48px/normal var(--font-mono);
        font-variant-numeric: tabular-nums;
        white-space: nowrap;
    }
    .podcast-page--episode .podcast-chapter__duration { text-align: end; }
    .podcast-page--episode .podcast-chapter__title {
        font: 600 16px/1.3 var(--font-sans);
        min-inline-size: 0;
    }
    .podcast-page--episode .podcast-chapter__meter { display: none; }
    .podcast-page--episode .podcast-chapter__badge {
        color: var(--muted);
        display: inline;
        font: 700 9.92px/normal var(--font-sans);
        letter-spacing: .04em;
        white-space: nowrap;
    }
    .podcast-page--episode .podcast-chapter--members > div {
        grid-template-columns: 19.2px 72px minmax(0, 1fr) 72px;
    }
    .podcast-page--episode .podcast-chapter--members .podcast-chapter__title { grid-column: 3; }
    .podcast-page--episode .podcast-chapter--members .podcast-chapter__badge {
        display: block;
        grid-column: 3;
        grid-row: 2;
    }
    .podcast-page--episode .podcast-chapter--members .podcast-chapter__duration {
        grid-column: 4;
        grid-row: 1 / span 2;
    }
    .podcast-page--episode .podcast-show-notes__content {
        font: 17.28px/1.65 var(--font-serif);
        max-inline-size: none;
    }
}

/* The authored aftershow and support invitation close an episode as two
   full-bleed editorial bands. Access decides which existing content appears;
   the band treatment never invents or suppresses that source. */
.podcast-page--episode .podcast-episode-endmatter {
    display: block;
    gap: 0;
    inline-size: 100vw;
    margin-block: 0;
    margin-inline: calc(50% - 50vw);
    max-inline-size: none;
}
.podcast-page--episode .podcast-episode-companion,
.podcast-page--episode .podcast-episode-support {
    padding: clamp(40px, 7vw, 96px) max(16px, calc((100vw - 1216px) / 2));
}
.podcast-page--episode .podcast-episode-companion {
    background: var(--tint);
    border: 0;
    color: var(--ink);
}
.podcast-page--episode .podcast-episode-companion h2,
.podcast-page--episode .podcast-episode-support h2 {
    border: 0;
    font: 560 clamp(35.2px, 5vw, 73.6px)/.92 var(--font-serif);
    letter-spacing: -.05em;
    margin: 0 0 16px;
    padding: 0;
}
.podcast-page--episode .podcast-episode-endmatter > .podcast-episode-companion:not(.podcast-episode-companion--none) {
    align-items: start;
    display: grid;
    gap: 32px clamp(32px, 7vw, 128px);
    grid-template-columns: minmax(224px, .72fr) minmax(0, 1.28fr);
    padding-block: clamp(48px, 6vw, 80px);
}
.podcast-page--episode .podcast-episode-companion__body {
    font: 19px/1.6 var(--font-serif);
    max-inline-size: 960px;
}
.podcast-page--episode .podcast-episode-companion__body > p:first-child { margin-block-start: 0; }
.podcast-page--episode .podcast-episode-companion__body .podcast-episode-companion__cta { margin-block: 24px 0; }
.podcast-page--episode .podcast-episode-companion__cta a {
    align-items: center;
    background: var(--ink);
    border: 0;
    color: var(--canvas);
    display: inline-flex;
    font: 700 13.6px/normal var(--font-sans);
    min-block-size: 44px;
    padding: 12px 16px;
    text-decoration: none;
}
.podcast-page--episode .podcast-episode-endmatter > .podcast-episode-companion--none {
    padding-block: 32px;
}
.podcast-page--episode .podcast-episode-companion--none .podcast-episode-companion__body {
    font: 18.4px/1.55 var(--font-serif);
    margin: 12px 0;
    max-inline-size: none;
}
.podcast-page--episode .podcast-episode-support {
    background: var(--ink);
    color: var(--canvas);
    display: grid;
    gap: 0 clamp(32px, 6vw, 112px);
    grid-template-columns: minmax(0, 1.45fr) minmax(272px, .9fr);
}
.podcast-page--episode .podcast-episode-support h2 {
    font-size: clamp(40px, 3.5vw, 52px);
    line-height: .94;
    grid-column: 1;
}
.podcast-page--episode .podcast-episode-support__lede {
    font: 18.4px/1.6 var(--font-serif);
    grid-column: 1;
    max-inline-size: 960px;
}
.podcast-page--episode .podcast-episode-support__offer {
    align-self: start;
    border-block-start: 1px solid currentColor;
    grid-column: 2;
    grid-row: 1 / span 2;
    margin: 0;
    padding-block-start: 16px;
}
.podcast-page--episode .podcast-episode-support__perks {
    font: 400 15.04px/1.5 var(--font-serif);
    padding: 0;
}
.podcast-page--episode .podcast-episode-support__perks li::before { content: '+'; margin-inline-end: 8px; }
.podcast-page--episode .podcast-episode-support__cta a {
    border: 1px solid currentColor;
    color: inherit;
    display: inline-flex;
    font: 400 16px/normal var(--font-serif);
    min-block-size: 44px;
    padding: 11.2px 16px;
    text-decoration: none;
}
@media (min-width: 1100px) {
    .podcast-page--episode .podcast-episode-layout {
        grid-template-columns: minmax(0, 1.1fr) minmax(384px, .9fr);
    }
}
@media (max-width: 900px) {
    .podcast-page--episode .podcast-episode-support { display: block; }
    .podcast-page--episode .podcast-episode-support__offer { margin-block-start: 32px; }
}
@media (max-width: 760px) {
    .podcast-page--episode .podcast-episode-endmatter > .podcast-episode-companion:not(.podcast-episode-companion--none) { display: block; }
    .podcast-page--episode .podcast-episode-companion__body { margin-block-start: 20px; }
}

/* The narrow approved episode is an open, single-column reading flow. Its
   inset aligns the 306px cover with the local navigation rather than boxing
   a second hero inside the page. */
@media (max-width: 760px) {
    .shell.center:has(.podcast-page--episode) {
        inline-size: min(1380px, calc(100% - 20px));
    }
    .podcast-page.podcast-page--episode {
        box-sizing: border-box;
        inline-size: min(calc(100% - 32px), 1216px);
        margin-inline: auto;
        max-inline-size: none;
        padding: 0;
    }
    .podcast-page--episode .podcast-episode-page {
        box-sizing: border-box;
        gap: 32px;
        grid-template-columns: minmax(0, 1fr);
        inline-size: 100%;
        max-inline-size: none;
        padding: 20px 16px 64px;
    }
    .podcast-page--episode .podcast-episode-hero {
        border: 0;
        gap: 20px;
        min-inline-size: 0;
        padding: 8px 0 20px;
    }
    .podcast-page--episode .podcast-episode-hero__art,
    .podcast-page--episode .podcast-episode-cover {
        max-inline-size: none;
    }
    .podcast-page--episode .podcast-episode-cover {
        border: 0;
        inline-size: 100%;
    }
    .podcast-page--episode .podcast-episode-hero h1 {
        font: 560 clamp(43.2px, 4.8vw, 84px)/.9 var(--font-serif);
        letter-spacing: -2.592px;
    }
    .podcast-page--episode .podcast-episode-facts {
        column-gap: 20px;
        font: 700 11.52px/1.35 var(--font-sans);
        letter-spacing: .09em;
        text-transform: uppercase;
    }
    .podcast-page--episode .podcast-episode-facts__runtime {
        display: flex;
    }
    .podcast-page--episode .podcast-episode-people .podcast-person .podcast-person__avatar-frame,
    .podcast-page--episode .podcast-episode-people .podcast-person span.podcast-person__avatar {
        block-size: 36px;
        border: 0;
        border-radius: 50%;
        inline-size: 36px;
    }
    .podcast-page--episode .podcast-episode-people img.podcast-person__avatar {
        border-radius: 50%;
    }
    .podcast-page--episode .podcast-episode-actions a {
        border: 0;
        padding: 0;
        text-decoration: underline;
    }
    .podcast-page--episode .podcast-episode-actions a:hover,
    .podcast-page--episode .podcast-episode-actions a:focus-visible {
        background: transparent;
        color: inherit;
    }
    .podcast-page--episode .podcast-listen-band {
        grid-template-columns: 1fr;
        padding: 16px;
    }

    /* Archive controls remain a real GET form, but take the supplied narrow
       reading flow: latest is an unboxed full-width record before the form
       and the search controls retain their own full target rows. */
    .podcast-page.podcast-page--episodes {
        inline-size: min(calc(100% - 32px), 1216px);
        margin-inline: auto;
        max-inline-size: none;
        padding: 20px 16px 64px;
    }
    .podcast-page--episodes .podcast-archive {
        margin: 0;
        max-inline-size: none;
        padding: 0;
    }
    .podcast-page--episodes .podcast-archive__head {
        border-block-end: 1px solid var(--rule);
        display: block;
        padding-block: 12px 20px;
    }
    .podcast-page--episodes .podcast-archive-search {
        display: grid;
        gap: 8px;
        grid-template-columns: minmax(0, 1fr);
        margin-block-start: 20px;
    }
    .podcast-page--episodes .podcast-archive-search__label {
        font: 400 19px/1.3 var(--font-serif);
        letter-spacing: 0;
        text-transform: none;
    }
    .podcast-page--episodes .podcast-archive-search__field,
    .podcast-page--episodes .podcast-archive-search__submit {
        inline-size: 100%;
        max-inline-size: none;
    }
    .podcast-page--episodes .podcast-archive-search__field {
        background: var(--reading);
        block-size: 51.390625px;
        border: 1px solid var(--rule);
        color: var(--ink);
        font: inherit;
        padding: .7rem;
    }
    .podcast-page--episodes .podcast-archive-search__submit {
        background: transparent;
        block-size: 36.59375px;
        border: 1px solid var(--rule);
        color: inherit;
        font: 700 12.8px/normal var(--font-sans);
        letter-spacing: 0;
        padding: .55rem;
        text-transform: none;
    }
    .podcast-page--episodes .podcast-feature {
        border: 0;
        display: block;
        gap: 0;
        padding: 0;
    }
    .podcast-page--episodes .podcast-feature__body {
        gap: 12px;
        padding: 16px 0 0;
    }
    .podcast-page--episodes .podcast-feature .podcast-episode-listing__art {
        aspect-ratio: 1;
        block-size: auto;
        inline-size: 100%;
        max-inline-size: none;
        object-fit: cover;
    }
    .podcast-page--episodes .podcast-archive h1,
    .podcast-page--episodes .podcast-archive-section > h2,
    .podcast-page--episodes .podcast-feature__title {
        font-family: var(--font-serif);
        font-weight: 560;
    }
    .podcast-page--episodes .podcast-archive h1 {
        font-size: 33.6px;
        line-height: .95;
    }
    .podcast-page--episodes .podcast-archive-section > h2 {
        border: 0;
        font-size: 24px;
        line-height: 1;
        margin: 0 0 20px;
        padding: 0;
    }
    .podcast-page--episodes .podcast-archive-section { margin-block-start: 40px; }
    .podcast-page--episodes .podcast-facts,
    .podcast-page--episodes .podcast-facts dd {
        color: var(--muted);
        font: 700 11.52px/1.35 var(--font-sans);
        letter-spacing: .09em;
        text-transform: uppercase;
    }

    /* The supplied people directory gives the display heading room before
       its rule, then uses each muted card panel as a left-aligned ledger. */
    .podcast-people-directory__head {
        margin-block-end: 36px;
        padding-block: 36px 32px;
    }
    .podcast-people-directory .podcast-person__body,
    .podcast-people-directory .podcast-person__name,
    .podcast-people-directory .podcast-person__role {
        text-align: start;
    }
    .podcast-people-directory .podcast-person__name { order: 1; }
    .podcast-people-directory .podcast-person__role {
        font-weight: 400;
        letter-spacing: 0;
        order: 2;
        text-transform: none;
    }
    .podcast-people-directory .podcast-people-group {
        margin-block: 54px;
    }
}

/* Final episode-ledger cascade: the interactive row starts as a div and is
   promoted to a button after connect, so every child placement is fixed on
   both forms rather than inherited from the legacy chapter card. */
@media (min-width: 761px) {
    .podcast-page--episode .podcast-show-notes .podcast-episode-section > h2 {
        margin-block-end: 29px;
    }
    .podcast-page--episode .podcast-chapter > :where(div, button) > .podcast-chapter__cue {
        grid-column: 1;
        grid-row: 1;
        opacity: 1;
    }
    .podcast-page--episode .podcast-chapter > :where(div, button) > .podcast-chapter__time {
        grid-column: 2;
        grid-row: 1;
    }
    .podcast-page--episode .podcast-chapter > :where(div, button) > .podcast-chapter__title {
        grid-column: 3;
        grid-row: 1;
    }
    .podcast-page--episode .podcast-chapter > :where(div, button) > .podcast-chapter__duration {
        grid-column: 4;
        grid-row: 1;
    }
    .podcast-page--episode .podcast-chapter--members > div > .podcast-chapter__title {
        grid-column: 3;
        grid-row: 1;
    }
    .podcast-page--episode .podcast-chapter--members > div > .podcast-chapter__badge {
        border: 0;
        display: block;
        grid-column: 3;
        grid-row: 2;
        margin: 0;
        padding: 0;
    }
    .podcast-page--episode .podcast-chapter--members > div > .podcast-chapter__duration {
        grid-column: 4;
        grid-row: 1 / span 2;
    }
}

@media (min-width: 761px) {
    .podcast-page--episode .podcast-episode-sidebar .podcast-episode-section > h2 {
        margin-block-end: 30px;
    }
    .podcast-page--episode .podcast-chapter--members .podcast-chapter__title .podcast-chapter__badge {
        border: 0;
        display: inline;
        inline-size: auto;
        margin: 0;
        padding: 0;
    }
}

/* Structured companion state selects the compact no-aftershow band while
   preserving the supplied authored HTML and its real aftershow URL. */
.podcast-page--episode .podcast-episode-endmatter > :where(.podcast-episode-companion, .podcast-episode-support) {
    border-inline-start: 0;
    margin: 0;
}
.podcast-page--episode .podcast-episode-support__lede,
.podcast-page--episode .podcast-episode-support__lede > p,
.podcast-page--episode .podcast-episode-support__offer,
.podcast-page--episode .podcast-episode-support__perks,
.podcast-page--episode .podcast-episode-support__perks > li {
    max-inline-size: none;
}
/* The mobile listen band is one ordinary reading column. Its controls retain
   their native targets, but no legacy measure or compact-card track may make
   them compete with the player. */
@media (max-width: 760px) {
    .podcast-page--episode .podcast-listen-band,
    .podcast-page--episode .podcast-listen-band:not(.podcast-listen-band--single) {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        inline-size: 100%;
        max-inline-size: none;
        min-inline-size: 0;
    }
    .podcast-page--episode .podcast-listen-band > :where(.podcast-player, .podcast-listen-links),
    .podcast-page--episode .podcast-listen-band :where(.podcast-player__ui, .podcast-player__transport, .podcast-listen-cards, .podcast-listen-card) {
        inline-size: 100%;
        max-inline-size: none;
        min-inline-size: 0;
    }
    .podcast-page--episode .podcast-player__gap { min-inline-size: 0; }
}

/* The authored expanded-cut explanation is a neutral supporter segment, not
   an alert card. It remains independent from the player gate and links. */
.podcast-page--episode .podcast-episode-member-teaser {
    align-items: end;
    background: var(--tint);
    border: 0;
    display: grid;
    gap: 24px;
    grid-template-columns: minmax(0, 1fr) auto;
    inline-size: 100vw;
    margin-block: 20px;
    margin-inline: calc(50% - 50vw);
    max-inline-size: none;
    padding: clamp(24px, 3vw, 40px) max(16px, calc((100vw - 1216px) / 2));
}
.podcast-page--episode .podcast-episode-member-teaser > * {
    max-inline-size: none;
}
.podcast-page--episode .podcast-episode-member-teaser h2 {
    border: 0;
    font: 560 clamp(28px, 2.2vw, 32px)/1 var(--font-serif);
    letter-spacing: -.035em;
    margin: 3.2px 0 11.2px;
    padding: 0;
}
.podcast-page--episode .podcast-episode-member-teaser__copy {
    font: 17.6px/1.5 var(--font-serif);
    max-inline-size: 65ch;
}
.podcast-page--episode .podcast-episode-member-teaser__eyebrow {
    color: var(--muted);
    font: 700 11.52px/normal var(--font-sans);
    letter-spacing: .08em;
    text-transform: uppercase;
}
.podcast-page--episode .podcast-episode-member-teaser__cta a {
    align-items: center;
    background: var(--ink);
    border: 0;
    color: var(--canvas);
    display: inline-flex;
    font: 700 13.6px/normal var(--font-sans);
    min-block-size: 44px;
    padding: 12.8px 16px;
    text-decoration: none;
    white-space: nowrap;
}
@media (max-width: 760px) {
    .podcast-page--episode .podcast-episode-member-teaser {
        display: block;
        margin-block: 20px;
        padding: 24px max(16px, calc((100vw - 338px) / 2));
    }
    .podcast-page--episode .podcast-episode-member-teaser__copy > p { margin-block-end: 0; }
    .podcast-page--episode .podcast-episode-member-teaser__cta { margin-block-end: 0; }
}

/* Existing numbered/step links remain the complete pager navigation. This
   only restores their supplied grouped control treatment. */
.podcast-pagination {
    align-items: center;
    display: grid;
    gap: 0;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    inline-size: 100%;
}
.podcast-pagination__list {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    grid-column: 2;
    list-style: none;
    margin: 0;
    padding: 0;
}
.podcast-pagination a {
    align-items: center;
    border: 1px solid var(--rule);
    color: inherit;
    display: inline-flex;
    font: 400 12.8px/normal var(--font-mono);
    justify-content: center;
    min-block-size: 44px;
    min-inline-size: 44px;
    padding: 5.6px 9.6px;
    text-decoration: none;
}
.podcast-pagination__list a {
    display: inline-grid;
    gap: 2px;
    grid-template-rows: auto auto;
    line-height: 1;
    place-items: center;
}
.podcast-pagination__n {
    font: 700 12.8px/1 var(--font-mono);
}
.podcast-pagination__span {
    color: var(--muted);
    font: 400 10.4px/1.1 var(--font-mono);
    white-space: nowrap;
}
.podcast-pagination a[aria-current="page"] {
    background: var(--ink);
    border-color: var(--ink);
    color: var(--canvas);
}
.podcast-pagination a[aria-current="page"] .podcast-pagination__span {
    color: inherit;
}
.podcast-pagination > .podcast-pagination__step {
    font: 700 12.48px/normal var(--font-sans);
}
.podcast-pagination__step[rel~='prev'] {
    grid-column: 1;
    justify-self: start;
}
.podcast-pagination__step[rel~='next'] {
    grid-column: 3;
    justify-self: end;
}
.podcast-pagination__list > li + li {
    margin-inline-start: -1px;
}
@media (max-width: 520px) {
    .podcast-pagination {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        justify-content: stretch;
    }
    .podcast-pagination__list {
        grid-column: 1 / -1;
        grid-row: 2;
        justify-content: center;
    }
    .podcast-pagination__step { grid-row: 1; justify-self: stretch; }
    .podcast-pagination__step[rel~='prev'] { grid-column: 1; }
    .podcast-pagination__step[rel~='next'] { grid-column: 2; }
    .podcast-pagination__step:last-child { text-align: end; }
}

/* RSS remains an action inside its card's label line, so it does not create a
   third text row that makes the landing and episode card grids uneven. */
.podcast-home .podcast-listen-card__label-row,
.podcast-page--episode .podcast-listen-card__label-row {
    align-items: baseline;
    display: grid;
    gap: 6px;
    grid-template-columns: minmax(0, 1fr) fit-content(100%);
    min-inline-size: 0;
    inline-size: 100%;
}
.podcast-home .podcast-listen-card__label-row .podcast-listen-card__action,
.podcast-page--episode .podcast-listen-card__label-row .podcast-listen-card__action {
    flex: 0 0 auto;
    margin: 0;
    overflow-wrap: anywhere;
    white-space: normal;
}
@media (max-width: 760px) {
    .podcast-page--episode .podcast-player__transport {
        display: flex;
        flex-wrap: nowrap;
        gap: 8px;
    }
    .podcast-page--episode .podcast-player__editions {
        flex-wrap: nowrap;
        gap: 8px;
    }
    .podcast-page--episode .podcast-player__editions label { white-space: nowrap; }
    .podcast-page--episode .podcast-listen-links--compact .podcast-listen-card {
        align-items: center;
        flex-direction: column;
        justify-content: center;
        min-block-size: 86px;
        padding: 8px;
        text-align: center;
    }
    .podcast-page--episode .podcast-listen-links--compact .podcast-listen-card__action {
        display: inline;
        font: 400 10.4px/normal var(--font-mono);
        inline-size: auto;
        margin-inline-start: 0;
        overflow-wrap: normal;
        word-break: normal;
    }
}

.podcast-page--episode .podcast-episode-companion--none .podcast-episode-companion__body,
.podcast-page--episode .podcast-episode-companion--none .podcast-episode-companion__body > *,
.podcast-page--episode .podcast-episode-companion--none .podcast-episode-companion__lede > p {
    inline-size: min(100%, 640px);
    max-inline-size: none;
}

/* The landing’s introductory subhead and lead title are editorial text, not
   section/card controls. Keep the authored source treatment open. */
.podcast-home .podcast-intro h2 {
    border: 0;
    padding: 0;
}
.podcast-home.podcast-landing .podcast-landing-lead h2 a {
    text-decoration: none;
}
.podcast-home.podcast-landing .podcast-landing-lead .podcast-meta > * + *::before {
    content: '/';
}

@media (max-width: 760px) {
    .podcast-page--episode .podcast-player__editions .podcast-player__members {
        border: 0;
        display: inline;
        font: 700 9.92px/normal var(--font-sans);
        letter-spacing: .04em;
        margin: 0;
        padding: 0;
        text-transform: uppercase;
    }
}
@media (max-width: 420px) {
    .podcast-page--episode .podcast-player__transport { flex-wrap: wrap; }
    .podcast-page--episode .podcast-player__gap { display: none; }
    .podcast-page--episode .podcast-player__settings { margin-inline-start: auto; }
}

/* The listen band is a sidebar on wide screens and full width on small
   screens, so these thresholds follow its own width rather than the viewport.
   A narrow RSS tile stacks its changing action below the feed name, keeping
   every status inside the tile and letting the grid preserve equal row heights. */
@container (max-width: 27rem) {
    .podcast-page--episode .podcast-listen-links--compact .podcast-listen-card__label-row {
        align-items: center;
        gap: 2px;
        grid-template-columns: minmax(0, 1fr);
    }
}

@container (max-width: 18rem) {
    .podcast-page--episode .podcast-listen-links--compact .podcast-listen-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@container (max-width: 13rem) {
    .podcast-page--episode .podcast-listen-links--compact .podcast-listen-cards {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (prefers-color-scheme: light) {
    .podcast-page--episode .podcast-listen-card:hover .podcast-listen-card__logo img,
    .podcast-page--episode .podcast-listen-card:focus-visible .podcast-listen-card__logo img {
        filter: invert(1);
    }
}

/* The supplied narrow chapter ledger is a compact two-line record, not the
   legacy progress-card stack. Keep the real chapter controls and data hooks. */
@media (max-width: 760px) {
    .podcast-page--episode .podcast-episode-section > h2 {
        border: 0;
        font: 560 24px/1 var(--font-serif);
        letter-spacing: -.025em;
        margin: 0 0 16px;
        padding: 0;
    }
    .podcast-page--episode .podcast-chapter-list {
        border-block: 1px solid var(--rule);
        margin: 0;
        padding: 0;
    }
    .podcast-page--episode .podcast-chapter > :where(div, button) {
        align-items: center;
        background: transparent;
        border: 0;
        border-block-end: 1px solid var(--rule);
        color: inherit;
        display: grid;
        gap: 11.2px;
        grid-template-columns: 19.2px minmax(0, 1fr) 56px;
        padding: 13.6px 0;
        text-align: start;
    }
    .podcast-page--episode .podcast-chapter > button { cursor: pointer; }
    .podcast-page--episode .podcast-chapter--current > button { background: var(--tint); }
    .podcast-page--episode .podcast-chapter__cue {
        color: var(--muted);
        font-family: var(--font-sans);
        font-size: 10.4px;
        grid-column: 1;
        grid-row: 1;
        opacity: 1;
    }
    .podcast-page--episode .podcast-chapter__time,
    .podcast-page--episode .podcast-chapter__duration {
        color: var(--muted);
        font: 12.48px/normal var(--font-mono);
        font-variant-numeric: tabular-nums;
        white-space: nowrap;
    }
    .podcast-page--episode .podcast-chapter__time { grid-column: 2; grid-row: 2; }
    .podcast-page--episode .podcast-chapter__duration { grid-column: 3; grid-row: 2; text-align: end; }
    .podcast-page--episode .podcast-chapter__title {
        font: 600 16px/1.3 var(--font-sans);
        grid-column: 2;
        grid-row: 1;
        min-inline-size: 0;
    }
    .podcast-page--episode .podcast-chapter__meter { display: none; }
    .podcast-page--episode .podcast-chapter--members .podcast-chapter__title { grid-column: 2; grid-row: 1; }
    .podcast-page--episode .podcast-chapter--members .podcast-chapter__badge {
        border: 0;
        color: var(--muted);
        display: block;
        font: 700 9.92px/normal var(--font-sans);
        grid-column: 2;
        grid-row: 2;
        letter-spacing: .04em;
        margin: 0;
        padding: 0;
        white-space: nowrap;
    }
    .podcast-page--episode .podcast-chapter--members .podcast-chapter__duration { grid-column: 3; grid-row: 2; }
    /* The compact no-aftershow band uses the supplied editorial prose scale,
       rather than the smaller utility type used by its CTA. */
    .podcast-page--episode .podcast-episode-companion--none .podcast-episode-companion__body > p {
        font: 400 18.4px/28.52px var(--font-serif);
        margin: 12px 0;
    }
    .podcast-page--episode .podcast-episode-companion--none .podcast-episode-companion__body .podcast-episode-companion__cta {
        font: 400 15.2px/21.28px var(--font-serif);
        margin: 12px 0 0;
    }
    .podcast-page--episode .podcast-episode-companion--none .podcast-episode-companion__cta a {
        font: 700 13.6px/normal var(--font-sans);
    }
    .podcast-page--episode .podcast-episode-support__perks {
        font: 400 14px/1.5 var(--font-serif);
    }
    .podcast-page--episode .podcast-episode-support__cta a {
        font: 400 14px/normal var(--font-serif);
    }
}
