.no-select {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  -o-user-select: none;
  -khtml-user-select: none;
  user-select: none;
}
body {
    margin:0;
    font-size: 14px;
    font-family: Verdana;
    color:#fff;
    background: linear-gradient(rgba(20, 55, 35, 0.85), rgba(5, 20, 12, 0.85)), url('/images/harpbc.png');
    background-repeat: no-repeat;
    background-size: cover;
    background-attachment: fixed;
}
.gr {
    color: #aaa;
}
#close {
    position: absolute;
    top: 20px;
    left:20px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 15px;
    background-color: #fff;
    color: #000;
    text-decoration: none;
    font-size: 20px;
    font-weight: bold;
    z-index: 999;
}
#close:hover {
    background-color: LightCoral;
}
#main {
    width: 80vw;
    min-height: 100vh;
    margin: 60px auto 0;
    padding: 0 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    animation: expand 0.8s ease-out forwards; 
    transform-origin: center; 
    box-shadow: 0 0 20px rgba(0,0,0,0.2);
}
#main0 {
    width: 60vw;
    min-height: 100vh;
    margin: 60px auto 0;
    padding: 0 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-shadow: 0 0 20px rgba(0,0,0,0.2);
}
@keyframes expand {
    0% {
        transform: scaleX(0) scaleY(0); 
        opacity: 0;
    }
    100% {
        transform: scaleX(1) scaleY(1);
        opacity: 1;
    }
}
#main2 {
    display: flex;
    flex-direction: row;
    align-items: center;
}
#lft, #cnt, #rgt {
    display: flex;
    flex-direction: column;
}
#ovbgroup, #ofbgroup {
    display: flex;
    flex-direction: column;
    overflow-x: auto;
}
#ovbgroup {
    padding-bottom: 50px;
}
#cnt {
    margin: 0 60px;
}
#tab0 {
    margin:0 auto;
    display: flex;
    flex-direction: column;
}
.nobends {
    background-color: #C3FFFBD9;
    color: #000;
}
.nobends:hover, .nbhover {
    background-color: #82BFBB;
    
}
.pad {
    padding: 2px 0;
}
.bends {
    background-color: #FFEAC3D9;
    color: #000;
}
.bends:hover {
    background-color: #BFAA82;
}
.overbends {
    background-color: #FFC3C6D9;
    color: #000;
}
.overbends:hover {
    background-color: #BF8285;
}
.bl {
    color: #fff;
    background-color: #000;
}
#keys {
    display: flex;
    flex-direction: row;
    align-items: center;
    padding-bottom:100px;
}
.key {
    flex: 1;
    display: block;
    padding: 1px;
    font-size: 14px;
    text-align: center;
    white-space: nowrap;
}
.key a, .type a, .ovb a, .ofb a, .ofbg a {
    display: block;
    padding: 7px;
    text-decoration: none;
    color: #fff;
    border-radius: 15px;
    cursor: pointer;
    white-space: nowrap;
}
.key a:hover, .type a:hover, .ovb a:hover, .ofb a:hover {
    background-color: SkyBlue;
}
.key a:active, .type a:active, .ovb a:active, .ofb a:active, .keyactive, .typeactive, .ovbactive, .ofbactive {
    background-color: LightCoral;
}
.type, .ovb, .ofb, .ofbg{
    display: block;
    padding: 1px;
    font-size: 14px;
}
.ofb {
    white-space: nowrap;
}
.ofbg a {
    display: block;
    padding: 7px;
    text-decoration: none;
    border-radius: 15px;
    cursor: pointer;
    color: #52514f; 
}
#harp {

}
#harp a {
    display: block;
    border: 1px solid #fff;
    width: 50px;
    height: 50px;
    line-height:50px;
    cursor: pointer;
    text-align: center;
    color: #000;
    text-decoration: none;
    font-size: 16px;
}
.blow, .draw, #numb {
    display: flex;
}
.note {
    padding-top:20px;
    font-size: 10px;
    color: #aaa;
}
#numb div {
    display: block;
    border: 1px solid #fff;
    width: 50px;
    height: 28px;
    line-height: 28px;
    text-align: center;
    color: #FFF;
    background-color: #000;
    font-size: 16px;
}
.emptydiv {
    width: 52px;
    height: 52px;
    display: block;
}
#staff {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
}
.staffcol {
    width: 24px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    position: relative;
}
.staffcell, .staffcell0 {
    width: 24px;
    height: 10px;
    font-size: 10px;
    display: flex;
    align-items: center;    
    justify-content: center;
}
.staffcell {
    border-bottom: 1px solid #FFF;
}
.staffcell0 {
    border-bottom: 1px solid transparent;
}
.notes-layer {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.note-img {
    position: absolute;
    width: 20px;
    height: 40px;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
    left: 50%;
    transform: translateX(-50%);
}
.note-img.stem-up { background-image: url('/images/stemup.png'); }
.note-img.stem-up.sharp { background-image: url('/images/stemupsharp.png'); }
.note-img.stem-down { background-image: url('/images/stemdown.png'); }
.note-img.stem-down.sharp { background-image: url('/images/stemdownsharp.png'); }
@media screen and (max-width: 480px) {
    #close {
        display: none;
    }
    #main, #main0 {
        display: block;
        min-width: 100vw;
        min-height: 100vh;
        margin: 60px auto 0;
        padding: 2px;
        box-shadow: 0 0 20px rgba(0,0,0,0.2);
    }
    #main2 {
        display: block;
        flex-direction: column;
        align-items: center;
        overflow-x: auto;
    }
    #lft {
        display: flex;
        flex-direction: row;
        overflow-x: auto;
    }
    #cnt {
        display: flex;
        flex-direction: column;
        margin: 0;
        overflow-x: auto;
    }
    #keys, #harp {
        min-width: initial;
        overflow-x: auto;
    }
    #ovbgroup, #ofbgroup {
        display: flex;
        flex-direction: row;
        overflow-x: auto;
    }
    #ovbgroup {
        padding: 10px 0;
    }
}
@media screen and (max-height: 480px) and (orientation: landscape) {
    #close {
        display: none;
    }
    #main, #main0 {
        display: block;
        min-width: 100vw;
        min-height: 100vh;
        margin: 60px auto 0;
        padding: 2px;
        box-shadow: 0 0 20px rgba(0,0,0,0.2);
    }
    #main2 {
        display: block;
        flex-direction: column;
        align-items: center;
        overflow-x: auto;
    }
    #lft {
        display: flex;
        flex-direction: row;
        overflow-x: auto;
    }
    #cnt {
        display: flex;
        flex-direction: column;
        margin: 0;
        overflow-x: auto;
    }
    #keys, #harp {
        min-width: initial;
        overflow-x: auto;
    }
    #ovbgroup, #ofbgroup {
        display: flex;
        flex-direction: row;
        overflow-x: auto;
    }
    #ovbgroup {
        padding: 10px 0;
    }
}