Layout tree (as in design/layout.json)
{
"pattern": "hero.video-fullscreen",
"kind": "hero",
"grid": {
"video": "full",
"pause": "11-12",
"headline": "1-8",
"cta": "10-12"
},
"slots": [
"heroImage",
"cta2",
"headline",
"cta"
],
"notes": "Video: <video autoplay muted loop playsinline preload=\"metadata\" poster=...>, ≤ 6 MB, 8–15 s loop, no sound. A visible Pause button is required (WCAG 2.2.2). Under prefers-reduced-motion show the poster frame and do not autoplay. Lazy-load the source after first paint.",
"bleed": true,
"tree": {
"el": "grid",
"gap": 0,
"minVh": 1,
"children": [
{
"el": "media",
"span": "full",
"rowSpan": "1-2",
"slot": "heroImage",
"treatment": "video",
"fill": true
},
{
"el": "button",
"span": "11-12",
"rowSpan": "1-1",
"alignSelf": "start",
"slot": "cta2",
"variant": "secondary",
"size": "sm"
},
{
"el": "grid",
"span": "full",
"rowSpan": "2-2",
"bg": "accent",
"alignSelf": "end",
"gap": 3,
"pad": [
4,
4
],
"align": "center",
"children": [
{
"el": "text",
"span": "1-8",
"color": "onAccent",
"slot": "headline",
"role": "h1",
"step": 4,
"leading": "tight",
"maxCh": 26
},
{
"el": "button",
"span": "10-12",
"slot": "cta",
"variant": "secondary",
"arrow": true
}
]
}
]
}
}