coordinateConventions
{
  "designCanvas": [
    1920,
    1080
  ],
  "workingDomain": [
    4096,
    4096
  ],
  "designOriginInWorkPixels": [
    1024,
    1024
  ],
  "workingCenterInDesignPixels": [
    1024,
    1024
  ],
  "codeAxes": "+X right, +Y down, clockwise degrees",
  "fusionAxes": "+X right, +Y up, counterclockwise degrees",
  "pointFormula": "((x+1024)/4096, 1-(y+1024)/4096)",
  "localTransform": "p'=t+o+Rcw(rotation)*scale*(p-o)",
  "defaultOrigin": [
    0,
    0
  ],
  "anchorShift": "c-origin; c=(1024,1024)",
  "scaleRotate": "Center=Pivot=(.5,.5), Size=scale, Angle=-rotation",
  "positionShift": "translation+origin-c",
  "translationCenterFormula": "(.5+dx/4096,.5-dy/4096)",
  "groupDimensions": "Never rescale children or implicitly clip them.",
  "clipOrder": "Local overflow/clip before local transform; parent clip after child composite.",
  "finalCrop": {
    "x": 1024,
    "y": 1024,
    "width": 1920,
    "height": 1080,
    "resize": false
  },
  "textSizeStatus": "fontSize/4096 is an uncalibrated starting estimate, not verified native Text+ fit."
}

rootPipeline
{
  "framesInclusive": [
    0,
    149
  ],
  "fps": {
    "numerator": 30000,
    "denominator": 1001
  },
  "RootPaper": {
    "tool": "Background",
    "width": 4096,
    "height": 4096,
    "color": "#ffffff",
    "alpha": 1
  },
  "FinalCrop": {
    "tool": "Crop",
    "input": "departing-pointer_Merge",
    "x": 1024,
    "y": 1024,
    "width": 1920,
    "height": 1080,
    "resize": false
  },
  "MediaOut": {
    "tool": "MediaOut",
    "input": "FinalCrop",
    "width": 1920,
    "height": 1080
  }
}

nativePalette
{
  "defaults": {
    "ink": {
      "hex": "#243630",
      "rgb": [
        0.1411764705882353,
        0.21176470588235294,
        0.18823529411764706
      ],
      "alpha": 1
    },
    "muted": {
      "hex": "#6c7c74",
      "rgb": [
        0.4235294117647059,
        0.48627450980392156,
        0.4549019607843137
      ],
      "alpha": 1
    },
    "accent": {
      "hex": "#23886f",
      "rgb": [
        0.13725490196078433,
        0.5333333333333333,
        0.43529411764705883
      ],
      "alpha": 1
    }
  },
  "adaptation": {
    "ink": {
      "hex": "#343449",
      "rgb": [
        0.20392156862745098,
        0.20392156862745098,
        0.28627450980392155
      ],
      "alpha": 1
    },
    "muted": {
      "hex": "#73718a",
      "rgb": [
        0.45098039215686275,
        0.44313725490196076,
        0.5411764705882353
      ],
      "alpha": 1
    },
    "accent": {
      "hex": "#7b64a3",
      "rgb": [
        0.4823529411764706,
        0.39215686274509803,
        0.6392156862745098
      ],
      "alpha": 1
    }
  }
}

