2023-09-30 01:34:43 +00:00
|
|
|
:root {
|
2023-09-30 06:58:03 +00:00
|
|
|
--colour: #a6e3a1;
|
|
|
|
--bgcolour: #1e1e2e;
|
2023-09-30 01:34:43 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
body {
|
|
|
|
margin: 0;
|
|
|
|
padding: 0;
|
2023-09-30 06:58:03 +00:00
|
|
|
color: var(--colour);
|
|
|
|
background-color: var(--bgcolour);
|
2023-09-30 01:34:43 +00:00
|
|
|
font-family: monospace;
|
|
|
|
font-size: 12px;
|
|
|
|
}
|
|
|
|
|
|
|
|
main {
|
2023-10-02 12:56:26 +00:00
|
|
|
margin: 0 1rem;
|
2023-09-30 06:58:03 +00:00
|
|
|
border: 1px solid var(--colour);
|
2023-09-30 01:34:43 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
pre#content {
|
2023-10-02 12:56:26 +00:00
|
|
|
height: calc(100vh - 6rem);
|
2023-09-30 01:34:43 +00:00
|
|
|
margin: 0;
|
|
|
|
padding: 1rem;
|
|
|
|
overflow-x: hidden;
|
|
|
|
overflow-y: scroll;
|
|
|
|
white-space: break-spaces;
|
|
|
|
line-break: anywhere;
|
2023-10-02 22:52:23 +00:00
|
|
|
text-shadow: 0 0 2em;
|
2023-09-30 01:34:43 +00:00
|
|
|
}
|
|
|
|
|
2023-09-30 14:52:54 +00:00
|
|
|
div#caret {
|
2023-09-30 01:34:43 +00:00
|
|
|
width: .5em;
|
|
|
|
height: .9em;
|
|
|
|
display: inline-block;
|
2023-09-30 06:58:03 +00:00
|
|
|
background: var(--colour);
|
2023-09-30 01:34:43 +00:00
|
|
|
transform: translateY(1px);
|
2023-09-30 14:52:54 +00:00
|
|
|
animation: linear .5s infinite forwards caret-blink;
|
2023-09-30 01:34:43 +00:00
|
|
|
}
|
|
|
|
|
2023-09-30 14:52:54 +00:00
|
|
|
@keyframes caret-blink {
|
2023-09-30 01:34:43 +00:00
|
|
|
from {
|
|
|
|
opacity: 1;
|
|
|
|
}
|
|
|
|
to {
|
|
|
|
opacity: 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-10-02 12:56:26 +00:00
|
|
|
footer,
|
|
|
|
header {
|
2023-09-30 09:55:58 +00:00
|
|
|
height: 18px;
|
|
|
|
padding: .5em 2em;
|
|
|
|
display: flex;
|
|
|
|
gap: 1em;
|
|
|
|
align-items: center;
|
2023-10-01 18:31:32 +00:00
|
|
|
justify-content: space-between;
|
2023-09-30 09:55:58 +00:00
|
|
|
}
|
|
|
|
|
2023-10-02 12:56:26 +00:00
|
|
|
footer ul,
|
|
|
|
header ul {
|
2023-09-30 09:55:58 +00:00
|
|
|
margin: 0;
|
|
|
|
padding: 0;
|
|
|
|
display: flex;
|
2023-10-01 18:31:32 +00:00
|
|
|
gap: 1em;
|
2023-09-30 09:55:58 +00:00
|
|
|
}
|
|
|
|
|
2023-10-02 12:56:26 +00:00
|
|
|
footer li,
|
|
|
|
header li {
|
2023-09-30 09:55:58 +00:00
|
|
|
list-style: none;
|
2023-10-02 22:51:20 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
footer li a,
|
|
|
|
header li a,
|
|
|
|
footer li:not(:has(a)),
|
|
|
|
header li:not(:has(a)) {
|
2023-09-30 09:55:58 +00:00
|
|
|
opacity: .5;
|
|
|
|
}
|
|
|
|
|
2023-10-02 22:51:20 +00:00
|
|
|
footer a:hover,
|
|
|
|
header a:hover,
|
|
|
|
footer a.active,
|
|
|
|
header a.active {
|
2023-09-30 09:55:58 +00:00
|
|
|
text-shadow: 0 0 1em, 0 0 3em;
|
|
|
|
opacity: 1;
|
|
|
|
}
|
|
|
|
|
2023-10-02 12:56:26 +00:00
|
|
|
footer a,
|
|
|
|
header a {
|
2023-09-30 09:55:58 +00:00
|
|
|
color: var(--colour);
|
|
|
|
text-decoration: none;
|
2023-10-02 12:56:26 +00:00
|
|
|
cursor: pointer;
|
2023-09-30 09:55:58 +00:00
|
|
|
}
|
|
|
|
|
2023-10-02 22:51:20 +00:00
|
|
|
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);
|
|
|
|
}
|
|
|
|
|
2023-09-30 01:34:43 +00:00
|
|
|
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;
|
2023-10-03 00:21:34 +00:00
|
|
|
z-index: 100;
|
2023-09-30 01:34:43 +00:00
|
|
|
}
|
|
|
|
|
2023-10-01 16:15:53 +00:00
|
|
|
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;
|
|
|
|
}
|
|
|
|
|
2023-09-30 01:34:43 +00:00
|
|
|
@keyframes overlay-flicker {
|
|
|
|
from {
|
|
|
|
opacity: .5;
|
|
|
|
}
|
|
|
|
to {
|
|
|
|
opacity: .6;
|
|
|
|
}
|
|
|
|
}
|
2023-09-30 09:55:58 +00:00
|
|
|
|
|
|
|
#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;
|
|
|
|
}
|
|
|
|
|
2023-10-03 00:21:34 +00:00
|
|
|
#dialog-backdrop {
|
|
|
|
position: fixed;
|
|
|
|
top: 0;
|
|
|
|
left: 0;
|
|
|
|
width: 100vw;
|
|
|
|
height: 100vh;
|
|
|
|
display: none;
|
|
|
|
background: black;
|
|
|
|
opacity: .25;
|
|
|
|
z-index: 99;
|
|
|
|
}
|
|
|
|
|
|
|
|
#connect-dialog {
|
|
|
|
position: fixed;
|
|
|
|
top: 50%;
|
|
|
|
left: 50%;
|
|
|
|
max-width: calc(100vw - 4rem);
|
|
|
|
width: 16rem;
|
|
|
|
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;
|
|
|
|
}
|
|
|
|
|
|
|
|
#dialog-backdrop.show,
|
|
|
|
#connect-dialog.show {
|
|
|
|
display: block;
|
|
|
|
}
|
|
|
|
|
|
|
|
#connect-dialog p {
|
|
|
|
margin: 0 0 1em 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
#connect-dialog input {
|
|
|
|
font-family: inherit;
|
|
|
|
color: var(--colour);
|
|
|
|
border: 1px solid var(--colour);
|
|
|
|
background: transparent;
|
|
|
|
}
|
|
|
|
|
|
|
|
#connect-dialog input::placeholder {
|
|
|
|
font-family: inherit;
|
|
|
|
color: var(--colour);
|
|
|
|
opacity: .25;
|
|
|
|
}
|
|
|
|
|
|
|
|
#connect-dialog button {
|
|
|
|
font-family: inherit;
|
|
|
|
border: 1px solid var(--colour);
|
|
|
|
color: var(--colour);
|
|
|
|
background: transparent;
|
|
|
|
cursor: pointer;
|
|
|
|
}
|
|
|
|
|
|
|
|
#connect-dialog #connect-close {
|
|
|
|
position: absolute;
|
|
|
|
top: -0.7em;
|
|
|
|
right: 1rem;
|
|
|
|
border: none;
|
|
|
|
background: var(--bgcolour);
|
|
|
|
}
|
|
|
|
|
|
|
|
*:focus {
|
|
|
|
outline: none;
|
|
|
|
box-shadow: 0 0 4px;
|
|
|
|
}
|
|
|
|
|