/* refraction.css — the refraction scene drawn by viz/refraction.js (SVG in the shared .lv chrome). */

.rf { display: flex; flex-direction: column; gap: 0.85rem; }
.rf-bound { stroke: rgba(203, 213, 225, 0.7); stroke-width: 1.5; }
.rf-normal { stroke: rgba(148, 163, 184, 0.5); stroke-width: 1; stroke-dasharray: 4 4; }
.rf-hit { fill: #fff; }

.rf-ray { stroke-width: 2.6; fill: none; stroke-linecap: round; stroke-dasharray: 9 6;
  filter: drop-shadow(0 0 3px rgba(251, 191, 36, 0.55)); animation: rf-flow 0.7s linear infinite; }
.rf-incident { stroke: #fbbf24; }
.rf-refracted { stroke: #fcd34d; }
.rf-reflect { stroke: rgba(251, 191, 36, 0.3); stroke-width: 1.4; stroke-dasharray: 3 4; }
@keyframes rf-flow { to { stroke-dashoffset: -15; } }
@media (prefers-reduced-motion: reduce) { .rf-ray { animation: none; } }

.rf-ang { fill: #e8eef6; font-size: 10px; font-weight: 700; paint-order: stroke; stroke: #0b1220; stroke-width: 2.6px; stroke-linejoin: round; }
.rf-ang2 { fill: #a7f3d0; }
.rf-mlab { fill: #9fb0c3; font-size: 9px; font-weight: 600; paint-order: stroke; stroke: #0b1220; stroke-width: 2.4px; stroke-linejoin: round; }
.rf-air { fill: #7f93a8; }

.rf-meds { display: flex; align-items: center; gap: 0.4rem; flex-wrap: wrap; }
.rf-mlbl { font-size: 0.85rem; color: #9fb0c3; font-weight: 600; margin-right: 0.2rem; }
.rf-med { cursor: pointer; font: inherit; font-size: 0.8rem; font-weight: 600; color: #cbd5e1; padding: 0.28rem 0.7rem; border-radius: 999px;
  background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.14); transition: all 0.12s ease; }
.rf-med:hover { background: rgba(255, 255, 255, 0.09); }
.rf-med.rf-on { color: #07121d; background: #38bdf8; border-color: #38bdf8; }
