html {
    font-family: Microsoft Yahei,"微软雅黑","Helvetica Neue",Helvetica,Hiragino Sans GB,WenQuanYi Micro Hei,sans-serif;
    font-size: 16px;
    line-height: 1.5;

    height: 100%;

    background-color: #f5f5f5;

    -webkit-tap-highlight-color: transparent;
}

body {
    overflow: hidden;

    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;

    background-image: url(../images/10005000276c3fbc62f6f.jpg);
    background-repeat: no-repeat;
    background-position: center bottom;
    background-size: cover;
    
    text-shadow: 0 0 2px #000;
    user-select: none;
}

::-webkit-scrollbar {
    width: 10px;
    height: 10px;
    background: #f5f6f6;
}

::-webkit-scrollbar-button {
    width: 0;
    height: 0;
}

::-webkit-scrollbar-button:start:increment, ::-webkit-scrollbar-button:end:decrement {
    display: none;
}

::-webkit-scrollbar-corner {
    display: block;
}

::-webkit-scrollbar-thumb {
    border-radius: 8px;
    background-color: rgba(0, 0, 0, 0.2);
}

::-webkit-scrollbar-thumb:hover {
    border-radius: 8px;
    background-color: rgba(0, 0, 0, 0.5);
}

::-webkit-scrollbar-track, ::-webkit-scrollbar-thumb {
    border-right: 1px solid transparent;
    border-left: 1px solid transparent;
}

::-webkit-scrollbar-track:hover {
    background-color: rgba(0, 0, 0, 0.15);
}

::-webkit-scrollbar-button:start, ::-webkit-scrollbar-button:end {
    background: url(data:image/png;base64,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) no-repeat;
}

::-webkit-scrollbar-button:start {
    width: 10px;
    height: 10px;
    background-position: 0 0;
}

::-webkit-scrollbar-button:start:hover {
    background-position: -15px 0;
}

::-webkit-scrollbar-button:start:active {
    background-position: -30px 0;
}

::-webkit-scrollbar-button:end {
    width: 10px;
    height: 10px;
    background-position: 0 -18px;
}

::-webkit-scrollbar-button:end:hover {
    background-position: -15px -18px;
}

::-webkit-scrollbar-button:end:active {
    background-position: -30px -18px;
}

ul {
    margin: 0;
    padding: 0;
}

canvas#bg {
    position: fixed;
}

span.setup {
    position: absolute;
    z-index: 888;
    top: 10px;
    right: 10px;
    display: block;
    width: 32px;
    height: 32px;
    -webkit-transition: -webkit-transform 180ms ease;
    transition: -webkit-transform 180ms ease;
    transition: transform 180ms ease;
    transition: transform 180ms ease, -webkit-transform 180ms ease;
    border-radius: 50%;
    background-color: rgba(0, 0, 0, .3);
    background-image: url("../images/setup.svg")/*tpa=http://tool.yijingying.com/musictools/relax/images/setup.svg*/
    ;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 24px;
}

span.setup.active {
    -webkit-transform: scale(0);
    transform: scale(0);
}

#menu {
    position: fixed;
    top: 50%;
    left: 50%;

    width: 240px;
    height: 240px;
    margin-top: -120px;
    margin-left: -120px;

    -webkit-transition: opacity 180ms ease-in;
            transition: opacity 180ms ease-in;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);

    opacity: 0;
    
    backdrop-filter: blur(4px);
}

#menu .row {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    width: 100%;
    height: 80px;
}

#menu .col {
    width: 80px;
    height: 80px;

    text-align: center;

    -webkit-box-flex: 1;
    -ms-flex: 1;
        flex: 1;
}

#menu .icon {
    display: block;

    width: 40px;
    height: 40px;
    margin: 20px;

    cursor: pointer;
    -webkit-transform: rotate(-45deg);
            transform: rotate(-45deg);

    background-repeat: no-repeat;
    background-position: center;
    background-size: 40px;
}

#menu .icon-volume {
    background-image: url(../images/unmute.png);
    background-size: 36px;
}

#menu .icon-volume.muted {
    background-image: url(../images/mute.png);
}

#menu .icon-list {
    background-image: url(../images/menu.svg);
}

#menu .icon-timer {
    background-image: url(../images/timer.png);
}

#menu .icon-exit {
    background-image: url(../images/exit.svg);
    background-size: 36px;
}

#menu .icon-logo {
    width: 72px;
    height: 72px;
    margin: 4px;

    background-image: url(../images/logo.svg);
    background-size: 72px;
}

#menu .icon-timer.active {
    display: none;
}

.line-group > div {
    position: absolute;

    width: 240px;
    height: 1px;

    -webkit-transition: -webkit-transform 200ms ease-in;
            transition: -webkit-transform 200ms ease-in;
            transition:         transform 200ms ease-in;
            transition:         transform 200ms ease-in, -webkit-transform 200ms ease-in;
    -webkit-transition-delay: 180ms;
            transition-delay: 180ms;

    background-color: #fff;
}

.line-1 {
    top: 80px;

    -webkit-transform: translateX(200px);
            transform: translateX(200px);
}

.line-2 {
    top: 160px;

    -webkit-transform: translateX(-200px);
            transform: translateX(-200px);
}

.line-3 {
    top: 120px;
    left: -40px;

    -webkit-transform: rotate(90deg) translateX(-200px);
            transform: rotate(90deg) translateX(-200px);
}

