/* =========================================================
   /oscars/forecasts/ page styles. Moved verbatim out of the page's inline
   <style> block on 2026-09-15 (Round 3 of the forecast sources overhaul).
   The Round's own styles live in forecast-round.css.
   ========================================================= */
.osc-fc-page { max-width: var(--max); margin: 0 auto; padding: 44px var(--pad) 76px; }

/* ---- Header: name + minimal lede only. Stage/scope and record moved out,
   see below, so a visitor reaches the actual contenders sooner. ---- */
.osc-fc-header { margin-bottom: 18px; }
.osc-fc-sub { font-family: var(--fb); font-size: 15px; line-height: 1.6; color: var(--sub); margin: 0; max-width: 620px; }

/* ---- Stage / scope: kept high on purpose. This is the caveat a visitor
   needs before trusting any number below, so it stays right after the
   header rather than moving down with the rest of the record. ---- */
.osc-fc-scope { display: flex; flex-direction: column; gap: 10px; margin-bottom: 22px; }
/* In the header, under the lede (the voices follow it, or sit to the right from 1200px). */
.osc-fc-header .osc-fc-scope { margin: var(--s-3) 0 0; }
/* Room held for what arrives with the data (CLS, 2026-10-26): the one-sentence sub (2-5 lines by width),
   the scope banner and the category tabs, and a screen-tall loading state so the record and footer below
   start off screen. Heights are the loaded page's. */
.osc-fc-sub { min-height: 48px; }
@media (max-width: 599px) { .osc-fc-sub { min-height: 72px; } }
@media (max-width: 419px) { .osc-fc-sub { min-height: 96px; } }
@media (max-width: 339px) { .osc-fc-sub { min-height: 120px; } }
.osc-fc-scope.is-pending, .osc-tabs.is-pending { visibility: hidden; }
.osc-fc-scope.is-pending { min-height: 41px; }
@media (max-width: 599px) { .osc-fc-scope.is-pending { min-height: 67px; } }
.osc-tabs.is-pending { min-height: 45px; }
#osc-fc-loading.is-loading { min-height: 100vh; }

/* Stage pill + muted update stamp on one row; the "what's next" line hides
   behind the pill's (i). Moved here from oscars-shared.js's injected styles
   2026-09-22 -- only this page renders the banner. */
.osc-stage-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.osc-stage-banner {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--fb); font-size: var(--t-meta); font-weight: 600; letter-spacing: 0.03em;
  padding: 6px 12px; border-radius: var(--r-md);
}
.osc-stage-preseason  { background: rgba(251,191,36,0.12); color: #FBBF24; border: 1px solid rgba(251,191,36,0.25); }
.osc-stage-nomination { background: rgba(251,191,36,0.15); color: #FBBF24; }
.osc-stage-winner     { background: rgba(255,119,4,0.18);  color: var(--orange); }
/* A 44px target around a 13px glyph; the negative margins hand the extra back so the pill keeps its size. */
.osc-stage-info {
  display: inline-grid; place-items: center; flex-shrink: 0;
  width: 44px; height: 44px; margin: -15.5px -17.5px -15.5px -11.5px; padding: 0; border: 0; border-radius: var(--r-sm);
  background: none; color: inherit; opacity: 0.75; cursor: pointer;
}
.osc-stage-info:hover, .osc-stage-info[aria-expanded="true"] { opacity: 1; }
.osc-stage-info:focus-visible { outline: 2px solid currentColor; outline-offset: -10px; }
.osc-stage-next { font-family: var(--fb); font-size: var(--t-meta); line-height: 1.5; color: var(--sub); margin: 0; }

/* ---- The record: methodology and season-record stats, in support of the
   forecast above rather than ahead of it. ---- */
.osc-fc-record { margin-top: 34px; }   /* its rule is .fr-trust's border-top */
.osc-fc-record .fr-trust { margin-bottom: var(--s-3); }   /* the signal note follows it */

/* margin-top clears the 44px targets of this summary and the .fr-trust link above it, so neither overlaps the other. */
.osc-fc-caveat { font-family: var(--fb); font-size: 12px; color: var(--sub); margin-top: 26px; }
.osc-fc-caveat summary { cursor: pointer; color: var(--muted); font-family: var(--fb); font-weight: 500; font-size: 11px; list-style: none; padding-block: 13px; margin-block: -13px; }
.osc-fc-caveat summary::-webkit-details-marker { display: none; }
.osc-fc-caveat summary::before { content: "+ "; color: var(--orange); }
.osc-fc-caveat[open] summary::before { content: "\2212 "; }
.osc-fc-caveat-body { padding-top: 8px; line-height: 1.6; max-width: 620px; }
.osc-fc-caveat-body strong { color: var(--text); }


/* ---- Metrics strip ---- */

/* ---- Chart-led hero: the claim-led ranked-bars chart replaces the old
   four-tile race-snapshot summary above the fold. TRRChart.rankedBars
   (assets/js/chart-types.js), framed per CHART_STYLE.md. ---- */
.osc-fc-chart-wrap { margin-bottom: 26px; }

/* The chart and the model's limits sit side by side from 1000px up (2026-11-03): the bars fill the left
   quarter of their frame and the right was empty, and the limits strip used to be its own block ahead of the
   tabs. Below 1000px the strip follows the chart, so it still arrives with the numbers. */
.osc-fc-top { margin-bottom: 26px; }
.osc-fc-top .osc-fc-chart-wrap { margin-bottom: 0; }
.osc-fc-top .fc-limits { margin: var(--s-5) 0 0; }
#osc-fc-shelf > .fc-limits { margin: 0 0 var(--s-4); }
@media (min-width: 1000px) {
  .osc-fc-top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 340px); gap: var(--s-6); align-items: start; }
  .osc-fc-top .fc-limits { margin: 0; }
}

