

body::-webkit-scrollbar { width: 0 !important }

body { overflow: -moz-scrollbars-none; }

body { -ms-overflow-style: none; }

body{
    padding: 0;
    margin: 0;
    /*font-family: 'Zilla Slab', serif;*/
    font-family: 'Quattrocento', serif;
    color: #181D48;
    background-color: #90ADC6;
    overflow-x: hidden;
}

.logo{
    position: fixed;
    top:15px;
    right: 0;
    z-index: 300;
}


.wrapContainer{
    max-width: 97vw;
    margin: 0 auto;
}

/** COVER **/

.coverContainer{
    height: 60vh;
    /*background-color: #FAD02C;*/
    display: grid;
    justify-content: center;
    align-content: center;
    z-index: 1;
}

.cover{
    text-align: center;
    font-size: 1.5rem;
}

h1{
    font-size: 3em;
    margin: 2.5rem 0 1.5rem 0;
}

span.to{
    display: block;
    padding-bottom: 1em;
    background: url(../img/separatore.png) no-repeat center bottom;
    background-size: 50%;
}

/** INTRO **/


#introContainer{
    display: flex;
    flex-direction: column;
    background-color: #90ADC6;
    z-index: 2;
}
#maurice{
    width:100%;
    height: 60vh;
    background: #90ADC6 url(../img/Maurice_Ravel_1925.png) no-repeat right bottom;
    background-blend-mode: luminosity;
    background-size: contain;
}


#maurice.fixed{
    position: fixed;
    right: 0;
    /* bottom: 0 !important;
    top: auto !important;
    transform: translateY(0vh) !important;*/
}

.textIntro{
    font-family: 'Quattrocento', serif;
    font-size: calc(20px + (28 - 20)* ((100vw - 320px)/(1400 - 320)));
    line-height: 1.3;
    padding: 0 5vw;
    color: #181D48;
    z-index: 200;
    transition: all .3s ease-out;
}



/*.textIntro p span.big{
font-size: 1.5em;
margin: 0 10px;
display: inline-block;
line-height: .7;
}*/


.author svg, .dancer svg{
    display: none;
}

#ida{
    width: 100%;
    height: 60vh;
    background: #90ADC6 url(../img/Ida_Rubinstein_1912.png) no-repeat left bottom;
    background-blend-mode: luminosity;
    background-size: contain;
}


.bars:after{
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: repeating-linear-gradient(
        to right,
        #ff2233,
        #ff2233 10px,
        transparent 10px,
        transparent 14px
    );
}


/*
.snapSection{
position: sticky;
will-change: transform;
height: 100vh;

}
*/

.intro{
    display: flex;
    flex-direction: column;
    align-items: center;
}

h3{
    font-family: 'Quattrocento', serif;
    font-size: 1.875rem;
    font-weight: normal;
    max-width: 45ch;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
    line-height: 1.2;
    margin-bottom: 0;
    color: #033d8c;
}


.musicRow {
    height: 60px;
    color:#181D48;
    display: flex;
    align-items: center;
}

.musicRow .wrapContainer,
.rowZero .wrapContainer{
    width: 100%;
    display: flex;
    align-items: center;
}



.rowZero .wrapContainer{
    height: 100%;
}

.rowZero .introFlow{
    width: 87vw;
    flex-grow: 1;
    height: calc(100% - 8px); /* 4px sopra e 4px sotto di box-shadow del bordo giallo active */
    display: flex;
    align-items: center;
    margin-left: -1.5vw;
    /*background: #E9EAEC url(../img/ostinato.png) no-repeat center center;
    background-size: contain;
    background-blend-mode: overlay;
    text-transform: uppercase;*/
    padding-left: 1.5vw;
    
    justify-content: center;
    font-size: calc(14px + (24 - 14)* ((100vw - 320px)/(1400 - 320)));
}
.rowZero .flow{
    width: 11vw;
    flex-grow: 0;
    height: 100%;
    /*margin-left: 89vw;*/
    display: flex;
    justify-content: flex-start;
    align-items: center;
    margin-right: -1.5vw;
    padding: 0;
    opacity: 1;
}
.rowZero .flow span, .rowNineteen .finalFlow span{
    font-size: .75rem;
    text-transform: uppercase;
    writing-mode: vertical-rl;
    padding: .25em .15em;
    border: 1px solid #181D48;
}


.rowZero .flow span{
    transform:scale(-1);
    margin-left: 2vw;
}

.number{
    flex-shrink: 0;
    width: 10vw;
    height: 10vw;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 6vw;
    font-weight: bold;
    border: 1px solid #181D48;
    border-radius: 2px;
    position: relative;
}
.theme{
    position: absolute;
    bottom: .005em;
    left: 50%;
    transform: translateX(-50%);
    font-size: .5em;
    font-weight: normal;
}


.flow {
    font-weight: 200;
    font-size: calc(14px + (24 - 14)* ((100vw - 320px)/(1400 - 320)));
    padding: 0 5vw;
    display: flex;
    justify-content: center;
    flex-grow: 1;
    color: #1D1814;
}

.rowNineteen{
    font-size: 1.15vw;
    text-transform: uppercase;
}

.flow,
.introFlow{
    opacity: 0;
    transition: opacity .15s ease-out;
}

.musicRow.active .flow,
.musicRow.active .introFlow{
    opacity: 1;
    transition: opacity .3s ease-in .15s;
}

