# Numbered journey with photo rows — Section Design Reference

Schema: Design Details SECTION.md v3.2
Source: https://grail-app.com/
Website: Grail
Section ID: de731a82-894b-4563-aed1-50b516fadb8e
Design Details page: https://designdetails.io/sections/grail-app-com--home--process-de731a82
Status: deterministic evidence captured; editorial AI review pending

## Purpose

This is a process section on the Home page. Use the attached crop and measured browser facts to reconstruct its composition. Do not infer unmeasured source values.

## Layout

1337×1255px root; block

## Visual signature

editorial, minimal, playful, photographic, cinematic-3d treatment at 1440×1292px. The crop spans 4000–5292px of a 10203px page.

## Components

- Navigation Bar
- Hero
- Product UI
- Primary Button
- Stat Block
- Feature Collection
- Input Field
- Footer
- Floating Card Array
- Immersive Totem Showcase

## Evidence note

The geometry, typography, colors, media, and animation parameters below come from saved HTML/CSS/browser evidence when present. Website-level roles are supplied separately. Editorial section judgment remains pending unless the MCP resolves this source ID to a promoted canonical record.

## Build blueprint v3.2

### Purpose and classification

- Canonical type: steps
- Source type: process
- Structure: 1337×1255px root; block
- Layout: 1337×1255px root; block
- Styles: editorial, minimal, playful, photographic, cinematic-3d
- Components: Navigation Bar, Hero, Product UI, Primary Button, Stat Block, Feature Collection, Input Field, Footer, Floating Card Array, Immersive Totem Showcase
- Purpose: process section from the Home page of Grail.
- Visual signature: rgb(246, 246, 246) with 1337×1255px root; block. Inspect the crop for image and content hierarchy.
- Place on the page: 6 of 12, after Feature collection (`2c5e1e37-a350-4d29-be5d-f235e85b43f8`), before Gallery (`24ad88b4-0404-4612-88fe-7b26a599197e`)

### Crop and composition

- Crop: 1440×1292px; aspect ratio 1.115:1
- Page bounds: 4000–5292px of 10203px
- Guidance: Preserve the documented hierarchy and relationships; exact measurements were not deterministically captured.

### Exact typography evidence

The sectionScale values were measured inside this crop. The siteRoles values explain how those faces function across the source website; they must not replace section measurements.

```json
{
  "sectionScale": [
    {
      "role": "section heading",
      "family": "PP Pangaia",
      "stack": "\"PP Pangaia\", Georgia, serif",
      "size": "27px",
      "weight": "300",
      "lineHeight": "26.5px",
      "letterSpacing": "-0.3px",
      "sample": "What was that like?",
      "element": "h2",
      "occurrences": 1,
      "sourceId": "font-2"
    },
    {
      "role": "UI/supporting text",
      "family": "not captured",
      "stack": "-apple-system, \"system-ui\", \"SF Pro Display\", system-ui, sans-serif",
      "size": "14px",
      "weight": "500",
      "lineHeight": "18.3px",
      "letterSpacing": "normal",
      "sample": "About Problem",
      "element": "span",
      "occurrences": 37,
      "sourceId": "font-4"
    },
    {
      "role": "body/supporting copy",
      "family": "Switzer",
      "stack": "Switzer, -apple-system, \"SF Pro Display\", system-ui, sans-serif",
      "size": "16px",
      "weight": "400",
      "lineHeight": "normal",
      "letterSpacing": "normal",
      "sample": "Now there’s a clock on it. Forty-eight hours to go do the thing, because “later” is how every one of",
      "element": "p",
      "occurrences": 7,
      "sourceId": "font-5"
    },
    {
      "role": "body/supporting copy",
      "family": "Switzer",
      "stack": "Switzer, -apple-system, \"SF Pro Display\", system-ui, sans-serif",
      "size": "16px",
      "weight": "400",
      "lineHeight": "19.8px",
      "letterSpacing": "normal",
      "sample": "Not 24, since a day is too easy to lose to work or weather or a bad mood. Two days gives you room to",
      "element": "p",
      "occurrences": 7,
      "sourceId": "font-6"
    },
    {
      "role": "body/supporting copy",
      "family": "Switzer",
      "stack": "Switzer, -apple-system, \"SF Pro Display\", system-ui, sans-serif",
      "size": "18px",
      "weight": "700",
      "lineHeight": "20.2px",
      "letterSpacing": "normal",
      "sample": "Now there’s a clock on it. Forty-eight hours to go do the thing, because “later” is how every one of",
      "element": "p",
      "occurrences": 6,
      "sourceId": "font-7"
    },
    {
      "role": "body/supporting copy",
      "family": "not captured",
      "stack": "-apple-system, \"system-ui\", \"SF Pro Display\", system-ui, sans-serif",
      "size": "13px",
      "weight": "400",
      "lineHeight": "normal",
      "letterSpacing": "normal",
      "sample": "Leave a voice for yourself and for others",
      "element": "p",
      "occurrences": 5,
      "sourceId": "font-9"
    },
    {
      "role": "section heading",
      "family": "PP Pangaia",
      "stack": "\"PP Pangaia\", Georgia, \"Times New Roman\", serif, Georgia, serif",
      "size": "89.3px",
      "weight": "300",
      "lineHeight": "78.6px",
      "letterSpacing": "-0.9px",
      "sample": "quest.",
      "element": "span",
      "occurrences": 1,
      "sourceId": "font-20"
    }
  ],
  "siteRoles": [
    {
      "role": "display",
      "size": "208px",
      "family": "PP Pangaia",
      "source": "computed",
      "traits": "uppercase",
      "weight": "300",
      "evidence": "font-18: computed CSS at 1440×1000; AI role: Massive 208px PP Pangaia serif used for dramatic section headers like 'DUCK THE KNIGHT'.",
      "sampleId": "font-18",
      "confidence": 0.95,
      "lineHeight": "183px",
      "letterSpacing": "-1px"
    },
    {
      "role": "heading",
      "size": "92px",
      "family": "PP Pangaia",
      "source": "computed",
      "traits": "uppercase",
      "weight": "300",
      "evidence": "font-13: computed CSS at 1440×1000; AI role: 92px PP Pangaia used for major section titles such as 'EVERY QUEST LANDS SOMEWHERE'.",
      "sampleId": "font-13",
      "confidence": 0.9,
      "lineHeight": "81px",
      "letterSpacing": "-0.9px"
    },
    {
      "role": "body",
      "size": "16px",
      "family": "Switzer",
      "source": "computed",
      "traits": "Regular",
      "weight": "400",
      "evidence": "font-6: computed CSS at 1440×1000; AI role: 16px Switzer regular sans-serif used for standard body copy and descriptive paragraphs.",
      "sampleId": "font-6",
      "confidence": 0.9,
      "lineHeight": "19.8px",
      "letterSpacing": "normal"
    }
  ]
}
```