/* ---- Top-10 ranked list ---- */
.osc-rank-list { display: flex; flex-direction: column; gap: 9px; margin-bottom: 30px; }
.osc-rank-row{
  display: grid;
  grid-template-columns: 28px 52px minmax(0,1fr) 110px;
  gap: 14px; align-items: center;
  background: var(--card); border: 1px solid var(--border); border-radius: var(--r-md);
  padding: var(--s-3) var(--s-4); cursor: pointer;
  transition: border-color 0.12s, background 0.12s;
}
.osc-rank-row:hover { border-color: var(--orange); background: var(--surface); transform: translateX(2px); }
.osc-rank-row:focus-visible { outline: none; box-shadow: var(--ring); border-color: var(--orange); }
.osc-rank-row { transition: border-color 0.12s, background 0.12s, transform 0.18s ease; }
.osc-rank-row.is-below .osc-rank-bar { background: color-mix(in srgb, var(--orange) 55%, var(--border)); }
.osc-rank-row.is-below .osc-rank-prob { color: color-mix(in srgb, var(--orange) 70%, var(--sub)); }
.osc-rank-row.osc-rank-leader { border-left: 3px solid var(--orange); padding-left: 14px; }
.osc-rank-num { font-family: var(--fm); font-weight: 700; font-size: 14px; color: var(--muted); text-align: center; white-space: nowrap; }
.osc-rank-num-tied { font-size: 11px; }
.osc-rank-leader .osc-rank-num { color: var(--orange); }
.osc-rank-thumb { aspect-ratio: 2/3; border-radius: var(--r-sm); overflow: hidden; background: var(--surface); box-shadow: var(--shadow-1); }
.osc-rank-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.osc-rank-info { min-width: 0; }
.osc-rank-name { font-family: var(--fb); font-weight: 600; font-size: 14.5px; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-bottom: 2px; }
.osc-rank-film { font-family: var(--fm); font-size: 11px; color: var(--muted); margin-bottom: 7px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.osc-rank-evidence { display: flex; align-items: center; gap: 6px 12px; flex-wrap: wrap; }
.osc-rank-sigs { display: flex; gap: 5px; flex-wrap: wrap; }
.osc-rank-sigs:empty { display: none; }
.osc-rank-sig-pill {
  font-family: var(--fm); font-size: 11px; padding: 2px 7px; border-radius: var(--r-sm);
  display: inline-flex; align-items: center; gap: 3px;
}
.osc-rank-sig-up { background: rgba(34,197,94,0.12); color: var(--live); }
.osc-rank-sig-down { background: rgba(239,68,68,0.12); color: var(--danger); }
.osc-rank-right { text-align: right; }
.osc-rank-prob-label { font-family: var(--fb); font-size: 11px; text-transform: uppercase; letter-spacing: 0.09em; color: var(--muted); margin-bottom: 3px; }
.osc-rank-prob { font-family: var(--fd); font-weight: 700; font-size: 22px; line-height: 1; color: var(--orange); white-space: nowrap; }
.osc-rank-bar-track { height: 4px; background: var(--border); border-radius: var(--r-sm); overflow: hidden; margin: 5px 0 4px; }
.osc-rank-bar { height: 100%; background: var(--orange); border-radius: var(--r-sm); transform-origin: left center; }
.osc-rank-tier { font-family: var(--fb); font-size: 11px; color: var(--muted); }

/* ---- "No reviews yet" tag (pipeline `review_status`; oscarsReviewTagHtml in oscars-shared.js) ----
   Neutral on purpose: orange is Grant's voice and blue the model's own numbers, so the tag borrows neither.
   The number stays; the bar goes hatched and the figure dims, so a scan tells reviewed films from the rest. */
.osc-review-tag {
  display: inline-flex; align-items: center; align-self: center; max-width: 100%;
  font-family: var(--fm); font-size: var(--t-label); letter-spacing: 0.04em; text-transform: uppercase; line-height: 1.3;
  color: var(--muted); border: 1px solid var(--border-strong, var(--border)); border-radius: var(--r-sm); padding: 1px var(--s-2);
  white-space: nowrap; cursor: help;
}
.osc-rank-row.is-unreviewed .osc-rank-prob { color: var(--muted); }
.osc-rank-row.is-unreviewed .osc-rank-bar,
.osc-field-card.is-unreviewed .osc-field-bar {
  background: repeating-linear-gradient(135deg, var(--muted) 0 3px, transparent 3px 6px);
}
/* ---- Festival-path label (`features.festival_path`; oscarsFestivalTagHtml in oscars-shared.js).
   One segmented chip: a star mark, then each festival as its own divided segment. Filled and quiet, so it reads as
   a credential beside the outlined review tag (a caveat), not a second caveat. Neutral: no orange, no blue. ---- */
.osc-festival-tag {
  display: inline-flex; align-items: stretch; align-self: center; max-width: 100%;
  font-family: var(--fm); font-size: var(--t-label); letter-spacing: 0.05em; text-transform: uppercase; line-height: 1.3;
  color: var(--sub, var(--muted)); background: color-mix(in srgb, var(--muted) 10%, transparent);
  border-radius: var(--r-sm); overflow: hidden; cursor: help;
}
.osc-festival-icon { align-self: center; flex-shrink: 0; margin: 0 var(--s-1) 0 var(--s-2); color: var(--muted); }
.osc-festival-name { padding: 2px var(--s-2); white-space: nowrap; }
.osc-festival-name + .osc-festival-name { border-left: 1px solid color-mix(in srgb, var(--muted) 28%, transparent); }
.osc-field-card .osc-review-tag { margin: 2px 0 4px; }
.osc-field-card.is-unreviewed .osc-field-prob { color: var(--muted); }
.osc-field-card.is-unreviewed .osc-field-poster img { filter: saturate(0.45); }

/* ---- "Input weighting": a toggle under each ranked row, and a section in the contender modal, opening the input-group bars (oscars/oscars-weighting.js) ---- */
.osc-weight { display: flex; flex-direction: column; margin-top: -5px; }
.osc-weight-btn {
  align-self: flex-end; display: inline-flex; align-items: center; gap: var(--s-2);
  background: none; border: 0; padding: 3px 6px; cursor: pointer;
  font-family: var(--fb); font-size: var(--t-meta); color: var(--muted);
}
.osc-weight-btn:hover { color: var(--text); }
.osc-weight-btn:focus-visible { outline: none; box-shadow: var(--ring); border-radius: var(--r-sm); }
.osc-weight-chev { width: 6px; height: 6px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translateY(-1px); transition: transform 0.15s; }
.osc-weight-btn[aria-expanded="true"] .osc-weight-chev { transform: rotate(-135deg) translateY(-1px); }
.osc-weight-panel { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-md); padding: var(--s-3) var(--s-4); margin-top: 2px; display: flex; flex-direction: column; gap: var(--s-2); }
.osc-weight-panel[hidden] { display: none; }
/* In the modal the section already has its rule and label, so the panel is flat, not a second box. */
.osc-m2-section .osc-weight-panel { background: none; border: 0; padding: 0; margin: 0; }
.osc-weight-h { margin: 0 0 4px; font-family: var(--fb); font-size: var(--t-meta); color: var(--muted); }
.osc-weight-d { display: grid; grid-template-columns: minmax(120px, 190px) minmax(0, 1fr) 44px; gap: var(--s-3); align-items: center; font-family: var(--fb); font-size: var(--t-ui); }
.osc-weight-l { color: var(--sub); }
.osc-weight-track { position: relative; height: 14px; }
.osc-weight-track::before { content: ""; position: absolute; left: 50%; top: -2px; bottom: -2px; width: 1px; background: var(--border); }
.osc-weight-fill { position: absolute; top: 2px; bottom: 2px; border-radius: var(--r-sm); }
.osc-weight-up { left: 50%; background: var(--live); }
.osc-weight-dn { right: 50%; background: var(--danger); }
.osc-weight-v { font-family: var(--fm); font-size: var(--t-meta); text-align: right; }
.osc-weight-v-up { color: var(--live); }
.osc-weight-v-dn { color: var(--danger); }
.osc-weight-note { margin: 4px 0 0; max-width: 68ch; font-family: var(--fb); font-size: var(--t-meta); line-height: 1.5; color: var(--muted); }
@media (max-width: 680px) {
  .osc-weight-d { grid-template-columns: minmax(0, 1fr) 44px; }
  .osc-weight-track { grid-column: 1 / -1; order: 3; }
}
@media (prefers-reduced-motion: reduce) { .osc-weight-chev { transition: none; } }