.musicRow.active{
    /* -webkit-box-shadow: inset 0px 4px 0px -2px rgba(250,208,44,1), inset 0px -4px 0px -2px rgba(250,208,44,1);
    -moz-box-shadow: inset 0px 4px 0px -2px rgba(250,208,44,1), inset 0px -4px 0px -2px rgba(250,208,44,1);
    box-shadow: inset 0px 4px 0px -2px rgba(250,208,44,1), inset 0px -4px 0px -2px rgba(250,208,44,1);*/
    -webkit-box-shadow: 0px 0px 8px 4px rgba(24,29,72,.65);
    -moz-box-shadow: 0px 0px 8px 4px rgba(24,29,72,.65);
    box-shadow: 0px 0px 8px 4px rgba(24,29,72,.65);
    border-bottom: none;
    position: relative;
    transition: all .15s linear;
}

.musicRow.rowZero.active,
.musicRow.rowNineteen.active{
    box-shadow: none;
}

.musicRow.rowZero.active .flow{
    /*-webkit-box-shadow: inset 4px 4px 0px -2px rgba(250,208,44,1), inset 0px -4px 0px -2px rgba(250,208,44,1);
    -moz-box-shadow: inset 4px 4px 0px -2px rgba(250,208,44,1), inset 0px -4px 0px -2px rgba(250,208,44,1);
    box-shadow: inset 4px 4px 0px -2px rgba(250,208,44,1), inset 0px -4px 0px -2px rgba(250,208,44,1);*/
    -webkit-box-shadow: 8px 0px 8px 4px rgba(24,29,72,.65);
    -moz-box-shadow: 8px 0px 8px 4px rgba(24,29,72,.65);
    box-shadow: 8px 0px 8px 4px rgba(24,29,72,.65);
    border-bottom: none;
    position: relative;
    transition: all .15s linear;
}


.musicRow.rowNineteen.active .finalFlow{
    /*-webkit-box-shadow: inset -2px 2px 0px 0px rgba(250,208,44,1), inset 0px -4px 0px -2px rgba(250,208,44,1);
    -moz-box-shadow: inset -2px 2px 0px 0px rgba(250,208,44,1), inset 0px -4px 0px -2px rgba(250,208,44,1);
    box-shadow: inset -2px 2px 0px 0px rgba(250,208,44,1), inset 0px -4px 0px -2px rgba(250,208,44,1);*/
    -webkit-box-shadow: -8px 0px 8px 4px rgba(24,29,72,.65);
    -moz-box-shadow: -8px 0px 8px 4px rgba(24,29,72,.65);
    box-shadow: -8px 0px 8px 4px rgba(24,29,72,.65);
    border-bottom: none;
    position: relative;
    transition: all .15s linear;
}

.musicRow.rowZero.active .flow span,
.musicRow.active .number,
.rowNineteen.active .finalFlow span{
    background-color: #FAD02C;
    border-color: #FAD02C;
    transition: all .15s linear;
}

.musicRowIndicator{
    position: fixed;
    top: 400px; 
    left: 0;

    width: 0px;
    height: 0px;
    border-top: 10px solid transparent;
    border-bottom: 10px solid transparent;
    border-left: 12px solid #FAD02C;
    opacity: 0;
}

.musicRow.active.inPause .musicRowIndicator{
    top: 401px;
    left: -4px;
    width: 16px;
    height: 16px;
    border-top: 0px solid transparent;
    border-bottom: 0px solid transparent;
    border-right: 0px solid transparent;
    border-left: 10px double #FAD02C;
    margin-left: 4px;
    opacity: 1;
}

.musicRowIndicator.is-visible{
    opacity: 1;
}


#oval{
    /*max-height: 95%;*/
    max-height: calc(100vh - 186px);
    max-width: 70%;
    position: fixed;
    bottom: 0;
    left: 50%;

    transform: translateX(-50%) scale(0);
    z-index: 10;

    margin-bottom: -25px;

}

#curve{
    max-height: calc(100vh - 186px);
    max-width: 70%;
    position: fixed;
    bottom: 0;
    left: 50%;

}



.orchestraContainer{
    position: sticky;
    height: 100vh;
}



svg{
    max-width: 100%;
}



.orchestraRow{
    background-color: #FAD02C;
    /*background-color: #181D48;*/
    background: #ffffff;
    width: 100%;
    height: 380px;
    display: flex;
    align-items: center;
    overflow: hidden;
    z-index: 1;
}
.orchestraRow .wrapContainer{
    display: flex;
    align-items: center;
}

.orchestraRow h2{
    /*margin: 0;
    font-family: 'Quattrocento', serif;
    font-size: 1.75rem;
    font-weight: normal;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    writing-mode: vertical-rl;
    transform:scale(-1);
    color: #b70033;*/
    background-color: #181D48;
    color: #ffffff;
    font-size: .875rem;
    position: absolute;
    top: -.85em;
    text-align: center;
    line-height: 1;
    z-index: 1;
    text-transform: uppercase;
    padding: .15em .5em;
    z-index: 1;
}

.instruments{
    flex-grow: 1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    overflow: hidden;
}

.instrument{
    position: relative;
    display: inline-block;
    height: 77px;
    margin: 4px 4.75px 12px 4.75px;
    display: flex;
    align-items: center;
    background-color: #ffffff; /* trick per risolvere conflitto mix-blend-mode e transform */
    z-index: 0;
}
.instrument img{
    max-height: 76px;
    width: auto;
}


