{
  "geometry": {
    "maxWidth": 672,
    "demoWidth": 608,
    "minimumTargetHeight": 176,
    "demoTargetHeight": 202,
    "radius": 16,
    "borderTrailSegment": [
      184,
      32
    ],
    "lowerRimHeight": "58%"
  },
  "loops": [
    {
      "target": "primary rim blob",
      "leftPercent": [
        -5,
        75,
        -5
      ],
      "durationMs": 6000,
      "easing": "ease-in-out"
    },
    {
      "target": "secondary rim blob",
      "leftPercent": [
        65,
        10,
        65
      ],
      "durationMs": 5000,
      "easing": "ease-in-out"
    },
    {
      "target": "tertiary rim blob",
      "leftPercent": [
        25,
        55,
        25
      ],
      "durationMs": 4000,
      "easing": "ease-in-out"
    },
    {
      "target": "border trail",
      "durationMs": 5250,
      "offsetPath": "rect(0 auto auto 0 round 16px)",
      "activeOn": [
        "hover",
        "keyboard focus",
        "file drag"
      ]
    },
    {
      "target": "idle icon",
      "translateY": [
        0,
        -3,
        0
      ],
      "durationMs": 4500
    }
  ],
  "crossfade": {
    "durationMs": 200,
    "enter": {
      "opacity": [
        0,
        1
      ],
      "scale": [
        0.96,
        1
      ],
      "translateY": [
        -2,
        0
      ]
    },
    "exit": {
      "opacity": [
        1,
        0
      ],
      "scale": [
        1,
        0.96
      ],
      "translateY": [
        0,
        2
      ]
    },
    "easing": "ease-out"
  },
  "thumbnails": {
    "durationMs": 300,
    "delayMs": "40 + index * 55",
    "enter": {
      "scale": [
        0.94,
        1
      ],
      "translateY": [
        6,
        0
      ],
      "blurPx": [
        4,
        0
      ]
    }
  },
  "adaptations": [
    "CSS easing approximates Motion easeInOut.",
    "Source simulated upload progress removed; selections remain locally ready.",
    "Source successResetMs=4000 retained for default local acknowledgement; thumbnail variation uses source-supported successResetMs=0 until emptied.",
    "Opaque text backing preserves contrast within a translucent halo panel.",
    "No branded file glyph artwork copied."
  ],
  "reducedMotion": "All motion stopped; content remains complete.",
  "source": {
    "ref": "Cult UI Halo Dropzone",
    "url": "https://www.cult-ui.com/docs/components/halo-dropzone"
  }
}
