It's not my intention to be terse or dismissive, but I'm going to give a very short, incomplete answer because a long one would take too long for me to write. I would need to think a lot more to come up with something more descriptive.
If I can translate your application's current state to an org-mode document (or any other hierarchical document format) without losing any significant information, then your interface is an interactive document. Maybe your backend is better suited for C, or needs native capabilities or something. I don't care about that. The actual interface itself is just hierarchical information.
HTML is just a way of organizing information into a tree. It's not a layout tool (even though some web devs treat it like one), it is a display format. CSS is the incidental styling that gets applied on top of that format.
For example, I have KeepassX sitting open in front of me. It has a row of buttons on the top, a tree view, and a currently selected record in a table.
Very roughly, the HTML equivalent of that is:
<ul class="toolbar">
<li>Open Vault</li>
<li>Save Valut</li>
<li>Add Record</li>
<li>Edit Record</li>
<!-- etc... -->
</ul>
<ul class="folders">
<li>My Passwords</li>
<!-- etc... -->
</ul>
<table class="entries">
<tr>
<th>Title</th>
<th>Username</th>
<th>URL</th>
</tr>
<tr data-selected="true">
<td>Some Site</td>
<td>danshumway</td>
<td>somesite.com</td>
</tr>
</table>
When I click one of the entries in that table, I'm taken to a new interactive document (basically a form) that has some fields I can change to edit my password. At no point in KeepassX do I ever see a state that couldn't be described purely in a format like org-mode.
So now I try to resize KeepassX, and when it gets to below about 400-450 pixels, it refuses to get any smaller. It's not responsive. This is because it was written in some native format that was only thinking about grids and pixel-perfect positioning, and the idea that rendering content was a different concern than rendering style never occurred to anybody.
A number of native formats like GTK already use XML to lay out their interfaces. The only difference is that they're using XML as a layout tool and not as a display target. But for an app like KeepassX, rendering to an XML-like format would be a strict improvement over whatever the heck it's doing now.