/*.instrument.rotate{
transform: rotate(22deg);
}*/

.instrument:before{
    content: '';
    position: absolute;
    top: 1px;
    left: 1px;
    width: calc(100% - 2px);
    height: calc(100% - 2px);
    background-color: transparent;
    transition: all .15s ease-out;
    mix-blend-mode: overlay;
}
.filterSolista:before{
    background-color: #b70033;
    transition: all .15s ease-in;
}
.filterAccompagnamento:before{
    background-color: #033d8c;
    transition: all .15s ease-in;
}
.filterRitmo:before{
    background-color: #A78500;
    mix-blend-mode: color;
    transition: all .15s ease-in;
}


.legend{
    position: relative;
}
.legend:after{
    content: '';
    position: absolute;
    width: 100%;
    left: 0;
    bottom: -3px;
}

.legend.filterSolista:after {
    border-bottom: 5px solid #b70033;
}
.legend.filterAccompagnamento:after {
    border-bottom: 5px solid #033d8c;
}

.legend.filterRitmo:after {
    border-bottom: 5px solid #A78500;
}

.instrumentLegend{
    margin-top: 7vh;
    padding: 10px 10px 35px 10px;
    font-size: .6em;
    background-color: #ffffff;
    border-radius: 16px;
}

.instrumentLegendWrap{
    display: flex;
}

.instrumentLegend > p{
    flex-basis: 100%;
    text-align: center;
    margin: 0 0 .75em 0;
    font-size: 1.25em;
    font-weight: bold;
    text-transform: uppercase;
    }

.instrumentLegend__dynamics{
    position: relative;
    margin-left: 15px;
    flex-shrink: 0;
}
.instrumentLegend__dynamics p{
    text-transform: uppercase;
    margin-bottom: 10px;
}

.instrumentLegend__dynamics li{
    position: relative;
}

.instrumentLegend__dynamics .svgWrap{
    display: none;
    width: 20px;
    height: 18px;
    position: absolute;
    top: 0px;
    left: -24px;
}

.instrumentLegend__dynamics svg{
    max-width: 100%;
    height: auto;
}
.instrumentLegend__dynamics:after{
    content:"";
    width: 60px;
    height: 60px;
    position: absolute;
    bottom: -45px;
    left: 32%;
    background: url(../img/arrow-d.png) no-repeat 0 0;
}

.instrumentLegend ul{
    padding: 0;
    margin: 0;
}

.instrumentLegend li{
    list-style: none;
    margin: 5px 0;
    cursor: pointer;
}


.instrumentLegend__img{
    flex-basis: 34%;
    max-width: 34%;
    flex-basis: 45%;
    max-width: 45%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    max-height: 150px;
    background: url(../img/strumenti/arpa.png) no-repeat center top;
    background-size: contain;
    position: relative;
}

.instrumentLegend__img:before{
content: '';
    position: absolute;
    top: 1px;
    left: 1px;
    width: calc(100% - 2px);
    height: calc(100% - 2px);
    background-color: transparent;
    transition: all .15s ease-out;
    mix-blend-mode: overlay;
}


.instrumentLegend__img svg{
    max-width: 30px;
    height: auto;
}
.instrumentLegend__img .dynamics{
    margin: 0 0 -35px -30px;
}
.instrumentLegend__structure{
    position: relative;
}
.instrumentLegend__structure p{
    margin: 0 0 5px 0;
    text-transform: uppercase;
}
.instrumentLegend__structure span{
    position: relative;
    padding-left: 15px;
    display: block;
    margin: 5px 0;
    cursor: pointer;
}

.instrumentLegend__structure:before{
    content:"";
    width: 35px;
    height: 100%;
    position: absolute;
    top: -5px;
    left: -45px;
    background: url(../img/arrow.png) no-repeat 0 0;
}

.instrumentLegend__structure span:before{
    content:'';
    width: 8px;
    height: 8px;
    position: absolute;
    top:3px;
    left: 0;
    border-radius: 50%;
    transition: background-color .15s ease-in;
}

.instrumentLegend .instrumentLegend__img ul{
    width: 40px;
    height: 38px;
    overflow: hidden;
}
.instrumentLegend .instrumentLegend__img ul li{
    display: none;
}
.instrumentLegend.has-highlight .instrumentLegend__img ul li:first-child,
.instrumentLegend.has-highlight-ritmo .instrumentLegend__img ul li:first-child,
.instrumentLegend.has-highlight-accompagnamento .instrumentLegend__img ul li:first-child{
    display: block;
}

/* solista - default */

.instrumentLegend.has-highlight .instrumentLegend__img svg g{
    fill:#b70033;
}

.instrumentLegend.has-highlight .instrumentLegend__structure span.tema:before,
.instrumentLegend.has-highlight .instrumentLegend__img:before{
    background-color: #b70033;
    transition: background-color .15s linear;
}

.instrumentLegend.has-highlight .instrumentLegend__dynamics li:first-child .svgWrap,
.instrumentLegend.has-highlight-ritmo .instrumentLegend__dynamics li:first-child .svgWrap,
.instrumentLegend.has-highlight-accompagnamento .instrumentLegend__dynamics li:first-child .svgWrap{
    display: block;
}

/* ritmo */

