/* ===== INDUSTRY 3D VISUALS (refined premium, motion graphics) ===== */
.ind-viz{ --g:#7CB342;--gd:#639922;--gl:#B4E38A;--sf:#D68A2E;--ro:#D4537E;--mg:#E05A3F;--bl:#6FA8C7;--sl:#9A93A0;
  position:relative; width:100%; height:150px; border-radius:14px 14px 0 0; overflow:hidden;
  background:linear-gradient(158deg,#352A3C,#2A2130 58%,#1D1622);
  border-bottom:1px solid rgba(255,255,255,0.06);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.05), inset 0 -30px 50px rgba(0,0,0,0.25);
  perspective:700px; perspective-origin:50% 40%; }
/* atmospheric layers */
.ind-viz::before{ content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:repeating-linear-gradient(0deg,rgba(255,255,255,0.012) 0 1px,transparent 1px 3px); opacity:0.5; }
.ind-viz::after{ content:''; position:absolute; left:0; right:0; top:0; height:55%; z-index:1; pointer-events:none;
  background:radial-gradient(75% 100% at 50% 0%,rgba(255,255,255,0.05),transparent 70%); }
.ind-scene{ position:absolute; inset:0; z-index:2; transform-style:preserve-3d; transform:rotateX(6deg); }
.ind-floor{ position:absolute; inset:-30% -10% -12% -10%;
  background-image:linear-gradient(rgba(124,179,66,0.08) 1px,transparent 1px),linear-gradient(90deg,rgba(124,179,66,0.08) 1px,transparent 1px);
  background-size:30px 30px; transform:rotateX(68deg) translateZ(-20px) scale(1.6); transform-origin:50% 64%;
  -webkit-mask-image:radial-gradient(120% 90% at 50% 25%,#000 30%,transparent 80%); mask-image:radial-gradient(120% 90% at 50% 25%,#000 30%,transparent 80%); opacity:0.5; }
.ind-glow{ position:absolute; left:50%; top:48%; width:180px; height:150px; transform:translate(-50%,-50%); pointer-events:none; filter:blur(8px); }
.ind-viz-label{ position:absolute; left:13px; bottom:9px; z-index:5; font-family:'JetBrains Mono',monospace; font-size:7px; letter-spacing:1.8px; color:#B0A8B6; text-shadow:0 1px 3px rgba(0,0,0,0.5); }
.ind-live{ position:absolute; right:13px; top:11px; z-index:5; width:5px; height:5px; border-radius:50%; box-shadow:0 0 8px currentColor; animation:ind-blink 2s ease-in-out infinite; }
@keyframes ind-blink{ 0%,100%{ opacity:0.4;} 50%{ opacity:1;} }
@keyframes ind-spin{ to{ transform:rotate(360deg);} }

/* ---------- GOVERNMENT: capitol with depth + light ---------- */
.ind-gov .ind-glow{ background:radial-gradient(circle,rgba(111,168,199,0.24),transparent 60%); }
.ind-gov .ind-live{ background:var(--bl); color:var(--bl); }
.ind-gov-build{ position:absolute; left:50%; top:54%; transform:translate(-50%,-50%) translateZ(28px); filter:drop-shadow(0 8px 14px rgba(0,0,0,0.45)); }
.ind-gov-dome{ width:38px; height:20px; margin:0 auto; border-radius:38px 38px 0 0; background:linear-gradient(160deg,#A8D2EA,#48708A); box-shadow:0 0 18px rgba(111,168,199,0.5),inset 0 2px 3px rgba(255,255,255,0.5); position:relative; }
.ind-gov-dome::after{ content:''; position:absolute; left:50%; top:-5px; width:2px; height:6px; background:#C4D8E4; transform:translateX(-50%); }
.ind-gov-ped{ width:44px; height:4px; margin:0 auto; background:linear-gradient(#D4DEE4,#9AA6AE); border-radius:2px 2px 0 0; }
.ind-gov-cols{ display:flex; gap:4px; justify-content:center; padding:4px 5px 0; background:linear-gradient(180deg,#C8D2D8,#8894 9C); }
.ind-gov-cols span{ width:4px; height:28px; background:linear-gradient(90deg,#F0F5F8,#A8B4BC,#F0F5F8); border-radius:1px; }
.ind-gov-base{ height:6px; background:linear-gradient(#8A96 9E,#5E6A72); border-radius:1px; }
.ind-gov-flag{ position:absolute; left:50%; top:6%; width:1.5px; height:18px; background:#C4BCCA; transform:translateX(-50%) translateZ(34px); }
.ind-gov-flag::after{ content:''; position:absolute; top:0; left:1.5px; width:14px; height:9px; background:linear-gradient(90deg,var(--bl),#5A8BA8); transform-origin:left; animation:ind-wave 2.6s ease-in-out infinite; }
@keyframes ind-wave{ 0%,100%{ transform:scaleX(1) skewY(0);} 50%{ transform:scaleX(0.82) skewY(-3deg);} }
.ind-gov-beam{ position:absolute; left:50%; top:52%; width:90px; height:90px; margin:-45px 0 0 -45px; border-radius:50%; border:1px solid rgba(111,168,199,0.3); transform:translateZ(20px); animation:ind-ring 3s ease-out infinite; }
@keyframes ind-ring{ 0%{ transform:translateZ(20px) scale(0.4); opacity:0.7;} 100%{ transform:translateZ(20px) scale(1.1); opacity:0;} }

/* ---------- HEALTHCARE & LIFE SCIENCES: DNA helix + molecule + pulse ---------- */
.ind-health .ind-glow{ background:radial-gradient(circle,rgba(124,179,66,0.24),transparent 60%); }
.ind-health .ind-live{ background:var(--g); color:var(--g); }
/* rotating DNA double helix (life sciences / biotech) */
.ind-dna{ position:absolute; left:34%; top:46%; width:40px; height:74px; transform:translate(-50%,-50%) translateZ(28px); transform-style:preserve-3d; animation:ind-spin 7s linear infinite; }
.ind-dna-rung{ position:absolute; left:0; width:100%; height:2px; }
.ind-dna-rung::before,.ind-dna-rung::after{ content:''; position:absolute; width:7px; height:7px; border-radius:50%; top:-3px; box-shadow:0 0 8px currentColor; }
.ind-dna-rung::before{ left:0; }
.ind-dna-rung::after{ right:0; }
.ind-dna-rung i{ position:absolute; left:7px; right:7px; top:1px; height:1.5px; background:rgba(180,227,138,0.4); }
.ind-dna-r1{ top:4px; transform:rotateY(0deg); color:var(--gl); }
.ind-dna-r1::before,.ind-dna-r1::after{ background:var(--gl); }
.ind-dna-r2{ top:16px; transform:rotateY(40deg) scaleX(0.8); color:var(--sf); }
.ind-dna-r2::before,.ind-dna-r2::after{ background:var(--sf); }
.ind-dna-r3{ top:28px; transform:rotateY(80deg) scaleX(0.4); color:var(--ro); }
.ind-dna-r3::before,.ind-dna-r3::after{ background:var(--ro); }
.ind-dna-r4{ top:40px; transform:rotateY(120deg) scaleX(0.6); color:var(--gl); }
.ind-dna-r4::before,.ind-dna-r4::after{ background:var(--gl); }
.ind-dna-r5{ top:52px; transform:rotateY(160deg) scaleX(0.9); color:var(--sf); }
.ind-dna-r5::before,.ind-dna-r5::after{ background:var(--sf); }
.ind-dna-r6{ top:64px; transform:rotateY(200deg) scaleX(0.7); color:var(--ro); }
.ind-dna-r6::before,.ind-dna-r6::after{ background:var(--ro); }
/* molecule (pharma) top-right */
.ind-mol{ position:absolute; right:20%; top:26%; width:34px; height:34px; transform:translateZ(30px); animation:ind-pulse 3s ease-in-out infinite; }
.ind-mol-atom{ position:absolute; border-radius:50%; box-shadow:0 0 10px currentColor; }
.ind-mol-c{ left:12px; top:12px; width:11px; height:11px; background:radial-gradient(circle at 38% 32%,#CDEFA8,#639922); color:var(--g); }
.ind-mol-a1{ left:0; top:2px; width:7px; height:7px; background:var(--sf); color:var(--sf); }
.ind-mol-a2{ right:0; top:6px; width:7px; height:7px; background:var(--ro); color:var(--ro); }
.ind-mol-a3{ left:8px; bottom:0; width:7px; height:7px; background:var(--bl); color:var(--bl); }
.ind-mol-bond{ position:absolute; height:1.5px; background:rgba(255,255,255,0.3); transform-origin:left; }
.ind-mol-b1{ left:6px; top:8px; width:11px; transform:rotate(28deg); }
.ind-mol-b2{ left:16px; top:14px; width:11px; transform:rotate(-12deg); }
.ind-mol-b3{ left:13px; top:18px; width:8px; transform:rotate(72deg); }
/* pulse line (healthcare) bottom */
.ind-health-ecg{ position:absolute; left:6%; right:6%; bottom:16%; height:20px; transform:translateZ(14px); }
.ind-health-ecg svg{ width:100%; height:100%; }
.ind-health-ecg polyline{ fill:none; stroke:#9BD65E; stroke-width:1.5; filter:drop-shadow(0 0 4px rgba(124,179,66,0.7)); stroke-dasharray:220; stroke-dashoffset:220; animation:ind-ecg 2.4s linear infinite; }
@keyframes ind-ecg{ to{ stroke-dashoffset:0; } }
@keyframes ind-pulse{ 0%,100%{ transform:translateZ(30px) scale(0.9); opacity:0.85;} 50%{ transform:translateZ(30px) scale(1.08); opacity:1;} }

/* ---------- FINANCIAL: 3D bars + trend + coins ---------- */
.ind-fin .ind-glow{ background:radial-gradient(circle,rgba(214,138,46,0.22),transparent 60%); }
.ind-fin .ind-live{ background:var(--sf); color:var(--sf); }
.ind-fin-bars{ position:absolute; left:50%; bottom:24%; transform:translateX(-50%) translateZ(24px); display:flex; align-items:flex-end; gap:7px; height:58px; }
.ind-fin-bars i{ width:12px; border-radius:3px 3px 0 0; box-shadow:0 4px 10px rgba(0,0,0,0.4),inset 0 1px 0 rgba(255,255,255,0.3); position:relative; }
.ind-fin-bars i::after{ content:''; position:absolute; left:0; right:0; top:0; height:3px; background:rgba(255,255,255,0.4); border-radius:3px 3px 0 0; }
.ind-fin-bars i:nth-child(1){ background:linear-gradient(#CDEFA8,#639922); animation:ind-bar 3s ease-in-out infinite 0s; }
.ind-fin-bars i:nth-child(2){ background:linear-gradient(#EDC078,#D68A2E); animation:ind-bar 3s ease-in-out infinite 0.35s; }
.ind-fin-bars i:nth-child(3){ background:linear-gradient(#CDEFA8,#639922); animation:ind-bar 3s ease-in-out infinite 0.7s; }
.ind-fin-bars i:nth-child(4){ background:linear-gradient(#F0A0BE,#D4537E); animation:ind-bar 3s ease-in-out infinite 1.05s; }
@keyframes ind-bar{ 0%,100%{ height:16px;} 50%{ height:54px;} }
.ind-fin-trend{ position:absolute; left:24%; right:22%; top:26%; height:20px; transform:translateZ(30px); }
.ind-fin-trend svg{ width:100%; height:100%; overflow:visible; }
.ind-fin-trend polyline{ fill:none; stroke:var(--sf); stroke-width:1.8; filter:drop-shadow(0 0 5px rgba(214,138,46,0.6)); stroke-dasharray:120; stroke-dashoffset:120; animation:ind-trend 3s ease-in-out infinite; }
@keyframes ind-trend{ 0%{ stroke-dashoffset:120;} 55%,100%{ stroke-dashoffset:0;} }
.ind-fin-arrowhead{ position:absolute; right:22%; top:24%; border-left:8px solid var(--sf); border-top:5px solid transparent; border-bottom:5px solid transparent; transform:translateZ(30px) rotate(-30deg); filter:drop-shadow(0 0 4px rgba(214,138,46,0.6)); }

/* ---------- TECHNOLOGY: rotating chip + circuit traces ---------- */
.ind-tech .ind-glow{ background:radial-gradient(circle,rgba(212,83,126,0.22),transparent 60%); }
.ind-tech .ind-live{ background:var(--ro); color:var(--ro); }
.ind-tech-chip{ position:absolute; left:50%; top:46%; width:46px; height:46px; margin:-23px 0 0 -23px; transform:translateZ(30px) rotateX(52deg); transform-style:preserve-3d; animation:ind-spin 9s linear infinite; }
.ind-tech-chip-body{ position:absolute; inset:0; border-radius:7px; background:linear-gradient(150deg,#454D58,#2A2F38); border:1.5px solid var(--ro); box-shadow:0 0 22px rgba(212,83,126,0.55),inset 0 1px 0 rgba(255,255,255,0.15); }
.ind-tech-chip-core{ position:absolute; inset:13px; border-radius:4px; background:radial-gradient(circle at 38% 32%,#F0A0BE,#D4537E); box-shadow:0 0 14px rgba(212,83,126,0.8); animation:ind-pulse 2s ease-in-out infinite; }
.ind-tech-pins{ position:absolute; inset:-6px; }
.ind-tech-pins span{ position:absolute; width:6px; height:2px; background:var(--ro); box-shadow:0 0 5px var(--ro); }
.ind-tech-trace{ position:absolute; inset:0; }
.ind-tech-trace i{ position:absolute; width:5px; height:5px; border-radius:50%; background:var(--gl); box-shadow:0 0 8px var(--gl); }
.ind-tech-t1{ left:16%; top:30%; animation:ind-travel1 2.6s linear infinite; }
.ind-tech-t2{ right:16%; bottom:30%; animation:ind-travel2 2.6s linear infinite 1.3s; }
@keyframes ind-travel1{ 0%{ transform:translate(0,0); opacity:0;} 20%{opacity:1;} 100%{ transform:translate(50px,26px); opacity:0;} }
@keyframes ind-travel2{ 0%{ transform:translate(0,0); opacity:0;} 20%{opacity:1;} 100%{ transform:translate(-50px,-26px); opacity:0;} }

/* ---------- MANUFACTURING: interlocking gears w/ teeth ---------- */
.ind-mfg .ind-glow{ background:radial-gradient(circle,rgba(214,138,46,0.2),transparent 60%); }
.ind-mfg .ind-live{ background:var(--sf); color:var(--sf); }
.ind-gearwrap{ position:absolute; left:50%; top:48%; transform:translate(-50%,-50%) translateZ(26px); }
.ind-gear{ position:absolute; }
.ind-gear svg{ display:block; filter:drop-shadow(0 4px 8px rgba(0,0,0,0.4)); }
.ind-gear-1{ left:-32px; top:-24px; animation:ind-spin 6s linear infinite; }
.ind-gear-2{ left:2px; top:-4px; animation:ind-spin 4s linear infinite reverse; }
.ind-gear-spark{ position:absolute; left:8px; top:-2px; width:4px; height:4px; border-radius:50%; background:var(--sf); box-shadow:0 0 10px var(--sf); animation:ind-blink 0.8s ease-in-out infinite; }

/* ---------- RETAIL: cart + product tags dropping in ---------- */
.ind-retail .ind-glow{ background:radial-gradient(circle,rgba(124,179,66,0.2),transparent 60%); }
.ind-retail .ind-live{ background:var(--g); color:var(--g); }
.ind-cart{ position:absolute; left:42%; top:54%; width:40px; height:32px; transform:translate(-50%,-50%) translateZ(26px); filter:drop-shadow(0 6px 12px rgba(0,0,0,0.4)); }
.ind-cart-body{ position:absolute; inset:0; border:2.5px solid var(--gl); border-radius:0 0 7px 7px; border-top:0; box-shadow:0 0 16px rgba(124,179,66,0.45); }
.ind-cart-body::before{ content:''; position:absolute; left:2px; right:2px; top:5px; height:2px; background:rgba(124,179,66,0.4); }
.ind-cart-handle{ position:absolute; left:-8px; top:-2px; width:10px; height:2.5px; background:var(--gl); border-radius:2px; transform:rotate(-28deg); box-shadow:0 0 6px rgba(124,179,66,0.5); }
.ind-cart-wheel{ position:absolute; bottom:-6px; width:6px; height:6px; border-radius:50%; background:var(--gl); box-shadow:0 0 6px rgba(124,179,66,0.5); }
.ind-cart-wheel.w1{ left:5px; } .ind-cart-wheel.w2{ right:5px; }
.ind-tag{ position:absolute; width:16px; height:12px; border-radius:2px; transform:translateZ(32px); box-shadow:0 3px 8px rgba(0,0,0,0.35); animation:ind-drop 3s ease-in-out infinite; }
.ind-tag::after{ content:''; position:absolute; left:2px; top:3px; width:3px; height:3px; border-radius:50%; background:rgba(255,255,255,0.7); }
.ind-tag.t1{ left:60%; top:22%; background:linear-gradient(150deg,#EDC078,#D68A2E); animation-delay:0s; }
.ind-tag.t2{ left:70%; top:40%; background:linear-gradient(150deg,#F0A0BE,#D4537E); animation-delay:0.7s; }
.ind-tag.t3{ left:62%; top:58%; background:linear-gradient(150deg,#8FC0DC,#48708A); animation-delay:1.4s; }
@keyframes ind-drop{ 0%,100%{ transform:translateZ(32px) translateY(0); opacity:0.75;} 50%{ transform:translateZ(32px) translateY(-6px); opacity:1;} }

@media (prefers-reduced-motion:reduce){ .ind-scene *{ animation:none !important; } .ind-live{ animation:none !important; } }