### Exact color evidence

The section samples record where each computed value was used. Functional roles come from the website-level classifier and remain separate.

```json
{
  "sectionUsage": [
    {
      "value": "#F6F6F6",
      "cssValue": "rgb(246, 246, 246)",
      "alpha": 1,
      "appliedAs": [
        "background"
      ],
      "occurrences": 3,
      "sourceId": "color-1"
    },
    {
      "value": "#000000",
      "cssValue": "rgb(0, 0, 0)",
      "alpha": 1,
      "appliedAs": [
        "background",
        "text"
      ],
      "occurrences": 16,
      "sourceId": "color-2"
    },
    {
      "value": "#000000",
      "cssValue": "rgba(0, 0, 0, 0.1)",
      "alpha": 0.10196078431372549,
      "appliedAs": [
        "::before-background"
      ],
      "occurrences": 5,
      "sourceId": "color-3"
    },
    {
      "value": "#FFFFFF",
      "cssValue": "rgb(255, 255, 255)",
      "alpha": 1,
      "appliedAs": [
        "text"
      ],
      "occurrences": 57,
      "sourceId": "color-4"
    },
    {
      "value": "#000000",
      "cssValue": "rgba(0, 0, 0, 0.6)",
      "alpha": 0.6,
      "appliedAs": [
        "text"
      ],
      "occurrences": 11,
      "sourceId": "color-5"
    },
    {
      "value": "#161616",
      "cssValue": "rgb(22, 22, 22)",
      "alpha": 1,
      "appliedAs": [
        "background"
      ],
      "occurrences": 1,
      "sourceId": "color-6"
    },
    {
      "value": "#FFFFFF",
      "cssValue": "rgba(255, 255, 255, 0.4)",
      "alpha": 0.4,
      "appliedAs": [
        "background",
        "text"
      ],
      "occurrences": 10,
      "sourceId": "color-8"
    },
    {
      "value": "#FFFFFF",
      "cssValue": "rgba(255, 255, 255, 0.55)",
      "alpha": 0.5490196078431373,
      "appliedAs": [
        "text"
      ],
      "occurrences": 2,
      "sourceId": "color-14"
    },
    {
      "value": "#F5F5F5",
      "cssValue": "rgb(245, 245, 245)",
      "alpha": 1,
      "appliedAs": [
        "text"
      ],
      "occurrences": 3,
      "sourceId": "color-16"
    },
    {
      "value": "#FFFFFF",
      "cssValue": "rgba(255, 255, 255, 0.1)",
      "alpha": 0.10196078431372549,
      "appliedAs": [
        "background"
      ],
      "occurrences": 3,
      "sourceId": "color-17"
    },
    {
      "value": "#3A3A3A",
      "cssValue": "rgb(58, 58, 58)",
      "alpha": 1,
      "appliedAs": [
        "background"
      ],
      "occurrences": 1,
      "sourceId": "color-22"
    },
    {
      "value": "#E9E9E9",
      "cssValue": "rgb(233, 233, 233)",
      "alpha": 1,
      "appliedAs": [
        "svg-fill",
        "svg-stroke"
      ],
      "occurrences": 3,
      "sourceId": "color-23"
    },
    {
      "value": "#FFFFFF",
      "cssValue": "rgba(255, 255, 255, 0.3)",
      "alpha": 0.30196078431372547,
      "appliedAs": [
        "background"
      ],
      "occurrences": 1,
      "sourceId": "color-24"
    }
  ],
  "functionalPalette": [
    {
      "hex": "#000000",
      "name": "canvas",
      "role": "canvas",
      "source": "computed",
      "evidence": "color-2: computed rgb(0, 0, 0); AI role: Pure black (#000000) used as the primary background for the majority of the site.",
      "sampleId": "color-2",
      "confidence": 0.95
    },
    {
      "hex": "#FFFFFF",
      "name": "text",
      "role": "text",
      "source": "computed",
      "evidence": "color-4: computed rgb(255, 255, 255); AI role: Pure white (#FFFFFF) used for primary typography on dark backgrounds.",
      "sampleId": "color-4",
      "confidence": 0.95
    },
    {
      "hex": "#FFCDFF",
      "name": "primary action",
      "role": "primary-action",
      "source": "computed",
      "evidence": "color-15: computed rgb(255, 205, 255); AI role: Distinct pink (#FFCDFF) used for the 'Join Waitlist' primary call-to-action buttons.",
      "sampleId": "color-15",
      "confidence": 0.9
    },
    {
      "hex": "#F6F6F6",
      "name": "surface",
      "role": "surface",
      "source": "computed",
      "evidence": "color-1: computed rgb(246, 246, 246); AI role: Light gray (#F6F6F6) used as the background color for specific alternating sections to create contrast.",
      "sampleId": "color-1",
      "confidence": 0.85
    },
    {
      "hex": "#B8B8B8",
      "name": "muted text",
      "role": "muted-text",
      "source": "computed",
      "evidence": "color-10: computed rgb(184, 184, 184); AI role: Light gray (#B8B8B8) used for secondary text and subtle labels.",
      "sampleId": "color-10",
      "confidence": 0.8
    }
  ]
}
```

