• Scope • We are updating one branch at a time and one page at a time using the shared Joint Compass architecture • All branches share identical HTML structure and identical JS wiring • Only branch theme variables, branch assets, and branch-facing labels may differ • Enlisted vs Officer selection determines the active exam track via tracks.json and must drive index, assessment, exam, and plan consistently • Non-negotiable rules • Do not include this instruction block in your output • Do not summarize, shorten, or omit code • Do not change layout structure, element IDs, class names, data attributes, or JS hook names • Do not remove or rename any shared scripts, storage keys, or event wiring • Do not add new libraries, frameworks, build tools, or external dependencies • Keep shared JS logic identical across all branches; branch differences are limited to theme and branding • Platform exam tracks only: ASVAB, OAR, ASTB, AFOQT • Do not introduce LSAT, MCAT, DAT, or any non-platform track logic into the flow • Output protocol • Step 1: output ONLY the full block in one full code snippet • Step 2: output ONLY the full block in one full code snippet • Step 3: output ONLY the full