fusionNodes
[
  {
    "layerId": "conversation",
    "kind": "group",
    "recipePointer": "/layers/0",
    "parentLayerId": null,
    "mergeIndex": 0,
    "nodeId": "conversation_Merge",
    "output": "conversation_Merge",
    "backgroundInput": "RootPaper",
    "foregroundInput": "conversation_Gated",
    "activeLocalFrames": [
      0,
      150
    ],
    "effectiveActiveLocalFrames": [
      0,
      150
    ],
    "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
    "staticControls": {
      "start": 0,
      "end": 150,
      "x": 0,
      "width": 1920,
      "height": 1080
    },
    "rawNumericControls": {
      "x": 0,
      "y": [
        {
          "frame": 0,
          "value": 0,
          "easing": "smooth"
        },
        {
          "frame": 140,
          "value": 0,
          "easing": "smooth"
        },
        {
          "frame": 141,
          "value": -64,
          "easing": "smooth"
        },
        {
          "frame": 144,
          "value": -156,
          "easing": "smooth"
        },
        {
          "frame": 149,
          "value": -184,
          "easing": "smooth"
        }
      ],
      "width": 1920,
      "height": 1080
    },
    "tools": {
      "Construct": "conversation_Construct",
      "LocalMask": "conversation_LocalMask",
      "AnchorShift": "conversation_AnchorShift",
      "ScaleRotate": "conversation_ScaleRotate",
      "Position": "conversation_Position",
      "Gated": "conversation_Gated",
      "Merge": "conversation_Merge"
    },
    "connections": [
      "conversation_Construct -> conversation_LocalMask -> conversation_AnchorShift -> conversation_ScaleRotate -> conversation_Position -> conversation_Gated -> conversation_Merge.Foreground",
      "RootPaper -> conversation_Merge.Background"
    ],
    "mask": {
      "overflow": "visible",
      "clip": null,
      "cornerRadiusPx": 0,
      "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
    },
    "children": [
      {
        "layerId": "prior-bubble",
        "kind": "rect",
        "recipePointer": "/layers/0/children/0",
        "parentLayerId": "conversation",
        "mergeIndex": 0,
        "nodeId": "prior-bubble_Merge",
        "output": "prior-bubble_Merge",
        "backgroundInput": "conversation_Transparent",
        "foregroundInput": "prior-bubble_Gated",
        "activeLocalFrames": [
          0,
          150
        ],
        "effectiveActiveLocalFrames": [
          0,
          150
        ],
        "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
        "staticControls": {
          "start": 0,
          "end": 150,
          "x": 636,
          "y": -160,
          "width": 1120,
          "height": 348,
          "fill": "#f2f4f0",
          "radius": 40
        },
        "rawNumericControls": {
          "x": 636,
          "y": -160,
          "width": 1120,
          "height": 348,
          "radius": 40
        },
        "tools": {
          "Construct": "prior-bubble_Construct",
          "LocalMask": "prior-bubble_LocalMask",
          "AnchorShift": "prior-bubble_AnchorShift",
          "ScaleRotate": "prior-bubble_ScaleRotate",
          "Position": "prior-bubble_Position",
          "Gated": "prior-bubble_Gated",
          "Merge": "prior-bubble_Merge"
        },
        "connections": [
          "prior-bubble_Construct -> prior-bubble_LocalMask -> prior-bubble_AnchorShift -> prior-bubble_ScaleRotate -> prior-bubble_Position -> prior-bubble_Gated -> prior-bubble_Merge.Foreground",
          "conversation_Transparent -> prior-bubble_Merge.Background"
        ],
        "mask": {
          "overflow": "visible",
          "clip": null,
          "cornerRadiusPx": 40,
          "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
        },
        "construction": "Background through local Rectangle/Ellipse mask. For CSS border, use outer stroke-color mask and inset fill mask (inset by strokeWidth, inner radius=max(0,radius-strokeWidth)); border is inward, not a centered SVG stroke. Ellipse ignores radius."
      },
      {
        "layerId": "prior-request",
        "kind": "text",
        "recipePointer": "/layers/0/children/1",
        "parentLayerId": "conversation",
        "mergeIndex": 1,
        "nodeId": "prior-request_Merge",
        "output": "prior-request_Merge",
        "backgroundInput": "prior-bubble_Merge",
        "foregroundInput": "prior-request_Gated",
        "activeLocalFrames": [
          0,
          150
        ],
        "effectiveActiveLocalFrames": [
          0,
          150
        ],
        "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
        "staticControls": {
          "start": 0,
          "end": 150,
          "slot": "priorRequest",
          "x": 670,
          "y": -100,
          "width": 1040,
          "height": 264,
          "fontSize": 32,
          "weight": 400,
          "lineHeight": 1.45,
          "color": "$ink"
        },
        "rawNumericControls": {
          "x": 670,
          "y": -100,
          "width": 1040,
          "height": 264
        },
        "tools": {
          "Construct": "prior-request_Construct",
          "LocalMask": "prior-request_LocalMask",
          "AnchorShift": "prior-request_AnchorShift",
          "ScaleRotate": "prior-request_ScaleRotate",
          "Position": "prior-request_Position",
          "Gated": "prior-request_Gated",
          "Merge": "prior-request_Merge"
        },
        "connections": [
          "prior-request_Construct -> prior-request_LocalMask -> prior-request_AnchorShift -> prior-request_ScaleRotate -> prior-request_Position -> prior-request_Gated -> prior-request_Merge.Foreground",
          "prior-bubble_Merge -> prior-request_Merge.Background"
        ],
        "mask": {
          "overflow": "visible",
          "clip": null,
          "cornerRadiusPx": 0,
          "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
        },
        "content": {
          "defaults": "Make a reusable workshop checklist.\nKeep the supplies in a short list.\nEnd with one practical reminder.",
          "adaptation": "Make a reusable planting checklist.\nKeep the seedlings in a short list.\nEnd with one practical reminder."
        },
        "construction": "Text+ with bundled Geist, explicit weight and literal line breaks. Disable auto-fit/reflow. Preserve the pixel box and line advance. For reveal, step StyledText to prefix + visible first N characters + suffix at each reveal step; from=start. No type scaling.",
        "textControls": {
          "font": "Geist",
          "fontFile": "project/public/fonts/Geist.ttf",
          "weight": 400,
          "fontSizePx": 32,
          "lineAdvancePx": 46.4,
          "trackingPx": 0,
          "alignment": "left",
          "verticalAlignment": "top",
          "nominalTextPlusSizeStartingEstimate": 0.0078125,
          "sizeStatus": "Unverified starting estimate, not a calibrated Fusion conversion. Match actual glyph footprint with the licensed font before pixel review.",
          "reveal": null,
          "prefix": "",
          "suffix": ""
        }
      },
      {
        "layerId": "thinking-label",
        "kind": "text",
        "recipePointer": "/layers/0/children/2",
        "parentLayerId": "conversation",
        "mergeIndex": 2,
        "nodeId": "thinking-label_Merge",
        "output": "thinking-label_Merge",
        "backgroundInput": "prior-request_Merge",
        "foregroundInput": "thinking-label_Gated",
        "activeLocalFrames": [
          0,
          44
        ],
        "effectiveActiveLocalFrames": [
          0,
          44
        ],
        "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
        "staticControls": {
          "start": 0,
          "end": 44,
          "slot": "thinking",
          "x": 158,
          "y": 376,
          "width": 1480,
          "height": 64,
          "fontSize": 34,
          "weight": 400,
          "lineHeight": 1.2,
          "color": "$muted"
        },
        "rawNumericControls": {
          "x": 158,
          "y": 376,
          "width": 1480,
          "height": 64
        },
        "tools": {
          "Construct": "thinking-label_Construct",
          "LocalMask": "thinking-label_LocalMask",
          "AnchorShift": "thinking-label_AnchorShift",
          "ScaleRotate": "thinking-label_ScaleRotate",
          "Position": "thinking-label_Position",
          "Gated": "thinking-label_Gated",
          "Merge": "thinking-label_Merge"
        },
        "connections": [
          "thinking-label_Construct -> thinking-label_LocalMask -> thinking-label_AnchorShift -> thinking-label_ScaleRotate -> thinking-label_Position -> thinking-label_Gated -> thinking-label_Merge.Foreground",
          "prior-request_Merge -> thinking-label_Merge.Background"
        ],
        "mask": {
          "overflow": "visible",
          "clip": null,
          "cornerRadiusPx": 0,
          "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
        },
        "content": {
          "defaults": "Planning",
          "adaptation": "Planning"
        },
        "construction": "Text+ with bundled Geist, explicit weight and literal line breaks. Disable auto-fit/reflow. Preserve the pixel box and line advance. For reveal, step StyledText to prefix + visible first N characters + suffix at each reveal step; from=start. No type scaling.",
        "textControls": {
          "font": "Geist",
          "fontFile": "project/public/fonts/Geist.ttf",
          "weight": 400,
          "fontSizePx": 34,
          "lineAdvancePx": 40.8,
          "trackingPx": 0,
          "alignment": "left",
          "verticalAlignment": "top",
          "nominalTextPlusSizeStartingEstimate": 0.00830078125,
          "sizeStatus": "Unverified starting estimate, not a calibrated Fusion conversion. Match actual glyph footprint with the licensed font before pixel review.",
          "reveal": null,
          "prefix": "",
          "suffix": ""
        }
      },
      {
        "layerId": "helper-notice",
        "kind": "text",
        "recipePointer": "/layers/0/children/3",
        "parentLayerId": "conversation",
        "mergeIndex": 3,
        "nodeId": "helper-notice_Merge",
        "output": "helper-notice_Merge",
        "backgroundInput": "thinking-label_Merge",
        "foregroundInput": "helper-notice_Gated",
        "activeLocalFrames": [
          44,
          150
        ],
        "effectiveActiveLocalFrames": [
          44,
          150
        ],
        "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
        "staticControls": {
          "start": 44,
          "end": 150,
          "slot": "notice",
          "x": 158,
          "y": 394,
          "width": 1480,
          "height": 62,
          "fontSize": 33,
          "weight": 400,
          "lineHeight": 1.2,
          "color": "$muted"
        },
        "rawNumericControls": {
          "x": 158,
          "y": 394,
          "width": 1480,
          "height": 62
        },
        "tools": {
          "Construct": "helper-notice_Construct",
          "LocalMask": "helper-notice_LocalMask",
          "AnchorShift": "helper-notice_AnchorShift",
          "ScaleRotate": "helper-notice_ScaleRotate",
          "Position": "helper-notice_Position",
          "Gated": "helper-notice_Gated",
          "Merge": "helper-notice_Merge"
        },
        "connections": [
          "helper-notice_Construct -> helper-notice_LocalMask -> helper-notice_AnchorShift -> helper-notice_ScaleRotate -> helper-notice_Position -> helper-notice_Gated -> helper-notice_Merge.Foreground",
          "thinking-label_Merge -> helper-notice_Merge.Background"
        ],
        "mask": {
          "overflow": "visible",
          "clip": null,
          "cornerRadiusPx": 0,
          "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
        },
        "content": {
          "defaults": "Used workshop checklist helper.",
          "adaptation": "Used planting checklist helper."
        },
        "construction": "Text+ with bundled Geist, explicit weight and literal line breaks. Disable auto-fit/reflow. Preserve the pixel box and line advance. For reveal, step StyledText to prefix + visible first N characters + suffix at each reveal step; from=start. No type scaling.",
        "textControls": {
          "font": "Geist",
          "fontFile": "project/public/fonts/Geist.ttf",
          "weight": 400,
          "fontSizePx": 33,
          "lineAdvancePx": 39.6,
          "trackingPx": 0,
          "alignment": "left",
          "verticalAlignment": "top",
          "nominalTextPlusSizeStartingEstimate": 0.008056640625,
          "sizeStatus": "Unverified starting estimate, not a calibrated Fusion conversion. Match actual glyph footprint with the licensed font before pixel review.",
          "reveal": null,
          "prefix": "",
          "suffix": ""
        }
      },
      {
        "layerId": "residual-thinking",
        "kind": "text",
        "recipePointer": "/layers/0/children/4",
        "parentLayerId": "conversation",
        "mergeIndex": 4,
        "nodeId": "residual-thinking_Merge",
        "output": "residual-thinking_Merge",
        "backgroundInput": "helper-notice_Merge",
        "foregroundInput": "residual-thinking_Gated",
        "activeLocalFrames": [
          44,
          45
        ],
        "effectiveActiveLocalFrames": [
          44,
          45
        ],
        "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
        "staticControls": {
          "start": 44,
          "end": 45,
          "slot": "thinking",
          "x": 146,
          "y": 542,
          "width": 1480,
          "height": 64,
          "fontSize": 34,
          "weight": 400,
          "lineHeight": 1.2,
          "color": "$muted",
          "opacity": 0.3
        },
        "rawNumericControls": {
          "x": 146,
          "y": 542,
          "width": 1480,
          "height": 64,
          "opacity": 0.3
        },
        "tools": {
          "Construct": "residual-thinking_Construct",
          "LocalMask": "residual-thinking_LocalMask",
          "AnchorShift": "residual-thinking_AnchorShift",
          "ScaleRotate": "residual-thinking_ScaleRotate",
          "Position": "residual-thinking_Position",
          "Gated": "residual-thinking_Gated",
          "Merge": "residual-thinking_Merge"
        },
        "connections": [
          "residual-thinking_Construct -> residual-thinking_LocalMask -> residual-thinking_AnchorShift -> residual-thinking_ScaleRotate -> residual-thinking_Position -> residual-thinking_Gated -> residual-thinking_Merge.Foreground",
          "helper-notice_Merge -> residual-thinking_Merge.Background"
        ],
        "mask": {
          "overflow": "visible",
          "clip": null,
          "cornerRadiusPx": 0,
          "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
        },
        "content": {
          "defaults": "Planning",
          "adaptation": "Planning"
        },
        "construction": "Text+ with bundled Geist, explicit weight and literal line breaks. Disable auto-fit/reflow. Preserve the pixel box and line advance. For reveal, step StyledText to prefix + visible first N characters + suffix at each reveal step; from=start. No type scaling.",
        "textControls": {
          "font": "Geist",
          "fontFile": "project/public/fonts/Geist.ttf",
          "weight": 400,
          "fontSizePx": 34,
          "lineAdvancePx": 40.8,
          "trackingPx": 0,
          "alignment": "left",
          "verticalAlignment": "top",
          "nominalTextPlusSizeStartingEstimate": 0.00830078125,
          "sizeStatus": "Unverified starting estimate, not a calibrated Fusion conversion. Match actual glyph footprint with the licensed font before pixel review.",
          "reveal": null,
          "prefix": "",
          "suffix": ""
        }
      },
      {
        "layerId": "answer-line",
        "kind": "text",
        "recipePointer": "/layers/0/children/5",
        "parentLayerId": "conversation",
        "mergeIndex": 5,
        "nodeId": "answer-line_Merge",
        "output": "answer-line_Merge",
        "backgroundInput": "residual-thinking_Merge",
        "foregroundInput": "answer-line_Gated",
        "activeLocalFrames": [
          45,
          150
        ],
        "effectiveActiveLocalFrames": [
          45,
          150
        ],
        "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
        "staticControls": {
          "start": 45,
          "end": 150,
          "slot": "answer",
          "x": 158,
          "y": 548,
          "width": 1500,
          "height": 68,
          "fontSize": 33,
          "weight": 400,
          "lineHeight": 1.2,
          "color": "$ink",
          "reveal": {
            "unit": "characters",
            "from": "start",
            "steps": [
              {
                "frame": 45,
                "count": 2
              },
              {
                "frame": 46,
                "count": 3
              },
              {
                "frame": 47,
                "count": 5
              },
              {
                "frame": 48,
                "count": 7
              },
              {
                "frame": 49,
                "count": 8
              },
              {
                "frame": 50,
                "count": 10
              },
              {
                "frame": 51,
                "count": 12
              },
              {
                "frame": 52,
                "count": 13
              },
              {
                "frame": 53,
                "count": 15
              },
              {
                "frame": 54,
                "count": 17
              },
              {
                "frame": 55,
                "count": 18
              },
              {
                "frame": 56,
                "count": 20
              },
              {
                "frame": 57,
                "count": 22
              },
              {
                "frame": 58,
                "count": 23
              },
              {
                "frame": 59,
                "count": 25
              },
              {
                "frame": 60,
                "count": 27
              },
              {
                "frame": 61,
                "count": 28
              },
              {
                "frame": 62,
                "count": 30
              },
              {
                "frame": 63,
                "count": 32
              },
              {
                "frame": 64,
                "count": 33
              },
              {
                "frame": 65,
                "count": 35
              },
              {
                "frame": 66,
                "count": 37
              },
              {
                "frame": 67,
                "count": 38
              },
              {
                "frame": 68,
                "count": 40
              },
              {
                "frame": 69,
                "count": 42
              },
              {
                "frame": 70,
                "count": 43
              },
              {
                "frame": 71,
                "count": 45
              },
              {
                "frame": 72,
                "count": 47
              },
              {
                "frame": 73,
                "count": 48
              },
              {
                "frame": 74,
                "count": 50
              },
              {
                "frame": 75,
                "count": 52
              },
              {
                "frame": 76,
                "count": 53
              },
              {
                "frame": 77,
                "count": 55
              }
            ]
          }
        },
        "rawNumericControls": {
          "x": 158,
          "y": 548,
          "width": 1500,
          "height": 68
        },
        "tools": {
          "Construct": "answer-line_Construct",
          "LocalMask": "answer-line_LocalMask",
          "AnchorShift": "answer-line_AnchorShift",
          "ScaleRotate": "answer-line_ScaleRotate",
          "Position": "answer-line_Position",
          "Gated": "answer-line_Gated",
          "Merge": "answer-line_Merge"
        },
        "connections": [
          "answer-line_Construct -> answer-line_LocalMask -> answer-line_AnchorShift -> answer-line_ScaleRotate -> answer-line_Position -> answer-line_Gated -> answer-line_Merge.Foreground",
          "residual-thinking_Merge -> answer-line_Merge.Background"
        ],
        "mask": {
          "overflow": "visible",
          "clip": null,
          "cornerRadiusPx": 0,
          "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
        },
        "content": {
          "defaults": "The workshop checklist is ready as a reusable download.",
          "adaptation": "The planting checklist is ready as a reusable download."
        },
        "construction": "Text+ with bundled Geist, explicit weight and literal line breaks. Disable auto-fit/reflow. Preserve the pixel box and line advance. For reveal, step StyledText to prefix + visible first N characters + suffix at each reveal step; from=start. No type scaling.",
        "textControls": {
          "font": "Geist",
          "fontFile": "project/public/fonts/Geist.ttf",
          "weight": 400,
          "fontSizePx": 33,
          "lineAdvancePx": 39.6,
          "trackingPx": 0,
          "alignment": "left",
          "verticalAlignment": "top",
          "nominalTextPlusSizeStartingEstimate": 0.008056640625,
          "sizeStatus": "Unverified starting estimate, not a calibrated Fusion conversion. Match actual glyph footprint with the licensed font before pixel review.",
          "reveal": {
            "unit": "characters",
            "from": "start",
            "steps": [
              {
                "frame": 45,
                "count": 2
              },
              {
                "frame": 46,
                "count": 3
              },
              {
                "frame": 47,
                "count": 5
              },
              {
                "frame": 48,
                "count": 7
              },
              {
                "frame": 49,
                "count": 8
              },
              {
                "frame": 50,
                "count": 10
              },
              {
                "frame": 51,
                "count": 12
              },
              {
                "frame": 52,
                "count": 13
              },
              {
                "frame": 53,
                "count": 15
              },
              {
                "frame": 54,
                "count": 17
              },
              {
                "frame": 55,
                "count": 18
              },
              {
                "frame": 56,
                "count": 20
              },
              {
                "frame": 57,
                "count": 22
              },
              {
                "frame": 58,
                "count": 23
              },
              {
                "frame": 59,
                "count": 25
              },
              {
                "frame": 60,
                "count": 27
              },
              {
                "frame": 61,
                "count": 28
              },
              {
                "frame": 62,
                "count": 30
              },
              {
                "frame": 63,
                "count": 32
              },
              {
                "frame": 64,
                "count": 33
              },
              {
                "frame": 65,
                "count": 35
              },
              {
                "frame": 66,
                "count": 37
              },
              {
                "frame": 67,
                "count": 38
              },
              {
                "frame": 68,
                "count": 40
              },
              {
                "frame": 69,
                "count": 42
              },
              {
                "frame": 70,
                "count": 43
              },
              {
                "frame": 71,
                "count": 45
              },
              {
                "frame": 72,
                "count": 47
              },
              {
                "frame": 73,
                "count": 48
              },
              {
                "frame": 74,
                "count": 50
              },
              {
                "frame": 75,
                "count": 52
              },
              {
                "frame": 76,
                "count": 53
              },
              {
                "frame": 77,
                "count": 55
              }
            ]
          },
          "prefix": "",
          "suffix": ""
        }
      },
      {
        "layerId": "download-line",
        "kind": "text",
        "recipePointer": "/layers/0/children/6",
        "parentLayerId": "conversation",
        "mergeIndex": 6,
        "nodeId": "download-line_Merge",
        "output": "download-line_Merge",
        "backgroundInput": "answer-line_Merge",
        "foregroundInput": "download-line_Gated",
        "activeLocalFrames": [
          78,
          150
        ],
        "effectiveActiveLocalFrames": [
          78,
          150
        ],
        "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
        "staticControls": {
          "start": 78,
          "end": 150,
          "slot": "download",
          "x": 158,
          "y": 638,
          "width": 940,
          "height": 58,
          "fontSize": 32,
          "weight": 400,
          "lineHeight": 1.2,
          "color": "$accent",
          "reveal": {
            "unit": "characters",
            "from": "start",
            "steps": [
              {
                "frame": 78,
                "count": 6
              },
              {
                "frame": 79,
                "count": 12
              },
              {
                "frame": 80,
                "count": 19
              },
              {
                "frame": 81,
                "count": 25
              }
            ]
          }
        },
        "rawNumericControls": {
          "x": 158,
          "y": 638,
          "width": 940,
          "height": 58
        },
        "tools": {
          "Construct": "download-line_Construct",
          "LocalMask": "download-line_LocalMask",
          "AnchorShift": "download-line_AnchorShift",
          "ScaleRotate": "download-line_ScaleRotate",
          "Position": "download-line_Position",
          "Gated": "download-line_Gated",
          "Merge": "download-line_Merge"
        },
        "connections": [
          "download-line_Construct -> download-line_LocalMask -> download-line_AnchorShift -> download-line_ScaleRotate -> download-line_Position -> download-line_Gated -> download-line_Merge.Foreground",
          "answer-line_Merge -> download-line_Merge.Background"
        ],
        "mask": {
          "overflow": "visible",
          "clip": null,
          "cornerRadiusPx": 0,
          "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
        },
        "content": {
          "defaults": "Download workshop-kit.zip",
          "adaptation": "Download planting-kit.zip"
        },
        "construction": "Text+ with bundled Geist, explicit weight and literal line breaks. Disable auto-fit/reflow. Preserve the pixel box and line advance. For reveal, step StyledText to prefix + visible first N characters + suffix at each reveal step; from=start. No type scaling.",
        "textControls": {
          "font": "Geist",
          "fontFile": "project/public/fonts/Geist.ttf",
          "weight": 400,
          "fontSizePx": 32,
          "lineAdvancePx": 38.4,
          "trackingPx": 0,
          "alignment": "left",
          "verticalAlignment": "top",
          "nominalTextPlusSizeStartingEstimate": 0.0078125,
          "sizeStatus": "Unverified starting estimate, not a calibrated Fusion conversion. Match actual glyph footprint with the licensed font before pixel review.",
          "reveal": {
            "unit": "characters",
            "from": "start",
            "steps": [
              {
                "frame": 78,
                "count": 6
              },
              {
                "frame": 79,
                "count": 12
              },
              {
                "frame": 80,
                "count": 19
              },
              {
                "frame": 81,
                "count": 25
              }
            ]
          },
          "prefix": "",
          "suffix": ""
        }
      },
      {
        "layerId": "trailing-markup",
        "kind": "group",
        "recipePointer": "/layers/0/children/7",
        "parentLayerId": "conversation",
        "mergeIndex": 7,
        "nodeId": "trailing-markup_Merge",
        "output": "trailing-markup_Merge",
        "backgroundInput": "download-line_Merge",
        "foregroundInput": "trailing-markup_Gated",
        "activeLocalFrames": [
          90,
          150
        ],
        "effectiveActiveLocalFrames": [
          90,
          150
        ],
        "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
        "staticControls": {
          "start": 90,
          "end": 150,
          "x": 573,
          "y": 643,
          "width": 146,
          "height": 46
        },
        "rawNumericControls": {
          "x": 573,
          "y": 643,
          "width": 146,
          "height": 46
        },
        "tools": {
          "Construct": "trailing-markup_Construct",
          "LocalMask": "trailing-markup_LocalMask",
          "AnchorShift": "trailing-markup_AnchorShift",
          "ScaleRotate": "trailing-markup_ScaleRotate",
          "Position": "trailing-markup_Position",
          "Gated": "trailing-markup_Gated",
          "Merge": "trailing-markup_Merge"
        },
        "connections": [
          "trailing-markup_Construct -> trailing-markup_LocalMask -> trailing-markup_AnchorShift -> trailing-markup_ScaleRotate -> trailing-markup_Position -> trailing-markup_Gated -> trailing-markup_Merge.Foreground",
          "download-line_Merge -> trailing-markup_Merge.Background"
        ],
        "mask": {
          "overflow": "visible",
          "clip": null,
          "cornerRadiusPx": 0,
          "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
        },
        "children": [
          {
            "layerId": "code-chip-paper",
            "kind": "rect",
            "recipePointer": "/layers/0/children/7/children/0",
            "parentLayerId": "trailing-markup",
            "mergeIndex": 0,
            "nodeId": "code-chip-paper_Merge",
            "output": "code-chip-paper_Merge",
            "backgroundInput": "trailing-markup_Transparent",
            "foregroundInput": "code-chip-paper_Gated",
            "activeLocalFrames": [
              110,
              150
            ],
            "effectiveActiveLocalFrames": [
              110,
              150
            ],
            "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
            "staticControls": {
              "start": 110,
              "end": 150,
              "x": 0,
              "y": 0,
              "width": 60,
              "height": 38,
              "fill": "#f2f4f0",
              "radius": 8
            },
            "rawNumericControls": {
              "x": 0,
              "y": 0,
              "width": 60,
              "height": 38,
              "radius": 8
            },
            "tools": {
              "Construct": "code-chip-paper_Construct",
              "LocalMask": "code-chip-paper_LocalMask",
              "AnchorShift": "code-chip-paper_AnchorShift",
              "ScaleRotate": "code-chip-paper_ScaleRotate",
              "Position": "code-chip-paper_Position",
              "Gated": "code-chip-paper_Gated",
              "Merge": "code-chip-paper_Merge"
            },
            "connections": [
              "code-chip-paper_Construct -> code-chip-paper_LocalMask -> code-chip-paper_AnchorShift -> code-chip-paper_ScaleRotate -> code-chip-paper_Position -> code-chip-paper_Gated -> code-chip-paper_Merge.Foreground",
              "trailing-markup_Transparent -> code-chip-paper_Merge.Background"
            ],
            "mask": {
              "overflow": "visible",
              "clip": null,
              "cornerRadiusPx": 8,
              "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
            },
            "construction": "Background through local Rectangle/Ellipse mask. For CSS border, use outer stroke-color mask and inset fill mask (inset by strokeWidth, inner radius=max(0,radius-strokeWidth)); border is inward, not a centered SVG stroke. Ellipse ignores radius."
          },
          {
            "layerId": "code-chip",
            "kind": "text",
            "recipePointer": "/layers/0/children/7/children/1",
            "parentLayerId": "trailing-markup",
            "mergeIndex": 1,
            "nodeId": "code-chip_Merge",
            "output": "code-chip_Merge",
            "backgroundInput": "code-chip-paper_Merge",
            "foregroundInput": "code-chip_Gated",
            "activeLocalFrames": [
              110,
              150
            ],
            "effectiveActiveLocalFrames": [
              110,
              150
            ],
            "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
            "staticControls": {
              "start": 110,
              "end": 150,
              "slot": "codeMark",
              "x": 3,
              "y": 4,
              "width": 54,
              "height": 34,
              "fontSize": 23,
              "weight": 400,
              "lineHeight": 1.2,
              "color": "$muted",
              "align": "center"
            },
            "rawNumericControls": {
              "x": 3,
              "y": 4,
              "width": 54,
              "height": 34
            },
            "tools": {
              "Construct": "code-chip_Construct",
              "LocalMask": "code-chip_LocalMask",
              "AnchorShift": "code-chip_AnchorShift",
              "ScaleRotate": "code-chip_ScaleRotate",
              "Position": "code-chip_Position",
              "Gated": "code-chip_Gated",
              "Merge": "code-chip_Merge"
            },
            "connections": [
              "code-chip_Construct -> code-chip_LocalMask -> code-chip_AnchorShift -> code-chip_ScaleRotate -> code-chip_Position -> code-chip_Gated -> code-chip_Merge.Foreground",
              "code-chip-paper_Merge -> code-chip_Merge.Background"
            ],
            "mask": {
              "overflow": "visible",
              "clip": null,
              "cornerRadiusPx": 0,
              "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
            },
            "content": {
              "defaults": "</>",
              "adaptation": "</>"
            },
            "construction": "Text+ with bundled Geist, explicit weight and literal line breaks. Disable auto-fit/reflow. Preserve the pixel box and line advance. For reveal, step StyledText to prefix + visible first N characters + suffix at each reveal step; from=start. No type scaling.",
            "textControls": {
              "font": "Geist",
              "fontFile": "project/public/fonts/Geist.ttf",
              "weight": 400,
              "fontSizePx": 23,
              "lineAdvancePx": 27.599999999999998,
              "trackingPx": 0,
              "alignment": "center",
              "verticalAlignment": "top",
              "nominalTextPlusSizeStartingEstimate": 0.005615234375,
              "sizeStatus": "Unverified starting estimate, not a calibrated Fusion conversion. Match actual glyph footprint with the licensed font before pixel review.",
              "reveal": null,
              "prefix": "",
              "suffix": ""
            }
          },
          {
            "layerId": "unfinished-punctuation",
            "kind": "text",
            "recipePointer": "/layers/0/children/7/children/2",
            "parentLayerId": "trailing-markup",
            "mergeIndex": 2,
            "nodeId": "unfinished-punctuation_Merge",
            "output": "unfinished-punctuation_Merge",
            "backgroundInput": "code-chip_Merge",
            "foregroundInput": "unfinished-punctuation_Gated",
            "activeLocalFrames": [
              90,
              150
            ],
            "effectiveActiveLocalFrames": [
              90,
              150
            ],
            "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
            "staticControls": {
              "start": 90,
              "end": 150,
              "slot": "fragment",
              "y": 0,
              "width": 64,
              "height": 44,
              "fontSize": 30,
              "weight": 400,
              "lineHeight": 1.2,
              "color": "$ink"
            },
            "rawNumericControls": {
              "x": [
                {
                  "frame": 90,
                  "value": 0,
                  "easing": "hold"
                },
                {
                  "frame": 110,
                  "value": 68,
                  "easing": "smooth"
                }
              ],
              "y": 0,
              "width": 64,
              "height": 44
            },
            "tools": {
              "Construct": "unfinished-punctuation_Construct",
              "LocalMask": "unfinished-punctuation_LocalMask",
              "AnchorShift": "unfinished-punctuation_AnchorShift",
              "ScaleRotate": "unfinished-punctuation_ScaleRotate",
              "Position": "unfinished-punctuation_Position",
              "Gated": "unfinished-punctuation_Gated",
              "Merge": "unfinished-punctuation_Merge"
            },
            "connections": [
              "unfinished-punctuation_Construct -> unfinished-punctuation_LocalMask -> unfinished-punctuation_AnchorShift -> unfinished-punctuation_ScaleRotate -> unfinished-punctuation_Position -> unfinished-punctuation_Gated -> unfinished-punctuation_Merge.Foreground",
              "code-chip_Merge -> unfinished-punctuation_Merge.Background"
            ],
            "mask": {
              "overflow": "visible",
              "clip": null,
              "cornerRadiusPx": 0,
              "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
            },
            "content": {
              "defaults": "_)",
              "adaptation": "_)"
            },
            "construction": "Text+ with bundled Geist, explicit weight and literal line breaks. Disable auto-fit/reflow. Preserve the pixel box and line advance. For reveal, step StyledText to prefix + visible first N characters + suffix at each reveal step; from=start. No type scaling.",
            "textControls": {
              "font": "Geist",
              "fontFile": "project/public/fonts/Geist.ttf",
              "weight": 400,
              "fontSizePx": 30,
              "lineAdvancePx": 36.0,
              "trackingPx": 0,
              "alignment": "left",
              "verticalAlignment": "top",
              "nominalTextPlusSizeStartingEstimate": 0.00732421875,
              "sizeStatus": "Unverified starting estimate, not a calibrated Fusion conversion. Match actual glyph footprint with the licensed font before pixel review.",
              "reveal": null,
              "prefix": "",
              "suffix": ""
            }
          }
        ],
        "constructInput": "unfinished-punctuation_Merge",
        "construction": "Transparent domain -> ordered child merges -> local mask -> group transform -> group alpha. Child opacity is not a substitute for group opacity. Group dimensions never implicitly scale children."
      },
      {
        "layerId": "artifact-preview",
        "kind": "group",
        "recipePointer": "/layers/0/children/8",
        "parentLayerId": "conversation",
        "mergeIndex": 8,
        "nodeId": "artifact-preview_Merge",
        "output": "artifact-preview_Merge",
        "backgroundInput": "trailing-markup_Merge",
        "foregroundInput": "artifact-preview_Gated",
        "activeLocalFrames": [
          87,
          150
        ],
        "effectiveActiveLocalFrames": [
          87,
          150
        ],
        "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
        "staticControls": {
          "start": 87,
          "end": 150,
          "x": 158,
          "y": 720,
          "width": 1600,
          "overflow": "hidden"
        },
        "rawNumericControls": {
          "x": 158,
          "y": 720,
          "width": 1600,
          "height": [
            {
              "frame": 87,
              "value": 112,
              "easing": "smooth"
            },
            {
              "frame": 140,
              "value": 112,
              "easing": "smooth"
            },
            {
              "frame": 141,
              "value": 176,
              "easing": "smooth"
            },
            {
              "frame": 149,
              "value": 184,
              "easing": "smooth"
            }
          ]
        },
        "tools": {
          "Construct": "artifact-preview_Construct",
          "LocalMask": "artifact-preview_LocalMask",
          "AnchorShift": "artifact-preview_AnchorShift",
          "ScaleRotate": "artifact-preview_ScaleRotate",
          "Position": "artifact-preview_Position",
          "Gated": "artifact-preview_Gated",
          "Merge": "artifact-preview_Merge"
        },
        "connections": [
          "artifact-preview_Construct -> artifact-preview_LocalMask -> artifact-preview_AnchorShift -> artifact-preview_ScaleRotate -> artifact-preview_Position -> artifact-preview_Gated -> artifact-preview_Merge.Foreground",
          "trailing-markup_Merge -> artifact-preview_Merge.Background"
        ],
        "mask": {
          "overflow": "hidden",
          "clip": null,
          "cornerRadiusPx": 0,
          "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
        },
        "children": [
          {
            "layerId": "preview-paper",
            "kind": "rect",
            "recipePointer": "/layers/0/children/8/children/0",
            "parentLayerId": "artifact-preview",
            "mergeIndex": 0,
            "nodeId": "preview-paper_Merge",
            "output": "preview-paper_Merge",
            "backgroundInput": "artifact-preview_Transparent",
            "foregroundInput": "preview-paper_Gated",
            "activeLocalFrames": [
              0,
              150
            ],
            "effectiveActiveLocalFrames": [
              87,
              150
            ],
            "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
            "staticControls": {
              "start": 0,
              "end": 150,
              "x": 0,
              "y": 0,
              "width": 1600,
              "fill": "#ffffff",
              "radius": 34,
              "stroke": "#e7ebe6",
              "strokeWidth": 2
            },
            "rawNumericControls": {
              "x": 0,
              "y": 0,
              "width": 1600,
              "height": [
                {
                  "frame": 87,
                  "value": 112,
                  "easing": "smooth"
                },
                {
                  "frame": 140,
                  "value": 112,
                  "easing": "smooth"
                },
                {
                  "frame": 141,
                  "value": 176,
                  "easing": "smooth"
                },
                {
                  "frame": 149,
                  "value": 184,
                  "easing": "smooth"
                }
              ],
              "radius": 34
            },
            "tools": {
              "Construct": "preview-paper_Construct",
              "LocalMask": "preview-paper_LocalMask",
              "AnchorShift": "preview-paper_AnchorShift",
              "ScaleRotate": "preview-paper_ScaleRotate",
              "Position": "preview-paper_Position",
              "Gated": "preview-paper_Gated",
              "Merge": "preview-paper_Merge"
            },
            "connections": [
              "preview-paper_Construct -> preview-paper_LocalMask -> preview-paper_AnchorShift -> preview-paper_ScaleRotate -> preview-paper_Position -> preview-paper_Gated -> preview-paper_Merge.Foreground",
              "artifact-preview_Transparent -> preview-paper_Merge.Background"
            ],
            "mask": {
              "overflow": "visible",
              "clip": null,
              "cornerRadiusPx": 34,
              "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
            },
            "construction": "Background through local Rectangle/Ellipse mask. For CSS border, use outer stroke-color mask and inset fill mask (inset by strokeWidth, inner radius=max(0,radius-strokeWidth)); border is inward, not a centered SVG stroke. Ellipse ignores radius."
          },
          {
            "layerId": "artifact-icon",
            "kind": "image",
            "recipePointer": "/layers/0/children/8/children/1",
            "parentLayerId": "artifact-preview",
            "mergeIndex": 1,
            "nodeId": "artifact-icon_Merge",
            "output": "artifact-icon_Merge",
            "backgroundInput": "preview-paper_Merge",
            "foregroundInput": "artifact-icon_Gated",
            "activeLocalFrames": [
              0,
              150
            ],
            "effectiveActiveLocalFrames": [
              87,
              150
            ],
            "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
            "staticControls": {
              "start": 0,
              "end": 150,
              "slot": "artifactBadge",
              "x": 32,
              "y": 30,
              "width": 88,
              "height": 88,
              "fit": "contain"
            },
            "rawNumericControls": {
              "x": 32,
              "y": 30,
              "width": 88,
              "height": 88
            },
            "tools": {
              "Construct": "artifact-icon_Construct",
              "LocalMask": "artifact-icon_LocalMask",
              "AnchorShift": "artifact-icon_AnchorShift",
              "ScaleRotate": "artifact-icon_ScaleRotate",
              "Position": "artifact-icon_Position",
              "Gated": "artifact-icon_Gated",
              "Merge": "artifact-icon_Merge"
            },
            "connections": [
              "artifact-icon_Construct -> artifact-icon_LocalMask -> artifact-icon_AnchorShift -> artifact-icon_ScaleRotate -> artifact-icon_Position -> artifact-icon_Gated -> artifact-icon_Merge.Foreground",
              "preview-paper_Merge -> artifact-icon_Merge.Background"
            ],
            "mask": {
              "overflow": "visible",
              "clip": null,
              "cornerRadiusPx": 0,
              "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
            },
            "content": {
              "defaults": {
                "kind": "image",
                "path": "wave04-interface/skill-artifact-disclosure/artifactBadge-defaults.svg",
                "width": 128,
                "height": 128,
                "rights": "Original geometric SVG authored for this kit; no source-film pixels, tracing, branding, embedded fonts or external resources."
              },
              "adaptation": {
                "kind": "image",
                "path": "wave04-interface/skill-artifact-disclosure/artifactBadge-adaptation.svg",
                "width": 128,
                "height": 128,
                "rights": "Original geometric SVG authored for this kit; no source-film pixels, tracing, branding, embedded fonts or external resources."
              }
            },
            "construction": "Build the selected svgSubgraphs primitive chain as native Background+mask nodes. Apply contain fitting before the layer transform. No bitmap conversion or reference-media Loader."
          },
          {
            "layerId": "preview-title",
            "kind": "text",
            "recipePointer": "/layers/0/children/8/children/2",
            "parentLayerId": "artifact-preview",
            "mergeIndex": 2,
            "nodeId": "preview-title_Merge",
            "output": "preview-title_Merge",
            "backgroundInput": "artifact-icon_Merge",
            "foregroundInput": "preview-title_Gated",
            "activeLocalFrames": [
              0,
              150
            ],
            "effectiveActiveLocalFrames": [
              87,
              150
            ],
            "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
            "staticControls": {
              "start": 0,
              "end": 150,
              "slot": "previewTitle",
              "x": 156,
              "y": 28,
              "width": 1240,
              "height": 52,
              "fontSize": 29,
              "weight": 500,
              "lineHeight": 1.2,
              "color": "$ink"
            },
            "rawNumericControls": {
              "x": 156,
              "y": 28,
              "width": 1240,
              "height": 52
            },
            "tools": {
              "Construct": "preview-title_Construct",
              "LocalMask": "preview-title_LocalMask",
              "AnchorShift": "preview-title_AnchorShift",
              "ScaleRotate": "preview-title_ScaleRotate",
              "Position": "preview-title_Position",
              "Gated": "preview-title_Gated",
              "Merge": "preview-title_Merge"
            },
            "connections": [
              "preview-title_Construct -> preview-title_LocalMask -> preview-title_AnchorShift -> preview-title_ScaleRotate -> preview-title_Position -> preview-title_Gated -> preview-title_Merge.Foreground",
              "artifact-icon_Merge -> preview-title_Merge.Background"
            ],
            "mask": {
              "overflow": "visible",
              "clip": null,
              "cornerRadiusPx": 0,
              "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
            },
            "content": {
              "defaults": "Workshop helper",
              "adaptation": "Planting helper"
            },
            "construction": "Text+ with bundled Geist, explicit weight and literal line breaks. Disable auto-fit/reflow. Preserve the pixel box and line advance. For reveal, step StyledText to prefix + visible first N characters + suffix at each reveal step; from=start. No type scaling.",
            "textControls": {
              "font": "Geist",
              "fontFile": "project/public/fonts/Geist.ttf",
              "weight": 500,
              "fontSizePx": 29,
              "lineAdvancePx": 34.8,
              "trackingPx": 0,
              "alignment": "left",
              "verticalAlignment": "top",
              "nominalTextPlusSizeStartingEstimate": 0.007080078125,
              "sizeStatus": "Unverified starting estimate, not a calibrated Fusion conversion. Match actual glyph footprint with the licensed font before pixel review.",
              "reveal": null,
              "prefix": "",
              "suffix": ""
            }
          },
          {
            "layerId": "preview-draft",
            "kind": "text",
            "recipePointer": "/layers/0/children/8/children/3",
            "parentLayerId": "artifact-preview",
            "mergeIndex": 3,
            "nodeId": "preview-draft_Merge",
            "output": "preview-draft_Merge",
            "backgroundInput": "preview-title_Merge",
            "foregroundInput": "preview-draft_Gated",
            "activeLocalFrames": [
              0,
              150
            ],
            "effectiveActiveLocalFrames": [
              87,
              150
            ],
            "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
            "staticControls": {
              "start": 0,
              "end": 150,
              "slot": "draft",
              "x": 156,
              "y": 81,
              "width": 1238,
              "height": 44,
              "fontSize": 27,
              "weight": 400,
              "lineHeight": 1.2,
              "color": "$muted"
            },
            "rawNumericControls": {
              "x": 156,
              "y": 81,
              "width": 1238,
              "height": 44
            },
            "tools": {
              "Construct": "preview-draft_Construct",
              "LocalMask": "preview-draft_LocalMask",
              "AnchorShift": "preview-draft_AnchorShift",
              "ScaleRotate": "preview-draft_ScaleRotate",
              "Position": "preview-draft_Position",
              "Gated": "preview-draft_Gated",
              "Merge": "preview-draft_Merge"
            },
            "connections": [
              "preview-draft_Construct -> preview-draft_LocalMask -> preview-draft_AnchorShift -> preview-draft_ScaleRotate -> preview-draft_Position -> preview-draft_Gated -> preview-draft_Merge.Foreground",
              "preview-title_Merge -> preview-draft_Merge.Background"
            ],
            "mask": {
              "overflow": "visible",
              "clip": null,
              "cornerRadiusPx": 0,
              "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
            },
            "content": {
              "defaults": "Draft",
              "adaptation": "Draft"
            },
            "construction": "Text+ with bundled Geist, explicit weight and literal line breaks. Disable auto-fit/reflow. Preserve the pixel box and line advance. For reveal, step StyledText to prefix + visible first N characters + suffix at each reveal step; from=start. No type scaling.",
            "textControls": {
              "font": "Geist",
              "fontFile": "project/public/fonts/Geist.ttf",
              "weight": 400,
              "fontSizePx": 27,
              "lineAdvancePx": 32.4,
              "trackingPx": 0,
              "alignment": "left",
              "verticalAlignment": "top",
              "nominalTextPlusSizeStartingEstimate": 0.006591796875,
              "sizeStatus": "Unverified starting estimate, not a calibrated Fusion conversion. Match actual glyph footprint with the licensed font before pixel review.",
              "reveal": null,
              "prefix": "",
              "suffix": ""
            }
          },
          {
            "layerId": "preview-loading",
            "kind": "text",
            "recipePointer": "/layers/0/children/8/children/4",
            "parentLayerId": "artifact-preview",
            "mergeIndex": 4,
            "nodeId": "preview-loading_Merge",
            "output": "preview-loading_Merge",
            "backgroundInput": "preview-draft_Merge",
            "foregroundInput": "preview-loading_Gated",
            "activeLocalFrames": [
              141,
              150
            ],
            "effectiveActiveLocalFrames": [
              141,
              150
            ],
            "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
            "staticControls": {
              "start": 141,
              "end": 150,
              "slot": "loading",
              "x": 156,
              "y": 127,
              "width": 1238,
              "height": 44,
              "fontSize": 27,
              "weight": 400,
              "lineHeight": 1.2,
              "color": "$muted"
            },
            "rawNumericControls": {
              "x": 156,
              "y": 127,
              "width": 1238,
              "height": 44
            },
            "tools": {
              "Construct": "preview-loading_Construct",
              "LocalMask": "preview-loading_LocalMask",
              "AnchorShift": "preview-loading_AnchorShift",
              "ScaleRotate": "preview-loading_ScaleRotate",
              "Position": "preview-loading_Position",
              "Gated": "preview-loading_Gated",
              "Merge": "preview-loading_Merge"
            },
            "connections": [
              "preview-loading_Construct -> preview-loading_LocalMask -> preview-loading_AnchorShift -> preview-loading_ScaleRotate -> preview-loading_Position -> preview-loading_Gated -> preview-loading_Merge.Foreground",
              "preview-draft_Merge -> preview-loading_Merge.Background"
            ],
            "mask": {
              "overflow": "visible",
              "clip": null,
              "cornerRadiusPx": 0,
              "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
            },
            "content": {
              "defaults": "Loading helper details...",
              "adaptation": "Loading helper details..."
            },
            "construction": "Text+ with bundled Geist, explicit weight and literal line breaks. Disable auto-fit/reflow. Preserve the pixel box and line advance. For reveal, step StyledText to prefix + visible first N characters + suffix at each reveal step; from=start. No type scaling.",
            "textControls": {
              "font": "Geist",
              "fontFile": "project/public/fonts/Geist.ttf",
              "weight": 400,
              "fontSizePx": 27,
              "lineAdvancePx": 32.4,
              "trackingPx": 0,
              "alignment": "left",
              "verticalAlignment": "top",
              "nominalTextPlusSizeStartingEstimate": 0.006591796875,
              "sizeStatus": "Unverified starting estimate, not a calibrated Fusion conversion. Match actual glyph footprint with the licensed font before pixel review.",
              "reveal": null,
              "prefix": "",
              "suffix": ""
            }
          },
          {
            "layerId": "install-disabled",
            "kind": "rect",
            "recipePointer": "/layers/0/children/8/children/5",
            "parentLayerId": "artifact-preview",
            "mergeIndex": 5,
            "nodeId": "install-disabled_Merge",
            "output": "install-disabled_Merge",
            "backgroundInput": "preview-loading_Merge",
            "foregroundInput": "install-disabled_Gated",
            "activeLocalFrames": [
              0,
              150
            ],
            "effectiveActiveLocalFrames": [
              87,
              150
            ],
            "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
            "staticControls": {
              "start": 0,
              "end": 150,
              "x": 1448,
              "y": 31,
              "width": 116,
              "height": 56,
              "fill": "#c5ccc5",
              "radius": 28
            },
            "rawNumericControls": {
              "x": 1448,
              "y": 31,
              "width": 116,
              "height": 56,
              "radius": 28
            },
            "tools": {
              "Construct": "install-disabled_Construct",
              "LocalMask": "install-disabled_LocalMask",
              "AnchorShift": "install-disabled_AnchorShift",
              "ScaleRotate": "install-disabled_ScaleRotate",
              "Position": "install-disabled_Position",
              "Gated": "install-disabled_Gated",
              "Merge": "install-disabled_Merge"
            },
            "connections": [
              "install-disabled_Construct -> install-disabled_LocalMask -> install-disabled_AnchorShift -> install-disabled_ScaleRotate -> install-disabled_Position -> install-disabled_Gated -> install-disabled_Merge.Foreground",
              "preview-loading_Merge -> install-disabled_Merge.Background"
            ],
            "mask": {
              "overflow": "visible",
              "clip": null,
              "cornerRadiusPx": 28,
              "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
            },
            "construction": "Background through local Rectangle/Ellipse mask. For CSS border, use outer stroke-color mask and inset fill mask (inset by strokeWidth, inner radius=max(0,radius-strokeWidth)); border is inward, not a centered SVG stroke. Ellipse ignores radius."
          },
          {
            "layerId": "install-label",
            "kind": "text",
            "recipePointer": "/layers/0/children/8/children/6",
            "parentLayerId": "artifact-preview",
            "mergeIndex": 6,
            "nodeId": "install-label_Merge",
            "output": "install-label_Merge",
            "backgroundInput": "install-disabled_Merge",
            "foregroundInput": "install-label_Gated",
            "activeLocalFrames": [
              0,
              150
            ],
            "effectiveActiveLocalFrames": [
              87,
              150
            ],
            "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
            "staticControls": {
              "start": 0,
              "end": 150,
              "slot": "install",
              "x": 1460,
              "y": 43,
              "width": 92,
              "height": 38,
              "fontSize": 25,
              "weight": 400,
              "lineHeight": 1.2,
              "color": "#ffffff",
              "align": "center"
            },
            "rawNumericControls": {
              "x": 1460,
              "y": 43,
              "width": 92,
              "height": 38
            },
            "tools": {
              "Construct": "install-label_Construct",
              "LocalMask": "install-label_LocalMask",
              "AnchorShift": "install-label_AnchorShift",
              "ScaleRotate": "install-label_ScaleRotate",
              "Position": "install-label_Position",
              "Gated": "install-label_Gated",
              "Merge": "install-label_Merge"
            },
            "connections": [
              "install-label_Construct -> install-label_LocalMask -> install-label_AnchorShift -> install-label_ScaleRotate -> install-label_Position -> install-label_Gated -> install-label_Merge.Foreground",
              "install-disabled_Merge -> install-label_Merge.Background"
            ],
            "mask": {
              "overflow": "visible",
              "clip": null,
              "cornerRadiusPx": 0,
              "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
            },
            "content": {
              "defaults": "Install",
              "adaptation": "Install"
            },
            "construction": "Text+ with bundled Geist, explicit weight and literal line breaks. Disable auto-fit/reflow. Preserve the pixel box and line advance. For reveal, step StyledText to prefix + visible first N characters + suffix at each reveal step; from=start. No type scaling.",
            "textControls": {
              "font": "Geist",
              "fontFile": "project/public/fonts/Geist.ttf",
              "weight": 400,
              "fontSizePx": 25,
              "lineAdvancePx": 30.0,
              "trackingPx": 0,
              "alignment": "center",
              "verticalAlignment": "top",
              "nominalTextPlusSizeStartingEstimate": 0.006103515625,
              "sizeStatus": "Unverified starting estimate, not a calibrated Fusion conversion. Match actual glyph footprint with the licensed font before pixel review.",
              "reveal": null,
              "prefix": "",
              "suffix": ""
            }
          }
        ],
        "constructInput": "install-label_Merge",
        "construction": "Transparent domain -> ordered child merges -> local mask -> group transform -> group alpha. Child opacity is not a substitute for group opacity. Group dimensions never implicitly scale children."
      }
    ],
    "constructInput": "artifact-preview_Merge",
    "construction": "Transparent domain -> ordered child merges -> local mask -> group transform -> group alpha. Child opacity is not a substitute for group opacity. Group dimensions never implicitly scale children."
  },
  {
    "layerId": "scroll-hint",
    "kind": "group",
    "recipePointer": "/layers/1",
    "parentLayerId": null,
    "mergeIndex": 1,
    "nodeId": "scroll-hint_Merge",
    "output": "scroll-hint_Merge",
    "backgroundInput": "conversation_Merge",
    "foregroundInput": "scroll-hint_Gated",
    "activeLocalFrames": [
      89,
      149
    ],
    "effectiveActiveLocalFrames": [
      89,
      149
    ],
    "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
    "staticControls": {
      "start": 89,
      "end": 149,
      "x": 928,
      "y": 698,
      "width": 64,
      "height": 64
    },
    "rawNumericControls": {
      "x": 928,
      "y": 698,
      "width": 64,
      "height": 64,
      "opacity": [
        {
          "frame": 89,
          "value": 1,
          "easing": "smooth"
        },
        {
          "frame": 146,
          "value": 1,
          "easing": "smooth"
        },
        {
          "frame": 148,
          "value": 0.15,
          "easing": "smooth"
        }
      ]
    },
    "tools": {
      "Construct": "scroll-hint_Construct",
      "LocalMask": "scroll-hint_LocalMask",
      "AnchorShift": "scroll-hint_AnchorShift",
      "ScaleRotate": "scroll-hint_ScaleRotate",
      "Position": "scroll-hint_Position",
      "Gated": "scroll-hint_Gated",
      "Merge": "scroll-hint_Merge"
    },
    "connections": [
      "scroll-hint_Construct -> scroll-hint_LocalMask -> scroll-hint_AnchorShift -> scroll-hint_ScaleRotate -> scroll-hint_Position -> scroll-hint_Gated -> scroll-hint_Merge.Foreground",
      "conversation_Merge -> scroll-hint_Merge.Background"
    ],
    "mask": {
      "overflow": "visible",
      "clip": null,
      "cornerRadiusPx": 0,
      "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
    },
    "children": [
      {
        "layerId": "hint-paper",
        "kind": "ellipse",
        "recipePointer": "/layers/1/children/0",
        "parentLayerId": "scroll-hint",
        "mergeIndex": 0,
        "nodeId": "hint-paper_Merge",
        "output": "hint-paper_Merge",
        "backgroundInput": "scroll-hint_Transparent",
        "foregroundInput": "hint-paper_Gated",
        "activeLocalFrames": [
          0,
          150
        ],
        "effectiveActiveLocalFrames": [
          89,
          149
        ],
        "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
        "staticControls": {
          "start": 0,
          "end": 150,
          "x": 0,
          "y": 0,
          "width": 64,
          "height": 64,
          "fill": "#ffffff",
          "stroke": "#e5e9e4",
          "strokeWidth": 2
        },
        "rawNumericControls": {
          "x": 0,
          "y": 0,
          "width": 64,
          "height": 64
        },
        "tools": {
          "Construct": "hint-paper_Construct",
          "LocalMask": "hint-paper_LocalMask",
          "AnchorShift": "hint-paper_AnchorShift",
          "ScaleRotate": "hint-paper_ScaleRotate",
          "Position": "hint-paper_Position",
          "Gated": "hint-paper_Gated",
          "Merge": "hint-paper_Merge"
        },
        "connections": [
          "hint-paper_Construct -> hint-paper_LocalMask -> hint-paper_AnchorShift -> hint-paper_ScaleRotate -> hint-paper_Position -> hint-paper_Gated -> hint-paper_Merge.Foreground",
          "scroll-hint_Transparent -> hint-paper_Merge.Background"
        ],
        "mask": {
          "overflow": "visible",
          "clip": null,
          "cornerRadiusPx": 0,
          "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
        },
        "construction": "Background through local Rectangle/Ellipse mask. For CSS border, use outer stroke-color mask and inset fill mask (inset by strokeWidth, inner radius=max(0,radius-strokeWidth)); border is inward, not a centered SVG stroke. Ellipse ignores radius."
      },
      {
        "layerId": "hint-arrow",
        "kind": "path",
        "recipePointer": "/layers/1/children/1",
        "parentLayerId": "scroll-hint",
        "mergeIndex": 1,
        "nodeId": "hint-arrow_Merge",
        "output": "hint-arrow_Merge",
        "backgroundInput": "hint-paper_Merge",
        "foregroundInput": "hint-arrow_Gated",
        "activeLocalFrames": [
          0,
          150
        ],
        "effectiveActiveLocalFrames": [
          89,
          149
        ],
        "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
        "staticControls": {
          "start": 0,
          "end": 150,
          "path": "M 30 10 H 38 V 40 L 51 27 L 57 33 L 34 56 L 11 33 L 17 27 L 30 40 Z",
          "viewBox": [
            0,
            0,
            68,
            68
          ],
          "x": 12,
          "y": 10,
          "width": 40,
          "height": 40,
          "fill": "$muted"
        },
        "rawNumericControls": {
          "x": 12,
          "y": 10,
          "width": 40,
          "height": 40
        },
        "tools": {
          "Construct": "hint-arrow_Construct",
          "LocalMask": "hint-arrow_LocalMask",
          "AnchorShift": "hint-arrow_AnchorShift",
          "ScaleRotate": "hint-arrow_ScaleRotate",
          "Position": "hint-arrow_Position",
          "Gated": "hint-arrow_Gated",
          "Merge": "hint-arrow_Merge"
        },
        "connections": [
          "hint-arrow_Construct -> hint-arrow_LocalMask -> hint-arrow_AnchorShift -> hint-arrow_ScaleRotate -> hint-arrow_Position -> hint-arrow_Gated -> hint-arrow_Merge.Foreground",
          "hint-paper_Merge -> hint-arrow_Merge.Background"
        ],
        "mask": {
          "overflow": "visible",
          "clip": null,
          "cornerRadiusPx": 0,
          "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
        },
        "construction": "Native closed Polygon masks for the absolute M/L/H/V/Z path subpaths, mapped from the stated viewBox. Preserve the raw subpath order and nonzero winding fill; all supplied paths are closed polygons. No freehand tracing. Fill only; raw path remains exact editable code."
      }
    ],
    "constructInput": "hint-arrow_Merge",
    "construction": "Transparent domain -> ordered child merges -> local mask -> group transform -> group alpha. Child opacity is not a substitute for group opacity. Group dimensions never implicitly scale children."
  },
  {
    "layerId": "anchored-composer",
    "kind": "group",
    "recipePointer": "/layers/2",
    "parentLayerId": null,
    "mergeIndex": 2,
    "nodeId": "anchored-composer_Merge",
    "output": "anchored-composer_Merge",
    "backgroundInput": "scroll-hint_Merge",
    "foregroundInput": "anchored-composer_Gated",
    "activeLocalFrames": [
      0,
      150
    ],
    "effectiveActiveLocalFrames": [
      0,
      150
    ],
    "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
    "staticControls": {
      "start": 0,
      "end": 150,
      "x": 158,
      "y": 812,
      "width": 1600,
      "height": 216
    },
    "rawNumericControls": {
      "x": 158,
      "y": 812,
      "width": 1600,
      "height": 216
    },
    "tools": {
      "Construct": "anchored-composer_Construct",
      "LocalMask": "anchored-composer_LocalMask",
      "AnchorShift": "anchored-composer_AnchorShift",
      "ScaleRotate": "anchored-composer_ScaleRotate",
      "Position": "anchored-composer_Position",
      "Gated": "anchored-composer_Gated",
      "Merge": "anchored-composer_Merge"
    },
    "connections": [
      "anchored-composer_Construct -> anchored-composer_LocalMask -> anchored-composer_AnchorShift -> anchored-composer_ScaleRotate -> anchored-composer_Position -> anchored-composer_Gated -> anchored-composer_Merge.Foreground",
      "scroll-hint_Merge -> anchored-composer_Merge.Background"
    ],
    "mask": {
      "overflow": "visible",
      "clip": null,
      "cornerRadiusPx": 0,
      "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
    },
    "children": [
      {
        "layerId": "composer-paper",
        "kind": "rect",
        "recipePointer": "/layers/2/children/0",
        "parentLayerId": "anchored-composer",
        "mergeIndex": 0,
        "nodeId": "composer-paper_Merge",
        "output": "composer-paper_Merge",
        "backgroundInput": "anchored-composer_Transparent",
        "foregroundInput": "composer-paper_Gated",
        "activeLocalFrames": [
          0,
          150
        ],
        "effectiveActiveLocalFrames": [
          0,
          150
        ],
        "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
        "staticControls": {
          "start": 0,
          "end": 150,
          "x": 0,
          "y": 0,
          "width": 1600,
          "height": 216,
          "fill": "#ffffff",
          "radius": 60,
          "stroke": "#dce3dc",
          "strokeWidth": 2
        },
        "rawNumericControls": {
          "x": 0,
          "y": 0,
          "width": 1600,
          "height": 216,
          "radius": 60
        },
        "tools": {
          "Construct": "composer-paper_Construct",
          "LocalMask": "composer-paper_LocalMask",
          "AnchorShift": "composer-paper_AnchorShift",
          "ScaleRotate": "composer-paper_ScaleRotate",
          "Position": "composer-paper_Position",
          "Gated": "composer-paper_Gated",
          "Merge": "composer-paper_Merge"
        },
        "connections": [
          "composer-paper_Construct -> composer-paper_LocalMask -> composer-paper_AnchorShift -> composer-paper_ScaleRotate -> composer-paper_Position -> composer-paper_Gated -> composer-paper_Merge.Foreground",
          "anchored-composer_Transparent -> composer-paper_Merge.Background"
        ],
        "mask": {
          "overflow": "visible",
          "clip": null,
          "cornerRadiusPx": 60,
          "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
        },
        "construction": "Background through local Rectangle/Ellipse mask. For CSS border, use outer stroke-color mask and inset fill mask (inset by strokeWidth, inner radius=max(0,radius-strokeWidth)); border is inward, not a centered SVG stroke. Ellipse ignores radius."
      },
      {
        "layerId": "prompt-initial",
        "kind": "text",
        "recipePointer": "/layers/2/children/1",
        "parentLayerId": "anchored-composer",
        "mergeIndex": 1,
        "nodeId": "prompt-initial_Merge",
        "output": "prompt-initial_Merge",
        "backgroundInput": "composer-paper_Merge",
        "foregroundInput": "prompt-initial_Gated",
        "activeLocalFrames": [
          0,
          27
        ],
        "effectiveActiveLocalFrames": [
          0,
          27
        ],
        "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
        "staticControls": {
          "start": 0,
          "end": 27,
          "slot": "prompt",
          "x": 44,
          "y": 36,
          "width": 1470,
          "height": 62,
          "fontSize": 32,
          "weight": 400,
          "lineHeight": 1.2,
          "color": "$muted"
        },
        "rawNumericControls": {
          "x": 44,
          "y": 36,
          "width": 1470,
          "height": 62
        },
        "tools": {
          "Construct": "prompt-initial_Construct",
          "LocalMask": "prompt-initial_LocalMask",
          "AnchorShift": "prompt-initial_AnchorShift",
          "ScaleRotate": "prompt-initial_ScaleRotate",
          "Position": "prompt-initial_Position",
          "Gated": "prompt-initial_Gated",
          "Merge": "prompt-initial_Merge"
        },
        "connections": [
          "prompt-initial_Construct -> prompt-initial_LocalMask -> prompt-initial_AnchorShift -> prompt-initial_ScaleRotate -> prompt-initial_Position -> prompt-initial_Gated -> prompt-initial_Merge.Foreground",
          "composer-paper_Merge -> prompt-initial_Merge.Background"
        ],
        "mask": {
          "overflow": "visible",
          "clip": null,
          "cornerRadiusPx": 0,
          "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
        },
        "content": {
          "defaults": "Ask about the workshop",
          "adaptation": "Ask about the seedlings"
        },
        "construction": "Text+ with bundled Geist, explicit weight and literal line breaks. Disable auto-fit/reflow. Preserve the pixel box and line advance. For reveal, step StyledText to prefix + visible first N characters + suffix at each reveal step; from=start. No type scaling.",
        "textControls": {
          "font": "Geist",
          "fontFile": "project/public/fonts/Geist.ttf",
          "weight": 400,
          "fontSizePx": 32,
          "lineAdvancePx": 38.4,
          "trackingPx": 0,
          "alignment": "left",
          "verticalAlignment": "top",
          "nominalTextPlusSizeStartingEstimate": 0.0078125,
          "sizeStatus": "Unverified starting estimate, not a calibrated Fusion conversion. Match actual glyph footprint with the licensed font before pixel review.",
          "reveal": null,
          "prefix": "",
          "suffix": ""
        }
      },
      {
        "layerId": "prompt-followup",
        "kind": "text",
        "recipePointer": "/layers/2/children/2",
        "parentLayerId": "anchored-composer",
        "mergeIndex": 2,
        "nodeId": "prompt-followup_Merge",
        "output": "prompt-followup_Merge",
        "backgroundInput": "prompt-initial_Merge",
        "foregroundInput": "prompt-followup_Gated",
        "activeLocalFrames": [
          27,
          44
        ],
        "effectiveActiveLocalFrames": [
          27,
          44
        ],
        "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
        "staticControls": {
          "start": 27,
          "end": 44,
          "slot": "followup",
          "x": 44,
          "y": 36,
          "width": 1470,
          "height": 62,
          "fontSize": 32,
          "weight": 400,
          "lineHeight": 1.2,
          "color": "$muted"
        },
        "rawNumericControls": {
          "x": 44,
          "y": 36,
          "width": 1470,
          "height": 62
        },
        "tools": {
          "Construct": "prompt-followup_Construct",
          "LocalMask": "prompt-followup_LocalMask",
          "AnchorShift": "prompt-followup_AnchorShift",
          "ScaleRotate": "prompt-followup_ScaleRotate",
          "Position": "prompt-followup_Position",
          "Gated": "prompt-followup_Gated",
          "Merge": "prompt-followup_Merge"
        },
        "connections": [
          "prompt-followup_Construct -> prompt-followup_LocalMask -> prompt-followup_AnchorShift -> prompt-followup_ScaleRotate -> prompt-followup_Position -> prompt-followup_Gated -> prompt-followup_Merge.Foreground",
          "prompt-initial_Merge -> prompt-followup_Merge.Background"
        ],
        "mask": {
          "overflow": "visible",
          "clip": null,
          "cornerRadiusPx": 0,
          "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
        },
        "content": {
          "defaults": "Follow up",
          "adaptation": "Follow up"
        },
        "construction": "Text+ with bundled Geist, explicit weight and literal line breaks. Disable auto-fit/reflow. Preserve the pixel box and line advance. For reveal, step StyledText to prefix + visible first N characters + suffix at each reveal step; from=start. No type scaling.",
        "textControls": {
          "font": "Geist",
          "fontFile": "project/public/fonts/Geist.ttf",
          "weight": 400,
          "fontSizePx": 32,
          "lineAdvancePx": 38.4,
          "trackingPx": 0,
          "alignment": "left",
          "verticalAlignment": "top",
          "nominalTextPlusSizeStartingEstimate": 0.0078125,
          "sizeStatus": "Unverified starting estimate, not a calibrated Fusion conversion. Match actual glyph footprint with the licensed font before pixel review.",
          "reveal": null,
          "prefix": "",
          "suffix": ""
        }
      },
      {
        "layerId": "prompt-return",
        "kind": "text",
        "recipePointer": "/layers/2/children/3",
        "parentLayerId": "anchored-composer",
        "mergeIndex": 3,
        "nodeId": "prompt-return_Merge",
        "output": "prompt-return_Merge",
        "backgroundInput": "prompt-followup_Merge",
        "foregroundInput": "prompt-return_Gated",
        "activeLocalFrames": [
          44,
          150
        ],
        "effectiveActiveLocalFrames": [
          44,
          150
        ],
        "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
        "staticControls": {
          "start": 44,
          "end": 150,
          "slot": "prompt",
          "x": 44,
          "y": 36,
          "width": 1470,
          "height": 62,
          "fontSize": 32,
          "weight": 400,
          "lineHeight": 1.2,
          "color": "$muted"
        },
        "rawNumericControls": {
          "x": 44,
          "y": 36,
          "width": 1470,
          "height": 62
        },
        "tools": {
          "Construct": "prompt-return_Construct",
          "LocalMask": "prompt-return_LocalMask",
          "AnchorShift": "prompt-return_AnchorShift",
          "ScaleRotate": "prompt-return_ScaleRotate",
          "Position": "prompt-return_Position",
          "Gated": "prompt-return_Gated",
          "Merge": "prompt-return_Merge"
        },
        "connections": [
          "prompt-return_Construct -> prompt-return_LocalMask -> prompt-return_AnchorShift -> prompt-return_ScaleRotate -> prompt-return_Position -> prompt-return_Gated -> prompt-return_Merge.Foreground",
          "prompt-followup_Merge -> prompt-return_Merge.Background"
        ],
        "mask": {
          "overflow": "visible",
          "clip": null,
          "cornerRadiusPx": 0,
          "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
        },
        "content": {
          "defaults": "Ask about the workshop",
          "adaptation": "Ask about the seedlings"
        },
        "construction": "Text+ with bundled Geist, explicit weight and literal line breaks. Disable auto-fit/reflow. Preserve the pixel box and line advance. For reveal, step StyledText to prefix + visible first N characters + suffix at each reveal step; from=start. No type scaling.",
        "textControls": {
          "font": "Geist",
          "fontFile": "project/public/fonts/Geist.ttf",
          "weight": 400,
          "fontSizePx": 32,
          "lineAdvancePx": 38.4,
          "trackingPx": 0,
          "alignment": "left",
          "verticalAlignment": "top",
          "nominalTextPlusSizeStartingEstimate": 0.0078125,
          "sizeStatus": "Unverified starting estimate, not a calibrated Fusion conversion. Match actual glyph footprint with the licensed font before pixel review.",
          "reveal": null,
          "prefix": "",
          "suffix": ""
        }
      },
      {
        "layerId": "add-mark",
        "kind": "path",
        "recipePointer": "/layers/2/children/4",
        "parentLayerId": "anchored-composer",
        "mergeIndex": 4,
        "nodeId": "add-mark_Merge",
        "output": "add-mark_Merge",
        "backgroundInput": "prompt-return_Merge",
        "foregroundInput": "add-mark_Gated",
        "activeLocalFrames": [
          0,
          150
        ],
        "effectiveActiveLocalFrames": [
          0,
          150
        ],
        "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
        "staticControls": {
          "start": 0,
          "end": 150,
          "path": "M 30 4 H 38 V 30 H 64 V 38 H 38 V 64 H 30 V 38 H 4 V 30 H 30 Z",
          "viewBox": [
            0,
            0,
            68,
            68
          ],
          "x": 44,
          "y": 142,
          "width": 30,
          "height": 30,
          "fill": "$ink"
        },
        "rawNumericControls": {
          "x": 44,
          "y": 142,
          "width": 30,
          "height": 30
        },
        "tools": {
          "Construct": "add-mark_Construct",
          "LocalMask": "add-mark_LocalMask",
          "AnchorShift": "add-mark_AnchorShift",
          "ScaleRotate": "add-mark_ScaleRotate",
          "Position": "add-mark_Position",
          "Gated": "add-mark_Gated",
          "Merge": "add-mark_Merge"
        },
        "connections": [
          "add-mark_Construct -> add-mark_LocalMask -> add-mark_AnchorShift -> add-mark_ScaleRotate -> add-mark_Position -> add-mark_Gated -> add-mark_Merge.Foreground",
          "prompt-return_Merge -> add-mark_Merge.Background"
        ],
        "mask": {
          "overflow": "visible",
          "clip": null,
          "cornerRadiusPx": 0,
          "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
        },
        "construction": "Native closed Polygon masks for the absolute M/L/H/V/Z path subpaths, mapped from the stated viewBox. Preserve the raw subpath order and nonzero winding fill; all supplied paths are closed polygons. No freehand tracing. Fill only; raw path remains exact editable code."
      },
      {
        "layerId": "mode-disc",
        "kind": "ellipse",
        "recipePointer": "/layers/2/children/5",
        "parentLayerId": "anchored-composer",
        "mergeIndex": 5,
        "nodeId": "mode-disc_Merge",
        "output": "mode-disc_Merge",
        "backgroundInput": "add-mark_Merge",
        "foregroundInput": "mode-disc_Gated",
        "activeLocalFrames": [
          0,
          150
        ],
        "effectiveActiveLocalFrames": [
          0,
          150
        ],
        "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
        "staticControls": {
          "start": 0,
          "end": 150,
          "x": 117,
          "y": 139,
          "width": 34,
          "height": 34,
          "fill": "#ffffff",
          "stroke": "$accent",
          "strokeWidth": 3
        },
        "rawNumericControls": {
          "x": 117,
          "y": 139,
          "width": 34,
          "height": 34
        },
        "tools": {
          "Construct": "mode-disc_Construct",
          "LocalMask": "mode-disc_LocalMask",
          "AnchorShift": "mode-disc_AnchorShift",
          "ScaleRotate": "mode-disc_ScaleRotate",
          "Position": "mode-disc_Position",
          "Gated": "mode-disc_Gated",
          "Merge": "mode-disc_Merge"
        },
        "connections": [
          "mode-disc_Construct -> mode-disc_LocalMask -> mode-disc_AnchorShift -> mode-disc_ScaleRotate -> mode-disc_Position -> mode-disc_Gated -> mode-disc_Merge.Foreground",
          "add-mark_Merge -> mode-disc_Merge.Background"
        ],
        "mask": {
          "overflow": "visible",
          "clip": null,
          "cornerRadiusPx": 0,
          "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
        },
        "construction": "Background through local Rectangle/Ellipse mask. For CSS border, use outer stroke-color mask and inset fill mask (inset by strokeWidth, inner radius=max(0,radius-strokeWidth)); border is inward, not a centered SVG stroke. Ellipse ignores radius."
      },
      {
        "layerId": "mode-hand",
        "kind": "rect",
        "recipePointer": "/layers/2/children/6",
        "parentLayerId": "anchored-composer",
        "mergeIndex": 6,
        "nodeId": "mode-hand_Merge",
        "output": "mode-hand_Merge",
        "backgroundInput": "mode-disc_Merge",
        "foregroundInput": "mode-hand_Gated",
        "activeLocalFrames": [
          0,
          150
        ],
        "effectiveActiveLocalFrames": [
          0,
          150
        ],
        "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
        "staticControls": {
          "start": 0,
          "end": 150,
          "x": 133,
          "y": 144,
          "width": 3,
          "height": 16,
          "fill": "$accent"
        },
        "rawNumericControls": {
          "x": 133,
          "y": 144,
          "width": 3,
          "height": 16
        },
        "tools": {
          "Construct": "mode-hand_Construct",
          "LocalMask": "mode-hand_LocalMask",
          "AnchorShift": "mode-hand_AnchorShift",
          "ScaleRotate": "mode-hand_ScaleRotate",
          "Position": "mode-hand_Position",
          "Gated": "mode-hand_Gated",
          "Merge": "mode-hand_Merge"
        },
        "connections": [
          "mode-hand_Construct -> mode-hand_LocalMask -> mode-hand_AnchorShift -> mode-hand_ScaleRotate -> mode-hand_Position -> mode-hand_Gated -> mode-hand_Merge.Foreground",
          "mode-disc_Merge -> mode-hand_Merge.Background"
        ],
        "mask": {
          "overflow": "visible",
          "clip": null,
          "cornerRadiusPx": 0,
          "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
        },
        "construction": "Background through local Rectangle/Ellipse mask. For CSS border, use outer stroke-color mask and inset fill mask (inset by strokeWidth, inner radius=max(0,radius-strokeWidth)); border is inward, not a centered SVG stroke. Ellipse ignores radius."
      },
      {
        "layerId": "mode-hand-short",
        "kind": "rect",
        "recipePointer": "/layers/2/children/7",
        "parentLayerId": "anchored-composer",
        "mergeIndex": 7,
        "nodeId": "mode-hand-short_Merge",
        "output": "mode-hand-short_Merge",
        "backgroundInput": "mode-hand_Merge",
        "foregroundInput": "mode-hand-short_Gated",
        "activeLocalFrames": [
          0,
          150
        ],
        "effectiveActiveLocalFrames": [
          0,
          150
        ],
        "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
        "staticControls": {
          "start": 0,
          "end": 150,
          "x": 133,
          "y": 157,
          "width": 11,
          "height": 3,
          "fill": "$accent"
        },
        "rawNumericControls": {
          "x": 133,
          "y": 157,
          "width": 11,
          "height": 3
        },
        "tools": {
          "Construct": "mode-hand-short_Construct",
          "LocalMask": "mode-hand-short_LocalMask",
          "AnchorShift": "mode-hand-short_AnchorShift",
          "ScaleRotate": "mode-hand-short_ScaleRotate",
          "Position": "mode-hand-short_Position",
          "Gated": "mode-hand-short_Gated",
          "Merge": "mode-hand-short_Merge"
        },
        "connections": [
          "mode-hand-short_Construct -> mode-hand-short_LocalMask -> mode-hand-short_AnchorShift -> mode-hand-short_ScaleRotate -> mode-hand-short_Position -> mode-hand-short_Gated -> mode-hand-short_Merge.Foreground",
          "mode-hand_Merge -> mode-hand-short_Merge.Background"
        ],
        "mask": {
          "overflow": "visible",
          "clip": null,
          "cornerRadiusPx": 0,
          "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
        },
        "construction": "Background through local Rectangle/Ellipse mask. For CSS border, use outer stroke-color mask and inset fill mask (inset by strokeWidth, inner radius=max(0,radius-strokeWidth)); border is inward, not a centered SVG stroke. Ellipse ignores radius."
      },
      {
        "layerId": "mode-label",
        "kind": "text",
        "recipePointer": "/layers/2/children/8",
        "parentLayerId": "anchored-composer",
        "mergeIndex": 8,
        "nodeId": "mode-label_Merge",
        "output": "mode-label_Merge",
        "backgroundInput": "mode-hand-short_Merge",
        "foregroundInput": "mode-label_Gated",
        "activeLocalFrames": [
          0,
          150
        ],
        "effectiveActiveLocalFrames": [
          0,
          150
        ],
        "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
        "staticControls": {
          "start": 0,
          "end": 150,
          "slot": "mode",
          "x": 166,
          "y": 135,
          "width": 1160,
          "height": 48,
          "fontSize": 29,
          "weight": 400,
          "lineHeight": 1.2,
          "color": "$accent"
        },
        "rawNumericControls": {
          "x": 166,
          "y": 135,
          "width": 1160,
          "height": 48
        },
        "tools": {
          "Construct": "mode-label_Construct",
          "LocalMask": "mode-label_LocalMask",
          "AnchorShift": "mode-label_AnchorShift",
          "ScaleRotate": "mode-label_ScaleRotate",
          "Position": "mode-label_Position",
          "Gated": "mode-label_Gated",
          "Merge": "mode-label_Merge"
        },
        "connections": [
          "mode-label_Construct -> mode-label_LocalMask -> mode-label_AnchorShift -> mode-label_ScaleRotate -> mode-label_Position -> mode-label_Gated -> mode-label_Merge.Foreground",
          "mode-hand-short_Merge -> mode-label_Merge.Background"
        ],
        "mask": {
          "overflow": "visible",
          "clip": null,
          "cornerRadiusPx": 0,
          "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
        },
        "content": {
          "defaults": "Planning",
          "adaptation": "Planning"
        },
        "construction": "Text+ with bundled Geist, explicit weight and literal line breaks. Disable auto-fit/reflow. Preserve the pixel box and line advance. For reveal, step StyledText to prefix + visible first N characters + suffix at each reveal step; from=start. No type scaling.",
        "textControls": {
          "font": "Geist",
          "fontFile": "project/public/fonts/Geist.ttf",
          "weight": 400,
          "fontSizePx": 29,
          "lineAdvancePx": 34.8,
          "trackingPx": 0,
          "alignment": "left",
          "verticalAlignment": "top",
          "nominalTextPlusSizeStartingEstimate": 0.007080078125,
          "sizeStatus": "Unverified starting estimate, not a calibrated Fusion conversion. Match actual glyph footprint with the licensed font before pixel review.",
          "reveal": null,
          "prefix": "",
          "suffix": ""
        }
      },
      {
        "layerId": "mode-chevron",
        "kind": "path",
        "recipePointer": "/layers/2/children/9",
        "parentLayerId": "anchored-composer",
        "mergeIndex": 9,
        "nodeId": "mode-chevron_Merge",
        "output": "mode-chevron_Merge",
        "backgroundInput": "mode-label_Merge",
        "foregroundInput": "mode-chevron_Gated",
        "activeLocalFrames": [
          0,
          150
        ],
        "effectiveActiveLocalFrames": [
          0,
          150
        ],
        "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
        "staticControls": {
          "start": 0,
          "end": 150,
          "path": "M 8 20 L 32 44 L 56 20 L 50 14 L 32 32 L 14 14 Z",
          "viewBox": [
            0,
            0,
            68,
            68
          ],
          "x": 316,
          "y": 145,
          "width": 23,
          "height": 23,
          "fill": "$accent"
        },
        "rawNumericControls": {
          "x": 316,
          "y": 145,
          "width": 23,
          "height": 23
        },
        "tools": {
          "Construct": "mode-chevron_Construct",
          "LocalMask": "mode-chevron_LocalMask",
          "AnchorShift": "mode-chevron_AnchorShift",
          "ScaleRotate": "mode-chevron_ScaleRotate",
          "Position": "mode-chevron_Position",
          "Gated": "mode-chevron_Gated",
          "Merge": "mode-chevron_Merge"
        },
        "connections": [
          "mode-chevron_Construct -> mode-chevron_LocalMask -> mode-chevron_AnchorShift -> mode-chevron_ScaleRotate -> mode-chevron_Position -> mode-chevron_Gated -> mode-chevron_Merge.Foreground",
          "mode-label_Merge -> mode-chevron_Merge.Background"
        ],
        "mask": {
          "overflow": "visible",
          "clip": null,
          "cornerRadiusPx": 0,
          "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
        },
        "construction": "Native closed Polygon masks for the absolute M/L/H/V/Z path subpaths, mapped from the stated viewBox. Preserve the raw subpath order and nonzero winding fill; all supplied paths are closed polygons. No freehand tracing. Fill only; raw path remains exact editable code."
      },
      {
        "layerId": "microphone",
        "kind": "path",
        "recipePointer": "/layers/2/children/10",
        "parentLayerId": "anchored-composer",
        "mergeIndex": 10,
        "nodeId": "microphone_Merge",
        "output": "microphone_Merge",
        "backgroundInput": "mode-chevron_Merge",
        "foregroundInput": "microphone_Gated",
        "activeLocalFrames": [
          0,
          150
        ],
        "effectiveActiveLocalFrames": [
          0,
          150
        ],
        "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
        "staticControls": {
          "start": 0,
          "end": 150,
          "path": "M 27 6 H 41 V 37 H 27 Z M 17 27 H 22 V 42 L 30 49 H 38 L 46 42 V 27 H 51 V 45 L 38 56 V 62 H 49 V 67 H 19 V 62 H 30 V 56 L 17 45 Z",
          "viewBox": [
            0,
            0,
            68,
            68
          ],
          "x": 1426,
          "y": 139,
          "width": 36,
          "height": 36,
          "fill": "$ink"
        },
        "rawNumericControls": {
          "x": 1426,
          "y": 139,
          "width": 36,
          "height": 36
        },
        "tools": {
          "Construct": "microphone_Construct",
          "LocalMask": "microphone_LocalMask",
          "AnchorShift": "microphone_AnchorShift",
          "ScaleRotate": "microphone_ScaleRotate",
          "Position": "microphone_Position",
          "Gated": "microphone_Gated",
          "Merge": "microphone_Merge"
        },
        "connections": [
          "microphone_Construct -> microphone_LocalMask -> microphone_AnchorShift -> microphone_ScaleRotate -> microphone_Position -> microphone_Gated -> microphone_Merge.Foreground",
          "mode-chevron_Merge -> microphone_Merge.Background"
        ],
        "mask": {
          "overflow": "visible",
          "clip": null,
          "cornerRadiusPx": 0,
          "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
        },
        "construction": "Native closed Polygon masks for the absolute M/L/H/V/Z path subpaths, mapped from the stated viewBox. Preserve the raw subpath order and nonzero winding fill; all supplied paths are closed polygons. No freehand tracing. Fill only; raw path remains exact editable code."
      },
      {
        "layerId": "stop-circle",
        "kind": "ellipse",
        "recipePointer": "/layers/2/children/11",
        "parentLayerId": "anchored-composer",
        "mergeIndex": 11,
        "nodeId": "stop-circle_Merge",
        "output": "stop-circle_Merge",
        "backgroundInput": "microphone_Merge",
        "foregroundInput": "stop-circle_Gated",
        "activeLocalFrames": [
          0,
          150
        ],
        "effectiveActiveLocalFrames": [
          0,
          150
        ],
        "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
        "staticControls": {
          "start": 0,
          "end": 150,
          "x": 1498,
          "y": 120,
          "width": 78,
          "height": 78,
          "fill": "#e2f0e9"
        },
        "rawNumericControls": {
          "x": 1498,
          "y": 120,
          "width": 78,
          "height": 78
        },
        "tools": {
          "Construct": "stop-circle_Construct",
          "LocalMask": "stop-circle_LocalMask",
          "AnchorShift": "stop-circle_AnchorShift",
          "ScaleRotate": "stop-circle_ScaleRotate",
          "Position": "stop-circle_Position",
          "Gated": "stop-circle_Gated",
          "Merge": "stop-circle_Merge"
        },
        "connections": [
          "stop-circle_Construct -> stop-circle_LocalMask -> stop-circle_AnchorShift -> stop-circle_ScaleRotate -> stop-circle_Position -> stop-circle_Gated -> stop-circle_Merge.Foreground",
          "microphone_Merge -> stop-circle_Merge.Background"
        ],
        "mask": {
          "overflow": "visible",
          "clip": null,
          "cornerRadiusPx": 0,
          "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
        },
        "construction": "Background through local Rectangle/Ellipse mask. For CSS border, use outer stroke-color mask and inset fill mask (inset by strokeWidth, inner radius=max(0,radius-strokeWidth)); border is inward, not a centered SVG stroke. Ellipse ignores radius."
      },
      {
        "layerId": "stop-square",
        "kind": "rect",
        "recipePointer": "/layers/2/children/12",
        "parentLayerId": "anchored-composer",
        "mergeIndex": 12,
        "nodeId": "stop-square_Merge",
        "output": "stop-square_Merge",
        "backgroundInput": "stop-circle_Merge",
        "foregroundInput": "stop-square_Gated",
        "activeLocalFrames": [
          0,
          150
        ],
        "effectiveActiveLocalFrames": [
          0,
          150
        ],
        "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
        "staticControls": {
          "start": 0,
          "end": 150,
          "x": 1523,
          "y": 145,
          "width": 28,
          "height": 28,
          "fill": "$ink",
          "radius": 3
        },
        "rawNumericControls": {
          "x": 1523,
          "y": 145,
          "width": 28,
          "height": 28,
          "radius": 3
        },
        "tools": {
          "Construct": "stop-square_Construct",
          "LocalMask": "stop-square_LocalMask",
          "AnchorShift": "stop-square_AnchorShift",
          "ScaleRotate": "stop-square_ScaleRotate",
          "Position": "stop-square_Position",
          "Gated": "stop-square_Gated",
          "Merge": "stop-square_Merge"
        },
        "connections": [
          "stop-square_Construct -> stop-square_LocalMask -> stop-square_AnchorShift -> stop-square_ScaleRotate -> stop-square_Position -> stop-square_Gated -> stop-square_Merge.Foreground",
          "stop-circle_Merge -> stop-square_Merge.Background"
        ],
        "mask": {
          "overflow": "visible",
          "clip": null,
          "cornerRadiusPx": 3,
          "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
        },
        "construction": "Background through local Rectangle/Ellipse mask. For CSS border, use outer stroke-color mask and inset fill mask (inset by strokeWidth, inner radius=max(0,radius-strokeWidth)); border is inward, not a centered SVG stroke. Ellipse ignores radius."
      }
    ],
    "constructInput": "stop-square_Merge",
    "construction": "Transparent domain -> ordered child merges -> local mask -> group transform -> group alpha. Child opacity is not a substitute for group opacity. Group dimensions never implicitly scale children."
  },
  {
    "layerId": "departing-hand",
    "kind": "group",
    "recipePointer": "/layers/3",
    "parentLayerId": null,
    "mergeIndex": 3,
    "nodeId": "departing-hand_Merge",
    "output": "departing-hand_Merge",
    "backgroundInput": "anchored-composer_Merge",
    "foregroundInput": "departing-hand_Gated",
    "activeLocalFrames": [
      0,
      3
    ],
    "effectiveActiveLocalFrames": [
      0,
      3
    ],
    "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
    "staticControls": {
      "start": 0,
      "end": 3,
      "x": 1692,
      "y": 654,
      "width": 34,
      "height": 34
    },
    "rawNumericControls": {
      "x": 1692,
      "y": 654,
      "width": 34,
      "height": 34
    },
    "tools": {
      "Construct": "departing-hand_Construct",
      "LocalMask": "departing-hand_LocalMask",
      "AnchorShift": "departing-hand_AnchorShift",
      "ScaleRotate": "departing-hand_ScaleRotate",
      "Position": "departing-hand_Position",
      "Gated": "departing-hand_Gated",
      "Merge": "departing-hand_Merge"
    },
    "connections": [
      "departing-hand_Construct -> departing-hand_LocalMask -> departing-hand_AnchorShift -> departing-hand_ScaleRotate -> departing-hand_Position -> departing-hand_Gated -> departing-hand_Merge.Foreground",
      "anchored-composer_Merge -> departing-hand_Merge.Background"
    ],
    "mask": {
      "overflow": "visible",
      "clip": null,
      "cornerRadiusPx": 0,
      "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
    },
    "children": [
      {
        "layerId": "departing-hand-outline",
        "kind": "path",
        "recipePointer": "/layers/3/children/0",
        "parentLayerId": "departing-hand",
        "mergeIndex": 0,
        "nodeId": "departing-hand-outline_Merge",
        "output": "departing-hand-outline_Merge",
        "backgroundInput": "departing-hand_Transparent",
        "foregroundInput": "departing-hand-outline_Gated",
        "activeLocalFrames": [
          0,
          150
        ],
        "effectiveActiveLocalFrames": [
          0,
          3
        ],
        "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
        "staticControls": {
          "start": 0,
          "end": 150,
          "path": "M 20 36 V 7 L 25 3 L 31 7 V 25 L 35 22 L 41 25 L 46 24 L 52 29 L 58 30 L 62 36 V 48 L 57 59 L 48 64 H 31 L 23 58 L 10 40 L 10 34 L 14 31 Z",
          "viewBox": [
            0,
            0,
            68,
            68
          ],
          "x": 0,
          "y": 0,
          "width": 34,
          "height": 34,
          "fill": "$ink"
        },
        "rawNumericControls": {
          "x": 0,
          "y": 0,
          "width": 34,
          "height": 34
        },
        "tools": {
          "Construct": "departing-hand-outline_Construct",
          "LocalMask": "departing-hand-outline_LocalMask",
          "AnchorShift": "departing-hand-outline_AnchorShift",
          "ScaleRotate": "departing-hand-outline_ScaleRotate",
          "Position": "departing-hand-outline_Position",
          "Gated": "departing-hand-outline_Gated",
          "Merge": "departing-hand-outline_Merge"
        },
        "connections": [
          "departing-hand-outline_Construct -> departing-hand-outline_LocalMask -> departing-hand-outline_AnchorShift -> departing-hand-outline_ScaleRotate -> departing-hand-outline_Position -> departing-hand-outline_Gated -> departing-hand-outline_Merge.Foreground",
          "departing-hand_Transparent -> departing-hand-outline_Merge.Background"
        ],
        "mask": {
          "overflow": "visible",
          "clip": null,
          "cornerRadiusPx": 0,
          "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
        },
        "construction": "Native closed Polygon masks for the absolute M/L/H/V/Z path subpaths, mapped from the stated viewBox. Preserve the raw subpath order and nonzero winding fill; all supplied paths are closed polygons. No freehand tracing. Fill only; raw path remains exact editable code."
      },
      {
        "layerId": "departing-hand-mark",
        "kind": "path",
        "recipePointer": "/layers/3/children/1",
        "parentLayerId": "departing-hand",
        "mergeIndex": 1,
        "nodeId": "departing-hand-mark_Merge",
        "output": "departing-hand-mark_Merge",
        "backgroundInput": "departing-hand-outline_Merge",
        "foregroundInput": "departing-hand-mark_Gated",
        "activeLocalFrames": [
          0,
          150
        ],
        "effectiveActiveLocalFrames": [
          0,
          3
        ],
        "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
        "staticControls": {
          "start": 0,
          "end": 150,
          "path": "M 24 42 V 9 L 26 8 L 27 10 V 33 L 35 28 L 41 31 L 46 30 L 49 35 L 55 35 L 58 39 V 47 L 53 56 L 46 60 H 33 L 26 54 L 14 38 L 15 36 Z",
          "viewBox": [
            0,
            0,
            68,
            68
          ],
          "x": 0,
          "y": 0,
          "width": 34,
          "height": 34,
          "fill": "#ffffff"
        },
        "rawNumericControls": {
          "x": 0,
          "y": 0,
          "width": 34,
          "height": 34
        },
        "tools": {
          "Construct": "departing-hand-mark_Construct",
          "LocalMask": "departing-hand-mark_LocalMask",
          "AnchorShift": "departing-hand-mark_AnchorShift",
          "ScaleRotate": "departing-hand-mark_ScaleRotate",
          "Position": "departing-hand-mark_Position",
          "Gated": "departing-hand-mark_Gated",
          "Merge": "departing-hand-mark_Merge"
        },
        "connections": [
          "departing-hand-mark_Construct -> departing-hand-mark_LocalMask -> departing-hand-mark_AnchorShift -> departing-hand-mark_ScaleRotate -> departing-hand-mark_Position -> departing-hand-mark_Gated -> departing-hand-mark_Merge.Foreground",
          "departing-hand-outline_Merge -> departing-hand-mark_Merge.Background"
        ],
        "mask": {
          "overflow": "visible",
          "clip": null,
          "cornerRadiusPx": 0,
          "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
        },
        "construction": "Native closed Polygon masks for the absolute M/L/H/V/Z path subpaths, mapped from the stated viewBox. Preserve the raw subpath order and nonzero winding fill; all supplied paths are closed polygons. No freehand tracing. Fill only; raw path remains exact editable code."
      }
    ],
    "constructInput": "departing-hand-mark_Merge",
    "construction": "Transparent domain -> ordered child merges -> local mask -> group transform -> group alpha. Child opacity is not a substitute for group opacity. Group dimensions never implicitly scale children."
  },
  {
    "layerId": "departing-pointer",
    "kind": "group",
    "recipePointer": "/layers/4",
    "parentLayerId": null,
    "mergeIndex": 4,
    "nodeId": "departing-pointer_Merge",
    "output": "departing-pointer_Merge",
    "backgroundInput": "departing-hand_Merge",
    "foregroundInput": "departing-pointer_Gated",
    "activeLocalFrames": [
      3,
      16
    ],
    "effectiveActiveLocalFrames": [
      3,
      16
    ],
    "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
    "staticControls": {
      "start": 3,
      "end": 16,
      "width": 28,
      "height": 28
    },
    "rawNumericControls": {
      "x": [
        {
          "frame": 3,
          "value": 1692,
          "easing": "smooth"
        },
        {
          "frame": 15,
          "value": 1930,
          "easing": "smooth"
        }
      ],
      "y": [
        {
          "frame": 3,
          "value": 654,
          "easing": "smooth"
        },
        {
          "frame": 15,
          "value": 584,
          "easing": "smooth"
        }
      ],
      "width": 28,
      "height": 28
    },
    "tools": {
      "Construct": "departing-pointer_Construct",
      "LocalMask": "departing-pointer_LocalMask",
      "AnchorShift": "departing-pointer_AnchorShift",
      "ScaleRotate": "departing-pointer_ScaleRotate",
      "Position": "departing-pointer_Position",
      "Gated": "departing-pointer_Gated",
      "Merge": "departing-pointer_Merge"
    },
    "connections": [
      "departing-pointer_Construct -> departing-pointer_LocalMask -> departing-pointer_AnchorShift -> departing-pointer_ScaleRotate -> departing-pointer_Position -> departing-pointer_Gated -> departing-pointer_Merge.Foreground",
      "departing-hand_Merge -> departing-pointer_Merge.Background"
    ],
    "mask": {
      "overflow": "visible",
      "clip": null,
      "cornerRadiusPx": 0,
      "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
    },
    "children": [
      {
        "layerId": "departing-pointer-outline",
        "kind": "path",
        "recipePointer": "/layers/4/children/0",
        "parentLayerId": "departing-pointer",
        "mergeIndex": 0,
        "nodeId": "departing-pointer-outline_Merge",
        "output": "departing-pointer-outline_Merge",
        "backgroundInput": "departing-pointer_Transparent",
        "foregroundInput": "departing-pointer-outline_Gated",
        "activeLocalFrames": [
          0,
          150
        ],
        "effectiveActiveLocalFrames": [
          3,
          16
        ],
        "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
        "staticControls": {
          "start": 0,
          "end": 150,
          "path": "M 5 2 L 52 40 L 33 42 L 44 61 L 32 66 L 22 46 L 5 59 Z",
          "viewBox": [
            0,
            0,
            68,
            68
          ],
          "x": 0,
          "y": 0,
          "width": 28,
          "height": 28,
          "fill": "#ffffff"
        },
        "rawNumericControls": {
          "x": 0,
          "y": 0,
          "width": 28,
          "height": 28
        },
        "tools": {
          "Construct": "departing-pointer-outline_Construct",
          "LocalMask": "departing-pointer-outline_LocalMask",
          "AnchorShift": "departing-pointer-outline_AnchorShift",
          "ScaleRotate": "departing-pointer-outline_ScaleRotate",
          "Position": "departing-pointer-outline_Position",
          "Gated": "departing-pointer-outline_Gated",
          "Merge": "departing-pointer-outline_Merge"
        },
        "connections": [
          "departing-pointer-outline_Construct -> departing-pointer-outline_LocalMask -> departing-pointer-outline_AnchorShift -> departing-pointer-outline_ScaleRotate -> departing-pointer-outline_Position -> departing-pointer-outline_Gated -> departing-pointer-outline_Merge.Foreground",
          "departing-pointer_Transparent -> departing-pointer-outline_Merge.Background"
        ],
        "mask": {
          "overflow": "visible",
          "clip": null,
          "cornerRadiusPx": 0,
          "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
        },
        "construction": "Native closed Polygon masks for the absolute M/L/H/V/Z path subpaths, mapped from the stated viewBox. Preserve the raw subpath order and nonzero winding fill; all supplied paths are closed polygons. No freehand tracing. Fill only; raw path remains exact editable code."
      },
      {
        "layerId": "departing-pointer-mark",
        "kind": "path",
        "recipePointer": "/layers/4/children/1",
        "parentLayerId": "departing-pointer",
        "mergeIndex": 1,
        "nodeId": "departing-pointer-mark_Merge",
        "output": "departing-pointer-mark_Merge",
        "backgroundInput": "departing-pointer-outline_Merge",
        "foregroundInput": "departing-pointer-mark_Gated",
        "activeLocalFrames": [
          0,
          150
        ],
        "effectiveActiveLocalFrames": [
          3,
          16
        ],
        "frameConvention": "Global local frame throughout hierarchy; start inclusive/end exclusive. Do not subtract child start.",
        "staticControls": {
          "start": 0,
          "end": 150,
          "path": "M 10 12 L 40 36 L 25 38 L 37 58 L 34 59 L 23 40 L 10 49 Z",
          "viewBox": [
            0,
            0,
            68,
            68
          ],
          "x": 0,
          "y": 0,
          "width": 28,
          "height": 28,
          "fill": "$ink"
        },
        "rawNumericControls": {
          "x": 0,
          "y": 0,
          "width": 28,
          "height": 28
        },
        "tools": {
          "Construct": "departing-pointer-mark_Construct",
          "LocalMask": "departing-pointer-mark_LocalMask",
          "AnchorShift": "departing-pointer-mark_AnchorShift",
          "ScaleRotate": "departing-pointer-mark_ScaleRotate",
          "Position": "departing-pointer-mark_Position",
          "Gated": "departing-pointer-mark_Gated",
          "Merge": "departing-pointer-mark_Merge"
        },
        "connections": [
          "departing-pointer-mark_Construct -> departing-pointer-mark_LocalMask -> departing-pointer-mark_AnchorShift -> departing-pointer-mark_ScaleRotate -> departing-pointer-mark_Position -> departing-pointer-mark_Gated -> departing-pointer-mark_Merge.Foreground",
          "departing-pointer-outline_Merge -> departing-pointer-mark_Merge.Background"
        ],
        "mask": {
          "overflow": "visible",
          "clip": null,
          "cornerRadiusPx": 0,
          "stage": "Intersect overflow rounded mask and clip-inset mask before this layer transform. No dimensions-only clipping."
        },
        "construction": "Native closed Polygon masks for the absolute M/L/H/V/Z path subpaths, mapped from the stated viewBox. Preserve the raw subpath order and nonzero winding fill; all supplied paths are closed polygons. No freehand tracing. Fill only; raw path remains exact editable code."
      }
    ],
    "constructInput": "departing-pointer-mark_Merge",
    "construction": "Transparent domain -> ordered child merges -> local mask -> group transform -> group alpha. Child opacity is not a substitute for group opacity. Group dimensions never implicitly scale children."
  }
]