### Design tokens

```json
{
  "radius": "Buttons appear to use maximum border-radius for a pill effect; app UI cards use standard medium radii (approx. 12-16px).",
  "density": "Very low density. The design prioritizes vast empty space to emphasize large-scale typography and immersive 3D/photographic visuals over packing information tightly.",
  "evidence": "Observed from the spacious layout, massive 208px typography, pill-shaped waitlist buttons, and full-width cinematic 3D renders in the provided viewport screenshots.",
  "borderStyle": "Borders are largely absent, relying on stark color contrasts (black vs white vs colorful renders), except for subtle horizontal dividers and text inputs.",
  "buttonStyle": "Pill-shaped, typically utilizing a solid distinct color (like pink) or a subtle translucent white overlay against the dark background, containing bold sans-serif text.",
  "cornerStyle": "Fully rounded (pill-shaped) corners for buttons and selectors, contrasting with slightly rounded corners on app UI cards.",
  "contentWidth": "Content generally adheres to a centered maximum width for readability, but large typographic elements and 3D renders are allowed to span edge-to-edge or overflow standard containers.",
  "spacingRhythm": "Generous vertical spacing between sections, often utilizing large viewport-relative gaps to isolate typography and imagery for maximum impact. Padding is substantial, keeping content centered and legible."
}
```

### Reconstruction specification

This is the implementation contract for the captured desktop viewport. Prefer section-specific facts here over general website descriptions.

- Root: 1337×1255px; block; padding {"top":"0px","right":"0px","bottom":"0px","left":"0px"}; gap normal; background rgb(246, 246, 246); radius 24px.
- Representative content widths: 1337, 1150, 1142, 395, 340, 335, 322, 307px.
- Layout containers: 0; cards/surfaces: 1; media elements: 12; browser animations: 0.

#### Container, grid, and spacing

```json
{
  "viewport": {
    "width": 1440,
    "captureBounds": {
      "top": 4000,
      "bottom": 6328,
      "pageHeight": 12753
    }
  },
  "container": {
    "size": "1337×1255px",
    "position": "x 52px, y 4037px",
    "display": "block",
    "positionMode": "relative",
    "padding": {
      "top": "0px",
      "right": "0px",
      "bottom": "0px",
      "left": "0px"
    },
    "margin": {
      "top": "0px",
      "right": "0px",
      "bottom": "0px",
      "left": "0px"
    },
    "gap": "normal",
    "columns": "not captured",
    "background": "rgb(246, 246, 246)",
    "radius": "24px",
    "border": "0px none rgb(0, 0, 0)",
    "shadow": "none",
    "overflow": "visible"
  },
  "spacing": {
    "observedGapsPx": [],
    "representativeContentWidthsPx": [
      1337,
      1150,
      1142,
      395,
      340,
      335,
      322,
      307
    ]
  },
  "columns": []
}
```

