#main_play_title {
    width:100%;

    flex:4;
    align-items:left;
    justify-content:left;
    flex-direction: column;

    -webkit-flex: 4;
    -webkit-align-items:left;
    -webkit-justify-content: left;
    -webkit-flex-direction: column;
}

#main_play_buttons {
    width:100%;

    display:flex;
    display:-webkit-flex;

    flex:2;
    -webkit-flex:2;

    align-items:center;
    -webkit-align-items: center;

    justify-content:center;
    -webkit-justify-content: center;

    flex-direction: column;
    -webkit-flex-direction: column;

    min-height:5.14em;
    z-index:5;
}

#main_play_scrubber {
    flex:1;
    -webkit-flex: 1;

    padding:0 1.3125rem;
    z-index:3;
}

#main_play_secondary {
    width:100%;

    display:flex;
    display:-webkit-flex;

    flex-direction:row;
    -webkit-flex-direction: row;

    flex:1;
    -webkit-flex: 1;

    justify-content:center;
    -webkit-justify-content: center;

    align-items: center;
    -webkit-align-items: center;

    min-height:2rem;
    padding:0 1.3125rem;
    padding-bottom:0.75rem;
    z-index:3;
}

#main_play_title, #main_play_buttons, #main_play_scrubber, #main_play_secondary {
    z-index:6;
}

#play_art {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
}

#art_hold {
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    width: 100%;
    height: 100%;
    -webkit-transform-origin: 0 50%;
    transform-origin: 0 50%;
}

#art_wrapper { position: absolute; top: 0; left: 0; bottom: 0; right: 0; }
#art_wrapper._blur #art_image {
    top: -40px;
    left: -40px;
    right: -40px;
    bottom: -40px;
    z-index: -1;
    width: calc(100% + 80px);
    height: calc(100% + 80px);
}
body.performant_gui #art_image_1._blur,
body.performant_gui #art_image_2._blur {
    filter: blur(20px);
    -webkit-filter: blur(20px)
}
#art_image {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: block;
    cursor: pointer;
    background-size: cover;
    background-repeat: no-repeat;
}
.art_filter.darken,
.art_filter.colorwash {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
._blur .art_filter {
    position: absolute;
    display: block;
    visibility: visible;
}
._blur .art_filter.darken {
    background-color: rgba(0, 0, 0, .4);
}
.art_filter.gradient_top {
    top: 0;
    left: 0;
    width: 100%;
    height: 26%;
}
.art_filter.gradient_left {
    top: 0;
    left: 0;
    width: 80%;
    height: 100%;
}
.art_filter.gradient_bottom {
    bottom: 0;
    left: 0;
    width: 100%;
    height: 45%;
}
#art_info {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 37;
    color: #fff;
    cursor: pointer;
    height: 4rem;
}

#art_info {
    -webkit-backdrop-filter: none;
    background-color: transparent;
    padding: 0 1.3125rem 0 1rem;
}

#art_info .master_header_button { color: #fff; }

#art_info .master_header_button.left { padding-top: .3em; transform-origin: 50% 50% 0; -webkit-transform-origin: 50% 50% 0; }

#main_play.open #art_info .master_header_button.left {
    -webkit-transform: rotate(180deg);
}

#viewport.device_tray.main_play #art_info .master_header_button.left {
    display:none;
}

#art_info .master_header_button.presets, #main_play.open #now_play_peak_control{ display: none; }
#main_play.open #art_info .master_header_button.presets, #now_play_peak_control{ display: flex; display: -webkit-flex; position: absolute }

#viewport.device_tray.main_play #main_play.open #now_playing_peak_hold,
#viewport.device_tray.main_play #main_play.open #artwork_peek {
    visibility: visible;
    opacity: 1;
}

#but_msg_spkr_play {
    z-index:2;
}

#viewport.main_play #main_play.open #now_playing_peak_hold,
#viewport.main_play #main_play.open #artwork_peek {
    visibility: hidden;
    opacity:0;
}

#viewport.main_play.device_tray #main_play.open #info_hold {
    display: none;
}
#viewport.main_play.device_tray #main_play.open #art_info_presets_icon {
    display:none;
}

#info_hold
{
    opacity:0;
    display: none;
}

#viewport.main_play.device_tray #main_play.open #now_play_peak_control {
    display: -webkit-flex;
}

#main_play.open #info_hold {
    opacity:1;
    display: flex;
    display: -webkit-flex;
}

#info_sourceIcon_img {
    width: inherit;
    height: inherit;
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
}

