/*
  =====================================================================
  MONET INTEGRATION HUB — EMBEDDED STYLES
  =====================================================================
*/

*,*::before,*::after { margin:0; padding:0; box-sizing:border-box }

/* === MAIN CONTAINER — embedded size === */
.hub-container {
  position: relative;
  width: 100%;
  height: 650px;
  background: linear-gradient(145deg, #0a0e1a 0%, #0f1729 30%, #131b33 60%, #0a0e1a 100%);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Dot grid overlay */
.hub-container::before {
  content: '';
  position: absolute; inset: 0;
  background-image: radial-gradient(rgba(255,255,255,0.03) 1px, transparent 1px);
  background-size: 40px 40px;
  pointer-events: none; z-index: 1;
}

/* Ambient glows */
.hub-container::after {
  content: '';
  position: absolute; inset: 0; opacity: 0.3; pointer-events: none; z-index: 1;
  background-image:
    radial-gradient(circle at 18% 50%, rgba(99,102,241,0.12) 0%, transparent 45%),
    radial-gradient(circle at 82% 50%, rgba(139,92,246,0.12) 0%, transparent 45%);
}

/* === ICON AREA === */
.hub-area {
  position: relative;
  width: 100%;
  max-width: 1100px;
  height: 580px;
  max-height: 720px;
  z-index: 10;
}

/* === ICON CARDS === */
.hub-container .icon-card {
  position: absolute;
  z-index: 5;
  cursor: pointer;
  transform: translate(-50%,-50%);
}
.hub-container .icon-card .card-inner {
  position: relative;
  width: 48px;
  height: 48px;
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 16px rgba(0,0,0,0.35), 0 1px 4px rgba(0,0,0,0.2);
  transition: transform 0.3s, box-shadow 0.3s;
}
.hub-container .icon-card:hover .card-inner {
  transform: scale(1.12);
  box-shadow: 0 6px 24px rgba(0,0,0,0.5), 0 2px 8px rgba(0,0,0,0.3);
}
.hub-container .icon-card .card-inner svg {
  width: 26px;
  height: 26px;
}

/* Green status dot */
.hub-container .icon-card .status-dot {
  position: absolute; bottom: -2px; right: -2px;
  width: 11px; height: 11px; border-radius: 50%;
  background: #22c55e;
  border: 2px solid #0f1729;
}

/* Hover tooltip */
.hub-container .icon-card .tooltip {
  position: absolute; left: 50%; transform: translateX(-50%); top: -30px;
  background: rgba(15,23,42,0.95); color: #fff;
  font-size: 11px; padding: 3px 8px; border-radius: 6px;
  white-space: nowrap; opacity: 0; transition: opacity 0.2s;
  pointer-events: none; border: 1px solid rgba(255,255,255,0.1);
}
.hub-container .icon-card:hover .tooltip { opacity: 1 }

/* === CENTER HUB === */
.hub-container .center-hub {
  position: absolute; left: 50%; top: 50%;
  transform: translate(-50%,-50%);
  z-index: 20;
  animation: hubFloat 4s ease-in-out infinite alternate;
}

.hub-container .center-glow-outer {
  position: absolute;
  width: 180px; height: 180px;
  left: 50%; top: 50%; transform: translate(-50%,-50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(99,102,241,0.12) 0%, transparent 70%);
  animation: outerGlow 3s ease-in-out infinite alternate;
}

.hub-container .center-glow-inner {
  position: absolute;
  width: 130px; height: 130px;
  left: 50%; top: 50%; transform: translate(-50%,-50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(200,200,255,0.08) 0%, transparent 70%);
  animation: innerGlow 2.5s ease-in-out 0.5s infinite alternate;
}

.hub-container .center-logo-wrap {
  position: relative;
  width: 82px;
  height: 82px;
  filter: drop-shadow(0 0 30px rgba(99,102,241,0.4))
          drop-shadow(0 0 60px rgba(139,92,246,0.2));
}
.hub-container .center-logo-wrap img {
  width: 82px;
  height: 82px;
  object-fit: contain;
  border-radius: 50%;
  display: block;
  background: radial-gradient(circle, #0f1729 0%, #0a0e1a 100%);
}

/* === ANIMATIONS === */
@keyframes floatY {
  0%   { transform: translate(-50%,-50%) translateY(0) }
  100% { transform: translate(-50%,-50%) translateY(-9px) }
}
@keyframes beamPulse {
  0%,100% { opacity: 0.2 }
  50%     { opacity: 0.85 }
}
@keyframes statusPulse {
  0%,100% { transform: scale(1); opacity: 1 }
  50%     { transform: scale(1.6); opacity: 0.35 }
}
@keyframes hubFloat {
  0%   { transform: translate(-50%,-50%) translateY(0) }
  100% { transform: translate(-50%,-50%) translateY(-8px) }
}
@keyframes hubPulse {
  0%,100% { transform: scale(1) }
  50%     { transform: scale(1.04) }
}
@keyframes outerGlow {
  0%   { transform: translate(-50%,-50%) scale(1); opacity: 0.5 }
  100% { transform: translate(-50%,-50%) scale(1.25); opacity: 1 }
}
@keyframes innerGlow {
  0%   { transform: translate(-50%,-50%) scale(1); opacity: 0.6 }
  100% { transform: translate(-50%,-50%) scale(1.18); opacity: 1 }
}

/* === TOP LABELS === */
.hub-container .label {
  position: absolute; top: 18px; z-index: 30;
  display: flex; align-items: center; gap: 8px;
  color: rgba(255,255,255,0.45);
  font-size: 11px; font-weight: 600;
  letter-spacing: 0.1em; text-transform: uppercase;
}
.hub-container .label-left { left: 24px }
.hub-container .label-right { right: 24px }
.hub-container .label-dot {
  width: 7px; height: 7px; border-radius: 50%;
  animation: statusPulse 2s infinite;
}
.hub-container .label-left .label-dot { background: #818cf8 }
.hub-container .label-right .label-dot { background: #a78bfa }

/* Responsive */
@media (max-width: 768px) {
  .hub-container { height: 450px; }
  .hub-area { height: 400px; }
  .hub-container .icon-card .card-inner { width: 36px; height: 36px; border-radius: 8px; }
  .hub-container .icon-card .card-inner svg { width: 18px; height: 18px; }
  .hub-container .center-logo-wrap,
  .hub-container .center-logo-wrap img { width: 60px; height: 60px; }
  .hub-container .center-glow-outer { width: 120px; height: 120px; }
  .hub-container .center-glow-inner { width: 90px; height: 90px; }
  .hub-container .label { display: none; }
}
