fusionSetup { "backgroundNode": "Background_Canvas", "background": "#ffffff", "outputNode": "MediaOut1", "input": "Merge_window-clip", "localFrames": [ 0, 480 ], "timelineFps": { "numerator": 60, "denominator": 1 }, "pixelAspect": 1, "layerOrder": "Listed ordered Over merges. Child tree is composited before its parent transform.", "notAnImportFile": true, "documentation": { "retainedManual": "Resolve-21.pdf / chapter120 Transform, printed pages2929-2931; chapter108 masks. Read from retained official documentation, not a claim of installed-version validation.", "transform": "Center positions the image, Pivot is the rotation/scaling axis, Size scales, positive Angle is counterclockwise, Canvas edges default transparent." }, "instructions": [ "Local x/y are pixels from the top-left of the parent, not the composition. All keys use the same native local frame f. For absolute source time use sourceStart+f, and for nominal seconds multiply by fpsDenominator/fpsNumerator. These are not measured master PTS.", "Use full1920x1080 transparent domains for local transforms, retaining offscreen material until the parent clipping stage. For these recipes any content permanently outside that local domain never returns into the visible window. Do not resize a group to its changing visible bounding box before parenting.", "For zero-rotation local origin(ox,oy), sx=scale*scaleX and sy=scale*scaleY: bx=x+ox-sx*ox, by=y+oy-sy*oy. Output pixels=(bx+sx*inputX,by+sy*inputY). Full-frame Fusion centered Pivot=(0.5,0.5) then uses CenterX=bx/1920+sx/2; CenterY=1-by/1080-sy/2. Use independent X/Y Size if scales differ. All authored rotations are zero; Angle sign would invert for CSS clockwise rotation.", "For a local rectangle center use ((x+w/2)/1920,1-(y+h/2)/1080), Width=w/1920, Height=h/1080. For rounded corners preserve the radius in pixel geometry; reconstruct a Bezier rounded rectangle rather than treating the Fusion Corner Radius knob as pixels. Every SVG path/viewBox and native icon path is preserved in the guide.", "Left-key hold means the left value persists strictly before the next key, and the right value begins exactly at that key. Smooth means u*u*(3-2*u), not Resolve default Auto or the older cubic Bezier(.16,1,.3,1). Bake controls.csv values as native-frame keys when an analytic expression is inconvenient.", "Masks change alpha before Over compositing. overflow:hidden plus radius intersects the children with a local rounded rectangle; radius alone does not clip children. All clip.top/right/bottom/left values are local pixels, not percentages or a time offset. Visible inset bounds=(left,top,width-left-right,height-top-bottom). Intersect masks; do not use an effect mask that merely limits Transform influence.", "CSS rect borders lie inside their stated box. Native fallback uses an outer rounded mask minus an inset rounded mask of border thickness; do not expand the box with a centered outline. Whole-group opacity is applied once after child Over merges.", "Keep premultiplied RGBA consistent for Over. If a color operation needs straight alpha, unpremultiply then premultiply immediately around it. No arbitrary opacity compensation, Screen blend or black backing. The original SVG radial/linear gradients use local alpha stops.", "All blur controls are CSS pixel values. Fusion Gaussian radius/quality is not assumed equivalent; calibrate the separate shadow branches and soft table cells at full output resolution. Transparent SVG gradient stops are not blur nodes. Disable motion blur; no exposure sampling is authored.", "Geist text uses explicit line breaks and listed pixel boxes. Resolve Text+ font size/baseline and SVG gradient appearance need actual application calibration. Do not claim identical rasterization from a numerical sampler pass. Use held StyledText strings for the exact character prefix schedule if Write On counts differently.", "Use no optical flow, dynamic zoom, retiming, transition handles or synthesized audio. No extra frames precede or follow the source window. Final output is clipped to1920x1080, not scaled to fit it." ] } fusionNodes [ { "layerId": "context-field", "nodeId": "Layer_context-field", "kind": "image", "parentLayerId": null, "recipePointer": "/layers/0", "mergeIndex": 0, "backgroundInput": "Background_Canvas", "foregroundInput": "Processed_context-field", "output": "Merge_context-field", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 0, "y": 0, "width": 1920, "height": 1080, "origin": [ 0, 0 ], "slot": "contextArt", "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/sidebar-editorial-callouts/context-default.svg", "width": 1920, "height": 1080, "rights": "Original code-generated vector geometry authored for this kit. No film imagery, logos, tracing, embedded bitmap or remote resource." }, "adaptation": { "kind": "image", "path": "art/sidebar-editorial-callouts/context-adaptation.svg", "width": 1920, "height": 1080, "rights": "Original code-generated vector geometry authored for this kit. No film imagery, logos, tracing, embedded bitmap or remote resource." } }, "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": "light-field", "nodeId": "Layer_light-field", "kind": "image", "parentLayerId": null, "recipePointer": "/layers/1", "mergeIndex": 1, "backgroundInput": "Merge_context-field", "foregroundInput": "Processed_light-field", "output": "Merge_light-field", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": [ { "frame": 0, "value": -64, "easing": "smooth" }, { "frame": 479, "value": -24, "easing": "hold" } ], "y": [ { "frame": 0, "value": -36, "easing": "smooth" }, { "frame": 479, "value": -12, "easing": "hold" } ], "width": 2048, "height": 1152, "origin": [ 0, 0 ], "slot": "lightArt", "fit": "contain", "opacity": 0.72 }, "alphaAndMasks": { "opacity": 0.72, "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": 0.72 }, "tools": [ "Native vector subgroup reconstructed from svgConstruction", "Fit Transform", "Local Transform", "Over Merge" ], "assets": { "defaults": { "kind": "image", "path": "art/sidebar-editorial-callouts/lights-default.svg", "width": 1920, "height": 1080, "rights": "Original code-generated vector geometry authored for this kit. No film imagery, logos, tracing, embedded bitmap or remote resource." }, "adaptation": { "kind": "image", "path": "art/sidebar-editorial-callouts/lights-adaptation.svg", "width": 1920, "height": 1080, "rights": "Original code-generated vector geometry authored for this kit. No film imagery, logos, tracing, embedded bitmap or remote resource." } }, "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": "window-shadow", "nodeId": "Layer_window-shadow", "kind": "rect", "parentLayerId": null, "recipePointer": "/layers/2", "mergeIndex": 2, "backgroundInput": "Merge_light-field", "foregroundInput": "Processed_window-shadow", "output": "Merge_window-shadow", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 212, "y": 78, "width": 1496, "height": 968, "origin": [ 0, 0 ], "fill": "#102244", "radius": 16, "blur": 32, "opacity": 0.22 }, "alphaAndMasks": { "opacity": 0.22, "radiusPixels": 16, "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": 0.22 }, "tools": [ "Background with Rectangle/Ellipse mask", "Inside-border ring if stroke is present", "Blur if present", "Local Transform", "Over Merge" ] }, { "layerId": "window-clip", "nodeId": "Layer_window-clip", "kind": "group", "parentLayerId": null, "recipePointer": "/layers/3", "mergeIndex": 3, "backgroundInput": "Merge_window-shadow", "foregroundInput": "Processed_window-clip", "output": "Merge_window-clip", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 212, "y": 56, "width": 1496, "height": 968, "origin": [ 0, 0 ], "radius": 12, "overflow": "hidden", "fill": "#fdfdfb" }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 12, "overflow": "hidden", "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": "#fdfdfb", "childLayerIds": [ "ui-camera", "navigation-callout", "projects-callout" ], "contentsInput": "Merge_projects-callout" }, { "layerId": "ui-camera", "nodeId": "Layer_ui-camera", "kind": "group", "parentLayerId": "window-clip", "recipePointer": "/layers/3/children/0", "mergeIndex": 0, "backgroundInput": "Transparent_window-clip", "foregroundInput": "Processed_ui-camera", "output": "Merge_ui-camera", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 0, "y": 0, "width": 1496, "height": 968, "origin": [ 0, 0 ], "scale": [ { "frame": 0, "value": 1, "easing": "smooth" }, { "frame": 40, "value": 1.485, "easing": "smooth" }, { "frame": 50, "value": 1.5, "easing": "hold" }, { "frame": 479, "value": 1.5, "easing": "hold" } ] }, "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": [ { "frame": 0, "value": 1, "easing": "smooth" }, { "frame": 40, "value": 1.485, "easing": "smooth" }, { "frame": 50, "value": 1.5, "easing": "hold" }, { "frame": 479, "value": 1.5, "easing": "hold" } ], "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": [ "sidebar-paper", "main-paper", "sidebar-divider", "window-toggle", "back-control", "forward-control", "hover-strip", "nav-icon-0", "nav-label-0", "nav-icon-1", "nav-label-1", "nav-icon-2", "nav-label-2", "nav-icon-3", "nav-label-3", "project-label", "project-icon-0", "project-name-0", "project-icon-1", "project-name-1", "project-icon-2", "project-name-2", "project-detail", "threads-label", "empty-threads", "page-heading", "composer-shadow", "composer-plate", "composer-hint", "composer-plus", "project-hint", "suggestion-mark-0", "suggestion-text-0", "suggestion-mark-1", "suggestion-text-1", "suggestion-mark-2", "suggestion-text-2", "suggestion-mark-3", "suggestion-text-3", "pointer" ], "contentsInput": "Merge_pointer" }, { "layerId": "sidebar-paper", "nodeId": "Layer_sidebar-paper", "kind": "rect", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/0", "mergeIndex": 0, "backgroundInput": "Transparent_ui-camera", "foregroundInput": "Processed_sidebar-paper", "output": "Merge_sidebar-paper", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 0, "y": 0, "width": 424, "height": 968, "origin": [ 0, 0 ], "fill": "$panel" }, "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": "main-paper", "nodeId": "Layer_main-paper", "kind": "rect", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/1", "mergeIndex": 1, "backgroundInput": "Merge_sidebar-paper", "foregroundInput": "Processed_main-paper", "output": "Merge_main-paper", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 424, "y": 0, "width": 1496, "height": 968, "origin": [ 0, 0 ], "fill": "#fdfdfb" }, "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": "sidebar-divider", "nodeId": "Layer_sidebar-divider", "kind": "rect", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/2", "mergeIndex": 2, "backgroundInput": "Merge_main-paper", "foregroundInput": "Processed_sidebar-divider", "output": "Merge_sidebar-divider", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 423, "y": 0, "width": 1, "height": 968, "origin": [ 0, 0 ], "fill": "#dedad4" }, "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": "window-toggle", "nodeId": "Layer_window-toggle", "kind": "rect", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/3", "mergeIndex": 3, "backgroundInput": "Merge_sidebar-divider", "foregroundInput": "Processed_window-toggle", "output": "Merge_window-toggle", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 130, "y": 14, "width": 18, "height": 16, "origin": [ 0, 0 ], "fill": "transparent", "stroke": "$muted", "strokeWidth": 1.5, "radius": 3 }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 3, "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": "back-control", "nodeId": "Layer_back-control", "kind": "path", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/4", "mergeIndex": 4, "backgroundInput": "Merge_window-toggle", "foregroundInput": "Processed_back-control", "output": "Merge_back-control", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 168, "y": 12, "width": 22, "height": 22, "origin": [ 0, 0 ], "path": "M40 10L18 32L40 54L44 50L26 32L44 14Z", "viewBox": [ 0, 0, 64, 64 ], "fill": "$muted" }, "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": [ "Polygon/Bezier fill using exact path/viewBox", "Local Transform", "Over Merge" ] }, { "layerId": "forward-control", "nodeId": "Layer_forward-control", "kind": "path", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/5", "mergeIndex": 5, "backgroundInput": "Merge_back-control", "foregroundInput": "Processed_forward-control", "output": "Merge_forward-control", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 212, "y": 12, "width": 22, "height": 22, "origin": [ 0, 0 ], "path": "M24 10L46 32L24 54L20 50L38 32L20 14Z", "viewBox": [ 0, 0, 64, 64 ], "fill": "$muted", "opacity": 0.42 }, "alphaAndMasks": { "opacity": 0.42, "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": 0.42 }, "tools": [ "Polygon/Bezier fill using exact path/viewBox", "Local Transform", "Over Merge" ] }, { "layerId": "hover-strip", "nodeId": "Layer_hover-strip", "kind": "rect", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/6", "mergeIndex": 6, "backgroundInput": "Merge_forward-control", "foregroundInput": "Processed_hover-strip", "output": "Merge_hover-strip", "activeLocalFrames": [ 0, 98 ], "effectiveActiveLocalFrames": [ 0, 98 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 98, "x": 16, "y": [ { "frame": 0, "value": 54, "easing": "hold" }, { "frame": 74, "value": 98, "easing": "hold" }, { "frame": 86, "value": 142, "easing": "hold" }, { "frame": 97, "value": 142, "easing": "hold" } ], "width": 392, "height": 42, "origin": [ 0, 0 ], "fill": "#000000", "radius": 12, "opacity": 0.035 }, "alphaAndMasks": { "opacity": 0.035, "radiusPixels": 12, "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": 0.035 }, "tools": [ "Background with Rectangle/Ellipse mask", "Inside-border ring if stroke is present", "Blur if present", "Local Transform", "Over Merge" ] }, { "layerId": "nav-icon-0", "nodeId": "Layer_nav-icon-0", "kind": "path", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/7", "mergeIndex": 7, "backgroundInput": "Merge_hover-strip", "foregroundInput": "Processed_nav-icon-0", "output": "Merge_nav-icon-0", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 24, "y": 67, "width": 24, "height": 24, "origin": [ 0, 0 ], "path": "M12 18H36V23H17V49H43V31H48V54H12ZM29 31L48 12L54 18L35 37L27 39Z", "viewBox": [ 0, 0, 64, 64 ], "fill": "$ink" }, "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": [ "Polygon/Bezier fill using exact path/viewBox", "Local Transform", "Over Merge" ] }, { "layerId": "nav-label-0", "nodeId": "Layer_nav-label-0", "kind": "text", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/8", "mergeIndex": 8, "backgroundInput": "Merge_nav-icon-0", "foregroundInput": "Processed_nav-label-0", "output": "Merge_nav-label-0", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 56, "y": 64, "width": 344, "height": 30, "origin": [ 0, 0 ], "slot": "navNew", "fontSize": 20, "lineHeight": 1.25, "weight": 400, "color": "$ink" }, "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": "New note", "adaptation": "New draft" }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 20, "weight": 400, "lineHeightPixels": 25.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": "nav-icon-1", "nodeId": "Layer_nav-icon-1", "kind": "path", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/9", "mergeIndex": 9, "backgroundInput": "Merge_nav-label-0", "foregroundInput": "Processed_nav-icon-1", "output": "Merge_nav-icon-1", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 24, "y": 111, "width": 24, "height": 24, "origin": [ 0, 0 ], "path": "M27 10A17 17 0 1 0 27 44A17 17 0 1 0 27 10M38 38L55 55", "viewBox": [ 0, 0, 64, 64 ], "fill": "none", "stroke": "$ink", "strokeWidth": 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": [ "Polygon/Bezier fill using exact path/viewBox", "Local Transform", "Over Merge" ] }, { "layerId": "nav-label-1", "nodeId": "Layer_nav-label-1", "kind": "text", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/10", "mergeIndex": 10, "backgroundInput": "Merge_nav-icon-1", "foregroundInput": "Processed_nav-label-1", "output": "Merge_nav-label-1", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 56, "y": 108, "width": 344, "height": 30, "origin": [ 0, 0 ], "slot": "navSearch", "fontSize": 20, "lineHeight": 1.25, "weight": 400, "color": "$ink" }, "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": "Search", "adaptation": "Find" }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 20, "weight": 400, "lineHeightPixels": 25.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": "nav-icon-2", "nodeId": "Layer_nav-icon-2", "kind": "path", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/11", "mergeIndex": 11, "backgroundInput": "Merge_nav-label-1", "foregroundInput": "Processed_nav-icon-2", "output": "Merge_nav-icon-2", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 24, "y": 155, "width": 24, "height": 24, "origin": [ 0, 0 ], "path": "M12 12H26V26H12ZM38 12H52V26H38ZM12 38H26V52H12ZM38 38H52V52H38Z", "viewBox": [ 0, 0, 64, 64 ], "fill": "$ink" }, "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": [ "Polygon/Bezier fill using exact path/viewBox", "Local Transform", "Over Merge" ] }, { "layerId": "nav-label-2", "nodeId": "Layer_nav-label-2", "kind": "text", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/12", "mergeIndex": 12, "backgroundInput": "Merge_nav-icon-2", "foregroundInput": "Processed_nav-label-2", "output": "Merge_nav-label-2", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 56, "y": 152, "width": 344, "height": 30, "origin": [ 0, 0 ], "slot": "navTools", "fontSize": 20, "lineHeight": 1.25, "weight": 400, "color": "$ink" }, "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": "Toolbox", "adaptation": "Resources" }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 20, "weight": 400, "lineHeightPixels": 25.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": "nav-icon-3", "nodeId": "Layer_nav-icon-3", "kind": "path", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/13", "mergeIndex": 13, "backgroundInput": "Merge_nav-label-2", "foregroundInput": "Processed_nav-icon-3", "output": "Merge_nav-icon-3", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 24, "y": 199, "width": 24, "height": 24, "origin": [ 0, 0 ], "path": "M32 9A23 23 0 1 0 32 55A23 23 0 1 0 32 9M32 17V33L43 39", "viewBox": [ 0, 0, 64, 64 ], "fill": "none", "stroke": "$ink", "strokeWidth": 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": [ "Polygon/Bezier fill using exact path/viewBox", "Local Transform", "Over Merge" ] }, { "layerId": "nav-label-3", "nodeId": "Layer_nav-label-3", "kind": "text", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/14", "mergeIndex": 14, "backgroundInput": "Merge_nav-icon-3", "foregroundInput": "Processed_nav-label-3", "output": "Merge_nav-label-3", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 56, "y": 196, "width": 344, "height": 30, "origin": [ 0, 0 ], "slot": "navSchedule", "fontSize": 20, "lineHeight": 1.25, "weight": 400, "color": "$ink" }, "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": "Schedules", "adaptation": "Routines" }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 20, "weight": 400, "lineHeightPixels": 25.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": "project-label", "nodeId": "Layer_project-label", "kind": "text", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/15", "mergeIndex": 15, "backgroundInput": "Merge_nav-label-3", "foregroundInput": "Processed_project-label", "output": "Merge_project-label", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 24, "y": 266, "width": 348, "height": 30, "origin": [ 0, 0 ], "slot": "projectsLabel", "fontSize": 19, "lineHeight": 1.25, "weight": 400, "color": "$muted" }, "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": "Projects", "adaptation": "Collections" }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 19, "weight": 400, "lineHeightPixels": 23.75, "letterSpacingPixels": 0, "fit": "No shrink or automatic wrapping. Text+ Size and baseline need actual installed-font calibration; the recipe pixel box is authoritative." } }, { "layerId": "project-icon-0", "nodeId": "Layer_project-icon-0", "kind": "path", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/16", "mergeIndex": 16, "backgroundInput": "Merge_project-label", "foregroundInput": "Processed_project-icon-0", "output": "Merge_project-icon-0", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 24, "y": 316, "width": 26, "height": 26, "origin": [ 0, 0 ], "path": "M10 19H28L34 25H55V50H9ZM12 27V45H50V30H30L25 24H14Z", "viewBox": [ 0, 0, 64, 64 ], "fill": "$muted" }, "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": [ "Polygon/Bezier fill using exact path/viewBox", "Local Transform", "Over Merge" ] }, { "layerId": "project-name-0", "nodeId": "Layer_project-name-0", "kind": "text", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/17", "mergeIndex": 17, "backgroundInput": "Merge_project-icon-0", "foregroundInput": "Processed_project-name-0", "output": "Merge_project-name-0", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 56, "y": 314, "width": 344, "height": 30, "origin": [ 0, 0 ], "slot": "projectOne", "fontSize": 20, "lineHeight": 1.25, "weight": 400, "color": "$ink" }, "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-notes", "adaptation": "studio-notes" }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 20, "weight": 400, "lineHeightPixels": 25.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": "project-icon-1", "nodeId": "Layer_project-icon-1", "kind": "path", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/18", "mergeIndex": 18, "backgroundInput": "Merge_project-name-0", "foregroundInput": "Processed_project-icon-1", "output": "Merge_project-icon-1", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 24, "y": 416, "width": 26, "height": 26, "origin": [ 0, 0 ], "path": "M10 19H28L34 25H55V50H9ZM12 27V45H50V30H30L25 24H14Z", "viewBox": [ 0, 0, 64, 64 ], "fill": "$muted" }, "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": [ "Polygon/Bezier fill using exact path/viewBox", "Local Transform", "Over Merge" ] }, { "layerId": "project-name-1", "nodeId": "Layer_project-name-1", "kind": "text", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/19", "mergeIndex": 19, "backgroundInput": "Merge_project-icon-1", "foregroundInput": "Processed_project-name-1", "output": "Merge_project-name-1", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 56, "y": 414, "width": 344, "height": 30, "origin": [ 0, 0 ], "slot": "projectTwo", "fontSize": 20, "lineHeight": 1.25, "weight": 400, "color": "$ink" }, "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": "path-planning", "adaptation": "material-library" }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 20, "weight": 400, "lineHeightPixels": 25.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": "project-icon-2", "nodeId": "Layer_project-icon-2", "kind": "path", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/20", "mergeIndex": 20, "backgroundInput": "Merge_project-name-1", "foregroundInput": "Processed_project-icon-2", "output": "Merge_project-icon-2", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 24, "y": 460, "width": 26, "height": 26, "origin": [ 0, 0 ], "path": "M10 19H28L34 25H55V50H9ZM12 27V45H50V30H30L25 24H14Z", "viewBox": [ 0, 0, 64, 64 ], "fill": "$muted" }, "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": [ "Polygon/Bezier fill using exact path/viewBox", "Local Transform", "Over Merge" ] }, { "layerId": "project-name-2", "nodeId": "Layer_project-name-2", "kind": "text", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/21", "mergeIndex": 21, "backgroundInput": "Merge_project-icon-2", "foregroundInput": "Processed_project-name-2", "output": "Merge_project-name-2", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 56, "y": 458, "width": 344, "height": 30, "origin": [ 0, 0 ], "slot": "projectThree", "fontSize": 20, "lineHeight": 1.25, "weight": 400, "color": "$ink" }, "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": "weekend-review", "adaptation": "weekly-sketches" }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 20, "weight": 400, "lineHeightPixels": 25.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": "project-detail", "nodeId": "Layer_project-detail", "kind": "text", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/22", "mergeIndex": 22, "backgroundInput": "Merge_project-name-2", "foregroundInput": "Processed_project-detail", "output": "Merge_project-detail", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 56, "y": 362, "width": 348, "height": 28, "origin": [ 0, 0 ], "slot": "projectDetail", "fontSize": 17, "lineHeight": 1.25, "weight": 400, "color": "$ink" }, "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": "Choose the next shared task...", "adaptation": "Gather ideas for the next day..." }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 17, "weight": 400, "lineHeightPixels": 21.25, "letterSpacingPixels": 0, "fit": "No shrink or automatic wrapping. Text+ Size and baseline need actual installed-font calibration; the recipe pixel box is authoritative." } }, { "layerId": "threads-label", "nodeId": "Layer_threads-label", "kind": "text", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/23", "mergeIndex": 23, "backgroundInput": "Merge_project-detail", "foregroundInput": "Processed_threads-label", "output": "Merge_threads-label", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 24, "y": 526, "width": 340, "height": 30, "origin": [ 0, 0 ], "slot": "threadsLabel", "fontSize": 19, "lineHeight": 1.25, "weight": 400, "color": "$muted" }, "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": "Threads", "adaptation": "Drafts" }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 19, "weight": 400, "lineHeightPixels": 23.75, "letterSpacingPixels": 0, "fit": "No shrink or automatic wrapping. Text+ Size and baseline need actual installed-font calibration; the recipe pixel box is authoritative." } }, { "layerId": "empty-threads", "nodeId": "Layer_empty-threads", "kind": "text", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/24", "mergeIndex": 24, "backgroundInput": "Merge_threads-label", "foregroundInput": "Processed_empty-threads", "output": "Merge_empty-threads", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 24, "y": 572, "width": 340, "height": 30, "origin": [ 0, 0 ], "slot": "emptyThreads", "fontSize": 19, "lineHeight": 1.25, "weight": 400, "color": "$muted", "opacity": 0.65 }, "alphaAndMasks": { "opacity": 0.65, "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": 0.65 }, "tools": [ "Text+ in bundled Geist", "Set explicit newline layout", "Stepped StyledText or Write On gate when present", "Local Transform", "Over Merge" ], "content": { "defaults": "No threads", "adaptation": "No drafts" }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 19, "weight": 400, "lineHeightPixels": 23.75, "letterSpacingPixels": 0, "fit": "No shrink or automatic wrapping. Text+ Size and baseline need actual installed-font calibration; the recipe pixel box is authoritative." } }, { "layerId": "page-heading", "nodeId": "Layer_page-heading", "kind": "text", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/25", "mergeIndex": 25, "backgroundInput": "Merge_empty-threads", "foregroundInput": "Processed_page-heading", "output": "Merge_page-heading", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 810, "y": 326, "width": 860, "height": 66, "origin": [ 0, 0 ], "slot": "pageHeading", "fontSize": 40, "lineHeight": 1.25, "weight": 400, "color": "$ink" }, "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": "What would you like to make?", "adaptation": "What would you like to explore?" }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 40, "weight": 400, "lineHeightPixels": 50.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": "composer-shadow", "nodeId": "Layer_composer-shadow", "kind": "rect", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/26", "mergeIndex": 26, "backgroundInput": "Merge_page-heading", "foregroundInput": "Processed_composer-shadow", "output": "Merge_composer-shadow", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 512, "y": 444, "width": 1100, "height": 140, "origin": [ 0, 0 ], "fill": "#000000", "radius": 30, "blur": 14, "opacity": 0.06 }, "alphaAndMasks": { "opacity": 0.06, "radiusPixels": 30, "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": 0.06 }, "tools": [ "Background with Rectangle/Ellipse mask", "Inside-border ring if stroke is present", "Blur if present", "Local Transform", "Over Merge" ] }, { "layerId": "composer-plate", "nodeId": "Layer_composer-plate", "kind": "rect", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/27", "mergeIndex": 27, "backgroundInput": "Merge_composer-shadow", "foregroundInput": "Processed_composer-plate", "output": "Merge_composer-plate", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 512, "y": 432, "width": 1100, "height": 140, "origin": [ 0, 0 ], "fill": "#fdfdfb", "radius": 30, "stroke": "#e3e3de", "strokeWidth": 2 }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 30, "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": "composer-hint", "nodeId": "Layer_composer-hint", "kind": "text", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/28", "mergeIndex": 28, "backgroundInput": "Merge_composer-plate", "foregroundInput": "Processed_composer-hint", "output": "Merge_composer-hint", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 540, "y": 454, "width": 920, "height": 38, "origin": [ 0, 0 ], "slot": "composerHint", "fontSize": 22, "lineHeight": 1.25, "weight": 400, "color": "$muted", "opacity": 0.7 }, "alphaAndMasks": { "opacity": 0.7, "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": 0.7 }, "tools": [ "Text+ in bundled Geist", "Set explicit newline layout", "Stepped StyledText or Write On gate when present", "Local Transform", "Over Merge" ], "content": { "defaults": "Write a note or choose a project", "adaptation": "Start a draft or open a collection" }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 22, "weight": 400, "lineHeightPixels": 27.5, "letterSpacingPixels": 0, "fit": "No shrink or automatic wrapping. Text+ Size and baseline need actual installed-font calibration; the recipe pixel box is authoritative." } }, { "layerId": "composer-plus", "nodeId": "Layer_composer-plus", "kind": "path", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/29", "mergeIndex": 29, "backgroundInput": "Merge_composer-hint", "foregroundInput": "Processed_composer-plus", "output": "Merge_composer-plus", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 540, "y": 522, "width": 28, "height": 28, "origin": [ 0, 0 ], "path": "M29 9H35V29H55V35H35V55H29V35H9V29H29Z", "viewBox": [ 0, 0, 64, 64 ], "fill": "$muted" }, "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": [ "Polygon/Bezier fill using exact path/viewBox", "Local Transform", "Over Merge" ] }, { "layerId": "project-hint", "nodeId": "Layer_project-hint", "kind": "text", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/30", "mergeIndex": 30, "backgroundInput": "Merge_composer-plus", "foregroundInput": "Processed_project-hint", "output": "Merge_project-hint", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 548, "y": 592, "width": 760, "height": 38, "origin": [ 0, 0 ], "slot": "projectHint", "fontSize": 21, "lineHeight": 1.25, "weight": 400, "color": "$muted" }, "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": "Work in a project", "adaptation": "Choose a collection" }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 21, "weight": 400, "lineHeightPixels": 26.25, "letterSpacingPixels": 0, "fit": "No shrink or automatic wrapping. Text+ Size and baseline need actual installed-font calibration; the recipe pixel box is authoritative." } }, { "layerId": "suggestion-mark-0", "nodeId": "Layer_suggestion-mark-0", "kind": "rect", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/31", "mergeIndex": 31, "backgroundInput": "Merge_project-hint", "foregroundInput": "Processed_suggestion-mark-0", "output": "Merge_suggestion-mark-0", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 540, "y": 674, "width": 16, "height": 16, "origin": [ 0, 0 ], "fill": "$accent", "radius": 3, "opacity": 0.6 }, "alphaAndMasks": { "opacity": 0.6, "radiusPixels": 3, "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": 0.6 }, "tools": [ "Background with Rectangle/Ellipse mask", "Inside-border ring if stroke is present", "Blur if present", "Local Transform", "Over Merge" ] }, { "layerId": "suggestion-text-0", "nodeId": "Layer_suggestion-text-0", "kind": "text", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/32", "mergeIndex": 32, "backgroundInput": "Merge_suggestion-mark-0", "foregroundInput": "Processed_suggestion-text-0", "output": "Merge_suggestion-text-0", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 570, "y": 668, "width": 800, "height": 34, "origin": [ 0, 0 ], "slot": "suggestionOne", "fontSize": 19, "lineHeight": 1.25, "weight": 400, "color": "$muted" }, "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": "Plan a shared garden", "adaptation": "Prepare a studio session" }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 19, "weight": 400, "lineHeightPixels": 23.75, "letterSpacingPixels": 0, "fit": "No shrink or automatic wrapping. Text+ Size and baseline need actual installed-font calibration; the recipe pixel box is authoritative." } }, { "layerId": "suggestion-mark-1", "nodeId": "Layer_suggestion-mark-1", "kind": "rect", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/33", "mergeIndex": 33, "backgroundInput": "Merge_suggestion-text-0", "foregroundInput": "Processed_suggestion-mark-1", "output": "Merge_suggestion-mark-1", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 540, "y": 730, "width": 16, "height": 16, "origin": [ 0, 0 ], "fill": "$accent", "radius": 3, "opacity": 0.6 }, "alphaAndMasks": { "opacity": 0.6, "radiusPixels": 3, "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": 0.6 }, "tools": [ "Background with Rectangle/Ellipse mask", "Inside-border ring if stroke is present", "Blur if present", "Local Transform", "Over Merge" ] }, { "layerId": "suggestion-text-1", "nodeId": "Layer_suggestion-text-1", "kind": "text", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/34", "mergeIndex": 34, "backgroundInput": "Merge_suggestion-mark-1", "foregroundInput": "Processed_suggestion-text-1", "output": "Merge_suggestion-text-1", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 570, "y": 724, "width": 800, "height": 34, "origin": [ 0, 0 ], "slot": "suggestionTwo", "fontSize": 19, "lineHeight": 1.25, "weight": 400, "color": "$muted" }, "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": "Review a walking route", "adaptation": "Review a material sample" }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 19, "weight": 400, "lineHeightPixels": 23.75, "letterSpacingPixels": 0, "fit": "No shrink or automatic wrapping. Text+ Size and baseline need actual installed-font calibration; the recipe pixel box is authoritative." } }, { "layerId": "suggestion-mark-2", "nodeId": "Layer_suggestion-mark-2", "kind": "rect", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/35", "mergeIndex": 35, "backgroundInput": "Merge_suggestion-text-1", "foregroundInput": "Processed_suggestion-mark-2", "output": "Merge_suggestion-mark-2", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 540, "y": 786, "width": 16, "height": 16, "origin": [ 0, 0 ], "fill": "$accent", "radius": 3, "opacity": 0.6 }, "alphaAndMasks": { "opacity": 0.6, "radiusPixels": 3, "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": 0.6 }, "tools": [ "Background with Rectangle/Ellipse mask", "Inside-border ring if stroke is present", "Blur if present", "Local Transform", "Over Merge" ] }, { "layerId": "suggestion-text-2", "nodeId": "Layer_suggestion-text-2", "kind": "text", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/36", "mergeIndex": 36, "backgroundInput": "Merge_suggestion-mark-2", "foregroundInput": "Processed_suggestion-text-2", "output": "Merge_suggestion-text-2", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 570, "y": 780, "width": 800, "height": 34, "origin": [ 0, 0 ], "slot": "suggestionThree", "fontSize": 19, "lineHeight": 1.25, "weight": 400, "color": "$muted" }, "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": "Draft a short update", "adaptation": "Write a brief field note" }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 19, "weight": 400, "lineHeightPixels": 23.75, "letterSpacingPixels": 0, "fit": "No shrink or automatic wrapping. Text+ Size and baseline need actual installed-font calibration; the recipe pixel box is authoritative." } }, { "layerId": "suggestion-mark-3", "nodeId": "Layer_suggestion-mark-3", "kind": "rect", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/37", "mergeIndex": 37, "backgroundInput": "Merge_suggestion-text-2", "foregroundInput": "Processed_suggestion-mark-3", "output": "Merge_suggestion-mark-3", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 540, "y": 842, "width": 16, "height": 16, "origin": [ 0, 0 ], "fill": "$accent", "radius": 3, "opacity": 0.6 }, "alphaAndMasks": { "opacity": 0.6, "radiusPixels": 3, "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": 0.6 }, "tools": [ "Background with Rectangle/Ellipse mask", "Inside-border ring if stroke is present", "Blur if present", "Local Transform", "Over Merge" ] }, { "layerId": "suggestion-text-3", "nodeId": "Layer_suggestion-text-3", "kind": "text", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/38", "mergeIndex": 38, "backgroundInput": "Merge_suggestion-mark-3", "foregroundInput": "Processed_suggestion-text-3", "output": "Merge_suggestion-text-3", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": 570, "y": 836, "width": 800, "height": 34, "origin": [ 0, 0 ], "slot": "suggestionFour", "fontSize": 19, "lineHeight": 1.25, "weight": 400, "color": "$muted" }, "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": "Organize the next visit", "adaptation": "Organize the next workshop" }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 19, "weight": 400, "lineHeightPixels": 23.75, "letterSpacingPixels": 0, "fit": "No shrink or automatic wrapping. Text+ Size and baseline need actual installed-font calibration; the recipe pixel box is authoritative." } }, { "layerId": "pointer", "nodeId": "Layer_pointer", "kind": "path", "parentLayerId": "ui-camera", "recipePointer": "/layers/3/children/0/children/39", "mergeIndex": 39, "backgroundInput": "Merge_suggestion-text-3", "foregroundInput": "Processed_pointer", "output": "Merge_pointer", "activeLocalFrames": [ 0, 480 ], "effectiveActiveLocalFrames": [ 0, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 480, "x": [ { "frame": 0, "value": 145, "easing": "smooth" }, { "frame": 50, "value": 190, "easing": "smooth" }, { "frame": 80, "value": 368, "easing": "smooth" }, { "frame": 100, "value": 490, "easing": "smooth" }, { "frame": 120, "value": 526, "easing": "hold" }, { "frame": 479, "value": 526, "easing": "hold" } ], "y": [ { "frame": 0, "value": 65, "easing": "smooth" }, { "frame": 50, "value": 76, "easing": "smooth" }, { "frame": 80, "value": 120, "easing": "smooth" }, { "frame": 100, "value": 128, "easing": "smooth" }, { "frame": 120, "value": 169, "easing": "hold" }, { "frame": 479, "value": 169, "easing": "hold" } ], "width": 26, "height": 34, "origin": [ 0, 0 ], "path": "M6 3L8 48L20 37L29 57L38 53L29 33L45 33Z", "viewBox": [ 0, 0, 64, 64 ], "fill": "#161b1e", "stroke": "#ffffff", "strokeWidth": 2 }, "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": [ "Polygon/Bezier fill using exact path/viewBox", "Local Transform", "Over Merge" ] }, { "layerId": "navigation-callout", "nodeId": "Layer_navigation-callout", "kind": "rect", "parentLayerId": "window-clip", "recipePointer": "/layers/3/children/1", "mergeIndex": 1, "backgroundInput": "Merge_ui-camera", "foregroundInput": "Processed_navigation-callout", "output": "Merge_navigation-callout", "activeLocalFrames": [ 130, 321 ], "effectiveActiveLocalFrames": [ 130, 321 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 130, "end": 321, "x": 0, "y": 76, "width": 556, "height": 284, "origin": [ 0, 0 ], "fill": "transparent", "radius": 10, "stroke": "#151515", "strokeWidth": 14, "clip": { "top": 0, "right": [ { "frame": 130, "value": 550, "easing": "linear" }, { "frame": 140, "value": 0, "easing": "hold" }, { "frame": 320, "value": 0, "easing": "hold" } ], "bottom": 0, "left": [ { "frame": 130, "value": 0, "easing": "hold" }, { "frame": 308, "value": 0, "easing": "linear" }, { "frame": 321, "value": 556, "easing": "hold" } ] } }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 10, "overflow": "visible", "clip": { "top": 0, "right": [ { "frame": 130, "value": 550, "easing": "linear" }, { "frame": 140, "value": 0, "easing": "hold" }, { "frame": 320, "value": 0, "easing": "hold" } ], "bottom": 0, "left": [ { "frame": 130, "value": 0, "easing": "hold" }, { "frame": 308, "value": 0, "easing": "linear" }, { "frame": 321, "value": 556, "easing": "hold" } ] }, "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": "projects-callout", "nodeId": "Layer_projects-callout", "kind": "rect", "parentLayerId": "window-clip", "recipePointer": "/layers/3/children/2", "mergeIndex": 2, "backgroundInput": "Merge_navigation-callout", "foregroundInput": "Processed_projects-callout", "output": "Merge_projects-callout", "activeLocalFrames": [ 308, 480 ], "effectiveActiveLocalFrames": [ 308, 480 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 308, "end": 480, "x": 0, "y": 380, "width": 636, "height": 388, "origin": [ 0, 0 ], "fill": "transparent", "radius": 10, "stroke": "#151515", "strokeWidth": 14, "clip": { "top": 0, "right": [ { "frame": 308, "value": 630, "easing": "linear" }, { "frame": 323, "value": 0, "easing": "hold" }, { "frame": 479, "value": 0, "easing": "hold" } ], "bottom": 0, "left": 0 } }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 10, "overflow": "visible", "clip": { "top": 0, "right": [ { "frame": 308, "value": 630, "easing": "linear" }, { "frame": 323, "value": 0, "easing": "hold" }, { "frame": 479, "value": 0, "easing": "hold" } ], "bottom": 0, "left": 0 }, "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" ] } ] svgConstruction { "art/sidebar-editorial-callouts/context-default.svg": { "sha256": "f5a162d609e5a9347c17d287903759a7c3f32394c76d3bc721b884517a75e270", "construction": { "element": "svg", "attributes": { "width": "1920", "height": "1080", "viewBox": "0 0 1920 1080" }, "children": [ { "element": "defs", "attributes": {}, "children": [ { "element": "linearGradient", "attributes": { "id": "base", "x1": "0", "y1": "0", "x2": "1", "y2": "1" }, "children": [ { "element": "stop", "attributes": { "offset": "0", "stop-color": "#1556aa" }, "children": [] }, { "element": "stop", "attributes": { "offset": "1", "stop-color": "#2b36a0" }, "children": [] } ] }, { "element": "radialGradient", "attributes": { "id": "wash" }, "children": [ { "element": "stop", "attributes": { "offset": "0", "stop-color": "#778cca", "stop-opacity": "0.85" }, "children": [] }, { "element": "stop", "attributes": { "offset": "1", "stop-color": "#778cca", "stop-opacity": "0" }, "children": [] } ] } ] }, { "element": "rect", "attributes": { "width": "1920", "height": "1080", "fill": "url(#base)" }, "children": [] }, { "element": "ellipse", "attributes": { "cx": "320", "cy": "400", "rx": "570", "ry": "680", "fill": "url(#wash)" }, "children": [] }, { "element": "ellipse", "attributes": { "cx": "1660", "cy": "620", "rx": "460", "ry": "820", "fill": "url(#wash)" }, "children": [] }, { "element": "path", "attributes": { "d": "M1210 -80C1070 140 1130 350 1420 470C1720 590 1530 880 1630 1160L1810 1160C1660 920 1880 650 1560 470C1310 330 1320 120 1430 -80Z", "fill": "#6674cb", "opacity": "0.16" }, "children": [] }, { "element": "path", "attributes": { "d": "M-100 910C200 620 270 860 530 750C840 620 800 930 1030 1120H-100Z", "fill": "#778cca", "opacity": "0.12" }, "children": [] } ] }, "authorship": "Original parameterized SVG; no image source, trace or conversion.", "nativeRebuild": "Use each explicit SVG element as a separate filled/masked vector node. Gradient coordinates without units are objectBoundingBox; x right, y down. Carry stop-opacity through alpha, not a solid-color approximation." }, "art/sidebar-editorial-callouts/lights-default.svg": { "sha256": "a7eeb1450bb14bf9ff28d63e5eff80a62deb99f684d1aa02e62cf9562b56b292", "construction": { "element": "svg", "attributes": { "width": "1920", "height": "1080", "viewBox": "0 0 1920 1080" }, "children": [ { "element": "defs", "attributes": {}, "children": [ { "element": "radialGradient", "attributes": { "id": "glow" }, "children": [ { "element": "stop", "attributes": { "offset": "0", "stop-color": "#b9c8e4", "stop-opacity": "0.72" }, "children": [] }, { "element": "stop", "attributes": { "offset": "0.35", "stop-color": "#b9c8e4", "stop-opacity": "0.3" }, "children": [] }, { "element": "stop", "attributes": { "offset": "1", "stop-color": "#b9c8e4", "stop-opacity": "0" }, "children": [] } ] }, { "element": "radialGradient", "attributes": { "id": "cool" }, "children": [ { "element": "stop", "attributes": { "offset": "0", "stop-color": "#6674cb", "stop-opacity": "0.65" }, "children": [] }, { "element": "stop", "attributes": { "offset": "1", "stop-color": "#6674cb", "stop-opacity": "0" }, "children": [] } ] } ] }, { "element": "ellipse", "attributes": { "cx": "190", "cy": "230", "rx": "310", "ry": "570", "fill": "url(#glow)" }, "children": [] }, { "element": "ellipse", "attributes": { "cx": "1720", "cy": "730", "rx": "240", "ry": "670", "fill": "url(#glow)" }, "children": [] }, { "element": "ellipse", "attributes": { "cx": "1290", "cy": "100", "rx": "540", "ry": "220", "fill": "url(#cool)" }, "children": [] }, { "element": "ellipse", "attributes": { "cx": "690", "cy": "1060", "rx": "610", "ry": "290", "fill": "url(#cool)" }, "children": [] } ] }, "authorship": "Original parameterized SVG; no image source, trace or conversion.", "nativeRebuild": "Use each explicit SVG element as a separate filled/masked vector node. Gradient coordinates without units are objectBoundingBox; x right, y down. Carry stop-opacity through alpha, not a solid-color approximation." }, "art/sidebar-editorial-callouts/context-adaptation.svg": { "sha256": "8e77dbaffe9e5973e6846bde253e3686a656c9b8d772384b5c5e74ee5ceca400", "construction": { "element": "svg", "attributes": { "width": "1920", "height": "1080", "viewBox": "0 0 1920 1080" }, "children": [ { "element": "defs", "attributes": {}, "children": [ { "element": "linearGradient", "attributes": { "id": "base", "x1": "0", "y1": "0", "x2": "1", "y2": "1" }, "children": [ { "element": "stop", "attributes": { "offset": "0", "stop-color": "#455794" }, "children": [] }, { "element": "stop", "attributes": { "offset": "1", "stop-color": "#675087" }, "children": [] } ] }, { "element": "radialGradient", "attributes": { "id": "wash" }, "children": [ { "element": "stop", "attributes": { "offset": "0", "stop-color": "#aaa0be", "stop-opacity": "0.85" }, "children": [] }, { "element": "stop", "attributes": { "offset": "1", "stop-color": "#aaa0be", "stop-opacity": "0" }, "children": [] } ] } ] }, { "element": "rect", "attributes": { "width": "1920", "height": "1080", "fill": "url(#base)" }, "children": [] }, { "element": "ellipse", "attributes": { "cx": "320", "cy": "400", "rx": "570", "ry": "680", "fill": "url(#wash)" }, "children": [] }, { "element": "ellipse", "attributes": { "cx": "1660", "cy": "620", "rx": "460", "ry": "820", "fill": "url(#wash)" }, "children": [] }, { "element": "path", "attributes": { "d": "M1210 -80C1070 140 1130 350 1420 470C1720 590 1530 880 1630 1160L1810 1160C1660 920 1880 650 1560 470C1310 330 1320 120 1430 -80Z", "fill": "#b48eac", "opacity": "0.16" }, "children": [] }, { "element": "path", "attributes": { "d": "M-100 910C200 620 270 860 530 750C840 620 800 930 1030 1120H-100Z", "fill": "#aaa0be", "opacity": "0.12" }, "children": [] } ] }, "authorship": "Original parameterized SVG; no image source, trace or conversion.", "nativeRebuild": "Use each explicit SVG element as a separate filled/masked vector node. Gradient coordinates without units are objectBoundingBox; x right, y down. Carry stop-opacity through alpha, not a solid-color approximation." }, "art/sidebar-editorial-callouts/lights-adaptation.svg": { "sha256": "cc9d9b5f3ed59076714d0c144a759354fdf025ac88ec40112f2d4b269dafdf14", "construction": { "element": "svg", "attributes": { "width": "1920", "height": "1080", "viewBox": "0 0 1920 1080" }, "children": [ { "element": "defs", "attributes": {}, "children": [ { "element": "radialGradient", "attributes": { "id": "glow" }, "children": [ { "element": "stop", "attributes": { "offset": "0", "stop-color": "#ded1da", "stop-opacity": "0.72" }, "children": [] }, { "element": "stop", "attributes": { "offset": "0.35", "stop-color": "#ded1da", "stop-opacity": "0.3" }, "children": [] }, { "element": "stop", "attributes": { "offset": "1", "stop-color": "#ded1da", "stop-opacity": "0" }, "children": [] } ] }, { "element": "radialGradient", "attributes": { "id": "cool" }, "children": [ { "element": "stop", "attributes": { "offset": "0", "stop-color": "#b48eac", "stop-opacity": "0.65" }, "children": [] }, { "element": "stop", "attributes": { "offset": "1", "stop-color": "#b48eac", "stop-opacity": "0" }, "children": [] } ] } ] }, { "element": "ellipse", "attributes": { "cx": "190", "cy": "230", "rx": "310", "ry": "570", "fill": "url(#glow)" }, "children": [] }, { "element": "ellipse", "attributes": { "cx": "1720", "cy": "730", "rx": "240", "ry": "670", "fill": "url(#glow)" }, "children": [] }, { "element": "ellipse", "attributes": { "cx": "1290", "cy": "100", "rx": "540", "ry": "220", "fill": "url(#cool)" }, "children": [] }, { "element": "ellipse", "attributes": { "cx": "690", "cy": "1060", "rx": "610", "ry": "290", "fill": "url(#cool)" }, "children": [] } ] }, "authorship": "Original parameterized SVG; no image source, trace or conversion.", "nativeRebuild": "Use each explicit SVG element as a separate filled/masked vector node. Gradient coordinates without units are objectBoundingBox; x right, y down. Carry stop-opacity through alpha, not a solid-color approximation." } } tracks [ { "layerId": "context-field", "property": "x", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-field", "property": "y", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-field", "property": "width", "value": 1920, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "context-field", "property": "height", "value": 1080, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "light-field", "property": "x", "value": [ { "frame": 0, "value": -64, "easing": "smooth" }, { "frame": 479, "value": -24, "easing": "hold" } ], "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "light-field", "property": "y", "value": [ { "frame": 0, "value": -36, "easing": "smooth" }, { "frame": 479, "value": -12, "easing": "hold" } ], "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "light-field", "property": "width", "value": 2048, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "light-field", "property": "height", "value": 1152, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "light-field", "property": "opacity", "value": 0.72, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "window-shadow", "property": "x", "value": 212, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "window-shadow", "property": "y", "value": 78, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "window-shadow", "property": "width", "value": 1496, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "window-shadow", "property": "height", "value": 968, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "window-shadow", "property": "opacity", "value": 0.22, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "window-shadow", "property": "radius", "value": 16, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "window-shadow", "property": "blur", "value": 32, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "window-clip", "property": "x", "value": 212, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "window-clip", "property": "y", "value": 56, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "window-clip", "property": "width", "value": 1496, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "window-clip", "property": "height", "value": 968, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "window-clip", "property": "radius", "value": 12, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "ui-camera", "property": "x", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "ui-camera", "property": "y", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "ui-camera", "property": "width", "value": 1496, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "ui-camera", "property": "height", "value": 968, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "ui-camera", "property": "scale", "value": [ { "frame": 0, "value": 1, "easing": "smooth" }, { "frame": 40, "value": 1.485, "easing": "smooth" }, { "frame": 50, "value": 1.5, "easing": "hold" }, { "frame": 479, "value": 1.5, "easing": "hold" } ], "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "sidebar-paper", "property": "x", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "sidebar-paper", "property": "y", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "sidebar-paper", "property": "width", "value": 424, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "sidebar-paper", "property": "height", "value": 968, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "main-paper", "property": "x", "value": 424, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "main-paper", "property": "y", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "main-paper", "property": "width", "value": 1496, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "main-paper", "property": "height", "value": 968, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "sidebar-divider", "property": "x", "value": 423, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "sidebar-divider", "property": "y", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "sidebar-divider", "property": "width", "value": 1, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "sidebar-divider", "property": "height", "value": 968, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "window-toggle", "property": "x", "value": 130, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "window-toggle", "property": "y", "value": 14, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "window-toggle", "property": "width", "value": 18, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "window-toggle", "property": "height", "value": 16, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "window-toggle", "property": "radius", "value": 3, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "back-control", "property": "x", "value": 168, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "back-control", "property": "y", "value": 12, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "back-control", "property": "width", "value": 22, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "back-control", "property": "height", "value": 22, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "forward-control", "property": "x", "value": 212, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "forward-control", "property": "y", "value": 12, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "forward-control", "property": "width", "value": 22, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "forward-control", "property": "height", "value": 22, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "forward-control", "property": "opacity", "value": 0.42, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "hover-strip", "property": "x", "value": 16, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "hover-strip", "property": "y", "value": [ { "frame": 0, "value": 54, "easing": "hold" }, { "frame": 74, "value": 98, "easing": "hold" }, { "frame": 86, "value": 142, "easing": "hold" }, { "frame": 97, "value": 142, "easing": "hold" } ], "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "hover-strip", "property": "width", "value": 392, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "hover-strip", "property": "height", "value": 42, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "hover-strip", "property": "opacity", "value": 0.035, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "hover-strip", "property": "radius", "value": 12, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-icon-0", "property": "x", "value": 24, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-icon-0", "property": "y", "value": 67, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-icon-0", "property": "width", "value": 24, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-icon-0", "property": "height", "value": 24, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-label-0", "property": "x", "value": 56, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-label-0", "property": "y", "value": 64, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-label-0", "property": "width", "value": 344, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-label-0", "property": "height", "value": 30, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-icon-1", "property": "x", "value": 24, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-icon-1", "property": "y", "value": 111, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-icon-1", "property": "width", "value": 24, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-icon-1", "property": "height", "value": 24, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-label-1", "property": "x", "value": 56, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-label-1", "property": "y", "value": 108, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-label-1", "property": "width", "value": 344, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-label-1", "property": "height", "value": 30, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-icon-2", "property": "x", "value": 24, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-icon-2", "property": "y", "value": 155, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-icon-2", "property": "width", "value": 24, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-icon-2", "property": "height", "value": 24, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-label-2", "property": "x", "value": 56, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-label-2", "property": "y", "value": 152, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-label-2", "property": "width", "value": 344, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-label-2", "property": "height", "value": 30, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-icon-3", "property": "x", "value": 24, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-icon-3", "property": "y", "value": 199, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-icon-3", "property": "width", "value": 24, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-icon-3", "property": "height", "value": 24, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-label-3", "property": "x", "value": 56, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-label-3", "property": "y", "value": 196, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-label-3", "property": "width", "value": 344, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "nav-label-3", "property": "height", "value": 30, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-label", "property": "x", "value": 24, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-label", "property": "y", "value": 266, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-label", "property": "width", "value": 348, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-label", "property": "height", "value": 30, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-icon-0", "property": "x", "value": 24, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-icon-0", "property": "y", "value": 316, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-icon-0", "property": "width", "value": 26, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-icon-0", "property": "height", "value": 26, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-name-0", "property": "x", "value": 56, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-name-0", "property": "y", "value": 314, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-name-0", "property": "width", "value": 344, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-name-0", "property": "height", "value": 30, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-icon-1", "property": "x", "value": 24, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-icon-1", "property": "y", "value": 416, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-icon-1", "property": "width", "value": 26, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-icon-1", "property": "height", "value": 26, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-name-1", "property": "x", "value": 56, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-name-1", "property": "y", "value": 414, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-name-1", "property": "width", "value": 344, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-name-1", "property": "height", "value": 30, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-icon-2", "property": "x", "value": 24, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-icon-2", "property": "y", "value": 460, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-icon-2", "property": "width", "value": 26, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-icon-2", "property": "height", "value": 26, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-name-2", "property": "x", "value": 56, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-name-2", "property": "y", "value": 458, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-name-2", "property": "width", "value": 344, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-name-2", "property": "height", "value": 30, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-detail", "property": "x", "value": 56, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-detail", "property": "y", "value": 362, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-detail", "property": "width", "value": 348, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-detail", "property": "height", "value": 28, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "threads-label", "property": "x", "value": 24, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "threads-label", "property": "y", "value": 526, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "threads-label", "property": "width", "value": 340, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "threads-label", "property": "height", "value": 30, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "empty-threads", "property": "x", "value": 24, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "empty-threads", "property": "y", "value": 572, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "empty-threads", "property": "width", "value": 340, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "empty-threads", "property": "height", "value": 30, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "empty-threads", "property": "opacity", "value": 0.65, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "page-heading", "property": "x", "value": 810, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "page-heading", "property": "y", "value": 326, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "page-heading", "property": "width", "value": 860, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "page-heading", "property": "height", "value": 66, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "composer-shadow", "property": "x", "value": 512, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "composer-shadow", "property": "y", "value": 444, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "composer-shadow", "property": "width", "value": 1100, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "composer-shadow", "property": "height", "value": 140, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "composer-shadow", "property": "opacity", "value": 0.06, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "composer-shadow", "property": "radius", "value": 30, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "composer-shadow", "property": "blur", "value": 14, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "composer-plate", "property": "x", "value": 512, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "composer-plate", "property": "y", "value": 432, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "composer-plate", "property": "width", "value": 1100, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "composer-plate", "property": "height", "value": 140, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "composer-plate", "property": "radius", "value": 30, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "composer-hint", "property": "x", "value": 540, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "composer-hint", "property": "y", "value": 454, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "composer-hint", "property": "width", "value": 920, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "composer-hint", "property": "height", "value": 38, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "composer-hint", "property": "opacity", "value": 0.7, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "composer-plus", "property": "x", "value": 540, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "composer-plus", "property": "y", "value": 522, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "composer-plus", "property": "width", "value": 28, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "composer-plus", "property": "height", "value": 28, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-hint", "property": "x", "value": 548, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-hint", "property": "y", "value": 592, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-hint", "property": "width", "value": 760, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "project-hint", "property": "height", "value": 38, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-mark-0", "property": "x", "value": 540, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-mark-0", "property": "y", "value": 674, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-mark-0", "property": "width", "value": 16, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-mark-0", "property": "height", "value": 16, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-mark-0", "property": "opacity", "value": 0.6, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-mark-0", "property": "radius", "value": 3, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-text-0", "property": "x", "value": 570, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-text-0", "property": "y", "value": 668, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-text-0", "property": "width", "value": 800, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-text-0", "property": "height", "value": 34, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-mark-1", "property": "x", "value": 540, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-mark-1", "property": "y", "value": 730, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-mark-1", "property": "width", "value": 16, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-mark-1", "property": "height", "value": 16, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-mark-1", "property": "opacity", "value": 0.6, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-mark-1", "property": "radius", "value": 3, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-text-1", "property": "x", "value": 570, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-text-1", "property": "y", "value": 724, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-text-1", "property": "width", "value": 800, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-text-1", "property": "height", "value": 34, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-mark-2", "property": "x", "value": 540, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-mark-2", "property": "y", "value": 786, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-mark-2", "property": "width", "value": 16, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-mark-2", "property": "height", "value": 16, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-mark-2", "property": "opacity", "value": 0.6, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-mark-2", "property": "radius", "value": 3, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-text-2", "property": "x", "value": 570, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-text-2", "property": "y", "value": 780, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-text-2", "property": "width", "value": 800, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-text-2", "property": "height", "value": 34, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-mark-3", "property": "x", "value": 540, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-mark-3", "property": "y", "value": 842, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-mark-3", "property": "width", "value": 16, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-mark-3", "property": "height", "value": 16, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-mark-3", "property": "opacity", "value": 0.6, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-mark-3", "property": "radius", "value": 3, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-text-3", "property": "x", "value": 570, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-text-3", "property": "y", "value": 836, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-text-3", "property": "width", "value": 800, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "suggestion-text-3", "property": "height", "value": 34, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "pointer", "property": "x", "value": [ { "frame": 0, "value": 145, "easing": "smooth" }, { "frame": 50, "value": 190, "easing": "smooth" }, { "frame": 80, "value": 368, "easing": "smooth" }, { "frame": 100, "value": 490, "easing": "smooth" }, { "frame": 120, "value": 526, "easing": "hold" }, { "frame": 479, "value": 526, "easing": "hold" } ], "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "pointer", "property": "y", "value": [ { "frame": 0, "value": 65, "easing": "smooth" }, { "frame": 50, "value": 76, "easing": "smooth" }, { "frame": 80, "value": 120, "easing": "smooth" }, { "frame": 100, "value": 128, "easing": "smooth" }, { "frame": 120, "value": 169, "easing": "hold" }, { "frame": 479, "value": 169, "easing": "hold" } ], "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "pointer", "property": "width", "value": 26, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "pointer", "property": "height", "value": 34, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "navigation-callout", "property": "x", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "navigation-callout", "property": "y", "value": 76, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "navigation-callout", "property": "width", "value": 556, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "navigation-callout", "property": "height", "value": 284, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "navigation-callout", "property": "radius", "value": 10, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "navigation-callout", "property": "clip.top", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "navigation-callout", "property": "clip.right", "value": [ { "frame": 130, "value": 550, "easing": "linear" }, { "frame": 140, "value": 0, "easing": "hold" }, { "frame": 320, "value": 0, "easing": "hold" } ], "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "navigation-callout", "property": "clip.bottom", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "navigation-callout", "property": "clip.left", "value": [ { "frame": 130, "value": 0, "easing": "hold" }, { "frame": 308, "value": 0, "easing": "linear" }, { "frame": 321, "value": 556, "easing": "hold" } ], "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "projects-callout", "property": "x", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "projects-callout", "property": "y", "value": 380, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "projects-callout", "property": "width", "value": 636, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "projects-callout", "property": "height", "value": 388, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "projects-callout", "property": "radius", "value": 10, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "projects-callout", "property": "clip.top", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "projects-callout", "property": "clip.right", "value": [ { "frame": 308, "value": 630, "easing": "linear" }, { "frame": 323, "value": 0, "easing": "hold" }, { "frame": 479, "value": 0, "easing": "hold" } ], "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "projects-callout", "property": "clip.bottom", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." }, { "layerId": "projects-callout", "property": "clip.left", "value": 0, "basis": "Chosen implementation control; source observations and exact half-open interval are documented separately." } ] steps [ "Start in the downloaded kit root. Unpack core-publication-v08.zip and then active-assets.zip with overwrite enabled. Both use project/... member paths; no legacy asset archive, private preparation script or inspection file is required.", "Verify the selected recipe and both variants of every active SVG using unchanged handoff.py, and export its native-frame controls.csv before editing. Local frame zero is the queued source start, not absolute source frame zero.", "Keep all UI components as native rectangles, paths and text. Build the supplied SVG materials from their exact element/gradient tree when reproducing them in Fusion. Never use a source screenshot, footage, embedded bitmap or rasterized whole-interface substitute.", "Make a1920x1080 square-pixel Fusion composition at60fps, range0..lastIncludedFrame. Use one global frame clock for every child; parent gates intersect child gates but do not rebase keyframe time.", "Build groups on transparent RGBA working domains, merge their children in listed order, intersect local rounded/inset masks, then apply the parent transform and opacity once. Mask the composite, not just the Transform effect.", "Set bundled Geist with explicit line breaks, listed weight, pixel size, line height and box width. No automatic shrink/wrap is supported. Calibrate Text+ size/baseline with the installed font and test both complete contents before accepting an output.", "Create context-field at0,0,1920,1080. Above it put light-field at2048x1152, alpha0.72; move(-64,-36) at0 to(-24,-12) at479 with smoothstep. Keep these behind the app and outside its camera. SVG gradient stops supply alpha; no black backing or Screen blend.", "Add window-shadow at(212,78,1496,968), radius16, alpha0.22, CSS blur32px. Above it create window-clip=(212,56,1496,968), radius12, overflow hidden. It is fixed for all480frames. Fusion Gaussian size is not numerically interchangeable with CSS blur.", "Inside window-clip, ui-camera uses top-left origin(0,0), x0,y0; scale1 at0,1.485 at40,1.5 at50, held through479. Each of the first two segments is smoothstep. Its subtree contains all UI labels, sidebar/main paper, icons, hover strip, composer and pointer. Keep the editorial rectangles outside this subtree.", "For a full1920x1080 transparent transform domain and centered Fusion Pivot(.5,.5), ui-camera Center is(scale/2,1-scale/2), Size=scale. At the final1.5 scale use Center(.75,.25), not(.5,.5). The outer translation is separately212px,56px with Size1. Changing Size with a centered default pivot would move the wrong target.", "Sidebar local width424; navigation labels begin(56,64+44*i), font20,line25, i0..3. Project label is(24,266), font19; project names begin(56,314/414/458),font20; detail at(56,362),font17. Main heading starts(810,326),font40; composer plate=(512,432,1100,140),radius30. All remaining exact nodes and paths are in fusionNodes; the fixed outer clip intentionally crops the right-hand page after the push.", "Keep hover-strip alpha0.035 on[0,98), its top y54 on[0,74),98 on[74,86),142 on[86,98). All changes are held, not eased. Pointer follows the independent chosen x/y tracks in guide.json and rests from120. This illustrative hover is not the editorial callout and does not navigate.", "Create navigation-callout as a transparent inside-border rectangle at(0,76,556,284) in window coordinates, radius10, stroke14px,#151515, gate[130,321). Subtract the inset rounded rectangle from the outer one to form the ring. Local clip.right is550 at130,0 at140 then held. Clip.left is0 through308,556 at321. Wipes are linear; no retiming, opacity fade or box translation.", "Create projects-callout separately at(0,380,636,388), radius10,14px inside border, gate[308,480). Clip.right=630 at308,0 at323 then held; other insets zero. Merge it after the upper ring. The two branches overlap during[308,321); this is a rightward draw/wipe handoff, not a morph between rectangle bounds.", "In Fusion, implement each wipe as a rectangular alpha intersection in the ring local domain: visible bounds(leftInset,topInset,width-leftInset-rightInset,height-topInset-bottomInset). Width0 gives no pixels. Do not stretch the outline to imitate a reveal; stroke thickness and target positions must remain fixed.", "Hold the lower projects callout through479. Do not add an outgoing fade, expand the source interval, select a real project or call the entire image frozen while the original vector light field still drifts." ] checkpoints [ { "localFrame": 0, "sourceFrame": 2640, "expectation": "Outer clip fixed; UI scale1; hover at54; no callout." }, { "localFrame": 20, "sourceFrame": 2660, "expectation": "Internal push only; outer bounds unchanged." }, { "localFrame": 40, "sourceFrame": 2680, "expectation": "UI scale1.485." }, { "localFrame": 50, "sourceFrame": 2690, "expectation": "UI scale1.5 final pose." }, { "localFrame": 73, "sourceFrame": 2713, "expectation": "Last upper-row hover frame." }, { "localFrame": 74, "sourceFrame": 2714, "expectation": "Hover jumps to98." }, { "localFrame": 80, "sourceFrame": 2720, "expectation": "Hover at98; pointer still moving." }, { "localFrame": 85, "sourceFrame": 2725, "expectation": "Last second-row hover frame." }, { "localFrame": 86, "sourceFrame": 2726, "expectation": "Hover jumps to142." }, { "localFrame": 97, "sourceFrame": 2737, "expectation": "Last hover-strip frame." }, { "localFrame": 98, "sourceFrame": 2738, "expectation": "Hover off; app has not navigated." }, { "localFrame": 120, "sourceFrame": 2760, "expectation": "Pointer reaches its held pose; no callout yet." }, { "localFrame": 129, "sourceFrame": 2769, "expectation": "No editorial ring." }, { "localFrame": 130, "sourceFrame": 2770, "expectation": "Navigation ring begins with6px of revealed width." }, { "localFrame": 140, "sourceFrame": 2780, "expectation": "Navigation ring fully exposed; transparent interior." }, { "localFrame": 240, "sourceFrame": 2880, "expectation": "Navigation ring holds." }, { "localFrame": 307, "sourceFrame": 2947, "expectation": "Only upper ring." }, { "localFrame": 308, "sourceFrame": 2948, "expectation": "Lower ring starts; upper left wipe starts." }, { "localFrame": 312, "sourceFrame": 2952, "expectation": "Both fixed-position ring branches active with different insets." }, { "localFrame": 320, "sourceFrame": 2960, "expectation": "Last active upper-ring frame; lower ring nearly complete." }, { "localFrame": 321, "sourceFrame": 2961, "expectation": "Upper ring gate closes, lower draw continues." }, { "localFrame": 323, "sourceFrame": 2963, "expectation": "Lower ring complete." }, { "localFrame": 360, "sourceFrame": 3000, "expectation": "Lower ring held." }, { "localFrame": 420, "sourceFrame": 3060, "expectation": "Lower ring held; field drift continues." }, { "localFrame": 479, "sourceFrame": 3119, "expectation": "Last included frame; no fade. Exclusive end480." } ] implementationDifferences [ "All labels, project names, icon geometry, palettes and SVG light fields are original illustrative content. The source product is not recreated or claimed as functioning software.", "Source observations: fixed window with initial internal push; upper callout near130..140; overlapping lower draw/upper wipe near308..323; lower hold to479. These estimates come from retained static frames, not film-production settings.", "Chosen implementation:1920x1080; window(212,56,1496,968); UI scale1→1.485@40→1.5@50;14px inside borders; linear horizontal inset wipes; original pointer path and hover gates. No camera fitting or exact alpha equivalence is claimed.", "Two fixed-coordinate callouts are siblings of ui-camera inside window-clip, not children of its scale. This makes editorial emphasis independent of simulated pointer feedback.", "Default garden notes and adaptation studio notes share the same timing, geometry and line limits; palette and code-generated light assets differ. They are two contents of one kit, not two new examples." ] limitations [ "Original vector backdrop and chosen push/edge-wipe controls will not reproduce the source's moving light field, exact rounded stroke rasterization, pointer path or native UI metrics.", "No output render/encode, npm dependency installation, moving-source review, audio assessment, blind test or native Resolve execution was performed by this builder.", "Full native source masters were unavailable. Retained excerpts have960x540 pixels; 1920x1080 source dimensions and master hashes are inherited queue metadata.", "All historical source-quality status remains unresolved. Mechanical readiness does not approve material, typography, motion, source fidelity or production use.", "The core includes a licensed Geist font. This is SVG/code-only active imagery, not an assertion that the entire runtime contains no binary files.", "Only selected recipe and active SVG files belong in the overlay. No old asset pack, source master, private worker, dependency tree or critic output belongs in it.", "Text fit requires the actual loaded browser font; field length caps and numeric tracks alone cannot establish readability.", "Both content variants demonstrate one treatment, not two new examples. No shared counts, catalog entries or publication state are modified." ]