.download-diagram-section, .download-diagram-section *, .download-diagram-section *::before, .download-diagram-section *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
      
.download-diagram-section.section,
.download-diagram-section {
  min-height: 0;
  background: transparent;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0;
  padding-bottom: clamp(84px, 11vh, 136px);
  padding-left: max(env(safe-area-inset-left), var(--hero-v2-side-gutter));
  padding-right: max(env(safe-area-inset-right), var(--hero-v2-side-gutter));
}

.download-diagram-frame {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-bottom: 14px;
  padding: 18px 22px;
  border-radius: 28px;
  border: 1px solid rgba(124, 173, 255, 0.45);
  background:
    radial-gradient(120% 110% at 0% 0%, rgba(61, 137, 255, 0.18) 0%, rgba(61, 137, 255, 0.05) 42%, rgba(8, 14, 28, 0.0) 100%),
    linear-gradient(180deg, rgba(18, 28, 48, 0.82) 0%, rgba(8, 14, 28, 0.92) 100%);
  box-shadow:
    inset 0 1px 0 rgba(172, 207, 255, 0.24),
    inset 0 -1px 0 rgba(60, 98, 158, 0.32);
  overflow: hidden;
}

.download-diagram-scroll {
  width: min(100%, var(--hero-v2-container-max));
  margin-left: auto;
  margin-right: auto;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
}

.download-diagram-scroll-inner {
  width: 100%;
  min-width: max-content;
  margin-left: auto;
  margin-right: auto;
}

@media (max-width: 820px) {
  .download-diagram-scroll {
    width: 100dvw;
    max-width: none;
    margin-left: calc(50% - 50dvw);
    margin-right: calc(50% - 50dvw);
  }

  .download-diagram-scroll-inner {
    padding-inline-start: max(env(safe-area-inset-left), var(--hero-v2-side-gutter));
    padding-inline-end: max(env(safe-area-inset-right), var(--hero-v2-side-gutter));
    box-sizing: border-box;
  }

}

.download-diagram-intro {
  width: min(100%, var(--hero-v2-container-max));
  margin: 0 auto 18px;
  text-align: center;
}

@media (max-width: 1023px) {
  .download-diagram-intro {
    text-align: left;
  }
}

.download-diagram-section--desktop .download-diagram-intro {
  margin: 0 auto 36px;
}

.download-diagram-title {
  margin: 0;
}

.download-diagram-caption {
  margin: 0 0 14px;
  color: #F8F8F8;
  font-family: "Manrope", "Avenir Next", "Segoe UI", sans-serif;
  font-size: var(--hero-v2-support-copy-size, clamp(19px, 2.5vw, 24px));
  line-height: var(--hero-v2-support-copy-line-height, 1.5);
}

.download-diagram-subtitle {
  margin: 12px 0 0;
  color: rgba(245, 245, 247, 0.74);
}

.canvas {
  position: relative;
  width: 860px;
  height: 700px;
  margin-left: auto;
  margin-right: auto;
}
      
.diagram-content {
  position: absolute;
  left: 50%;
  top: 0;
  width: 700px;
  height: 700px;
  transform: translateX(-50%);
}
      
.diagram-easy-setup-badge {
  position: absolute;
  left: 395px;
  top: 116px;
  transform: translateX(-50%);
  padding: 10px 18px;
  margin-bottom: 0;
  z-index: 6;
  pointer-events: none;
}
      
.diagram-briefings-badge {
  position: absolute;
  left: 492px;
  top: 260px;
  transform: translate(-50%, -50%);
  text-align: center;
  padding: 10px 18px;
  margin-bottom: 0;
  z-index: 6;
  pointer-events: none;
  border-radius: 14px;
}
      
.diagram-agent-badge {
  position: absolute;
  left: 260px;
  top: 186px;
  transform: translateX(-50%);
  padding: 10px 18px;
  margin-bottom: 0;
  z-index: 6;
  pointer-events: none;
}
      
.diagram-agent-badge-bottom {
  position: absolute;
  left: 260px;
  top: 472px;
  transform: translateX(-50%);
  padding: 10px 18px;
  margin-bottom: 0;
  z-index: 6;
  pointer-events: none;
}
      