.line-4 {
    top: 120px;
    left: 40px;

    -webkit-transform: rotate(90deg) translateX(200px);
            transform: rotate(90deg) translateX(200px);
}

#menu.visible {
    opacity: 1;
    background-color: rgba(0, 0, 0, .35);
    border-radius: 10%;
}

#menu.visible .line-1 {
    -webkit-transform: translateX(0);
            transform: translateX(0);
}

#menu.visible .line-2 {
    -webkit-transform: translateX(0);
            transform: translateX(0);
}

#menu.visible .line-3 {
    -webkit-transform: rotate(90deg) translateX(0);
            transform: rotate(90deg) translateX(0);
}

#menu.visible .line-4 {
    -webkit-transform: rotate(90deg) translateX(0);
            transform: rotate(90deg) translateX(0);
}

section.side-bar {
    position: fixed;
    z-index: 999;

    overflow: hidden;

    width: 100%;
    height: 100%;

    -webkit-transition: -webkit-transform 480ms ease;
            transition: -webkit-transform 480ms ease;
            transition:         transform 480ms ease;
            transition:         transform 480ms ease, -webkit-transform 480ms ease;
    -webkit-transition-delay: 180ms;
            transition-delay: 180ms;
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
}

.mask {
    position: absolute;
    top: 0;
    left: 0;

    width: 100%;
    height: 100%;

    background-color: transparent;
}

#sound-list {
    position: absolute;
    z-index: 2;
    right: 0;

    overflow-y: scroll;
    overflow-x: hidden;

    width: 240px;
    height: 100%;

    background-color: rgba(0, 0, 0, .2);
    
    -webkit-backdrop-filter: blur(8px);
            backdrop-filter: blur(8px);

    -webkit-overflow-scrolling: touch;
}

#sound-list li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    width: 100%;
    height: 80px;
    margin: 0;
    padding: 0;

    list-style: none;
    
    border-bottom: 1px solid #5d5f5c;

    opacity: .6;
}

#sound-list .icon {
    display: inline-block;

    width: 60px;
    height: 60px;
    margin: 10px;

    cursor: pointer;

    background-image: url(../images/icon-sprite.png);
    background-repeat: no-repeat;
    background-size: 720px 60px;
}

.icon-rain {
    background-position: 0 0;
}

.icon-thunder {
    background-position: -540px 0;
}

.icon-farm {
    background-position: -660px 0;
}

.icon-night {
    background-position: -360px 0;
}

.icon-forest {
    background-position: -60px 0;
}

.icon-leaves {
    background-position: -120px 0;
}

.icon-river {
    background-position: -180px 0;
}

.icon-fire {
    background-position: -240px 0;
}

.icon-seaside {
    background-position: -600px 0;
}

.icon-yacht {
    background-position: -420px 0;
}

.icon-coffee {
    background-position: -300px 0;
}

.icon-train {
    background-position: -480px 0;
}

.sound-icon {
    width: 80px;
    height: 80px;

    -webkit-box-flex: 4;
    -ms-flex: 4;
        flex: 4;
}

.control-block {
    width: 140px;
    height: 60px;
    padding: 10px;

    -webkit-box-flex: 7;
    -ms-flex: 7;
        flex: 7;
}

.control-block h4 {
    font-size: 18px;
    font-weight: normal;

    margin-top: 0;
    margin-bottom: 0;
    
    cursor: pointer;

    -webkit-transition: -webkit-transform 300ms ease;
            transition: -webkit-transform 300ms ease;
            transition:         transform 300ms ease;
            transition:         transform 300ms ease, -webkit-transform 300ms ease;
    -webkit-transform: translateY(18px);
            transform: translateY(18px);

    color: #fff;
}

.control-block h4 small {
    margin-left: 10px;
}

.control-bar {
    position: relative;

    display: none;

    width: 100%;
    height: 4px;
    margin-top: 12px;

    border-radius: 2px;
    background-color: #fff;
}

.control-bar:before,
.control-bar:after {
    position: absolute;
    z-index: 2;
    top: -15px;
    left: 0;

    display: block;

    width: 100%;
    height: 15px;

    content: '';
}
.control-bar:after {
    top: 0;

    height: 20px;
}

.slider {
    position: absolute;
    z-index: 8;
    left: 0;

    display: block;

    width: 14px;
    height: 14px;
    margin-top: -5px;
    margin-left: -7px;

    cursor: pointer;

    border-radius: 50%;
    background-color: #fff;
}

#sound-list li.active {
    opacity: 1;
}

section.side-bar.visible {
    -webkit-transform: translateX(0);
            transform: translateX(0);
}

section.side-bar.visible #sound-list {
    -webkit-transform: translateX(0);
            transform: translateX(0);
}

.timer {
    font-size: 24px;

    position: relative;
    top: 20px;

    display: none;

    -webkit-transform: rotate(-45deg);
            transform: rotate(-45deg);
    text-align: center;

    color: #fff;
}

.timer.visible {
    display: block;

    opacity: .8;
}

#sound-list li.active h4 {
    margin-top: 0;

    -webkit-transform: translateY(0);
            transform: translateY(0);
}

#sound-list li.active .control-bar {
    display: block;
}

@media (max-width: 650px) {
    #sound-list {
        background-color: rgba(0, 0, 0, 0.45);
    }
}
