Layout tree (as in design/layout.json)
{
"pattern": "hero.video-split",
"kind": "hero",
"grid": {
"copy": "1-6",
"video": "8-11",
"caption": "8-11"
},
"slots": [
"eyebrow",
"headline",
"subhead",
"items[3..4]",
"cta",
"heroImage",
"caption"
],
"notes": "The chapter rows seek the video to their timestamp on click. Video muted, looping, playsinline with a poster; pause control on the frame. Reduced motion: poster + play button.",
"tree": {
"el": "grid",
"gap": 4,
"align": "center",
"minVh": 0.9,
"children": [
{
"el": "box",
"span": "1-6",
"rowSpan": "1-2",
"gap": 4,
"children": [
{
"el": "text",
"color": "textMuted",
"slot": "eyebrow",
"role": "eyebrow"
},
{
"el": "text",
"slot": "headline",
"role": "h1",
"step": 6,
"leading": "tight",
"maxCh": 14
},
{
"el": "text",
"slot": "subhead",
"role": "lead",
"maxCh": 34
},
{
"el": "repeat",
"slot": "items",
"min": 3,
"max": 4,
"layout": "list",
"gap": 2,
"divider": true,
"of": {
"el": "box",
"mobile": "keep",
"dir": "row",
"gap": 3,
"align": "baseline",
"children": [
{
"el": "text",
"color": "textMuted",
"slot": "number",
"role": "label",
"font": "mono"
},
{
"el": "text",
"slot": "title",
"role": "body"
}
]
}
},
{
"el": "button",
"slot": "cta",
"variant": "primary",
"arrow": true
}
]
},
{
"el": "media",
"span": "8-11",
"rowSpan": "1-1",
"mobile": "reverse",
"slot": "heroImage",
"aspect": "9/16",
"treatment": "video",
"frame": "rounded"
},
{
"el": "text",
"span": "8-11",
"rowSpan": "2-2",
"mobile": "hide",
"color": "textMuted",
"slot": "caption",
"role": "small"
}
]
}
}