.diagram-memory-badge {
  position: absolute;
  left: 90px;
  top: 40px;
  transform: translateX(-50%);
  padding: 10px 18px;
  margin-bottom: 0;
  z-index: 6;
  pointer-events: none;
}

.diagram-desktop-command-badge {
  position: absolute;
  left: 28px;
  top: 350px;
  transform: translate(-100%, -50%);
  padding: 10px 18px;
  margin-bottom: 0;
  z-index: 6;
  pointer-events: none;
}

.diagram-desktop-command-badge span {
  text-align: right;
}

.diagram-smartphone-gateway-desktop-badge {
  position: absolute;
  left: 650px;
  top: 412px;
  transform: translate(-50%, 0);
  padding: 10px 18px;
  margin-bottom: 0;
  z-index: 6;
  pointer-events: none;
}

.diagram-smartphone-gateway-desktop-badge span {
  white-space: nowrap;
}

.diagram-gmail-badge {
  position: absolute;
  left: 90px;
  top: 612px;
  transform: translateX(-50%);
  padding: 10px 18px;
  margin-bottom: 0;
  z-index: 6;
  pointer-events: none;
}
      
.diagram-cloud-input-badge {
  position: absolute;
  left: 360px;
  top: 296px;
  transform: translateX(-50%);
  padding: 10px 18px;
  margin-bottom: 0;
  z-index: 6;
  pointer-events: none;
}

.download-diagram-section--desktop .hero-v2-benefits-eyebrow {
  color: #F8F8F8;
  border-radius: 14px;
}
      