#### Cards and surfaces

```json
{
  "cards": [
    {
      "element": "section · About JourneyChapter 03It starts as one quest.It rarely stays that way.No promises. Just what tends",
      "size": "1337×1255px",
      "position": "x 52px, y 4037px",
      "padding": [
        "0px",
        "0px",
        "0px",
        "0px"
      ],
      "radius": "24px",
      "border": "0px none rgb(0, 0, 0)",
      "shadow": "none",
      "background": "rgb(246, 246, 246)"
    }
  ],
  "surfaces": {
    "radii": [
      "24px",
      "999px"
    ],
    "borders": [],
    "shadows": []
  }
}
```

#### Media treatment

```json
[
  {
    "element": "canvas · _garden_bknov_162",
    "size": "206×126px",
    "position": "x 617px, y 4867px",
    "aspectRatio": 1.6,
    "objectFit": "fill",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "clip",
    "source": "source not captured"
  },
  {
    "element": "img · _s5photo_bwga5_805",
    "size": "181×131px",
    "position": "x 654px, y 4400px",
    "aspectRatio": 1.4,
    "objectFit": "cover",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "clip",
    "source": "https://grail-app.com/story/01-320.webp"
  },
  {
    "element": "img · _s5photo_bwga5_805",
    "size": "181×131px",
    "position": "x 636px, y 4541px",
    "aspectRatio": 1.4,
    "objectFit": "cover",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "clip",
    "source": "https://grail-app.com/story/02-320.webp"
  },
  {
    "element": "img · _s5photo_bwga5_805",
    "size": "181×131px",
    "position": "x 619px, y 4682px",
    "aspectRatio": 1.4,
    "objectFit": "cover",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "clip",
    "source": "https://grail-app.com/story/03-320.webp"
  },
  {
    "element": "img · _s5photo_bwga5_805",
    "size": "181×131px",
    "position": "x 602px, y 4823px",
    "aspectRatio": 1.4,
    "objectFit": "cover",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "clip",
    "source": "https://grail-app.com/story/04-320.webp"
  },
  {
    "element": "img · _s5photo_bwga5_805",
    "size": "181×131px",
    "position": "x 585px, y 4964px",
    "aspectRatio": 1.4,
    "objectFit": "cover",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "clip",
    "source": "https://grail-app.com/story/05-320.webp"
  },
  {
    "element": "img · img",
    "size": "74×74px",
    "position": "x 797px, y 4215px",
    "aspectRatio": 1,
    "objectFit": "cover",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "clip",
    "source": "https://grail-app.com/patterns/tempers-160.webp"
  },
  {
    "element": "img · img",
    "size": "74×74px",
    "position": "x 793px, y 4245px",
    "aspectRatio": 1,
    "objectFit": "cover",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "clip",
    "source": "https://grail-app.com/patterns/brotherhood-of-tale-160.webp"
  },
  {
    "element": "img · img",
    "size": "74×74px",
    "position": "x 793px, y 4245px",
    "aspectRatio": 1,
    "objectFit": "cover",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "clip",
    "source": "https://grail-app.com/patterns/keepers-of-time-160.webp"
  },
  {
    "element": "img · img",
    "size": "74×74px",
    "position": "x 793px, y 4245px",
    "aspectRatio": 1,
    "objectFit": "cover",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "clip",
    "source": "https://grail-app.com/patterns/seeker-of-forsaken-160.webp"
  },
  {
    "element": "img · img",
    "size": "74×74px",
    "position": "x 793px, y 4245px",
    "aspectRatio": 1,
    "objectFit": "cover",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "clip",
    "source": "https://grail-app.com/patterns/wind-shifters-160.webp"
  },
  {
    "element": "svg · svg",
    "size": "17×17px",
    "position": "x 711px, y 4922px",
    "aspectRatio": 1,
    "objectFit": "fill",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "hidden",
    "source": "source not captured"
  }
]
```

#### Browser-exposed animation parameters

```json
[]
```

### Measured geometry, surfaces, media, and animation

These raw values come from the saved element map and computed styles. Empty arrays mean the fact was not captured; they are not permission to invent source values.

