@keyframes hub-blink {
  50% { opacity: 0; }
}

@keyframes hub-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(0,255,136,.35); opacity: 1; }
  50% { box-shadow: 0 0 0 5px rgba(0,255,136,0); opacity: .65; }
}

.hub-cursor { animation: hub-blink 1s step-end infinite; }
.hub-panel-status-on i, .hub-asset-tech i { animation: hub-pulse 2s ease-in-out infinite; }

@media (max-width: 700px) {
  body.hub { font-size: 14px; }
  #hub-network { display: none; }
  .hub-wrapper { max-width: none; padding: 0 16px 20px; width: 100%; }
  .hub-status-bar { margin: 0 -16px 16px; padding: 9px 16px; }
  .hub-prompt { font-size: 11px; }
  .hub-cursor { height: 13px; width: 7px; }
  .hub-uptime, .hub-sys { display: none; }
  .hub-identity { gap: 12px; padding: 14px; }
  .hub-avatar { height: 46px; width: 46px; }
  .hub-name { font-size: 19px; }
  .hub-kicker { font-size: 8px; }
  .hub-tagline { font-size: 9px; white-space: normal; }
  .hub-links { gap: 15px; margin-top: 9px; }
  .hub-links a { font-size: 8px; }
  .hub-grid { grid-template-columns: 1fr; }
  .hub-panel { min-height: 205px; padding: 15px; }
  .hub-panel-games { min-height: 170px; }
  .hub-panel-label { font-size: 8px; }
  .hub-panel-status { font-size: 7px; }
  .hub-panel h2 { font-size: 17px; margin-top: 22px; }
  .hub-panel-copy { font-size: 9px; margin: 8px 0 18px; }
  .hub-post-row { padding: 7px 0; }
  .hub-post-title { font-size: 8px; }
  .hub-post-row time { font-size: 7px; }
  .hub-panel-cta, .hub-terminal-lines { font-size: 8px; }
  .hub-placeholder { align-items: flex-start; flex-direction: column; gap: 3px; }
  .hub-placeholder, .hub-footer { font-size: 8px; }
  .hub-dossier-top { align-items: flex-start; flex-wrap: wrap; }
  .hub-dossier { padding: 18px; }
  .hub-dossier-avatar { height: 64px; width: 64px; }
  .hub-dossier-name { font-size: 18px; }
  .hub-dossier-name span { font-size: 11px; }
  .hub-dossier-tagline, .hub-dossier-links a { font-size: 8px; }
  .hub-badge { order: 3; }
  .hub-bio p { font-size: 10px; }
  .hub-section h2, .hub-tag { font-size: 8px; }
  .hub-assets { grid-template-columns: 1fr; }
  .hub-asset { font-size: 9px; padding: 9px 11px; }
  .hub-asset small { font-size: 7px; }
  .hub-footer { align-items: flex-start; flex-direction: column; gap: 3px; }
}

@media (prefers-reduced-motion: reduce) {
  .hub-cursor, .hub-panel-status-on i, .hub-asset-tech i { animation: none; }
  .hub-panel { transition: none; }
}