.node {
  position: absolute;
  background: #ffffff;
  border-radius: 20px;
  box-shadow:
    0 4px 12px rgba(0, 0, 0, 0.06),
    0 12px 28px rgba(0, 0, 0, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  animation: floatIn 0.6s ease-out both;
}
      
.node-macbook {
  width: 100px;
  height: 100px;
  left: 40px;
  top: 300px;
}
      
.node-top {
  width: 100px;
  height: 100px;
  left: 40px;
  top: 120px;
  animation: floatIn 0.6s ease-out 0.08s both, subtleFloat 4s ease-in-out 0.7s infinite;
}
      
.node-top .top-icon {
  width: 56px;
  height: 56px;
  object-fit: contain;
  opacity: 1;
  filter: brightness(0) saturate(100%);
  display: block;
}
      
.node-macbook .sf-icon {
  width: 60px;
  height: 60px;
}
      
@keyframes floatIn {
  0% {
    opacity: 0;
    transform: translateY(20px) scale(0.95);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
      
@keyframes subtleFloat {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-4px);
  }
}
      
.node-macbook {
  animation: floatIn 0.6s ease-out both, subtleFloat 4s ease-in-out 0.6s infinite;
}
      
.node-iphone {
  width: 100px;
  height: 100px;
  left: 600px;
  top: 300px;
  animation: floatIn 0.6s ease-out 0.15s both, iphonePulse 2.8s ease-in-out infinite;
}
      
@keyframes iphonePulse {
  0%, 94% {
    box-shadow:
      0 4px 12px rgba(0, 0, 0, 0.06),
      0 12px 28px rgba(0, 0, 0, 0.08);
    transform: scale(1);
  }
  97% {
    box-shadow:
      0 4px 16px rgba(0, 0, 0, 0.1),
      0 12px 32px rgba(0, 0, 0, 0.12);
    transform: scale(1.04);
  }
  100% {
    box-shadow:
      0 4px 12px rgba(0, 0, 0, 0.06),
      0 12px 28px rgba(0, 0, 0, 0.08);
    transform: scale(1);
  }
}
      
.node-iphone .sf-icon {
  width: 44px;
  height: 44px;
}
      
.node-bridge-top {
  width: 60px;
  height: 60px;
  left: 230px;
  top: 240px;
  animation: floatIn 0.6s ease-out 0.18s both, subtleFloat 4s ease-in-out 0.8s infinite;
}
      
.node-bridge-bottom {
  width: 60px;
  height: 60px;
  left: 230px;
  top: 400px;
  animation: floatIn 0.6s ease-out 0.22s both, subtleFloat 4s ease-in-out 1s infinite;
}
      
.node-bridge-mid {
  width: 60px;
  height: 60px;
  left: 462px;
  top: 320px;
  animation: floatIn 0.6s ease-out 0.26s both, subtleFloat 4s ease-in-out 1.1s infinite;
}

.node-bridge-mid-top {
  width: 60px;
  height: 60px;
  left: 462px;
  top: 140px;
  animation: floatIn 0.6s ease-out 0.24s both, subtleFloat 4s ease-in-out 1.05s infinite;
}
      
.bridge-icon {
  width: 32px;
  height: 32px;
  object-fit: contain;
  display: block;
}
      
.bridge-icon-key {
  width: 40px;
  height: 40px;
  filter: brightness(0) saturate(100%);
}
      
.connection-elbow {
  position: absolute;
  left: 0;
  top: 0;
  width: 1100px;
  height: 700px;
  pointer-events: none;
  animation: floatIn 0.6s ease-out 0.3s both;
}
      
.connection-elbow path {
  fill: none;
  stroke: #d0d0d0;
  stroke-width: 2;
  stroke-dasharray: 6 6;
  stroke-linecap: round;
}
      
.connection-elbow .signal-dot {
  fill: rgba(255, 255, 255, 0.9);
  pointer-events: none;
}
      
.connection-chip-mac {
  position: absolute;
  left: 0;
  top: 0;
  width: 1100px;
  height: 700px;
  pointer-events: none;
  animation: floatIn 0.6s ease-out 0.28s both;
}
      
.connection-chip-mac path {
  fill: none;
  stroke: #d0d0d0;
  stroke-width: 2;
  stroke-dasharray: 6 6;
  stroke-linecap: round;
}
      
.connection-chip-mac .signal-dot {
  fill: rgba(255, 255, 255, 0.9);
  pointer-events: none;
}
      
.connection-bridge {
  position: absolute;
  left: 0;
  top: 0;
  width: 1100px;
  height: 700px;
  pointer-events: none;
  animation: floatIn 0.6s ease-out 0.34s both;
}
      
.connection-bridge path {
  fill: none;
  stroke: #d0d0d0;
  stroke-width: 2;
  stroke-dasharray: 6 6;
  stroke-linecap: round;
}
      
.connection-bridge .signal-dot {
  fill: rgba(255, 255, 255, 0.9);
  pointer-events: none;
}
      
.connection-apps-mac {
  position: absolute;
  left: 0;
  top: 0;
  width: 1100px;
  height: 700px;
  pointer-events: none;
  animation: floatIn 0.6s ease-out 0.35s both;
}
      
.connection-apps-mac path {
  fill: none;
  stroke: #d0d0d0;
  stroke-width: 2;
  stroke-dasharray: 6 6;
  stroke-linecap: round;
}
      
.connection-apps-mac .signal-dot {
  fill: rgba(255, 255, 255, 0.9);
  pointer-events: none;
}
      
.node-apps {
  width: 100px;
  height: 100px;
  left: 40px;
  top: 500px;
  animation: floatIn 0.6s ease-out 0.3s both, subtleFloat 4s ease-in-out 0.9s infinite;
  overflow: hidden;
}
      
.node-apps .app-icon {
  position: absolute;
  width: 44px;
  height: 44px;
  object-fit: contain;
  opacity: 0;
  animation: iconCycle 12s ease-in-out infinite;
}
      
.node-apps .app-icon:nth-child(1) { animation-delay: 0s; }
.node-apps .app-icon:nth-child(2) { animation-delay: 2s; }
.node-apps .app-icon:nth-child(3) { animation-delay: 4s; }
.node-apps .app-icon:nth-child(4) { animation-delay: 6s; }
.node-apps .app-icon:nth-child(5) { animation-delay: 8s; }
.node-apps .app-icon:nth-child(6) { animation-delay: 10s; }
      
@keyframes iconCycle {
  0% { opacity: 0; transform: scale(0.8); }
  1.5% { opacity: 1; transform: scale(1); }
  10.5% { opacity: 1; transform: scale(1); }
  12.5% { opacity: 0; transform: scale(0.8); }
  100% { opacity: 0; }
}

.download-diagram-section--mobile {
  display: none !important;
}

@media (max-width: 820px) {
  .download-diagram-section--desktop {
    display: none !important;
  }

  .download-diagram-section--mobile {
    display: flex !important;
  }
}
