.material-symbols-outlined { font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24; }
  @keyframes marquee { 0% { transform: translateX(0%); } 100% { transform: translateX(-50%); } }
  .animate-marquee { display: flex; width: 200%; animation: marquee 28s linear infinite; }
  .animate-marquee:hover { animation-play-state: paused; }
  .grid-mesh {
    background-size: 48px 48px;
    background-image: 
      linear-gradient(to right, rgba(100, 255, 218, 0.03) 1px, transparent 1px),
      linear-gradient(to bottom, rgba(100, 255, 218, 0.03) 1px, transparent 1px);
  }
  .service-row:hover .service-preview { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; }
  .word-globe-container { user-select: none; touch-action: pan-y; cursor: grab; }
  .word-globe-container:active { cursor: grabbing; }
  .specialist-drag-item { user-select: none; touch-action: none; cursor: grab; transition: transform 0.15s ease-out, box-shadow 0.2s ease, border-color 0.2s ease; }
  .specialist-drag-item:active { cursor: grabbing; }
  .specialist-drag-item.is-dragging { z-index: 50 !important; transform: scale(1.04) !important; border-color: #64FFDA !important; box-shadow: 0 0 35px rgba(100, 255, 218, 0.35), 0 20px 40px rgba(0, 0, 0, 0.8) !important; }

  /* Custom Assembler Component Styles */
  .assembler-block {
    user-select: none;
    touch-action: none;
    cursor: grab;
    transition: transform 0.18s ease-out, box-shadow 0.2s ease, border-color 0.2s ease;
  }
  .assembler-block:active { cursor: grabbing; }
  .assembler-block.is-dragging {
    z-index: 60 !important;
    transform: scale(1.04) !important;
    border-color: #64FFDA !important;
    box-shadow: 0 0 24px rgba(100, 255, 218, 0.4), 0 12px 24px rgba(0, 0, 0, 0.6) !important;
  }
  .assembler-block.is-snapping {
    transition: left 0.3s cubic-bezier(0.2, 0.9, 0.2, 1), top 0.3s cubic-bezier(0.2, 0.9, 0.2, 1), transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease !important;
  }
  .assembler-block.is-placed {
    border-color: rgba(100, 255, 218, 0.65) !important;
    box-shadow: 0 0 18px rgba(100, 255, 218, 0.25), inset 0 0 12px rgba(100, 255, 218, 0.08) !important;
  }
  .blueprint-hatch {
    background-size: 16px 16px;
    background-image: 
      linear-gradient(to right, rgba(100, 255, 218, 0.05) 1px, transparent 1px),
      linear-gradient(to bottom, rgba(100, 255, 218, 0.05) 1px, transparent 1px);
  }

/* Respect reduced-motion preferences. */
@media (prefers-reduced-motion: reduce) { .animate-marquee { animation-duration: 60s; } }
