* {
    margin: 0; padding: 0;
}

html, body {
    border: 0; width: 100%; height: 100%;
}

html {
    background-color: burlywood;
    background-image: linear-gradient(to right bottom, burlywood, white);
    background-repeat:no-repeat;
    min-height: 100%;
    min-width: 1024px;
    width: 100%;
    height: auto;
}

body {
    margin-top: 70px;
    margin-bottom: 100px;
}

/* special fonts for musical notation */
@font-face { font-family: 'Accidentals';
    src: 
    url('accidentals-webfont.woff2') format('woff2'),
    url('accidentals-webfont.woff2') format('woff'),
    url('Accidentals.ttf') format('truetype'); 
}

@font-face { font-family: 'Hymnus-FG';
    src: 
    url('AnyConv.com__Hymnus-FG.ttf.woff2') format('woff2'),
    url('Hymnus-FG.ttf.woff') format('woff'),
    url('Hymnus-FG.ttf.ttf') format('ttf'); 
}

span.accidentals {
    font-family: 'Accidentals', Arial, sans-serif;
    font-size: 1.5em;
}

header {
    position: fixed; 
    top: 0;
    height: 55px;
    width: 100%;
    background-color: rgba(222, 184, 135, 0.9);
    z-index: 7777;
}

h1, h2, h4, h5, div.text {
    text-align: center;
    font-family: 'Patrick Hand', Arial, sans-serif, cursive;
}

h4#equalizerHeader {
    display: block;
    margin-top: 10px;
}

h5.center {
    text-align: center;
}

#piano {
    display: flex;
    margin: 0 auto;
    max-width: 80%;
}

#piano > div {
    flex: 1;
    position: relative;
    height: 240px;
    margin: 0 1px;
    border: 1px solid #999;
    border-radius: 1px 1px 5px 5px;
    box-shadow: 2px 2px 5px rgba(0,0,0,.4);
    cursor: pointer;
}

#piano > div > div {
    position: absolute;
    top: -1px;
    left: 70%;
    height: 160px;
    width: calc(60% + 2px);
    background: #000;
    border-radius: 1px 1px 5px 5px;
    box-shadow: 2px 2px 5px rgba(0,0,0,.4);
    cursor: pointer;
    z-index: 10;
}

#piano > div::after {

    position: absolute;
    bottom: 1em;
    width: 100%;
    text-align: center;
    content: attr(data-note);
    font-size: 1.5em;

}

/* mit Canvas */
.piano {
    width: auto;
    height: auto;
    overflow-x: auto;
    padding: 20px;
    position: relative;
}

.piano div.white {
    z-index: 1234;
    position: absolute; 
    top: 250px; 
    left: 30px; 
    height: 20px;
    width: 20px;  
    background-color: white; 
}

canvas {
    width: 1800px;
    height: 700px;
}

.frequences {
    left: 20px; 
    padding: 5px;
    border: rgb(134, 88, 27) 2px solid;
    border-radius: 3px;
    width: 260px;
    font-family: Helvetica, Arial, sans-serif;
    background-color: white;
    position: fixed;
    left: 10px;
    bottom: 30px;
}

.frequencyPlayed  {
    min-width: 100px;
    display: inline-block;
}

.information {
    max-width: 1000px;
    margin: 0 auto;
}

.information span {
    display: inline-block;
}

.equalizerWrapper {
    overflow: auto;
    margin: 0 auto;
    min-width: 700px;
}

.equalizerText {
    display: flex;
    justify-content: center;
    min-width: 700px;
}

.equalizerText span {
    display: inline-block;
    border-left: solid gray 1px;
    text-align: center;
    width: 41px;
    font-size: 0.7em;
    white-space: nowrap;
}

.equalizerText span:last-child {
    border-right: solid gray 1px;
}

.equalizer {
    display: flex;
    justify-content: center;
}

.equalizer .range { 
    float: left;
    white-space: nowrap;
    overflow: visible;
    transform-origin: left top 0;
    border: 1px solid black;
    background-color: gray;
    border-radius: 2px;
    margin-left: 20px;
    height: 175px;
    width: 20px;
    position: relative;
}

