.cone-figure {
  margin: 26px 0;
  padding: 12px;
  background: #f2f2e8;
  border: 2px solid;
  border-color: #808080 #fff #fff #808080;
}
.cone-heading, .cone-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  font: 700 0.9rem/1.4 "Courier New", monospace;
}
.cone-heading .button { font-size: 0.8rem; padding: 6px 10px; }
.cone-heading [hidden] { display: none; }
.cone-figure svg { display: block; width: 100%; height: auto; margin: 12px 0; }
.cone-figure text { fill: #222; font: 16px Tahoma, sans-serif; }
.cone-area { fill: #dde5e3; stroke: #869d97; stroke-width: 1; }
.cone-axis { fill: none; stroke: #777; }
.cone-drift, .cone-guided, .cone-flow { fill: none; stroke-width: 3; stroke-linejoin: round; }
.cone-drift { stroke: #9a326f; stroke-dasharray: 7 5; }
.cone-guided { stroke: #174da1; }
.cone-flow { stroke-width: 6; stroke-dasharray: 3 97; stroke-linecap: round; animation: cone-travel 6s linear infinite; }
.cone-flow-drift { stroke: #9a326f; }
.cone-flow-guided { stroke: #174da1; }
.cone-start { fill: #222; }
.cone-check { fill: #fff; stroke: #174da1; stroke-width: 3; }
.cone-goal { fill: none; stroke: #174da1; stroke-width: 2; }
.cone-legend { justify-content: flex-start; gap: 8px 22px; }
.cone-legend span { display: inline-flex; align-items: center; gap: 8px; }
.cone-key { width: 24px; border-top: 3px solid #174da1; }
.cone-key-drift { border-color: #9a326f; border-top-style: dashed; }
.cone-figure figcaption { margin-top: 12px; font-size: 0.9rem; line-height: 1.6; }
.cone-figure.is-paused .cone-flow { animation-play-state: paused; }
@keyframes cone-travel { from { stroke-dashoffset: 0; } to { stroke-dashoffset: -100; } }
@media (prefers-reduced-motion: reduce) {
  .cone-flow { animation: none; display: none; }
  .cone-heading .button { display: none; }
}
@media (max-width: 480px) {
  .cone-figure { padding: 8px; }
  .cone-figure text { font-size: 19px; }
}

.spotify-player {
  display: block;
  width: 100%;
  height: 152px;
  margin: 0 0 24px;
  border: 0;
  border-radius: 12px;
}