#info_sourceIcon{
    width: 1.6rem;
    height: 1.6rem;
}

#main_trayPlay {
    display: none;
}

#info_source.hidden, #info_station.hidden { display: none; }

#art_time {
    flex:1;
    width:100%;
    display: flex;
    display: -webkit-flex;
    align-items: center;
    -webkit-align-items: center;
    justify-content: space-between;
    -webkit-justify-content: space-between;
}

#art_time.hidden { display: none; }
#art_time .time { font-weight: bold; color: #fff; width: 2.625rem; font-size: 0.6875rem }
#art_time .time.hidden { display: none; }
#art_time .time.current { text-align: left; }
#art_time .time.total { text-align: right; opacity: 0.5;}
#art_time .progress { background-color: rgba(255,255,255,.2); display: block; height: 2px; flex-basis: 100%; -webkit-flex-basis: 100%; }
#art_time .progress > .bar { background-color: #fff; display: block; width: 100%; height: 100%; -webkit-transform-origin: left; transform-origin: left; -webkit-transform: scale3d(0,1,1); transform: scale3d(0,1,1); }

#now_playing_peak_hold {
    color: #fff;
    font-size: .625rem;
    -webkit-transform: translate3d(0,0,0);
    display: -webkit-flex;
    -webkit-align-items: center;
    -webkit-align-content: center;
    -webkit-flex-wrap: wrap;
}
#play_tag {
    color: #fff;
    font-size: .625rem;
    -webkit-transform: translate3d(0,0,0);
    display:flex;
    flex-direction:column;
}

#play_tag > .wrapper {
    display: -webkit-flex;
    -webkit-flex-wrap: nowrap;
    overflow: hidden;
}

.tag_text {
    margin: 0;
    padding: 0;
    line-height: 1.1em;
}

#tag_0, #now_playing_peak_tag_title {
    font-weight: bold;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    text-overflow: ellipsis;
    overflow: hidden;
    /*white-space: nowrap;*/
    flex-basis: 100%;
    -webkit-flex-basis: 100%;
    margin-bottom: 0.2rem;
}

#tag_0 {
    font-size: 3rem;
    margin-left: 1.3rem;
    flex: 1;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    line-height: 3.4rem;
}

#play_tag .wrapper {
    margin:0 1.3rem;
    font-size:1rem;
}

#tag_2 {
    max-width: 70%;
    -webkit-flex-grow: 1;
    -webkit-flex:none;
}

#tag_1, #tag_2, #now_playing_peak_tag_info, #now_playing_peak_tag_source_name {
    display: inline-block;
    margin: 0;
    padding: 0;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}
#tag_2:before {
    content: '•';
    width: 1rem;
    display: inline-block;
    text-align: center;
}

#tag_0.hidden #tag_1.hidden, #tag_2.hidden, #now_playing_peak_tag_title.hidden, #now_playing_peak_tag_info.hidden, #now_playing_peak_tag_source_name.hidden {
    display: none;
}

#tag_2.hidden:before, #now_playing_peak_tag_source_name.hidden:before {
    content: '';
}

#now_playing_peak_tag_title{
    font-size: 0.875rem;
}

#now_playing_peak_tag_info{
    margin-right: .25rem;
    opacity: 0.5;
}

#now_playing_peak_tag_source_name{
    -webkit-flex: none;
    opacity: 0.5;
}

#play_control {
    width:100%;
    height: 3.75rem;

    font-family: bose;
    font-size: 1.8rem;

    display: flex;
    display: -webkit-flex;

    align-items:center;
    -webkit-align-items: center;

    justify-content: center;
    -webkit-justify-content: center;

    -webkit-transform: translate3d(0,0,0);
}

#now_play_peak_control {
    width: 4.3rem;/* matches .master_header styles */
    height: 3.75rem;/* matches .master_header styles */
    position: absolute;
    bottom: auto;
    left: auto;
    right: 0;
    top: 0;
    z-index: 10;
    font-family: bose;
    font-size: 1.8rem;
    display: -webkit-flex;
    -webkit-align-items: center;
    -webkit-justify-content: space-around;
    -webkit-transform: translate3d(0,0,0);
}

#now_play_peak_control{
   width: auto;
}

#now_play_peak_control .icon{
    font-size: 1.5rem;
    font-weight: bold;
}
#now_play_peak_control .outline {
	border: solid 1.5px #fff;
    border-radius: 50%;
    width: 2rem;
    height: 2rem;
}

.control_but,
.msg_spkr_off_icon { cursor: pointer; display: none; }
.control_but { display: inline-block; }