maskConstruction
{
  "roundedRect": "Union rectangles (r,0,w-2r,h), (0,r,w,h-2r) and radius-r circles at (r,r),(w-r,r),(r,h-r),(w-r,h-r); clamp alpha. r=0: one Rectangle.",
  "border": "CSS border is inward: outer stroke-color mask, inset fill by strokeWidth; inner radius max(0,r-strokeWidth).",
  "svgRectRadius": "SVG rx rounds corners without changing alpha outside the shape. No SVG stroke is used.",
  "groupAlpha": "Apply local opacity once after child assembly, not separately on each child.",
  "overflow": "No dimensions-only clipping. Only explicit overflow:hidden or clip insets; otherwise use final crop.",
  "color": "Use raw RGB fills in a consistent non-tone-mapped working pipeline; native antialiasing and color-management parity require output review."
}

specificConstruction
conversation owns the clipped preceding request, wait/notice/answer/link, trailing code/punctuation and artifact-preview. anchored-composer is a later root sibling and occludes the preview, never a child of the scrolling conversation. artifact-preview has overflow:hidden and a growing local mask; no text width or font size changes. Its loading line starts at global local frame 141, not 141 frames after preview start. The conversation shift applies once to all its children. scroll-hint is a root sibling, not a moving conversation element. departing-hand and departing-pointer are mutually exclusive early overlays. Install stays dim and the composer stop square persists. There is no native skill backend, link opening or generated replacement of source footage.

