* { margin: 0; padding: 0; border: 0; font: inherit; vertical-align: baseline; list-style-type: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } :focus { outline: 0; } html { font-size: 51%; } body { background-color: black; overflow: hidden; position: absolute; height: 100%; width: 100%; } .clear { clear: both; } body>* { display: block; height: 100%; box-sizing: border-box; position: relative; overflow: hidden; font-family: 'Roboto', sans-serif; } body>script { display: none; } a, a:link, a:visited { text-decoration: none; } a:focus-visible:not(:hover) { border-radius: 2px; outline: 3px solid var(--movim-accent); outline-offset: -2px; } a:link:hover, a:visited:hover { text-decoration: underline; } /* Skip Main */ #skip_main { z-index: 1; display: block; position: fixed; top: 0.5rem; left: 0.5rem; } #skip_main:focus { transform: translateY(0); } /* Navigation bar */ body>nav { display: flex; flex-flow: column nowrap; width: 6.5rem; position: absolute; overflow-y: auto; user-select: none; padding: 1rem 0; } body>nav hr { margin: 0.5rem 0; } body>div.drawer:not(:empty)~main, body>div.drawer:not(:empty)~nav, body>div.drawer:not(:empty)~#visio, body>div.dialog:not(:empty)~main, body>div.dialog:not(:empty)~nav, body>div.dialog:not(:empty)~#visio, body>nav.active~main { opacity: 0.05; pointer-events: none; } body>nav.active~main { transform: translateX(6rem); } body>nav li { /* Little hack for the navbar */ overflow: hidden; } @media screen and (max-width: 1024px) { body>nav { padding: 0; padding-bottom: 7rem; } } @media screen and (min-width: 1680px) { body>nav, body>nav:hover { width: 15%; } body>nav~main, body>nav:hover~main { width: 85%; } } body>nav.active:before { display: none; } body:before { position: absolute; display: block; background: linear-gradient(90deg, var(--movim-accent) 0, transparent 50%, var(--movim-accent) 100%); background-size: 200rem; width: 0; height: 0.25rem; content: ''; opacity: 0; top: 0; left: 0; z-index: 3; } body.loading:before { transition: width 4s ease-in-out, opacity 0.2s ease-in-out; animation: loadingblink 3s linear infinite; width: 100%; opacity: 1; } body.finished:before { transition: width 1s cubic-bezier(.68, 0, 0, 1), opacity 1s ease-in-out; width: 100%; opacity: 0; } @keyframes loadingblink { from { background-position: 0 0; } to { background-position: 200rem 0; } } /* Main */ main { position: absolute; inset-inline-end: 0; top: 0; transition: opacity 0.25s ease-in-out, transform 0.25s ease-in-out; overflow-y: auto; overflow-x: hidden; width: 100%; display: flex; justify-content: center; flex-direction: row-reverse; } @media print { main { display: block; height: auto; } } nav~main { width: calc(100% - 6.5rem); border-radius: 1rem 0 0 1rem; } main>div { width: 92rem; max-width: 100%; } main>div>* { max-width: 92rem; margin: 0 auto; } main>div.large { max-width: 130rem; width: 100%; } main>div.large>* { max-width: 100%; } main>section#sidebar { width: 45rem; } main>section#sidebar+div { width: 85rem; padding-inline-end: 1rem; box-sizing: border-box; } /* Two blocks */ main>div:first-child:nth-last-child(2) { width: 75%; } main>div:first-child:nth-last-child(2)+div { width: 25%; overflow-y: auto; overflow-x: hidden; box-shadow: var(--elevation-2); background-color: rgb(var(--movim-background)); } @media screen and (max-width: 1024px) { nav.on_desktop~main, nav~main.enabled { width: 100%; } main.slide>div:first-child:nth-last-child(2), main.slide>div:first-child:nth-last-child(2)+div { width: 100%; height: 100%; position: absolute; top: 0; left: 0; } main.slide>div:first-child:nth-last-child(2)+div { max-width: calc(100vw - 6.5rem); } main.slide>div:first-child:nth-last-child(2) { z-index: 1; box-shadow: var(--elevation-4); transform: translateX(100%); } main.slide>div:first-child:nth-last-child(2).moving { transition: transform .45s var(--decelerate-easing); } main.slide.enabled>div:first-child:nth-last-child(2) { transform: translateX(0); } main.slide.enabled>div:first-child:nth-last-child(2)+div { margin-left: 6.5rem; } main>section#sidebar+div { padding-inline-end: 0; } main>section#sidebar { display: none; } } /* Hr */ hr:not(.clear) { border-bottom: 1px solid; width: 100%; } hr.thick { margin: 1rem 0; } /* Spin */ .spin:empty { background-image: url(../img/cloud_spinner.svg); background-repeat: no-repeat; background-position: center 33%; background-size: 9rem; min-height: 30rem; } .spin:not(.list) { min-height: 80%; } /* Background loading */ .shimmer { background: linear-gradient(to right, rgba(var(--movim-font), 0), rgba(var(--movim-font), 0.05), rgba(var(--movim-font), 0)); background-size: 100% 100%; background-repeat: no-repeat; animation-duration: 2s; animation-fill-mode: forwards; animation-iteration-count: infinite; animation-name: placeHolderShimmer; animation-timing-function: linear; } @keyframes placeHolderShimmer { 0% { background-position: -800px 0 } 100% { background-position: 800px 0 } } /* Avatar */ img.avatar, span.avatar { margin: 0 auto; border-radius: 1rem; display: block; max-width: 100%; background-color: rgb(var(--movim-background-main)); animation: fadeIn 0.2s; line-height: 100%; } img.avatar { box-shadow: var(--elevation-1); max-width: 210px; } span.avatar.icon { height: 25rem; width: 25rem; line-height: 25rem; } img.avatar:not([src=""])+.placeholder { display: none; } /* Placeholder */ .placeholder { text-align: center; font-size: 1.2em; max-width: 55rem; margin: 0 auto; padding: 4rem; box-sizing: border-box; } .placeholder>i:first-child { font-size: 14rem; opacity: 0.3; } .placeholder h1 { opacity: 0.6; font-size: 2.5rem; line-height: 3rem; margin-bottom: 1rem; } .placeholder h4 { opacity: 0.7; } .placeholder p { text-align: center; } .placeholder ul.list p { text-align: left; } /* Display/hide */ .on_mobile { display: none !important; } .on_mobile_after:after { display: none !important; } @media screen and (max-width: 1024px) { .on_mobile, .on_mobile_after:after { display: revert !important; } .on_mobile.material-symbols { display: inline !important; } .on_desktop { display: none !important; } } /* Tag */ .tag { font-size: 1.5rem; line-height: 1.5rem; padding: 0.2rem 0.5rem; border-radius: 0.25rem; } /* Disabled */ .faded>* { -webkit-filter: grayscale(100%); filter: grayscale(100%); opacity: 0.5; } .recessed { opacity: 0.9; } .disabled { opacity: 0.5; pointer-events: none; } /* Fingerprint */ .fingerprint { font-family: monospace; max-width: 44rem; display: block; line-height: 3rem; } .fingerprint.self { font-weight: bold; } /* Spinner */ div#spinner { position: relative; overflow: visible; text-align: center; margin: 50% 0; } .show { display: inherit; } ul.list li.hide, .hide, .button.hide { display: none; } /* Transparent images background */ img.transparent { background-color: #eee; background-image: linear-gradient(45deg, #CCC 25%, transparent 25%, transparent 75%, #CCC 75%, #CCC), linear-gradient(45deg, #CCC 25%, transparent 25%, transparent 75%, #CCC 75%, #CCC); background-size: 30px 30px; background-position: 0 0, 15px 15px; } /* Audio player */ .audio_player { display: flex; align-items: center; padding: 0.5rem 1rem; margin-bottom: 0.5rem; } .audio_player .button { padding: 0; } div.bubble .audio_player p { min-width: 10rem; text-align: center; margin: 0 1rem; } .audio_player input[type=range] { margin: 0 1rem; } @media screen and (max-width: 1024px) { .audio_player input[type=range] { width: 15rem; } } /* Animations */ @keyframes slideUp { 0% { opacity: 0; transform: translateY(100%); } 100% { opacity: 1; transform: translateY(0); } } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes blink { 0%, 100% { opacity: 0; } 25%, 75% { opacity: 1; } } @keyframes fadeText { 0%, 100% { color: transparent; } 25%, 75% { color: inherit; } /* Enforce white for now as inherit is not applied correctly */ } @keyframes spin { 100% { transform: rotate(360deg); } } @keyframes shake { 0% { transform: rotate(0deg); } 10% { transform: rotate(-5deg); } 20% { transform: rotate(5deg); } 30% { transform: rotate(-10deg); } 40% { transform: rotate(10deg); } 50% { transform: rotate(-15deg); } 60% { transform: rotate(15deg); } 70% { transform: rotate(-20deg); } 80% { transform: rotate(20deg); } 90% { transform: rotate(0); } 100% { transform: rotate(0); } } @keyframes zoom { from { transform: scale(0.9); opacity: 0; } to { transform: scale(1); opacity: 1; } } @keyframes zoomOut { from { transform: scale(1.1); opacity: 0; } to { transform: scale(1); opacity: 1; } } @keyframes loadingOpacity { from { opacity: 0.2; } to { opacity: 1; } } @keyframes ripple { from { opacity: 0.5; transform: scale(0.1); } to { opacity: 0; transform: scale(1); } } @keyframes shine { to { background-position-x: -200%; } } @keyframes backgroundBlink { 0%, 50%, 100% { opacity: 1; } 25%, 75% { opacity: 0.5; } } body { --standard-easing: cubic-bezier(0.4, 0.0, 0.2, 1); --accelerate-easing: cubic-bezier(0.3, 0.0, 0.8, 0.15); --decelerate-easing: cubic-bezier(0.05, 0.7, 0.1, 1.0); }