$height-video-embedded: $width-page-constrained * 9 / 16; video { object-fit: contain; box-sizing: border-box; max-height: 100%; max-width: 100%; background-size: contain; background-position: center center; background-repeat: no-repeat; } .video { background: #000; color: white; } .video-embedded { max-width: $width-page-constrained; max-height: $height-video-embedded; height: $height-video-embedded; position: relative; video { height: 100%; width: 100%; position: absolute; top: 0; left: 0; } &.video--hidden { height: $height-video-embedded; } &.video--active { /*background: none;*/ } } .video--obscured .video__cover { position: relative; filter: blur(var(--nsfw-blur-intensity)); } .video__loading-screen { height: 100%; display: flex; justify-content: center; align-items: center; } .video__loading-spinner { position: relative; width: 11em; height: 11em; margin: 20px auto; font-size: 3px; border-radius: 50%; background: linear-gradient(to right, #ffffff 10%, rgba(255, 255, 255, 0) 50%); animation: spin 1.4s infinite linear; transform: translateZ(0); @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } &:before, &:after { content: ''; position: absolute; top: 0; left: 0; } &:before { width: 50%; height: 50%; background: #ffffff; border-radius: 100% 0 0 0; } &:after { height: 75%; width: 75%; margin: auto; bottom: 0; right: 0; background: black; border-radius: 50%; } } .video__loading-status { padding-top: 20px; color: white; } .video__cover { text-align: center; height: 100%; width: 100%; background-size: auto 100%; background-position: center center; background-repeat: no-repeat; position: relative; .video__play-button { @include absolute-center(); } } .video__play-button { position: absolute; width: 100%; height: 100%; cursor: pointer; display: none; font-size: $spacing-vertical * 3; color: white; z-index: 1; background: var(--color-dark-overlay); opacity: 0.6; left: 0; top: 0; &:hover { opacity: 1; transition: opacity var(--transition-duration) var(--transition-type); } }