```json
{
  "schema": "little-details-section-measurements-v1",
  "source": "saved DOM/CSS element and animation maps",
  "capturedAt": "2026-10-31T06:29:38.194Z",
  "viewportWidth": 1440,
  "bounds": {
    "top": 4000,
    "bottom": 6328,
    "pageHeight": 12753
  },
  "root": {
    "id": "ld-85",
    "tag": "section",
    "role": null,
    "label": "About JourneyChapter 03It starts as one quest.It rarely stays that way.No promises. Just what tends ",
    "rect": {
      "x": 52,
      "y": 4037,
      "width": 1337,
      "height": 1255
    },
    "display": "block",
    "position": "relative",
    "padding": {
      "top": "0px",
      "right": "0px",
      "bottom": "0px",
      "left": "0px"
    },
    "margin": {
      "top": "0px",
      "right": "0px",
      "bottom": "0px",
      "left": "0px"
    },
    "gap": "normal",
    "columns": null,
    "background": "rgb(246, 246, 246)",
    "radius": "24px",
    "border": "0px none rgb(0, 0, 0)",
    "shadow": "none",
    "overflow": "visible"
  },
  "spacing": {
    "gapsPx": [],
    "representativeContentWidthsPx": [
      1337,
      1150,
      1142,
      395,
      340,
      335,
      322,
      307
    ]
  },
  "columns": [],
  "cards": [
    {
      "id": "ld-85",
      "tag": "section",
      "role": null,
      "label": "About JourneyChapter 03It starts as one quest.It rarely stays that way.No promises. Just what tends ",
      "rect": {
        "x": 52,
        "y": 4037,
        "width": 1337,
        "height": 1255
      },
      "radius": "24px",
      "border": "0px none rgb(0, 0, 0)",
      "shadow": "none",
      "background": "rgb(246, 246, 246)",
      "padding": [
        "0px",
        "0px",
        "0px",
        "0px"
      ]
    }
  ],
  "surfaces": {
    "radii": [
      "24px",
      "999px"
    ],
    "borders": [],
    "shadows": []
  },
  "media": [
    {
      "id": "ld-168",
      "tag": "canvas",
      "role": null,
      "label": "_garden_bknov_162",
      "rect": {
        "x": 617,
        "y": 4867,
        "width": 206,
        "height": 126
      },
      "aspectRatio": 1.6,
      "objectFit": "fill",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "clip",
      "media": null
    },
    {
      "id": "ld-108",
      "tag": "img",
      "role": null,
      "label": "_s5photo_bwga5_805",
      "rect": {
        "x": 654,
        "y": 4400,
        "width": 181,
        "height": 131
      },
      "aspectRatio": 1.4,
      "objectFit": "cover",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "clip",
      "media": {
        "src": "https://grail-app.com/story/01-320.webp",
        "naturalWidth": 201,
        "naturalHeight": 133,
        "alt": ""
      }
    },
    {
      "id": "ld-116",
      "tag": "img",
      "role": null,
      "label": "_s5photo_bwga5_805",
      "rect": {
        "x": 636,
        "y": 4541,
        "width": 181,
        "height": 131
      },
      "aspectRatio": 1.4,
      "objectFit": "cover",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "clip",
      "media": {
        "src": "https://grail-app.com/story/02-320.webp",
        "naturalWidth": 201,
        "naturalHeight": 133,
        "alt": ""
      }
    },
    {
      "id": "ld-124",
      "tag": "img",
      "role": null,
      "label": "_s5photo_bwga5_805",
      "rect": {
        "x": 619,
        "y": 4682,
        "width": 181,
        "height": 131
      },
      "aspectRatio": 1.4,
      "objectFit": "cover",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "clip",
      "media": {
        "src": "https://grail-app.com/story/03-320.webp",
        "naturalWidth": 201,
        "naturalHeight": 133,
        "alt": ""
      }
    },
    {
      "id": "ld-132",
      "tag": "img",
      "role": null,
      "label": "_s5photo_bwga5_805",
      "rect": {
        "x": 602,
        "y": 4823,
        "width": 181,
        "height": 131
      },
      "aspectRatio": 1.4,
      "objectFit": "cover",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "clip",
      "media": {
        "src": "https://grail-app.com/story/04-320.webp",
        "naturalWidth": 201,
        "naturalHeight": 133,
        "alt": ""
      }
    },
    {
      "id": "ld-140",
      "tag": "img",
      "role": null,
      "label": "_s5photo_bwga5_805",
      "rect": {
        "x": 585,
        "y": 4964,
        "width": 181,
        "height": 131
      },
      "aspectRatio": 1.4,
      "objectFit": "cover",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "clip",
      "media": {
        "src": "https://grail-app.com/story/05-320.webp",
        "naturalWidth": 201,
        "naturalHeight": 133,
        "alt": ""
      }
    },
    {
      "id": "ld-94",
      "tag": "img",
      "role": null,
      "label": "img",
      "rect": {
        "x": 797,
        "y": 4215,
        "width": 74,
        "height": 74
      },
      "aspectRatio": 1,
      "objectFit": "cover",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "clip",
      "media": {
        "src": "https://grail-app.com/patterns/tempers-160.webp",
        "naturalWidth": 160,
        "naturalHeight": 158,
        "alt": ""
      }
    },
    {
      "id": "ld-95",
      "tag": "img",
      "role": null,
      "label": "img",
      "rect": {
        "x": 793,
        "y": 4245,
        "width": 74,
        "height": 74
      },
      "aspectRatio": 1,
      "objectFit": "cover",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "clip",
      "media": {
        "src": "https://grail-app.com/patterns/brotherhood-of-tale-160.webp",
        "naturalWidth": 160,
        "naturalHeight": 158,
        "alt": ""
      }
    },
    {
      "id": "ld-96",
      "tag": "img",
      "role": null,
      "label": "img",
      "rect": {
        "x": 793,
        "y": 4245,
        "width": 74,
        "height": 74
      },
      "aspectRatio": 1,
      "objectFit": "cover",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "clip",
      "media": {
        "src": "https://grail-app.com/patterns/keepers-of-time-160.webp",
        "naturalWidth": 160,
        "naturalHeight": 158,
        "alt": ""
      }
    },
    {
      "id": "ld-97",
      "tag": "img",
      "role": null,
      "label": "img",
      "rect": {
        "x": 793,
        "y": 4245,
        "width": 74,
        "height": 74
      },
      "aspectRatio": 1,
      "objectFit": "cover",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "clip",
      "media": {
        "src": "https://grail-app.com/patterns/seeker-of-forsaken-160.webp",
        "naturalWidth": 160,
        "naturalHeight": 158,
        "alt": ""
      }
    },
    {
      "id": "ld-98",
      "tag": "img",
      "role": null,
      "label": "img",
      "rect": {
        "x": 793,
        "y": 4245,
        "width": 74,
        "height": 74
      },
      "aspectRatio": 1,
      "objectFit": "cover",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "clip",
      "media": {
        "src": "https://grail-app.com/patterns/wind-shifters-160.webp",
        "naturalWidth": 160,
        "naturalHeight": 158,
        "alt": ""
      }
    },
    {
      "id": "ld-170",
      "tag": "svg",
      "role": null,
      "label": "svg",
      "rect": {
        "x": 711,
        "y": 4922,
        "width": 17,
        "height": 17
      },
      "aspectRatio": 1,
      "objectFit": "fill",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "hidden",
      "media": null
    }
  ],
  "animations": [],
  "coverage": {
    "elementsInSection": 57,
    "cards": 1,
    "media": 12,
    "animations": 0
  },
  "limitations": [
    "Values describe the captured desktop viewport and may change at other breakpoints.",
    "Transforms, sticky layers, and virtualized content can make the inferred section root approximate.",
    "Animations include browser-exposed Web Animations API state; CSS or script motion that was inactive at capture time may be absent."
  ]
}
```