.instrumentLegend.has-highlight-ritmo .instrumentLegend__img svg g{
    fill:#A78500;
    transition: fill .15s ease-out;
}
.instrumentLegend.has-highlight-ritmo .instrumentLegend__structure span.ritmo:before,
.instrumentLegend.has-highlight-ritmo .instrumentLegend__img:before{
    background-color: #A78500;
    transition: background-color .15s ease-out;
}


/* accompagnamento */
.instrumentLegend.has-highlight-accompagnamento .instrumentLegend__img {
    /*min-height: 200px;*/
    background: url(../img/strumenti/arpa-accompagnamento.png) no-repeat center top;
    background-size: contain;
    transition: background .15s ease-out;
}

.instrumentLegend.has-highlight-accompagnamento .instrumentLegend__img svg g{
    fill:#033D8C;
    transition: fill .15s ease-out;
}
.instrumentLegend.has-highlight-accompagnamento .instrumentLegend__structure span.accompagnamento:before,
.instrumentLegend.has-highlight-accompagnamento .instrumentLegend__img:before{
    background-color: #033d8c;
    transition: background-color .15s ease-out;
}



.instrument:after{
    content: '';
    position: absolute;
    top: 96%;
    left: calc(50% - 8px);
    width: 16px;
    height: 14px;
}

/*.instrument.rotate:after{
top: calc(100% + 6px);
}*/



.filterSolista.pianissimo:after{
    background: url(../img/dinamica/pianissimo-solista.svg) no-repeat 0 bottom;    
    background-size: cover;
}
.filterSolista.piano:after{
    background: url(../img/dinamica/piano-solista.svg) no-repeat 0 bottom;
    background-size: cover;
}
.filterSolista.mezzopiano:after{
    background: url(../img/dinamica/mezzopiano-solista.svg) no-repeat 0 bottom;
    background-size: cover;
}
.filterSolista.mezzoforte:after{
    background: url(../img/dinamica/mezzoforte-solista.svg) no-repeat 0 bottom;
    background-size: cover;
}
.filterSolista.forte:after{
    background: url(../img/dinamica/forte-solista.svg) no-repeat 0 bottom;
    background-size: cover;
}
.filterSolista.fortissimo:after{
    background: url(../img/dinamica/fortissimo-solista.svg) no-repeat 0 bottom;
    background-size: cover;
}


/*.filterSolista.rotate:after{
top: calc(100% + 5px);
}*/

.filterAccompagnamento.pianissimo:after{
    /*background-color: #033d8c;
    border-radius: 50%;*/
    background-size: contain;
    background: url(../img/dinamica/pianissimo-accompagnamento.svg) no-repeat 0 bottom;    
    background-size: cover;
}
.filterAccompagnamento.piano:after{
    background: url(../img/dinamica/piano-accompagnamento.svg) no-repeat 0 bottom;
    background-size: cover;
}
.filterAccompagnamento.mezzopiano:after{
    background: url(../img/dinamica/mezzopiano-accompagnamento.svg) no-repeat 0 bottom;
    background-size: cover;
}
.filterAccompagnamento.mezzoforte:after{
    background: url(../img/dinamica/mezzoforte-accompagnamento.svg) no-repeat 0 bottom;
    background-size: cover;
}
.filterAccompagnamento.forte:after{
    background: url(../img/dinamica/forte-accompagnamento.svg) no-repeat 0 bottom;
    background-size: cover;
}
.filterAccompagnamento.fortissimo:after{
    background: url(../img/dinamica/fortissimo-accompagnamento.svg) no-repeat 0 bottom;
    background-size: cover;
}


.filterRitmo.pianissimo:after{
    /*background-color: #296F17;*/
    /*background-color: #FAD02C;*/
    background: url(../img/dinamica/pianissimo-ritmo.svg) no-repeat 0 bottom;
    background-size: cover;
}
.filterRitmo.piano:after{
    background: url(../img/dinamica/piano-ritmo.svg) no-repeat 0 bottom;
    background-size: cover;
}
.filterRitmo.mezzopiano:after{
    background: url(../img/dinamica/mezzopiano-ritmo.svg) no-repeat 0 bottom;
    background-size: cover;
}
.filterRitmo.mezzoforte:after{
    background: url(../img/dinamica/mezzoforte-ritmo.svg) no-repeat 0 bottom;
    background-size: cover;
}
.filterRitmo.forte:after{
    background: url(../img/dinamica/forte-ritmo.svg) no-repeat 0 bottom;
    background-size: cover;
}
.filterRitmo.fortissimo:after{
    background: url(../img/dinamica/fortissimo-ritmo.svg) no-repeat 0 bottom;
    background-size: cover;
}

/*.instruments .filterSolista:after{
filter: drop-shadow(0px 0px 0px rgba(183, 0, 51, 1));
animation: pulseSolista 2s infinite;
}

.instruments .filterAccompagnamento:after{
box-shadow: 0 0 0 0 rgba(3, 61, 140, 1);
animation: pulseAccompagnamento 2s infinite;
}

.instruments .filterRitmo:after{
box-shadow: 0 0 0 0 rgba(250, 208, 54, 1);
animation: pulseRitmo 2s infinite;
}

@keyframes pulseSolista {
0% {
filter: drop-shadow(0px 0px 0px rgba(183, 0, 51, .85));
}

70% {
filter: drop-shadow(0px 0px 4px rgba(183, 0, 51, .3));
}

100% {
filter: drop-shadow(0px 0px 0px rgba(183, 0, 51, 0));
}
}
@keyframes pulseAccompagnamento {
0% {
box-shadow: 0 0 0 0 rgba(3, 61, 140, 0.85);
}

70% {
box-shadow: 0 0 0 4px rgba(3, 61, 140, 0);
}

100% {
box-shadow: 0 0 0 0 rgba(3, 61, 140, 0);
}
}

@keyframes pulseRitmo {
0% {
box-shadow: 0 0 0 0 rgba(250, 208, 54, 0.85);
}

70% {
box-shadow: 0 0 0 4px rgba(250, 208, 54, 0);
}

100% {
box-shadow: 0 0 0 0 rgba(250, 208, 54, 0);
}
}*/



