{
 "artboards": [
  {
   "file": "Prototype.dc.html",
   "x": 0,
   "y": 0,
   "w": 390,
   "h": 844,
   "title": "▶ Prototype — tap through it",
   "page": "page-1"
  },
  {
   "file": "Main.dc.html",
   "x": 0,
   "y": 974,
   "w": 390,
   "h": 844,
   "title": "Home feed — live scope",
   "page": "page-1"
  },
  {
   "file": "FeedComposing.dc.html",
   "x": 1840,
   "y": 974,
   "w": 390,
   "h": 844,
   "title": "Feed — composing in place",
   "page": "page-1"
  },
  {
   "file": "PostDetail.dc.html",
   "x": 460,
   "y": 974,
   "w": 390,
   "h": 844,
   "title": "Post detail",
   "page": "page-1"
  },
  {
   "file": "Compose.dc.html",
   "x": 920,
   "y": 974,
   "w": 390,
   "h": 844,
   "title": "Compose — after a take",
   "page": "page-1"
  },
  {
   "file": "Recording.dc.html",
   "x": 1380,
   "y": 974,
   "w": 390,
   "h": 844,
   "title": "Compose — recording",
   "page": "page-1"
  },
  {
   "file": "Profile.dc.html",
   "x": 2300,
   "y": 974,
   "w": 390,
   "h": 844,
   "title": "Profile — verified seal",
   "page": "page-1"
  },
  {
   "file": "Explore.dc.html",
   "x": 0,
   "y": 1948,
   "w": 390,
   "h": 844,
   "title": "Explore — Diaspora scope",
   "page": "page-1"
  },
  {
   "file": "Messages.dc.html",
   "x": 460,
   "y": 1948,
   "w": 390,
   "h": 844,
   "title": "Messages — list",
   "page": "page-1"
  },
  {
   "file": "Thread.dc.html",
   "x": 920,
   "y": 1948,
   "w": 390,
   "h": 844,
   "title": "Messages — thread",
   "page": "page-1"
  },
  {
   "file": "Stories.dc.html",
   "x": 1380,
   "y": 1948,
   "w": 390,
   "h": 844,
   "title": "Stories — tray",
   "page": "page-1"
  },
  {
   "file": "StoryViewer.dc.html",
   "x": 0,
   "y": 2922,
   "w": 390,
   "h": 844,
   "title": "Stories — viewer",
   "page": "page-1"
  },
  {
   "file": "SignIn.dc.html",
   "x": 460,
   "y": 2922,
   "w": 390,
   "h": 844,
   "title": "Sign in",
   "page": "page-1"
  },
  {
   "file": "SignUp.dc.html",
   "x": 920,
   "y": 2922,
   "w": 390,
   "h": 844,
   "title": "Sign-up — connect Federal Africa",
   "page": "page-1"
  },
  {
   "file": "Skeleton.dc.html",
   "x": 0,
   "y": 3896,
   "w": 390,
   "h": 844,
   "title": "State — skeleton",
   "page": "page-1"
  },
  {
   "file": "Offline.dc.html",
   "x": 460,
   "y": 3896,
   "w": 390,
   "h": 844,
   "title": "State — offline & queued",
   "page": "page-1"
  },
  {
   "file": "DataSaver.dc.html",
   "x": 920,
   "y": 3896,
   "w": 390,
   "h": 844,
   "title": "State — data-saver (live)",
   "page": "page-1"
  },
  {
   "file": "Arabic.dc.html",
   "x": 1380,
   "y": 3896,
   "w": 390,
   "h": 844,
   "title": "Arabic RTL — home feed",
   "page": "page-1"
  },
  {
   "file": "MicState.dc.html",
   "x": 1840,
   "y": 3896,
   "w": 390,
   "h": 844,
   "title": "State — microphone unavailable",
   "page": "page-1"
  },
  {
   "file": "WebFeed.dc.html",
   "x": 0,
   "y": 0,
   "w": 1440,
   "h": 1024,
   "title": "Home feed — 1440, three columns",
   "page": "page-2"
  },
  {
   "file": "WebProfile.dc.html",
   "x": 1520,
   "y": 0,
   "w": 1440,
   "h": 1024,
   "title": "Profile — 1440",
   "page": "page-2"
  },
  {
   "file": "WebExplore.dc.html",
   "x": 0,
   "y": 1160,
   "w": 1440,
   "h": 1024,
   "title": "Explore — 1440, Diaspora scope",
   "page": "page-2"
  },
  {
   "file": "WebLanding.dc.html",
   "x": 1520,
   "y": 1160,
   "w": 1440,
   "h": 1024,
   "title": "Logged-out landing — 1440",
   "page": "page-2"
  },
  {
   "file": "WebFeed768.dc.html",
   "x": 0,
   "y": 2320,
   "w": 768,
   "h": 1024,
   "title": "Feed at 768 — context drops",
   "page": "page-2"
  },
  {
   "file": "WebFeed390.dc.html",
   "x": 880,
   "y": 2320,
   "w": 390,
   "h": 844,
   "title": "Feed at 390 — the mobile shell exactly",
   "page": "page-2"
  },
  {
   "file": "Notifications.dc.html",
   "x": 1840,
   "y": 1948,
   "w": 390,
   "h": 844,
   "title": "Notifications — two classes",
   "page": "page-1"
  },
  {
   "file": "Settings.dc.html",
   "x": 2300,
   "y": 1948,
   "w": 390,
   "h": 844,
   "title": "Settings — Data group",
   "page": "page-1"
  }
 ],
 "annotations": [
  {
   "id": "prototype",
   "x": -350,
   "y": 0,
   "w": 290,
   "text": "▶ THE PROTOTYPE\n\nStart here. Ten screens wired together, every feed scrolling.\n\nCompose is now the raised centre action in the bar, so it stops competing with content in the corner. Notifications moved up to the app bar, where a count fits.\n\nTap a post to open it, an avatar to open that profile, a story ring for the viewer, the gear for Federal Africa verification. Back returns.\n\nThe scope rail stays put while the feed scrolls under it.",
   "page": "page-1"
  },
  {
   "id": "core-screens",
   "x": -350,
   "y": 974,
   "w": 290,
   "text": "A · CORE SCREENS\n\nThe eight items in §07, across eleven frames — Messages and Stories each need two, and compose needs the take in progress as well as the take you are about to send.\n\nThese scroll too: each carries enough real content to run past the fold, so what you see is a feed rather than a screenshot of three cards.\n\nReview these one at a time and export to PDF. The prototype above is the same screens, wired.",
   "page": "page-1"
  },
  {
   "id": "palette",
   "x": -350,
   "y": 2922,
   "w": 290,
   "text": "PALETTE — FEDERAL AFRICA\n\nLight is the default. Blue #1E3A8A for anything interactive, #1E40AF for the primary action, green for issued identity, brick red for enforcement.\n\nLowest text value anywhere is 5.13:1. White on the primary fill is 8.72:1.\n\nAVATARS: every profile picture is a circle, people and institutions alike. Account class is carried by the seal — outline for a person, solid for an organisation.",
   "page": "page-1"
  },
  {
   "id": "state-studies",
   "x": -350,
   "y": 3896,
   "w": 290,
   "text": "STATE STUDIES + ARABIC RTL\n\nSkeleton, offline-with-queue, and data-saver — drawn rather than described.\n\nData-saver is live: tap a byte chip to spend the data. The chips state real sizes, not “low data mode”.\n\nIn the Arabic frame everything mirrors except the continent glyph. Africa does not flip because the reader does.",
   "page": "page-1"
  },
  {
   "id": "credits",
   "x": -350,
   "y": 2380,
   "w": 290,
   "text": "PHOTOGRAPHY\n\nFive portraits, Unsplash Licence:\np01 Rachel McDermott\np02 Rahadiansyah\np03 Jassir Jonis\np04 thisguyshoots\np05 Luis Sotillo\n\nFull links in img/credits.json.\n\nFive faces across nineteen accounts means each one repeats about four times. Fine for review, thin for a final deck — another ten or so would fix it. Framing is set per image in CSS (object-position), so replacing a photo needs no re-crop.",
   "page": "page-1"
  },
  {
   "id": "web-core",
   "x": -360,
   "y": 0,
   "w": 300,
   "page": "page-2",
   "text": "B · WEB — 4 CORE SCREENS\n\nCanvas 1440×1024. Same tokens, same components, same data as the mobile frames — only the shell differs.\n\nThe third column is kept for one reason: at desktop width it is where the SCOPE lives. A two-column desktop would push geography back into a tab row and undo the whole idea. It holds the scope map and trending within that scope. Nothing else."
  },
  {
   "id": "web-feedcol",
   "x": -360,
   "y": 1160,
   "w": 300,
   "page": "page-2",
   "text": "WHY THE FEED IS 600, NOT 720\n\nPost text at 16/24 across 720px runs to about 110 characters a line, which is unreadable. 600 puts it near 75.\n\nEvery scope is a real URL — /feed/all-africa, /explore/diaspora — so a scope is shareable, bookmarkable, and survives a reload. The scope control is a set of links, not a client-side toggle."
  },
  {
   "id": "web-responsive",
   "x": -360,
   "y": 2320,
   "w": 300,
   "page": "page-2",
   "text": "RESPONSIVE — 768 AND 390\n\nAt 768 the context column drops and the rail collapses to icons with labels.\n\nAt 390 the web app becomes the mobile shell exactly — same app bar, same scope rail, same bottom bar with the raised compose action. A mobile browser user and an app user want the same thing and should not have to learn two products."
  }
 ],
 "launch": {
  "view": "canvas",
  "page": "page-2"
 },
 "pages": [
  {
   "id": "page-1",
   "name": "A · Mobile app"
  },
  {
   "id": "page-2",
   "name": "B · Web"
  }
 ]
}