.recap-section{padding:32px 0;min-width:0;max-width:100%}
.recap-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:20px}
.recap-section-head h2{margin:0;color:#fff;font-size:1.6rem;line-height:1.25;letter-spacing:-.015em}
.recap-count{flex-shrink:0;color:#c7bec9;font-size:.875rem}
.recap-gallery{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,1fr);gap:20px;align-items:start}
.recap-gallery-single{grid-template-columns:minmax(0,1fr);max-width:760px}
.recap-viewer{min-width:0;scroll-margin-top:90px}
.recap-feature{border:1px solid #443444;border-radius:14px;overflow:hidden;background:#19151d}
.recap-screen{min-width:0;background:#09090c}
.recap-feature-copy{padding:20px 24px 22px}
.recap-eyebrow{color:#e8a6c3;font-size:.875rem;font-weight:600}
.recap-feature-copy h3{margin:7px 0 9px;color:#fff;font-size:1.25rem;line-height:1.5}
.recap-feature-copy h3 span{font-weight:400;color:#d7cdd9}
.recap-feature-copy p{margin:0;color:#e4dce7;font-size:1rem;line-height:1.65;overflow-wrap:anywhere}
.recap-feature-links{display:flex;flex-wrap:wrap;gap:0 24px;margin-top:10px}
.recap-feature-links a{display:inline-flex;align-items:center;min-height:44px;color:#ecb4cf;font-size:.875rem;text-underline-offset:4px}
.recap-playlist{min-width:0}
.recap-playlist>h3{margin:0 0 12px;color:#d7cdd9;font-size:.875rem;font-weight:600}
.recap-list{display:flex;flex-direction:column;gap:8px;max-height:620px;overflow-y:auto;overscroll-behavior:contain;margin:0;padding:2px 7px 3px 2px;list-style:none;scrollbar-width:thin;scrollbar-color:#78536b transparent}
.recap-card{min-width:0;margin:0;padding:0}
.recap-select{display:grid;grid-template-columns:104px minmax(0,1fr);gap:13px;align-items:start;min-height:112px;padding:12px;color:#eee5f0;text-decoration:none;border:1px solid #3a303d;border-radius:10px;background:#18151c;transition:border-color .15s ease,background .15s ease}
.recap-select:hover{background:#251c27;border-color:#9b6585}
.recap-card-media{position:relative;display:block;align-self:center;overflow:hidden;border-radius:6px;background:#0d0b11;aspect-ratio:16/9}
.recap-card-media img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:var(--recap-thumbnail-position,50% 50%)}
.recap-card-play{position:absolute;inset:0;display:grid;place-items:center;color:#fff;background:#0003}
.recap-card-play svg{width:28px;height:28px;filter:drop-shadow(0 1px 5px #000)}
.recap-card-copy{display:flex;flex-direction:column;min-width:0;gap:3px}
.recap-card-copy strong{font-size:1rem;line-height:1.35;color:#fff}
.recap-card-copy time,.recap-card-format{font-size:.875rem;line-height:1.4;color:#c8bdcd}
.recap-card-cast{font-size:.875rem;line-height:1.5;color:#e1d6e5;overflow-wrap:anywhere}
.recap-card-format{margin-top:4px;color:#e5a3c1}
.recap-section :is(a,button):focus-visible,.recap-player :is(a,button):focus-visible{outline:2px solid #ffb0d3;outline-offset:3px}
.recap-player,.detail-media.recap-player{box-sizing:border-box;width:100%;max-width:550px;min-width:0;height:auto;min-height:0;max-height:none;aspect-ratio:auto;overflow:visible;align-self:start;justify-self:center;display:flex;flex-direction:column;align-items:stretch;gap:12px;padding:0;border:0;border-radius:0;background:transparent;color:#f2edf4;scroll-margin-top:96px}
.recap-player>*{flex-shrink:0}
.recap-cover.recap-poster{max-width:none;aspect-ratio:16/9;border-radius:0}
.detail-media.recap-player[data-recap-orientation="portrait"]{max-width:none}
.detail-media.recap-player .recap-poster{aspect-ratio:16/10}
@media(max-width:760px){.detail-media.recap-player .recap-poster{aspect-ratio:4/5}}
.app-shell .detail-hero.recap-detail{align-items:start}
@media(min-width:901px){.app-shell .detail-hero.recap-detail{grid-template-columns:minmax(0,550px) minmax(0,1fr);gap:clamp(28px,3vw,48px)}.recap-detail .detail-copy h1{font-size:clamp(2.4rem,3.5vw,3.5rem);line-height:1.1}}
.recap-player-heading h2{margin:0;color:#fff;font-size:1.2rem;line-height:1.4}
.recap-player-heading p{margin:8px 0 0;color:#e4dce7;font-size:1rem;line-height:1.6}
.recap-provider-link{display:inline-flex;align-items:center;min-height:44px;align-self:flex-start;font-size:.875rem}
.recap-player-prompt{width:100%;min-width:0}
.recap-poster{appearance:none;display:block;position:relative;width:100%;aspect-ratio:var(--recap-poster-ratio,16/9);padding:0;border:0;border-radius:8px;background:#151318;overflow:hidden;cursor:pointer;touch-action:manipulation}
.recap-thumbnail,.detail-media .recap-thumbnail{display:block;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:var(--recap-thumbnail-position,50% 50%)}
.recap-cover .recap-thumbnail{position:absolute;inset:0;object-fit:cover;object-position:var(--recap-thumbnail-position,50% 50%)}
.recap-poster::after{content:"";position:absolute;inset:0;background:#0002;pointer-events:none}
.recap-play-icon{position:absolute;z-index:1;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:72px;height:72px;border:2px solid #fff;border-radius:50%;background:#ab0047;color:#fff;box-shadow:0 4px 28px #0008}
.recap-play-icon>svg{display:block;width:30px;height:30px;margin-left:3px}
.recap-poster:hover .recap-play-icon{background:#cb0055}
.recap-spinner{display:none;width:27px;height:27px;border:3px solid #ffffff60;border-top-color:#fff;border-radius:50%;animation:recap-spin .85s linear infinite}
.recap-player.is-loading .recap-play-icon>svg{display:none}
.recap-player.is-loading .recap-spinner{display:block}
.recap-poster:disabled{cursor:progress}
@keyframes recap-spin{to{transform:rotate(360deg)}}
.recap-stage .twitter-tweet{box-sizing:border-box!important;min-width:0!important;width:100%!important;max-width:100%!important;margin:0 auto!important}
.recap-player a{color:#efb0ce;text-decoration:underline;text-underline-offset:3px}
.recap-stage{flex:0 0 auto;min-width:0;width:100%;height:auto;max-height:none;aspect-ratio:auto;overflow:visible;margin-inline:auto}
.recap-stage>div{width:100%;min-width:0;max-width:100%}
.recap-stage:empty{display:none}
.recap-stage .instagram-media,.recap-stage iframe{display:block;box-sizing:border-box!important;min-width:0!important;width:100%!important;max-width:100%!important;margin:0!important}
.recap-player.is-loading .recap-stage{min-height:240px}
.recap-player.is-loading .recap-status::before{content:"";display:inline-block;width:13px;height:13px;margin-right:8px;vertical-align:-2px;border:2px solid #ffffff60;border-top-color:#fff;border-radius:50%;animation:recap-spin .85s linear infinite}
.recap-status{font-size:.875rem;line-height:1.5;color:#d2c4d7;margin:0}
.recap-status:empty{display:none}
.recap-player-links{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 16px}
.recap-player-links a,.recap-player-links button{display:inline-flex;align-items:center;min-height:44px;font-size:.875rem;line-height:1.4;color:#e3bdd3}
.recap-player-links button{padding:8px 0;background:transparent;border:0;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.recap-player [hidden]{display:none!important}
@media(max-width:1000px){.recap-gallery{grid-template-columns:minmax(0,1.3fr) minmax(260px,1fr);gap:14px}.recap-select{grid-template-columns:80px minmax(0,1fr);gap:10px;padding:10px}.recap-feature-copy{padding:18px}.recap-gallery-single{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){.recap-gallery{grid-template-columns:minmax(0,1fr);gap:20px}.recap-list{display:grid;grid-template-columns:minmax(0,1fr);max-height:none;overflow:visible;overscroll-behavior:auto;padding:3px;gap:10px}.recap-card{width:100%;max-width:none}.recap-select{min-height:104px;box-sizing:border-box;grid-template-columns:minmax(88px,30%) minmax(0,1fr);align-items:center}.recap-section-head{align-items:center;gap:12px}.recap-section-head h2{font-size:1.4rem}.recap-count{font-size:.875rem}}
@media(max-width:900px){.app-shell .detail-hero.recap-detail{display:grid;grid-template-columns:minmax(0,1fr);gap:22px}.recap-detail .recap-player{margin-inline:auto}}
@media(max-width:420px){.recap-screen{padding:0}.recap-feature-copy{padding:16px}.recap-play-icon{width:64px;height:64px}.recap-feature-copy h3{font-size:1.125rem}.recap-section-head{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.recap-spinner,.recap-player.is-loading .recap-status::before{animation:none}.recap-select{transition:none}}
@media print{.recap-playlist,.recap-poster,.recap-player-links{display:none!important}}