/*.instrument.rotate:after{
transform: rotate(-22deg);
}*/



/*.musicInstrument{
margin-left: 20px;
max-width: 75px;
max-height: 75px;
}
.musicInstrument g{
fill: #ffffff;
fill:#E9EAEC;
}

.musicInstrument.has-highlight g{
fill: #FAD02C;
}


.musicInstrument.has-theme-highlight g{
fill: #FAD02C;
}*/



.rows{
    background-color: #E9EAEC;
    position: relative;
}

.btn{
    display: inline-block;
    padding: 0.45em 0.75em;
    background-color: #181D48;
    font-weight: bold;
    color: #ffffff;
    text-decoration: none;
    border-radius: 8px;
    transition: all .15s linear;
}

.btn:hover{
    /*background-color: #FAD02C;
    color: #181D48;*/
    background-color: #033d8c;
    transition: all .15s linear;
}
.btn-start{
    position: relative;
}
.btn-start span{
    visibility: hidden;
}

.loaded .btn-start{
    background-color: #ff2233;
}

.loaded .btn-start:hover{
    background-color: #181D48;
}

.loaded .btn-start span{
    visibility: visible;
}

.spinner {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}

.spinner > div {
    width: 18px;
    height: 18px;
    margin: 0 5px;
    background-color: #ffffff;

    border-radius: 100%;
    display: inline-block;
    -webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both;
    animation: sk-bouncedelay 1.4s infinite ease-in-out both;
}

.spinner .bounce1 {
    -webkit-animation-delay: -0.32s;
    animation-delay: -0.32s;
}

.spinner .bounce2 {
    -webkit-animation-delay: -0.16s;
    animation-delay: -0.16s;
}

@-webkit-keyframes sk-bouncedelay {
    0%, 80%, 100% { -webkit-transform: scale(0) }
    40% { -webkit-transform: scale(1.0) }
}

@keyframes sk-bouncedelay {
    0%, 80%, 100% { 
        -webkit-transform: scale(0);
        transform: scale(0);
    } 40% { 
        -webkit-transform: scale(1.0);
        transform: scale(1.0);
    }
}

.loaded .spinner{
    display: none;
}

.rowO{
    position: fixed;
    /*top: 48px;*/
    top: 0;
    width: 100%;
}

.muteBtn{
    opacity: 0;
    cursor: pointer;
}
.muteIcon {
    width: 20px;
    height: 20px;
    background: url(../img/unmute.svg) no-repeat center;
    cursor: pointer;
    background-size: contain;
}

.mute-on {
    background: url(../img/mute.svg) no-repeat left center;
    background-size: 20px;
}


