/* Forecast Context — the motion player (laboratory cut). */
.fm{margin:6px 0 18px}
.fm-fig{position:relative;border-radius:10px;overflow:hidden;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);cursor:pointer;line-height:0}
.fm-fig:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.fm-fig canvas{display:block;width:100%;touch-action:pan-y}
.fm-bar{display:flex;align-items:center;gap:12px;margin-top:10px;flex-wrap:wrap}
.fm-play{width:44px;height:44px;border-radius:50%;border:0;background:var(--sign);color:var(--signal);display:grid;place-items:center;cursor:pointer;flex:none;
  box-shadow:0 0 0 2px var(--signal) inset,var(--shadow)}
.fm-play:hover{background:var(--signal);color:var(--sign)}
.fm-play:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.fm-rng{flex:1 1 200px;accent-color:var(--accent);min-width:140px;height:28px}
.fm-out{font:700 13px var(--mono);color:var(--ink);min-width:9ch;text-align:right;font-variant-numeric:tabular-nums}
.fm-seg{display:inline-flex;align-items:center;flex-wrap:wrap;gap:0}
.fm-seglbl{font:700 10px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mut);margin-right:8px}
.fm-seg button{font:700 11.5px var(--mono);padding:6px 10px;border:1px solid var(--line);border-left-width:0;background:var(--card);color:var(--ink2);cursor:pointer}
.fm-seg button:first-of-type{border-left-width:1px;border-radius:4px 0 0 4px}.fm-seg button:last-child{border-radius:0 4px 4px 0}
.fm-seg button[aria-pressed="true"]{background:var(--sign);border-color:var(--sign);color:var(--signal)}
.fm-seg button:focus-visible{outline:2px solid var(--accent);outline-offset:1px;position:relative}
.fm-opts{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px}
.fm-act{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;align-items:center}
.fm-btn{font:800 12px var(--font);letter-spacing:.04em;padding:8px 14px;border-radius:6px;border:1.5px solid var(--accent);background:var(--accent);color:var(--card);cursor:pointer;text-decoration:none}
.fm-btn.ghost{background:transparent;color:var(--accent-dk)}
.fm-btn:hover{filter:brightness(1.08)}
.fm-embed{margin-top:10px;background:var(--card2);border:1px solid var(--line);border-radius:8px;padding:10px 12px}
.fm-embed p{margin:0 0 6px;font-size:13.5px;color:var(--ink2)}
.fm-embed textarea{width:100%;font:500 12px var(--mono);border:1px solid var(--line);border-radius:4px;padding:6px;background:var(--card);color:var(--ink);margin-bottom:6px}
.fm-credit{font:700 12px var(--mono);color:var(--accent-dk)}
.fm-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.fm-err{padding:40px 16px;text-align:center;color:var(--mut);font-weight:700;background:var(--card);border:1px dashed var(--line);border-radius:10px}
.fm:not(.fm-ready):not(.fm-err){min-height:420px;border-radius:10px;background:
  linear-gradient(90deg,transparent,rgba(var(--accent-rgb),.08),transparent) 0 0/40% 100% no-repeat var(--card);
  border:1px solid var(--line);animation:fmload 1.4s linear infinite}
@keyframes fmload{from{background-position:-40% 0}to{background-position:140% 0}}
.mocard .fm{margin:0}.mocard .fm-fig{border:0;border-radius:0;box-shadow:none;background:var(--sign-dk);cursor:inherit}
.mocard .fm:not(.fm-ready){min-height:170px;border:0;border-radius:0}
.mopage .lede{max-width:78ch}
.moreads{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin:14px 0}
body.embed{background:var(--card)}
body.embed .fm{margin:8px}
@media (prefers-reduced-motion:reduce){.fm:not(.fm-ready){animation:none}}