### Observed motion

No timestamped authored motion is attached. Use only restrained baseline transitions.

The browser animation records above are deterministic parameters captured from active browser animations. The timestamped observations describe what Gemini saw in the video. Treat them as complementary evidence. When either source is empty or they conflict, state the uncertainty instead of inventing timing or easing.

### Responsive contract

- Measured viewport: 1440px wide.
- Mobile/tablet values: not measured by this section evidence unless a separate capture is explicitly listed.
- Preserve hierarchy and sequence; collapse simultaneous columns only where needed, maintain media aspect ratios, and verify touch targets and text wrapping at target breakpoints.

### Structure versus visual skin

- Preserve: content hierarchy, layout relationships, section rhythm, interaction purpose.
- Adapt: brand colors, font family, copy, imagery, icons, decorative details.
- Rule: Preserve the observed design logic while creating original branding, copy, assets, and implementation details.

### Adaptation and dependencies

- Effort: Not assessed
- What transfers: Documented hierarchy and composition
- Dependencies: None recorded
- Guidance: Adapt the pattern to the new product and content.

### Evidence readiness

- Coverage: 7/7
- Can build: Yes
- Missing facts: timestamped authored motion
- Warning: Buildable with adaptations for these unsupported facts: timestamped authored motion.

### Agent implementation prompt

Create an original steps section inspired by the design evidence titled “Numbered journey with photo rows”.

Purpose: process section from the Home page of Grail.

Structure: 1337×1255px root; block. Source layout label: 1337×1255px root; block. Preserve the documented hierarchy and relationships; exact measurements were not deterministically captured.

Visual signature to preserve at the pattern level: rgb(246, 246, 246) with 1337×1255px root; block. Inspect the crop for image and content hierarchy.

Components: Navigation Bar, Hero, Product UI, Primary Button, Stat Block, Feature Collection, Input Field, Footer, Floating Card Array, Immersive Totem Showcase.

Style direction: editorial, minimal, playful, photographic, cinematic-3d.

Observed crop: 1440×1292px (1.115:1). Treat this as evidence of composition, not a mandatory output size.