svgSubgraphs
{
  "wave04-interface/skill-artifact-disclosure/artifactBadge-defaults.svg": {
    "viewBox": [
      0.0,
      0.0,
      128.0,
      128.0
    ],
    "prefixRule": "Prefix every primitive/node name with the consuming layerId; repeated uses remain editable independent instances.",
    "primitives": [
      {
        "id": "Primitive00",
        "kind": "circle",
        "geometry": {
          "centerPx": [
            64.0,
            64.0
          ],
          "sizePx": [
            120.0,
            120.0
          ]
        },
        "fill": "#daeee4",
        "alpha": 1.0,
        "tools": [
          "Ellipse",
          "Background",
          "Merge"
        ],
        "connections": {
          "mask": "Primitive00_Mask",
          "foreground": "Primitive00_Paint",
          "background": "Transparent",
          "output": "Primitive00_Merge"
        },
        "svgAttributes": {
          "cx": "64",
          "cy": "64",
          "r": "60",
          "fill": "#daeee4"
        }
      },
      {
        "id": "Primitive01",
        "kind": "rect",
        "geometry": {
          "centerPx": [
            64.0,
            67.0
          ],
          "sizePx": [
            70.0,
            64.0
          ],
          "cornerRadiusPx": 10.0
        },
        "fill": "#347662",
        "alpha": 1.0,
        "tools": [
          "Rectangle",
          "Background",
          "Merge"
        ],
        "connections": {
          "mask": "Primitive01_Mask",
          "foreground": "Primitive01_Paint",
          "background": "Primitive00_Merge",
          "output": "Primitive01_Merge"
        },
        "svgAttributes": {
          "x": "29",
          "y": "35",
          "width": "70",
          "height": "64",
          "rx": "10",
          "fill": "#347662"
        }
      },
      {
        "id": "Primitive02",
        "kind": "rect",
        "geometry": {
          "centerPx": [
            64.0,
            52.5
          ],
          "sizePx": [
            42.0,
            9.0
          ],
          "cornerRadiusPx": 0.0
        },
        "fill": "#eff7f1",
        "alpha": 1.0,
        "tools": [
          "Rectangle",
          "Background",
          "Merge"
        ],
        "connections": {
          "mask": "Primitive02_Mask",
          "foreground": "Primitive02_Paint",
          "background": "Primitive01_Merge",
          "output": "Primitive02_Merge"
        },
        "svgAttributes": {
          "x": "43",
          "y": "48",
          "width": "42",
          "height": "9",
          "fill": "#eff7f1"
        }
      },
      {
        "id": "Primitive03",
        "kind": "rect",
        "geometry": {
          "centerPx": [
            58.0,
            71.5
          ],
          "sizePx": [
            30.0,
            9.0
          ],
          "cornerRadiusPx": 0.0
        },
        "fill": "#eff7f1",
        "alpha": 1.0,
        "tools": [
          "Rectangle",
          "Background",
          "Merge"
        ],
        "connections": {
          "mask": "Primitive03_Mask",
          "foreground": "Primitive03_Paint",
          "background": "Primitive02_Merge",
          "output": "Primitive03_Merge"
        },
        "svgAttributes": {
          "x": "43",
          "y": "67",
          "width": "30",
          "height": "9",
          "fill": "#eff7f1"
        }
      },
      {
        "id": "Primitive04",
        "kind": "rect",
        "geometry": {
          "centerPx": [
            52.0,
            88.5
          ],
          "sizePx": [
            18.0,
            5.0
          ],
          "cornerRadiusPx": 0.0
        },
        "fill": "#eff7f1",
        "alpha": 1.0,
        "tools": [
          "Rectangle",
          "Background",
          "Merge"
        ],
        "connections": {
          "mask": "Primitive04_Mask",
          "foreground": "Primitive04_Paint",
          "background": "Primitive03_Merge",
          "output": "Primitive04_Merge"
        },
        "svgAttributes": {
          "x": "43",
          "y": "86",
          "width": "18",
          "height": "5",
          "fill": "#eff7f1"
        }
      }
    ],
    "output": "Primitive04_Merge",
    "fit": "Contain, centered in consuming box. factor=min(boxWidth/viewBoxWidth,boxHeight/viewBoxHeight); letterbox offsets=(boxSize-factor*viewBoxSize)/2. Map primitive geometry through factor/offset before layer transform.",
    "input": "Transparent padded working domain; no raster Loader or source frame."
  },
  "wave04-interface/skill-artifact-disclosure/artifactBadge-adaptation.svg": {
    "viewBox": [
      0.0,
      0.0,
      128.0,
      128.0
    ],
    "prefixRule": "Prefix every primitive/node name with the consuming layerId; repeated uses remain editable independent instances.",
    "primitives": [
      {
        "id": "Primitive00",
        "kind": "circle",
        "geometry": {
          "centerPx": [
            64.0,
            64.0
          ],
          "sizePx": [
            120.0,
            120.0
          ]
        },
        "fill": "#e8ded3",
        "alpha": 1.0,
        "tools": [
          "Ellipse",
          "Background",
          "Merge"
        ],
        "connections": {
          "mask": "Primitive00_Mask",
          "foreground": "Primitive00_Paint",
          "background": "Transparent",
          "output": "Primitive00_Merge"
        },
        "svgAttributes": {
          "cx": "64",
          "cy": "64",
          "r": "60",
          "fill": "#e8ded3"
        }
      },
      {
        "id": "Primitive01",
        "kind": "polygon",
        "geometry": {
          "verticesPx": [
            [
              64.0,
              105.0
            ],
            [
              44.0,
              78.0
            ],
            [
              36.0,
              44.0
            ],
            [
              61.0,
              54.0
            ],
            [
              65.0,
              78.0
            ],
            [
              73.0,
              42.0
            ],
            [
              103.0,
              25.0
            ],
            [
              98.0,
              59.0
            ],
            [
              73.0,
              82.0
            ]
          ],
          "closed": true
        },
        "fill": "#956642",
        "alpha": 1.0,
        "tools": [
          "Polygon",
          "Background",
          "Merge"
        ],
        "connections": {
          "mask": "Primitive01_Mask",
          "foreground": "Primitive01_Paint",
          "background": "Primitive00_Merge",
          "output": "Primitive01_Merge"
        },
        "svgAttributes": {
          "points": "64,105 44,78 36,44 61,54 65,78 73,42 103,25 98,59 73,82",
          "fill": "#956642"
        }
      },
      {
        "id": "Primitive02",
        "kind": "rect",
        "geometry": {
          "centerPx": [
            64.0,
            90.0
          ],
          "sizePx": [
            6.0,
            36.0
          ],
          "cornerRadiusPx": 0.0
        },
        "fill": "#f5eee5",
        "alpha": 1.0,
        "tools": [
          "Rectangle",
          "Background",
          "Merge"
        ],
        "connections": {
          "mask": "Primitive02_Mask",
          "foreground": "Primitive02_Paint",
          "background": "Primitive01_Merge",
          "output": "Primitive02_Merge"
        },
        "svgAttributes": {
          "x": "61",
          "y": "72",
          "width": "6",
          "height": "36",
          "fill": "#f5eee5"
        }
      }
    ],
    "output": "Primitive02_Merge",
    "fit": "Contain, centered in consuming box. factor=min(boxWidth/viewBoxWidth,boxHeight/viewBoxHeight); letterbox offsets=(boxSize-factor*viewBoxSize)/2. Map primitive geometry through factor/offset before layer transform.",
    "input": "Transparent padded working domain; no raster Loader or source frame."
  }
}