.equalizer .range:first-child {
    margin-left: 0px;
}

.equalizer .range input {
    display: inline-block;
    position: absolute;
    transform: rotate(270deg);
    left: -78px;
    top: 76px;
    width: 175px;
    /*
    margin-left: -78px;
    margin-top: 77px;*/
    -webkit-appearance: none;
    /* background-color: gray;*/
    background-color: rgba(155, 155, 155, 0);
    outline: none;
    opacity: 0.7;
    -webkit-transition: .2s;
    transition: opacity .2s;
    cursor: pointer;
}

.equalizer .range input::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%; 
    background: red;
    cursor: pointer;
}

.equalizer .range input::-moz-range-thumb {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: red;
    cursor: pointer;
}

div.horizontalLine {
    display: block;
    margin-top: 10px;
    margin-bottom: 20px;
    width: 100%;
    height: 2px; 
    background-color: #999;
}

div.clear {
    clear: both;
    margin-top: 20px;
}

div div.arrow {
    margin: 0 auto;
    background-color: rgb(222, 184, 135);
    width: 25px;
    height: 25px;
    border-bottom: #999 solid 2px;
    border-right: #999 solid 2px;
    transform: rotate(45deg) translateY(-18px);
}

div div.arrow.second {
    background-color: rgb(255, 222, 195);
}

div div.arrow.lower {
    background-color: rgb(255, 232, 225);
}

.keyboardKeys {
    padding-left: 50px;
    width: 710px;
    margin: 0 auto;
    font-family: Arial, Helvetica, sans-serif;
    font-weight: 700;
    font-size: 1em;
    letter-spacing: 30px;
}

.keyboardKeys.top {
    padding-left: 50px;
    letter-spacing: 2px;
}

#arabicMaqam {
    clear: both;
    margin: 0 auto;
    padding-top: 15px;
    width: auto;
    text-align: center;
    line-height: 30px;
}

#minikeyboardNormal {
    position: relative;
    height: 160px;
    width: 720px;
    margin: 0 auto;
    display: flex;
    cursor: pointer;
}


.minikeyboard .whiteKey {
    width: 70px;
    height: 160px;
    background-color: white;
    line-height: 240px;
    text-align: center;
    border: 1px solid black;
}

.minikeyboard .blackKey {
    /* margin-left: -87px; */
    width: 30px;
    height: 100px;
    background-color: black;
    left: 57px;
    position: absolute;
    z-index: 400;
}

.minikeyboard .grayKey {
    width: 20px;
    height: 60px;
    background-color: gray;
    left: 47px;
    position: absolute;
    z-index: 400;
}

.keySignatures {
    margin: 10px auto 0;
    display: flex;
    align-content: center;
    justify-content: center;
}

.keySignatures span {
    display: inline-block;
    margin-left: 2em;
    height: 20px;
    line-height: 12px;;

}

.specialScales {
    width: 800px;
    margin: 0 auto 20px;
}

.specialScales > div {
    margin-top: 15px;
    display: flex;
    border-top: solid 1px lightsalmon;
}

.specialScales#greekScales > div {
    margin-top: 15px;
    display: flex;
    display: inline-block;
    border: none;
}

.specialScales#greekScales > div.text {
    margin-top: -12px;
    margin-left: 40px;
    display: flex;
    border-top: none;
    text-align: left;
}

.specialScales#greekScales > div.text.full {
    margin-top: 0px;
    margin-left: 25px;
}

.specialScales#greekScales >div.latinText {
    margin-top: -3px;
    font-size: 1.2em;
    margin-bottom: 15px;
}

.specialScales > div:first-child {
    margin-top: 5px;
    border-top: 0;
}

.songTitle {
    text-align: center;
}

.specialScales#greekScales > div:first-child, .verseText {
    margin-left: 25px;
    margin-top: 25px;
}

.specialScales > div > span {
    display: inline-block;
    width: 80px;
    margin-top: 10px;
    font-family: Arial, Helvetica, sans-serif;
    font-weight: 400;
    font-size: 1em;
}

.keyboard {
    display: flex;
    width: min-content;
    height: min-content;
    border:1px solid black;
    margin-top: 10px;
    cursor: pointer;
}