Typography evidence: {"role":"display","size":"208px","family":"PP Pangaia","source":"computed","traits":"uppercase","weight":"300","evidence":"font-18: computed CSS at 1440×1000; AI role: Massive 208px PP Pangaia serif used for dramatic section headers like 'DUCK THE KNIGHT'.","sampleId":"font-18","confidence":0.95,"lineHeight":"183px","letterSpacing":"-1px"} {"role":"heading","size":"92px","family":"PP Pangaia","source":"computed","traits":"uppercase","weight":"300","evidence":"font-13: computed CSS at 1440×1000; AI role: 92px PP Pangaia used for major section titles such as 'EVERY QUEST LANDS SOMEWHERE'.","sampleId":"font-13","confidence":0.9,"lineHeight":"81px","letterSpacing":"-0.9px"} {"role":"body","size":"16px","family":"Switzer","source":"computed","traits":"Regular","weight":"400","evidence":"font-6: computed CSS at 1440×1000; AI role: 16px Switzer regular sans-serif used for standard body copy and descriptive paragraphs.","sampleId":"font-6","confidence":0.9,"lineHeight":"19.8px","letterSpacing":"normal"}

Color evidence: {"hex":"#000000","name":"canvas","role":"canvas","source":"computed","evidence":"color-2: computed rgb(0, 0, 0); AI role: Pure black (#000000) used as the primary background for the majority of the site.","sampleId":"color-2","confidence":0.95} {"hex":"#FFFFFF","name":"text","role":"text","source":"computed","evidence":"color-4: computed rgb(255, 255, 255); AI role: Pure white (#FFFFFF) used for primary typography on dark backgrounds.","sampleId":"color-4","confidence":0.95} {"hex":"#FFCDFF","name":"primary action","role":"primary-action","source":"computed","evidence":"color-15: computed rgb(255, 205, 255); AI role: Distinct pink (#FFCDFF) used for the 'Join Waitlist' primary call-to-action buttons.","sampleId":"color-15","confidence":0.9} {"hex":"#F6F6F6","name":"surface","role":"surface","source":"computed","evidence":"color-1: computed rgb(246, 246, 246); AI role: Light gray (#F6F6F6) used as the background color for specific alternating sections to create contrast.","sampleId":"color-1","confidence":0.85} {"hex":"#B8B8B8","name":"muted text","role":"muted-text","source":"computed","evidence":"color-10: computed rgb(184, 184, 184); AI role: Light gray (#B8B8B8) used for secondary text and subtle labels.","sampleId":"color-10","confidence":0.8}

Typography measured inside this section: {"id":"font-2","family":"PP Pangaia","fontStack":"\"PP Pangaia\", Georgia, serif","weight":"300","size":"27px","lineHeight":"26.5px","letterSpacing":"-0.3px","traits":"uppercase","count":1,"contexts":[{"tag":"h2","text":"What was that like?","top":4770,"property":"font"}]} {"id":"font-4","family":null,"fontStack":"-apple-system, \"system-ui\", \"SF Pro Display\", system-ui, sans-serif","weight":"500","size":"14px","lineHeight":"18.3px","letterSpacing":"normal","traits":"Regular","count":37,"contexts":[{"tag":"span","text":"About Problem","top":1025,"property":"font"},{"tag":"span","text":"Chapter 01","top":1025,"property":"font"},{"tag":"span","text":"About Journey","top":4061,"property":"font"}]} {"id":"font-5","family":"Switzer","fontStack":"Switzer, -apple-system, \"SF Pro Display\", system-ui, sans-serif","weight":"400","size":"16px","lineHeight":"normal","letterSpacing":"normal","traits":"Regular","count":7,"contexts":[{"tag":"p","text":"Now there’s a clock on it. Forty-eight hours to go do the thing, because “later” is how every one of","top":4031,"property":"font"},{"tag":"p","text":"Not 24, since a day is too easy to lose to work or weather or a bad mood. Two days gives you room to","top":4052,"property":"font"},{"tag":"p","text":"01","top":4461,"property":"font"}]} {"id":"font-6","family":"Switzer","fontStack":"Switzer, -apple-system, \"SF Pro Display\", system-ui, sans-serif","weight":"400","size":"16px","lineHeight":"19.8px","letterSpacing":"normal","traits":"Regular","count":7,"contexts":[{"tag":"p","text":"Not 24, since a day is too easy to lose to work or weather or a bad mood. Two days gives you room to","top":820,"property":"font"},{"tag":"p","text":"No promises. Just what tends to happen when you show up.","top":4263,"property":"font"},{"tag":"p","text":"A chance","top":4366,"property":"font"}]} {"id":"font-7","family":"Switzer","fontStack":"Switzer, -apple-system, \"SF Pro Display\", system-ui, sans-serif","weight":"700","size":"18px","lineHeight":"20.2px","letterSpacing":"normal","traits":"Regular","count":6,"contexts":[{"tag":"p","text":"Now there’s a clock on it. Forty-eight hours to go do the thing, because “later” is how every one of","top":820,"property":"font"},{"tag":"p","text":"To end up at someone’s table.","top":4385,"property":"font"},{"tag":"p","text":"To be the only one out there.","top":4526,"property":"font"}]} {"id":"font-9","family":null,"fontStack":"-apple-system, \"system-ui\", \"SF Pro Display\", system-ui, sans-serif","weight":"400","size":"13px","lineHeight":"normal","letterSpacing":"normal","traits":"Regular","count":5,"contexts":[{"tag":"p","text":"Leave a voice for yourself and for others","top":4831,"property":"font"},{"tag":"p","text":"You can make it longer, right?","top":4998,"property":"font"},{"tag":"span","text":"Easy","top":5024,"property":"font"}]} {"id":"font-20","family":"PP Pangaia","fontStack":"\"PP Pangaia\", Georgia, \"Times New Roman\", serif, Georgia, serif","weight":"300","size":"89.3px","lineHeight":"78.6px","letterSpacing":"-0.9px","traits":"uppercase","count":1,"contexts":[{"tag":"span","text":"quest.","top":4199,"property":"font"}]}

