html { box-sizing: border-box; } *, *::before, *::after { box-sizing: inherit; } #editor { display: grid; grid-template-columns: repeat(2, 1fr); grid-gap: 1em; } #code { position: relative; grid-row: 1; } #code textarea { width: 100%; height: 25ex; margin-top: 1ex; padding: 1em; } #compile { position: absolute; right: 0; } #state-container { grid-row: 1; } #state { display: grid; grid-template-columns: repeat(2, 1fr); } #state .controls { grid-row: 1; grid-column: 1 / span 2; } #state .wordlist { grid-row: 2; grid-column: 1 / span 2; } #wordlist .ip { background-color: yellow; } x-bytecode { display: block; } x-bytecode::before { display: inline-block; width: 1em; content: attr(x-index); text-align: right; padding-right: 0.4em; } x-op { display: inline-block; padding: 5px; border: 1px solid grey; } canvas { border: 1px solid greenyellow; }