/* Site integration only. The original model and panel styling stay in styles.css. */
body .info-btn { font-family: 'Merriweather', serif; }
.experience-nav { margin: 0 0 14px; }
.experience-nav a { display: inline-flex; align-items: center; min-height: 28px; padding: 4px 10px; border: 1px solid var(--line); border-radius: 999px; color: #aec0cc; font-size: 11px; text-decoration: none; }
.experience-nav a:hover { color: var(--text); border-color: var(--cyan); }
a:focus-visible, button:focus-visible, input:focus-visible { outline: 2px solid var(--cyan); outline-offset: 4px; }
.spot-grid[hidden] { display: none; }
#loading[data-failed] { opacity: 1; pointer-events: auto; padding: 24px; }
#loading[data-failed] p { max-width: 36em; line-height: 1.8; font-size: 14px; }
.recovery-actions { display: flex; justify-content: center; align-items: center; gap: 18px; }
.recovery-actions a, .recovery-actions button { min-height: 40px; padding: 10px 16px; color: var(--text); background: #162536; border: 1px solid var(--line); border-radius: 10px; font: inherit; cursor: pointer; text-decoration: none; }
@media (max-width: 960px) and (min-width: 681px) { .controls { top: 220px; max-height: calc(100dvh - 238px); overflow-y: auto; } }
@media (max-width: 680px) {
  .hero { padding: 14px 18px; }
  .hero h1 { font-size: clamp(22px, 7vw, 30px); }
  .hero-kicker { font-size: 8px; letter-spacing: .1em; }
  .hero-meta { margin-top: 10px; }
  .experience-nav { margin-bottom: 10px; }
  .controls { max-height: 44dvh; overflow-y: auto; }
  .info-btn { left: auto; right: 30px; top: 36px; z-index: 2; }
}