/* two black key should be separated with a white vertical line */
.keyboard > div.black + div.black {
    border-left: white 1px solid !important;
}

.specialScales .scale {
    min-width: 350px;
    height: 40px;
    width: 96%;
    margin-left: 20px;
    margin-top: 10px;
    border: 2px solid black;
    border-bottom: 1px solid black;
    background-image: linear-gradient(0deg, black 2.27%, white 2.27%, white 25%, black 25%, black 27.27%, white 27.27%, 
    white 50%, black 50%, black 52.27%, white 52.27%, white 75%, black 75%, black 77.27%, white 77.27%, white 100%);
    font-family: 'Hymnus-FG', Arial, sans-serif;
    font-size: 3.2em;
    display: flex;
    position: relative;
}

.specialScales .scale::before {
    content: "ø";
    margin-left: 2px;
    display: flex;
    align-items: center;
    padding-top: 8px;
    margin-right: -10px;
}

.specialScales .scale .tone {
    margin-left: 5px;
    min-width: 25px;
    min-height: 12px;
    display: flex;
    align-items: center;
    padding-left: 5px;
}

.specialScales .scale .tone div{
    position: absolute;
    top: 55px;
    z-index: 1000;
    font-family: 'Times New Roman', Times, serif;
    font-size: 0.33em;
}

.specialScales .scale .tone div:nth-child(2){
    top: 75px;
    font-size: 0.3em;
}

.tone.prefix-0 div, .tone.prefix-1 div, .tone.prefix-2 div, .tone.prefix1 div, .tone.prefix2 div, .tone.prefix3 div {
    padding-left: 4px;
}

.specialScales .scale .tone.prefix-0, .specialScales .scale .tone.prefix-1, .specialScales .scale .tone.prefix-2, 
.specialScales .scale .tone.prefix1, .specialScales .scale .tone.prefix2 {
    min-width: 25px;
}

.specialScales .scale .tone::after {
    content: ")";
}

.specialScales .scale .tone.L8::after {
    content: ".";
}

.specialScales .scale .tone.L2::after {
    content: "(";
}

.specialScales .scale .tone.L1::after {
    content: "&";
}

.specialScales .scale .tone.dot {
    margin-left: -15px;
    min-width: 2px;
    min-height: 15px;
}

.specialScales .scale .tone.dot::after {
    font-family: 'Arial, sans-serif';
    width:2px;
    content: "·";
    margin-left: -2px;
    margin-top: 25px;
    font-size: 0.5em;
}

.specialScales .scale .tone.bh0 {
    margin-top: 49px;
    border-top: 2px black solid;
}


.specialScales .scale .tone.bh0::after {
    margin-top: -34px;
}