.control_but.main,
.msg_spkr_off_icon {
    border: solid 1.5px #ffffff;
    border-radius: 50%;
    font-weight: bold;
}

#play_control .control_but,
.msg_spkr_off_icon {
    color: #fff;
    font-size: 2.5rem;
    width: 5rem;
    height: 5rem;
    display: -webkit-flex;
    -webkit-justify-content: center;
    -webkit-align-items: center;
}
/*#play_control .control_but.main,*/
.msg_spkr_off_icon {
    left: -webkit-calc(50% - 2.75rem);
    border-width: 2px;
    margin-top: 0;
}

#now_play_peak_control #play_control {
    top: auto;
    right: 0;
    bottom : auto;
    left: auto;
    height: auto;
    position: relative;
}


#now_play_peak_control #play_control .control_but{
    width: auto;
    height: auto;
    line-height: auto;
    font-size: 1.5rem;
    position: relative;
    left: auto;
    margin: 0 1rem;
}

#now_play_peak_control #play_control .control_but, #now_play_peak_control .msg_spkr_off_icon {
    border: none;
    border-radius: inherit;
}

.wrapper:not(#now_playing_peak_hold .wrapper) {
    width: calc(100% - 2em);
    font-size:2vh;
}
#now_playing_peak_hold .wrapper {
    width:100%;
}

#now_playing_peak_hold .wrapper{
    display: -webkit-flex;
    -webkit-justify-content: flex-start;
}

.control_but_sel { color: #999 !important; }
.control_but_on { color: #fff !important; }
.control_but_on_clickable { color: #fff !important; }
.control_but_off { opacity: .3; cursor: default !important; }

#secondary_controls {
    flex:1;
    -webkit-flex:1;
    font-family: bose;
    font-weight: normal;
    font-size: 1.8rem;
    transform: translate3d(0,0,0);
    -webkit-transform: translate3d(0,0,0);
    height:3rem;
}

#info_icons, #other_icons, #more_icon { display: inline; white-space: nowrap; width: 3.688rem ; vertical-align: -webkit-baseline-middle; }
.info_icon_on { color: #000; }
.info_icon, #other_icons .control_but, #more_icon .control_but { margin-right: 10%; display: inline-block; color: rgba(255,255,255,.5); }
#more_icon .control_but { transform: rotate(90deg); -webkit-transform: rotate(90deg); }

#artwork {
    z-index: 70;
    width: 3rem;
    height: 3rem;
    background-size: contain;
    background-position: 50% 50%;
    background-repeat: no-repeat;
    background-color: #fff;
}

#viewport.artwork #artwork {
    visibility:hidden;
}

#artwork_peek{
    height: 2.5rem;
    width: 2.5rem;
    background: no-repeat center;
    background-size: contain;
    background-color: #fff;
    margin: 0.75rem 0;
}

/* NOW PLAYING - TRAY */

#trayPlay_img {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
}

#trayPlay_hold {
    display: none;
}

#trayPlay_tags {
    width: 100% !important;
    left: 0 !important;
    z-index: 10;
}
#trayPlay_tags h3 { position: relative; color: #b2b2b2; display: inline-block; padding: 0; margin: 0; font-size: 1.2em; text-transform: uppercase; }
#trayPlay_tags p { padding: 0; margin: 0; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; color: #fff; text-align: center; font-size: .75rem; letter-spacing: 0.031rem; font-weight: bold; }

#trayPlay_tags p .details { display: none; }

#trayPlay_info {
    position: relative;
    width: 100%;
    left: 0;
    top: 0;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
    text-align: center;
    color: #fff;
    pointer-events: none;

    display: none;
}
#trayPlay_info .trayPlay_info_source {
    visibility: visible !important;
}

#trayPlay_tag1,
#trayPlay_tag2 {
    display: none;
}

#main_play.open .play_msg_hold,
body.offline{
    visibility: visible;
}

body.offline{
    opacity: 1;
}

#main_play.open .play_msg_hold{
    opacity: 0.6;
}

#play_msg .play_msg_hold
{
    color: rgba(255, 255, 255, 0.98);
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    visibility: collapse;
    opacity: 0;
    -webkit-transition: visibility 0s, opacity 1s ease-in;
}
#play_msg .loader_container {
    color: #fff;
}
#play_msg_content {
    height: 100%;
    width: 100%;
    text-align: center;
    color: #fff;
}



/**********************************************************************/
/*******************NOW PLAYING MESSAGES*******************************************/
/**********************************************************************/