/* ---- Untracked field row: reads as "not a name", not an anonymous nominee ---- */
.osc-untracked-row {
  display: grid; grid-template-columns: 28px 52px minmax(0,1fr) 110px;
  gap: 14px; align-items: center;
  background: transparent; border: 1px dashed var(--border); border-radius: var(--r-md);
  padding: var(--s-3) var(--s-4); margin-top: 9px; cursor: default; opacity: 0.8;
}
.osc-untracked-thumb {
  aspect-ratio: 2/3; border-radius: var(--r-sm); border: 1px dashed var(--border);
}
.osc-untracked-name { font-family: var(--fb); font-weight: 600; font-size: 14.5px; color: var(--muted); font-style: italic; }
.osc-untracked-note { font-family: var(--fm); font-size: 11px; color: var(--muted); line-height: 1.4; }
.osc-untracked-bar { height: 100%; background: var(--muted); border-radius: var(--r-sm); opacity: 0.5; }
@media (max-width: 980px) {
  .osc-untracked-row { grid-template-columns: 24px 44px minmax(0,1fr) 90px; gap: 10px; }
}

/* ---- The Rest (grid for #11+) ---- */
.osc-rest-head { display: flex; align-items: baseline; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
.osc-gate-wrap { margin-top: 20px; }
.osc-rest-title { font-family: var(--fb); font-weight: 600; font-size: 12px; color: var(--text); }
.osc-rest-note { font-family: var(--fb); font-size: 12px; color: var(--muted); }

/* ---- The nomination line: drawn under the last place on the model's slate, the same dashed line
   the Oscars Studio's wall draws through its posters. ---- */
.osc-rank-line { display: flex; align-items: center; gap: 10px; margin: 4px 0; }
.osc-rank-line::before, .osc-rank-line::after { content: ""; flex: 1; border-top: 1.5px dashed var(--orange); opacity: 0.7; }
.osc-rank-line::before { flex: 0 0 18px; }
.osc-rank-line span { font-family: var(--fm); font-size: 11px; letter-spacing: 0.04em; color: var(--orange); white-space: nowrap; }

/* ---- Precursor ladder (oscarsLadderHtml): one mark per award, most important first.
   Same four states as the Studio's wall: won filled, nominated half, not yet hollow, missed dashed. ---- */
.osc-ladder { display: inline-grid; grid-auto-flow: column; grid-auto-columns: 11px; gap: 3px; align-items: center; }
.osc-ladder-mark {
  display: block; width: 11px; height: 6px; box-sizing: border-box; border-radius: 2px;
  border: 1.5px solid color-mix(in srgb, var(--muted) 50%, var(--border)); background: transparent;
}
.osc-ladder-mark.is-win { background: var(--text); border-color: var(--text); }
.osc-ladder-mark.is-nom { background: color-mix(in srgb, var(--text) 35%, transparent); border-color: var(--text); }
.osc-ladder-mark.is-miss { border-style: dashed; }
.osc-ladder-key {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 18px;
  font-family: var(--fb); font-size: var(--t-meta); color: var(--muted); line-height: 1.5;
  margin: 0 0 10px; padding: 0 2px;
}
.osc-ladder-key b { color: var(--sub); font-weight: 600; }
.osc-ladder-key-marks { display: inline-flex; flex-wrap: wrap; gap: 4px 12px; }
.osc-ladder-key-item { display: inline-flex; align-items: center; gap: 6px; font-family: var(--fm); font-size: 11px; }

/* ---- Entrance: a category arrives rather than swaps; bars grow from their baseline,
   staggered 40ms (CHART_STYLE.md §9). ---- */
@keyframes osc-fc-rise { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@keyframes osc-fc-grow { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.osc-fc-enter > * { animation: osc-fc-rise 0.32s ease both; }
.osc-fc-enter > .osc-rank-list { animation-delay: 0.05s; }
.osc-fc-enter .osc-rank-bar { animation: osc-fc-grow 0.6s ease both; animation-delay: calc(0.12s + var(--i, 0) * 40ms); }
.osc-fc-enter .osc-rank-row { animation: osc-fc-rise 0.32s ease both; animation-delay: calc(var(--i, 0) * 25ms); }
@media (prefers-reduced-motion: reduce) {
  .osc-fc-enter > *, .osc-fc-enter .osc-rank-bar, .osc-fc-enter .osc-rank-row { animation: none; }
  .osc-rank-row, .osc-rank-row:hover { transition: none; transform: none; }
}

/* ---- The road ahead (oscarsRoadAheadHtml): this category's precursors on the season calendar ---- */
.osc-fc-road { grid-column: 1 / -1; }
.osc-road-track { position: relative; height: 128px; margin: 6px 4px 18px; }
.osc-road-axis { position: absolute; left: 0; right: 0; bottom: 4px; border-top: 1.5px solid var(--orange); }
.osc-road-axis::before, .osc-road-axis::after { content: ""; position: absolute; top: -6px; height: 5px; border-left: 1.5px solid var(--orange); }
.osc-road-axis::before { left: 0; } .osc-road-axis::after { right: 0; }
.osc-road-tick {
  position: absolute; bottom: -16px; transform: translateX(-50%);
  font-family: var(--fm); font-size: var(--t-mini); color: var(--muted);
}
.osc-road-tick::before { content: ""; position: absolute; left: 50%; top: -9px; height: 5px; border-left: 1px solid color-mix(in srgb, var(--muted) 50%, var(--border)); }
.osc-road-mark {
  position: absolute; transform: translateX(-50%); box-sizing: border-box;
  background: var(--sub); border: 1.5px solid var(--sub);
  transition: transform 0.15s ease, background 0.15s, border-color 0.15s;
}
.osc-road-mark.is-estimate { background: transparent; border-style: dashed; }
.osc-road-mark.is-fired { background: var(--orange); border-color: var(--orange); }
.osc-road-mark.is-lit { transform: translateX(-50%) scale(1.45); background: var(--orange); border-color: var(--orange); z-index: 2; }
.osc-road-vote {
  position: absolute; bottom: 4px; height: 100%; transform: none;
  background: color-mix(in srgb, var(--orange) 9%, transparent); border-left: 1px solid color-mix(in srgb, var(--orange) 35%, transparent);
  border-right: 1px solid color-mix(in srgb, var(--orange) 35%, transparent);
}
.osc-road-mile { position: absolute; bottom: 4px; top: 0; border-left: 1.5px dashed var(--orange); }
.osc-road-mile-label {
  position: absolute; top: 0; left: 5px; white-space: nowrap;
  font-family: var(--fm); font-size: var(--t-mini); color: var(--orange);
}
.osc-road-mile:last-of-type .osc-road-mile-label { left: auto; right: 5px; }
.osc-road-today { position: absolute; bottom: 4px; top: 14px; border-left: 1.5px solid var(--text); }
.osc-road-today span {
  position: absolute; top: -14px; left: 0; transform: translateX(-50%);
  font-family: var(--fm); font-size: var(--t-mini); color: var(--text); white-space: nowrap;
}
.osc-road-list { list-style: none; margin: 30px 0 0; padding: 0; columns: 3 300px; column-gap: 26px; }  /* fills down, so dates read in order */
.osc-road-row {
  display: grid; grid-template-columns: 84px minmax(0, 1fr) 48px; grid-template-areas: "when what weight" "when status status";
  gap: 2px 10px; align-items: center; padding: 9px 6px; border-top: 1px solid var(--border); border-radius: 2px;
  break-inside: avoid;
  transition: background 0.12s;
}
.osc-road-row.is-lit { background: var(--surface); }
.osc-road-when { grid-area: when; font-family: var(--fm); font-size: var(--t-label); color: var(--sub); }
.osc-road-what { grid-area: what; min-width: 0; }
.osc-road-label { display: block; font-family: var(--fb); font-size: var(--t-ui); font-weight: 500; color: var(--text); }
.osc-road-feeds { display: block; font-family: var(--fm); font-size: 11px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.osc-road-weight { grid-area: weight; height: 4px; background: var(--border); border-radius: 2px; overflow: hidden; align-self: center; }
.osc-road-weight-bar { display: block; height: 100%; background: var(--sub); border-radius: 2px; }
.osc-road-status { grid-area: status; font-family: var(--fm); font-size: var(--t-mini); color: var(--muted); white-space: nowrap; }
.osc-road-status.is-fired { color: var(--orange); }
.osc-road-status.is-late { color: var(--caution); }
.osc-road-empty { font-family: var(--fb); font-size: var(--t-meta); color: var(--muted); font-style: italic; }
@media (max-width: 680px) {
  .osc-road-track { height: 112px; }
  .osc-road-mile-label { display: none; }
  .osc-road-row { grid-template-columns: 70px minmax(0, 1fr) 44px; }
}

/* ---- Lower sections: timeline + signals ---- */
.osc-fc-lower { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(0,1fr); gap: 22px; margin-top: 34px; }
.osc-fc-lower.is-single { grid-template-columns: minmax(0, 1fr); }
.osc-fc-section{ background: var(--card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: var(--s-5); }
.osc-fc-section-title { font-family: var(--fb); font-weight: 600; font-size: var(--t-meta); color: var(--text); margin-bottom: 4px; }
.osc-fc-section-note { font-family: var(--fb); font-size: var(--t-meta); color: var(--muted); line-height: 1.5; margin-bottom: 16px; }

@media (max-width: 980px) {
  .osc-fc-lower { grid-template-columns: 1fr; }
.osc-rank-row{ grid-template-columns: 24px 44px minmax(0,1fr) 90px; gap: 10px; }
}
@media (max-width: 680px) {
  .osc-fc-page { padding: 28px 20px 60px; }
.osc-rank-row{ grid-template-columns: 20px 40px minmax(0,1fr) 76px; gap: 8px; padding: var(--s-2) var(--s-3); }
  .osc-rank-name { font-size: var(--t-ui); }
  .osc-rank-prob { font-size: 18px; }
  .osc-rank-sigs { display: none; }
}

/* Forecast cards are clickable; history cards are not. The rest of
   .osc-field-* lives in assets/css/oscars.css. */
.osc-field-card { cursor: pointer; }
.osc-field-poster { transition: transform 0.15s ease; }
.osc-field-card:hover .osc-field-poster { transform: translateY(-3px); }
