{
  "schema": "brand-kit@2",
  "palette": {
    "paper": "#F4F5F8",
    "ink": "#222326",
    "night": "#222326",
    "on_night": "#F4F5F8",
    "note": "Only two colors are published, both as monochrome wordmark accents. Mapping them to paper/ink/night is our reading. The primary brand color (a 'subtle desaturated blue', reserved for backgrounds) has no published value. Site colors are added as observed in the anatomy step. Observed 2026-10-30: linear.app itself is dark-first on #08090A with a four-step grey text ramp (#F7F8F8, #D0D6E0, #8A8F98, #62666D) and white-alpha hairlines; those site colours are in extras with prov observed. The guide colours stay the law for the wordmark tiles; the site colours are how the web applies the neutral system. Accent: #5E6AD2 is Linear indigo as observed on linear.app (2026-10-30: skip-to-content bar and product UI accent); not a published brand value.",
    "extras": [
      {
        "name": "Mercury White",
        "hex": "#F4F5F8",
        "role": "Light accent for monochrome wordmark use (RGB 244, 245, 248); the wordmark on dark grounds; light ground in the guide's own wordmark tiles",
        "prov": "published",
        "source": "https://linear.app/brand"
      },
      {
        "name": "Nordic Gray",
        "hex": "#222326",
        "role": "Dark accent for monochrome wordmark use (RGB 35, 35, 38); the fill of the official dark wordmark and logo files; dark ground in the guide's tiles",
        "prov": "published",
        "source": "https://linear.app/brand"
      },
      {
        "name": "Page ground",
        "hex": "#08090A",
        "role": "Page background on linear.app (body, every band, footer); also the text colour on the light quote cards and on the white Get started / Sign up buttons",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "Panel",
        "hex": "#0F1011",
        "role": "Ground of product-illustration panels and the phone benefit cards; issue cards in the intake board",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "Hero frame",
        "hex": "#101112",
        "role": "Fill of the hero app frame (1320x720, radius 12px)",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "Raised bubble",
        "hex": "#161718",
        "role": "Chat bubbles and the reply field inside the hero mock-up",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "Ghost hover",
        "hex": "#191A1B",
        "role": "Contact sales (ghost pill) fill on hover",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "Text primary",
        "hex": "#F7F8F8",
        "role": "Headlines, nav/footer headings, link text, logos (as currentColor)",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "Text secondary",
        "hex": "#D0D6E0",
        "role": "Section leads (24px), small titles (benefit, changelog), the New label; top of the hero stage gradient",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "Text tertiary",
        "hex": "#8A8F98",
        "role": "Body and muted copy, nav links at rest, footer links, the grey part of the statement headline, Learn more label",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "Text quaternary",
        "hex": "#62666D",
        "role": "Arrows and plus marks, Features label, changelog dates, legal links, the POWERING eyebrow",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "Hairline solid",
        "hex": "#23252A",
        "role": "Footer top border, quote-row outline, panel inset rings (box-shadow 0 0 0 1px)",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "Divider in UI",
        "hex": "#2E2E32",
        "role": "Dividers inside mock-up cards, dashed timeline grid lines",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "Figure stroke dim",
        "hex": "#3E3E44",
        "role": "Secondary strokes in the FIG 0.1/0.2 isometric line drawings",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "Button light",
        "hex": "#E5E5E6",
        "role": "Primary pill fill (Sign up, Get started) and its 1px border; hover goes to #FFFFFF",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "Ramp lime",
        "hex": "#E4F222",
        "role": "Ground of the Ramp customer quote card",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "OpenAI card blue",
        "hex": "#B2D5FF",
        "role": "Top stop of the OpenAI quote card gradient (under a 40% white wash; renders #D0E5FF)",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "OpenAI card violet",
        "hex": "#DFD1FF",
        "role": "Bottom stop of the OpenAI quote card gradient (under a 40% white wash; renders #E9E3FF)",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "Card wash top",
        "hex": "#D0E5FF",
        "role": "Rendered top of the OpenAI quote card (sampled 2026-10-30)",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "Card wash bottom",
        "hex": "#E9E3FF",
        "role": "Rendered bottom of the OpenAI quote card (sampled 2026-10-30)",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "Linear indigo",
        "hex": "#5E6AD2",
        "role": "Skip-to-content bar (focus only) and accent in the product UI",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "Mention indigo",
        "hex": "#6D78D5",
        "role": "@Linear mention chip text (bg same at 15%) inside the intake mock-up",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "Diff red",
        "hex": "#F34E52",
        "role": "Removed-line marker in the diff mock-up (bg at 10%)",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "Status red",
        "hex": "#EB5757",
        "role": "Newest changelog marker dot and its 10% halo (measured from .changelogIndicator 2026-10-30); red status in product UI",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "Diff green",
        "hex": "#27A644",
        "role": "Added-line marker in the diff mock-up (bg at 7%)",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "Code pink",
        "hex": "#F79CE0",
        "role": "Syntax keyword colour in the diff mock-up",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "Code orange",
        "hex": "#F7BF8B",
        "role": "Syntax identifier colour in the diff mock-up",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "Code blue",
        "hex": "#8FA6FF",
        "role": "Syntax component colour in the diff mock-up",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "Code teal",
        "hex": "#83DCDC",
        "role": "Syntax attribute colour; cycle-time dots in the planning chart read teal",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "Code yellow",
        "hex": "#FFDF9F",
        "role": "Syntax string colour in the diff mock-up",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "Code text",
        "hex": "#E2E4E7",
        "role": "Plain code text in the diff mock-up",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "Stage glow",
        "hex": "#7E8185",
        "role": "Brightest point of the hero stage gradient, bottom centre (sampled from the at-rest capture)",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "Ghost fill",
        "hex": "#141516",
        "role": "Contact sales pill at rest: rgba(255,255,255,0.05) over the #08090A ground",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "Hero frame fill",
        "hex": "#090A0B",
        "role": "Fill of the hero app frame / stage box (measured)",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      }
    ],
    "accent": "#5E6AD2"
  },
  "typography": {
    "display": {
      "family": "Inter",
      "weight": "not published (Inter Display for headings)",
      "fallback_stack": "\"Inter Variable\", Inter, -apple-system, \"Segoe UI\", sans-serif",
      "real": "Inter Display (the display optical size of Inter), SIL OFL 1.1",
      "stand_in": false,
      "note": "The 2024 redesign moved headings to Inter Display for expression while keeping readability. The supplied InterVariable.woff2 is the face linear.app loads (observed 2026-10-30) and its axes are opsz 14-32 and wght 100-900 (read from the file 2026-10-30): with font-optical-sizing:auto (the site's computed value) every size at or above 32px renders the Display cut, so headings get Inter Display automatically. Load it as one @font-face with font-weight 100 900 and keep font-optical-sizing auto.",
      "prov": "published",
      "source": "https://linear.app/now/how-we-redesigned-the-linear-ui",
      "site": {
        "family": "Inter Variable",
        "weights": "510 for every heading (H1 64px, prefooter 72px, section H2 48px, phone 38/24px); 590 only inside the product mock-ups; CSS tokens --font-weight-medium 510, --font-weight-semibold 590, --font-weight-bold 680",
        "tracking": "-0.022em on 48-72px (-1.408px at 64, -1.056px at 48, -1.584px at 72), -0.022em at phone 38px (-0.836px), -0.012em at 24px (-0.288px)",
        "features": "font-feature-settings \"cv01\", \"ss03\" set on body and inherited everywhere (cv01 = alternate 1, ss03 = round quotes/commas set); font-variation-settings normal; font-optical-sizing auto",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      }
    },
    "body": {
      "family": "Inter",
      "weight": 400,
      "fallback_stack": "\"Inter Variable\", Inter, -apple-system, \"Segoe UI\", sans-serif",
      "real": "Inter (regular optical size), SIL OFL 1.1",
      "stand_in": false,
      "note": "Regular Inter for every non-heading text element (published). Weights, sizes and leading are not published.",
      "prov": "published",
      "source": "https://linear.app/now/how-we-redesigned-the-linear-ui",
      "site": {
        "family": "Inter Variable",
        "weights": "400 body, 510 small titles, nav CTA and buttons, 300 only in mock-up chat text",
        "sizes_px": "15/24 body (0.9375rem, -0.165px), 13/19.5 nav and footer, 14/21 quote attribution, 24/31.92 section lead, 16/44 prefooter buttons",
        "features": "\"cv01\", \"ss03\" inherited from body",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      }
    },
    "mono": {
      "family": "IBM Plex Mono",
      "weight": 400,
      "fallback_stack": "\"IBM Plex Mono\", ui-monospace, \"SF Mono\", Menlo, monospace",
      "real": "Berkeley Mono (US Graphics Company, commercial licence; not open, not redistributable)",
      "stand_in": true,
      "calibration": "Rendered POWERING THE COMPANIES BUILDING THE FUTURE at 48px in Berkeley Mono on linear.app and in nine open candidates (canvas, 2026-10-30). Line width: Berkeley 1209.6px; IBM Plex Mono, JetBrains Mono, Geist Mono, DM Mono, Roboto Mono, Source Code Pro all 1209.6px (0.600em advance), Fragment Mono 1245.9, Space Mono 1233.8. Ink per px of width: Berkeley 10.2; IBM Plex Mono 10.6, Source Code Pro 9.8, DM Mono 11.0, Roboto Mono 11.3, JetBrains 11.5, Geist 11.6. x-height: Berkeley 0.518em; IBM Plex Mono 0.516, Source Code Pro 0.486, Geist 0.530, JetBrains 0.550. Cap height: Berkeley 0.680; Plex 0.698. IBM Plex Mono matches width exactly and is closest on ink (+4%) and x-height (-0.4%): use it at the same size, weight 400 and tracking normal.",
      "note": "linear.app sets --font-monospace: \"Berkeley Mono\", ui-monospace, \"SF Mono\", Menlo, monospace. On the homepage it carries the 12px/16.8px uppercase eyebrows (POWERING..., FIG 0.1-0.3, changelog dates) and code inside the mock-ups.",
      "prov": "observed",
      "source": "https://linear.app/ (2026-10-30)",
      "licence_url": "https://github.com/IBM/plex/blob/master/LICENSE.txt"
    }
  },
  "style": {
    "button_shape": "not published",
    "corners": "Rounded: the refresh rounds the edges of borders and tabs (no radius published); the icon is used as a 'chip' with an appropriate corner radius",
    "linework": "Few, low-contrast borders and separators: structure felt, not seen",
    "density": "Information-dense, with supporting chrome dimmed so the work area leads",
    "color_method": "Themes generated in LCH from three inputs (base, accent, contrast) rather than hand-set tokens; light and dark modes; limited blue in the neutrals",
    "motion": "not published as values",
    "prov": "published",
    "source": "https://linear.app/now/behind-the-latest-design-refresh",
    "also": [
      "https://linear.app/now/how-we-redesigned-the-linear-ui",
      "https://linear.app/brand"
    ]
  },
  "voice": {
    "tone": [
      "Plain",
      "Direct",
      "Calm",
      "Craft-minded"
    ],
    "notes": [
      "Write in plain language; short, scannable titles; descriptions only as long as needed (Method).",
      "Don't invent terms: call projects projects (Method).",
      "Brevity: short specs are more likely to be read (Method).",
      "Quote customers directly rather than summarizing them (Method).",
      "Confident about opinions (user stories are 'an anti-pattern') but argues from reasons, not hype.",
      "Design posts are first person plural, credit named people, and talk in details rather than adjectives.",
      "Voice notes are our reading of the Method and design posts: Linear publishes no voice guide."
    ],
    "rules": [
      {
        "id": "name",
        "kind": "guidance",
        "text": "\"Linear\" is one word with a capital L, never \"Linear app\"",
        "prov": "published",
        "source": "https://linear.app/brand"
      },
      {
        "id": "releases",
        "kind": "guidance",
        "text": "Capitalize dedicated releases as proper nouns (Linear Method)",
        "prov": "published",
        "source": "https://linear.app/brand"
      },
      {
        "id": "plain",
        "kind": "guidance",
        "text": "Plain language; titles that directly state the thing",
        "prov": "published",
        "source": "https://linear.app/method/write-issues-not-user-stories"
      },
      {
        "id": "no-coined-terms",
        "kind": "guidance",
        "text": "Don't invent terms; use the common word",
        "prov": "published",
        "source": "https://linear.app/method/introduction"
      },
      {
        "id": "brevity",
        "kind": "guidance",
        "text": "Aim for brevity; write only as much as the reader needs",
        "prov": "published",
        "source": "https://linear.app/method/introduction"
      },
      {
        "id": "person",
        "kind": "person",
        "value": "we_you",
        "prov": "inferred",
        "source": "https://linear.app/now/how-we-redesigned-the-linear-ui"
      },
      {
        "id": "headline-case",
        "kind": "headline_case",
        "value": "sentence",
        "prov": "inferred",
        "source": "https://linear.app/now/behind-the-latest-design-refresh",
        "note": "Post titles and site headings are sentence case (observed 2026-10-30); not a published rule"
      }
    ],
    "approved": {
      "words": [
        "purpose-built",
        "momentum",
        "craft",
        "quality",
        "issues",
        "projects",
        "cycles",
        "product development"
      ],
      "prov": "published",
      "source": "https://linear.app/method/introduction"
    },
    "banned": [
      "Linear app",
      "user stories (as a working method)",
      "invented jargon for ordinary things"
    ]
  },
  "spec": {
    "source": "https://linear.app/",
    "how": "Measured on https://linear.app/ at 1440x900 and 390x844 with Playwright computed styles, hover probes and 2x captures, 2026-10-30; guide values from https://linear.app/brand",
    "provenance": "Published values are cited to their page. Everything from linear.app is observed 2026-10-30. Linear publishes no motion or type-scale values; the motion entries are the site CSS.",
    "icons": {
      "grid": "not published",
      "stroke": "not published",
      "rule": "Fewer and smaller icons; no colored team-icon backgrounds (2026 refresh)",
      "prov": "published",
      "source": "https://linear.app/now/behind-the-latest-design-refresh"
    },
    "signature": [
      {
        "id": "monochrome-mark",
        "name": "Monochrome mark with room to breathe",
        "where": "every logo placement",
        "spec": "wordmark (or logomark in tight layouts) in one color only, Mercury White #F4F5F8 on dark or Nordic Gray #222326 on light, with generous empty space around it, big or small",
        "once": "one mark per surface",
        "dont": "add color, gradients or effects to the mark, crowd it, or alter the supplied files",
        "prov": "published",
        "source": "https://linear.app/brand"
      },
      {
        "id": "recede-chrome",
        "name": "Chrome recedes, content leads",
        "where": "interfaces, product shots and UI-like layouts",
        "spec": "navigation and supporting chrome a few notches dimmer than the main content; compact tabs with rounded corners; fewer, smaller icons; borders rounded and low contrast so structure is felt rather than seen",
        "dont": "give every element equal weight, add separators without reason, or put colored backgrounds behind icons",
        "prov": "published",
        "source": "https://linear.app/now/behind-the-latest-design-refresh"
      },
      {
        "id": "generated-neutrals",
        "name": "Generated neutral themes",
        "where": "grounds and surfaces in light and dark",
        "spec": "neutral grays derived from base, accent and contrast in LCH, with little blue in the calculation for a timeless, neutral look; the 2026 refresh shifted toward a warmer, less saturated gray that stays crisp",
        "dont": "hand-pick saturated tints or let the neutrals go muddy-warm",
        "prov": "published",
        "source": "https://linear.app/now/how-we-redesigned-the-linear-ui",
        "also": [
          "https://linear.app/now/behind-the-latest-design-refresh"
        ]
      },
      {
        "id": "ui-as-illustration",
        "name": "Product UI is the illustration",
        "where": "hero and every feature section",
        "spec": "each section shows a real-looking slice of the app (thread, board, timeline, agent panels, diff) on #0F1011 panels with 1px white-8% borders, grain and a corner glow, bleeding off one edge and fading into the #08090A ground",
        "once": "one illustration per section",
        "dont": "use photos, stock illustration or flat mock-up screenshots with drop shadows on white",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "id": "grey-ramp",
        "name": "Four-step grey text ramp",
        "where": "all copy on dark",
        "spec": "#F7F8F8 headlines, #D0D6E0 leads and small titles, #8A8F98 body and links at rest, #62666D arrows, eyebrows and legal; emphasis comes from stepping up the ramp, never from colour",
        "dont": "introduce accent-coloured text or links",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      }
    ],
    "page": {
      "source": "https://linear.app/",
      "date": "2026-10-30",
      "prov": "observed",
      "voices": "Two voices. The homepage (and so any landing page built from this spec) speaks in short, plain product statements: sentence-case headlines without full stops except the closing pair (\"Built for the future. Available today.\"), a two-tone statement where the first sentence is #F7F8F8 and the rest #8A8F98, section titles that name the capability in two or three words over two lines (\"Intake / and integrations\"), and leads that say what it does in one sentence. The guide and Method voice (brevity, plain words, \"Linear\" one word, no coined terms) is the law for all copy; the campaign/launch voice in Now posts is longer and first person plural and is not used on the landing page. A landing page follows this homepage voice and anatomy. Where the guide and site differ: the guide colours #F4F5F8/#222326 govern the wordmark tiles and printed pieces; the site renders the same monochrome idea on a near-black #08090A with #F7F8F8 text. Both are true, each in its place. Settled r1: the homepage voice is not only plain description. It mixes compact positioning lines (\"Designed for the AI era.\", \"A new species of product tool.\", \"Built for the future. Available today.\") with outcome verbs (restores momentum, ship with high velocity and focus). Build with the verbatim copy given in each section's `copy`; never replace it with procedural how-to lines (\"Set the plan\", \"Assign the issue\").",
      "nav": {
        "summary": "Fixed translucent near-black bar: wordmark left; six text links right-aligned (Product and Resources open mega-menus), a 1px vertical divider, Log in text pill and a light Sign up pill. Phone: wordmark, Log in, Sign up and a hamburger.",
        "ground": "transparent element with background linear-gradient(rgba(11,11,11,0.8), rgba(10,10,10,0.76)) + backdrop-filter blur(20px) over the page; reads as the page ground #08090A at rest",
        "height": "73px desktop (72px bar + 1px border); 65px phone",
        "border": "border-bottom 1px solid rgba(255,255,255,0.08)",
        "logo": {
          "variant": "full wordmark (logomark + \"Linear\"), monochrome #F7F8F8",
          "px": "88x22 svg (viewBox 0 0 400 100) inside a 104x32 link with padding 0 8px, radius 6px",
          "position": "desktop link x 71, svg x 79 y 25; phone link x 15, y 16",
          "file": "nav-wordmark.svg"
        },
        "links": {
          "count": 6,
          "labels": "Product (menu), Resources (menu), Customers, Pricing, Now, Contact",
          "size": "13px/19.5px",
          "weight": 400,
          "color": "#8A8F98 at rest; hover #F7F8F8 on a rgba(255,255,255,0.08) pill fill; open menu item keeps the fill",
          "alignment": "right-aligned group: 32px-tall pills with padding 0 12px, radius 9999px, starting x 741 (Product), 813, 902, 992, 1059, 1111; no gaps between pills",
          "hrefs": "Customers /customers, Pricing /pricing, Now /now, Contact /contact"
        },
        "actions": [
          "1px x 16px vertical divider rgba(255,255,255,0.08) at about x 1200, 16px clear on each side",
          "Log in: text pill 13px/400 #8A8F98, padding 0 12px, 62x32 at x 1218, href /login; hover #F7F8F8 + rgba(255,255,255,0.08) fill",
          "Sign up: pill fill #E5E5E6, 1px #E5E5E6 border, text #08090A 13px/510, line-height 32px, padding 0 12px, radius 9999px, 73x32 at x 1288 (right edge x 1361), href /signup; soft stacked drop shadow (0 1px 1px rgba(0,0,0,0.07), 0 3px 2px rgba(0,0,0,0.04)); hover fill #FFFFFF"
        ],
        "product_menu": "Hovering Product opens a panel under the bar at about x 502-1360, y 64-345 (measured from a 2x capture): raised dark fill, 1px rgba(255,255,255,0.08) border, radius 12px, an inner card holding three columns split by vertical hairlines. Col 1 Intake (\"Bring requests and context in from every tool you use\"), Plan and monitor (\"Set the plan and follow it from idea to launch\"); col 2 AI and automations (\"Agents that follow work from conversation to code\"), Build, review and ship (\"Write code and review pull requests inside Linear\"); col 3 Integration directory, Changelog, Mobile, Security. A footer row below the card: New + the latest changelog title on the left, Learn more -> on the right. Titles #F7F8F8, descriptions #8A8F98, all about 13px.",
        "sticky": "position fixed, z-index 100 (--layer-header), always visible; no change on scroll",
        "phone": {
          "shows": "wordmark link (x 15), Log in pill (x 188), Sign up pill (x 258, 73x32), 64x64 hamburger button at x 331 with a two-line icon; same gradient + blur ground and 1px bottom hairline, 65px tall",
          "menu": "Full-screen sheet under the 65px bar, ground rgba(11,11,11,0.8) + blur; the hamburger becomes an X. Groups with small #8A8F98 labels and large #F7F8F8 links on a 44px row pitch, left at x 24 (computed 16px/400; they render at about 24px in the 2x capture, so match the capture). System: Intake, Plan and monitor, AI and automations, Build, review and ship. Product: Integrations, Pricing, Changelog, Documentation. Resources: About, Customers, Careers, Contact, Now, Method (continues on scroll).",
          "cta": "Sign up stays in the bar; no separate menu CTA"
        }
      },
      "hero": {
        "summary": "Left-aligned two-line 64px headline and a 15px muted lead on the left with a small \"New Loops ->\" link on the right of the same baseline, then a full-width product app frame (live DOM, use the capture) sitting on a stage that fades from #08090A to a pale grey glow at its bottom edge.",
        "desktop": {
          "column_split": "single 1280px text column (x 80-1360) inside the 1344px container (x 48-1392, 32px inset); headline row full width; lead left, New link right-aligned on the same line",
          "vertical_anchors": "bar 0-73; H1 top y 272 (2 lines, 64px line height, bottom 400); lead y 432-457; New Loops link y 432 at x 1256-1360; app frame y 527-1247 (x 60-1380); stage background y 527-1295 (x 12-1428); logo row y 1407-1447; POWERING eyebrow y 1483",
          "text_max_width": "headline breaks after \"development\" (line 1 763px, line 2 844px wide); lead one line, 505px",
          "media": "App frame 1320x720 at x 60, radius 12px, fill #101112, 1px rgba(255,255,255,0.08) border, a 512px grain PNG overlay (grain.png) at low alpha; inner app view inset 8px top/right/bottom and 240px left (sidebar 232px), radius 8px, 1px rgba(255,255,255,0.05) border, ring 0 0 0 2px rgba(0,0,0,0.2). Stage behind it: 1416x768 at x 12 y 527, radius 6px, background radial-gradient(52.53% 57.5% at 50% 100%, rgba(8,9,10,0) 0%, rgba(8,9,10,0.5) 100%), linear-gradient(#08090A 10%, #D0D6E0 100%): near black at top, pale grey band along the bottom (sampled #7E8185 at bottom centre). A full-bleed PNG (hero-stage-background.png, 2560x1429, shown 1440x804 at y 491) adds the shadow pool. PLACE THE CAPTURE: hero-app-frame-desk@2x.png is the frame at rest; hero-stage-desk@2x.png is frame + stage as one picture (1440x800 at 2x).",
          "cta_size": "no button in the hero; the only action is the 15px \"New Loops ->\" link (New 510 #D0D6E0, Loops -> 400 #8A8F98, 11px gap), href https://linear.app/now/introducing-loops"
        },
        "phone": {
          "order": "headline, lead, New Loops link, app frame (bleeds off the right edge), logo marquee, POWERING eyebrow",
          "alignment": "left, 24px gutter",
          "sizes": "H1 38px/41.8px 510 -0.836px in 4 lines (y 196-363, 343px box); lead 15px/24px #8A8F98, 276px wide, 2 lines (y 383); New Loops 13px/19.5px (y 451); frame from x 16, y ~520 to ~880, cut by the right viewport edge (use hero-app-frame-phone@2x.png); hero band ends y 911. SETTLED r1 (measured 2026-10-30): the app stage is a 390x360 box at y 521 (overflow hidden); the frame inside it is 660x360 at x 18, radius 12px, fill #090A0B, its right side cut by the viewport. Show the phone capture at that size (left edge x 18, width 660 → clipped at 390, height 360); never add padding around it, never scale it down to fit the width. The frame bottom is y 881, then the stage's grey glow continues to the hero band end at y 911. Use hero-stage-phone@2x.png placed at x 0, y 521, 390x390: it already contains the frame and the glow.",
          "hidden": "the right half of the app (chat panel) is off-screen",
          "logo_marquee": "Measured 2026-10-30: phone logo marquee at y 945-975, 7 logos repeating every 721px, logo widths 62/68/43/53/76/76/64 px (heights 13-30, about 0.75x desktop: desktop widths 82/90/57/70/101/101/86), about 40px between logos; about four logos visible across 390px. Never desktop-size logos on phone."
        },
        "at_rest": "Headline fully set in two lines, #F7F8F8. On load the headline words slide/blur in and the app frame rises: animation only, build the end state. The chat panel in the frame shows a finished agent reply; the reply field is empty (\"Reply...\"). Nothing types at rest.",
        "media": "Live DOM, no source file: use hero-app-frame-desk@2x.png (2640x1440, the 1320x720 frame) on desktop and hero-app-frame-phone@2x.png on phone; or the composite hero-stage-desk@2x.png including the stage glow. SETTLED r1: desktop uses the composite hero-stage-desk@2x.png only, at x 0, y 491, 1440x800 (do not also draw a CSS stage or frame); phone uses hero-stage-phone@2x.png.",
        "type": "H1 Inter Variable 64px/64px weight 510, letter-spacing -1.408px, #F7F8F8, features cv01 ss03, optical size auto (Display cut); lead 15px/24px 400 -0.165px #8A8F98",
        "cta": "none; Sign up lives in the nav",
        "proof": "Logo row below the stage: seven monochrome white wordmarks spread with justify-content space-between across x 80-1360 (OpenAI 82x17 at x 80, Vercel 90x19 x 277, Salesforce 57x40 x 483, Figma 70x26 x 655, Cursor 101x24 x 841, coinbase 101x18 x 1057, ramp 86x23 x 1274), vertically centred in a 40px row at y 1407; then the mono eyebrow POWERING THE COMPANIES BUILDING THE FUTURE 12px/16.8px 400 uppercase #62666D at x 80 y 1483. The whole logo row is one link to /customers. Phone: the row becomes a horizontal marquee (logos cut at both edges), eyebrow at x 16 y 1011.",
        "copy": [
          "H1 (2 lines desktop, break after \"development\"): \"The product development / system for teams and agents\"",
          "Lead (1 line desktop): \"Purpose-built for planning and building products. Designed for the AI era.\"",
          "Right link: \"New\" + \"Loops →\""
        ],
        "copy_prov": "observed, verbatim, https://linear.app/ (2026-10-30)"
      },
      "sections": [
        {
          "name": "Statement",
          "summary": "A three-line 48px statement: the first sentence in #F7F8F8, the rest in #8A8F98, left-aligned, no media.",
          "ground": "#08090A",
          "desktop": "H2 x 78 y 1596, 1250px box (padding 0 32px), 3 lines of 48px/48px 510 -1.056px; line 1 \"A new species of product tool.\" #F7F8F8 then continues in #8A8F98; 136px below the eyebrow",
          "phone": "H2 24px/31.92px 510 -0.288px, x 15 (8px padding) y 1076, 6 lines in 359px, same two-tone split",
          "anatomy": [
            "Two colours in one heading: lead sentence #F7F8F8, remainder #8A8F98",
            "No eyebrow, no button"
          ],
          "components": [
            "two-tone statement heading"
          ],
          "copy": [
            "\"A new species of product tool.\" (#F7F8F8) then, same heading, \"Purpose-built for modern teams with AI workflows at its core, Linear sets a new standard for planning and building products.\" (#8A8F98)",
            "Eyebrow above it (desktop y 1483): \"POWERING THE COMPANIES BUILDING THE FUTURE\""
          ],
          "copy_prov": "observed, verbatim, https://linear.app/ (2026-10-30)"
        },
        {
          "name": "Benefits (FIG 0.1-0.3)",
          "summary": "Three equal columns split by 1px hairlines; each has a mono FIG label, a centred isometric line drawing, a 15px/510 title and a 15px muted two-line description.",
          "ground": "#08090A",
          "desktop": "y 1876-2344 (468px), container x 48 w 1344 padding 0 32px; columns 427px (x 80, 507, 933) with border-right 1px rgba(255,255,255,0.08) on the first two; column padding 0 32px (first 0 32 0 0, last 0 0 0 32). FIG label y 1876; drawing centred ~265x262 at y ~1935; title y 2264; description y 2296 (368px max, 2 lines). Section ends with a full-width separator at y 2504",
          "phone": "Horizontal scroll-snap carousel (x mandatory) of 328x440 cards with 8px gap starting x 8 (y 1334): fill #0F1011, 1px rgba(255,255,255,0.05) border, radius 8px, padding 0 24px 28px; drawing ~230x227 top-centred, title y 1641, description 250px wide in 3 lines. No FIG labels on phone. Capture: benefit-card-phone@2x.png. SETTLED r1: the carousel track starts at x 8 (8px left inset from the viewport, never flush), first card x 8-336, card text starts x 32 (24px card padding); the second card peeks in from x 344.",
          "anatomy": [
            "FIG 0.1 / FIG 0.2 / FIG 0.3: mono 12px/16.8px uppercase #8A8F98",
            "Line drawings: 1px strokes in #D0D6E0 and #3E3E44/#2E2E32 over #08090A fills (benefit-fig-01..03.svg)",
            "Titles: Purpose-built, Powered by agents, Designed for speed (15px/24px 510 #D0D6E0); descriptions 15px/24px 400 #8A8F98"
          ],
          "components": [
            "figure column",
            "hairline column divider"
          ],
          "copy": [
            "FIG 0.1 / Purpose-built / \"Linear is shaped by the practices and principles of world-class product teams.\"",
            "FIG 0.2 / Powered by agents / \"Designed for workflows shared by humans and agents. From drafting PRDs to pushing PRs.\"",
            "FIG 0.3 / Designed for speed / \"Reduces noise and restores momentum to help teams ship with high velocity and focus.\""
          ],
          "copy_prov": "observed, verbatim, https://linear.app/ (2026-10-30)"
        },
        {
          "name": "Feature section: Intake and integrations",
          "summary": "Two-column header (48px two-line title left, 24px lead + Learn more right), a full-width product illustration that bleeds past the container, then a Features row of plus-links.",
          "ground": "#08090A",
          "desktop": "section y 2546-3772, padding 128px 0. Header y 2674 (252px incl. 96px bottom padding): H2 x 78 w 542 (2 lines, forced break \"Intake / and integrations\"); lead x 752 w 566, 24px/31.92px #D0D6E0, 3 lines; Learn more -> at x 752 y 2806. Illustration y 2926-3552 (626px): Slack-style thread card (480x559, radius 16px, fill #0F1011 + 2% white, 1px rgba(255,255,255,0.08)) overlapping the left edge of a kanban board panel (#0F1011, inset ring #23252A, radius 12px top) that fades out to the right. Features row y 3588: label \"Features\" 15px #62666D at x 80; links in two 304px columns at x 752 and x 1088 (the second column has a 1px rgba(255,255,255,0.08) rule on its left at x 1056): Linear Agent +, Triage + | Customer Requests +, Linear Asks +. Full-width separator at y 3772",
          "phone": "Illustration first (x 16 w 358, ~312px tall, cropped to the chat card), then header with padding 40px 0 48px: H2 24px/31.92px 2 lines at x 23, lead 15px/24px #8A8F98 3 lines, Learn more 15px. No Features row. Separator line between sections",
          "anatomy": [
            "Title: 48px/48px 510 -1.056px #F7F8F8 always two lines",
            "Lead: 24px/31.92px 400 -0.288px #D0D6E0, max 566px",
            "Learn more: 15px #8A8F98 + arrow #62666D, hover label #F7F8F8",
            "Illustration: live DOM, use intake-illustration-desk@2x.png / -phone@2x.png",
            "SETTLED r1 (measured 2026-10-30): the lead is 3 lines (81px tall, top y = header top); \"Learn more\" (79x24) sits 50px below the lead's last line on desktop (lead bottom +50) and 25px below on phone. Never a 4-10px gap.",
            "SETTLED r1: Features-row links align to the same x as the lead: column 1 at x 752, column 2 at x 1088 (each column 272px of text inside its 304px track; the 1px rule sits at x 1056). Size the grid so nothing pulls these left of x 752; check with a bounding box.",
            "SETTLED r1 (measured): every header is 252px tall (incl. 96px bottom padding), 2-line H2, 3-line lead. The illustration box is y 2926-3552 (626px; it can overlap the header bottom by up to 32px, which is real). Place the illustration capture at exactly that box, full-bleed 1440 wide. Phone: illustration box y 1899-2211, then the 269px header."
          ],
          "components": [
            "section header",
            "learn-more link",
            "features row",
            "product illustration panel"
          ],
          "copy": [
            "H2: \"Intake / and integrations\"",
            "Lead: \"Automatically turn conversations and customer feedback into actionable issues that are instantly routed, labeled, and prioritized for the right team.\"",
            "Link: \"Learn more →\"",
            "Features row links, in DOM order: Linear Agent +, Customer Requests +, Triage +, Linear Asks +"
          ],
          "copy_prov": "observed, verbatim, https://linear.app/ (2026-10-30)"
        },
        {
          "name": "Feature section: Planning and monitoring",
          "summary": "Same header pattern; illustration is a roadmap timeline (left) under a \"Cycle time by agent\" scatter chart card (right half).",
          "ground": "#08090A",
          "desktop": "section y 3782-5011; header y 3910; illustration y 4130-4763: timeline panel full-bleed from x 0 (#0F1011, top border 1px #23252A, dashed grid lines repeating 2px #2E2E32 / 4px gap) and a 672x632 chart card at x 720 (radius 12px, #0F1011 + 2% white, 1px rgba(255,255,255,0.08), grain overlay) with teal dot clusters and thin red/orange step lines. Features: Projects +, Pulse +, Visual planning + | Documents +, Initiatives +, Insights + (y 4799)",
          "phone": "Illustration (timeline only, JUN-AUG) 358x306, then header. Use planning-illustration-phone@2x.png",
          "anatomy": [
            "Use planning-illustration-desk@2x.png (1440x680 at 2x)",
            "Title breaks \"Planning / and monitoring\"",
            "SETTLED r1 (measured 2026-10-30): the lead is 3 lines (81px tall, top y = header top); \"Learn more\" (79x24) sits 50px below the lead's last line on desktop (lead bottom +50) and 25px below on phone. Never a 4-10px gap.",
            "SETTLED r1: Features-row links align to the same x as the lead: column 1 at x 752, column 2 at x 1088 (each column 272px of text inside its 304px track; the 1px rule sits at x 1056). Size the grid so nothing pulls these left of x 752; check with a bounding box.",
            "SETTLED r1 (measured): every header is 252px tall (incl. 96px bottom padding), 2-line H2, 3-line lead. The illustration box is y 4130-4763 (633px; it can overlap the header bottom by up to 32px, which is real). Place the illustration capture at exactly that box, full-bleed 1440 wide. Phone: illustration box y 2491-2797, then the 269px header."
          ],
          "components": [
            "section header",
            "features row",
            "product illustration panel"
          ],
          "copy": [
            "H2: \"Planning / and monitoring\"",
            "Lead: \"Plan and navigate from idea to launch. Align your team with product initiatives, strategic roadmaps, and clear, up-to-date PRDs.\"",
            "Link: \"Learn more →\"",
            "Features row links, in DOM order: Projects +, Documents +, Pulse +, Initiatives +, Visual planning +, Insights +"
          ],
          "copy_prov": "observed, verbatim, https://linear.app/ (2026-10-30)"
        },
        {
          "name": "Feature section: AI and automations",
          "summary": "Same header; illustration is a row of four 400x560 agent chat panels (Cursor, Linear, ChatPRD) that fade out at both ends.",
          "ground": "#08090A",
          "desktop": "section y 5021-6253; header y 5149; illustration y 5401-6033: panels 400x560 with 12px gap starting x -98 (first cut by the left edge), fill #0F1011, 1px rgba(255,255,255,0.12), radius 12px, shadow 0 2px 32px rgba(0,0,0,0.25); outer panels dimmed. Features: Linear Agent +, Triage + | Coding sessions +, Linear MCP + (y 6069)",
          "phone": "Illustration becomes an \"Assign to...\" picker (Codex Agent, Steven, Ema, GitHub Copilot Agent, Cursor Agent), then header. Use ai-agents-illustration-phone@2x.png",
          "anatomy": [
            "Use ai-agents-illustration-desk@2x.png",
            "Title breaks \"AI and / automations\"",
            "SETTLED r1 (measured 2026-10-30): the lead is 3 lines (81px tall, top y = header top); \"Learn more\" (79x24) sits 50px below the lead's last line on desktop (lead bottom +50) and 25px below on phone. Never a 4-10px gap.",
            "SETTLED r1: Features-row links align to the same x as the lead: column 1 at x 752, column 2 at x 1088 (each column 272px of text inside its 304px track; the 1px rule sits at x 1056). Size the grid so nothing pulls these left of x 752; check with a bounding box.",
            "SETTLED r1 (measured): every header is 252px tall (incl. 96px bottom padding), 2-line H2, 3-line lead. The illustration box is y 5401-6033 (632px; it can overlap the header bottom by up to 32px, which is real). Place the illustration capture at exactly that box, full-bleed 1440 wide. Phone: illustration box y 3076-3378, then the 269px header."
          ],
          "components": [
            "section header",
            "features row",
            "product illustration panel"
          ],
          "copy": [
            "H2: \"AI and / automations\"",
            "Lead: \"Build and deploy AI agents that work alongside you as teammates. Work on complex tasks together or delegate entire issues end-to-end.\"",
            "Link: \"Learn more →\"",
            "Features row links, in DOM order: Linear Agent +, Coding sessions +, Triage +, Linear MCP +"
          ],
          "copy_prov": "observed, verbatim, https://linear.app/ (2026-10-30)"
        },
        {
          "name": "Feature section: Build, review, and ship",
          "summary": "Same header; illustration is an issue list panel overlapped on the right by a split code-diff panel.",
          "ground": "#08090A",
          "desktop": "section y 6263-7483; header y 6391; illustration y 6642-7234: list panel 1326x560 at x 57 (#0F1011, radius 12px top), diff panel 1344x560 at x 496 bleeding off the right (shadow 0 0 32px rgba(8,9,10,0.8)), file path bar in mono #62666D, two code columns 14px/24px mono with red (#F34E52, 10% fill) and green (#27A644, 7% fill) 1px-left-border diff lines. Features: Issues +, Guided reviews +, Diffs + | Git automations +, Cycles +, Releases + (y 7270)",
          "phone": "Illustration is a single diff column, then header. Use build-diff-illustration-phone@2x.png",
          "anatomy": [
            "Use build-diff-illustration-desk@2x.png",
            "Title breaks \"Build, review, / and ship\"",
            "SETTLED r1 (measured 2026-10-30): the lead is 3 lines (81px tall, top y = header top); \"Learn more\" (79x24) sits 50px below the lead's last line on desktop (lead bottom +50) and 25px below on phone. Never a 4-10px gap.",
            "SETTLED r1: Features-row links align to the same x as the lead: column 1 at x 752, column 2 at x 1088 (each column 272px of text inside its 304px track; the 1px rule sits at x 1056). Size the grid so nothing pulls these left of x 752; check with a bounding box.",
            "SETTLED r1 (measured): every header is 252px tall (incl. 96px bottom padding), 2-line H2, 3-line lead. The illustration box is y 6642-7234 (592px; it can overlap the header bottom by up to 32px, which is real). Place the illustration capture at exactly that box, full-bleed 1440 wide. Phone: illustration box y 3657-3963, then the 269px header."
          ],
          "components": [
            "section header",
            "features row",
            "product illustration panel"
          ],
          "copy": [
            "H2: \"Build, review, / and ship\"",
            "Lead: \"Streamline code reviews with clear diffs, better context, and fewer back-and-forth comments. Keep PRs moving without sacrificing quality.\"",
            "Link: \"Learn more →\"",
            "Features row links, in DOM order: Issues +, Git automations +, Guided reviews +, Cycles +, Diffs +, Releases +"
          ],
          "copy_prov": "observed, verbatim, https://linear.app/ (2026-10-30)"
        },
        {
          "name": "Changelog",
          "summary": "48px title, a 1px timeline rule with four dots, four equal entry columns (title, two-line excerpt, mono date), then View all ->. Desktop only.",
          "ground": "#08090A",
          "desktop": "H2 \"Changelog\" x 78 y 7644 48px/48px 510; rule y 7780 x 80-1360 1px rgba(255,255,255,0.08) with an ~8px dot at each column start (newest dot red, others grey #62666D on a dark ring); entries 272px wide at x 80, 416, 752, 1088 (336px pitch), y 7844: title 15px/24px 510 #D0D6E0, excerpt 15px/24px #8A8F98 clamped to 2 lines with ellipsis, date 12px/16.8px mono uppercase #62666D at y 7944. \"View all ->\" at x 78 y 8042 links /changelog",
          "phone": "hidden on phone (hide-mobile)",
          "anatomy": [
            "Each entry is one link to /changelog/<date-slug>",
            "Dates read like OCT 22, 2026 (mono, uppercase)",
            "Timeline marker (measured 2026-10-30, .changelogIndicator): a 32x32 square filled #08090A sits over the rule at each column start (x 68, 404, 740, 1076; y 7764), masking the line. Centred inside it: a 20px circle in the dot colour at opacity 0.1 (the halo) and a 6px solid dot in the dot colour. Dot colour: newest #EB5757, the other three #62666D. Never a bare dot."
          ],
          "components": [
            "timeline rule",
            "changelog entry"
          ],
          "copy": [
            "Entry 1: \"Slack and GitHub loop triggers\" / \"Loops automate product work by responding to changes in Linear and connected tools. You can now trigger them from Slack and GitHub, share them as templates, and customize their reasoning levels.\" / OCT 22, 2026",
            "Entry 2: \"Stacked pull requests\" / \"Stacked pull requests are now displayed in Linear Diffs. Move through a stack and see review, CI, and merge status at a glance. Related PRs are grouped into a single collapsible row in Reviews, alongside their issue and project context.\" / OCT 8, 2026",
            "Entry 3: \"New controls for Linear coding agent\" / \"Coding sessions are the shortest path from issue to diff. Assign a task to Linear Agent, and it works in a secure cloud environment to write and test the code before opening a pull request for review.\" / SEP 24, 2026",
            "Entry 4: \"Loops for product management\" / \"Loops are recurring agent workflows for teams. They now respond to more workspace activity, including changes to initiatives, projects, and cycles. They can also edit Linear documents and post updates to Slack.\" / SEP 10, 2026",
            "Excerpts clamp to 2 lines with an ellipsis. Link: \"View all →\""
          ],
          "copy_prov": "observed, verbatim, https://linear.app/ (2026-10-30); changelog entries are live content and rotate"
        },
        {
          "name": "Customer quotes",
          "summary": "Two coloured quote cards side by side inside a 1px #23252A outline: a wide OpenAI card (pastel blue-violet with a huge white logo watermark) and a narrow Ramp card (lime), then a proof line with Customer stories ->.",
          "ground": "#08090A",
          "desktop": "outline box x 48 y 8226 w 1344 h 492 (1px #23252A, padding 12px); cards 8px apart: OpenAI 880x480 at x 60 (radius 8px, linear-gradient(#B2D5FF, #DFD1FF) under a 40% white layer; 1200px white OpenAI mark watermark offset right), Ramp 432x480 at x 948 (#E4F222, radius 8px); card padding 24px 32px. Quote 32px/36px 400 -0.704px #08090A with text-indent -12.8px (hanging opening quote), max 550px / 368px; attribution row at the bottom: 64px logo (#08090A), 1px rgba(8,9,10,0.05) divider, name 14px/21px 510 and role 14px/21px 400 #08090A. Proof line y 8766: \"Linear powers over 40,000 product teams. From ambitious startups to major enterprises.\" 15px #8A8F98 with 40,000 in #F7F8F8 at x 80; \"Customer stories ->\" right-aligned ending x 1360, href /customers",
          "phone": "Horizontal carousel of 320x360 cards (8px gap, from x 8, y 4276): OpenAI, Ramp, then a third Opendoor card; quote 24px/31.92px -0.288px with text-indent -10.8px in a 232px column; attribution shows company only (Gabriel Peal / OpenAI). Proof line hidden",
          "anatomy": [
            "Cards link to /customers/openai and /customers/ramp",
            "Hover: no lift measured",
            "Use customer-cards-desk@2x.png for the at-rest look, logos from quote-*.svg",
            "SETTLED r1, desktop geometry (measured 2026-10-30): outline box padding is 12px 12px 0 (no bottom padding; 12+480 = 492). Card padding 24px 32px, so quote text starts at x 92 in the OpenAI card (card x 60) and x 980 in the Ramp card (card x 948), y 8262. OpenAI quote box 550px (3 lines, 108px); Ramp quote box 368px (3 lines). Attribution row at y 8652, 42px tall: logo box x 92-142 (50px wide), then a text block with padding-left 18px: name at x 161 (14px/21px 510), role directly below at y 8673 (14px/21px 400). No 64px logo boxes, no 24px gaps on desktop.",
            "SETTLED r1, phone: cards 320x360 from x 8 (8px gap), card padding 20px 60px 28px 28px, so the quote starts x 36, y 4296, column 232px; attribution at y 4566: 48px logo box (x 36-84) then name at x 101 (block padding-left 16px), company name under it (phone shows company, not role). Ground of the off-screen Opendoor card is not measured; it never shows in the at-rest screenshot."
          ],
          "components": [
            "quote card"
          ],
          "copy": [
            "OpenAI card: \"You’ll probably build a better product, just because of the craft that using Linear infuses on your brain.\" — Gabriel Peal, Staff Software Engineer, OpenAI",
            "Ramp card: \"Our speed is intense and Linear helps us be action biased.\" — Nik Koblov, Head of Engineering, Ramp",
            "Phone only, third card (off-screen at rest, x 664): \"Linear is excellent, just excellent. It has the right opinions for fast moving teams.\" — Kaz Nejatian, Opendoor (links /customers/opendoor)",
            "Proof line: \"Linear powers over 40,000 product teams. From ambitious startups to major enterprises.\" + \"Customer stories →\""
          ],
          "copy_prov": "observed, verbatim, https://linear.app/ (2026-10-30)"
        },
        {
          "name": "Prefooter CTA",
          "summary": "Centred 72px two-line closing line and two centred pills.",
          "ground": "#08090A",
          "desktop": "margin 224px 0; H2 \"Built for the future. / Available today.\" 72px/72px 510 -1.584px #F7F8F8 centred at y 9014 (722px box at x 359); buttons y 9198, 12px apart, centred: Get started (127x44, #E5E5E6 pill, text #08090A 16px/510, padding 0 20px) and Contact sales (144x44, rgba(255,255,255,0.05) fill, #F7F8F8 text, ring inset 0 0 0 1px rgba(255,255,255,0.03) + 0 0 0 1px rgba(0,0,0,0.6))",
          "phone": "H2 38px/41.8px -0.836px centred, 2 lines at y 4735; same two pills side by side at y 4858 (x 54 and 193)",
          "anatomy": [
            "Get started -> /signup, Contact sales -> /contact/sales",
            "Hover: Get started fill #FFFFFF; Contact sales fill #191A1B"
          ],
          "components": [
            "button primary pill",
            "button ghost pill"
          ]
        }
      ],
      "footer": {
        "summary": "Hairline-topped dark footer: logomark alone at left, five link columns, legal row underneath. No copyright, address or phone line is printed on the homepage (checked 2026-10-30).",
        "ground": "#08090A, border-top 1px #23252A",
        "anatomy": [
          "y 9466-9960 (494px); logomark 20x20 #F7F8F8 at x 80 y 9523 linking /",
          "Columns at x 304, 528, 752, 976, 1200 (224px pitch, 160px wide); heading 13px/19.5px 510 #F7F8F8 at y 9523; links 13px/19.5px 400 #8A8F98 in 28px rows on a 30px pitch starting 44px below; hover #F7F8F8",
          "Product: Intake, Plan, AI, Build, Pricing, Security",
          "Features: Asks, Agents, Coding Sessions, Customer Requests, Insights, Mobile, Integrations, Changelog",
          "Company: About, Customers, Careers, Now, Method, Quality, Brand",
          "Resources: Switch, Download, Documentation, Developers, Status (linearstatus.com), Enterprise, Startups",
          "Connect: Contact us, Community (/join-slack), X (Twitter), GitHub, YouTube",
          "Legal row y 9885 at x 304: Privacy, Terms, DPA, AUP (13px #62666D, ~20px apart)",
          "No copyright line, address or phone number on the page"
        ],
        "phone": "No logomark; two columns at x 24 and x 211 (155px wide): Product | Features, Company | Resources, Connect | Legal (Privacy, Terms, DPA, AUP); Documentation is labelled \"Docs\"; group gap ~70px; footer y 4998-5876"
      },
      "dark_ground": {
        "secondary_button": "Contact sales: rgba(255,255,255,0.05) fill, #F7F8F8 16px/510 text, pill, inset 1px rgba(255,255,255,0.03) ring + 1px rgba(0,0,0,0.6) outer ring; hover #191A1B",
        "link": "15px #8A8F98 label + #62666D arrow; hover label #F7F8F8",
        "muted_text_hex": "#8A8F98 (body), #62666D (eyebrows, arrows, legal)",
        "hairline_hex": "rgba(255,255,255,0.08) on #08090A, solid equivalent #23252A",
        "logo_variant": "white wordmark/logomark in #F7F8F8 (the guide's Mercury White #F4F5F8 in brand pieces)"
      },
      "section_separator": "Between the statement/benefits and each feature section (desktop y 2504, 3772, 5011, 6253, 7482; phone 1858, 2482, 3067, 3648): a full-bleed 2px rule = 1px #000000 line then 1px rgba(255,255,255,0.08) keyline"
    },
    "bands": [
      {
        "label": "Navigation",
        "ground": "#08090A",
        "content": "wordmark; Product, Resources, Customers, Pricing, Now, Contact; divider; Log in; Sign up",
        "desktop": "fixed 73px, translucent blur, 1px white-8% hairline",
        "phone": "65px: wordmark, Log in, Sign up, hamburger",
        "anatomy": [
          "Links 13px #8A8F98 pills, Sign up #E5E5E6 pill"
        ]
      },
      {
        "label": "Hero",
        "ground": "#08090A",
        "content": "64px two-line headline, lead, New Loops link, app frame on a glowing stage",
        "desktop": "y 73-1295; H1 y 272; frame 1320x720 at y 527",
        "phone": "y 65-911; H1 38px 4 lines; frame bleeds right",
        "anatomy": [
          "App frame is a capture (hero-app-frame-desk@2x.png)",
          "Stage gradient #08090A to #D0D6E0 at the bottom"
        ]
      },
      {
        "label": "Logo row",
        "ground": "#08090A",
        "content": "7 white customer wordmarks + mono eyebrow",
        "desktop": "y 1407-1500, space-between across 1280px",
        "phone": "marquee, eyebrow at y 1011",
        "anatomy": [
          "POWERING THE COMPANIES BUILDING THE FUTURE 12px mono #62666D"
        ]
      },
      {
        "label": "Statement",
        "ground": "#08090A",
        "content": "two-tone 48px statement",
        "desktop": "y 1596, 3 lines",
        "phone": "24px, 6 lines",
        "anatomy": [
          "First sentence #F7F8F8, rest #8A8F98"
        ]
      },
      {
        "label": "Benefits",
        "ground": "#08090A",
        "content": "FIG 0.1-0.3 drawings with titles",
        "desktop": "3 hairline columns, y 1876-2344",
        "phone": "carousel of #0F1011 cards 328x440",
        "anatomy": [
          "Line-art SVGs supplied"
        ]
      },
      {
        "label": "Intake and integrations",
        "ground": "#08090A",
        "content": "header, Slack thread + board illustration, features row",
        "desktop": "y 2546-3772, padding 128 0",
        "phone": "illustration then header",
        "anatomy": [
          "Capture intake-illustration-desk@2x.png"
        ]
      },
      {
        "label": "Planning and monitoring",
        "ground": "#08090A",
        "content": "header, timeline + cycle-time chart, features row",
        "desktop": "y 3782-5011",
        "phone": "timeline then header",
        "anatomy": [
          "Capture planning-illustration-desk@2x.png"
        ]
      },
      {
        "label": "AI and automations",
        "ground": "#08090A",
        "content": "header, four agent panels, features row",
        "desktop": "y 5021-6253",
        "phone": "assign picker then header",
        "anatomy": [
          "Capture ai-agents-illustration-desk@2x.png"
        ]
      },
      {
        "label": "Build, review, and ship",
        "ground": "#08090A",
        "content": "header, issue list + diff, features row",
        "desktop": "y 6263-7483",
        "phone": "diff then header",
        "anatomy": [
          "Capture build-diff-illustration-desk@2x.png"
        ]
      },
      {
        "label": "Changelog",
        "ground": "#08090A",
        "content": "title, dotted timeline, four entries, View all",
        "desktop": "y 7644-8066",
        "phone": "hidden",
        "anatomy": [
          "Dates in mono uppercase"
        ]
      },
      {
        "label": "Customer quotes",
        "ground": "#08090A",
        "content": "OpenAI gradient card + Ramp lime card, proof line",
        "desktop": "y 8226-8790 inside 1px #23252A outline",
        "phone": "carousel of 320x360 cards",
        "anatomy": [
          "Quote 32px #08090A with hanging quote"
        ]
      },
      {
        "label": "Prefooter CTA",
        "ground": "#08090A",
        "content": "Built for the future. Available today. + Get started, Contact sales",
        "desktop": "72px centred, y 9014-9242",
        "phone": "38px centred",
        "anatomy": [
          "224px margin above and below"
        ]
      },
      {
        "label": "Footer",
        "ground": "#08090A",
        "content": "logomark, 5 link columns, legal row",
        "desktop": "y 9466-9960, top border #23252A",
        "phone": "2-column grid, Legal as a sixth group",
        "anatomy": [
          "No copyright line"
        ]
      }
    ],
    "layout": {
      "page_margin": {
        "desktop": 80,
        "phone": 24
      },
      "section_padding": {
        "desktop": 128,
        "phone": 40
      },
      "container_max": 1344,
      "hero_text_max": 1280,
      "columns": 2,
      "columns_phone": 1,
      "gutter": 32,
      "gutter_phone": 16,
      "card_gap": 8,
      "nav_height": 73,
      "note": "Measured on https://linear.app/ (2026-10-30) at 1440 and 390. Shell: --homepage-max-width calc(1344px + 46px*2) with padding 0 46px puts the 1344px container at x 48-1392; --homepage-padding-inset 32px puts text at x 80-1360 (1280px). Feature headers are two columns: title from x 80 (542px) and lead from x 752 (566px, i.e. the right half starts at the container midpoint + 32). Feature sections: padding 128px 0, header 156px + 96px bottom padding, illustration ~626px, features row ~56-84px. Prefooter margin 224px 0. Phone: 16px container (x 16-374) with 8px text inset (text x 24), section header padding 40px 0 48px, carousels with 8px gaps starting x 8. Nav 73px desktop (72 + 1px), 65px phone. CSS radii scale: 4, 6, 8, 12, 16, 24, 32, 9999.",
      "prov": "observed",
      "source": "https://linear.app/ (2026-10-30)"
    },
    "type": [
      {
        "role": "Prefooter H2",
        "id": "display-xxl",
        "face": "display",
        "size": {
          "desktop": 72,
          "phone": 38
        },
        "line_height": 1,
        "tracking_px": -1.584,
        "weight": 510,
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)",
        "tracking_phone_px": -0.836,
        "color": "#F7F8F8",
        "note": "phone line-height 41.8px (1.1)"
      },
      {
        "role": "Hero H1",
        "id": "display-xl",
        "face": "display",
        "size": {
          "desktop": 64,
          "phone": 38
        },
        "line_height": 1,
        "tracking_px": -1.408,
        "weight": 510,
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)",
        "tracking_phone_px": -0.836,
        "color": "#F7F8F8",
        "note": "phone line-height 41.8px (1.1); -0.022em"
      },
      {
        "role": "Section H2 / statement",
        "id": "display-l",
        "face": "display",
        "size": {
          "desktop": 48,
          "phone": 24
        },
        "line_height": 1,
        "tracking_px": -1.056,
        "weight": 510,
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)",
        "tracking_phone_px": -0.288,
        "color": "#F7F8F8",
        "note": "phone line-height 31.92px (1.33); statement is two-tone #F7F8F8 then #8A8F98"
      },
      {
        "role": "Quote",
        "id": "quote",
        "face": "body",
        "size": {
          "desktop": 32,
          "phone": 24
        },
        "line_height": 1.125,
        "tracking_px": -0.704,
        "weight": 400,
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)",
        "tracking_phone_px": -0.288,
        "color": "#08090A",
        "note": "text-indent -0.4em (-12.8px / -10.8px) to hang the opening quote; phone line-height 31.92px"
      },
      {
        "role": "Section lead",
        "id": "lead",
        "face": "body",
        "size": {
          "desktop": 24,
          "phone": 15
        },
        "line_height": 1.33,
        "tracking_px": -0.288,
        "weight": 400,
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)",
        "tracking_phone_px": -0.165,
        "color": "#D0D6E0",
        "note": "desktop #D0D6E0; phone 15px/24px #8A8F98"
      },
      {
        "role": "Body / small title",
        "id": "body",
        "face": "body",
        "size": {
          "desktop": 15,
          "phone": 15
        },
        "line_height": 1.6,
        "tracking_px": -0.165,
        "weight": 400,
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)",
        "tracking_phone_px": -0.165,
        "color": "#8A8F98",
        "note": "titles use 510 #D0D6E0; body #8A8F98"
      },
      {
        "role": "Prefooter button",
        "id": "button-l",
        "face": "body",
        "size": {
          "desktop": 16,
          "phone": 16
        },
        "line_height": 2.75,
        "tracking_px": 0,
        "weight": 510,
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)",
        "note": "44px pill, line-height 44px"
      },
      {
        "role": "Attribution",
        "id": "caption",
        "face": "body",
        "size": {
          "desktop": 14,
          "phone": 14
        },
        "line_height": 1.5,
        "tracking_px": -0.182,
        "weight": 400,
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)",
        "tracking_phone_px": -0.182,
        "note": "name 510, role 400, #08090A on cards"
      },
      {
        "role": "Nav / footer link",
        "id": "ui",
        "face": "body",
        "size": {
          "desktop": 13,
          "phone": 13
        },
        "line_height": 1.5,
        "tracking_px": 0,
        "weight": 400,
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)",
        "note": "footer headings and Sign up 510; nav #8A8F98"
      },
      {
        "role": "Mono eyebrow / date",
        "id": "mono-label",
        "face": "mono",
        "size": {
          "desktop": 12,
          "phone": 12
        },
        "line_height": 1.4,
        "tracking_px": 0,
        "weight": 400,
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)",
        "note": "uppercase; #62666D (eyebrow, dates) or #8A8F98 (FIG labels); Berkeley Mono on site, IBM Plex Mono stand-in"
      }
    ],
    "components": {
      "button_primary_pill": {
        "fill": "#E5E5E6",
        "text": "#08090A",
        "border": "1px solid #E5E5E6",
        "ring_px": 1,
        "ring": "#E5E5E6",
        "radius": "pill",
        "height": 44,
        "padding_x": 20,
        "padding": "0 20px",
        "font_size": 16,
        "weight": 510,
        "face": "body",
        "text_style": "16px/44px Inter Variable 510",
        "shadow": "0 1px 1px rgba(0,0,0,0.07), 0 3px 2px rgba(0,0,0,0.04), 0 5px 2px rgba(0,0,0,0.01)",
        "example": "Get started (127x44); nav Sign up is the 32px size: 13px/510, padding 0 12px, 73x32",
        "transition": "border, background-color, color 0.16s cubic-bezier(0.25,0.46,0.45,0.94)",
        "states": {
          "hover": {
            "css": {
              "background-color": "#FFFFFF"
            },
            "measured": {
              "fill": "#FFFFFF"
            },
            "prov": "observed"
          }
        },
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      "button_ghost_pill": {
        "fill": "#141516",
        "text": "#F7F8F8",
        "radius": "pill",
        "height": 44,
        "padding_x": 20,
        "padding": "0 20px",
        "font_size": 16,
        "weight": 510,
        "face": "body",
        "text_style": "16px/44px Inter Variable 510",
        "shadow": "inset 0 0 0 1px rgba(255,255,255,0.03), inset 0 1px 0 rgba(255,255,255,0.04), 0 0 0 1px rgba(0,0,0,0.6), 0 4px 4px rgba(0,0,0,0.1)",
        "example": "Contact sales (144x44)",
        "states": {
          "hover": {
            "css": {
              "background-color": "#191A1B"
            },
            "measured": {
              "fill": "#191A1B"
            },
            "prov": "observed"
          }
        },
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)",
        "css_fill": "rgba(255,255,255,0.05) over #08090A (renders #141516)"
      },
      "nav_link_pill": {
        "fill": "none",
        "text": "#8A8F98",
        "radius": "pill",
        "height": 32,
        "padding_x": 12,
        "padding": "0 12px",
        "font_size": 13,
        "weight": 400,
        "face": "body",
        "example": "Customers, Pricing, Log in",
        "transition": "color, background 0.1s cubic-bezier(0.25,0.46,0.45,0.94)",
        "states": {
          "hover": {
            "css": {
              "color": "#F7F8F8",
              "background-color": "rgba(255,255,255,0.08)"
            },
            "measured": {
              "text": "#F7F8F8",
              "fill": "rgba(255,255,255,0.08)"
            },
            "prov": "observed"
          }
        },
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      "learn_more_link": {
        "text": "#8A8F98",
        "arrow": "#62666D",
        "font_size": 15,
        "weight": 400,
        "face": "body",
        "anatomy": "label + 2px gap + right arrow glyph in a 22x32 span; radius 4px focus ring",
        "example": "Learn more ->, View all ->, Customer stories ->",
        "states": {
          "hover": {
            "css": {
              "color": "#F7F8F8"
            },
            "measured": {
              "label": "#F7F8F8",
              "arrow": "#62666D"
            },
            "prov": "observed"
          }
        },
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      "features_link": {
        "text": "#8A8F98",
        "plus": "#62666D 18px/28.8px",
        "font_size": 15,
        "weight": 400,
        "face": "body",
        "anatomy": "label + 8px + \"+\" glyph; items stacked on a 28px pitch in two 304px columns, the right column with a 1px rgba(255,255,255,0.08) rule on its left",
        "example": "Linear Agent +",
        "states": {
          "hover": {
            "css": {
              "color": "#FFFFFF"
            },
            "measured": {
              "label": "#FFFFFF",
              "plus": "#8A8F98"
            },
            "prov": "observed"
          }
        },
        "note": "Each opens an inline feature preview (not measured)",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      "footer_link": {
        "text": "#8A8F98",
        "font_size": 13,
        "weight": 400,
        "face": "body",
        "states": {
          "hover": {
            "css": {
              "color": "#F7F8F8"
            },
            "measured": {
              "text": "#F7F8F8"
            },
            "prov": "observed"
          }
        },
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      "illustration_panel": {
        "fill": "#0F1011",
        "border": "1px solid rgba(255,255,255,0.08) or inset ring 0 0 0 1px #23252A",
        "radius": 12,
        "anatomy": "2% white wash, a 512px grain PNG overlay (grain.png), a 400px radial glow rgba(255,255,255,0.04) at one corner, a top-edge highlight radial-gradient at the corner nearest the light; panels fade into #08090A at the bleeding edge",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      "quote_card": {
        "radius": 8,
        "padding": "24px 32px",
        "text": "#08090A",
        "anatomy": "quote top-left 32px with -0.4em hanging indent; bottom row: 64px company logo, 1px rgba(8,9,10,0.05) rule, name 14px/510 + role 14px/400",
        "grounds": "OpenAI linear-gradient(#B2D5FF, #DFD1FF) + 40% white layer; Ramp #E4F222",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      "benefit_card_phone": {
        "fill": "#0F1011",
        "border": "1px solid rgba(255,255,255,0.05)",
        "radius": 8,
        "padding": "0 24px 28px",
        "size": "328x440",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      }
    },
    "motion": [
      {
        "name": "ui-fast",
        "easing": "cubic-bezier(0.25, 0.46, 0.45, 0.94)",
        "duration_ms": 100,
        "use": "Nav link colour and background, header border/background changes",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "button",
        "easing": "cubic-bezier(0.25, 0.46, 0.45, 0.94)",
        "duration_ms": 160,
        "use": "Pill buttons: border, background-color and colour on hover",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "hero-entrance",
        "use": "Headline words and the app frame fade/slide in on load; animation only, build the end state",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      },
      {
        "name": "logo-marquee-phone",
        "use": "On phone the customer logo row scrolls horizontally as a marquee; desktop is static",
        "prov": "observed",
        "source": "https://linear.app/ (2026-10-30)"
      }
    ]
  },
  "system": {
    "fixed": [
      "Linear spelled as one word, capital L",
      "Monochrome mark in Mercury White #F4F5F8 or Nordic Gray #222326, with space around it",
      "Inter, with Inter Display headings",
      "Neutral, low-chroma grounds; chrome recedes, content leads",
      "Plain, brief language"
    ],
    "flex": "Light or dark ground, and how much product UI imagery a piece carries.",
    "traits": [
      {
        "is": "Plain",
        "not": "Jargon-filled",
        "text": "Use common words; don't invent terms (paraphrase).",
        "prov": "published",
        "source": "https://linear.app/method/introduction"
      },
      {
        "is": "Brief",
        "not": "Exhaustive",
        "text": "Short specs and issues get read (paraphrase).",
        "prov": "published",
        "source": "https://linear.app/method/introduction"
      },
      {
        "is": "Opinionated",
        "not": "Dogmatic",
        "text": "Takes positions (purpose-built over flexible) and explains why (our reading).",
        "prov": "inferred",
        "source": "https://linear.app/method/introduction"
      },
      {
        "is": "Calm",
        "not": "Loud",
        "text": "Don't compete for attention you haven't earned (paraphrase).",
        "prov": "published",
        "source": "https://linear.app/now/behind-the-latest-design-refresh"
      },
      {
        "is": "Crafted",
        "not": "Decorated",
        "text": "Care for the tiniest details, most of which you shouldn't notice (paraphrase).",
        "prov": "published",
        "source": "https://linear.app/now/how-we-redesigned-the-linear-ui",
        "also": [
          "https://linear.app/now/behind-the-latest-design-refresh"
        ]
      }
    ]
  },
  "formats": [
    {
      "format": "Landing page",
      "level": 2,
      "must": "Build it the way linear.app is built (kit.spec.page, from the anatomy step): neutral ground, monochrome wordmark top left with space around it, Inter Display sentence-case headline, Inter body, product UI imagery, dim chrome, few low-contrast borders",
      "flex": "light or dark ground; which sections and how much UI imagery"
    },
    {
      "format": "Deck",
      "level": 1,
      "must": "Neutral ground, monochrome mark, Inter Display headings, one idea per slide in plain words",
      "flex": "dark or light; product screenshots"
    },
    {
      "format": "Proposal page",
      "level": 1,
      "must": "Neutral ground, Inter, plain brief copy, sourced claims only",
      "flex": "one product image"
    },
    {
      "format": "Social",
      "level": 2,
      "must": "Icon with a corner radius as the avatar; monochrome mark; plain headline",
      "flex": "product UI crop"
    }
  ],
  "checks": [
    {
      "name": "Logo hidden",
      "text": "Cover the mark. It should still read as Linear: near-monochrome neutral ground, Inter Display headline, dim chrome around one focused content area, and a few plain words."
    },
    {
      "name": "Swap test",
      "text": "Put another project tool's logo on it. If the calm, the restraint and the plain copy don't feel out of place, it's generic, and it goes back."
    },
    {
      "name": "Noise check",
      "text": "Remove one border, icon or color. If nothing is lost, leave it out."
    }
  ],
  "make_it_yours": {
    "note": "Everything above transfers. These are Linear's own and must be replaced with yours: name and logo, purpose, positioning, messaging pillars, proof, taglines and boilerplate.",
    "replace": [
      "identity",
      "purpose",
      "positioning",
      "messaging.pillars",
      "messaging.proof_points",
      "messaging.taglines",
      "messaging.boilerplate"
    ],
    "reference": {
      "purpose": {
        "mission": {
          "label": "Purpose",
          "text": "Bring back the lost art of building quality software: the foundational ideas Linear is built on (paraphrase of the Method's opening).",
          "prov": "published",
          "source": "https://linear.app/method"
        },
        "story": {
          "text": "Founded in 2019 by Karri Saarinen, Jori Lallo and Tuomas Artman. Linear announced the company before the product existed, then launched again at seed, at general availability with pricing, and at Series A. It redesigned its UI in 2024, rebuilt Liquid Glass its own way for mobile in 2025, and refreshed toward a calmer, warmer interface in 2026.",
          "prov": "published",
          "source": "https://linear.app/method/launching",
          "also": [
            "https://linear.app/about",
            "https://linear.app/now/how-we-redesigned-the-linear-ui",
            "https://linear.app/now/linear-liquid-glass",
            "https://linear.app/now/behind-the-latest-design-refresh"
          ],
          "paraphrase": true
        },
        "values": [
          {
            "name": "Build for the creators",
            "means": "Keep the people doing the work productive before producing perfect reports (paraphrase).",
            "prov": "published",
            "source": "https://linear.app/method/introduction"
          },
          {
            "name": "Purpose-built",
            "means": "Opinionated software over endlessly flexible software (paraphrase).",
            "prov": "published",
            "source": "https://linear.app/method/introduction"
          },
          {
            "name": "Create momentum, don't sprint",
            "means": "A steady cadence, not a rush to the end (paraphrase).",
            "prov": "published",
            "source": "https://linear.app/method/introduction"
          },
          {
            "name": "Meaningful direction",
            "means": "Tie daily tasks to long-term goals (paraphrase).",
            "prov": "published",
            "source": "https://linear.app/method/introduction"
          },
          {
            "name": "Aim for clarity",
            "means": "Use common words; projects are projects (paraphrase).",
            "prov": "published",
            "source": "https://linear.app/method/introduction"
          },
          {
            "name": "Say no to busy work",
            "means": "The tool works for you; remove work around work (paraphrase).",
            "prov": "published",
            "source": "https://linear.app/method/introduction"
          },
          {
            "name": "Simple first, then powerful",
            "means": "Easy to start, more powerful as you scale (paraphrase).",
            "prov": "published",
            "source": "https://linear.app/method/introduction"
          },
          {
            "name": "Decide and move on",
            "means": "Making a decision often matters more than the perfect answer (paraphrase).",
            "prov": "published",
            "source": "https://linear.app/method/introduction"
          }
        ]
      },
      "positioning": {
        "statement": {
          "text": "A purpose-built system for product development, where teams and agents work in one shared, structured environment (paraphrase).",
          "prov": "observed",
          "source": "https://linear.app/about",
          "source_note": "2026-10-30"
        },
        "category": {
          "text": "Product development system (formerly issue tracking); the 2024 redesign framed the move from issue tracker to a system for product development.",
          "prov": "published",
          "source": "https://linear.app/now/how-we-redesigned-the-linear-ui"
        },
        "audience": {
          "text": "Product and engineering teams, from startups to larger, complex organizations including executives and managers (paraphrase).",
          "prov": "published",
          "source": "https://linear.app/now/linear-liquid-glass",
          "also": [
            "https://linear.app/about"
          ]
        },
        "problem": {
          "text": "Tools that make you their designer and maintainer, flexible workflows that turn to chaos at scale, and rituals like user stories that obscure the work (paraphrase).",
          "prov": "published",
          "source": "https://linear.app/method/introduction",
          "also": [
            "https://linear.app/method/write-issues-not-user-stories"
          ]
        },
        "promise": {
          "text": "A fast, calm tool that surfaces what you need when you need it and keeps momentum (paraphrase).",
          "prov": "published",
          "source": "https://linear.app/now/behind-the-latest-design-refresh"
        },
        "differentiators": [
          {
            "text": "Opinionated, purpose-built workflows (cycles, projects, initiatives) instead of blank-slate configuration.",
            "prov": "published",
            "source": "https://linear.app/method/introduction"
          },
          {
            "text": "Craft: interface detail work such as LCH theme generation, sidebar alignment and a custom glass material.",
            "prov": "published",
            "source": "https://linear.app/now/how-we-redesigned-the-linear-ui",
            "also": [
              "https://linear.app/now/linear-liquid-glass"
            ]
          },
          {
            "text": "Built for teams and AI agents together (agents API, AI integrations).",
            "prov": "published",
            "source": "https://linear.app/now/behind-the-latest-design-refresh",
            "also": [
              "https://linear.app/about"
            ]
          }
        ]
      },
      "messaging": {
        "taglines": [
          {
            "text": "The product development system for teams and agents",
            "prov": "observed",
            "source": "https://linear.app/",
            "source_note": "2026-10-30",
            "where": "Homepage hero headline"
          },
          {
            "text": "Building tools for the next era of product development",
            "prov": "observed",
            "source": "https://linear.app/about",
            "source_note": "2026-10-30",
            "where": "About page headline"
          },
          {
            "text": "Built for the future. Available today.",
            "prov": "observed",
            "source": "https://linear.app/about",
            "source_note": "2026-10-30",
            "where": "Closing call to action"
          }
        ],
        "boilerplate": {
          "text": "Linear is a purpose-built system for product development where teams and agents work together in one shared, structured environment. Founded in 2019, it is used by more than 40,000 companies, including OpenAI, Coinbase and Ramp, to plan, build and ship products.",
          "prov": "observed",
          "source": "https://linear.app/about",
          "source_note": "2026-10-30",
          "paraphrase": true
        },
        "pillars": [
          {
            "name": "Purpose-built",
            "claim": "Designed for the job of building product, so the tool does the heavy lifting instead of everyone inventing workflows.",
            "proof": [
              "p-companies",
              "p-method"
            ],
            "prov": "published",
            "source": "https://linear.app/method/introduction"
          },
          {
            "name": "Momentum",
            "claim": "Cycles, small issues and repeated launches keep teams moving without sprinting.",
            "proof": [
              "p-method",
              "p-changelog"
            ],
            "prov": "published",
            "source": "https://linear.app/method/introduction"
          },
          {
            "name": "Craft and quality",
            "claim": "Care for the smallest details; quality you feel rather than see.",
            "proof": [
              "p-redesign",
              "p-quality"
            ],
            "prov": "published",
            "source": "https://linear.app/now/behind-the-latest-design-refresh"
          },
          {
            "name": "Teams and agents",
            "claim": "One structured environment where people and AI agents work together.",
            "proof": [
              "p-companies"
            ],
            "prov": "observed",
            "source": "https://linear.app/about",
            "source_note": "2026-10-30"
          }
        ],
        "proof_points": [
          {
            "id": "p-companies",
            "kind": "stat",
            "text": "More than 40,000 companies use Linear, including OpenAI, Coinbase and Ramp (About page, 2026-10-30).",
            "prov": "observed",
            "source": "https://linear.app/about"
          },
          {
            "id": "p-method",
            "kind": "artifact",
            "text": "The Linear Method: published principles and practices for building product.",
            "prov": "published",
            "source": "https://linear.app/method"
          },
          {
            "id": "p-changelog",
            "kind": "practice",
            "text": "A public changelog and repeated launches (build in public).",
            "prov": "published",
            "source": "https://linear.app/method/build-in-public"
          },
          {
            "id": "p-redesign",
            "kind": "artifact",
            "text": "Full UI redesign shipped in about six weeks (2024).",
            "prov": "published",
            "source": "https://linear.app/now/how-we-redesigned-the-linear-ui"
          },
          {
            "id": "p-quality",
            "kind": "artifact",
            "text": "Conversations on Quality, an interview series on how quality gets built.",
            "prov": "published",
            "source": "https://linear.app/quality"
          }
        ],
        "claim_boundaries": [
          "No numeric performance, speed or ROI claims are published in the brand sources read here: don't invent them."
        ]
      }
    }
  }
}