.rowZero{
    background:#8bb7e3;
    background: -moz-linear-gradient(left, #E9EAEC 0%, #E9EAEC 89%, #E9EAEC 89%, #8bb7e3 89%, #8bb7e3 100%);
    background: -webkit-linear-gradient(left, #E9EAEC 0%,#E9EAEC 89%,#E9EAEC 89%,#8bb7e3 89%,#8bb7e3 100%);
    background: linear-gradient(to right, #E9EAEC 0%,#E9EAEC 89%,#E9EAEC 89%,#8bb7e3 89%,#8bb7e3 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#E9EAEC', endColorstr='#8bb7e3',GradientType=1 );  
}


.rowOne, .rowFive,.rowNine, .rowThirteen, .rowSeventeen,
.rowTwo, .rowSix, .rowTen, .rowFourteen{
    background: #61A0DD;
}

.rowOne, .rowFive,.rowNine, .rowThirteen{
    border-bottom: 1px dashed #297fc8; 
}

.themeA{
    background: #61A0DD;
    padding: 0 10px;
}

.noBorderColor{
    border-bottom: 1px dashed transparent;
}

.rowThree, .rowSeven, .rowEleven, .rowFifteen,
.rowFour, .rowHeight,  .rowTwelve, .rowSixteen,.rowHeighteen{
    background: #297fc8;
}

.rowThree, .rowSeven, .rowEleven, .rowFifteen{
    border-bottom: 1px dashed #61A0DD; 
}

.themeB{
    background: #297fc8;
    padding: 0 10px;
}


.rowNineteen{
    background-color: #90ADC6;
    /*background: #2787d9;
    background: -moz-linear-gradient(left,  #8bb7e3 0%, #8bb7e3 77.7%, #8bb7e3 77.7%, #8bb7e3 77.7%, #90ADC6 77.7%, #90ADC6 100%);
    background: -webkit-linear-gradient(left,  #8bb7e3 0%,#8bb7e3 77.7%,#8bb7e3 77.7%,#8bb7e3 77.7%,#90ADC6 77.7%,#90ADC6 100%);
    background: linear-gradient(to right,  #8bb7e3 0%,#8bb7e3 77.7%,#8bb7e3 77.7%,#8bb7e3 77.7%,#90ADC6 77.7%,#90ADC6 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#8bb7e3', endColorstr='#90ADC6',GradientType=1 );*/
}

.rowNineteen .wrapContainer{
    height: 100%;
}

.rowNineteen .finalFlow{
    margin-left: -1.5vw;
    padding-left: 1.5vw;
    height: 100%;
    width: 74.97vw;
    background-color: #8bb7e3;
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.rowNineteen .finalFlow span{
    margin-right: 2vw;
}

.rowNineteen.active .finalFlow{
    -webkit-box-shadow: -8px 0px 8px 4px rgba(24,29,72,.65);
    -moz-box-shadow: -8px 0px 8px 4px rgba(24,29,72,.65);
    box-shadow: -8px 0px 8px 4px rgba(24,29,72,.65);
    border-bottom: none;
    position: relative;
}


.progress {
    width: 0%;
    height: 5px;
    position: absolute;
    bottom: 0;
    background: #ff2233;
}

.progress.full {
    /*animation: progressFull 41.907s linear infinite;*/
    overflow: hidden;
}

.progress.partial {
    /*animation: progressPartial 5.2s linear infinite;*/ /*versione def*/
    /*animation-delay:  -36.7s; versione con barra completa fino alla battuta 16*/
    overflow: hidden;
    left: 89%;
}

.progress:after {
    content: '';
    width: 100vw;
    height: 5px;
    position: absolute;
    left: 0;
    top: 0;

    background-image: linear-gradient(90deg, #ffffff 5.57%, transparent 5.57%, transparent 100%, #ffffff 100%, #ffffff 55.57%, transparent 55.57%, transparent 100%);
    background-size: 5.57% 5px;
    background-position:  5.55% 0;
}


/*@keyframes progressFull {
0% {
width: 0%;
}

100% {
width: 100%;
}
}

@keyframes progressPartial {
0% {
width: 0;
}


100% {
width: 11%;
}
}
*/


.bars{
    display: inline-block;
    padding: 0 5px;
    position: relative;
}


.highlight{
    position: fixed;
    right: 0;
    bottom: 0;
}



.highlight img{
    max-height: 25vh;
    opacity: 0;
}

.highlight.is-visible img{
    opacity: 1;
    transition: opacity .3s linear 1s;
}

#curveSvg{
    position: fixed;
    bottom: -10%;
    height: 100%;
    z-index: -1;
    left: 50%;
    transform: translateX(-50%);
    max-height: 35vh;
}


footer{
    display: flex;
    align-items: center;
    padding: 15vh 0 0 0;
    text-align: center;
    justify-content: center;
    flex-wrap: wrap;
    position: relative;
}

footer figure{
    max-width: 46ch;
}

.bottom{
    flex-basis: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin: 15vh 0 20px 0;
    font-size: .75rem;
}
.bottom p{
    margin-top: 5px;
}

.bottom a{
    color: #181D48;
}

.quote{
    max-width: 20ch;
    text-align: center;
    font-size: 1.5rem;
    line-height: 1.2;
    position: relative;

}

blockquote{
    /*font-family: 'Sacramento', cursive;*/
    font-family: 'Quattrocento', serif;
    margin: 0;
}


figcaption{
    display: inline-block;
    position: relative;
    transform: rotate(-5deg);
    color: #ff2233;
    margin-top: 1em;
}

figcaption:before{
    content: '';
    position: absolute;
    width: calc(100% + 20px);
    height: calc(100% + 10px);
    top: -5px;
    left: -10px;
    background-color: #ffffff;
    z-index: -1;
}





.buttonBar{
    position: fixed;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    display: flex;
    opacity: 0;
}

.buttonBar.is-visible{
    z-index: 10;
    opacity: 1;
    transition: opacity .15s ease-out .2s;
}

.buttonBar.is-scrolling {
    position: absolute;
    top: 20px;
    bottom: auto;
}

.buttonBar .btn{
    border-radius: 50%;
    margin: 0 5px;
    padding: 0;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    background: rgba(24, 0, 0, .75);
}

.buttonBar button{
    padding: 0;
    margin: 0;
    border: none;
}

.buttonBar .btn:hover{
    background: rgba(3, 61, 140, .75);
}

.buttonBar .btn.js-btn-pp{
    width: 64px;
    height: 64px;
    position: relative;
}

.js-btn-pp button.play{
    width: 0px;
    height: 0px;
    border-top: 16px solid transparent;
    border-bottom: 16px solid transparent;
    border-left: 27px solid #ffffff;
    visibility: hidden;
    margin-left: 8px; 
}

.js-btn-pp .spinner > div {
    width: 12px;
    height: 12px;
    margin: 0 2px;
}

.loaded .js-btn-pp button.play{
    visibility: visible;
}

.js-btn-pp button{
    cursor: pointer;
    background-color: transparent;
}

.js-btn-pp button.pause{
    width: 25px;
    height: 25px;
    border-style: double;
    border-width: 0px 0px 0px 24px;
    border-color: #ffffff;
}

.js-btn-stop button{ 
    width: 18px;
    height: 18px;
    background-color: #ffffff;
    cursor: pointer;
}


.js-btn-pp button:focus,
.js-btn-stop button:focus{
    outline: none;
}

/*.buttonBar button,
.buttonBar label{
    opacity: 0;
}

.buttonBar.is-visible button,
.buttonBar.is-visible label{
    opacity: 1;
    transition: opacity .15s ease-out .2s;
}*/



button{
    appearence: none;
    -moz-appearance: none;
    border: none;
    background: rgba(0,0,0,85);
}


@media(min-width:640px){
    .instrument {
        height: 100px;
    }
    .instrument img{
        max-height: 100px;
    }
}

@media(max-width:767px){
    .instruments{
        padding-bottom: 15px;
    }
    .orchestraRow .wrapContainer{
        margin: 0 5vw 0 1vw;
    }

    .logo{
        max-width: 20px;
        top:0;
    }

    .instrumentLegend{
        margin:0 -10px 10vh -10px;
        padding: 10px 10px 35px 10px;
    }

    #maurice{
        order:1;
    }

    .number{
        width: 40px;
        height: 40px;
        font-size: 22px;
        margin-left: 5px;
    }
    .rowZero .introFlow {
        margin-left: calc(-1.5vw + 5px);
    }
    .wrapIntro{
        order:2;
    }

    .wrapIntroSecond{
        order: 3;
    }

    .btn-start{
        margin-bottom: 5vh;
    }

    .rowNineteen {
        font-size: .875rem;
    }

    .musicRow.rowZero .flow{
        display: flex;
        /*margin-left: 87vw;*/
    }
}


@media (min-width:375px) and (max-width:767px){
    .orchestraRow .wrapContainer {
        margin: 0 5vw 0 3vw;
    }
}


@media(min-width:768px){
    .coverContainer{
        position: sticky;
        height: 100vh;
    }


    .author{
        display: inline-block;
        position: relative;
        transition: all 0.2s ease-in-out;

    }

    .author:after{
        content: "";
        position: absolute;
        left: 0;
        bottom: 0;
        width: 0px;
        height: 5px;
        margin: 5px 0 0;
        transition: all 0.3s ease-in-out;
        opacity: 0;
        background: url(../img/underline.svg) repeat-x left bottom;
        transform: rotate(2deg);
    }

    .author.underline:after{
        width: 100%;
        opacity: 1;

    }

    .dancer, .author{
        display: inline-block;
        position: relative;
        padding: 0 5px;
    }

    .author svg, .dancer svg{
        display: inline-block;
        position: absolute;
        transform: translateY(-37%);
        top: 0;
        left: 0;
        stroke-dasharray: 636;
        stroke-dashoffset: 636;
    }




    .hoop svg {
        animation: dash .6s linear forwards;
    }

    @keyframes dash {
        to {
            stroke-dashoffset: 0;
        }
    }


    #introContainer{
        position: relative;
        flex-direction: row;
        align-items: flex-start;
        flex-wrap: wrap;
        justify-content: space-between;
    }


    #maurice{
        width:30vw;
        height: 50vh;
        transform: translateY(-20vh);
    }

    .wrapIntro{
        width:60vw;
        display: flex;
        justify-content: flex-end;
    }


    .wrapIntro .textIntro{
        transform: translateY(-10vh);
    }

    .textIntro{
        padding: 32px 5vw;
    }

    .textIntro > div{
        max-width: 45ch;
        transform: rotate(-2deg);
    }


    .wrapIntroSecond{
        display: flex;
        justify-content: flex-start;
    }
    .wrapIntroSecond .textIntro{
        width: 35vw;
    }

    .wrapIntroSecond .textIntro > div{
        transform:  rotate(-2deg);
        max-width: 33ch;
    }

    /*.wrapIntroSecond .textIntro > div:first-of-type,
    .wrapIntroSecond .textIntro > div:last-of-type{
        transform:  rotate(2deg);
    }*/
    .wrapIntroSecond .textIntro > div:first-of-type{

    }
    .wrapIntroSecond .textIntro > div:last-of-type{
        margin-bottom: 5vh;
    }

    .instrumentLegend{
        margin-left: -30px;
        margin-right: -20px;
    }


    .musicRow {
        height: 120px;
    }


    .orchestraRow h2{
        font-size: 1rem;
        padding: .25em 7vw;
        top: -3vw;
        left: -6vw;
        transform: rotate(-15deg);
        min-width: 30vw;
        text-align: left;
    }

    .number{
        width: 72px;
        height: 72px;
        font-size: 2.5rem;
    }
    .rowNineteen{
        font-size: 1.35vw;
    }
    .flow p{
        max-width: 50vw;
    }

    .theme{
        bottom: .25em;
        font-size: .35em;
    }
    .instrument img{
        max-height: 100px;
    }
    .instrument {
        height: 100px;
    }

    /*
    blockquote, figcaption{
    opacity: 0;
}*/


    .rowZero .flow span, .rowNineteen .finalFlow span{
        font-size: 1rem;
        padding: 1em .25em;
    }


    /*
    .musicRow.active{
    -webkit-box-shadow: inset 0px 8px 0px -4px rgba(250,208,44,1), inset 0px -8px 0px -4px rgba(250,208,44,1);
    -moz-box-shadow: inset 0px 8px 0px -4px rgba(250,208,44,1), inset 0px -8px 0px -4px rgba(250,208,44,1);
    box-shadow: inset 0px 8px 0px -4px rgba(250,208,44,1), inset 0px -8px 0px -4px rgba(250,208,44,1);
    transition: box-shadow .15s linear;
}

    .musicRow.rowZero.active .flow{
    -webkit-box-shadow: inset 8px 8px 0px -4px rgba(250,208,44,1), inset 8px -8px 0px -4px rgba(250,208,44,1);
    -moz-box-shadow: inset 8px 8px 0px -4px rgba(250,208,44,1), inset 8px -8px 0px -4px rgba(250,208,44,1);
    box-shadow: inset 8px 8px 0px -4px rgba(250,208,44,1), inset 8px -8px 0px -4px rgba(250,208,44,1);
    transition: box-shadow .15s linear;
}


    .musicRow.rowNineteen.active .finalFlow{
    -webkit-box-shadow: inset -4px 4px 0px 0px rgba(250,208,44,1), inset 0px -8px 0px -4px rgba(250,208,44,1);
    -moz-box-shadow: inset -4px 4px 0px 0px rgba(250,208,44,1), inset 0px -8px 0px -4px rgba(250,208,44,1);
    box-shadow: inset -4px 4px 0px 0px rgba(250,208,44,1), inset 0px -8px 0px -4px rgba(250,208,44,1);
    transition: box-shadow .15s linear;
}

    .musicRow.rowZero.active .flow span,
    .musicRow.active .number,
    .rowNineteen.active .finalFlow span{
    transition: all .15s linear;
}*/

}

@media (min-width:768px) and (max-width:1023px){
    .orchestraRow{
        height: 360px;
    }

    .musicRowIndicator{
        top: 409px; 
    }

    .musicRow.active.inPause .musicRowIndicator{
        top: 411px;
    }

    .textIntro{
        padding: 32px 2vw;
    }

    .wrapIntro .textIntro {
        padding-left: 8vw;
    }

    .wrapIntroSecond .textIntro {
        transform: translateY(-35vh);
        margin-bottom: -35vh;
        width: 35vw;
    }

    .wrapIntroSecond .textIntro > div {
        margin-bottom: 15vh;
    }
    
   

    #ida {
        width: 30vw;
        height: 350px;
        background-position: left top;
    }
}


