.service-overview { max-width: 1200px; margin: 0 auto; padding: 100px 40px; }
.overview-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
@media (max-width: 900px) {
.overview-grid { grid-template-columns: 1fr; }
}
.overview-text h2 { font-size: 36px; font-weight: 800; color: #fff; margin-bottom: 20px; line-height: 1.2; }
.overview-text p { font-size: 15px; color: #888; line-height: 1.8; margin-bottom: 16px; }
.overview-img { border-radius: 20px; overflow: hidden; background: #161616; border: 1px solid rgba(255,255,255,0.07); min-height: 360px; display: flex; align-items: center; justify-content: center; font-size: 80px; }
.ai-visual { width: 100%; display: block; }
.ai-visual svg { display: block; width: 100%; height: auto; overflow: visible; }
.ai-node-circle {
      fill: #161616;
      stroke: rgba(56,189,248,0.45);
      stroke-width: 1.5;
      transition: stroke 0.3s;
    }
.ai-node-core-circle {
      fill: rgba(56,189,248,0.08);
      stroke: rgba(56,189,248,0.8);
      stroke-width: 2;
    }
.ai-node-core-ring {
      fill: none;
      stroke: rgba(56,189,248,0.25);
      stroke-width: 1;
    }
.ai-label {
      font-family: 'Open Sans', Arial, sans-serif;
      font-size: 9px;
      font-weight: 700;
      fill: rgba(56,189,248,0.75);
      text-anchor: middle;
      letter-spacing: 0.8px;
      text-transform: uppercase;
    }
.ai-label-core {
      font-size: 8px;
      font-weight: 800;
      fill: rgba(56,189,248,1);
      text-anchor: middle;
      letter-spacing: 1px;
      text-transform: uppercase;
      font-family: 'Open Sans', Arial, sans-serif;
    }
.ai-conn {
      fill: none;
      stroke: rgba(56,189,248,0.14);
      stroke-width: 1;
    }
.ai-core-glow {
      fill: rgba(56,189,248,0.07);
      animation: ai-pulse-glow 2.8s ease-in-out infinite;
    }
.ai-core-glow-2 {
      fill: rgba(56,189,248,0.07);
      animation: ai-pulse-glow 2.8s ease-in-out infinite 1.4s;
    }
.ai-node-core-circle {
      animation: ai-core-pulse 2.8s ease-in-out infinite;
    }
.ai-node-core-circle-2 {
      fill: rgba(56,189,248,0.08);
      stroke: rgba(56,189,248,0.8);
      stroke-width: 2;
      animation: ai-core-pulse 2.8s ease-in-out infinite 1.4s;
    }
.ai-input-1 { animation: ai-bob 3.2s ease-in-out infinite 0s; }
.ai-input-2 { animation: ai-bob 3.2s ease-in-out infinite 0.6s; }
.ai-input-3 { animation: ai-bob 3.2s ease-in-out infinite 1.2s; }
.ai-output-1 { animation: ai-output-flash 3s ease-in-out infinite 0.2s; }
.ai-output-2 { animation: ai-output-flash 3s ease-in-out infinite 1.2s; }
.ai-output-3 { animation: ai-output-flash 3s ease-in-out infinite 2.2s; }
.ai-dot-travel {
      fill: #38bdf8;
      r: 3;
      filter: drop-shadow(0 0 4px #38bdf8);
      offset-rotate: 0deg;
    }
.ai-dt-i1c1 { offset-path: path('M 68,72  C 120,72  140,115 192,115'); animation: ai-travel-in1a 2.1s linear infinite 0.0s; }
.ai-dt-i2c1 { offset-path: path('M 68,145 C 120,145 140,130 192,130'); animation: ai-travel-in1b 2.1s linear infinite 0.7s; }
.ai-dt-i3c1 { offset-path: path('M 68,218 C 120,218 140,145 192,145'); animation: ai-travel-in1c 2.1s linear infinite 1.4s; }
.ai-dt-i1c2 { offset-path: path('M 68,72  C 120,72  140,155 192,175'); animation: ai-travel-in2a 2.1s linear infinite 0.35s; }
.ai-dt-i2c2 { offset-path: path('M 68,145 C 120,145 140,160 192,175'); animation: ai-travel-in2b 2.1s linear infinite 1.05s; }
.ai-dt-i3c2 { offset-path: path('M 68,218 C 120,218 140,190 192,190'); animation: ai-travel-in2c 2.1s linear infinite 1.75s; }
.ai-dt-c1o1 { offset-path: path('M 268,130 C 316,130 336,72  388,72'); animation: ai-travel-out1a 2.1s linear infinite 1.05s; }
.ai-dt-c1o2 { offset-path: path('M 268,130 C 316,130 336,145 388,145'); animation: ai-travel-out1b 2.1s linear infinite 1.75s; }
.ai-dt-c1o3 { offset-path: path('M 268,130 C 316,130 336,218 388,218'); animation: ai-travel-out1c 2.1s linear infinite 0.35s; }
.ai-dt-c2o1 { offset-path: path('M 268,175 C 316,175 336,72  388,72'); animation: ai-travel-out2a 2.1s linear infinite 1.4s; }
.ai-dt-c2o2 { offset-path: path('M 268,175 C 316,175 336,145 388,145'); animation: ai-travel-out2b 2.1s linear infinite 0.7s; }
.ai-dt-c2o3 { offset-path: path('M 268,175 C 316,175 336,218 388,218'); animation: ai-travel-out2c 2.1s linear infinite 0.0s; }
@keyframes ai-pulse-glow {
      0%, 100% { r: 28; opacity: 0.5; }
      50%       { r: 36; opacity: 1; }
    }
@keyframes ai-core-pulse {
      0%, 100% { stroke-opacity: 0.8; stroke-width: 2; }
      50%       { stroke-opacity: 1;   stroke-width: 2.5; filter: drop-shadow(0 0 8px rgba(56,189,248,0.9)); }
    }
@keyframes ai-bob {
      0%, 100% { transform: translateY(0px);  }
      50%       { transform: translateY(-5px); }
    }
@keyframes ai-output-flash {
      0%, 60%, 100% { opacity: 0.35; }
      30%            { opacity: 1;    filter: drop-shadow(0 0 6px rgba(56,189,248,0.9)); }
    }
@keyframes ai-travel-in1a { 0%{offset-distance:0%} 100%{offset-distance:100%} }
@keyframes ai-travel-in1b { 0%{offset-distance:0%} 100%{offset-distance:100%} }
@keyframes ai-travel-in1c { 0%{offset-distance:0%} 100%{offset-distance:100%} }
@keyframes ai-travel-in2a { 0%{offset-distance:0%} 100%{offset-distance:100%} }
@keyframes ai-travel-in2b { 0%{offset-distance:0%} 100%{offset-distance:100%} }
@keyframes ai-travel-in2c { 0%{offset-distance:0%} 100%{offset-distance:100%} }
@keyframes ai-travel-out1a { 0%{offset-distance:0%} 100%{offset-distance:100%} }
@keyframes ai-travel-out1b { 0%{offset-distance:0%} 100%{offset-distance:100%} }
@keyframes ai-travel-out1c { 0%{offset-distance:0%} 100%{offset-distance:100%} }
@keyframes ai-travel-out2a { 0%{offset-distance:0%} 100%{offset-distance:100%} }
@keyframes ai-travel-out2b { 0%{offset-distance:0%} 100%{offset-distance:100%} }
@keyframes ai-travel-out2c { 0%{offset-distance:0%} 100%{offset-distance:100%} }
