flim___style_reference:
  info: "> Scattered polaroids on a sketchpad grid"

  theme: "light"

  info: "Flim's design language is a creative-tool's analog workspace: a vast light-gray canvas etched with a subtle grid, scattered with rounded polaroid-like image cards, and anchored by a single oversized custom wordmark. The system is 99% monochrome — near-black ink on warm light gray paper — with tiny, deliberate splashes of signal green, ember orange, and highlight yellow used as functional punctuation rather than decoration. Typography splits into three voices: a heavy custom display face (Swizzy) for the hero wordmark, a mono micro-typeface (PP Neue Montreal Mono) for navigation, labels, and search placeholders, and system Arial for body. Components feel loose and handmade rather than gridded: pill-shaped search bars, image thumbnails with a 16px radius floating asymmetrically, ghost navigation, and a single hard-edged black button. The grid pattern and scattered image layout evoke a corkboard or lightbox — the visual metaphor of a creative agency's working surface."

  tokens___colors:

    info: "| Name | Value | Token | Role |"
    info: "|------|-------|-------|------|"
    info: "| Ink | `#141414` | `--color-ink` | Primary text, nav links, icon strokes, image card borders, filled button background, the dominant near-black that carries the entire UI |"
    info: "| Paper | `#ffffff` | `--color-paper` | Text on dark surfaces, surface highlights, card surfaces floating above the canvas, button text on filled actions |"
    info: "| Canvas | `#f5f5f5` | `--color-canvas` | Page background, search bar fills, the warm light gray that is the base layer for everything |"
    info: "| Mist | `#e9e9e9` | `--color-mist` | Secondary surface fills, card backgrounds, alternating bands below the canvas, muted blocks |"
    info: "| Hairline | `#d9d9d9` | `--color-hairline` | Grid line strokes, subtle dividers, the near-invisible linework that creates the sketchpad texture |"
    info: "| Signal Green | `#30a81d` | `--color-signal-green` | Green outline accent for tags, dividers, and focused UI edges |"
    info: "| Forest | `#21935b` | `--color-forest` | Deeper green for icon borders, heading underlines, secondary green accents where Signal Green would be too bright |"
    info: "| Highlight Yellow | `#fecc33` | `--color-highlight-yellow` | Heading background highlight wash, warm tag fills — used as a marker-pen underline behind words, not as surface color |"
    info: "| Ember | `#ff8400` | `--color-ember` | Warm card accent backgrounds, orange UI moments — the rare heat in an otherwise cool palette |"

  tokens___typography:

    swizzy___the_hero_wordmark_and_large_display_moments__the_signature_choice__a_125px_display_at_weight_500_not_700_900__with_aggressively_tight__0_02em_tracking_and_sub_1_0_line_height__the_wordmark_feels_carved_rather_than_printed___a_confident_mid_weight_at_enormous_scale_instead_of_a_heavy_slab__the_slight_0_86_line_height_at_125px_is_the_signature_optical_correction_that_makes__flim__sit_perfectly_on_its_baseline_____font_swizzy:
      - "**Substitute:** Druk Wide, Migra, or Schibsted Grotesk at weight 500"
      - "**Weights:** 500"
      - "**Sizes:** 21px, 27px, 47px, 125px"
      - "**Line height:** 0.86, 1.00, 1.10"
      - "**Letter spacing:** -0.02em"
      - "**Role:** The hero wordmark and large display moments. The signature choice: a 125px display at weight 500 (not 700-900), with aggressively tight -0.02em tracking and sub-1.0 line-height. The wordmark feels carved rather than printed — a confident mid-weight at enormous scale instead of a heavy slab. The slight 0.86 line-height at 125px is the signature optical correction that makes 'Flim' sit perfectly on its baseline."

    pp_neue_montreal_mono___the_ui_micro_voice__navigation_labels___home___pricing___log_in___sign_up__search_bar_placeholders__and_the__trusted_by_the_brands_shaping_culture__eyebrow__the_wide_0_06em_tracking_transforms_ordinary_labels_into_engineered_labels___every_letter_is_spaced_like_a_diagram_annotation__this_is_the_mono_font_s_only_role__small__uppercase__precisely_tracked_____font_pp_neue_montreal_mono:
      - "**Substitute:** JetBrains Mono, IBM Plex Mono, or Space Mono at 400 with letter-spacing: 0.06em"
      - "**Weights:** 400"
      - "**Sizes:** 12px, 15px"
      - "**Line height:** 1.00"
      - "**Letter spacing:** 0.06em"
      - "**Role:** The UI micro-voice: navigation labels, 'HOME', 'PRICING', 'LOG-IN', 'SIGN-UP', search bar placeholders, and the 'TRUSTED BY THE BRANDS SHAPING CULTURE' eyebrow. The wide 0.06em tracking transforms ordinary labels into engineered labels — every letter is spaced like a diagram annotation. This is the mono font's only role: small, uppercase, precisely tracked."

    arial___body_and_secondary_text__a_system_font_is_the_deliberate_anti_statement___body_copy_doesn_t_try_to_be_distinctive__it_just_reads__16px_for_body__32px_for_larger_sub_claims__weight_700_for_emphasis_in_body_copy_____font_arial:
      - "**Substitute:** Inter, system-ui, or Helvetica"
      - "**Weights:** 400, 700"
      - "**Sizes:** 16px, 32px"
      - "**Line height:** 1.00, 1.13"
      - "**Role:** Body and secondary text. A system font is the deliberate anti-statement — body copy doesn't try to be distinctive, it just reads. 16px for body, 32px for larger sub-claims. Weight 700 for emphasis in body copy."

    type_scale:

      info: "| Role | Size | Line Height | Letter Spacing | Token |"
      info: "|------|------|-------------|----------------|-------|"
      info: "| caption | 12px | 12 | 0.72px | `--text-caption` |"
      info: "| body-sm | 15px | 15 | 0.9px | `--text-body-sm` |"
      info: "| subheading | 21px | 21 | — | `--text-subheading` |"
      info: "| heading-sm | 27px | 27 | — | `--text-heading-sm` |"
      info: "| heading | 32px | 36 | — | `--text-heading` |"
      info: "| heading-lg | 47px | 47 | — | `--text-heading-lg` |"
      info: "| display | 125px | 108 | -2.5px | `--text-display` |"

  tokens___spacing___shapes:

    base_unit: "4px"

    density: "comfortable"

    spacing_scale:

      info: "| Name | Value | Token |"
      info: "|------|-------|-------|"
      info: "| 4 | 4px | `--spacing-4` |"
      info: "| 8 | 8px | `--spacing-8` |"
      info: "| 12 | 12px | `--spacing-12` |"
      info: "| 16 | 16px | `--spacing-16` |"
      info: "| 20 | 20px | `--spacing-20` |"
      info: "| 24 | 24px | `--spacing-24` |"
      info: "| 28 | 28px | `--spacing-28` |"
      info: "| 32 | 32px | `--spacing-32` |"
      info: "| 40 | 40px | `--spacing-40` |"
      info: "| 52 | 52px | `--spacing-52` |"
      info: "| 64 | 64px | `--spacing-64` |"
      info: "| 80 | 80px | `--spacing-80` |"
      info: "| 100 | 100px | `--spacing-100` |"
      info: "| 180 | 180px | `--spacing-180` |"

    border_radius:

      info: "| Element | Value |"
      info: "|---------|-------|"
      info: "| cards | 16px |"
      info: "| links | 4px |"
      info: "| pills | 160px |"
      info: "| images | 16px |"
      info: "| buttons | 8px |"
      info: "| headings | 25px |"

    layout:

      - "**Section gap:** 80px"
      - "**Card padding:** 20px"
      - "**Element gap:** 24px"

  components:

    hero_wordmark:
      role: "The defining element — oversized brand display"

      info: "125px Swizzy weight 500, #141414, letter-spacing -2.5px (-0.02em), line-height 0.86. Occupies the left half of the hero. The wordmark IS the hero — no background art, no illustration, no decoration around it. The slightly tightened line-height (0.86) is the optical correction that makes the letters sit perfectly."

    ghost_navigation_link:
      role: "Top bar navigation items"

      info: "PP Neue Montreal Mono 12px, #141414, letter-spacing 0.72px (0.06em), uppercase. No background, no border — just tracked-out type. Used for HOME, PRICING, LOG-IN, SIGN-UP. Padding: 6px 0 vertically. Weight 400."

    filled_action_button:
      role: "The only filled button in the system"

      sign_up_button: "#141414 background, #ffffff text, 8px border-radius, ~20px horizontal padding, ~8px vertical padding. PP Neue Montreal Mono 12px, weight 400, letter-spacing 0.72px. The button is a solid black rectangle with rounded corners — no gradient, no shadow, no hover state complexity."

    avatar_badge_with_status_dot:
      role: "User identity indicator on the sign-up button"

      info: "Small circular avatar image (~24-32px) placed adjacent to or on the SIGN-UP button. Accompanied by a #30a81d Signal Green dot (~8px) to the right, indicating live/online status. The green dot is the only place Signal Green appears at significant prominence."

    pill_search_bar:
      role: "The signature input — floating search that looks like a lozenge"

      info: "Full-width pill shape with 160px border-radius (effectively fully rounded). Fill: #f5f5f5 (Canvas), no visible border. Placeholder text in PP Neue Montreal Mono 15px, letter-spacing 0.9px (0.06em), #141414, uppercase. A small filled action button ('SEARCH ⌘/') sits at the right end of the pill, #141414 background, #ffffff text, same 8px radius as the main button. Padding: ~16-20px vertical."

    image_thumbnail_card:
      role: "The core content unit — photo/video stills scattered across the canvas"

      info: "Rounded image with 16px border-radius. Floating on the #f5f5f5 canvas with a 1-2px #d9d9d9 hairline border. No shadow, no padding, no overlay text. The border is barely visible — the card feels pinned to the page rather than contained. Various sizes from ~150px to ~350px wide, placed in an asymmetric scattered grid."

    grid_background_pattern:
      role: "The structural texture of the entire page"

      info: "A repeating #d9d9d9 grid line pattern on the #f5f5f5 canvas. Lines are 1px, creating a subtle engineering-paper / sketchpad texture. The grid is visible enough to feel intentional but quiet enough to not compete with content. This pattern defines the entire page surface — it is the brand's surface, not a decorative overlay."

    hero_tagline_block:
      role: "Right-aligned hero copy"

      info: "Arial 32px, weight 400 (or 700), #141414, line-height 1.13. Right-aligned in the hero area, sitting opposite the wordmark. Three lines: a bold claim, a supporting line, a qualifier. No special treatment — just confident body text at heading scale."

    brand_logo_strip:
      role: "Social proof band"

      info: "A horizontal row of partner/brand logos (Zalando, BETC, etc.) in #141414, displayed in a single line with generous spacing. Above the row: PP Neue Montreal Mono 12px uppercase eyebrow text 'TRUSTED BY THE BRANDS SHAPING CULTURE' in #141414, letter-spacing 0.72px. The logos are monochrome — no color versions, no brand color bleed."

    eyebrow_label:
      role: "Small uppercase section markers"

      info: "PP Neue Montreal Mono 12px, weight 400, #141414, letter-spacing 0.72px (0.06em), uppercase. Used for section headers like 'TRUSTED BY THE BRANDS SHAPING CULTURE'. Center-aligned. The wide tracking is the signature — these labels feel like technical annotations on a blueprint."

    highlighted_heading:
      role: "Text with a marker-pen highlight background"

      info: "Heading text (#141414) with a #fecc33 background highlight behind specific words, creating a hand-marked effect. The highlight extends slightly beyond the text bounds with ~25px border-radius on the highlight block. The highlight is solid yellow — not a gradient, not translucent."

  do_s_and_don_ts:

    do:
      - "Use Swizzy at 125px with -2.5px letter-spacing and 0.86 line-height for the hero wordmark — never substitute a heavier weight to compensate for size."
      - "Apply 0.06em letter-spacing to all PP Neue Montreal Mono labels — the wide tracking IS the visual identity of navigation, eyebrows, and search placeholders."
      - "Use 16px border-radius for all image cards and thumbnails. 160px for all pill-shaped search bars and lozenge inputs. 8px for buttons. These three radii define the system."
      - "Set the page background to #f5f5f5 (Canvas) with a #d9d9d9 1px grid line pattern — the paper texture is the surface, not a background image."
      - "Use Signal Green (#30a81d) only for the status indicator dot and small accent borders. Never as a button fill, never as a large surface."
      - "Keep the layout loose and asymmetric. Scatter image cards at varying sizes and positions on the grid — do not force a rigid card grid."
      - "Default text color to #141414, never pure #000000 for body or headings. The near-black is warmer and sits better on #f5f5f5."

    don_t:
      - "Don't add drop shadows to any component. Elevation comes from border weight and surface color contrast, never from box-shadow."
      - "Don't use #000000 as a design color. Reserve it for SVG fills and input borders. The system's near-black is #141414."
      - "Don't use a font other than Swizzy for the hero wordmark, or PP Neue Montreal Mono for labels/nav. Arial is acceptable for body. No other typefaces."
      - "Don't create filled buttons in color. The only filled button is the #141414 SIGN-UP action. All other CTAs should be ghost or text links."
      - "Don't use Highlight Yellow (#fecc33) as a surface fill. It is a text-highlight marker, not a background — it should sit behind specific words, not fill containers."
      - "Don't center-align body text. Headings and body copy are left-aligned (or right-aligned in the hero block). Only eyebrows and section labels are center-aligned."
      - "Don't force image cards into a uniform grid. The scattered polaroid layout is the visual signature — equal-width equal-spaced grids break the metaphor."

  surfaces:

    info: "| Level | Name | Value | Purpose |"
    info: "|-------|------|-------|---------|"
    info: "| 0 | Canvas | `#f5f5f5` | Page background — the warm light gray paper that everything sits on |"
    info: "| 1 | Surface | `#ffffff` | Card surfaces, search bar fills, elevated white blocks above the canvas |"
    info: "| 2 | Raised | `#e9e9e9` | Secondary surface fills, muted blocks, alternating bands |"
    info: "| 3 | Accent | `#fecc33` | Highlight wash behind words — the marker-pen underline |"
    info: "| 4 | Ink | `#141414` | Darkest surface — filled button, image card borders, the near-black that grounds the system |"

  elevation:

    info: "This system deliberately avoids drop shadows. Elevation is created by border weight (1-2px hairlines in #d9d9d9 or #e9e9e9), by the subtle canvas-to-surface contrast (#f5f5f5 vs #ffffff), and by the 16px border-radius that makes cards feel placed rather than floating. Shadows would break the analog paper metaphor — these surfaces are printed on, not hovering in 3D space."

  imagery:

    info: "Photography is the primary content medium. Images are real photographs of cinematic subjects — knights on horseback, dramatic lighting, film-still quality — cropped tightly and displayed as rounded thumbnails. Images are never full-bleed, never overlapping, never masked into custom shapes. Each image sits in its own rounded card with a faint #d9d9d9 hairline border, placed at varying sizes (150-350px wide) in an asymmetric scattered arrangement on the grid canvas. The treatment is 'polaroid pinned to a sketchpad' — each photo is an object, not a backdrop. No illustrations, no 3D renders, no abstract graphics. Icons (when present) are simple and thin-stroke in #141414. The visual density is image-heavy: photo thumbnails occupy more visual space than text across the page."

  layout:

    info: "The page is full-bleed with no max-width container — content stretches edge to edge within the grid pattern. The hero is a split layout: oversized wordmark on the left (Swizzy 125px), right-aligned tagline block on the right, both on the #f5f5f5 canvas with the grid pattern visible. Below the hero, the layout shifts to a loose scattered image grid — image thumbnails float at different positions and sizes on the grid, with a centered pill search bar cutting through the middle. Further down, a brand logo strip runs full-width with generous vertical padding. The section rhythm is defined by vertical breathing room (80px+ gaps between major sections) and the consistent grid background, not by alternating light/dark bands. Navigation is a minimal top bar with ghost links left-aligned and the SIGN-UP action right-aligned, with no sticky behavior implied. The overall feel is a single continuous page that flows like a lightbox — each image card is a work-in-progress pinned to a shared surface."

  agent_prompt_guide:

  quick_color_reference:
    - "Primary text: #141414"
    - "Page background: #f5f5f5"
    - "Card/surface: #ffffff"
    - "Secondary surface: #e9e9e9"
    - "Hairline borders: #d9d9d9"
    - "Status/accent green: #30a81d"
    - "primary action: no distinct CTA color"

  example_component_prompts:

    - "**Hero Wordmark**: Render 'Flim' in Swizzy (or Druk Wide substitute) at 125px, weight 500, color #141414, letter-spacing -2.5px, line-height 0.86. No background, no decoration. Place on #f5f5f5 canvas with #d9d9d9 1px grid line pattern."

    - "**Pill Search Bar**: A full-width pill input with 160px border-radius, fill #f5f5f5, no visible border. Placeholder text 'SEARCH ANYTHING' in PP Neue Montreal Mono 15px, letter-spacing 0.9px, uppercase, #141414. Append a small filled button at the right end: #141414 background, #ffffff text 'SEARCH ⌘/', PP Neue Montreal Mono 12px, 8px border-radius, 8px 20px padding."

    - "**Image Thumbnail Card**: A photograph inside a rounded container with 16px border-radius, 1px solid #d9d9d9 border, no shadow, no padding around the image. Float on the #f5f5f5 grid canvas at varying widths (150-350px) in an asymmetric scattered arrangement."

    - "**Ghost Navigation Link**: PP Neue Montreal Mono 12px, weight 400, #141414, letter-spacing 0.72px, uppercase. No background, no border, no underline. Padding 6px 0. Used for nav items like HOME, PRICING, LOG-IN."

    - "**Eyebrow Label**: PP Neue Montreal Mono 12px, weight 400, #141414, letter-spacing 0.72px, uppercase, center-aligned. Example: 'TRUSTED BY THE BRANDS SHAPING CULTURE'. The wide tracking is essential — do not tighten."

  grid_system:

    info: "The page surface is defined by a #d9d9d9 1px grid line pattern on the #f5f5f5 canvas. This grid is not a layout grid for content alignment — it is a visual texture, like graph paper or engineering paper. Content (image cards, search bars, text blocks) sits on top of this grid and does not snap to it strictly. The grid creates the 'creative workspace' metaphor: the entire page IS the sketchpad, and content elements are objects placed on it. The grid should be subtle enough to not compete with content but visible enough to feel intentional. Use a repeating linear gradient or SVG pattern with 1px lines at ~32-40px intervals."

  radii_system:

    three_radii_define_the_entire_system: "8px for buttons (slight rounding, almost square), 16px for image cards and thumbnails (clearly rounded, friendly), and 160px for pill-shaped inputs and lozenges (fully rounded). A secondary 4px radius applies to small links and inline elements. The jump from 16px to 160px is intentional — there is no 24px, 32px, or 48px middle ground. This creates a clear visual language: containers are either 'rounded cards' or 'pills', with no ambiguous in-between."

  similar_brands:

    - "**Figma** — Same light canvas with content-as-objects approach, scattered image-grid hero layouts, and minimal top-bar navigation with a single filled CTA"
    - "**Linear** — Same near-black #141414-on-light-gray typographic confidence, with a single hero wordmark and generous whitespace"
    - "**Runway** — Same creative-tool metaphor of scattered image thumbnails on a neutral surface, with film-still photography as the primary content"
    - "**Are.na** — Same polaroid-pinned-to-board visual language — asymmetric scattered images on a textured light background, no rigid grid"
    - "**Pitch** — Same minimal navigation, single oversized wordmark hero, and monochrome canvas with tiny color accents"

  quick_start:

    css_custom_properties:

      css: |
        :root {
          /* Colors */
          --color-ink: #141414;
          --color-paper: #ffffff;
          --color-canvas: #f5f5f5;
          --color-mist: #e9e9e9;
          --color-hairline: #d9d9d9;
          --color-signal-green: #30a81d;
          --color-forest: #21935b;
          --color-highlight-yellow: #fecc33;
          --color-ember: #ff8400;
        
          /* Typography — Font Families */
          --font-swizzy: 'Swizzy', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
          --font-pp-neue-montreal-mono: 'PP Neue Montreal Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
          --font-arial: 'Arial', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
        
          /* Typography — Scale */
          --text-caption: 12px;
          --leading-caption: 12;
          --tracking-caption: 0.72px;
          --text-body-sm: 15px;
          --leading-body-sm: 15;
          --tracking-body-sm: 0.9px;
          --text-subheading: 21px;
          --leading-subheading: 21;
          --text-heading-sm: 27px;
          --leading-heading-sm: 27;
          --text-heading: 32px;
          --leading-heading: 36;
          --text-heading-lg: 47px;
          --leading-heading-lg: 47;
          --text-display: 125px;
          --leading-display: 108;
          --tracking-display: -2.5px;
        
          /* Typography — Weights */
          --font-weight-regular: 400;
          --font-weight-medium: 500;
          --font-weight-bold: 700;
        
          /* Spacing */
          --spacing-unit: 4px;
          --spacing-4: 4px;
          --spacing-8: 8px;
          --spacing-12: 12px;
          --spacing-16: 16px;
          --spacing-20: 20px;
          --spacing-24: 24px;
          --spacing-28: 28px;
          --spacing-32: 32px;
          --spacing-40: 40px;
          --spacing-52: 52px;
          --spacing-64: 64px;
          --spacing-80: 80px;
          --spacing-100: 100px;
          --spacing-180: 180px;
        
          /* Layout */
          --section-gap: 80px;
          --card-padding: 20px;
          --element-gap: 24px;
        
          /* Border Radius */
          --radius-md: 4px;
          --radius-lg: 8px;
          --radius-2xl: 16px;
          --radius-3xl: 25.0353px;
          --radius-full: 64px;
          --radius-full-2: 160px;
        
          /* Named Radii */
          --radius-cards: 16px;
          --radius-links: 4px;
          --radius-pills: 160px;
          --radius-images: 16px;
          --radius-buttons: 8px;
          --radius-headings: 25px;
        
          /* Surfaces */
          --surface-canvas: #f5f5f5;
          --surface-surface: #ffffff;
          --surface-raised: #e9e9e9;
          --surface-accent: #fecc33;
          --surface-ink: #141414;
        }

    tailwind_v4:

      css: |
        @theme {
          /* Colors */
          --color-ink: #141414;
          --color-paper: #ffffff;
          --color-canvas: #f5f5f5;
          --color-mist: #e9e9e9;
          --color-hairline: #d9d9d9;
          --color-signal-green: #30a81d;
          --color-forest: #21935b;
          --color-highlight-yellow: #fecc33;
          --color-ember: #ff8400;
        
          /* Typography */
          --font-swizzy: 'Swizzy', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
          --font-pp-neue-montreal-mono: 'PP Neue Montreal Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
          --font-arial: 'Arial', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
        
          /* Typography — Scale */
          --text-caption: 12px;
          --leading-caption: 12;
          --tracking-caption: 0.72px;
          --text-body-sm: 15px;
          --leading-body-sm: 15;
          --tracking-body-sm: 0.9px;
          --text-subheading: 21px;
          --leading-subheading: 21;
          --text-heading-sm: 27px;
          --leading-heading-sm: 27;
          --text-heading: 32px;
          --leading-heading: 36;
          --text-heading-lg: 47px;
          --leading-heading-lg: 47;
          --text-display: 125px;
          --leading-display: 108;
          --tracking-display: -2.5px;
        
          /* Spacing */
          --spacing-4: 4px;
          --spacing-8: 8px;
          --spacing-12: 12px;
          --spacing-16: 16px;
          --spacing-20: 20px;
          --spacing-24: 24px;
          --spacing-28: 28px;
          --spacing-32: 32px;
          --spacing-40: 40px;
          --spacing-52: 52px;
          --spacing-64: 64px;
          --spacing-80: 80px;
          --spacing-100: 100px;
          --spacing-180: 180px;
        
          /* Border Radius */
          --radius-md: 4px;
          --radius-lg: 8px;
          --radius-2xl: 16px;
          --radius-3xl: 25.0353px;
          --radius-full: 64px;
          --radius-full-2: 160px;
        }