#content_placeholder .loader_container,
#play_msg_content .loader_container {
    position: absolute;
    margin: 0 auto;
    width: 8rem;
    height: 8rem;
    top: 55%;
    left: 50%;
    padding: 6rem 1rem 1rem 1rem;
    -webkit-transform: translate(-50%, -50%);
    background-color: rgba(0, 0, 0, 0.2);
    border-radius: 7px;
    word-wrap: break-word;
    font-size: 0.6em;
    font-weight: bold;
    text-transform: uppercase;
    line-height: 1.7;
    letter-spacing: 0.7px;
}


#play_msg_content .content_loader,
#content_browse .placeholder_msg_content .content_loader{
    top: 4rem;
    left: 4rem;
}


.msg_spkr_container {
     padding: 1.1rem 1.1rem;
     margin: 0;
    position: absolute;
    width: 100%;
    font-size: 2rem;
    font-weight: bold;
    letter-spacing: 2.1px;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
}
.msg_spkr_aux_container {
    border-radius: 7px;
    border: solid 4px white;
}

.play_msg_hold { position: relative; width: 100%; padding: 0 0 .5em 0; margin: 0; }
.play_msg_hold > h3 { position: relative; color: #b2b2b2; display: inline-block; padding: 0; margin: 0; font-size: 1.2em; text-transform: uppercase; }
.play_msg_icon { position: relative; color: #b2b2b2; display: inline-block; font-family: bose; font-weight: normal; font-size: 1.6em; top: .1em; padding: 0 .2em 0 0; }
.play_msg_update {
    width: 100%;
    text-align: center;
    /* width: 12rem; */
    /* height: 12rem; */
    padding: 2rem;
    /* background-color: rgba(0, 0, 0, 0.2); */
    border-radius: 7px;
    margin: 0;
    position: relative;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
}

#play_msg_content .msg_spkr_off_pulse > div {
    /*position: relative;*/
    margin: 0 auto;
    padding: 2rem;
    /*background-color: rgba(255, 255, 255, 0.2);*/
    border: 3px solid;
    border-radius: 50%;
    margin: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    border-color: rgba(255, 255, 255, 1) !important;
  animation: unset;

}



#main_play.open #play_msg_content .msg_spkr_off_pulse > div.animatePulse{
    /*TODO: S.W. Disabled for this version;
    /*-webkit-animation: line-opacity-pulse-out 5.5s 0s 2 cubic-bezier(0.95, 0.25, 0.37, 0.95);*/
    /*animation: line-opacity-pulse-out 5.5s 0s 2 cubic-bezier(0.95, 0.25, 0.37, 0.95);*/
}

.msg_spkr_off_pulse > div:nth-child(1) {
    width: 31rem;
    height: 31rem;
    opacity: 0.1;
    -webkit-animation-delay: 0.75s !important;
    /*animation-delay: 0.75s !important;*/
    /*Temporarely hidden*/
    display: none;


}

.msg_spkr_off_pulse > div:nth-child(2) {
    width: 27rem;
    height: 27rem;
    opacity: 0.15;
    -webkit-animation-delay: 0.6s !important;
    /*animation-delay: 0.6s !important;*/
    /*Temporarely hidden*/
    display: none;
}

.msg_spkr_off_pulse > div:nth-child(3) {
    width: 22rem;
    height: 22rem;
    opacity: 0.2;
    -webkit-animation-delay: 0.45s !important;
    /*animation-delay: 0.45s !important;*/
    /*Temporarely hidden*/
    display: none;
}

.msg_spkr_off_pulse > div:nth-child(4) {
    width: 17rem;
    height: 17rem;
    opacity: 0.25;
    -webkit-animation-delay: 0.30s !important;
    /*animation-delay: 0.30s !important;*/
    /*Temporarely hidden*/
    display: none;
}

.msg_spkr_off_pulse > div:nth-child(5) {
    width: 13rem;
    height: 13rem;
    opacity: 0.3;
    -webkit-animation-delay: 0.15s !important;
    /*animation-delay: 0.15s !important;*/
    /*Temporarely hidden*/
    display: none;
}

.msg_spkr_off_pulse > div:nth-child(6) {
    width: 9rem;
    height: 9rem;
    opacity: 0.35;
    -webkit-animation-delay: 0s !important;
    /*animation-delay: 0s !important;*/
    /*Temporarely hidden*/
    display: none;
}

