/* ---------- Market ribbon (replaces the plain ticker strip) ---------- */
.ribbon { position: relative; display: flex; align-items: stretch; min-height: 48px; color-scheme: dark;
  background: linear-gradient(180deg, #060a18 0%, #0a1230 100%);
  border-bottom: 1px solid rgba(212,166,94,.22); box-shadow: inset 0 1px 0 rgba(212,166,94,.10); }
.ribbon::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(230,196,138,.75) 50%, transparent); background-size: 50% 100%; background-repeat: no-repeat;
  animation: ribbonGlint 9s ease-in-out infinite; }
@keyframes ribbonGlint { 0% { background-position: -60% 0; } 60%, 100% { background-position: 160% 0; } }
.ribbon__status { flex: none; display: flex; align-items: center; gap: 10px; padding: 0 18px; border-right: 1px solid rgba(212,166,94,.18); font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: #b3b9cf; }
.ribbon__status b { font-weight: 500; color: #e6c48a; }
.ribbon__status time { color: #8a92ad; font-variant-numeric: tabular-nums; }
.ribbon__dot { width: 7px; height: 7px; border-radius: 50%; background: #8a92ad; }
.ribbon__status[data-state="open"] .ribbon__dot { background: #5cc79a; box-shadow: 0 0 0 0 rgba(92,199,154,.5); animation: ribbonPulse 2.4s ease-out infinite; }
.ribbon__status[data-state="pre"] .ribbon__dot { background: #e6c48a; }
@keyframes ribbonPulse { 70% { box-shadow: 0 0 0 7px rgba(92,199,154,0); } 100% { box-shadow: 0 0 0 0 rgba(92,199,154,0); } }
.ribbon__feed { position: relative; flex: 1; min-width: 0; display: flex; align-items: center; overflow: hidden; }
.ribbon__feed iframe { filter: saturate(.55) brightness(1.04); }
.ribbon__feed::before, .ribbon__feed::after { width: 64px !important; }
.ribbon__feed::before { background: linear-gradient(90deg, #070b1d, transparent) !important; }
.ribbon__feed::after { background: linear-gradient(270deg, #090f28, transparent) !important; }
.ribbon__note { flex: none; display: flex; align-items: center; padding: 0 18px; border-left: 1px solid rgba(212,166,94,.18); font-family: var(--font-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: #6f7891; }
@media (max-width: 760px) { .ribbon__note { display: none; } .ribbon__status time { display: none; } .ribbon__status { padding: 0 12px; } }
@media (prefers-reduced-motion: reduce) { .ribbon::after, .ribbon__dot { animation: none !important; } }
