.player { width: 100%; position: relative; background-color: #000; @keyframes phono { 0% { transform: translate(25%, -65%) rotate(-15deg); } .5% { transform: translate(25%, -65%) rotate(0deg); } 100% { transform: translate(25%, -65%) rotate(18deg); } } @keyframes playing { from { transform: translate(-50%, -50%) rotate(0deg); } to { transform: translate(-50%, -50%) rotate(360deg); } } & > div:nth-of-type(1) { height: 100%; width: 100%; padding-bottom: .5em; video { height: 100%; width: 100%; object-fit: contain; } > span:first-of-type { position: absolute; top: 45%; left: 50%; height: 9em; width: 9em; border-radius: 50%; animation: playing 15s linear infinite; background-size: cover; background-position: center; border: 3px solid #555; &:before { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); content: ''; height: 2em; width: 2em; border-radius: 50%; background-color: #eee; border: 2px solid #333; } &:after { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); content: ''; height: .25em; width: .25em; border-radius: 50%; background-color: #000; } } & > div:nth-child(2) { position: absolute; top: 45%; left: 50%; background-color: #333; border: 2px solid #222; height: 10em; width: 13em; transform: translate(-44%, -62%); border-radius: .5em; } & > img:nth-child(4) { transform-origin: 70% 22%; position: absolute!important; top: 45%; left: 50%; transform: translate(25%, -65%); animation: phono 360s forwards; } } & > div:nth-of-type(2) { overflow-y: auto; overflow-x: hidden; @media (pointer: coarse) { overflow-y: scroll; -webkit-overflow-scrolling: touch; } } & > div:nth-of-type(2), & > div:nth-of-type(3) { width: 48%; position: absolute; top: 0; bottom: 0; background-color: var(--color-glass); transition: .3s transform; @media(max-width: 40em) { width: 96%; bottom: 0; } ul { width: 100%; padding-top: .5em; } li { display: flex; align-items: center; padding: 0 1em; & > span:first-of-type { margin: 0 .5em; } & > span:nth-of-type(2) { flex-grow: 1; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } & > span:nth-of-type(3) { padding: .5em; svg { transition: .3s opacity linear .3s, .3s color; @media(min-width: 40em) { visibility: hidden; opacity: 0; } } } & > span:nth-of-type(3) { & > svg { color: var(--color-error); } @media(hover: hover) { &:hover > svg { color: #f00; } } } @media(hover: hover) { &:hover { background-color: var(--color-glass-alt); } &:hover > span:nth-of-type(3) > svg { visibility: visible; opacity: 1; } } } } & > div:nth-of-type(2) { left: 0; border-top-right-radius: 1em; border-bottom-right-radius: 1em; border-right: 1px solid var(--color-window-border-bottom); & > div { right: -0.5em; } } & > div:nth-of-type(3) { right: 0; border-top-left-radius: 1em; border-bottom-left-radius: 1em; border-left: 1px solid var(--color-window-border-bottom); & > div:last-of-type { left: -0.5em; } & > div:first-of-type { overflow-y: auto; overflow-x: hidden; padding: 1em; height: 100%; } pre { line-height: 1.25; white-space: break-spaces; &:first-of-type { font-weight: 600; padding-bottom: 1em; } } } }