Colors measured inside this section: {"id":"color-1","hex":"#F6F6F6","alpha":1,"cssValue":"rgb(246, 246, 246)","count":3,"contexts":[{"tag":"section","text":"About JourneyChapter 03It starts as one quest.It rarely stays that way.No promises. Just what tends ","top":4037,"property":"background"},{"tag":"div","text":"","top":11257,"property":"background"}]} {"id":"color-2","hex":"#000000","alpha":1,"cssValue":"rgb(0, 0, 0)","count":16,"contexts":[{"tag":"body","text":"47:59:32One real-world quest a day. Four stats that go up when you do things out in the world.Join W","top":0,"property":"background"},{"tag":"div","text":"47:59:32One real-world quest a day. Four stats that go up when you do things out in the world.Join W","top":0,"property":"background"},{"tag":"span","text":"About Journey","top":4061,"property":"text"}]} {"id":"color-3","hex":"#000000","alpha":0.10196078431372549,"cssValue":"rgba(0, 0, 0, 0.1)","count":5,"contexts":[{"tag":"div","text":"A chanceTo end up at someone’s table.01You went out to do one small thing. Six hours later you’re so","top":4327,"property":"::before-background"}]} {"id":"color-4","hex":"#FFFFFF","alpha":1,"cssValue":"rgb(255, 255, 255)","count":57,"contexts":[{"tag":"span","text":"R","top":138,"property":"text"},{"tag":"h2","text":"Everyone's out living. You're watching them do it on a screen.","top":1500,"property":"text"},{"tag":"p","text":"Now there’s a clock on it. Forty-eight hours to go do the thing, because “later” is how every one of","top":4031,"property":"text"}]} {"id":"color-5","hex":"#000000","alpha":0.6,"cssValue":"rgba(0, 0, 0, 0.6)","count":11,"contexts":[{"tag":"p","text":"No promises. Just what tends to happen when you show up.","top":4263,"property":"text"}]} {"id":"color-6","hex":"#161616","alpha":1,"cssValue":"rgb(22, 22, 22)","count":1,"contexts":[{"tag":"div","text":"What was that like?Leave a voice for yourself and for othersYou can make it longer, right?EasyMedium","top":4724,"property":"background"}]} {"id":"color-8","hex":"#FFFFFF","alpha":0.4,"cssValue":"rgba(255, 255, 255, 0.4)","count":10,"contexts":[{"tag":"div","text":"","top":4737,"property":"background"},{"tag":"span","text":"Y","top":11335,"property":"text"}]} {"id":"color-14","hex":"#FFFFFF","alpha":0.5490196078431373,"cssValue":"rgba(255, 255, 255, 0.55)","count":2,"contexts":[{"tag":"p","text":"Leave a voice for yourself and for others","top":4831,"property":"text"}]}

Exact section measurements from the saved element map: root {"rect":{"x":52,"y":4037,"width":1337,"height":1255},"padding":{"top":"0px","right":"0px","bottom":"0px","left":"0px"},"gap":"normal","columns":null,"overflow":"visible"}; spacing {"gapsPx":[],"representativeContentWidthsPx":[1337,1150,1142,395,340,335,322,307]}; surfaces {"radii":["24px","999px"],"borders":[],"shadows":[]}; media [{"tag":"canvas","rect":{"x":617,"y":4867,"width":206,"height":126},"aspectRatio":1.6,"objectFit":"fill","objectPosition":"50% 50%","radius":"0px"},{"tag":"img","rect":{"x":654,"y":4400,"width":181,"height":131},"aspectRatio":1.4,"objectFit":"cover","objectPosition":"50% 50%","radius":"0px"},{"tag":"img","rect":{"x":636,"y":4541,"width":181,"height":131},"aspectRatio":1.4,"objectFit":"cover","objectPosition":"50% 50%","radius":"0px"},{"tag":"img","rect":{"x":619,"y":4682,"width":181,"height":131},"aspectRatio":1.4,"objectFit":"cover","objectPosition":"50% 50%","radius":"0px"}]

Do not invent signature motion. Use only restrained baseline transitions if the product needs them.

Transfer the documented hierarchy and composition rather than source copy or assets.

No explicit dependencies were recorded.

Adapt the pattern to the new product and content.

Use new copy, imagery, branding, and implementation details. Do not reproduce the source website or its proprietary assets.
