/* Cinema owns its complete colour roles; generated values live in cinema-tokens.css. */
:root[data-world=cinema] {
  color-scheme: dark;
  --world-ground: var(--cinema-canvas); --world-sheet: var(--cinema-surface);
  --world-ink: var(--cinema-text); --world-muted: var(--cinema-muted);
  --world-line: #30394c; --world-accent: var(--cinema-link); --world-soft: var(--cinema-raised);
  --world-stage: var(--cinema-surface); --world-on-stage: var(--cinema-text);
  --world-lime: var(--cinema-primary); --world-radius: 14px;
  --world-display: Inter,"Segoe UI","Microsoft JhengHei","Yu Gothic UI",system-ui,sans-serif;
  --shadow: 0 3px 6px #0004,0 22px 40px -22px #000b;
  --gold: var(--cinema-warning); --green: var(--cinema-success); --hot: var(--cinema-accent);
}
:root[data-world=cinema] body { background: radial-gradient(ellipse at 70% 0,#1a2845 0,transparent 700px),var(--cinema-canvas); }
:root[data-world=cinema] body .app-header { background: var(--cinema-canvas); border-bottom-color: #30394c; }
:root[data-world=cinema] body .brand-block h1 { color: var(--cinema-text); }
:root[data-world=cinema] body .brand-block .eyebrow { color: var(--cinema-muted); }
:root[data-world=cinema] body .language-switch a.active { color: var(--cinema-text); }
:root[data-world=cinema] body nav.main-nav > a.active { color: var(--cinema-primary); border-color: var(--cinema-primary); }
:root[data-world=cinema] .world-picker summary { border-color: var(--cinema-border); }
:root[data-world=cinema] :is(a,button,input,select,summary,textarea):focus-visible { outline: 3px solid var(--cinema-focus); outline-offset: 4px; }
:root[data-world=cinema] ::selection { color: var(--cinema-on-selection); background: var(--cinema-selection); }
:root[data-world=cinema] :is(.nav-more-links,.world-options) { background: var(--cinema-raised); border-color: var(--cinema-border); box-shadow: 0 20px 65px #0009; }
:root[data-world=cinema] .world-hero { grid-template-columns: 1fr 1.25fr; border: 1px solid #344059; border-radius: 18px; background: radial-gradient(ellipse at 100% 0,#253657 0,transparent 65%),var(--cinema-surface); box-shadow: inset 0 1px 0 #7187b333,0 18px 45px -24px #000b; }
:root[data-world=cinema] .world-hero-copy { padding: 42px; }
:root[data-world=cinema] .world-kicker { color: var(--cinema-accent); letter-spacing: .12em; }
:root[data-world=cinema] .world-hero h2 { font-weight: 750; font-size: clamp(2.7rem,4vw,4rem); letter-spacing: -.045em; line-height: 1.15; }
:root[data-world=cinema] .world-hero h2 em { color: var(--cinema-text); }
:root[data-world=cinema] .world-intro { color: var(--cinema-muted); }
:root[data-world=cinema] .world-actions a.world-primary { background: var(--cinema-primary); color: var(--cinema-on-primary); border: 1px solid #b9cdff; border-radius: 7px; box-shadow: inset 0 1px 0 #e1ebff99,0 3px 8px #0003; }
:root[data-world=cinema] .world-actions a.world-primary:hover { background: var(--cinema-primary-hover); }
:root[data-world=cinema] .world-colophon { color: var(--cinema-muted); border-color: #3f4b65; }
:root[data-world=cinema] .world-feature { padding: 26px; }
:root[data-world=cinema] .world-feature-art { transform: none; border: 1px solid #697b9d; border-radius: 10px; padding: 6px; background: #0b0f19; box-shadow: inset 0 1px 0 #c4d5f533,0 12px 30px -10px #000a; }
:root[data-world=cinema] .world-feature-art img { aspect-ratio: 460/215; border-radius: 5px; }
:root[data-world=cinema] .world-feature-art > span { padding: 15px 12px 10px; color: var(--cinema-text); background: #0b0f19; font-weight: 600; }
:root[data-world=cinema] .world-feature-caption { color: var(--cinema-muted); padding-top: 20px; }
:root[data-world=cinema] .world-feature-caption > span { color: var(--cinema-accent); }
:root[data-world=cinema] .world-routes { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
:root[data-world=cinema] .world-route-image { border: 1px solid #495771; padding: 5px; background: #111722; border-radius: 10px; box-shadow: inset 0 1px 0 #b6caff22,0 5px 14px #0006; }
:root[data-world=cinema] .world-route-image img { border-radius: 5px; }
:root[data-world=cinema] .world-route-image span { background: #0b0f19; color: var(--cinema-text); border: 1px solid #9bb6df66; border-radius: 5px; }
:root[data-world=cinema] .world-route:hover .world-route-image { border-color: var(--cinema-primary); }
/* Rankings: exact source champions sit inside one wide, quiet screening frame. */
:root[data-world=cinema] .rank-hero { grid-template-columns: 1fr; border: 1px solid #344059; background: linear-gradient(120deg,#17243a,var(--cinema-surface) 75%); box-shadow: inset 0 1px 0 #9fb7e522,0 20px 50px -30px #000b; }
:root[data-world=cinema] .rank-intro { display: grid; grid-template-columns: 1.4fr 1fr; gap: 0 36px; padding: 32px 36px 22px; align-items: center; }
:root[data-world=cinema] .rank-intro::after { display: none; }
:root[data-world=cinema] .rank-intro .eyebrow { grid-column: 1/-1; color: var(--cinema-accent); opacity: 1; }
:root[data-world=cinema] .rank-hero h2 { grid-row: span 2; font-size: clamp(2rem,3.1vw,3.1rem); font-weight: 740; line-height: 1.18; }
:root[data-world=cinema] .rank-intro > p:not(.eyebrow) { color: var(--cinema-muted); }
:root[data-world=cinema] .rank-stats { margin-top: 12px; color: var(--cinema-muted); }
:root[data-world=cinema] .rank-stats strong { color: var(--cinema-text); font-weight: 650; }
:root[data-world=cinema] .rank-hero > div:nth-child(2) { padding: 0 28px 28px; }
:root[data-world=cinema] .rank-hero > div:nth-child(2) > p { color: var(--cinema-muted); }
:root[data-world=cinema] .rank-stories { gap: 16px; }
:root[data-world=cinema] .rank-story, :root[data-world=cinema] .rank-story:first-child { padding: 5px; border: 1px solid #53617b; background: #0e141f; box-shadow: inset 0 1px 0 #a6bfff22,0 6px 15px #0005; border-radius: 10px; }
:root[data-world=cinema] .rank-story .rank-story-image, :root[data-world=cinema] .rank-story:first-child .rank-story-image, :root[data-world=cinema] .rank-story:not(:first-child) .rank-story-image { height: auto; flex-basis: auto; aspect-ratio: 460/215; border-radius: 6px; overflow: hidden; }
:root[data-world=cinema] .rank-story-image span { background: #162133; color: #e7eeff; border: 1px solid #90a6cb; box-shadow: 0 2px 5px #0005; font-size: .9rem; }
:root[data-world=cinema] .rank-story-copy { padding: 14px 12px 12px; }
:root[data-world=cinema] .rank-story-copy h3 { font-size: 1.05rem; }
:root[data-world=cinema] .rank-story-copy p { padding-top: 10px; border-top: 1px solid #30394c; margin-top: 12px; }
:root[data-world=cinema] .rank-hero .rank-story:hover { border-color: var(--cinema-primary); }
/* Matte cases: decorative edges are subtle; controls retain the stronger role border. */
:root[data-world=cinema] :is(.rank-card,.game-card,.studio-card,.trail-ticket) {
  --frame-edge: #3b4760; --frame-light: #677790;
  background: linear-gradient(145deg,#1b2230,#131721 60%) padding-box,
    linear-gradient(145deg,#677790,#30394c 40%,#202a3d 75%,#52617c) border-box;
  border: 1px solid transparent; padding: 6px; border-radius: 12px;
  box-shadow: inset 0 1px 0 #d0dfff0d,0 2px 4px #0007,0 14px 25px -15px #000b;
}
:root[data-world=cinema] :is(.rank-card,.game-card,.studio-card,.trail-ticket):hover,
:root[data-world=cinema] :is(.rank-card,.game-card,.studio-card,.trail-ticket):focus-within { border-color: #8faeff; box-shadow: inset 0 1px 0 #d0dfff22,0 2px 4px #0007,0 18px 30px -16px #000c; }
:root[data-world=cinema] :is(.rank-cover,.trail-ticket-art,.game-card > .cover,.studio-card > .cover) { border-radius: 7px; background: #0b0f19; box-shadow: 0 0 0 1px #a2bfff18; }
:root[data-world=cinema] .rank-card .rank-position { background: #192638; color: #e7eeff; border-color: #98b0d4; }
:root[data-world=cinema] .rank-podium-grid .rank-card:first-child .rank-position { color: #24170c; background: #f3c895; border-color: #ffe1bc; }
:root[data-world=cinema] .rank-body h3 { font-size: 1.08rem; font-weight: 680; }
:root[data-world=cinema] .rankings :is(.rank-maker,.rank-meta,.rank-description,.rank-source-date,.rank-note-source,.rank-local-note,.rank-compare-note,.rank-slice,.rank-panel-note,.rank-quick > span) { color: var(--cinema-muted); }
:root[data-world=cinema] .rankings :is(.rank-controls label,.rank-advanced,.rank-facts summary,.rank-view-bar,.rank-thread-note,.rank-method p,.rank-source-disclosure > summary) { color: var(--cinema-muted); }
:root[data-world=cinema] .rankings :is(.rank-controls,.rank-source-card,.rank-method,.rank-matrix,.rank-facts-content) { background: var(--cinema-surface); border-color: #30394c; }
:root[data-world=cinema] .rankings :is(.rank-tabs a,.rank-view-bar button,.rank-quick button,.rank-threads button,.rank-pagination button,.feedback-bar button) { background: var(--cinema-raised); color: var(--cinema-text); border-color: var(--cinema-border); box-shadow: none; }
:root[data-world=cinema] .rankings :is(.rank-tabs a[aria-current],button[aria-pressed=true],.feedback-bar button.active,.rank-pagination button:first-child) { color: var(--cinema-on-primary); background: var(--cinema-primary); border-color: var(--cinema-primary); }
:root[data-world=cinema] .rank-tabs a span { background: #0b0f19; color: #e7eeff; }
:root[data-world=cinema] .rank-controls :is(input,select), :root[data-world=cinema] #rank-reset { border-color: var(--cinema-border); background: var(--cinema-raised); color: var(--cinema-text); }
:root[data-world=cinema] :is(#rank-surprise,#rank-dialog-next) { color: var(--cinema-on-accent); background: var(--cinema-accent); border-color: var(--cinema-accent); }
:root[data-world=cinema] .rank-citations a { color: var(--cinema-link); background: var(--cinema-raised); border: 1px solid #3e4c64; }
:root[data-world=cinema] .rankings :is(a,.rank-facts dd,.rank-method h2,.rank-matrix strong) { color: var(--cinema-link); }
:root[data-world=cinema] .rankings :is(.rank-body h3 a,.rank-source-card h3,.rank-story-copy h3,.rank-panel-heading h2) { color: var(--cinema-text); }
:root[data-world=cinema] .rank-panel-heading .eyebrow { color: var(--cinema-muted); }
:root[data-world=cinema] .rank-matrix > div { background: var(--cinema-raised); color: var(--cinema-link); border: 1px solid #3e4c64; }
:root[data-world=cinema] .rank-art-fallback { color: var(--cinema-text); background: #202b41; }
:root[data-world=cinema] .rank-art-fallback :is(strong,small) { color: inherit; }
/* Detail dialog is part of the same collection, including its source ledger. */
:root[data-world=cinema] #rank-dialog { background: var(--cinema-surface); color: var(--cinema-text); border-color: var(--cinema-border); }
:root[data-world=cinema] #rank-dialog::backdrop { background: #030611cc; }
:root[data-world=cinema] :is(.rank-dialog-top,.rank-dossier-side,.rank-dialog-card .rank-description) { background: var(--cinema-raised); color: var(--cinema-muted); border-color: #3e4c64; }
:root[data-world=cinema] .rank-dialog-card h2 { color: var(--cinema-text); }
:root[data-world=cinema] #rank-dialog :is(.rank-facts-content,.rank-facts-content dt,.rank-facts-content dd,summary,.rank-media-source,.rank-edition-name) { color: var(--cinema-muted); }
:root[data-world=cinema] :is(.rank-dossier-history p,.rank-dossier-history small) { color: var(--cinema-muted); }
:root[data-world=cinema] :is(.rank-dossier-history a,.rank-dossier-history strong) { color: var(--cinema-link); border-color: #3e4c64; }
:root[data-world=cinema] :is(#rank-dialog-close,.rank-dialog-card .feedback-bar button) { color: var(--cinema-text); background: var(--cinema-raised); border-color: var(--cinema-border); }
:root[data-world=cinema] :is(.rank-dialog-card .rank-actions a,.rank-dialog-card .feedback-bar button.active) { background: var(--cinema-primary); color: var(--cinema-on-primary); }
/* Trail colours still identify routes, with readable labels on dark surfaces. */
:root[data-world=cinema] .play-trails { --accent: var(--cinema-primary); }
:root[data-world=cinema] .play-trails [class*=tone-] { --accent: var(--cinema-primary); --tint: var(--cinema-raised); --edge: #495671; }
:root[data-world=cinema] .trail-hero { padding: 28px 0 40px; background: none; gap: 44px; }
:root[data-world=cinema] .trail-hero h2 { font-size: clamp(2.4rem,4vw,4rem); font-weight: 730; }
:root[data-world=cinema] .trail-hero .eyebrow { color: var(--cinema-accent); }
:root[data-world=cinema] .trail-hero-art { transform: none; background: #151d2c; border: 1px solid #5c6b86; box-shadow: inset 0 1px 0 #c0d4ff22,0 18px 30px -20px #000b; padding: 9px; border-radius: 12px; }
:root[data-world=cinema] .trail-hero-art img { border-radius: 5px; }
:root[data-world=cinema] .trail-hero-art > span { background: var(--cinema-primary); color: var(--cinema-on-primary); border-color: #172234; }
:root[data-world=cinema] .trail-hero-label { background: var(--cinema-raised); color: var(--cinema-muted); border-color: var(--cinema-border); }
:root[data-world=cinema] :is(.trail-hero p:not(.eyebrow),.trail-ticket p,.trail-stop-copy > p,.trail-panel-head p:not(.eyebrow),.trail-progress-text,.trail-stop-facts) { color: var(--cinema-muted); }
:root[data-world=cinema] :is(.trail-section-head > a,#trail-share,.trail-next-link,.trail-map a,.trail-ranks a) { color: var(--cinema-link); background: var(--cinema-raised); border-color: #495671; }
:root[data-world=cinema] :is(.trail-stop,.trail-passport,.trail-panel,.trail-journey,.trail-next) { color: var(--cinema-text); background: var(--cinema-surface); border-color: #3e4c64; }
:root[data-world=cinema] .trail-ticket[aria-current=true] { outline-color: var(--cinema-focus); }
:root[data-world=cinema] .trail-stop h3 a { color: var(--cinema-text); }
:root[data-world=cinema] .trail-map b { background: var(--cinema-raised); color: var(--cinema-primary); }
:root[data-world=cinema] .trail-map a.is-played b { background: var(--cinema-primary); color: var(--cinema-on-primary); }
:root[data-world=cinema] :is(.trail-note-source,.trail-method a) { color: var(--cinema-link); }
:root[data-world=cinema] .trail-ticket-art > span { border-color: var(--cinema-surface); }
/* Listening uses one restrained control surface, with a lit play key. */
:root[data-world=cinema] .music-invitation { border: 1px solid #344661; background: linear-gradient(110deg,#19283f,#141b29); box-shadow: inset 0 1px 0 #c3d7ff13; }
:root[data-world=cinema] .music-orbit, :root[data-world=cinema] .music-disc { color: #afc9ff; background: repeating-radial-gradient(circle,#172235 0 3px,#263650 4px 5px); border: 1px solid #647b9b; box-shadow: 0 4px 8px #0005; }
:root[data-world=cinema] button.music-listen { background: #101723; color: var(--cinema-text); border-color: #495671; box-shadow: inset 0 1px 0 #a6bfff0d; border-radius: 8px; }
:root[data-world=cinema] button.music-listen:hover, :root[data-world=cinema] button.music-listen.is-current { background: #1b2940; border-color: var(--cinema-primary); }
:root[data-world=cinema] :is(.music-image,.music-duration,.music-disclosure,.music-entry-copy small,.music-missing) { color: var(--cinema-muted); opacity: 1; }
:root[data-world=cinema] .music-signal i { background: var(--cinema-primary); }
:root[data-world=cinema] .music-signal i:nth-child(2n) { background: var(--cinema-accent); }
:root[data-world=cinema] .music-player { background: #141c2b; border: 1px solid #596d8a; box-shadow: inset 0 1px 0 #bdd5ff22,0 15px 55px #000c; border-radius: 14px; }
:root[data-world=cinema] .music-player :is(button,.music-detail-panel) { background: #202c42; color: var(--cinema-text); border-color: #647896; }
:root[data-world=cinema] .music-player button.music-primary { background: var(--cinema-primary); color: var(--cinema-on-primary); border: 1px solid #c6d8ff; box-shadow: inset 0 1px 0 #fff6; }
:root[data-world=cinema] .music-player :is(.music-now a,.music-volume,.music-disclosure,#music-state,#music-details summary) { color: var(--cinema-muted); }
:root[data-world=cinema] .music-detail-panel a { color: var(--cinema-link); }
:root[data-world=cinema] #music-share-link { color: var(--cinema-text); background: var(--cinema-surface); border: 1px solid var(--cinema-border); border-radius: 5px; }
/* Secondary templates retain their information hierarchy in the dark system. */
:root[data-world=cinema] :is(.hero-panel,.source-box,.stat-card,.next-event-strip,.studio-brief,.catalog-ranking,.ranking-feature,.rank-feature,.source-card,.taste-panel,.calendar-day,.event-card) { background: var(--cinema-surface); color: var(--cinema-text); border-color: #3e4c64; }
:root[data-world=cinema] :is(.studio-hero,.dashboard-hero) { background-color: #172338; color: var(--cinema-text); }
:root[data-world=cinema] :is(.hero-copy .eyebrow,.studio-hero .eyebrow) { color: var(--cinema-primary); }
:root[data-world=cinema] main :is(input,select,textarea) { color: var(--cinema-text); background: var(--cinema-raised); border-color: var(--cinema-border); }
:root[data-world=cinema] :is(.text-link,.feedback-bar button,.studio-tools button) { background: var(--cinema-raised); color: var(--cinema-text); border-color: var(--cinema-border); }
:root[data-world=cinema] .feedback-bar button.active { background: var(--cinema-primary); color: var(--cinema-on-primary); }
:root[data-world=cinema] .greats-discovery { background: linear-gradient(115deg,#1b263b,#131721); border-color: #3e4c64; }
:root[data-world=cinema] :is(.badge,.sig,.lang,.taste-chip.muted,.discount-offer.invalid,.discount-pill.invalid) { color: var(--cinema-muted); background: var(--cinema-raised); border-color: #3e4c64; }
:root[data-world=cinema] :is(.badge.deal,.sig-soft) { background: var(--cinema-warning-bg); color: var(--cinema-warning); border-color: #69523a; }
:root[data-world=cinema] :is(.badge.store,.lang.pref) { background: var(--cinema-info-bg); color: var(--cinema-info); border-color: #385675; }
:root[data-world=cinema] :is(.sig.itad,.catalog-new) { background: var(--cinema-success-bg); color: var(--cinema-success); border-color: #3d6852; }
:root[data-world=cinema] .reasons { color: var(--cinema-muted); }
:root[data-world=cinema] .meter-track { background: #344056; }
:root[data-world=cinema] :is(.filters,.cal-today-banner) { background: var(--cinema-surface); border-color: #3e4c64; }
:root[data-world=cinema] .studio-hero { background: radial-gradient(ellipse at 90% 0,#2e4263,transparent 65%),var(--cinema-surface); border-color: #3e4c64; }
:root[data-world=cinema] :is(.fav-score,.studio-brief button) { background: var(--cinema-primary); color: var(--cinema-on-primary); }
:root[data-world=cinema] :is(.cal-today-pill,.cal-next-flag) { background: var(--cinema-accent); color: var(--cinema-on-accent); }
:root[data-world=cinema] .coupon-drawer { background: var(--cinema-surface); }
:root[data-world=cinema] footer { background: #0b0f19; }
@media (min-width:1100px) {
  :root[data-world=cinema] .rankings[data-layout=grid] .rank-grid:not(.rank-podium-grid) { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px; }
}
@media (max-width:1000px) {
  :root[data-world=cinema] .world-hero { grid-template-columns: 1fr 1fr; }
  :root[data-world=cinema] .world-hero-copy { padding: 28px; }
  :root[data-world=cinema] .world-hero h2 { font-size: 2.6rem; }
  :root[data-world=cinema] .rank-intro { gap: 0 20px; padding: 25px; }
}
@media (max-width:650px) {
  :root[data-world=cinema] .world-hero { grid-template-columns: 1fr; }
  :root[data-world=cinema] .world-hero-copy { padding: 26px 22px; }
  :root[data-world=cinema] .world-hero h2 { font-size: clamp(2rem,8.6vw,3.3rem); }
  :root[data-world=cinema] .world-feature { padding: 0 16px 20px; }
  :root[data-world=cinema] .world-feature-art img { aspect-ratio: 460/215; }
  :root[data-world=cinema] .world-routes { grid-template-columns: 1fr; }
  :root[data-world=cinema] .rank-intro { display: flex; padding: 26px 22px 16px; }
  :root[data-world=cinema] .rank-hero h2 { font-size: clamp(1.8rem,8vw,2.8rem); }
  :root[data-world=cinema] .rank-hero > div:nth-child(2) { padding: 0 14px 16px; }
  :root[data-world=cinema] .rank-story, :root[data-world=cinema] .rank-story:first-child { grid-template-columns: 105px 1fr; }
  :root[data-world=cinema] .rank-story .rank-story-image, :root[data-world=cinema] .rank-story:first-child .rank-story-image, :root[data-world=cinema] .rank-story:not(:first-child) .rank-story-image { height: 100%; min-height: 108px; aspect-ratio: auto; }
  :root[data-world=cinema] .rank-story-copy { padding: 9px; }
  :root[data-world=cinema] .rank-story-copy h3 { font-size: .85rem; }
  :root[data-world=cinema] .rank-story-copy p { padding-top: 6px; margin-top: 7px; }
  :root[data-world=cinema] .trail-hero { padding: 16px 0 28px; gap: 24px; }
  :root[data-world=cinema] .trail-hero h2 { font-size: 2.4rem; }
}
