@font-face { font-family: "icon"; src: url("icon.woff") format("woff"); } .hidden { display: none !important; } html { font-family: sans-serif; -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; user-select: none; background-color: #404040; color: white; background-image: url(tex.png); touch-action: none; overflow: hidden; } html, body, .scene { width: 100%; height: 100%; margin: 0; } .scene { position: relative; display: flex; flex-direction: column; justify-content: center; box-sizing: border-box; align-items: center; gap: 2rem; padding: 0.5rem; } p { margin: 0; font-size: 2rem; word-wrap: break-word; text-align: center; } p.background { color: gray; text-shadow: -1px -1px 0 black, 1px -1px 0 black, -1px 1px 0 black, 1px 1px 0 black; opacity: 0.08; font-weight: bold; font-size: 4rem; pointer-events: none; } @media (max-width: 32rem) { p.background { font-size: 13vw; } } .large { font-size: 4rem; } button { box-sizing: border-box; padding: 0; background-color: transparent; border: 1px solid black; height: 1.5em; width: 2em; min-width: 1.2em; min-height: 1.2em; max-width: 100%; max-height: 100%; border-radius: 2px; font-size: 2rem; color: white; font-family: "icon"; overflow: hidden; cursor: pointer; transition: box-shadow 0.2s ease-out; } button:focus { outline: none; } button.click { box-shadow: 0 0 1rem white inset; transition: none; } button.top, button.bottom, button.left, button.right { position: absolute; max-width: 50%; max-height: 50%; } button.top { top: 0; border-top: none; } button.bottom { bottom: 0; border-bottom: none; } button.left { left: 0; border-left: none; } button.right { right: 0; border-right: none; } .buttons { display: flex; flex-direction: row; min-height: 0; min-width: 0; } .buttons > button:not(:last-child) { border-right: none; } .scene > .grow, .buttons > .grow { flex-grow: 1; } textarea { border: none; resize: none; font-size: 2rem; background-color: white; color: black; margin: 0; padding: 0 0.5rem; } textarea:focus { outline: none; } #keys { padding: 0; justify-content: end; } #keys .page { display: grid; gap: 0.5rem; min-height: 0; min-width: 0; grid-auto-rows: minmax(min-content, 6rem); grid-auto-columns: minmax(min-content, 8rem); padding: 0.5rem; } #keys .page * { width: 100%; height: 100%; } #text-input { align-items: stretch; padding: 0; gap: 0; flex-direction: row; } #text-input .buttons { flex-direction: column; } #text-input .buttons > button { border-top: none; border-right: none; } #text-input .buttons > button:last-child { border-bottom: none; } @media (max-aspect-ratio: 4/3) { #text-input { flex-direction: column; } #text-input .buttons { flex-direction: row; } #text-input .buttons > button { border-top: 1px solid black; border-bottom: none; } #text-input .buttons > button:first-child { border-left: none; } }