{
 "note": "HUD layout contract. Rects are percentages of the safe area (desktop reference 1920×1080; mobile landscape reference 2340×1080 minus notch insets). The wiki renders these as live mockups; the client must use the same anchors. Art pieces map to art-requests (ART-HUD-*).",
 "principles": [
  "Combat first: the centre 50% of the screen stays clear except world-space nameplates, telegraphs and damage numbers.",
  "Every element is anchored to a screen edge/corner and scales with a UI-scale setting (80–130%).",
  "Bars and slots are 9-slice sprites (CSS border-image in the DOM HUD) — no flattened full-screen images.",
  "Cooldowns use a radial sweep + seconds text; ready = 150 ms gold flash; out-of-mana = desaturate + blue tint; queued input = pulsing border.",
  "Smart Chain skills show a small chain-link badge; the next chained skill glows softly on the bar.",
  "Mobile: 48 px minimum touch targets (Apple HIG 44 pt), thumbs zones respected, edit mode for every button."
 ],
 "desktop": [
  {
   "id": "buffs",
   "label": "Buffs / debuffs",
   "rect": [
    1,
    1.5,
    18,
    5
   ],
   "art": [
    "ART-HUD-013"
   ],
   "content": "Up to 12 icons, debuffs red-bordered, stacks + timer."
  },
  {
   "id": "target",
   "label": "Target frame",
   "rect": [
    37,
    2,
    26,
    7.5
   ],
   "art": [
    "ART-HUD-007"
   ],
   "content": "Level diamond, name (colour by level diff, ★ elite), HP bar, ailment icons, cast bar under it."
  },
  {
   "id": "menu",
   "label": "Menu buttons",
   "rect": [
    74,
    1.5,
    13.5,
    6
   ],
   "art": [
    "ART-HUD-010"
   ],
   "content": "Character U, Bag I, Codex K, Atlas P, Map M, Quests J, Social O, Settings Esc."
  },
  {
   "id": "minimap",
   "label": "Minimap",
   "rect": [
    88.5,
    1.5,
    10.5,
    18.5
   ],
   "art": [
    "ART-HUD-006"
   ],
   "content": "Zone name, channel number, coordinates, quest markers, party dots."
  },
  {
   "id": "auto",
   "label": "Auto toggles",
   "rect": [
    80.5,
    8.5,
    7,
    5
   ],
   "art": [
    "ART-HUD-014"
   ],
   "content": "Auto-Hunt (G) and Auto-Quest (H) with on/off states."
  },
  {
   "id": "quest",
   "label": "Quest tracker",
   "rect": [
    84,
    23,
    15,
    22
   ],
   "art": [
    "ART-HUD-008"
   ],
   "content": "Main quest (gold diamond) + up to 3 side; Auto-Quest step text."
  },
  {
   "id": "chat",
   "label": "Chat",
   "rect": [
    1,
    69,
    25,
    27
   ],
   "art": [
    "ART-HUD-009"
   ],
   "content": "Tabs General / Party / System / +, input line."
  },
  {
   "id": "vitals",
   "label": "HP · level · MP",
   "rect": [
    29.5,
    75.5,
    41,
    5
   ],
   "art": [
    "ART-HUD-004"
   ],
   "content": "HP bar (left), level diamond, MP bar (right), numbers inside bars."
  },
  {
   "id": "quick_a",
   "label": "Quick bar 1–8",
   "rect": [
    31,
    81,
    38,
    5.5
   ],
   "art": [
    "ART-HUD-003"
   ],
   "content": "Potions, buff skills, scrolls. Keys 1–8."
  },
  {
   "id": "skills",
   "label": "Skill bar",
   "rect": [
    28,
    87,
    44,
    8.5
   ],
   "art": [
    "ART-HUD-002"
   ],
   "content": "Q E Z X C | M1 (chain) M2 (movement). Keycap plates under each slot."
  },
  {
   "id": "quick_b",
   "label": "Quick bar F1–F8",
   "rect": [
    73,
    83,
    10,
    12
   ],
   "art": [
    "ART-HUD-003"
   ],
   "content": "Compact 4×2 grid for F1–F8; collapsible."
  },
  {
   "id": "exp",
   "label": "EXP bar",
   "rect": [
    0,
    97,
    100,
    3
   ],
   "art": [
    "ART-HUD-005"
   ],
   "content": "Full width, 10% diamond notches, numbers centred."
  }
 ],
 "mobile": [
  {
   "id": "player",
   "label": "Portrait + HP/MP",
   "rect": [
    1,
    2,
    25,
    11.5
   ],
   "art": [
    "ART-HUD-001"
   ],
   "content": "Round portrait, level gem, HP and MP bars with numbers."
  },
  {
   "id": "buffs",
   "label": "Buffs",
   "rect": [
    8,
    13.5,
    18,
    5
   ],
   "art": [
    "ART-HUD-013"
   ],
   "content": "Up to 8 icons."
  },
  {
   "id": "target",
   "label": "Target frame",
   "rect": [
    37,
    2,
    26,
    8
   ],
   "art": [
    "ART-HUD-007"
   ],
   "content": "As desktop."
  },
  {
   "id": "menu",
   "label": "Menu",
   "rect": [
    71,
    2,
    16,
    8.5
   ],
   "art": [
    "ART-HUD-010"
   ],
   "content": "Bag, Party, Codex, Settings (others in a drawer)."
  },
  {
   "id": "minimap",
   "label": "Minimap",
   "rect": [
    88,
    1.5,
    11,
    20
   ],
   "art": [
    "ART-HUD-006"
   ],
   "content": "Tap to open full map."
  },
  {
   "id": "quest",
   "label": "Quest tracker",
   "rect": [
    75.5,
    23,
    18.5,
    19
   ],
   "art": [
    "ART-HUD-008"
   ],
   "content": "Tap a quest to start Auto-Quest."
  },
  {
   "id": "chat",
   "label": "Chat (collapsed)",
   "rect": [
    1,
    72,
    23,
    13
   ],
   "art": [
    "ART-HUD-009"
   ],
   "content": "Last 3 lines; tap to expand."
  },
  {
   "id": "joystick",
   "label": "Virtual joystick",
   "rect": [
    4,
    37,
    15,
    33
   ],
   "art": [
    "ART-HUD-011"
   ],
   "content": "Floating: appears where the thumb lands in the left 45%."
  },
  {
   "id": "attack",
   "label": "Attack (M1 chain)",
   "rect": [
    87,
    70,
    12,
    26
   ],
   "art": [
    "ART-HUD-012"
   ],
   "content": "Hold = continuous Smart Chain."
  },
  {
   "id": "skill_q",
   "label": "Q",
   "rect": [
    59.5,
    82,
    6.2,
    13.5
   ],
   "art": [
    "ART-HUD-002"
   ],
   "content": "Drag to aim."
  },
  {
   "id": "skill_e",
   "label": "E",
   "rect": [
    66.3,
    82,
    6.2,
    13.5
   ],
   "art": [
    "ART-HUD-002"
   ]
  },
  {
   "id": "skill_z",
   "label": "Z",
   "rect": [
    73.1,
    82,
    6.2,
    13.5
   ],
   "art": [
    "ART-HUD-002"
   ]
  },
  {
   "id": "skill_x",
   "label": "X",
   "rect": [
    80.5,
    60,
    6.2,
    13.5
   ],
   "art": [
    "ART-HUD-002"
   ]
  },
  {
   "id": "skill_c",
   "label": "C",
   "rect": [
    80.5,
    44.5,
    6.2,
    13.5
   ],
   "art": [
    "ART-HUD-002"
   ]
  },
  {
   "id": "movement",
   "label": "M2 movement",
   "rect": [
    88.5,
    50,
    6.2,
    13.5
   ],
   "art": [
    "ART-HUD-002"
   ],
   "content": "Dash/jump toward joystick direction."
  },
  {
   "id": "quick",
   "label": "Quick 1–4 (+expand)",
   "rect": [
    66,
    52,
    13,
    26
   ],
   "art": [
    "ART-HUD-003"
   ],
   "content": "Potion arc; long-press for 5–8 and F-row."
  },
  {
   "id": "auto",
   "label": "Auto + target switch",
   "rect": [
    94.5,
    24,
    5,
    26
   ],
   "art": [
    "ART-HUD-014"
   ],
   "content": "Auto-Hunt toggle, Auto-Quest toggle, next target, lock."
  },
  {
   "id": "exp",
   "label": "EXP bar",
   "rect": [
    0,
    97,
    100,
    3
   ],
   "art": [
    "ART-HUD-005"
   ],
   "content": "Full width."
  }
 ],
 "worldSpace": [
  {
   "id": "nameplate",
   "content": "Name (level-colour), ★ for elites, HP bar when damaged or targeted; max 40 visible, fade by distance."
  },
  {
   "id": "damage_numbers",
   "content": "Instanced MSDF text: white normal, gold crit (1.4× size, pop), element tints (fire orange, cold pale blue, lightning violet, bleed dark red), heal green; merge rapid small hits into one rolling number."
  },
  {
   "id": "telegraphs",
   "content": "Decals from ART-VFX-042; monster telegraphs red-orange fill-up; player ground-target preview in jade."
  },
  {
   "id": "quest_markers",
   "content": "Gold ! available, gold ? turn-in, jade side-quest; Auto-Quest path ribbon on ground (toggle)."
  }
 ],
 "loadingScreen": {
  "proposed": true,
  "note": "Full-screen loading view used for login, first entry, area travel, dungeons and events. Matches the UI kit (rail-art progress bar, title plaque, glass strips). The wiki mock is on Game windows → Loading screen.",
  "reference": {
   "width": 1920,
   "height": 1080
  },
  "background": {
   "rule": "Area art when loading into an area; event/boss/dungeon art for those instances; the main key art on login and first entry; otherwise a random build key art (class spotlight). Slow zoom 1.00 → 1.06 over 20 s; bottom vignette 0 → 85% black over the lowest 35%.",
   "login": "ART-UI-021 (zoen_keyart_loading, delivered)",
   "areas": [
    {
     "zone": "amber_gate",
     "request": "ART-LOAD-amber-gate"
    },
    {
     "zone": "dewgrass_meadow",
     "request": "ART-LOAD-dewgrass-meadow"
    },
    {
     "zone": "old_orchard",
     "request": "ART-LOAD-old-orchard"
    },
    {
     "zone": "reedwater_banks",
     "request": "ART-LOAD-reedwater-banks"
    },
    {
     "zone": "clay_cut",
     "request": "ART-LOAD-clay-cut"
    },
    {
     "zone": "cinder_kilns",
     "request": "ART-LOAD-cinder-kilns"
    },
    {
     "zone": "saltway_flats",
     "request": "ART-LOAD-saltway-flats"
    },
    {
     "zone": "bellshade_court",
     "request": "ART-LOAD-bellshade-court"
    },
    {
     "zone": "stormquill_ridge",
     "request": "ART-LOAD-stormquill-ridge"
    },
    {
     "zone": "ashroot_grove",
     "request": "ART-LOAD-ashroot-grove"
    },
    {
     "zone": "jade_seal_ruins",
     "request": "ART-LOAD-jade-seal-ruins"
    },
    {
     "zone": "caravan_crown_arena",
     "request": "ART-LOAD-caravan-crown-arena"
    }
   ],
   "events": [
    {
     "id": "kharuun",
     "request": "ART-LOAD-kharuun"
    },
    {
     "id": "bellbound_regent",
     "request": "ART-LOAD-bellbound-regent"
    },
    {
     "id": "kiln_depths",
     "request": "ART-LOAD-kiln-depths"
    },
    {
     "id": "sand_arena",
     "request": "ART-LOAD-sand-arena"
    },
    {
     "id": "lantern_convoy",
     "request": "ART-LOAD-lantern-convoy"
    }
   ],
   "fallback": "ART-KEY-<build> key art (18), random per load"
  },
  "layout": [
   {
    "part": "logo",
    "where": "top-left, 32 px margin",
    "size": "wordmark 72 px tall"
   },
   {
    "part": "areaTitle",
    "where": "bottom-centre, 150 px above the bottom",
    "content": "area name on the title plaque + level band chip + one lore line"
   },
   {
    "part": "progressBar",
    "where": "bottom-centre, 72 px above the bottom",
    "size": "min(1100 px, 80% width) × 40 px",
    "art": "header rail (ui/header-rail-3) as the frame; molten-gold fill (gradient + moving shimmer) inset 9 px; ember spark at the leading edge",
    "labels": "stage text left above the bar, percent right"
   },
   {
    "part": "tip",
    "where": "under the bar, glass strip with fading gold hairlines",
    "content": "one tip, rotates every 6 s"
   },
   {
    "part": "channel",
    "where": "bottom-left",
    "content": "region · channel number · ping"
   },
   {
    "part": "version",
    "where": "bottom-right",
    "content": "release.json display format, e.g. \"Zoen 0.1.0 · Closed Alpha · build 1847\""
   }
  ],
  "stages": [
   {
    "id": "connect",
    "label": "Connecting to the caravan…",
    "weight": 5
   },
   {
    "id": "account",
    "label": "Opening your character",
    "weight": 10
   },
   {
    "id": "world",
    "label": "Streaming the area",
    "weight": 40
   },
   {
    "id": "shaders",
    "label": "Preparing effects",
    "weight": 30
   },
   {
    "id": "spawn",
    "label": "Finding your place",
    "weight": 15
   }
  ],
  "progressRules": [
   "Progress is weighted by stage and never moves backwards.",
   "If no stage changes for 8 s the label adds \"Still working…\"; after 30 s a Retry button appears (login keeps the queue position).",
   "The bar fills to 100% only when the first world snapshot has arrived; then a 250 ms fade into the game."
  ],
  "tips": [
   "Hold Alt over an item to see prefix/suffix and affix tiers.",
   "Mouse1 fires your chain: the next ready attack skill in your 8 chain slots, or a basic hit.",
   "Finishers only fire while their condition holds — launch, stun or bleed the target first.",
   "Click the map or minimap to travel there; trips over 40 m mount you automatically.",
   "Red tiles in your bag mean you do not meet that item's requirements yet.",
   "Telegraphs never disappear on any graphics setting — watch the red-orange ground.",
   "Self buffs shine solo and in duels; team buffs shine in parties and the Sand Arena.",
   "Offline Auto-Hunt (level 30+) keeps your character visible in the world for up to 4 hours a day.",
   "Refinement auras start at +8. Caravan Ward protects +11 to +15 attempts.",
   "Every monster drops two materials; vendors buy them for gold.",
   "Shift+Mouse1 attacks in place without moving (rebindable).",
   "Waypoints unlock when you walk within 15 m of them."
  ],
  "mobile": "Same composition; bar width 86%; tip wraps to two lines; logo 48 px."
 }
}