tracks
[
  {
    "layerId": "conversation",
    "parentId": null,
    "property": "x",
    "rawTrack": 0,
    "animated": false,
    "keyCount": 1,
    "minimum": 0,
    "maximum": 0,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "conversation",
    "parentId": null,
    "property": "y",
    "rawTrack": [
      {
        "frame": 0,
        "value": 0,
        "easing": "smooth"
      },
      {
        "frame": 140,
        "value": 0,
        "easing": "smooth"
      },
      {
        "frame": 141,
        "value": -64,
        "easing": "smooth"
      },
      {
        "frame": 144,
        "value": -156,
        "easing": "smooth"
      },
      {
        "frame": 149,
        "value": -184,
        "easing": "smooth"
      }
    ],
    "animated": true,
    "keyCount": 5,
    "minimum": -184,
    "maximum": 0,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "conversation",
    "parentId": null,
    "property": "width",
    "rawTrack": 1920,
    "animated": false,
    "keyCount": 1,
    "minimum": 1920,
    "maximum": 1920,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "conversation",
    "parentId": null,
    "property": "height",
    "rawTrack": 1080,
    "animated": false,
    "keyCount": 1,
    "minimum": 1080,
    "maximum": 1080,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "prior-bubble",
    "parentId": "conversation",
    "property": "x",
    "rawTrack": 636,
    "animated": false,
    "keyCount": 1,
    "minimum": 636,
    "maximum": 636,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "prior-bubble",
    "parentId": "conversation",
    "property": "y",
    "rawTrack": -160,
    "animated": false,
    "keyCount": 1,
    "minimum": -160,
    "maximum": -160,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "prior-bubble",
    "parentId": "conversation",
    "property": "width",
    "rawTrack": 1120,
    "animated": false,
    "keyCount": 1,
    "minimum": 1120,
    "maximum": 1120,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "prior-bubble",
    "parentId": "conversation",
    "property": "height",
    "rawTrack": 348,
    "animated": false,
    "keyCount": 1,
    "minimum": 348,
    "maximum": 348,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "prior-bubble",
    "parentId": "conversation",
    "property": "radius",
    "rawTrack": 40,
    "animated": false,
    "keyCount": 1,
    "minimum": 40,
    "maximum": 40,
    "fusionMapping": "Pixel corner radius; use rounded-mask construction"
  },
  {
    "layerId": "prior-request",
    "parentId": "conversation",
    "property": "x",
    "rawTrack": 670,
    "animated": false,
    "keyCount": 1,
    "minimum": 670,
    "maximum": 670,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "prior-request",
    "parentId": "conversation",
    "property": "y",
    "rawTrack": -100,
    "animated": false,
    "keyCount": 1,
    "minimum": -100,
    "maximum": -100,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "prior-request",
    "parentId": "conversation",
    "property": "width",
    "rawTrack": 1040,
    "animated": false,
    "keyCount": 1,
    "minimum": 1040,
    "maximum": 1040,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "prior-request",
    "parentId": "conversation",
    "property": "height",
    "rawTrack": 264,
    "animated": false,
    "keyCount": 1,
    "minimum": 264,
    "maximum": 264,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "thinking-label",
    "parentId": "conversation",
    "property": "x",
    "rawTrack": 158,
    "animated": false,
    "keyCount": 1,
    "minimum": 158,
    "maximum": 158,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "thinking-label",
    "parentId": "conversation",
    "property": "y",
    "rawTrack": 376,
    "animated": false,
    "keyCount": 1,
    "minimum": 376,
    "maximum": 376,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "thinking-label",
    "parentId": "conversation",
    "property": "width",
    "rawTrack": 1480,
    "animated": false,
    "keyCount": 1,
    "minimum": 1480,
    "maximum": 1480,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "thinking-label",
    "parentId": "conversation",
    "property": "height",
    "rawTrack": 64,
    "animated": false,
    "keyCount": 1,
    "minimum": 64,
    "maximum": 64,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "helper-notice",
    "parentId": "conversation",
    "property": "x",
    "rawTrack": 158,
    "animated": false,
    "keyCount": 1,
    "minimum": 158,
    "maximum": 158,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "helper-notice",
    "parentId": "conversation",
    "property": "y",
    "rawTrack": 394,
    "animated": false,
    "keyCount": 1,
    "minimum": 394,
    "maximum": 394,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "helper-notice",
    "parentId": "conversation",
    "property": "width",
    "rawTrack": 1480,
    "animated": false,
    "keyCount": 1,
    "minimum": 1480,
    "maximum": 1480,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "helper-notice",
    "parentId": "conversation",
    "property": "height",
    "rawTrack": 62,
    "animated": false,
    "keyCount": 1,
    "minimum": 62,
    "maximum": 62,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "residual-thinking",
    "parentId": "conversation",
    "property": "x",
    "rawTrack": 146,
    "animated": false,
    "keyCount": 1,
    "minimum": 146,
    "maximum": 146,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "residual-thinking",
    "parentId": "conversation",
    "property": "y",
    "rawTrack": 542,
    "animated": false,
    "keyCount": 1,
    "minimum": 542,
    "maximum": 542,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "residual-thinking",
    "parentId": "conversation",
    "property": "width",
    "rawTrack": 1480,
    "animated": false,
    "keyCount": 1,
    "minimum": 1480,
    "maximum": 1480,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "residual-thinking",
    "parentId": "conversation",
    "property": "height",
    "rawTrack": 64,
    "animated": false,
    "keyCount": 1,
    "minimum": 64,
    "maximum": 64,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "residual-thinking",
    "parentId": "conversation",
    "property": "opacity",
    "rawTrack": 0.3,
    "animated": false,
    "keyCount": 1,
    "minimum": 0.3,
    "maximum": 0.3,
    "fusionMapping": "Gated.Merge.Blend=active*opacity after child assembly"
  },
  {
    "layerId": "answer-line",
    "parentId": "conversation",
    "property": "x",
    "rawTrack": 158,
    "animated": false,
    "keyCount": 1,
    "minimum": 158,
    "maximum": 158,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "answer-line",
    "parentId": "conversation",
    "property": "y",
    "rawTrack": 548,
    "animated": false,
    "keyCount": 1,
    "minimum": 548,
    "maximum": 548,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "answer-line",
    "parentId": "conversation",
    "property": "width",
    "rawTrack": 1500,
    "animated": false,
    "keyCount": 1,
    "minimum": 1500,
    "maximum": 1500,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "answer-line",
    "parentId": "conversation",
    "property": "height",
    "rawTrack": 68,
    "animated": false,
    "keyCount": 1,
    "minimum": 68,
    "maximum": 68,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "download-line",
    "parentId": "conversation",
    "property": "x",
    "rawTrack": 158,
    "animated": false,
    "keyCount": 1,
    "minimum": 158,
    "maximum": 158,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "download-line",
    "parentId": "conversation",
    "property": "y",
    "rawTrack": 638,
    "animated": false,
    "keyCount": 1,
    "minimum": 638,
    "maximum": 638,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "download-line",
    "parentId": "conversation",
    "property": "width",
    "rawTrack": 940,
    "animated": false,
    "keyCount": 1,
    "minimum": 940,
    "maximum": 940,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "download-line",
    "parentId": "conversation",
    "property": "height",
    "rawTrack": 58,
    "animated": false,
    "keyCount": 1,
    "minimum": 58,
    "maximum": 58,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "trailing-markup",
    "parentId": "conversation",
    "property": "x",
    "rawTrack": 573,
    "animated": false,
    "keyCount": 1,
    "minimum": 573,
    "maximum": 573,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "trailing-markup",
    "parentId": "conversation",
    "property": "y",
    "rawTrack": 643,
    "animated": false,
    "keyCount": 1,
    "minimum": 643,
    "maximum": 643,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "trailing-markup",
    "parentId": "conversation",
    "property": "width",
    "rawTrack": 146,
    "animated": false,
    "keyCount": 1,
    "minimum": 146,
    "maximum": 146,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "trailing-markup",
    "parentId": "conversation",
    "property": "height",
    "rawTrack": 46,
    "animated": false,
    "keyCount": 1,
    "minimum": 46,
    "maximum": 46,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "code-chip-paper",
    "parentId": "trailing-markup",
    "property": "x",
    "rawTrack": 0,
    "animated": false,
    "keyCount": 1,
    "minimum": 0,
    "maximum": 0,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "code-chip-paper",
    "parentId": "trailing-markup",
    "property": "y",
    "rawTrack": 0,
    "animated": false,
    "keyCount": 1,
    "minimum": 0,
    "maximum": 0,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "code-chip-paper",
    "parentId": "trailing-markup",
    "property": "width",
    "rawTrack": 60,
    "animated": false,
    "keyCount": 1,
    "minimum": 60,
    "maximum": 60,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "code-chip-paper",
    "parentId": "trailing-markup",
    "property": "height",
    "rawTrack": 38,
    "animated": false,
    "keyCount": 1,
    "minimum": 38,
    "maximum": 38,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "code-chip-paper",
    "parentId": "trailing-markup",
    "property": "radius",
    "rawTrack": 8,
    "animated": false,
    "keyCount": 1,
    "minimum": 8,
    "maximum": 8,
    "fusionMapping": "Pixel corner radius; use rounded-mask construction"
  },
  {
    "layerId": "code-chip",
    "parentId": "trailing-markup",
    "property": "x",
    "rawTrack": 3,
    "animated": false,
    "keyCount": 1,
    "minimum": 3,
    "maximum": 3,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "code-chip",
    "parentId": "trailing-markup",
    "property": "y",
    "rawTrack": 4,
    "animated": false,
    "keyCount": 1,
    "minimum": 4,
    "maximum": 4,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "code-chip",
    "parentId": "trailing-markup",
    "property": "width",
    "rawTrack": 54,
    "animated": false,
    "keyCount": 1,
    "minimum": 54,
    "maximum": 54,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "code-chip",
    "parentId": "trailing-markup",
    "property": "height",
    "rawTrack": 34,
    "animated": false,
    "keyCount": 1,
    "minimum": 34,
    "maximum": 34,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "unfinished-punctuation",
    "parentId": "trailing-markup",
    "property": "x",
    "rawTrack": [
      {
        "frame": 90,
        "value": 0,
        "easing": "hold"
      },
      {
        "frame": 110,
        "value": 68,
        "easing": "smooth"
      }
    ],
    "animated": true,
    "keyCount": 2,
    "minimum": 0,
    "maximum": 68,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "unfinished-punctuation",
    "parentId": "trailing-markup",
    "property": "y",
    "rawTrack": 0,
    "animated": false,
    "keyCount": 1,
    "minimum": 0,
    "maximum": 0,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "unfinished-punctuation",
    "parentId": "trailing-markup",
    "property": "width",
    "rawTrack": 64,
    "animated": false,
    "keyCount": 1,
    "minimum": 64,
    "maximum": 64,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "unfinished-punctuation",
    "parentId": "trailing-markup",
    "property": "height",
    "rawTrack": 44,
    "animated": false,
    "keyCount": 1,
    "minimum": 44,
    "maximum": 44,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "artifact-preview",
    "parentId": "conversation",
    "property": "x",
    "rawTrack": 158,
    "animated": false,
    "keyCount": 1,
    "minimum": 158,
    "maximum": 158,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "artifact-preview",
    "parentId": "conversation",
    "property": "y",
    "rawTrack": 720,
    "animated": false,
    "keyCount": 1,
    "minimum": 720,
    "maximum": 720,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "artifact-preview",
    "parentId": "conversation",
    "property": "width",
    "rawTrack": 1600,
    "animated": false,
    "keyCount": 1,
    "minimum": 1600,
    "maximum": 1600,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "artifact-preview",
    "parentId": "conversation",
    "property": "height",
    "rawTrack": [
      {
        "frame": 87,
        "value": 112,
        "easing": "smooth"
      },
      {
        "frame": 140,
        "value": 112,
        "easing": "smooth"
      },
      {
        "frame": 141,
        "value": 176,
        "easing": "smooth"
      },
      {
        "frame": 149,
        "value": 184,
        "easing": "smooth"
      }
    ],
    "animated": true,
    "keyCount": 4,
    "minimum": 112,
    "maximum": 184,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "preview-paper",
    "parentId": "artifact-preview",
    "property": "x",
    "rawTrack": 0,
    "animated": false,
    "keyCount": 1,
    "minimum": 0,
    "maximum": 0,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "preview-paper",
    "parentId": "artifact-preview",
    "property": "y",
    "rawTrack": 0,
    "animated": false,
    "keyCount": 1,
    "minimum": 0,
    "maximum": 0,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "preview-paper",
    "parentId": "artifact-preview",
    "property": "width",
    "rawTrack": 1600,
    "animated": false,
    "keyCount": 1,
    "minimum": 1600,
    "maximum": 1600,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "preview-paper",
    "parentId": "artifact-preview",
    "property": "height",
    "rawTrack": [
      {
        "frame": 87,
        "value": 112,
        "easing": "smooth"
      },
      {
        "frame": 140,
        "value": 112,
        "easing": "smooth"
      },
      {
        "frame": 141,
        "value": 176,
        "easing": "smooth"
      },
      {
        "frame": 149,
        "value": 184,
        "easing": "smooth"
      }
    ],
    "animated": true,
    "keyCount": 4,
    "minimum": 112,
    "maximum": 184,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "preview-paper",
    "parentId": "artifact-preview",
    "property": "radius",
    "rawTrack": 34,
    "animated": false,
    "keyCount": 1,
    "minimum": 34,
    "maximum": 34,
    "fusionMapping": "Pixel corner radius; use rounded-mask construction"
  },
  {
    "layerId": "artifact-icon",
    "parentId": "artifact-preview",
    "property": "x",
    "rawTrack": 32,
    "animated": false,
    "keyCount": 1,
    "minimum": 32,
    "maximum": 32,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "artifact-icon",
    "parentId": "artifact-preview",
    "property": "y",
    "rawTrack": 30,
    "animated": false,
    "keyCount": 1,
    "minimum": 30,
    "maximum": 30,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "artifact-icon",
    "parentId": "artifact-preview",
    "property": "width",
    "rawTrack": 88,
    "animated": false,
    "keyCount": 1,
    "minimum": 88,
    "maximum": 88,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "artifact-icon",
    "parentId": "artifact-preview",
    "property": "height",
    "rawTrack": 88,
    "animated": false,
    "keyCount": 1,
    "minimum": 88,
    "maximum": 88,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "preview-title",
    "parentId": "artifact-preview",
    "property": "x",
    "rawTrack": 156,
    "animated": false,
    "keyCount": 1,
    "minimum": 156,
    "maximum": 156,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "preview-title",
    "parentId": "artifact-preview",
    "property": "y",
    "rawTrack": 28,
    "animated": false,
    "keyCount": 1,
    "minimum": 28,
    "maximum": 28,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "preview-title",
    "parentId": "artifact-preview",
    "property": "width",
    "rawTrack": 1240,
    "animated": false,
    "keyCount": 1,
    "minimum": 1240,
    "maximum": 1240,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "preview-title",
    "parentId": "artifact-preview",
    "property": "height",
    "rawTrack": 52,
    "animated": false,
    "keyCount": 1,
    "minimum": 52,
    "maximum": 52,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "preview-draft",
    "parentId": "artifact-preview",
    "property": "x",
    "rawTrack": 156,
    "animated": false,
    "keyCount": 1,
    "minimum": 156,
    "maximum": 156,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "preview-draft",
    "parentId": "artifact-preview",
    "property": "y",
    "rawTrack": 81,
    "animated": false,
    "keyCount": 1,
    "minimum": 81,
    "maximum": 81,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "preview-draft",
    "parentId": "artifact-preview",
    "property": "width",
    "rawTrack": 1238,
    "animated": false,
    "keyCount": 1,
    "minimum": 1238,
    "maximum": 1238,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "preview-draft",
    "parentId": "artifact-preview",
    "property": "height",
    "rawTrack": 44,
    "animated": false,
    "keyCount": 1,
    "minimum": 44,
    "maximum": 44,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "preview-loading",
    "parentId": "artifact-preview",
    "property": "x",
    "rawTrack": 156,
    "animated": false,
    "keyCount": 1,
    "minimum": 156,
    "maximum": 156,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "preview-loading",
    "parentId": "artifact-preview",
    "property": "y",
    "rawTrack": 127,
    "animated": false,
    "keyCount": 1,
    "minimum": 127,
    "maximum": 127,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "preview-loading",
    "parentId": "artifact-preview",
    "property": "width",
    "rawTrack": 1238,
    "animated": false,
    "keyCount": 1,
    "minimum": 1238,
    "maximum": 1238,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "preview-loading",
    "parentId": "artifact-preview",
    "property": "height",
    "rawTrack": 44,
    "animated": false,
    "keyCount": 1,
    "minimum": 44,
    "maximum": 44,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "install-disabled",
    "parentId": "artifact-preview",
    "property": "x",
    "rawTrack": 1448,
    "animated": false,
    "keyCount": 1,
    "minimum": 1448,
    "maximum": 1448,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "install-disabled",
    "parentId": "artifact-preview",
    "property": "y",
    "rawTrack": 31,
    "animated": false,
    "keyCount": 1,
    "minimum": 31,
    "maximum": 31,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "install-disabled",
    "parentId": "artifact-preview",
    "property": "width",
    "rawTrack": 116,
    "animated": false,
    "keyCount": 1,
    "minimum": 116,
    "maximum": 116,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "install-disabled",
    "parentId": "artifact-preview",
    "property": "height",
    "rawTrack": 56,
    "animated": false,
    "keyCount": 1,
    "minimum": 56,
    "maximum": 56,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "install-disabled",
    "parentId": "artifact-preview",
    "property": "radius",
    "rawTrack": 28,
    "animated": false,
    "keyCount": 1,
    "minimum": 28,
    "maximum": 28,
    "fusionMapping": "Pixel corner radius; use rounded-mask construction"
  },
  {
    "layerId": "install-label",
    "parentId": "artifact-preview",
    "property": "x",
    "rawTrack": 1460,
    "animated": false,
    "keyCount": 1,
    "minimum": 1460,
    "maximum": 1460,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "install-label",
    "parentId": "artifact-preview",
    "property": "y",
    "rawTrack": 43,
    "animated": false,
    "keyCount": 1,
    "minimum": 43,
    "maximum": 43,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "install-label",
    "parentId": "artifact-preview",
    "property": "width",
    "rawTrack": 92,
    "animated": false,
    "keyCount": 1,
    "minimum": 92,
    "maximum": 92,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "install-label",
    "parentId": "artifact-preview",
    "property": "height",
    "rawTrack": 38,
    "animated": false,
    "keyCount": 1,
    "minimum": 38,
    "maximum": 38,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "scroll-hint",
    "parentId": null,
    "property": "x",
    "rawTrack": 928,
    "animated": false,
    "keyCount": 1,
    "minimum": 928,
    "maximum": 928,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "scroll-hint",
    "parentId": null,
    "property": "y",
    "rawTrack": 698,
    "animated": false,
    "keyCount": 1,
    "minimum": 698,
    "maximum": 698,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "scroll-hint",
    "parentId": null,
    "property": "width",
    "rawTrack": 64,
    "animated": false,
    "keyCount": 1,
    "minimum": 64,
    "maximum": 64,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "scroll-hint",
    "parentId": null,
    "property": "height",
    "rawTrack": 64,
    "animated": false,
    "keyCount": 1,
    "minimum": 64,
    "maximum": 64,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "scroll-hint",
    "parentId": null,
    "property": "opacity",
    "rawTrack": [
      {
        "frame": 89,
        "value": 1,
        "easing": "smooth"
      },
      {
        "frame": 146,
        "value": 1,
        "easing": "smooth"
      },
      {
        "frame": 148,
        "value": 0.15,
        "easing": "smooth"
      }
    ],
    "animated": true,
    "keyCount": 3,
    "minimum": 0.15,
    "maximum": 1,
    "fusionMapping": "Gated.Merge.Blend=active*opacity after child assembly"
  },
  {
    "layerId": "hint-paper",
    "parentId": "scroll-hint",
    "property": "x",
    "rawTrack": 0,
    "animated": false,
    "keyCount": 1,
    "minimum": 0,
    "maximum": 0,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "hint-paper",
    "parentId": "scroll-hint",
    "property": "y",
    "rawTrack": 0,
    "animated": false,
    "keyCount": 1,
    "minimum": 0,
    "maximum": 0,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "hint-paper",
    "parentId": "scroll-hint",
    "property": "width",
    "rawTrack": 64,
    "animated": false,
    "keyCount": 1,
    "minimum": 64,
    "maximum": 64,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "hint-paper",
    "parentId": "scroll-hint",
    "property": "height",
    "rawTrack": 64,
    "animated": false,
    "keyCount": 1,
    "minimum": 64,
    "maximum": 64,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "hint-arrow",
    "parentId": "scroll-hint",
    "property": "x",
    "rawTrack": 12,
    "animated": false,
    "keyCount": 1,
    "minimum": 12,
    "maximum": 12,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "hint-arrow",
    "parentId": "scroll-hint",
    "property": "y",
    "rawTrack": 10,
    "animated": false,
    "keyCount": 1,
    "minimum": 10,
    "maximum": 10,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "hint-arrow",
    "parentId": "scroll-hint",
    "property": "width",
    "rawTrack": 40,
    "animated": false,
    "keyCount": 1,
    "minimum": 40,
    "maximum": 40,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "hint-arrow",
    "parentId": "scroll-hint",
    "property": "height",
    "rawTrack": 40,
    "animated": false,
    "keyCount": 1,
    "minimum": 40,
    "maximum": 40,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "anchored-composer",
    "parentId": null,
    "property": "x",
    "rawTrack": 158,
    "animated": false,
    "keyCount": 1,
    "minimum": 158,
    "maximum": 158,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "anchored-composer",
    "parentId": null,
    "property": "y",
    "rawTrack": 812,
    "animated": false,
    "keyCount": 1,
    "minimum": 812,
    "maximum": 812,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "anchored-composer",
    "parentId": null,
    "property": "width",
    "rawTrack": 1600,
    "animated": false,
    "keyCount": 1,
    "minimum": 1600,
    "maximum": 1600,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "anchored-composer",
    "parentId": null,
    "property": "height",
    "rawTrack": 216,
    "animated": false,
    "keyCount": 1,
    "minimum": 216,
    "maximum": 216,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "composer-paper",
    "parentId": "anchored-composer",
    "property": "x",
    "rawTrack": 0,
    "animated": false,
    "keyCount": 1,
    "minimum": 0,
    "maximum": 0,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "composer-paper",
    "parentId": "anchored-composer",
    "property": "y",
    "rawTrack": 0,
    "animated": false,
    "keyCount": 1,
    "minimum": 0,
    "maximum": 0,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "composer-paper",
    "parentId": "anchored-composer",
    "property": "width",
    "rawTrack": 1600,
    "animated": false,
    "keyCount": 1,
    "minimum": 1600,
    "maximum": 1600,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "composer-paper",
    "parentId": "anchored-composer",
    "property": "height",
    "rawTrack": 216,
    "animated": false,
    "keyCount": 1,
    "minimum": 216,
    "maximum": 216,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "composer-paper",
    "parentId": "anchored-composer",
    "property": "radius",
    "rawTrack": 60,
    "animated": false,
    "keyCount": 1,
    "minimum": 60,
    "maximum": 60,
    "fusionMapping": "Pixel corner radius; use rounded-mask construction"
  },
  {
    "layerId": "prompt-initial",
    "parentId": "anchored-composer",
    "property": "x",
    "rawTrack": 44,
    "animated": false,
    "keyCount": 1,
    "minimum": 44,
    "maximum": 44,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "prompt-initial",
    "parentId": "anchored-composer",
    "property": "y",
    "rawTrack": 36,
    "animated": false,
    "keyCount": 1,
    "minimum": 36,
    "maximum": 36,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "prompt-initial",
    "parentId": "anchored-composer",
    "property": "width",
    "rawTrack": 1470,
    "animated": false,
    "keyCount": 1,
    "minimum": 1470,
    "maximum": 1470,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "prompt-initial",
    "parentId": "anchored-composer",
    "property": "height",
    "rawTrack": 62,
    "animated": false,
    "keyCount": 1,
    "minimum": 62,
    "maximum": 62,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "prompt-followup",
    "parentId": "anchored-composer",
    "property": "x",
    "rawTrack": 44,
    "animated": false,
    "keyCount": 1,
    "minimum": 44,
    "maximum": 44,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "prompt-followup",
    "parentId": "anchored-composer",
    "property": "y",
    "rawTrack": 36,
    "animated": false,
    "keyCount": 1,
    "minimum": 36,
    "maximum": 36,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "prompt-followup",
    "parentId": "anchored-composer",
    "property": "width",
    "rawTrack": 1470,
    "animated": false,
    "keyCount": 1,
    "minimum": 1470,
    "maximum": 1470,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "prompt-followup",
    "parentId": "anchored-composer",
    "property": "height",
    "rawTrack": 62,
    "animated": false,
    "keyCount": 1,
    "minimum": 62,
    "maximum": 62,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "prompt-return",
    "parentId": "anchored-composer",
    "property": "x",
    "rawTrack": 44,
    "animated": false,
    "keyCount": 1,
    "minimum": 44,
    "maximum": 44,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "prompt-return",
    "parentId": "anchored-composer",
    "property": "y",
    "rawTrack": 36,
    "animated": false,
    "keyCount": 1,
    "minimum": 36,
    "maximum": 36,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "prompt-return",
    "parentId": "anchored-composer",
    "property": "width",
    "rawTrack": 1470,
    "animated": false,
    "keyCount": 1,
    "minimum": 1470,
    "maximum": 1470,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "prompt-return",
    "parentId": "anchored-composer",
    "property": "height",
    "rawTrack": 62,
    "animated": false,
    "keyCount": 1,
    "minimum": 62,
    "maximum": 62,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "add-mark",
    "parentId": "anchored-composer",
    "property": "x",
    "rawTrack": 44,
    "animated": false,
    "keyCount": 1,
    "minimum": 44,
    "maximum": 44,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "add-mark",
    "parentId": "anchored-composer",
    "property": "y",
    "rawTrack": 142,
    "animated": false,
    "keyCount": 1,
    "minimum": 142,
    "maximum": 142,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "add-mark",
    "parentId": "anchored-composer",
    "property": "width",
    "rawTrack": 30,
    "animated": false,
    "keyCount": 1,
    "minimum": 30,
    "maximum": 30,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "add-mark",
    "parentId": "anchored-composer",
    "property": "height",
    "rawTrack": 30,
    "animated": false,
    "keyCount": 1,
    "minimum": 30,
    "maximum": 30,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "mode-disc",
    "parentId": "anchored-composer",
    "property": "x",
    "rawTrack": 117,
    "animated": false,
    "keyCount": 1,
    "minimum": 117,
    "maximum": 117,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "mode-disc",
    "parentId": "anchored-composer",
    "property": "y",
    "rawTrack": 139,
    "animated": false,
    "keyCount": 1,
    "minimum": 139,
    "maximum": 139,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "mode-disc",
    "parentId": "anchored-composer",
    "property": "width",
    "rawTrack": 34,
    "animated": false,
    "keyCount": 1,
    "minimum": 34,
    "maximum": 34,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "mode-disc",
    "parentId": "anchored-composer",
    "property": "height",
    "rawTrack": 34,
    "animated": false,
    "keyCount": 1,
    "minimum": 34,
    "maximum": 34,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "mode-hand",
    "parentId": "anchored-composer",
    "property": "x",
    "rawTrack": 133,
    "animated": false,
    "keyCount": 1,
    "minimum": 133,
    "maximum": 133,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "mode-hand",
    "parentId": "anchored-composer",
    "property": "y",
    "rawTrack": 144,
    "animated": false,
    "keyCount": 1,
    "minimum": 144,
    "maximum": 144,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "mode-hand",
    "parentId": "anchored-composer",
    "property": "width",
    "rawTrack": 3,
    "animated": false,
    "keyCount": 1,
    "minimum": 3,
    "maximum": 3,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "mode-hand",
    "parentId": "anchored-composer",
    "property": "height",
    "rawTrack": 16,
    "animated": false,
    "keyCount": 1,
    "minimum": 16,
    "maximum": 16,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "mode-hand-short",
    "parentId": "anchored-composer",
    "property": "x",
    "rawTrack": 133,
    "animated": false,
    "keyCount": 1,
    "minimum": 133,
    "maximum": 133,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "mode-hand-short",
    "parentId": "anchored-composer",
    "property": "y",
    "rawTrack": 157,
    "animated": false,
    "keyCount": 1,
    "minimum": 157,
    "maximum": 157,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "mode-hand-short",
    "parentId": "anchored-composer",
    "property": "width",
    "rawTrack": 11,
    "animated": false,
    "keyCount": 1,
    "minimum": 11,
    "maximum": 11,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "mode-hand-short",
    "parentId": "anchored-composer",
    "property": "height",
    "rawTrack": 3,
    "animated": false,
    "keyCount": 1,
    "minimum": 3,
    "maximum": 3,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "mode-label",
    "parentId": "anchored-composer",
    "property": "x",
    "rawTrack": 166,
    "animated": false,
    "keyCount": 1,
    "minimum": 166,
    "maximum": 166,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "mode-label",
    "parentId": "anchored-composer",
    "property": "y",
    "rawTrack": 135,
    "animated": false,
    "keyCount": 1,
    "minimum": 135,
    "maximum": 135,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "mode-label",
    "parentId": "anchored-composer",
    "property": "width",
    "rawTrack": 1160,
    "animated": false,
    "keyCount": 1,
    "minimum": 1160,
    "maximum": 1160,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "mode-label",
    "parentId": "anchored-composer",
    "property": "height",
    "rawTrack": 48,
    "animated": false,
    "keyCount": 1,
    "minimum": 48,
    "maximum": 48,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "mode-chevron",
    "parentId": "anchored-composer",
    "property": "x",
    "rawTrack": 316,
    "animated": false,
    "keyCount": 1,
    "minimum": 316,
    "maximum": 316,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "mode-chevron",
    "parentId": "anchored-composer",
    "property": "y",
    "rawTrack": 145,
    "animated": false,
    "keyCount": 1,
    "minimum": 145,
    "maximum": 145,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "mode-chevron",
    "parentId": "anchored-composer",
    "property": "width",
    "rawTrack": 23,
    "animated": false,
    "keyCount": 1,
    "minimum": 23,
    "maximum": 23,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "mode-chevron",
    "parentId": "anchored-composer",
    "property": "height",
    "rawTrack": 23,
    "animated": false,
    "keyCount": 1,
    "minimum": 23,
    "maximum": 23,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "microphone",
    "parentId": "anchored-composer",
    "property": "x",
    "rawTrack": 1426,
    "animated": false,
    "keyCount": 1,
    "minimum": 1426,
    "maximum": 1426,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "microphone",
    "parentId": "anchored-composer",
    "property": "y",
    "rawTrack": 139,
    "animated": false,
    "keyCount": 1,
    "minimum": 139,
    "maximum": 139,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "microphone",
    "parentId": "anchored-composer",
    "property": "width",
    "rawTrack": 36,
    "animated": false,
    "keyCount": 1,
    "minimum": 36,
    "maximum": 36,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "microphone",
    "parentId": "anchored-composer",
    "property": "height",
    "rawTrack": 36,
    "animated": false,
    "keyCount": 1,
    "minimum": 36,
    "maximum": 36,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "stop-circle",
    "parentId": "anchored-composer",
    "property": "x",
    "rawTrack": 1498,
    "animated": false,
    "keyCount": 1,
    "minimum": 1498,
    "maximum": 1498,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "stop-circle",
    "parentId": "anchored-composer",
    "property": "y",
    "rawTrack": 120,
    "animated": false,
    "keyCount": 1,
    "minimum": 120,
    "maximum": 120,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "stop-circle",
    "parentId": "anchored-composer",
    "property": "width",
    "rawTrack": 78,
    "animated": false,
    "keyCount": 1,
    "minimum": 78,
    "maximum": 78,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "stop-circle",
    "parentId": "anchored-composer",
    "property": "height",
    "rawTrack": 78,
    "animated": false,
    "keyCount": 1,
    "minimum": 78,
    "maximum": 78,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "stop-square",
    "parentId": "anchored-composer",
    "property": "x",
    "rawTrack": 1523,
    "animated": false,
    "keyCount": 1,
    "minimum": 1523,
    "maximum": 1523,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "stop-square",
    "parentId": "anchored-composer",
    "property": "y",
    "rawTrack": 145,
    "animated": false,
    "keyCount": 1,
    "minimum": 145,
    "maximum": 145,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "stop-square",
    "parentId": "anchored-composer",
    "property": "width",
    "rawTrack": 28,
    "animated": false,
    "keyCount": 1,
    "minimum": 28,
    "maximum": 28,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "stop-square",
    "parentId": "anchored-composer",
    "property": "height",
    "rawTrack": 28,
    "animated": false,
    "keyCount": 1,
    "minimum": 28,
    "maximum": 28,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "stop-square",
    "parentId": "anchored-composer",
    "property": "radius",
    "rawTrack": 3,
    "animated": false,
    "keyCount": 1,
    "minimum": 3,
    "maximum": 3,
    "fusionMapping": "Pixel corner radius; use rounded-mask construction"
  },
  {
    "layerId": "departing-hand",
    "parentId": null,
    "property": "x",
    "rawTrack": 1692,
    "animated": false,
    "keyCount": 1,
    "minimum": 1692,
    "maximum": 1692,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "departing-hand",
    "parentId": null,
    "property": "y",
    "rawTrack": 654,
    "animated": false,
    "keyCount": 1,
    "minimum": 654,
    "maximum": 654,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "departing-hand",
    "parentId": null,
    "property": "width",
    "rawTrack": 34,
    "animated": false,
    "keyCount": 1,
    "minimum": 34,
    "maximum": 34,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "departing-hand",
    "parentId": null,
    "property": "height",
    "rawTrack": 34,
    "animated": false,
    "keyCount": 1,
    "minimum": 34,
    "maximum": 34,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "departing-hand-outline",
    "parentId": "departing-hand",
    "property": "x",
    "rawTrack": 0,
    "animated": false,
    "keyCount": 1,
    "minimum": 0,
    "maximum": 0,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "departing-hand-outline",
    "parentId": "departing-hand",
    "property": "y",
    "rawTrack": 0,
    "animated": false,
    "keyCount": 1,
    "minimum": 0,
    "maximum": 0,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "departing-hand-outline",
    "parentId": "departing-hand",
    "property": "width",
    "rawTrack": 34,
    "animated": false,
    "keyCount": 1,
    "minimum": 34,
    "maximum": 34,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "departing-hand-outline",
    "parentId": "departing-hand",
    "property": "height",
    "rawTrack": 34,
    "animated": false,
    "keyCount": 1,
    "minimum": 34,
    "maximum": 34,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "departing-hand-mark",
    "parentId": "departing-hand",
    "property": "x",
    "rawTrack": 0,
    "animated": false,
    "keyCount": 1,
    "minimum": 0,
    "maximum": 0,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "departing-hand-mark",
    "parentId": "departing-hand",
    "property": "y",
    "rawTrack": 0,
    "animated": false,
    "keyCount": 1,
    "minimum": 0,
    "maximum": 0,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "departing-hand-mark",
    "parentId": "departing-hand",
    "property": "width",
    "rawTrack": 34,
    "animated": false,
    "keyCount": 1,
    "minimum": 34,
    "maximum": 34,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "departing-hand-mark",
    "parentId": "departing-hand",
    "property": "height",
    "rawTrack": 34,
    "animated": false,
    "keyCount": 1,
    "minimum": 34,
    "maximum": 34,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "departing-pointer",
    "parentId": null,
    "property": "x",
    "rawTrack": [
      {
        "frame": 3,
        "value": 1692,
        "easing": "smooth"
      },
      {
        "frame": 15,
        "value": 1930,
        "easing": "smooth"
      }
    ],
    "animated": true,
    "keyCount": 2,
    "minimum": 1692,
    "maximum": 1930,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "departing-pointer",
    "parentId": null,
    "property": "y",
    "rawTrack": [
      {
        "frame": 3,
        "value": 654,
        "easing": "smooth"
      },
      {
        "frame": 15,
        "value": 584,
        "easing": "smooth"
      }
    ],
    "animated": true,
    "keyCount": 2,
    "minimum": 584,
    "maximum": 654,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "departing-pointer",
    "parentId": null,
    "property": "width",
    "rawTrack": 28,
    "animated": false,
    "keyCount": 1,
    "minimum": 28,
    "maximum": 28,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "departing-pointer",
    "parentId": null,
    "property": "height",
    "rawTrack": 28,
    "animated": false,
    "keyCount": 1,
    "minimum": 28,
    "maximum": 28,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "departing-pointer-outline",
    "parentId": "departing-pointer",
    "property": "x",
    "rawTrack": 0,
    "animated": false,
    "keyCount": 1,
    "minimum": 0,
    "maximum": 0,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "departing-pointer-outline",
    "parentId": "departing-pointer",
    "property": "y",
    "rawTrack": 0,
    "animated": false,
    "keyCount": 1,
    "minimum": 0,
    "maximum": 0,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "departing-pointer-outline",
    "parentId": "departing-pointer",
    "property": "width",
    "rawTrack": 28,
    "animated": false,
    "keyCount": 1,
    "minimum": 28,
    "maximum": 28,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "departing-pointer-outline",
    "parentId": "departing-pointer",
    "property": "height",
    "rawTrack": 28,
    "animated": false,
    "keyCount": 1,
    "minimum": 28,
    "maximum": 28,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  },
  {
    "layerId": "departing-pointer-mark",
    "parentId": "departing-pointer",
    "property": "x",
    "rawTrack": 0,
    "animated": false,
    "keyCount": 1,
    "minimum": 0,
    "maximum": 0,
    "fusionMapping": "Position.Center.X=.5+(x+originX-workingCenterX)/4096"
  },
  {
    "layerId": "departing-pointer-mark",
    "parentId": "departing-pointer",
    "property": "y",
    "rawTrack": 0,
    "animated": false,
    "keyCount": 1,
    "minimum": 0,
    "maximum": 0,
    "fusionMapping": "Position.Center.Y=.5-(y+originY-workingCenterY)/4096"
  },
  {
    "layerId": "departing-pointer-mark",
    "parentId": "departing-pointer",
    "property": "width",
    "rawTrack": 28,
    "animated": false,
    "keyCount": 1,
    "minimum": 28,
    "maximum": 28,
    "fusionMapping": "Local geometry width in pixels; do not resize children"
  },
  {
    "layerId": "departing-pointer-mark",
    "parentId": "departing-pointer",
    "property": "height",
    "rawTrack": 28,
    "animated": false,
    "keyCount": 1,
    "minimum": 28,
    "maximum": 28,
    "fusionMapping": "Local geometry height in pixels; do not resize children"
  }
]