@media(max-width:1023px){
    .textIntro{
        font-size: 1.25rem;
    }
}

@media(min-width:1024px){

    #maurice{
        width:35vw;
        height: 50vh;
    }


    .wrapIntro{
        width:60vw;
        display: flex;
        justify-content: flex-end;
    }
    .textIntro {
        padding-left: 5vw;
        padding-right: 5vw;
    }
    .wrapIntro .textIntro{
        transform: translateY(-15vh);
    }

    .wrapIntroSecond .textIntro {
        transform: translateY(-20vh);
        margin-bottom: -20vh;
    }
    .wrapIntroSecond .textIntro > div{
        margin-bottom: 20vh;
    }

    .instrumentLegend{
        margin-left: -45px;
        margin-right: 0;
    }
    
    .instrumentLegendWrap{
        align-items: center;
    }
    .instrumentLegend__dynamics{
    flex-basis: 24%;    
    }
    
    .instrumentLegend .instrumentLegend__img{
        min-height: 200px;
    }
    
    .instrumentLegend__structure{
        margin-top: -100px;
    }
    
    .instrumentLegend__structure:before{
    top:10px;
}
    
.instrumentLegend__structure span:before{
    width: 10px;
    height: 10px;
    top:5px;
}


    #ida{
        width:30vw;
        height: 70vh;
    }

    .orchestraRow{
        height: 260px; 
    }

    .instrument{
        margin: 8px;
    }


    .instrument:after {
        left: calc(50% - 10px);
        width: 20px;
        height: 16px;
    }

    .musicRowIndicator{
        top: 310px; 
    }

    .musicRow.active.inPause .musicRowIndicator{
        top: 311px;
    }
}



