:root { --colour: #a6e3a1; --bgcolour: #1e1e2e; --warn-colour: #e83737; } body { margin: 0; padding: 0; color: var(--colour); background-color: var(--bgcolour); font-family: monospace; font-size: 12px; } main { margin: 0 1rem; border: 1px solid var(--colour); } pre#content { height: calc(100vh - 6rem); margin: 0; padding: 1rem; overflow-x: hidden; overflow-y: scroll; white-space: break-spaces; line-break: anywhere; text-shadow: 0 0 2em; } div#caret { width: .5em; height: .9em; display: inline-block; background: var(--colour); transform: translateY(1px); animation: linear .5s infinite forwards caret-blink; } @keyframes caret-blink { from { opacity: 1; } to { opacity: 0; } } footer, header { height: 18px; padding: .5em 2em; display: flex; gap: 1em; align-items: center; justify-content: space-between; } footer ul, header ul { margin: 0; padding: 0; display: flex; gap: 1em; } footer li, header li { list-style: none; } footer li a, header li a, footer li:not(:has(a)), header li:not(:has(a)) { opacity: .5; } footer a:hover, header a:hover, footer a.active, header a.active { text-shadow: 0 0 1em, 0 0 3em; opacity: 1; } footer a, header a { color: var(--colour); text-decoration: none; cursor: pointer; } ul#colours-dropdown { position: absolute; top: 2.5em; right: 1.3em; padding: calc(1rem - .25em); display: none; flex-direction: column; text-align: right; gap: 0; border: 1px solid var(--colour); background: var(--bgcolour); max-height: 18em; overflow-y: scroll; } ul#colours-dropdown.active { display: flex; } ul#colours-dropdown li { padding: .25em .5em; cursor: pointer; } ul#colours-dropdown li:hover, ul#colours-dropdown li.active { opacity: 1; color: var(--bgcolour); background: var(--colour); } div#overlay { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background-image: linear-gradient(180deg, rgba(0,0,0,0) 15%, rgb(0, 0, 0) 40%, rgb(0, 0, 0) 60%, rgba(0,0,0,0) 85%); background-size: 100vw .2em; background-repeat: repeat; opacity: .5; pointer-events: none; animation: linear .05s infinite alternate overlay-flicker; mix-blend-mode: overlay; z-index: 100; } body.lcd div#overlay { background-image: linear-gradient(to right, rgba(255,0,0,.5) 0%, rgba(255,0,0,.5) 33%, rgba(0,255,0,.5) 34%, rgba(0,255,0,.5) 66%, rgba(0,0,255,.5) 66%, rgba(0,0,255,.5) 100%), linear-gradient(to top, rgba(255,255,255,255) 0%, rgba(255,255,255,0) 100%); mix-blend-mode: multiply; background-size: 3px 3px; animation: none; } body.lcd pre#content { text-shadow: -1px 0 rgba(255,0,0,.5), 1px 0 rgba(0,0,255,.5), 0 0 .5em, 0 0 3em; } @keyframes overlay-flicker { from { opacity: .5; } to { opacity: .6; } } #mobile-input { position: absolute; top: 1.2em; left: 1.2em; width: calc(100vw - 3em); height: calc(100vh - 3.9em); opacity: 0; user-select: none; pointer-events: none; } #dialog-backdrop { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; display: none; background: black; opacity: .25; z-index: 99; } div.dialog { position: fixed; top: 50%; left: 50%; margin: auto auto; padding: 1rem; display: none; transform: translate(-50%, -50%); border: 1px solid var(--colour); color: var(--colour); background: var(--bgcolour); text-shadow: 0 0 2em; z-index: 99; } div.dialog p { margin: 0 0 1em 0; } div.dialog input { font-family: inherit; color: inherit; border: inherit; background: transparent; } div.dialog input::placeholder { font-family: inherit; color: inherit; opacity: .25; } div.dialog button { font-family: inherit; border: inherit; color: inherit; background: transparent; cursor: pointer; } #dialog-backdrop.show, div.dialog.show { display: block; } div.dialog .dialog-close { position: absolute; top: -0.7em; right: 1rem; border: none; background: var(--bgcolour); } #connect-dialog { max-width: calc(100vw - 4rem); width: 16rem; } #warn-dialog { max-width: 18rem; color: var(--warn-colour); border-color: var(--warn-colour); } *:focus { outline: none; box-shadow: 0 0 4px; }