
.sgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:14px;margin-top:14px}
.scard{text-decoration:none;display:block}
.scard-t{color:#fff;font-weight:600;font-size:.92em;margin:0 0 2px;line-height:1.25;display:block}
.scard .meta{display:block}
/* a series card leads with the run's first volumes, not a single poster */
.scard .sstrip{display:flex;gap:5px;margin-bottom:8px;height:100px;overflow:hidden}
.scard .sstrip img{flex:none;width:62px;height:100px;object-fit:cover;border-radius:7px;background:#10161d;display:block}
.scard .sstrip .sph{flex:none;width:62px;height:100px;border-radius:7px;background:#161f2a;display:block}
.m-auth{display:flex;flex-direction:column}
.m-auth .am-head{padding:8px 14px 4px;font-weight:700;color:#fff;border-bottom:1px solid #22303f;margin-bottom:4px}
.am-wrap{position:relative}
.am-btn{display:flex;align-items:center;gap:8px;background:none;border:1px solid #2c3540;border-radius:7px;color:var(--ink);padding:4px 10px 4px 5px;cursor:pointer;font:inherit}
.am-btn:hover{border-color:var(--gold)}
.am-btn .am-ava{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff;font-size:.85em;flex:none}
.am-btn .am-name{font-size:.9em;color:var(--ink)}
.am-btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.am-menu{position:absolute;top:calc(100% + 6px);right:0;width:248px;background:#1e242b;border:1px solid #2c3540;border-radius:10px;box-shadow:0 14px 34px rgba(0,0,0,.5);z-index:60;padding:6px 0}
.am-menu .am-head{padding:8px 14px 4px;font-weight:700;color:#fff;border-bottom:1px solid #22303f;margin-bottom:4px}
.am-menu .item{display:block;width:100%;text-align:left;padding:9px 14px;color:var(--ink);font-size:.93em;text-decoration:none;background:none;border:none;font-family:inherit;cursor:pointer}
.am-menu .item:hover,.am-menu .item:focus{background:#232c36;color:#fff}
.am-menu .item:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
.am-menu .am-sep{border-top:1px solid #22303f;margin:4px 0}
.m-auth .am-sep{border-top:1px solid #22303f;margin:4px 0}
.mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;margin-top:14px}
.mcard{display:flex;gap:14px;align-items:flex-start;background:#161f2a;border:1px solid #22303f;border-radius:10px;padding:14px}
.mcard-ava{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:24px;color:#fff;flex:none;text-decoration:none}
.mcard-bd{flex:1;min-width:0}
.mcard-name{text-decoration:none;color:#fff}
.mcard-stats{margin:4px 0}
.mcard-favs{display:flex;gap:5px;margin-top:6px}
.mavatar-fav{width:44px;height:66px;object-fit:cover;border-radius:4px;border:1px solid #2c3540}
.mcard-act{flex:none}
.prow-card{background:#161f2a;border:1px solid #22303f;border-radius:8px;padding:9px 14px;color:#c6d0da;text-decoration:none;font-weight:600}
.prow-card .meta{font-weight:400}
.popstrip{display:flex;gap:16px;flex-wrap:wrap;margin-top:12px}
.popcard{display:flex;flex-direction:column;align-items:center;gap:6px;width:92px;text-align:center}
.popcard .ava{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:24px;color:#fff;text-decoration:none;flex:none}
.popcard .nm{color:#fff;font-size:.85em;font-weight:600;line-height:1.2}
.popcard .m{font-size:.75em;color:var(--dim)}
.hub-empty{margin-top:14px;color:var(--dim);background:var(--panel);border:1px dashed var(--edge);border-radius:9px;padding:18px;text-align:center}
.hub-empty a{color:var(--link)}
.pvt{color:var(--dim);font-style:italic}
.mcard-act{flex:none;display:flex;align-items:flex-start}
*{box-sizing:border-box}
:root{--bg:#14181c;--panel:#1e242b;--edge:#2c3540;--ink:#dbe3ea;--dim:#8494a3;--gold:#f4b83a;--link:#7ab8ff}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 -apple-system,'Segoe UI',Roboto,sans-serif}
a{color:var(--link);text-decoration:none}a:hover{color:#fff;text-decoration:none}
h1{font-size:1.7em;margin:.2em 0;color:#fff;font-weight:800}
h2.sec{font-size:.78em;text-transform:uppercase;letter-spacing:.14em;color:var(--dim);border-bottom:1px solid var(--edge);padding-bottom:8px;margin:34px 0 16px;display:flex;justify-content:space-between;align-items:center}
h2.sec a{font-size:.9em;text-transform:none;letter-spacing:0}
header.nav{background:#10151a;border-bottom:1px solid #232c36;padding:0 22px;display:flex;align-items:center;gap:6px;height:52px;position:sticky;top:0;z-index:9}
header.nav .logo{font-weight:900;font-size:1.12em;margin-right:14px;background:linear-gradient(90deg,#f4b83a,#ffd97a);-webkit-background-clip:text;background-clip:text;color:transparent}
header.nav a.item{color:#93a3b2;padding:16px 13px;font-size:.95em}
header.nav a.item:hover{color:#fff;background:#161c22}
header.nav .spacer{flex:1}
main{max-width:1060px;margin:0 auto;padding:26px 20px 90px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px}
.grid.small{grid-template-columns:repeat(auto-fill,minmax(105px,1fr));gap:10px}
.card{display:block}.card img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;border-radius:7px;background:var(--panel);display:block}
.card .t{margin-top:6px;font-size:.85em;line-height:1.25;color:var(--ink)}
.card:hover .t{color:var(--gold)}.card .s{font-size:.76em;color:var(--dim)}
.nocover{width:100%;aspect-ratio:1/1;border-radius:7px;background:linear-gradient(160deg,#242e39,#171d24);display:flex;align-items:center;justify-content:center;text-align:center;padding:10px;color:var(--dim);font-size:.82em}
/* film page */
.backdrop{position:relative;margin:-26px -20px 24px;max-width:none}
.backdrop img{width:100%;height:300px;object-fit:cover;display:block;filter:brightness(.45)}
.backdrop::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,24,28,.25),var(--bg) 96%)}
.filmhead{max-width:1060px;margin:-190px auto 0;padding:0 20px;position:relative;z-index:2;display:flex;gap:26px;flex-wrap:wrap}
.filmhead .poster img{width:210px;aspect-ratio:1/1;object-fit:cover;border-radius:9px;border:1px solid rgba(255,255,255,.12);box-shadow:0 18px 44px rgba(0,0,0,.55)}
/* Same slot, same size, for the failed-cover placeholder: the poster box is set by CSS on the
   image element, so the replacement div must repeat it or .poster shrinks to min-content and the
   placeholder lands at the wrong size. Mirrors the designed empty state (210px, 132px mobile). */
.filmhead .poster .nocover{width:210px;height:210px}
.filmhead .body{flex:1;min-width:290px;padding-top:90px}
.actions{display:flex;gap:10px;margin:16px 0}
.actions button,.actions span{background:rgba(30,36,43,.92);border:1px solid var(--edge);border-radius:7px;padding:8px 14px;font-size:.9em;color:var(--ink);font-family:inherit}
.actions span.statusline{background:none;border:none;padding:8px 0;color:var(--dim)}
.actions button:hover{border-color:var(--gold);color:#fff}
.local-progress-note{margin:4px 0 18px;max-width:720px}.local-progress-note.attention{color:var(--gold)}.local-progress-signup{padding:0;border:0;background:none;color:var(--gold);font:inherit;text-decoration:underline;cursor:pointer}
.ratingbox{display:flex;align-items:center;gap:14px;margin:14px 0}
.avg{font-size:1.05em;color:#fff}.avg b{font-weight:800}
.stars{display:inline-flex;flex-direction:row-reverse;gap:1px}
.stars input{display:none}
.stars label{color:#39434e;font-size:1.45em;cursor:pointer;padding:0 1px}
.stars label::before{content:"★"}
.stars input:checked~label,.stars label:hover,.stars label:hover~label{color:var(--gold)}
.synopsis{margin-top:14px;color:#c6d0da;max-width:640px}
.synopsis-block{margin:26px 0 0;max-width:720px}
.synopsis-block h2{font-size:.78em;text-transform:uppercase;letter-spacing:.14em;color:var(--dim);margin:0 0 8px}
.title-secondary{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 4px;max-width:720px}
.title-fact{display:flex;flex-direction:column;gap:1px;min-width:128px;padding:8px 12px;background:rgba(30,36,43,.82);border:1px solid var(--edge);border-radius:7px}
.title-fact b{color:#fff;font-weight:700}
.title-fact-empty{margin:0;padding:8px 0;font-style:italic}
.tagline{color:var(--gold);font-style:italic;font-weight:600;margin:8px 0 2px}
.tabs{display:flex;gap:0;border-bottom:1px solid var(--edge);margin:26px 0 18px}
.tabs a{padding:10px 17px;color:var(--dim);font-size:.93em;border-bottom:2px solid transparent}
.tabs a.on{color:var(--gold);border-color:var(--gold);font-weight:600}
.chip{display:inline-block;background:var(--panel);border:1px solid var(--edge);border-radius:13px;padding:3px 11px;margin:2px;color:var(--ink);font-size:.88em}
.chip:hover{border-color:var(--gold);color:var(--gold)}
.chip-cat{border-style:dashed;color:#8494a3}
.prov-src{color:#5c6b7a;font-size:.82em;white-space:nowrap}
.prov-src a{color:#8494a3;text-decoration:none}
.prov-src a:hover{color:var(--gold)}
.mtag{display:inline-block;background:var(--panel);border:1px solid var(--edge);border-radius:13px;padding:3px 11px;margin:2px;font-size:.88em;color:var(--ink)}
.mtag a{color:var(--gold)}
.tagx{cursor:pointer;color:var(--dim);padding-left:4px}.tagx:hover{color:#e66}
.tagbtn{background:none;border:1px dashed #2c3540;border-radius:13px;padding:3px 11px;margin:2px;color:var(--dim);cursor:pointer;font:inherit;font-size:.88em}
.tagbtn:hover{color:var(--gold);border-color:var(--gold)}
.tpick{display:inline-block;border:1px solid var(--edge);border-radius:13px;padding:4px 12px;margin:3px;cursor:pointer;font-size:.9em}
.tpick:hover{border-color:var(--gold)}.tpick.picked{background:var(--gold);color:#14181c;border-color:var(--gold);font-weight:700}
.buy{display:inline-block;background:var(--gold);color:#14181c!important;padding:9px 18px;border-radius:7px;font-weight:700}
.retailer-section{margin-top:22px}
.retailer-links{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px}
.retailer-link{display:block}
.retailer-mobile-links{display:none}
.retailer-table{margin-top:12px;max-width:900px}
.retailer-table td,.retailer-table th{padding:8px 10px}
.retailer-table .retailer-action{white-space:nowrap}
.retailer-unknown{color:var(--dim)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.availability-meta{display:block;margin-top:10px;font-size:.8em}
.affiliate-disclosure{display:block;margin:10px 0 0;font-size:.8em;max-width:760px}
table{border-collapse:collapse;width:100%;font-size:.92em}
td{border-bottom:1px solid var(--edge);padding:8px 9px;vertical-align:top}
th{text-align:left;color:var(--dim);font-size:.78em;text-transform:uppercase;letter-spacing:.09em;padding:6px 9px}
/* reviews */
.review{display:flex;gap:13px;padding:15px 0;border-bottom:1px solid var(--edge)}
.avatar{width:40px;height:40px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:800;color:#14181c;font-size:.95em}
.review .who b{color:#fff}
.review .starsline{color:var(--gold);letter-spacing:2px;font-size:.9em}
.insights{background:#151b22;border:1px solid #2c3540;border-radius:10px;padding:12px 16px;margin:0 0 16px}
.insights .iwarn{display:inline-block;background:#2a161d;border:1px solid #cf3e63;color:#ff9db8;border-radius:20px;padding:2px 11px;font-size:12px;margin:2px 4px 2px 0}
.insights .iwarn.lo{border-color:#5c3a45;color:#c98da0;background:#1c1519}
.insights .iheat{display:inline-block;background:#1a2027;border:1px solid #2c3540;border-radius:20px;padding:2px 11px;font-size:12px;margin:2px 4px 2px 0;color:#c6d0da}
.insights .iheat.none{color:#7dc95e;border-color:#2c5a3f}
.insights .iheat.mild{color:#f4b83a;border-color:#6a5a2f}
.insights .iheat.moderate{color:#ff9a3c;border-color:#6a4a2f}
.insights .iheat.explicit{color:#ff6b8a;border-color:#cf3e63}
.ilbl{color:#8494a3;font-size:10px;text-transform:uppercase;letter-spacing:1px;margin:0 6px 0 8px}
.itheme{display:inline-block;background:#161f2a;border:1px solid #2f5a8f;color:#9ecbff;border-radius:20px;padding:2px 11px;font-size:12px;margin:2px 4px 2px 0}
.insights .ivibe{font-style:italic;color:#e8ecf1;margin-top:8px}
.insights .iquote{border-left:3px solid #f4b83a;padding:4px 12px;color:#c6d0da;font-style:italic;margin-top:8px}
.insights .isrc{color:#5c6b7a;font-size:10.5px;margin-top:8px}
.insights .isrc a{color:#5c6b7a}
/* audio fingerprint panel */
.fingerprint{background:#141a21;border:1px solid #232c36;border-radius:10px;padding:14px 18px;margin:16px 0}
.fingerprint .fpstyle{color:#93a3b2;font-size:.9em;margin:2px 0 12px}
.fingerprint .fprow{display:flex;align-items:center;gap:10px;margin:5px 0}
.fingerprint .fpk{width:170px;color:#9ecbff;font-size:12.5px;text-align:right;flex:none}
.fingerprint .fpbar{flex:1;height:10px;background:#1b222b;border-radius:5px;overflow:hidden}
.fingerprint .fpbar span{display:block;height:100%;background:linear-gradient(90deg,#2f5a8f,#7ab8ff);border-radius:5px}
.fingerprint .fpv{width:52px;color:#8494a3;font-size:12px;flex:none}
.fingerprint .fpvibe{color:#c6d0da;font-size:.88em;margin-top:10px;border-top:1px solid #232c36;padding-top:10px}
.fingerprint .fpnote{color:#8494a3;font-size:.82em;margin:2px 0 10px;line-height:1.45}
.fingerprint .fpmetric{display:block;margin:3px 0}
.fingerprint .fpmetric b{color:#c6d0da;font-weight:600;margin-right:4px}
.fingerprint .fppctx{color:#8494a3;font-weight:400;font-size:.82em;margin-left:6px}
.sharebar{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 4px}
.sbtn{background:#171d24;border:1px solid #2c3540;border-radius:7px;color:#c6d0da;padding:6px 12px;font:inherit;font-size:.88em;cursor:pointer;text-decoration:none}
.sbtn:hover{border-color:#f4b83a;color:#f4b83a}
.sbtn.ok{border-color:#3d9a5f;color:#3d9a5f}
.sbtn.fail{border-color:#c25b5b;color:#c25b5b}
.seriesbanner{max-width:1060px;margin:16px auto 0;padding:12px 18px;background:linear-gradient(90deg,#1b2330,#171d24);border:1px solid #2c3540;border-left:3px solid var(--gold);border-radius:9px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.seriesbanner .sbname{color:var(--gold);font-weight:700;text-decoration:none;font-size:1.02em;display:inline-block;line-height:44px;min-height:44px;min-width:44px;padding:0 12px;box-sizing:border-box;border-radius:7px}
.seriesbanner .sbname:hover{text-decoration:underline}
.seriesbanner .sbpos{color:#8494a3;font-size:.88em;margin-left:10px;vertical-align:middle}
.seriesbanner .sbnav{display:flex;gap:14px;flex-wrap:wrap}
.seriesbanner .snav{color:#9ecbff;font-size:.88em;text-decoration:none;display:inline-block;line-height:44px;min-height:44px;min-width:44px;padding:0 12px;box-sizing:border-box;border-radius:7px;white-space:nowrap}
.seriesbanner .snav:hover{text-decoration:underline}
.seriesbanner .snav:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.seriesbanner .sbname:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:4px}
.sbtn:focus-visible{outline:2px solid #f4b83a;outline-offset:2px}
.searchdrop .sgroup{color:#8494a3;font-size:.75em;text-transform:uppercase;letter-spacing:.08em;padding:8px 14px 3px;border-top:1px solid #232c36}
.searchdrop .sgroup:first-child{border-top:none}
.searchdrop .sres{display:flex;justify-content:space-between;gap:10px;padding:8px 14px;color:var(--ink);text-decoration:none;font-size:.92em}
.searchdrop .sres:hover{background:#1b2330}
.searchdrop .sres b{font-weight:600}
.searchdrop .sres .meta{flex:none;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.searchdrop .smore{color:#9ecbff;font-size:.85em}
/* --- homepage unified search: one bar, one submit --- */
/* [hidden] must be re-asserted: the .searchdrop rule above sets display:flex, which otherwise
   outranks the user-agent [hidden]{display:none} and leaves the panel permanently open. */
.searchdrop[hidden]{display:none}
.usrow{position:relative;display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:6px}
#usearch{flex:1 1 240px;min-width:0;background:#171d24;border:1px solid #2c3540;border-radius:8px;color:var(--ink);padding:11px 13px;font:inherit;font-size:1.02em}
#usearch::placeholder{color:#5c6b7a}
#usearch:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
#ugo{flex:none;padding:11px 18px;background:#f4b83a;color:#14181c;border:none;border-radius:8px;font:inherit;font-weight:700;cursor:pointer}
#ugo:hover{background:#ffd97a}
#ugo:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.searchdrop.usdrop{position:static;width:auto;max-width:none;margin-top:8px}
.searchdrop.usdrop .sres:hover,.searchdrop.usdrop .sres:focus{background:#1b2330}
.searchdrop.usdrop .sres:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
#ures:empty{display:none}
@media (max-width:640px){.sbtn{padding:10px 14px}}
.fingerprint .fph3{color:#9ecbff;font-size:11px;letter-spacing:.12em;text-transform:uppercase;margin:12px 0 6px;font-weight:600}
.fingerprint .fpbar.vibe span{background:linear-gradient(90deg,#5a3f8f,#b88aff)}
.review .body-text{margin-top:5px;color:#c6d0da}
.likes{color:var(--dim);font-size:.85em;margin-top:5px}
.rv-like{background:none;border:none;color:var(--dim);cursor:pointer;font-size:1em;padding:0;font-family:inherit}
.rv-like:hover{color:#fff}.rv-like.on{color:var(--gold)}
.fcf-follow{background:none;border:1px solid #2c3540;color:var(--dim);border-radius:7px;padding:4px 12px;cursor:pointer;font:inherit;font-size:.85em}
.fcf-follow:hover{color:#fff;border-color:#445566}.fcf-follow.on{color:var(--gold);border-color:var(--gold)}
.lcomment{padding:10px 0;border-bottom:1px solid #1c242c;font-size:.95em}
.mtable{width:100%;border-collapse:collapse}
.mtable td{padding:10px 8px;border-bottom:1px solid #1c242c;vertical-align:middle}
.mtable th{color:var(--dim);font-size:.78em;text-transform:uppercase;letter-spacing:.06em;padding:6px 8px;text-align:center}
.mtable th:first-child,.mtable td:first-child{text-align:left}
.mstat{color:var(--dim);font-variant-numeric:tabular-nums;white-space:nowrap;text-align:center}
.pnlink{color:var(--dim);font-size:.92em}.pnlink:hover{color:#fff}
.actbtn{cursor:pointer;font:inherit;color:var(--ink)}
.actbtn.on{background:var(--gold);color:#14181c;border-color:var(--gold)}
.statusline{color:var(--dim);font-size:.85em;margin-left:8px}
#reviewform{background:var(--panel);border:1px solid var(--edge);border-radius:9px;padding:16px;margin:14px 0}
#reviewform textarea{width:100%;min-height:110px;background:#171d24;border:1px solid var(--edge);border-radius:8px;color:var(--ink);padding:10px;font:inherit;margin-top:8px}
#reviewform .row{display:flex;gap:12px;align-items:center;margin-top:10px;flex-wrap:wrap}
.searchwrap{position:relative;margin-left:8px}
#navsearch{background:#171d24;border:1px solid #2c3540;border-radius:7px;color:var(--ink);padding:6px 10px;font:inherit;font-size:.9em;width:170px}
#navsearch::placeholder{color:#5c6b7a}
#fcf-modal input{display:block;width:100%;box-sizing:border-box;background:#171d24;border:1px solid #2c3540;border-radius:7px;color:var(--ink);padding:10px;font:inherit;margin-top:10px}
#fcf-modal input::placeholder{color:#5c6b7a}
#fcf-modal .modal-hint{color:#5c6b7a;font-size:.82em;margin:6px 0 0}
.searchdrop{position:absolute;top:100%;right:0;width:290px;background:#1e242b;border:1px solid #2c3540;border-radius:8px;z-index:50;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 14px 34px rgba(0,0,0,.5)}
.searchdrop a{padding:8px 12px;color:var(--ink);font-size:.9em;border-bottom:1px solid #232c36;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.searchdrop a:hover{background:#232c36;color:var(--gold)}
.browsestrip{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:20px 0 0;font-size:.78em;text-transform:uppercase;letter-spacing:.12em;color:var(--dim)}
.browsestrip a{background:var(--panel);border:1px solid var(--edge);border-radius:6px;padding:7px 13px;color:var(--ink)}
.browsestrip a:hover{border-color:var(--gold);color:var(--gold)}
/* --- browse-by: sticky jump rails + grouped, countable sections ---
   The four browse-by entry points used to be wrapping rows of links (33 years, 26
   letters with no counts, 181 comma-joined crew strings). Scanning needs an index you
   can see the shape of, a rail that stays put, and groups with a count. */
.jumpnav{position:sticky;top:52px;z-index:7;display:flex;align-items:center;gap:6px;flex-wrap:nowrap;overflow-x:auto;max-width:100%;background:#14181c;border:1px solid var(--edge);border-radius:9px;padding:6px 8px;margin:14px 0 4px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.jumpnav .jnl{flex:none;color:var(--dim);font-size:.7em;text-transform:uppercase;letter-spacing:.12em;padding:0 8px 0 2px;border-right:1px solid var(--edge)}
.jumpnav a{flex:none;color:var(--ink);font-size:.88em;padding:5px 9px;border:1px solid transparent;border-radius:6px;white-space:nowrap}
.jumpnav a:hover{border-color:var(--gold);color:var(--gold)}
.jumpnav a:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.jumpnav .jn-hint{flex:none;color:#5c6b7a;font-size:.72em;padding-left:6px}
.jumpnav .cnt{color:var(--dim);font-size:.8em;margin-left:5px}
.jumpnav .jn-off{flex:none;color:#3a4450;font-size:.88em;padding:5px 9px;cursor:default}
.bview{scroll-margin-top:60px;margin-top:30px}
.bgroup{scroll-margin-top:118px;margin:22px 0 0}
.byears{display:grid;gap:10px;margin-top:12px}
.byear{display:flex;gap:16px;align-items:flex-start;scroll-margin-top:118px}
.byear .byn{font-size:1.35em;font-weight:800;color:#fff;line-height:1.1;min-width:74px;margin:0;font-variant-numeric:tabular-nums}
.byear .bybody{flex:1;min-width:0}
.byear .byline{margin-bottom:9px}
.bgroup>h3,.bgroup>h2{font-size:.95em;color:#fff;margin:0 0 10px;padding-bottom:7px;border-bottom:1px solid var(--edge);display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.bgroup>h3 .meta,.bgroup>h2 .meta{font-weight:400}
.bgroup .ball{margin:10px 0 0;font-size:.9em}
.bthumbs{display:flex;gap:6px;flex-wrap:wrap}
.bthumb{display:block;width:58px;flex:none}
.bthumb img{width:100%;aspect-ratio:2/3;object-fit:cover;border-radius:6px;background:var(--panel);display:block}
.bthumbplaceholder{width:100%;aspect-ratio:2/3;border-radius:6px;background:#161f2a;display:block}
.byear{background:#161f2a;border:1px solid var(--edge);border-radius:10px;padding:11px 13px}
.byear .byh{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:9px}
.byear .byn{font-size:1.3em;font-weight:800;color:#fff;font-variant-numeric:tabular-nums;line-height:1}
.byear .bya{font-size:.88em}
.bpeople{display:grid;grid-template-columns:repeat(auto-fill,minmax(275px,1fr));gap:12px;margin-top:12px}
.bperson{background:#161f2a;border:1px solid var(--edge);border-radius:10px;padding:11px 13px;display:flex;gap:12px;align-items:flex-start;scroll-margin-top:118px}
.bperson .bpava{width:42px;height:42px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-weight:800;color:#14181c;font-size:1.05em}
.bperson .bpbody{flex:1;min-width:0}
.bperson .bpn{color:#fff;font-weight:600;line-height:1.25}
.bperson .bpc{color:var(--dim);font-size:.85em}
.bperson .bthumbs{margin-top:8px}
.bperson .bthumb{width:46px}
.browlist{columns:2 260px;column-gap:22px;margin:8px 0 0;padding:0;list-style:none}
.browlist li{margin:0 0 3px;break-inside:avoid}
.browlist a{display:block;color:var(--ink);font-size:.9em;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.browlist a:hover{color:var(--gold)}
.browlist a:focus-visible{outline:2px solid var(--gold);outline-offset:1px;border-radius:4px}
.browlist .bsub{color:var(--dim);font-size:.94em}
@media(max-width:860px){
 .jumpnav .jn-hint{display:none}
 .browlist{columns:1}
 .bperson{flex-direction:row}
}
.cols{display:grid;grid-template-columns:1fr 320px;gap:34px}
@media(max-width:860px){.cols{grid-template-columns:1fr}}
/* --- mobile --- */
.burger{display:none;margin-left:auto;background:none;border:1px solid #2c3540;border-radius:7px;color:var(--ink);font-size:1.3em;line-height:1;padding:7px 12px;cursor:pointer}
.burger:hover{border-color:var(--gold);color:var(--gold)}
.mobilemenu{display:none;position:sticky;top:52px;z-index:8;flex-direction:column;background:#10151a;border-bottom:1px solid #232c36;padding:8px 16px 14px;box-shadow:0 14px 30px rgba(0,0,0,.45);max-height:calc(100dvh - 52px);overflow-y:auto;overscroll-behavior:contain}
body.nav-open .mobilemenu{display:flex}
.mobilemenu a.item{color:#93a3b2;padding:12px 4px;border-bottom:1px solid #1a2129;font-size:1.02em}
.mobilemenu a.item:hover{color:#fff}
.mobilemenu a.item[aria-current="page"]{color:#fff;background:#161c22;border-left:3px solid var(--gold);padding-left:9px}
.mobilemenu .nav-group{display:flex;flex-direction:column}
.mobilemenu .nav-group-label{color:var(--dim);font-size:.72em;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:12px 4px 3px}
.mobilemenu .searchwrap{display:block;margin:12px 0 6px}
.mobilemenu .searchwrap input{width:100%}
@media(max-width:860px){
 main{padding:18px 12px 70px}
 h1{font-size:1.42em}
 header.nav{padding:0 12px;gap:4px}
 header.nav>a.item,header.nav>.searchwrap,header.nav>#navauth{display:none}
 .burger{display:block}
 .grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px}
 .grid.small{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}
 .backdrop{margin:-18px -12px 18px}
 .backdrop img{height:190px}
 .filmhead{flex-direction:column;gap:14px;margin:-110px auto 0;padding:0 12px}
 .filmhead .poster img{width:132px}
 .filmhead .poster .nocover{width:132px;height:132px}
 .filmhead .body{padding-top:0;min-width:0}
 .actions{flex-wrap:wrap;gap:8px}
 .actions button{padding:9px 12px;font-size:.88em}
 .tabs{overflow-x:auto}
 .ratingbox{flex-wrap:wrap;gap:10px}
 .mtable{display:block;overflow-x:auto}
 .hist .hl{width:56px}.hist .hc{width:60px}
 .ratings-panel{padding:14px}
}
/* Related-title rails need two readable columns on phones, not three tiny ones.
   Keep the desktop grid unchanged; on narrow screens every card gets the same
   square media slot (catalogue covers are square; a 2:3 frame cropped them) and a
   stable text block so incomplete rows still align. */
@media(max-width:560px){
 .grid,.grid.small{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .grid .card{display:flex;flex-direction:column;min-width:0;min-height:44px}
 .grid .card img,.grid .card .nocover{width:100%;height:auto;aspect-ratio:1/1}
 .grid .card .t{min-height:2.5em;overflow-wrap:anywhere}
 .grid .card .s{overflow-wrap:anywhere}
 .retailer-mobile-links{display:flex;flex-direction:column;align-items:stretch}
 .retailer-mobile-links .retailer-link{width:100%;text-align:left}
 .retailer-table{font-size:.86em;display:table;width:100%;max-width:100%;table-layout:fixed;overflow:visible;white-space:normal}
 .retailer-table .retailer-action{display:none}
 .retailer-table th,.retailer-table td{overflow-wrap:anywhere}
}
.listcard{background:var(--panel);border:1px solid var(--edge);border-radius:9px;padding:14px;margin-bottom:14px}
/* Letterboxd-style list cards: overlapped poster strip + 2-col grid on /lists */
.lb-strip{display:flex;overflow:hidden;border-radius:7px;height:132px}
.lb-strip .lb-pi{flex:0 0 78px;min-width:0;margin-left:-26px;aspect-ratio:2/3;height:132px;box-shadow:0 0 0 1px rgba(0,0,0,.4);overflow:hidden}
.lb-strip .lb-pi:first-child{margin-left:0}
.lb-strip .lb-pi img{width:100%;height:100%;object-fit:cover;display:block}
.lb-strip .lb-pi .nocover{height:100%}
.lb-listcard{display:flex;flex-direction:column}
.lb-strip-link{display:block;margin-bottom:10px}
.lb-listcard h3{margin:0 0 4px;font-size:1.02em}
.lb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px;margin-top:14px}
.lb-grid .listcard{margin-bottom:0}
@media(max-width:560px){.lb-grid{grid-template-columns:1fr}.lb-strip{height:110px}.lb-strip .lb-pi{height:110px}}
.listcard h3{margin:8px 0 4px;font-size:1.02em}.listcard h3 a{color:#fff}
footer{border-top:1px solid var(--edge);color:var(--dim);text-align:center;padding:26px;font-size:.85em}
.footlinks{margin-bottom:10px}
.footlinks a{color:var(--dim);margin:0 9px;text-decoration:none}
.footlinks a:hover,.footlinks a:focus{color:var(--gold);text-decoration:underline}
.trtable th,.trtable td{padding:8px 10px;border-bottom:1px solid var(--edge);text-align:left;vertical-align:top}
.trtable th{color:var(--muted);font-size:.82em;text-transform:uppercase;letter-spacing:.04em}
/* ratings histogram (Letterboxd-style 5→½ star bars) */
.ratings-panel{background:var(--panel);border:1px solid var(--edge);border-radius:9px;padding:16px 18px;margin:20px 0;max-width:560px}
.rp-title{font-size:.72em;text-transform:uppercase;letter-spacing:.14em;color:var(--dim);margin:0 0 12px;display:flex;align-items:center;gap:8px}
.rp-est{font-size:.72em;text-transform:none;letter-spacing:0;color:var(--gold);border:1px solid rgba(244,184,58,.4);border-radius:4px;padding:1px 6px}
.rp-avg{display:flex;align-items:baseline;gap:10px;margin-bottom:14px}
.rp-big{font-size:2.1em;font-weight:800;color:#fff;line-height:1}
.rp-stars{color:var(--gold);font-size:1.1em;letter-spacing:2px}
.rp-meta{color:var(--dim);font-size:.88em}
.hist{display:flex;flex-direction:column;gap:4px}
.hrow{display:flex;align-items:center;gap:8px;font-size:.82em}
.hl{width:64px;color:var(--gold);flex-shrink:0;letter-spacing:1px;text-align:right}
.hbar{flex:1;height:9px;background:#242c35;border-radius:5px;overflow:hidden}
.hbar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),#ffd97a);border-radius:5px}
.hc{width:74px;color:var(--dim);flex-shrink:0;text-align:right;white-space:nowrap}
.hc .pct{color:#5c6b7a}