@media (max-width:1199px){
    .instrumentLegendWrap{
        justify-content: space-between;
    }
}

@media (min-width:1024px) and (max-width:1439px){
    .instruments{
        max-width: 995px;
    }
}


@media(min-width:1200px){
    .instrumentLegend{
        padding: 20px 20px 50px 20px;
        }
    .instrumentLegend__dynamics{
    margin-left: 25px;
        }
    .instrumentLegend__dynamics:after{
        left: 50%;
    }
    
    .instrumentLegend__img .dynamics{
        margin:0 0 -50px -50px;
    }
}


@media(min-width:1440px){

    .orchestraRow{
        height: 360px;
    }

    .musicRowIndicator{
        top: 409px; 
    }

    .musicRow.active.inPause .musicRowIndicator{
        top: 411px;
    }



    .textIntro{
        font-size: 1.75rem;
    }


    .wrapIntro .textIntro p{
        max-width: 33ch;
    }

    .instrumentLegend{
        font-size: .675em;
        margin-left: -20px;
        margin-right: -20px;
        max-width: 520px;
    }


    .instrumentLegend .instrumentLegend__img{
        min-height: 240px;

    }

    #maurice{
        width:350px;
        height: 561px;
    }

    #ida{

        width:440px;
        height: 671px;
        margin-top: -15vh;
    }

    .btn-start{
        padding: .5em 1em;
        font-size: 1.15em;
        background-color: #ff2233;
    }
    .instruments{
        max-width: 1300px;
    }
    .instrument {
        height: 150px;
    }
    .instrument img{
        max-height: 150px;
    }


    .instrument:after {
        left: calc(50% - 11px);
        width: 22px;
        height: 18px;
    }
}

@media(min-width:1920px){
    .rowNineteen  {
        font-size: 1.4rem;
    }
}