resolveTracks
[
  {
    "track": "V1",
    "type": "Fusion Composition",
    "inInclusive": 0,
    "outExclusive": 150,
    "frames": 150,
    "fps": {
      "numerator": 30000,
      "denominator": 1001
    },
    "audio": false,
    "sourceOffsetFrames": 390,
    "timelineToRecipe": "recipeFrame = timelineFrame - clipIn",
    "recipeToFusion": "FusionFrame = GlobalStart + recipeFrame",
    "speed": 1,
    "handles": 0,
    "retime": false,
    "MediaInRequired": false
  }
]

interpolation
{
  "frameClock": "Global local frame; do not subtract child start",
  "leftKeyOwnsEasing": true,
  "smooth": "t*t*(3-2*t)",
  "hold": "Left value until exact right key frame",
  "linear": "t",
  "clampEndpoints": true,
  "nativeTransfer": "Bake every integer frame; do not substitute arbitrary Bezier presets."
}

steps
[
  "Unpack public core then selected active overlay at kit root; verify recipe, SVG and helper bindings.",
  "Create the exact rational frame count and blank audio track; local zero maps to declared source start.",
  "Build RootPaper and the full named hierarchy over equal padded domains; later siblings merge over earlier ones.",
  "Construct each SVG as editable native Rectangle/Ellipse/Polygon masks and paint, with contain fitting and transparent margins.",
  "Construct live labels with bundled Geist and per-node Text+ boxes; no type shrinking or automatic reflow.",
  "Apply local masks, AnchorShift, ScaleRotate, Position, gated alpha and ordered Merge for every layer.",
  "Transfer all raw/derived CSV frame rows to native controls, preserving stepped gates and holding equal keys.",
  "Use the precise FinalCrop, compare every checkpoint and cutoff, then review actual moving outputs independently before acceptance."
]

