/* Shared presentation for the two game entry points; no projection selectors. */
.platform-page .shell { max-width:1280px; }
.platform-page main { padding:54px 0 32px; }
.hub-intro { max-width:780px; margin:0 0 38px; }
.hub-intro h1 { max-width:none; font-size:clamp(36px,5vw,64px); }
.hub-lead { color:var(--muted); font-size:18px; max-width:640px; }
.game-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px; }
.game-card { overflow:hidden; border:1px solid var(--line); border-radius:8px; background:var(--panel); text-decoration:none; }
.game-card:hover { border-color:var(--accent); }
.game-card-image { position:relative; aspect-ratio:2/1; background:#0c1115; overflow:hidden; }
.game-card-image img { width:100%; height:100%; object-fit:cover; }
.game-card-badge { position:absolute; bottom:16px; left:22px; border:1px solid #658174; border-radius:3px; background:#14231fec; color:#c0e3ce; padding:4px 9px; font-size:11px; letter-spacing:1.4px; }
.game-card-copy { padding:26px; }
.game-card h2 { font-size:32px; line-height:1.2; margin:0 0 12px; }
.game-card p { color:var(--muted); font-size:16px; margin:0 0 18px; }
.game-card-meta { font-size:14px; color:var(--muted); display:block; }
.card-action { display:flex; justify-content:space-between; color:var(--accent); font-weight:650; border-top:1px solid var(--line); margin-top:24px; padding-top:18px; }
.platform-note { color:var(--muted); font-size:14px; margin:28px 0 0; }
.platform-footer { display:flex; justify-content:space-between; flex-wrap:wrap; gap:18px; padding:22px 0; border-top:1px solid var(--line); font-size:14px; color:var(--muted); }
.cast-intro { display:flex; align-items:end; justify-content:space-between; gap:28px; margin-bottom:28px; }
.cast-intro h1 { margin:0; font-size:clamp(38px,5vw,62px); }
.cast-intro h1 span { color:var(--accent); }
.cast-intro>p { max-width:330px; font-size:16px; color:var(--muted); margin-bottom:6px; }
.cast-layout { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); align-items:start; gap:28px; }
.cast-feature,.cast-board { min-width:0; background:var(--panel); border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.cast-feature>img { width:100%; height:auto; aspect-ratio:16/9; object-fit:contain; background:#0c1115; display:block; }
.cast-feature-copy { padding:26px; }
.cast-feature h2 { font-size:28px; margin:0 0 8px; line-height:1.25; overflow-wrap:anywhere; }
#cast-film-details { color:var(--muted); font-size:14px; margin:0 0 24px; }
.cast-rule { font-size:15px; border-top:1px solid var(--line); padding-top:20px; }
.cast-feature h3 { font-size:16px; margin:22px 0 10px; }
.cast-how summary { cursor:pointer; padding:10px 0; color:var(--accent); font-size:15px; }
.cast-points { margin:0 0 16px; }
.cast-points>div { display:flex; justify-content:space-between; border-bottom:1px solid var(--line); padding:7px 0; font-size:14px; }
.cast-points dd { margin:0; color:var(--accent); font-weight:650; }
.cast-small { color:var(--muted); font-size:14px; line-height:1.6; }
.cast-board { padding:28px; }
.cast-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.cast-stats>div { min-width:0; border-bottom:1px solid var(--line); padding-bottom:14px; }
.cast-stats span { display:block; color:var(--muted); font-size:13px; }
.cast-stats strong { display:block; font-size:30px; line-height:1.3; font-variant-numeric:tabular-nums; }
#cast-score { color:var(--accent); }
#cast-time-progress { width:100%; margin:16px 0 24px; height:5px; accent-color:var(--accent); }
.cast-ready { text-align:center; padding:24px 0; }
.cast-ready h2,#cast-result-heading { font-size:27px; line-height:1.25; margin:0 0 16px; }
.cast-ready>p:not(.eyebrow) { color:var(--muted); margin:0 auto 24px; max-width:360px; }
#cast-form label { display:block; margin:0 0 9px; font-size:16px; font-weight:600; }
#actor-answer { width:100%; padding:13px 14px; border:1px solid var(--control-border); border-radius:5px; background:#11181c; color:var(--ink); font-size:16px; }
.platform-page .autocomplete { position:relative; }
#cast-submit { width:100%; margin-top:4px; }
.cast-status { color:var(--accent); min-height:24px; font-size:15px; }
.cast-found { list-style:none; padding:0; margin:18px 0 0; display:flex; flex-wrap:wrap; gap:8px; }
.cast-found li { padding:5px 10px; border:1px solid #466651; background:#20382b; border-radius:4px; font-size:14px; }
.cast-table-wrap { margin:20px 0; }
.cast-results-table { width:100%; border-collapse:collapse; font-size:14px; text-align:left; }
.cast-results-table th { color:var(--muted); font-weight:500; }
.cast-results-table th,.cast-results-table td { padding:10px 5px; border-bottom:1px solid var(--line); overflow-wrap:anywhere; }
.cast-results-table tr[data-found="true"] { color:#b6e4c4; }
.cast-results-table td:first-child { color:var(--muted); font-variant-numeric:tabular-nums; }
.cast-results-table td:last-child { white-space:nowrap; }
@media(max-width:760px) {
 .platform-page main { padding-top:30px; }
 .platform-page .masthead { gap:12px; flex-wrap:wrap; padding:14px 0; }
 .platform-page .masthead nav { order:3; flex-basis:100%; }
 .game-cards,.cast-layout { grid-template-columns:minmax(0,1fr); gap:20px; }
 .game-card-copy,.cast-feature-copy,.cast-board { padding:22px; }
 .cast-intro { display:block; }
 .cast-feature>img { max-height:140px; }
 #cast-film-details { margin-bottom:0; }
 .cast-stats strong { font-size:26px; }
 .cast-stats span { font-size:12px; }
 .cast-results-table { font-size:13px; }
 .cast-results-table th,.cast-results-table td { padding:9px 3px; }
 .cast-results-table th:nth-child(2) { width:37%; }
}

.cast-character { display:block; margin-top:4px; color:var(--muted); font-size:12px; overflow-wrap:anywhere; }
.cast-configuration { display:flex; flex-wrap:wrap; align-items:center; gap:24px; border:1px solid var(--line); border-radius:8px; padding:16px 20px; margin-bottom:24px; }
.cast-filter-choice { display:flex; align-items:center; gap:14px; font-weight:600; }
.cast-filter-choice select { min-height:44px; min-width:165px; padding:10px 12px; border:1px solid var(--control-border); border-radius:5px; background:#11181c; color:var(--ink); font:inherit; font-size:15px; }
.cast-filter-choice select:disabled { opacity:.65; }
.cast-configuration p { margin:0; }
#cast-availability { margin-top:4px; color:var(--accent); }
@media(max-width:760px) {
 .cast-configuration { align-items:stretch; flex-direction:column; gap:12px; padding:16px; }
 .cast-filter-choice { justify-content:space-between; flex-wrap:wrap; }
 .cast-filter-choice select { flex:1; max-width:240px; }
}

.cast-filters { display:flex; flex-wrap:wrap; gap:14px 24px; max-width:100%; }
.cast-configuration>div:last-child { flex:1; min-width:min(100%,280px); }
@media(max-width:760px) { .cast-filters { flex-direction:column; } }

/* Configuration is optional; its summary and availability remain visible. */
.cast-configuration { display:block; padding:0; margin-bottom:8px; }
.cast-configuration>summary { min-height:48px; padding:12px 16px; cursor:pointer; font-size:14px; font-weight:600; }
.cast-configuration>summary::marker { color:var(--accent); }
#cast-filter-summary { display:inline-block; margin-left:12px; color:var(--accent); font-weight:400; }
.cast-settings-content { display:flex; flex-wrap:wrap; gap:20px; padding:16px; border-top:1px solid var(--line); }
.cast-configuration>div:last-child { min-width:0; }
.cast-settings-content>div:last-child { flex:1; min-width:min(100%,260px); }
#cast-availability { margin:0 0 20px; font-size:14px; }
#cast-active-filters { margin:0 0 12px; }
#main[data-state="running"] #cast-settings,#main[data-state="running"] #cast-availability { display:none; }
.cast-filter-choice select { font-size:16px; }
.cast-stats span { font-size:14px; }
.cast-intro>p { line-height:1.5; }
@media(max-width:760px) {
 .platform-page main { padding-top:20px; }
 .cast-intro { margin-bottom:18px; }
 .cast-intro .eyebrow { display:none; }
 .cast-intro h1 { font-size:36px; }
 .cast-intro>p { margin:8px 0 0; font-size:15px; }
 .cast-settings-content { flex-direction:column; gap:14px; }
 .cast-feature>img { max-height:64px; object-fit:cover; }
 .cast-feature-copy { padding:14px 16px; }
 .cast-feature-copy>.eyebrow { display:none; }
 .cast-feature h2 { font-size:24px; }
 .cast-board { padding:18px; }
 .cast-ready { padding:4px 0; }
 .cast-ready>.eyebrow { display:none; }
 .cast-ready h2 { font-size:24px; margin-bottom:10px; }
 .cast-ready>p:not(.eyebrow) { font-size:15px; line-height:1.5; margin-bottom:16px; }
 #cast-game[data-state="ready"] .cast-stats,#cast-game[data-state="ready"] #cast-time-progress { display:none; }
 #main[data-state="running"] .cast-intro>p,#main[data-state="running"] .cast-how { display:none; }
 #main[data-state="running"] .cast-feature>img { display:none; }
 #main[data-state="running"] .cast-intro { margin-bottom:12px; }
 #main[data-state="running"] .cast-layout { gap:12px; }
 .cast-stats span { font-size:14px; }
}
