{
  "id": "felt-feed",
  "name": "Felt Feed",
  "tagline": "A 3 am doomscroll told in stitched felt: a moon in bed, a swipe-up feed of cut-paper mini-videos and a springy title card.",
  "description": "Vertical story-video style built from stitched felt and cut paper. A dark-teal bedroom with a patchwork quilt and a phone-lit moon character opens on a clock, then a full-screen feed swipes up between five tiny paper vignettes (handle, caption, like/comment/share rail, stitched progress bar, an orange felt finger doing the swiping) before dawn comes back to the room and a title card closes. Every shape has wobbly cut edges, a soft shadow and running-stitch dashes over a global felt grain.",
  "mood": ["cozy", "playful", "tactile"],
  "pacing": "medium",
  "format": "9:16",
  "width": 1080,
  "height": 1920,
  "durationSeconds": 9,
  "palette": {
    "wall": "#143a3f",
    "nightFloor": "#0d2c30",
    "cream": "#fff3d6",
    "felt": "#f6ecd2",
    "ink": "#2a1f2d",
    "coral": "#ee6c4d",
    "mustard": "#f2b83a",
    "sage": "#7fb08a",
    "plum": "#7a5aa0",
    "matGreen": "#3c8a62",
    "stageViolet": "#2c1b4d",
    "skyBlue": "#82cdea",
    "chick": "#ffd23f",
    "nightBlue": "#0f1a45",
    "fingerOrange": "#f08a3c"
  },
  "fonts": {
    "display": {
      "family": "Fredoka",
      "weights": [500, 600, 700],
      "source": "Google Fonts",
      "usage": "Clock, tabs, handles, counts, labels and banners 34–76px, weight 600, rounded and lowercase"
    },
    "body": {
      "family": "Patrick Hand",
      "weights": [400],
      "source": "Google Fonts",
      "usage": "Captions 46px on cream felt plates and comment bubbles 38–48px; the joke lives here. Gochi Hand 210px for the title card only"
    },
    "mono": {
      "family": "DM Mono",
      "weights": [500],
      "source": "Google Fonts",
      "usage": "Terminal vignette, 43–56px dark ink on cream paper"
    }
  },
  "easing": {
    "swipe": "back.out(1.15)",
    "pull": "sine.out",
    "stamp": "back.out(2.4)",
    "snap": "back.out(1.3)",
    "hatch": "elastic.out(1, 0.55)",
    "dance": "sine.inOut"
  },
  "transitions": [
    "feed swipe-up: card pulls down 34px for 0.1s, then springs up 2000px in 0.58s with back.out(1.15) while an orange felt finger drags it",
    "room to feed: first card slides over the bedroom, which leans in 14% toward the phone",
    "feed to room: the last card swipes away and the dawn room is revealed underneath",
    "title card springs up from the bottom over the room with back.out(1.15)"
  ],
  "textAnimations": [
    "labels drop in from above with back.out(1.8) and a stitched pill outline",
    "handle and caption plates slide in from the left (x -140) with back.out(1.6), 0.08s apart",
    "title lines scale 0.4 to 1 with back.out(2.4), 0.14s apart; pill and moon follow",
    "status clock hard-swaps on every swipe with a 1.2 to 1 scale pop; counter text counts up while checks land"
  ],
  "rhythm": {
    "averageShotSeconds": 1.3,
    "notes": "1.1s room, five vignettes of 0.9–1.65s that accelerate, 0.75s dawn room, 1.3s title. Every vignette has a set-up beat, a payoff beat (snap, dance, sort, check, hatch) and a comment bubble or sticker; a swipe starts every ~1.2s."
  },
  "tags": ["social", "felt", "papercraft", "vertical", "storytelling", "nighttime"],
  "guide": "- Build every shape as a flat fill inside a group filtered with feDisplacementMap (feTurbulence baseFrequency 0.035, scale 9 for big pieces, 5 for small) plus feDropShadow (dy 10, std 8, #030d0e at 0.45). Never rely on straight vector edges.\n- Add stitches with stroke-dasharray=\"14 11\", stroke #fff3d6, width 4–5, round caps, inset 12–20px from the cut edge on every plate, blanket patch and character; then lay one full-frame feTurbulence grain (baseFrequency 0.8, mapped to 0.74–1.04 grey) over everything with mix-blend-mode multiply.\n- Palette: dark teal #143a3f room, cream #fff3d6 / #f6ecd2 plates with ink #2a1f2d text, felt accents coral #ee6c4d, mustard #f2b83a, sage #7fb08a, plum #7a5aa0; each mini-video gets its own flat background (mat green, stage violet, sky blue, night teal, sunburst tan).\n- Feed chrome sits inside every card: Fredoka handle plate (rotate -1.5deg), Patrick Hand caption plate, heart/comment/share rail at x 880–1060 with counts, a clock top-left that advances each swipe, and a mustard stitched progress bar that refills per video.\n- Swipes are springs, not eases: pull down 34px (0.1s), then move one card (2000px incl. an 80px dark seam) in 0.58s with back.out(1.15); an orange felt finger drags up 700px just before. Space swipes 0.9–1.65s apart and give each card one punchy joke beat in the first 0.8s.\n- Each vignette is a tiny character gag with faces on simple shapes: brackets that snap and go click!, curly braces dancing under a disco ball, ducks bubble-sorting by hopping over each other, green checks counting passed: 30 / 30, a chick popping out of a zig-zag egg. Use fictional @handles and coding puns, no real brand marks, no emoji.\n- Bookend with the same room at the start and end (3:07 am vs 5:58 am): swap the sky to a dawn gradient, droop the eyes, fly a paper plane along a stitched trail, then spring a title card up with lit house windows that switch off one by one, leaving one on."
}