.specialScales .scale .tone.c1 {
    margin-top: 49px;
    /* border-top: 2px black solid; */
    background-image: linear-gradient(#000,#000);
    background-size: 50% 2px;
    background-position: top left;
    background-repeat: no-repeat;
}

.specialScales .scale .tone.c1::after {
    margin-top: -42px;
    margin-left: -3.5px;
}

.specialScales .scale .tone.c1.dot::after {
    margin-top: -22px;
}

.specialScales .scale .tone.bh0.dot::after {
    margin-top: -1px;
}

.specialScales .scale .tone.d1 {
    margin-top: 20px;
}

.specialScales .scale .tone.d1.dot::after {
    margin-top: 31px;
}

.specialScales .scale .tone.e1 {
    margin-top: 11px;
}

.specialScales .scale .tone.f1 {
    margin-top: -1px;
}

.specialScales .scale .tone.g1 {
    margin-top: -10px;
}

.specialScales .scale .tone.a1 {
    margin-top: -21px;
}

.specialScales .scale .tone.bh1 {
    margin-top: -31px;
}

.specialScales .scale .tone.c2 {
    margin-top: -41px;
}

.specialScales .scale .tone.d2 {
    margin-top: -51px;
}

.specialScales .scale .tone.e2 {
    margin-top: -62px;
}

/* Vorzeichen auflösen */
.specialScales .scale .tone.prefix-0::before {
    content: ",";
    transform: scale(0.6);
    display: block;
    margin-right: -5px;
    margin-top: 0.3em;
}

/* minus 1/4 Ton */
.specialScales .scale .tone.prefix-1::before {
    content: "ü";
    transform: scaleX(-1);
    margin-right: 2px;
}

/* bh0 */
.specialScales .scale .tone.bh0.prefix-1::before {
    margin-top: -32px;
}

/* minus 1/2 Ton */
.specialScales .scale .tone.prefix-2::before {
    content: "ü";
    margin-right: 2px;
}

/* plus 1/2 Ton */
.specialScales .scale .tone.prefix2::before {
    content: "ú";
    margin-right: 2px;
}

/* plus 1/4 Ton */
.specialScales .scale .tone.prefix1::before {
    content: "ú";
    width: 5px;
    overflow: hidden;
    margin-right: 2px;
}

/* plus 3/4 Ton */
.specialScales .scale .tone.prefix3 {
    content: "ú";
    /*overflow: hidden;*/
    width: 30px;
    margin-right: 5px;
}

.specialScales .scale .tone.L8.prefix3 {
    width: 40px;
}

.specialScales .scale .tone.prefix3::before {
    content: "ú";
    overflow: hidden;
    width: 5px;
    margin-right: -1px;
    margin-top: 2px;
}

.melodyLink {
    margin-top: 25px;
    margin-left: 24px;
    border: 1px solid black;
    border-radius: 6px;
    padding: 0px;
    float: left;
}

.melodyLink a {
    display: inline-block;
    padding: 5px;
    color: gray;
    text-decoration: none;
}

.scaleFrame {
    display: block;
    height: 110px;
}

#greekScales .scaleFrame {
    width: 1150px;
}

#greekScales .scaleFrame .firefoxBorder {
    border: 2px solid black;
    border-bottom: 1px solid black;
    width: 96%;
}

#greekScales .scaleFrame .firefoxBorder .scale {
    border: none;
    margin: 0;
    width: 100%;
}

div.noteAnimation {
    width: 38px;
    height: 25px;
    /* background-color: burlywood; */
    background: radial-gradient(circle at center, burlywood 0, rgb(134, 88, 27) 100%);
    border: rgb(134, 88, 27) solid 1px;
    border-radius: 20%;
    margin-left: 30px;
    line-height: 24px;
    text-align: center;
    color: rgb(134, 88, 27);
    font-weight: 900;
    cursor: pointer;
    float: right; 
    margin-top: 17px;
}

#greekScales div.noteAnimation {
    width: 25px;
    margin-top: -34px;
}

div.noteAnimation:active {
    background: radial-gradient(circle at center, burlywood 0,rgb(67, 44, 14) 100%);
}

.transposition {
    position: fixed;
    z-index: 7777;
    left: 310px;
    bottom: 22px;
    background: rgba(231, 173, 96, 0.938);
    padding: 5px;
    border-top-right-radius: 10px;
    border-top-left-radius: 10px;
}

.transposition > div {
    display: flex;
    justify-content: center;
}

.transposition input[type='radio'] {
    background: transparent;
    position: relative;
    visibility: hidden;
    margin: 0;
    padding: 0;
    margin-left: -15px;
}

.transposition label {
    display: inline-block;
    margin-left: -0.5em;
    border-right: solid gray 1px;
    padding-right: 2px;
    font-size: 0.6em;
    min-width: 43px;
}

.transposition label:last-child {
    border: none;
}

.transposition input[type='radio'] + label::before {
    content: ' ';
    display: inline-block;
    width: 15px;
    height: 15px;
    position: relative;
    top: 3px;
    border: 1px solid #bbb;
    border-radius:50%;
    background: white;
    margin-right: 0.2em;
    box-shadow: inset 0 1px 1px 0 rgba(0,0,0,.1);
}

.transposition input[type='radio']:checked + label::before {
    background: red;
}

footer {
    position: fixed; 
    bottom: 0;
    height: 20px;
    width: 100%;
    border-top: dotted 2px rgb(134, 88, 27);
    background-color: rgba(222, 184, 135, 0.9);
    text-align: center;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 0.8em;
    z-index: 7777;
}