checkpoints
[
  {
    "localFrame": 0,
    "sourceFrame": 390,
    "nominalSourceSeconds": 13.013,
    "nominalSourceSecondsExact": "13013/1000",
    "expected": "Quiet wait and fixed input."
  },
  {
    "localFrame": 15,
    "sourceFrame": 405,
    "nominalSourceSeconds": 13.5135,
    "nominalSourceSecondsExact": "27027/2000",
    "expected": "Pointer nearly outside crop."
  },
  {
    "localFrame": 27,
    "sourceFrame": 417,
    "nominalSourceSeconds": 13.9139,
    "nominalSourceSecondsExact": "139139/10000",
    "expected": "Follow-up placeholder; composer fixed."
  },
  {
    "localFrame": 43,
    "sourceFrame": 433,
    "nominalSourceSeconds": 14.447766666666666,
    "nominalSourceSecondsExact": "433433/30000",
    "expected": "Last primary thinking frame."
  },
  {
    "localFrame": 44,
    "sourceFrame": 434,
    "nominalSourceSeconds": 14.481133333333334,
    "nominalSourceSecondsExact": "217217/15000",
    "expected": "Notice and faint residual thinking."
  },
  {
    "localFrame": 45,
    "sourceFrame": 435,
    "nominalSourceSeconds": 14.5145,
    "nominalSourceSecondsExact": "29029/2000",
    "expected": "Answer first characters."
  },
  {
    "localFrame": 77,
    "sourceFrame": 467,
    "nominalSourceSeconds": 15.582233333333333,
    "nominalSourceSecondsExact": "467467/30000",
    "expected": "Answer complete; link not yet visible."
  },
  {
    "localFrame": 78,
    "sourceFrame": 468,
    "nominalSourceSeconds": 15.6156,
    "nominalSourceSecondsExact": "39039/2500",
    "expected": "Link reveal starts."
  },
  {
    "localFrame": 81,
    "sourceFrame": 471,
    "nominalSourceSeconds": 15.7157,
    "nominalSourceSecondsExact": "157157/10000",
    "expected": "Link complete."
  },
  {
    "localFrame": 86,
    "sourceFrame": 476,
    "nominalSourceSeconds": 15.882533333333333,
    "nominalSourceSecondsExact": "119119/7500",
    "expected": "Last frame without preview."
  },
  {
    "localFrame": 87,
    "sourceFrame": 477,
    "nominalSourceSeconds": 15.9159,
    "nominalSourceSecondsExact": "159159/10000",
    "expected": "Compact preview appears behind composer."
  },
  {
    "localFrame": 90,
    "sourceFrame": 480,
    "nominalSourceSeconds": 16.016,
    "nominalSourceSecondsExact": "2002/125",
    "expected": "Preview, navigation hint and unfinished punctuation."
  },
  {
    "localFrame": 110,
    "sourceFrame": 500,
    "nominalSourceSeconds": 16.683333333333334,
    "nominalSourceSecondsExact": "1001/60",
    "expected": "Small code-like chip appears."
  },
  {
    "localFrame": 140,
    "sourceFrame": 530,
    "nominalSourceSeconds": 17.684333333333335,
    "nominalSourceSecondsExact": "53053/3000",
    "expected": "Last compact hold."
  },
  {
    "localFrame": 141,
    "sourceFrame": 531,
    "nominalSourceSeconds": 17.7177,
    "nominalSourceSecondsExact": "177177/10000",
    "expected": "Loading line appears as space opens."
  },
  {
    "localFrame": 146,
    "sourceFrame": 536,
    "nominalSourceSeconds": 17.884533333333334,
    "nominalSourceSecondsExact": "67067/3750",
    "expected": "Expanded preview; input anchor unchanged."
  },
  {
    "localFrame": 149,
    "sourceFrame": 539,
    "nominalSourceSeconds": 17.984633333333335,
    "nominalSourceSecondsExact": "539539/30000",
    "expected": "Draft/loading at exact cutoff; no completed action."
  }
]

limitations
[
  "Largest gap: text streaming, the few-frame layout displacement and compact-preview occlusion are authored approximations of static native-cadence observations, not recovered application reflow. Original equal-length sentences, geometric icon and simplified input controls replace source wording/branding. The small trailing code-chip timing is estimated. The excerpt ends while details still load; the adapter intentionally cannot show a completed installation or final response. Native Text+ glyph parity and moving-output quality remain unverified.",
  "The selected unit declares nominal native 30000/1001 but supplies no retained master/source-relative PTS clock: retained_source_clock stays null. The excerpt is separately probed at 1/30000 time base with PTS increments [1001]. These encoded excerpt timestamps are not proof of the missing master clock. Absolute master PTS and master dimensions remain unknown.",
  "No native Resolve execution, candidate render, moving-source playback or source-quality approval by this builder.",
  "Public static tests do not replace the core browser shaping/font gate or native Text+ fit.",
  "Source movies, stills and branding are research only, never permitted render inputs."
]