.msg_spkr_off_pulse > div:nth-child(7) {
    width: 6rem;
    height: 6rem;
    opacity: 1 !important;
    animation: unset !important;
    /*-webkit-animation-delay: -0.15s !important;
    animation-delay: -0.25s !important;*/
    /*   -webkit-animation-delay: -0.25s !important;
    animation-delay: -0.25s !important;*/
}


@-webkit-keyframes line-opacity-pulse-out {

    60% {
        opacity: 0.03;
        border: solid 100px;
    }
    80% {
        opacity: 0.5;
        border: solid 2px;
    }
   98% {
        opacity: 0.12;
        border: solid 3px;
    }
}

@keyframes line-opacity-pulse-out {
    30% {
        opacity: 0.03;
        border: solid 40px;
    }
    41% {
        opacity: 0.3;
        border: solid 3px;
    }
}

.inverse .line-scale-pulse-out > div {
    background-color: #fff;
}

.inverse .loader_container {
    background-color: rgba(0, 0, 0, 0.4) !important;
}

.loader_container h2 {
    font-family: BoseText;
    font-size: 0.9em;
    font-weight: bold;
    line-height: 1.7;
    letter-spacing: 1.5px;
    color: #000;
    display: block;
    max-width: 100%;
    position: absolute;
    bottom: 1rem;
    left: 50%;
    -webkit-transform: translateX(-50%);
}

.inverse .loader_container h2{
    color: #fff;
}

.play_msg_hold {
    display: table;
    height: 25%;
}

.inverse .play_msg_hold {
    color: rgba(255, 255, 255, 0.88);
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    opacity: 0.8;
    padding: 0 4rem;
}

.play_msg_hold_top {
    display: table;
    position: absolute;
    text-align: center;
    top:0px;
    font-size:1em;
    font-weight: bold;
    z-index:1;
}

.play_msg_hold_bottom {
    position: absolute;
    text-align: center;
    bottom: 6.0rem;
    font-size:0.9em;
}

.play_msg_hold > span {
    padding-top: 4rem;
    display: table-cell;
    vertical-align: middle;
}

.msg_spkr_off_icon {
    position: absolute;
    bottom: 24vh;
    font-family: bose;
    /*TODO: Quick fix for MR4*/
    z-index:20;
}

#viewport:not(.device_tray) #main_play.open .play_msg_peak_title {
    visibility: hidden;
    opacity: 0 !important;
}

.play_msg_peak_title {
    visibility: visible;
    opacity: 1;
    position: fixed;
    height: 3rem;
    line-height: 4rem;
    left: 0;
    right: 0;
    z-index: 5;

    color: rgba(255, 255, 255, 0.98);
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);

    font-size: 0.8rem;
    overflow: hidden;
    text-overflow: ellipsis;
    text-transform: none;
    font-weight: bold;
    letter-spacing: 0.125rem;
    padding: 0 4rem;
    height: 4rem;
    display: flex;
    display: -webkit-flex;
    align-items: center;
    -webkit-align-items: center;
    justify-content: center;
    -webkit-justify-content: center;
}

.play_msg_peak_title span {
    vertical-align: middle;
    text-align: center;
    line-height: normal;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}

#main_play.blocked .control_but {
    /*opacity: .25;*/
    pointer-events: none;
}

.msg_spkr_container .airplay{
    font-size: 10rem;
    font-weight: normal;
}

/* Now Play Transitions */

#now_play_art_1,
#now_play_art_2,
.darken,
.colorwash{
    position: absolute;
    width: 100%;
    height: 100%;
}
.darken{
    background-color: rgba(0, 0, 0, .4);
}
#art_image_1,
#art_image_2{
    transform: scale(1.1);
    position: absolute;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-repeat: no-repeat;
    background-color: #fff;
}
.art_filter_1,
.art_filter_2{
    position: absolute;
}
.gradient_top {
    top: 0;
    left: 0;
    width: 100%;
    height: 26%;
}
.gradient_left {
    top: 0;
    left: 0;
    width: 80%;
    height: 100%;
}
.gradient_bottom {
    bottom: 0;
    left: 0;
    width: 100%;
    height: 45%;
}

._no_blur .art_filter {
    display: none;
    visibility: hidden;
}
#art_wrapper ._no_blur{
    filter: none;
}
._no_blur ~ *
 {
    display: none;
}

#play_control .control_space_holder {
    width: 5.5rem;
}

body.portrait #now_play_peak_control .control_but:not(.main),
#now_play_peak_control #play_control .control_space_holder
{
    display: none;
}

body.landscape #now_playing_peak_hold{
    width: -webkit-calc(100% - 14.6rem);
}
