:root { --blue: #039be5; --indigo: #6610f2; --purple: #ba68c8; --pink: #e83e8c; --red: #e3342f; --orange: #fd7e14; --yellow: #ffb300; --green: #00b857; --teal: #20c997; --cyan: #17a2b8; --white: #fff; --gray: #6c757d; --gray-dark: #343a40; --primary: #039be5; --secondary: #6c757d; --success: #00b857; --info: #ba68c8; --warning: #ffb300; --danger: #e3342f; --light: #f8f9fa; --dark: #343a40; --breakpoint-xs: 0; --breakpoint-sm: 576px; --breakpoint-md: 768px; --breakpoint-lg: 992px; --breakpoint-xl: 1200px; --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; } canvas { background: #FFF; width: auto; height: 100%; } p { color: #FFF; margin: 0; } body { margin: 0; padding: 0; font-family: Arial, sans-serif; background-color: #FFC0CB; } .top-bar { background-color: #f78397; color: #fff; display: flex; justify-content: space-between; align-items: center; box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); z-index: 9999999999999; } .logo img { max-width: auto; height: 45px; padding: 5px; } .menu ul { list-style-type: none; margin: 0; margin-right: 20px; padding: 0; display: flex; } .menu li { padding: 10px; } .menu a { text-decoration: none; color: #fff; } .canvasWrapper { position: relative; z-index: 0; width: 100%; height: calc(100vh - 65px); pointer-events: auto; overflow: hidden; display: flex; justify-content: center; align-items: center; } .canvasContainer { position: absolute; } .canvas-main { transition: opacity 0.5s ease-in, transform.translate 0.5s ease-in; opacity: 0; visibility: hidden; z-index: 1; pointer-events: auto; image-rendering: pixelated; } .pan-buttons { transition: 0.25s ease-in; opacity: 0; position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 2; display: flex; justify-content: center; } .content-wrapper { position: relative; width: 100%; height: 100%; pointer-events: auto; } .pan-buttons .top { position: absolute; top: 0; left: 0; width: 100%; height: 10%; z-index: 2; display: flex; justify-content: center; } .pan-buttons .top .up { height: 10vh; width: 25%; margin: 10px auto; opacity: 25%; background: #000; color: #FFF; border: 0px; border-radius: 5px; } .pan-buttons .top .up:hover { opacity: 50%; cursor: pointer; } .pan-buttons .middle { position: absolute; top: 50%; left: 0; height: 100%; width: 100%; z-index: 2; display: flex; justify-content: center; align-items: center; transform: translateY(-50%); } .pan-buttons .middle .right { height: 35vh; width: 12.5vh; margin-right: 10px; margin-left: auto; opacity: 25%; margin: 10px; background: #000; color: #FFF; border: 0px; border-radius: 5px; } .pan-buttons .middle .right:hover { opacity: 50%; cursor: pointer; } .pan-buttons .middle .left { height: 35vh; width: 12.5vh; margin-right: auto; margin-left: 10px; opacity: 25%; background: #000; color: #FFF; border: 0px; border-radius: 5px; } .pan-buttons .middle .left:hover { opacity: 50%; cursor: pointer; } .pan-buttons .base { position: absolute; bottom: 0; left: 0; width: 100%; height: 15%; z-index: 2; display: flex; justify-content: center; } .pan-buttons .base .down { height: 10vh; width: 25%; margin: 25px auto; opacity: 25%; background: #000; color: #FFF; border: 0px; border-radius: 5px; } .pan-buttons .base .down:hover { opacity: 50%; cursor: pointer; } .pan-buttons button { pointer-events: auto; } .pan-buttons { pointer-events: none; } .buttonTog { position: absolute; top: 10px; left: 10px; height: 50px; width: 50px; opacity: 25%; background: #000; color: #FFF; border: 0px; border-radius: 5px; pointer-events: auto; z-index: 1; } .resetView { position: absolute; top: 10px; left: 70px; height: 50px; width: 50px; opacity: 25%; background: #000; color: #FFF; border: 0px; border-radius: 5px; pointer-events: auto; z-index: 1; } .buttonTog:hover { opacity: 50%; cursor: pointer; } .resetView:hover { opacity: 50%; cursor: pointer; } .dropdown-content { display: none; position: absolute; background-color: #f9f9f9; min-width: 160px; z-index: 1000; } .dropdown:hover .dropdown-content { display: block; } .dropdown-content { top: 45px; right: 1%; max-height: 200px; width: 15%; overflow-y: auto; background-color: #de7688; padding: 10px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); animation: fadeInUp 0.15s ease; } .coordinates { position: absolute; left: 10px; bottom: 10px; display: flex; flex-direction: row; opacity: 25%; background: #000; border-radius: 3px; padding: 5px; z-index: 500; } .clients { transition: 0.5s ease-in; position: absolute; left: 10px; bottom: 45px; display: flex; flex-direction: row; opacity: 0; background: #000; border-radius: 3px; padding: 5px; z-index: 500; } .collavas { position: absolute; right: 10px; bottom: 10px; display: flex; flex-direction: row; opacity: 25%; background: #000; border-radius: 3px; padding: 5px; z-index: 500; } .client-version { transition: 0.5s ease-in; position: absolute; right: 10px; bottom: 45px; display: flex; flex-direction: row; opacity: 0; background: #000; border-radius: 3px; padding: 5px; z-index: 500; } .ping { transition: 0.5s ease-in; position: absolute; right: 10px; bottom: 80px; display: flex; flex-direction: row; opacity: 0; background: #000; border-radius: 3px; padding: 5px; z-index: 500; } .data-size { transition: 0.5s ease-in; position: absolute; right: 10px; bottom: 115px; display: flex; flex-direction: row; opacity: 0; background: #000; border-radius: 3px; padding: 5px; z-index: 500; } .coordinates p { display: flex; flex-direction: row; margin-left: 5px; } .messages { display: flex; justify-content: center; position: absolute; left: 50%; right: 50%; top: 0px; z-index: 99999999999999999999; } .message { display: flex; justify-content: center; margin-top: 40px; width: auto; min-width: 250px; max-width: 750px; margin-left: 20px; } #welcome>.message { display: flex; flex-direction: column; text-align: center; width: 1000px; padding: 20px; } .spinner, .spinner::before, .spinner::after { width: 10px; height: 10px; border-radius: 2px; box-shadow: -60px 10px 0 rgba(255, 255, 255, 0); animation: spinner 1.0s linear infinite; } .spinner { position: relative; } .spinner::before { content: ""; position: absolute; left: 0px; top: 0px; animation-delay: -0.1s; } .spinner::after { content: ""; position: absolute; top: 0px; left: 0px; animation-delay: 0.1s; } #transition { transition: 0.5s ease-in-out; position: fixed; top: 0; left: 0; bottom: 0; right: 0; color: white; background: rgba(0, 0, 0, 0.5); z-index: 1; display: flex; align-items: center; justify-content: center; flex-direction: column; } #welcome { transition: 0.5s ease-in-out; position: fixed; top: 0; left: 0; bottom: 0; right: 0; color: white; background: rgba(0, 0, 0, 0.5); z-index: 1; opacity: 0; display: none; align-items: center; justify-content: center; flex-direction: column; } .fadeup { animation: fadeInUp 0.25s ease; } .fadedown { opacity: 0; animation: fadeOutDown 0.25s ease; } .green { background-color: var(--green); } .blue { background-color: var(--blue); } .indigo { background-color: var(--indigo); } .purple { background-color: var(--purple); } .pink { background-color: var(--pink); } .red { background-color: var(--red); } .orange { background-color: var(--orange); } .yellow { background-color: var(--yellow); } .teal { background-color: var(--teal); } .cyan { background-color: var(--cyan); } .white { background-color: var(--white); } .gray { background-color: var(--gray); } .gray-dark { background-color: var(--gray-dark); } .primary { background-color: var(--primary); } .secondary { background-color: var(--secondary); } .success { background-color: var(--success); } .info { background-color: var(--info); } .warning { background-color: var(--warning); } .danger { background-color: var(--danger); } .light { background-color: var(--light); } .dark { background-color: var(--dark); } @keyframes fadeInUp { 0% { opacity: 0; -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0) } to { opacity: 1; -webkit-transform: none; transform: none } } @keyframes fadeOutDown { 0% { opacity: 1 } to { opacity: 0; -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0) } } @keyframes spinner { 0% { box-shadow: -60px 10px 0 rgba(255, 255, 255, 0); width: 20px; } 25% { box-shadow: 20px 10px 0 rgba(255, 255, 255, 1); width: 10px; } 50% { box-shadow: 60px 10px 0 rgba(255, 255, 255, 0); width: 10px; } }