resolveSetup { "canvas": [ 1920, 1080 ], "fps": { "numerator": 60, "denominator": 1 }, "timelineStart": "01:00:00:00", "localFramesHalfOpen": [ 0, 360 ], "editTracks": [ { "track": "V1", "item": "Single Fusion composition", "in": 0, "outExclusive": 360 } ], "audioTracks": [], "outputNode": "Merge_phrase-stack", "coordinateConvention": "Recipe coordinates are top-left pixels, local to parent. For a local domain W,H and pivot ox,oy, place the transform pivot at(ox/W,1-oy/H). Translate by(x/W,-y/H) in that parent domain after local scaling/rotation; use the explicit affine mapping below rather than assuming canvas dimensions for every nested group.", "affine": "p_parent = (x,y) + origin + R_clockwise(rotation) * diag(scale*scaleX,scale*scaleY) * (p_local-origin). Merge children before applying this once per group. Convert final top-left pixels to Fusion normalized(x/W,1-y/H). Fusion angle convention must be calibrated against positive clockwise recipe rotation.", "interpolation": "Left-key smooth=u*u*(3-2*u), linear=u, hold until next key. Never Auto. All tracks sampled on global recipe-local time.", "alpha": "Normal Over with transparent outside shape; group opacity after child composition; local clip and SVG clipPath before local transform. No image/video Loader or black/Screen workaround.", "nativeCalibrationRequired": [ "Text+ baseline/font metrics and CSS weight equivalence", "SVG gradient interpolation/alpha and path stroke semantics", "Fusion transform pivot/angle convention and working domain", "Actual output quality and off-window tail handling" ] } fusionNodes [ { "layerId": "paper", "nodeId": "Layer_paper", "kind": "rect", "parentLayerId": null, "recipePointer": "/layers/0", "mergeIndex": 0, "backgroundInput": "Background_Canvas", "foregroundInput": "Processed_paper", "output": "Merge_paper", "activeLocalFrames": [ 0, 360 ], "effectiveActiveLocalFrames": [ 0, 360 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 360, "x": 0, "y": 0, "width": 1920, "height": 1080, "origin": [ 0, 0 ], "fill": "$paper" }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "insetClipIsIndependentOfOverflow": true, "order": "Draw or merge local content; apply the listed local effects and alpha masks. The explicit inset clip always applies, independently of overflow. Rounded descendant clipping requires overflow:hidden. Apply the local transform and whole-layer opacity before ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Background with Rectangle/Ellipse mask", "Inside-border ring if stroke is present", "Blur if present", "Local Transform", "Over Merge" ] }, { "layerId": "conversation-context", "nodeId": "Layer_conversation-context", "kind": "group", "parentLayerId": null, "recipePointer": "/layers/1", "mergeIndex": 1, "backgroundInput": "Merge_paper", "foregroundInput": "Processed_conversation-context", "output": "Merge_conversation-context", "activeLocalFrames": [ 0, 55 ], "effectiveActiveLocalFrames": [ 0, 55 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 55, "x": [ { "frame": 0, "value": 0, "easing": "linear" }, { "frame": 54, "value": -12, "easing": "hold" } ], "y": 0, "width": 1920, "height": 1080, "origin": [ 0, 0 ] }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "insetClipIsIndependentOfOverflow": true, "order": "Draw or merge local content; apply the listed local effects and alpha masks. The explicit inset clip always applies, independently of overflow. Rounded descendant clipping requires overflow:hidden. Apply the local transform and whole-layer opacity before ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Transparent RGBA working domain", "Ordered child Merges", "Rounded Rectangle/Polygon alpha intersection if required", "Transform", "Group opacity", "Over Merge" ], "localFill": "transparent", "childLayerIds": [ "context-rail", "context-copy-0", "context-copy-1", "context-copy-2", "context-copy-3", "context-copy-4", "context-icon-a", "context-icon-b" ], "contentsInput": "Merge_context-icon-b" }, { "layerId": "context-rail", "nodeId": "Layer_context-rail", "kind": "rect", "parentLayerId": "conversation-context", "recipePointer": "/layers/1/children/0", "mergeIndex": 0, "backgroundInput": "Transparent_conversation-context", "foregroundInput": "Processed_context-rail", "output": "Merge_context-rail", "activeLocalFrames": [ 0, 55 ], "effectiveActiveLocalFrames": [ 0, 55 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 55, "x": 0, "y": 0, "width": 355, "height": 1080, "origin": [ 0, 0 ], "fill": "#f8f8f7" }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "insetClipIsIndependentOfOverflow": true, "order": "Draw or merge local content; apply the listed local effects and alpha masks. The explicit inset clip always applies, independently of overflow. Rounded descendant clipping requires overflow:hidden. Apply the local transform and whole-layer opacity before ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Background with Rectangle/Ellipse mask", "Inside-border ring if stroke is present", "Blur if present", "Local Transform", "Over Merge" ] }, { "layerId": "context-copy-0", "nodeId": "Layer_context-copy-0", "kind": "text", "parentLayerId": "conversation-context", "recipePointer": "/layers/1/children/1", "mergeIndex": 1, "backgroundInput": "Merge_context-rail", "foregroundInput": "Processed_context-copy-0", "output": "Merge_context-copy-0", "activeLocalFrames": [ 0, 55 ], "effectiveActiveLocalFrames": [ 0, 55 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 55, "x": 645, "y": 58, "width": 1235, "height": 84, "origin": [ 0, 0 ], "slot": "sender", "fontSize": 54, "weight": 650, "color": "#111111", "lineHeight": 1.05 }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "insetClipIsIndependentOfOverflow": true, "order": "Draw or merge local content; apply the listed local effects and alpha masks. The explicit inset clip always applies, independently of overflow. Rounded descendant clipping requires overflow:hidden. Apply the local transform and whole-layer opacity before ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Text+ in bundled Geist", "Set explicit newline layout", "Stepped StyledText or Write On gate when present", "Local Transform", "Over Merge" ], "content": { "defaults": "Garden desk", "adaptation": "Studio desk" }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 54, "weight": 650, "lineHeightPixels": 56.7, "letterSpacingPixels": 0, "fit": "No shrink or automatic wrapping. Text+ Size and baseline need actual installed-font calibration; the recipe pixel box is authoritative." } }, { "layerId": "context-copy-1", "nodeId": "Layer_context-copy-1", "kind": "text", "parentLayerId": "conversation-context", "recipePointer": "/layers/1/children/2", "mergeIndex": 2, "backgroundInput": "Merge_context-copy-0", "foregroundInput": "Processed_context-copy-1", "output": "Merge_context-copy-1", "activeLocalFrames": [ 0, 55 ], "effectiveActiveLocalFrames": [ 0, 55 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 55, "x": 645, "y": 151, "width": 1235, "height": 84, "origin": [ 0, 0 ], "slot": "question", "fontSize": 54, "weight": 650, "color": "#111111", "lineHeight": 1.05 }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "insetClipIsIndependentOfOverflow": true, "order": "Draw or merge local content; apply the listed local effects and alpha masks. The explicit inset clip always applies, independently of overflow. Rounded descendant clipping requires overflow:hidden. Apply the local transform and whole-layer opacity before ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Text+ in bundled Geist", "Set explicit newline layout", "Stepped StyledText or Write On gate when present", "Local Transform", "Over Merge" ], "content": { "defaults": "Which beds need water today?", "adaptation": "Which prints need labels today?" }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 54, "weight": 650, "lineHeightPixels": 56.7, "letterSpacingPixels": 0, "fit": "No shrink or automatic wrapping. Text+ Size and baseline need actual installed-font calibration; the recipe pixel box is authoritative." } }, { "layerId": "context-copy-2", "nodeId": "Layer_context-copy-2", "kind": "text", "parentLayerId": "conversation-context", "recipePointer": "/layers/1/children/3", "mergeIndex": 3, "backgroundInput": "Merge_context-copy-1", "foregroundInput": "Processed_context-copy-2", "output": "Merge_context-copy-2", "activeLocalFrames": [ 0, 55 ], "effectiveActiveLocalFrames": [ 0, 55 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 55, "x": 645, "y": 410, "width": 1235, "height": 84, "origin": [ 0, 0 ], "slot": "replyName", "fontSize": 54, "weight": 650, "color": "#111111", "lineHeight": 1.05 }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "insetClipIsIndependentOfOverflow": true, "order": "Draw or merge local content; apply the listed local effects and alpha masks. The explicit inset clip always applies, independently of overflow. Rounded descendant clipping requires overflow:hidden. Apply the local transform and whole-layer opacity before ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Text+ in bundled Geist", "Set explicit newline layout", "Stepped StyledText or Write On gate when present", "Local Transform", "Over Merge" ], "content": { "defaults": "Field team", "adaptation": "Archive team" }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 54, "weight": 650, "lineHeightPixels": 56.7, "letterSpacingPixels": 0, "fit": "No shrink or automatic wrapping. Text+ Size and baseline need actual installed-font calibration; the recipe pixel box is authoritative." } }, { "layerId": "context-copy-3", "nodeId": "Layer_context-copy-3", "kind": "text", "parentLayerId": "conversation-context", "recipePointer": "/layers/1/children/4", "mergeIndex": 4, "backgroundInput": "Merge_context-copy-2", "foregroundInput": "Processed_context-copy-3", "output": "Merge_context-copy-3", "activeLocalFrames": [ 0, 55 ], "effectiveActiveLocalFrames": [ 0, 55 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 55, "x": 645, "y": 530, "width": 1235, "height": 84, "origin": [ 0, 0 ], "slot": "answer", "fontSize": 54, "weight": 650, "color": "#111111", "lineHeight": 1.05 }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "insetClipIsIndependentOfOverflow": true, "order": "Draw or merge local content; apply the listed local effects and alpha masks. The explicit inset clip always applies, independently of overflow. Rounded descendant clipping requires overflow:hidden. Apply the local transform and whole-layer opacity before ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Text+ in bundled Geist", "Set explicit newline layout", "Stepped StyledText or Write On gate when present", "Local Transform", "Over Merge" ], "content": { "defaults": "The east beds are ready.", "adaptation": "The new editions are ready." }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 54, "weight": 650, "lineHeightPixels": 56.7, "letterSpacingPixels": 0, "fit": "No shrink or automatic wrapping. Text+ Size and baseline need actual installed-font calibration; the recipe pixel box is authoritative." } }, { "layerId": "context-copy-4", "nodeId": "Layer_context-copy-4", "kind": "text", "parentLayerId": "conversation-context", "recipePointer": "/layers/1/children/5", "mergeIndex": 5, "backgroundInput": "Merge_context-copy-3", "foregroundInput": "Processed_context-copy-4", "output": "Merge_context-copy-4", "activeLocalFrames": [ 0, 55 ], "effectiveActiveLocalFrames": [ 0, 55 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 55, "x": 645, "y": 621, "width": 1235, "height": 84, "origin": [ 0, 0 ], "slot": "link", "fontSize": 54, "weight": 650, "color": "#111111", "lineHeight": 1.05 }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "insetClipIsIndependentOfOverflow": true, "order": "Draw or merge local content; apply the listed local effects and alpha masks. The explicit inset clip always applies, independently of overflow. Rounded descendant clipping requires overflow:hidden. Apply the local transform and whole-layer opacity before ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Text+ in bundled Geist", "Set explicit newline layout", "Stepped StyledText or Write On gate when present", "Local Transform", "Over Merge" ], "content": { "defaults": "View the garden plan.", "adaptation": "View the edition list." }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 54, "weight": 650, "lineHeightPixels": 56.7, "letterSpacingPixels": 0, "fit": "No shrink or automatic wrapping. Text+ Size and baseline need actual installed-font calibration; the recipe pixel box is authoritative." } }, { "layerId": "context-icon-a", "nodeId": "Layer_context-icon-a", "kind": "image", "parentLayerId": "conversation-context", "recipePointer": "/layers/1/children/6", "mergeIndex": 6, "backgroundInput": "Merge_context-copy-4", "foregroundInput": "Processed_context-icon-a", "output": "Merge_context-icon-a", "activeLocalFrames": [ 0, 55 ], "effectiveActiveLocalFrames": [ 0, 55 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 55, "x": 492, "y": 54, "width": 130, "height": 130, "origin": [ 0, 0 ], "slot": "icon1", "fit": "contain" }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "insetClipIsIndependentOfOverflow": true, "order": "Draw or merge local content; apply the listed local effects and alpha masks. The explicit inset clip always applies, independently of overflow. Rounded descendant clipping requires overflow:hidden. Apply the local transform and whole-layer opacity before ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Native vector subgroup reconstructed from svgConstruction", "Fit Transform", "Local Transform", "Over Merge" ], "assets": { "defaults": { "kind": "image", "path": "art/workspace-icon-phrases/icon-1-default.svg", "width": 160, "height": 160, "rights": "Original code-generated vector geometry for this kit. No source film imagery, tracing, logos, embedded bitmap or external resources." }, "adaptation": { "kind": "image", "path": "art/workspace-icon-phrases/icon-1-adaptation.svg", "width": 160, "height": 160, "rights": "Original code-generated vector geometry for this kit. No source film imagery, tracing, logos, embedded bitmap or external resources." } }, "fitRule": "Use min(boxWidth/SVGWidth, boxHeight/SVGHeight), center the resulting artwork in the box, preserve SVG viewBox and alpha. These supplied boxes match their assets; no photographic crop." }, { "layerId": "context-icon-b", "nodeId": "Layer_context-icon-b", "kind": "image", "parentLayerId": "conversation-context", "recipePointer": "/layers/1/children/7", "mergeIndex": 7, "backgroundInput": "Merge_context-icon-a", "foregroundInput": "Processed_context-icon-b", "output": "Merge_context-icon-b", "activeLocalFrames": [ 0, 55 ], "effectiveActiveLocalFrames": [ 0, 55 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 55, "x": 492, "y": 402, "width": 130, "height": 130, "origin": [ 0, 0 ], "slot": "icon2", "fit": "contain" }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "insetClipIsIndependentOfOverflow": true, "order": "Draw or merge local content; apply the listed local effects and alpha masks. The explicit inset clip always applies, independently of overflow. Rounded descendant clipping requires overflow:hidden. Apply the local transform and whole-layer opacity before ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Native vector subgroup reconstructed from svgConstruction", "Fit Transform", "Local Transform", "Over Merge" ], "assets": { "defaults": { "kind": "image", "path": "art/workspace-icon-phrases/icon-2-default.svg", "width": 160, "height": 160, "rights": "Original code-generated vector geometry for this kit. No source film imagery, tracing, logos, embedded bitmap or external resources." }, "adaptation": { "kind": "image", "path": "art/workspace-icon-phrases/icon-2-adaptation.svg", "width": 160, "height": 160, "rights": "Original code-generated vector geometry for this kit. No source film imagery, tracing, logos, embedded bitmap or external resources." } }, "fitRule": "Use min(boxWidth/SVGWidth, boxHeight/SVGHeight), center the resulting artwork in the box, preserve SVG viewBox and alpha. These supplied boxes match their assets; no photographic crop." }, { "layerId": "title-parent", "nodeId": "Layer_title-parent", "kind": "group", "parentLayerId": null, "recipePointer": "/layers/2", "mergeIndex": 2, "backgroundInput": "Merge_conversation-context", "foregroundInput": "Processed_title-parent", "output": "Merge_title-parent", "activeLocalFrames": [ 55, 206 ], "effectiveActiveLocalFrames": [ 55, 206 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 55, "end": 206, "x": 140, "y": [ { "frame": 55, "value": 430, "easing": "hold" }, { "frame": 71, "value": 430, "easing": "smooth" }, { "frame": 95, "value": 396, "easing": "hold" } ], "width": 1640, "height": 350, "origin": [ 0, 0 ] }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "insetClipIsIndependentOfOverflow": true, "order": "Draw or merge local content; apply the listed local effects and alpha masks. The explicit inset clip always applies, independently of overflow. Rounded descendant clipping requires overflow:hidden. Apply the local transform and whole-layer opacity before ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Transparent RGBA working domain", "Ordered child Merges", "Rounded Rectangle/Polygon alpha intersection if required", "Transform", "Group opacity", "Over Merge" ], "localFill": "transparent", "childLayerIds": [ "title-line-one", "title-line-two" ], "contentsInput": "Merge_title-line-two" }, { "layerId": "title-line-one", "nodeId": "Layer_title-line-one", "kind": "text", "parentLayerId": "title-parent", "recipePointer": "/layers/2/children/0", "mergeIndex": 0, "backgroundInput": "Transparent_title-parent", "foregroundInput": "Processed_title-line-one", "output": "Merge_title-line-one", "activeLocalFrames": [ 55, 206 ], "effectiveActiveLocalFrames": [ 55, 206 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 55, "end": 206, "x": 0, "y": 0, "width": 1640, "height": 170, "origin": [ 0, 0 ], "slot": "headline", "fontSize": 140, "weight": 650, "color": "#111111", "lineHeight": 1.05, "align": "center", "reveal": { "unit": "words", "steps": [ { "frame": 55, "count": 1 }, { "frame": 61, "count": 2 }, { "frame": 71, "count": 3 } ] } }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "insetClipIsIndependentOfOverflow": true, "order": "Draw or merge local content; apply the listed local effects and alpha masks. The explicit inset clip always applies, independently of overflow. Rounded descendant clipping requires overflow:hidden. Apply the local transform and whole-layer opacity before ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Text+ in bundled Geist", "Set explicit newline layout", "Stepped StyledText or Write On gate when present", "Local Transform", "Over Merge" ], "content": { "defaults": "Teams make room", "adaptation": "Ideas take shape" }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 140, "weight": 650, "lineHeightPixels": 147.0, "letterSpacingPixels": 0, "fit": "No shrink or automatic wrapping. Text+ Size and baseline need actual installed-font calibration; the recipe pixel box is authoritative." } }, { "layerId": "title-line-two", "nodeId": "Layer_title-line-two", "kind": "text", "parentLayerId": "title-parent", "recipePointer": "/layers/2/children/1", "mergeIndex": 1, "backgroundInput": "Merge_title-line-one", "foregroundInput": "Processed_title-line-two", "output": "Merge_title-line-two", "activeLocalFrames": [ 95, 206 ], "effectiveActiveLocalFrames": [ 95, 206 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 95, "end": 206, "x": 0, "y": 168, "width": 1640, "height": 170, "origin": [ 0, 0 ], "slot": "subhead", "fontSize": 140, "weight": 650, "color": "#111111", "lineHeight": 1.05, "align": "center", "reveal": { "unit": "characters", "steps": [ { "frame": 95, "count": 5 }, { "frame": 98, "count": 6 }, { "frame": 101, "count": 7 }, { "frame": 108, "count": 9 }, { "frame": 111, "count": 11 }, { "frame": 115, "count": 17 } ] } }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "insetClipIsIndependentOfOverflow": true, "order": "Draw or merge local content; apply the listed local effects and alpha masks. The explicit inset clip always applies, independently of overflow. Rounded descendant clipping requires overflow:hidden. Apply the local transform and whole-layer opacity before ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Text+ in bundled Geist", "Set explicit newline layout", "Stepped StyledText or Write On gate when present", "Local Transform", "Over Merge" ], "content": { "defaults": "for new growth", "adaptation": "in our studio" }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 140, "weight": 650, "lineHeightPixels": 147.0, "letterSpacingPixels": 0, "fit": "No shrink or automatic wrapping. Text+ Size and baseline need actual installed-font calibration; the recipe pixel box is authoritative." } }, { "layerId": "phrase-stack", "nodeId": "Layer_phrase-stack", "kind": "group", "parentLayerId": null, "recipePointer": "/layers/3", "mergeIndex": 3, "backgroundInput": "Merge_title-parent", "foregroundInput": "Processed_phrase-stack", "output": "Merge_phrase-stack", "activeLocalFrames": [ 206, 360 ], "effectiveActiveLocalFrames": [ 206, 360 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 206, "end": 360, "x": 560, "y": [ { "frame": 206, "value": 470, "easing": "hold" }, { "frame": 264, "value": 470, "easing": "smooth" }, { "frame": 278, "value": 362, "easing": "hold" }, { "frame": 336, "value": 362, "easing": "smooth" }, { "frame": 366, "value": 254, "easing": "hold" } ], "width": 1260, "height": 576, "origin": [ 0, 0 ] }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "insetClipIsIndependentOfOverflow": true, "order": "Draw or merge local content; apply the listed local effects and alpha masks. The explicit inset clip always applies, independently of overflow. Rounded descendant clipping requires overflow:hidden. Apply the local transform and whole-layer opacity before ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Transparent RGBA working domain", "Ordered child Merges", "Rounded Rectangle/Polygon alpha intersection if required", "Transform", "Group opacity", "Over Merge" ], "localFill": "transparent", "childLayerIds": [ "row-1", "row-2", "row-3" ], "contentsInput": "Merge_row-3" }, { "layerId": "row-1", "nodeId": "Layer_row-1", "kind": "group", "parentLayerId": "phrase-stack", "recipePointer": "/layers/3/children/0", "mergeIndex": 0, "backgroundInput": "Transparent_phrase-stack", "foregroundInput": "Processed_row-1", "output": "Merge_row-1", "activeLocalFrames": [ 206, 360 ], "effectiveActiveLocalFrames": [ 206, 360 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 206, "end": 360, "x": 0, "y": 0, "width": 1220, "height": 144, "origin": [ 0, 0 ], "opacity": [ { "frame": 206, "value": 0.2, "easing": "smooth" }, { "frame": 211, "value": 1, "easing": "hold" } ] }, "alphaAndMasks": { "opacity": [ { "frame": 206, "value": 0.2, "easing": "smooth" }, { "frame": 211, "value": 1, "easing": "hold" } ], "radiusPixels": 0, "overflow": "visible", "clip": null, "insetClipIsIndependentOfOverflow": true, "order": "Draw or merge local content; apply the listed local effects and alpha masks. The explicit inset clip always applies, independently of overflow. Rounded descendant clipping requires overflow:hidden. Apply the local transform and whole-layer opacity before ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": [ { "frame": 206, "value": 0.2, "easing": "smooth" }, { "frame": 211, "value": 1, "easing": "hold" } ] }, "tools": [ "Transparent RGBA working domain", "Ordered child Merges", "Rounded Rectangle/Polygon alpha intersection if required", "Transform", "Group opacity", "Over Merge" ], "localFill": "transparent", "childLayerIds": [ "row-icon-1", "row-copy-1" ], "contentsInput": "Merge_row-copy-1" }, { "layerId": "row-icon-1", "nodeId": "Layer_row-icon-1", "kind": "image", "parentLayerId": "row-1", "recipePointer": "/layers/3/children/0/children/0", "mergeIndex": 0, "backgroundInput": "Transparent_row-1", "foregroundInput": "Processed_row-icon-1", "output": "Merge_row-icon-1", "activeLocalFrames": [ 206, 360 ], "effectiveActiveLocalFrames": [ 206, 360 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 206, "end": 360, "x": 0, "y": 0, "width": 128, "height": 128, "origin": [ 0, 0 ], "slot": "icon1", "fit": "contain" }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "insetClipIsIndependentOfOverflow": true, "order": "Draw or merge local content; apply the listed local effects and alpha masks. The explicit inset clip always applies, independently of overflow. Rounded descendant clipping requires overflow:hidden. Apply the local transform and whole-layer opacity before ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Native vector subgroup reconstructed from svgConstruction", "Fit Transform", "Local Transform", "Over Merge" ], "assets": { "defaults": { "kind": "image", "path": "art/workspace-icon-phrases/icon-1-default.svg", "width": 160, "height": 160, "rights": "Original code-generated vector geometry for this kit. No source film imagery, tracing, logos, embedded bitmap or external resources." }, "adaptation": { "kind": "image", "path": "art/workspace-icon-phrases/icon-1-adaptation.svg", "width": 160, "height": 160, "rights": "Original code-generated vector geometry for this kit. No source film imagery, tracing, logos, embedded bitmap or external resources." } }, "fitRule": "Use min(boxWidth/SVGWidth, boxHeight/SVGHeight), center the resulting artwork in the box, preserve SVG viewBox and alpha. These supplied boxes match their assets; no photographic crop." }, { "layerId": "row-copy-1", "nodeId": "Layer_row-copy-1", "kind": "text", "parentLayerId": "row-1", "recipePointer": "/layers/3/children/0/children/1", "mergeIndex": 1, "backgroundInput": "Merge_row-icon-1", "foregroundInput": "Processed_row-copy-1", "output": "Merge_row-copy-1", "activeLocalFrames": [ 206, 360 ], "effectiveActiveLocalFrames": [ 206, 360 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 206, "end": 360, "x": 210, "y": 8, "width": 1040, "height": 100, "origin": [ 0, 0 ], "slot": "row1", "fontSize": 78, "weight": 650, "color": "#111111", "lineHeight": 1.05 }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "insetClipIsIndependentOfOverflow": true, "order": "Draw or merge local content; apply the listed local effects and alpha masks. The explicit inset clip always applies, independently of overflow. Rounded descendant clipping requires overflow:hidden. Apply the local transform and whole-layer opacity before ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Text+ in bundled Geist", "Set explicit newline layout", "Stepped StyledText or Write On gate when present", "Local Transform", "Over Merge" ], "content": { "defaults": "Seed collection", "adaptation": "Edition catalog" }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 78, "weight": 650, "lineHeightPixels": 81.9, "letterSpacingPixels": 0, "fit": "No shrink or automatic wrapping. Text+ Size and baseline need actual installed-font calibration; the recipe pixel box is authoritative." } }, { "layerId": "row-2", "nodeId": "Layer_row-2", "kind": "group", "parentLayerId": "phrase-stack", "recipePointer": "/layers/3/children/1", "mergeIndex": 1, "backgroundInput": "Merge_row-1", "foregroundInput": "Processed_row-2", "output": "Merge_row-2", "activeLocalFrames": [ 273, 360 ], "effectiveActiveLocalFrames": [ 273, 360 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 273, "end": 360, "x": 0, "y": 216, "width": 1220, "height": 144, "origin": [ 0, 0 ], "opacity": [ { "frame": 273, "value": 0.2, "easing": "smooth" }, { "frame": 278, "value": 1, "easing": "hold" } ] }, "alphaAndMasks": { "opacity": [ { "frame": 273, "value": 0.2, "easing": "smooth" }, { "frame": 278, "value": 1, "easing": "hold" } ], "radiusPixels": 0, "overflow": "visible", "clip": null, "insetClipIsIndependentOfOverflow": true, "order": "Draw or merge local content; apply the listed local effects and alpha masks. The explicit inset clip always applies, independently of overflow. Rounded descendant clipping requires overflow:hidden. Apply the local transform and whole-layer opacity before ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": [ { "frame": 273, "value": 0.2, "easing": "smooth" }, { "frame": 278, "value": 1, "easing": "hold" } ] }, "tools": [ "Transparent RGBA working domain", "Ordered child Merges", "Rounded Rectangle/Polygon alpha intersection if required", "Transform", "Group opacity", "Over Merge" ], "localFill": "transparent", "childLayerIds": [ "row-icon-2", "row-copy-2" ], "contentsInput": "Merge_row-copy-2" }, { "layerId": "row-icon-2", "nodeId": "Layer_row-icon-2", "kind": "image", "parentLayerId": "row-2", "recipePointer": "/layers/3/children/1/children/0", "mergeIndex": 0, "backgroundInput": "Transparent_row-2", "foregroundInput": "Processed_row-icon-2", "output": "Merge_row-icon-2", "activeLocalFrames": [ 273, 360 ], "effectiveActiveLocalFrames": [ 273, 360 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 273, "end": 360, "x": 0, "y": 0, "width": 128, "height": 128, "origin": [ 0, 0 ], "slot": "icon2", "fit": "contain" }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "insetClipIsIndependentOfOverflow": true, "order": "Draw or merge local content; apply the listed local effects and alpha masks. The explicit inset clip always applies, independently of overflow. Rounded descendant clipping requires overflow:hidden. Apply the local transform and whole-layer opacity before ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Native vector subgroup reconstructed from svgConstruction", "Fit Transform", "Local Transform", "Over Merge" ], "assets": { "defaults": { "kind": "image", "path": "art/workspace-icon-phrases/icon-2-default.svg", "width": 160, "height": 160, "rights": "Original code-generated vector geometry for this kit. No source film imagery, tracing, logos, embedded bitmap or external resources." }, "adaptation": { "kind": "image", "path": "art/workspace-icon-phrases/icon-2-adaptation.svg", "width": 160, "height": 160, "rights": "Original code-generated vector geometry for this kit. No source film imagery, tracing, logos, embedded bitmap or external resources." } }, "fitRule": "Use min(boxWidth/SVGWidth, boxHeight/SVGHeight), center the resulting artwork in the box, preserve SVG viewBox and alpha. These supplied boxes match their assets; no photographic crop." }, { "layerId": "row-copy-2", "nodeId": "Layer_row-copy-2", "kind": "text", "parentLayerId": "row-2", "recipePointer": "/layers/3/children/1/children/1", "mergeIndex": 1, "backgroundInput": "Merge_row-icon-2", "foregroundInput": "Processed_row-copy-2", "output": "Merge_row-copy-2", "activeLocalFrames": [ 273, 360 ], "effectiveActiveLocalFrames": [ 273, 360 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 273, "end": 360, "x": 210, "y": 8, "width": 1040, "height": 100, "origin": [ 0, 0 ], "slot": "row2", "fontSize": 78, "weight": 650, "color": "#111111", "lineHeight": 1.05 }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "insetClipIsIndependentOfOverflow": true, "order": "Draw or merge local content; apply the listed local effects and alpha masks. The explicit inset clip always applies, independently of overflow. Rounded descendant clipping requires overflow:hidden. Apply the local transform and whole-layer opacity before ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Text+ in bundled Geist", "Set explicit newline layout", "Stepped StyledText or Write On gate when present", "Local Transform", "Over Merge" ], "content": { "defaults": "Weekly planting", "adaptation": "Material tests" }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 78, "weight": 650, "lineHeightPixels": 81.9, "letterSpacingPixels": 0, "fit": "No shrink or automatic wrapping. Text+ Size and baseline need actual installed-font calibration; the recipe pixel box is authoritative." } }, { "layerId": "row-3", "nodeId": "Layer_row-3", "kind": "group", "parentLayerId": "phrase-stack", "recipePointer": "/layers/3/children/2", "mergeIndex": 2, "backgroundInput": "Merge_row-2", "foregroundInput": "Processed_row-3", "output": "Merge_row-3", "activeLocalFrames": [ 345, 360 ], "effectiveActiveLocalFrames": [ 345, 360 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 345, "end": 360, "x": 0, "y": 432, "width": 1220, "height": 144, "origin": [ 0, 0 ], "opacity": [ { "frame": 345, "value": 0.2, "easing": "smooth" }, { "frame": 350, "value": 1, "easing": "hold" } ] }, "alphaAndMasks": { "opacity": [ { "frame": 345, "value": 0.2, "easing": "smooth" }, { "frame": 350, "value": 1, "easing": "hold" } ], "radiusPixels": 0, "overflow": "visible", "clip": null, "insetClipIsIndependentOfOverflow": true, "order": "Draw or merge local content; apply the listed local effects and alpha masks. The explicit inset clip always applies, independently of overflow. Rounded descendant clipping requires overflow:hidden. Apply the local transform and whole-layer opacity before ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": [ { "frame": 345, "value": 0.2, "easing": "smooth" }, { "frame": 350, "value": 1, "easing": "hold" } ] }, "tools": [ "Transparent RGBA working domain", "Ordered child Merges", "Rounded Rectangle/Polygon alpha intersection if required", "Transform", "Group opacity", "Over Merge" ], "localFill": "transparent", "childLayerIds": [ "row-icon-3", "row-copy-3" ], "contentsInput": "Merge_row-copy-3" }, { "layerId": "row-icon-3", "nodeId": "Layer_row-icon-3", "kind": "image", "parentLayerId": "row-3", "recipePointer": "/layers/3/children/2/children/0", "mergeIndex": 0, "backgroundInput": "Transparent_row-3", "foregroundInput": "Processed_row-icon-3", "output": "Merge_row-icon-3", "activeLocalFrames": [ 345, 360 ], "effectiveActiveLocalFrames": [ 345, 360 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 345, "end": 360, "x": 0, "y": 0, "width": 128, "height": 128, "origin": [ 0, 0 ], "slot": "icon3", "fit": "contain" }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "insetClipIsIndependentOfOverflow": true, "order": "Draw or merge local content; apply the listed local effects and alpha masks. The explicit inset clip always applies, independently of overflow. Rounded descendant clipping requires overflow:hidden. Apply the local transform and whole-layer opacity before ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Native vector subgroup reconstructed from svgConstruction", "Fit Transform", "Local Transform", "Over Merge" ], "assets": { "defaults": { "kind": "image", "path": "art/workspace-icon-phrases/icon-3-default.svg", "width": 160, "height": 160, "rights": "Original code-generated vector geometry for this kit. No source film imagery, tracing, logos, embedded bitmap or external resources." }, "adaptation": { "kind": "image", "path": "art/workspace-icon-phrases/icon-3-adaptation.svg", "width": 160, "height": 160, "rights": "Original code-generated vector geometry for this kit. No source film imagery, tracing, logos, embedded bitmap or external resources." } }, "fitRule": "Use min(boxWidth/SVGWidth, boxHeight/SVGHeight), center the resulting artwork in the box, preserve SVG viewBox and alpha. These supplied boxes match their assets; no photographic crop." }, { "layerId": "row-copy-3", "nodeId": "Layer_row-copy-3", "kind": "text", "parentLayerId": "row-3", "recipePointer": "/layers/3/children/2/children/1", "mergeIndex": 1, "backgroundInput": "Merge_row-icon-3", "foregroundInput": "Processed_row-copy-3", "output": "Merge_row-copy-3", "activeLocalFrames": [ 345, 360 ], "effectiveActiveLocalFrames": [ 345, 360 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 345, "end": 360, "x": 210, "y": 8, "width": 1040, "height": 100, "origin": [ 0, 0 ], "slot": "row3", "fontSize": 78, "weight": 650, "color": "#111111", "lineHeight": 1.05 }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "insetClipIsIndependentOfOverflow": true, "order": "Draw or merge local content; apply the listed local effects and alpha masks. The explicit inset clip always applies, independently of overflow. Rounded descendant clipping requires overflow:hidden. Apply the local transform and whole-layer opacity before ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Text+ in bundled Geist", "Set explicit newline layout", "Stepped StyledText or Write On gate when present", "Local Transform", "Over Merge" ], "content": { "defaults": "Garden notebook", "adaptation": "Exhibit planning" }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 78, "weight": 650, "lineHeightPixels": 81.9, "letterSpacingPixels": 0, "fit": "No shrink or automatic wrapping. Text+ Size and baseline need actual installed-font calibration; the recipe pixel box is authoritative." } } ] svgConstruction { "art/workspace-icon-phrases/icon-1-default.svg": { "sha256": "bb31613b93a757fcc90c7faeb9a53393249e6e48138561b894981b521bdb4c04", "construction": { "element": "svg", "attributes": { "width": "160", "height": "160", "viewBox": "0 0 160 160" }, "children": [ { "element": "path", "attributes": { "d": "M35 125C-6 45 47 9 132 23C140 103 110 145 35 125Z", "fill": "#b9d9b0" }, "children": [] }, { "element": "path", "attributes": { "d": "M30 140L113 43M59 110L54 67M82 89L122 87", "fill": "none", "stroke": "#193e49", "stroke-width": "8" }, "children": [] } ] }, "nativeRebuild": "Rebuild XML elements in order as separate editable masked color nodes. Preserve viewBox/path coordinates, stroke caps/joins, gradient stops, opacity, and clipPath intersections. ObjectBoundingBox is the default gradient coordinate system; preserve explicit transforms. No raster Loader." }, "art/workspace-icon-phrases/icon-2-default.svg": { "sha256": "b0e58bdedeb744009362cbc52a0a3d1e39f9db11bb1fae31f238574efa0b617b", "construction": { "element": "svg", "attributes": { "width": "160", "height": "160", "viewBox": "0 0 160 160" }, "children": [ { "element": "rect", "attributes": { "x": "20", "y": "28", "width": "120", "height": "113", "rx": "15", "fill": "#b9d9b0" }, "children": [] }, { "element": "path", "attributes": { "d": "M20 61H140M49 13V43M109 13V43", "stroke": "#193e49", "stroke-width": "9" }, "children": [] }, { "element": "path", "attributes": { "d": "M45 93L68 116L114 78", "fill": "none", "stroke": "#193e49", "stroke-width": "10" }, "children": [] } ] }, "nativeRebuild": "Rebuild XML elements in order as separate editable masked color nodes. Preserve viewBox/path coordinates, stroke caps/joins, gradient stops, opacity, and clipPath intersections. ObjectBoundingBox is the default gradient coordinate system; preserve explicit transforms. No raster Loader." }, "art/workspace-icon-phrases/icon-3-default.svg": { "sha256": "829f4ea0cec79519832aeaff834dae7914a571095d74de0034d0b33bf90a4260", "construction": { "element": "svg", "attributes": { "width": "160", "height": "160", "viewBox": "0 0 160 160" }, "children": [ { "element": "path", "attributes": { "d": "M15 30Q47 15 80 34Q111 15 145 30V133Q112 117 80 137Q47 117 15 133Z", "fill": "#b9d9b0", "stroke": "#193e49", "stroke-width": "6" }, "children": [] }, { "element": "path", "attributes": { "d": "M80 34V134M31 54L63 59M97 59L129 54M31 79L63 84M97 84L129 79", "stroke": "#193e49", "stroke-width": "5" }, "children": [] } ] }, "nativeRebuild": "Rebuild XML elements in order as separate editable masked color nodes. Preserve viewBox/path coordinates, stroke caps/joins, gradient stops, opacity, and clipPath intersections. ObjectBoundingBox is the default gradient coordinate system; preserve explicit transforms. No raster Loader." }, "art/workspace-icon-phrases/icon-1-adaptation.svg": { "sha256": "843d6e3baff17f85a13daf8103ed0c10f38c200d9184607bca2b02d812d5e3a9", "construction": { "element": "svg", "attributes": { "width": "160", "height": "160", "viewBox": "0 0 160 160" }, "children": [ { "element": "rect", "attributes": { "x": "20", "y": "38", "width": "120", "height": "107", "rx": "5", "fill": "#e2b790" }, "children": [] }, { "element": "rect", "attributes": { "x": "11", "y": "22", "width": "138", "height": "32", "rx": "5", "fill": "#473654" }, "children": [] }, { "element": "rect", "attributes": { "x": "57", "y": "76", "width": "46", "height": "18", "rx": "4", "fill": "#fffaf0" }, "children": [] } ] }, "nativeRebuild": "Rebuild XML elements in order as separate editable masked color nodes. Preserve viewBox/path coordinates, stroke caps/joins, gradient stops, opacity, and clipPath intersections. ObjectBoundingBox is the default gradient coordinate system; preserve explicit transforms. No raster Loader." }, "art/workspace-icon-phrases/icon-2-adaptation.svg": { "sha256": "22983d3f1790663ff176e7eaad140bb781096287480fc5565c86cd6a68e2ca43", "construction": { "element": "svg", "attributes": { "width": "160", "height": "160", "viewBox": "0 0 160 160" }, "children": [ { "element": "path", "attributes": { "d": "M60 16V64L20 133Q16 145 34 145H126Q144 145 138 133L100 64V16Z", "fill": "#e2b790", "stroke": "#473654", "stroke-width": "7" }, "children": [] }, { "element": "path", "attributes": { "d": "M50 16H110M42 109H117", "stroke": "#473654", "stroke-width": "7" }, "children": [] }, { "element": "circle", "attributes": { "cx": "72", "cy": "114", "r": "8", "fill": "#fffaf0" }, "children": [] } ] }, "nativeRebuild": "Rebuild XML elements in order as separate editable masked color nodes. Preserve viewBox/path coordinates, stroke caps/joins, gradient stops, opacity, and clipPath intersections. ObjectBoundingBox is the default gradient coordinate system; preserve explicit transforms. No raster Loader." }, "art/workspace-icon-phrases/icon-3-adaptation.svg": { "sha256": "ade8e3d8e617557100fa8bf8b23343c784e6489efc1861296e89837410fcd116", "construction": { "element": "svg", "attributes": { "width": "160", "height": "160", "viewBox": "0 0 160 160" }, "children": [ { "element": "circle", "attributes": { "cx": "80", "cy": "80", "r": "66", "fill": "#e2b790", "stroke": "#473654", "stroke-width": "7" }, "children": [] }, { "element": "path", "attributes": { "d": "M115 43L97 97L43 115L62 62Z", "fill": "#473654" }, "children": [] }, { "element": "path", "attributes": { "d": "M115 43L80 80L62 62Z", "fill": "#fffaf0" }, "children": [] } ] }, "nativeRebuild": "Rebuild XML elements in order as separate editable masked color nodes. Preserve viewBox/path coordinates, stroke caps/joins, gradient stops, opacity, and clipPath intersections. ObjectBoundingBox is the default gradient coordinate system; preserve explicit transforms. No raster Loader." } } tracks [ { "layerId": "paper", "property": "x", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "paper", "property": "y", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "paper", "property": "width", "value": 1920, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "paper", "property": "height", "value": 1080, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "conversation-context", "property": "x", "value": [ { "frame": 0, "value": 0, "easing": "linear" }, { "frame": 54, "value": -12, "easing": "hold" } ], "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "conversation-context", "property": "y", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "conversation-context", "property": "width", "value": 1920, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "conversation-context", "property": "height", "value": 1080, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-rail", "property": "x", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-rail", "property": "y", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-rail", "property": "width", "value": 355, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-rail", "property": "height", "value": 1080, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-copy-0", "property": "x", "value": 645, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-copy-0", "property": "y", "value": 58, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-copy-0", "property": "width", "value": 1235, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-copy-0", "property": "height", "value": 84, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-copy-1", "property": "x", "value": 645, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-copy-1", "property": "y", "value": 151, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-copy-1", "property": "width", "value": 1235, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-copy-1", "property": "height", "value": 84, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-copy-2", "property": "x", "value": 645, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-copy-2", "property": "y", "value": 410, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-copy-2", "property": "width", "value": 1235, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-copy-2", "property": "height", "value": 84, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-copy-3", "property": "x", "value": 645, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-copy-3", "property": "y", "value": 530, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-copy-3", "property": "width", "value": 1235, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-copy-3", "property": "height", "value": 84, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-copy-4", "property": "x", "value": 645, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-copy-4", "property": "y", "value": 621, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-copy-4", "property": "width", "value": 1235, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-copy-4", "property": "height", "value": 84, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-icon-a", "property": "x", "value": 492, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-icon-a", "property": "y", "value": 54, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-icon-a", "property": "width", "value": 130, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-icon-a", "property": "height", "value": 130, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-icon-b", "property": "x", "value": 492, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-icon-b", "property": "y", "value": 402, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-icon-b", "property": "width", "value": 130, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-icon-b", "property": "height", "value": 130, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "title-parent", "property": "x", "value": 140, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "title-parent", "property": "y", "value": [ { "frame": 55, "value": 430, "easing": "hold" }, { "frame": 71, "value": 430, "easing": "smooth" }, { "frame": 95, "value": 396, "easing": "hold" } ], "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "title-parent", "property": "width", "value": 1640, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "title-parent", "property": "height", "value": 350, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "title-line-one", "property": "x", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "title-line-one", "property": "y", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "title-line-one", "property": "width", "value": 1640, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "title-line-one", "property": "height", "value": 170, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "title-line-two", "property": "x", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "title-line-two", "property": "y", "value": 168, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "title-line-two", "property": "width", "value": 1640, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "title-line-two", "property": "height", "value": 170, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "phrase-stack", "property": "x", "value": 560, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "phrase-stack", "property": "y", "value": [ { "frame": 206, "value": 470, "easing": "hold" }, { "frame": 264, "value": 470, "easing": "smooth" }, { "frame": 278, "value": 362, "easing": "hold" }, { "frame": 336, "value": 362, "easing": "smooth" }, { "frame": 366, "value": 254, "easing": "hold" } ], "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "phrase-stack", "property": "width", "value": 1260, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "phrase-stack", "property": "height", "value": 576, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-1", "property": "x", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-1", "property": "y", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-1", "property": "width", "value": 1220, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-1", "property": "height", "value": 144, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-1", "property": "opacity", "value": [ { "frame": 206, "value": 0.2, "easing": "smooth" }, { "frame": 211, "value": 1, "easing": "hold" } ], "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-icon-1", "property": "x", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-icon-1", "property": "y", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-icon-1", "property": "width", "value": 128, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-icon-1", "property": "height", "value": 128, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-copy-1", "property": "x", "value": 210, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-copy-1", "property": "y", "value": 8, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-copy-1", "property": "width", "value": 1040, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-copy-1", "property": "height", "value": 100, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-2", "property": "x", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-2", "property": "y", "value": 216, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-2", "property": "width", "value": 1220, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-2", "property": "height", "value": 144, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-2", "property": "opacity", "value": [ { "frame": 273, "value": 0.2, "easing": "smooth" }, { "frame": 278, "value": 1, "easing": "hold" } ], "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-icon-2", "property": "x", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-icon-2", "property": "y", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-icon-2", "property": "width", "value": 128, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-icon-2", "property": "height", "value": 128, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-copy-2", "property": "x", "value": 210, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-copy-2", "property": "y", "value": 8, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-copy-2", "property": "width", "value": 1040, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-copy-2", "property": "height", "value": 100, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-3", "property": "x", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-3", "property": "y", "value": 432, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-3", "property": "width", "value": 1220, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-3", "property": "height", "value": 144, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-3", "property": "opacity", "value": [ { "frame": 345, "value": 0.2, "easing": "smooth" }, { "frame": 350, "value": 1, "easing": "hold" } ], "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-icon-3", "property": "x", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-icon-3", "property": "y", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-icon-3", "property": "width", "value": 128, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-icon-3", "property": "height", "value": 128, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-copy-3", "property": "x", "value": 210, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-copy-3", "property": "y", "value": 8, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-copy-3", "property": "width", "value": 1040, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "row-copy-3", "property": "height", "value": 100, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." } ] steps [ "Create one1920x1080 Fusion Composition on Edit V1, no audio tracks. Set the exact guide rational timeline cadence before insertion. The timeline GUI may label24000/1001 as23.976; keep the rational value in the delivery contract. Set length to the listed nativeFrameCount, local0 through count-1. Do not import the research excerpt.", "Use one explicit Background_Paper and ordered Over Merge chain. Treat JSON layer IDs as node names and fusionNodes parentLayerId as nesting ownership. A group contains a transparent RGBA local domain, ordered child Merges, then its own Transform and one opacity multiplier. Never apply parent travel separately to already transformed children.", "Reconstruct each active SVG from svgConstruction in guide.json. Use Background plus Rectangle/Ellipse/Polygon/Bezier masks; preserve viewBox, exact path controls, fill/stroke and gradient stops. Keep separate editable shape nodes in XML order; the orb uses two fills intersected with its circle alpha. No Loader of a bitmap or video. SVG import is optional, not required to obtain editable native nodes.", "Use bundled Geist for Text+. Enter defaults or adaptation values from contentContract. Text values remain editable, with fixed recipe width/height and no auto-wrap/shrink. Match pixel font size, weight, line height and alignment through a native baseline/width check; no numeric claim that Text+ Size equals CSS px. The supplied source-only browser gate does not certify Fusion typography.", "Set each layer gate start inclusive and end exclusive. When using clip trims, local Fusion time must still evaluate the global recipe-local clock: add the clip In before sampling. Use held StyledText prefixes for reveal.steps, with no interpolation of glyph counts. A disappearing group cuts all children together.", "For numeric tracks use controls.csv per-native-frame values, or exact left-key interpolation: linear u; smooth u*u*(3-2*u); hold returns left value strictly until next key. No Auto spline, overshoot, cross-dissolve or optical-flow interpolation. Evaluate keys beyond duration only to derive the truncated last in-window sample.", "Keep alpha transparent outside vector shapes. SVG fill/stroke opacity and gradient stop-opacity multiply their own coverage; Merge with Normal/Over, not Screen or black-keying. Clip the final canvas only; explicit inset masks, if present, apply in local pixels before that group transform. Do not shrink live text widths as a reveal mechanism.", "Build conversation-context from context-rail, five Text+ leaves and two vector icons. Its x travels0 to-12 across0..54. Gate the entire group[0,55); title is a sibling, not its child. This invented exchange is not a real product behavior claim.", "Build title-parent at x140, width1640. Its y holds430 through71 then smoothsteps to396 at95. title-line-one uses140px type and three whole-word gates55/61/71; title-line-two at local y168 uses character counts5/6/7/9/11/17 at95/98/101/108/111/115. Both hold through205 and cut206.", "Build phrase-stack at x560, size1260x576. Add row-1/2/3 at y0/216/432, gates206/273/345. Each merges a128px icon and78px label at x210,y8 in a1040x100 text box. Row opacity .2 to1 over fiveframes is an adaptation choice.", "Move only phrase-stack y:470 through264; smooth to362 at278; hold through336; smooth toward254 at366. Last output index359 is before completion. Earlier rows stay in place relative to the shared parent while each new row joins. Do not replace this with independent fixed row pop-ins.", "Check every listed source-bound checkpoint and adjacent frames against the scalar contract. Inspect an actual parent render and native Resolve output separately before any fidelity/equivalence claim. Default, adaptation and custom passing here are content/framegraph/font preflights only." ] checkpoints [ { "localFrame": 0, "sourceFrame": 3060, "expectation": "Original conversation closeup." }, { "localFrame": 54, "sourceFrame": 3114, "expectation": "Last conversation frame; small parent drift." }, { "localFrame": 55, "sourceFrame": 3115, "expectation": "Cut to first title word." }, { "localFrame": 61, "sourceFrame": 3121, "expectation": "Second whole word." }, { "localFrame": 71, "sourceFrame": 3131, "expectation": "Third whole word." }, { "localFrame": 94, "sourceFrame": 3154, "expectation": "No second line yet." }, { "localFrame": 95, "sourceFrame": 3155, "expectation": "Second-line five-character prefix." }, { "localFrame": 101, "sourceFrame": 3161, "expectation": "Seven-character prefix." }, { "localFrame": 115, "sourceFrame": 3175, "expectation": "Full replacement title." }, { "localFrame": 205, "sourceFrame": 3265, "expectation": "Last frame of long title hold." }, { "localFrame": 206, "sourceFrame": 3266, "expectation": "First icon row; title gone." }, { "localFrame": 264, "sourceFrame": 3324, "expectation": "First recentering move starts." }, { "localFrame": 272, "sourceFrame": 3332, "expectation": "One row yielding space." }, { "localFrame": 273, "sourceFrame": 3333, "expectation": "Second row starts." }, { "localFrame": 278, "sourceFrame": 3338, "expectation": "Two-row position reached." }, { "localFrame": 336, "sourceFrame": 3396, "expectation": "Three-row re-centering starts." }, { "localFrame": 344, "sourceFrame": 3404, "expectation": "Only two rows." }, { "localFrame": 345, "sourceFrame": 3405, "expectation": "Third row starts." }, { "localFrame": 359, "sourceFrame": 3419, "expectation": "Three rows; parent has not finished its continuing settle." } ] implementationDifferences [ "Default is a garden team exchange and planting workflow; adaptation is a print studio exchange and edition workflow. Context lasts0..54, then cuts without dissolve.", "Third row starts345; parent is still approaching its off-window target at360. Keys beyond the last output sample describe a truncated continuation, not extra frames.", "Original leaf/calendar/book and archive/beaker/compass symbols replace dimensional source mascots. The UI is original copy, not a product simulation.", "140px title,78px labels,216px row pitch and x560 stack are chosen at1920x1080. Second-line glyph counts cap at17 at115 for permitted copy.", "All positions, easing and vector material choices are authored approximations, not official measured controls. Source observations and nominal/source PTS authorities remain separate.", "One treatment with two content variants. No source images, logos, brand data, audio or photographic claims." ] limitations [ "Source-specific mascot depth, exact type spacing and conversation framing are replaced by original flat SVG symbols and invented editorial content; micro-settling curves are chosen, not source-measured.", "Source quality unresolved. No moving, blind-win, native Resolve execution or application-equivalence claim.", "No renderer, encoder, npm install, dependency copy, source-master download or deployment by this builder. Parent work is separate.", "All native indices were statically inspected; fitted sheets are not moving review. Absolute source PTS are unavailable.", "Public files work from the kit download. Private inspection/generator files are not run prerequisites.", "Text length caps are not guaranteed glyph-width bounds; actual full-string font gate must pass without shrink.", "One treatment and two original content variants, not multiple examples." ]