@font-face {
    font-family: nototo;
    src: url("../fonts/Noto_Sans_JP/static/NotoSansJP-Regular.ttf") format("truetype");
}

@font-face {
    font-family: nototob;
    src: url("../fonts/Noto_Sans_JP/static/NotoSansJP-Bold.ttf") format("truetype");
}

@font-face {
    font-family: sf;
    src: url("../fonts/ABSTER.ttf") format("truetype");
}

@font-face {
    font-family: combo;
    src: url("../fonts/Elronmonospace.ttf") format("truetype");
}

@font-face {
    font-family: hack;
    src: url("../fonts/Hack-Regular.ttf") format("truetype");
}

#version {
    font-style: italic;
    font-size: 13px;
    opacity: .56;
}

body {
    padding: 0;
    margin: 0;
    background-color: #222;
    font-family: nototo;
    user-select: none;
}

header {
    text-align: center;
    font-family: sf;
    height: 68px;
    display: grid;
    place-items: center;
    width: 100vw;
    position: fixed;
    top: 0;
    left: 0;
    font-size: 34px;
    color: #666;
    background-color: #000000ef;
    backdrop-filter: blur(6px);
    box-shadow: 0 2px 10px #000c;
    z-index: 998;
}

header img {
    height: 40px;
}


#songBoxFormat {
    display: none;
}


#configBtn {
    height: 100%;
    width: 70px;
    position: absolute;
    top: 0;
    left: 0;
    display: grid;
    place-items: center;
}

#configBtn img {
    height: 30px;
    opacity: .65;
    transition: all .2s;
}

#configBtn:hover img {
    height: 36px;
    opacity: 1;
}

#userBtn {
    height: 100%;
    width: 70px;
    position: absolute;
    top: 0;
    right: 0;
    display: grid;
    place-items: center;
}

#userBtn img {
    height: 30px;
    opacity: .65;
    transition: all .2s;
}

#userBtn:hover img {
    height: 36px;
    opacity: 1;
}

#userDataMini {
    position: absolute;
    top: 0;
    right: 70px;
    height: 100%;
    width: fit-content;
    display: grid;
    place-items: center;
    font-size: 16px;
    color: #aaa;
}

#userNameMini {
    font-size: 13px;
    color: #aaa;
    font-family: nototob;
}

#userRateMini {
    font-size: 11px;
    color: #aaa;
    font-family: nototo;
}

.headerSpace {
    text-align: center;
    height: 80px;
    width: 100%;
    opacity: 0;
    /*font-weight: bold;*/
    font-family: nototob;
}


#settingMenu {
    width: 450px;
    height: 65vh;
    max-height: 700px;
    border-radius: 8px;
    background-color: #000000ef;
    backdrop-filter: blur(6px);
    position: fixed;
    top: 89px;
    left: -465px;
    box-shadow: 0 0 10px #0008;
    z-index: 999;
    opacity: 0;
    transition: all .3s;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

#settingMenu[class="showST"] {
    left: 15px;
    opacity: 1;
}

.settingHeader {
    width: 100%;
    height: 45px;
    /*background: linear-gradient(140deg, #ff82f5, #00eeff, #b8ffa6);*/
    background: linear-gradient(140deg, #ff82f5d0, #00eeffd0, #b8ffa6d0);
    color: #ffffff;
    font-size: 20px;
    position: absolute;
    display: grid;
    place-items: center;
    top: 0;
    left: 0;
    font-family: nototob;
    border-radius: 8px 8px 0 0;
}

.settingHeader .text {
    vertical-align: 2px;
}

.gear {
    height: 100%;
    width: 48px;
    color: #ffffff;
    background-color: #00000000;
    border-radius: 0 8px 0 0;
    display: grid;
    place-items: center;
    position: absolute;
    top: 0;
    left: 0;
}

.gear img {
    height: 22.2px;
}

.winClose {
    height: 100%;
    width: 48px;
    color: #ffffff;
    background-color: #00000000;
    border-radius: 0 8px 0 0;
    display: grid;
    place-items: center;
    position: absolute;
    top: 0;
    right: 0;
    transition: all .2s;
}

.winClose:hover {
    background-color: #ff4444ff;
}

.winClose img {
    height: 29px;
    transition: all .2s;
}

.winClose:hover img {
    height: 33px;
}

.settingForm {
    height: calc(100% - 65px);
    width: calc(100% - 60px);
    padding: 0 30px;
    position: absolute;
    color: #aaa;
    font-size: 16px;
    bottom: 20px;
    left: 0;
    border-radius: 0 0 8px 8px;
    overflow-y: auto;
}

/*ここからslider*/
/* 以下スライダーのCSS */
input[type="range"] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    box-sizing: border-box;
    cursor: pointer;
    outline: none;
    background: linear-gradient(140deg, #ff82f5d0, #00eeffd0, #b8ffa6d0);
    height: 3px;
    width: calc(100% - 4px);
    border-radius: 3px;
    border: solid 0px #dff1ff;
}

input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    background: #53aeff;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.15);
}

input[type="range"]::-moz-range-thumb {
    background: #53aeff;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.15);
    border: none;
}

input[type="range"]::-moz-focus-outer {
    border: 0;
}

input[type="range"]:active::-webkit-slider-thumb {
    box-shadow: 0px 5px 10px -2px rgba(0, 0, 0, 0.3);
}

/*ここまでslider*/
input[type="checkbox"] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    box-sizing: border-box;
    height: 20px;
    width: 20px;
    background-color: #222;
    outline: 0;
    border: solid 2px #53aeff;
    border-radius: 3px;
    margin: 0 2px;
    position: relative;
    vertical-align: -4px;
}

input[type="checkbox"]:checked:before {
    position: absolute;
    top: 0;
    left: 4px;
    transform: rotate(40deg);
    width: 6px;
    height: 10px;
    border-right: 3px solid #08f;
    border-bottom: 3px solid #08f;
    content: '';
}

input[type="button"] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    box-sizing: border-box;
    border-radius: 3px;
    border: 0;
    outline: 0;
    height: 32px;
    width: 155px;
    font-size: 14px;
    font-family: nototo;
    color: #53aeff;
    border: solid 2px #53aeff;
    background: linear-gradient(140deg, #ff82f500, #00eeff00, #b8ffa600);
    transition: all .1s;
}

input[type="button"]:hover {
    border: 0;
    color: #ffffff;
    background: linear-gradient(140deg, #ff82f5d0, #00eeffd0, #b8ffa6d0);
}

.smallFont {
    font-size: 13px;
}

input[type="text"],
input[type="password"] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    box-sizing: border-box;
    border-radius: 3px;
    border: solid 1px #555;
    outline: 0;
    height: 28px;
    width: 300px;
    font-size: 16px;
    padding: 0 5px;
    background-color: #111;
    color: #eee;
    font-family: nototo;
    margin: 8px 0 14px 0;
}

input[type="text"]::placeholder,
input[type="password"]::placeholder {
    color: #666;
}

input[type="text"]:focus,
input[type="password"]:focus {
    border: solid 1px #4e95ff;
}


#userMenu {
    position: fixed;
    top: 89px;
    right: -465px;
    width: 450px;
    height: 65vh;
    max-height: 700px;
    border-radius: 8px;
    background-color: #000000ef;
    backdrop-filter: blur(6px);
    box-shadow: 0 0 10px #0008;
    z-index: 999;
    opacity: 0;
    transition: all .3s;
}

#userMenu[class="showUSR"] {
    right: 15px;
    opacity: 1;
}

#userName {
    font-size: 31px;
    font-family: nototob;
}


ul {
    padding-left: 21px;
}

a {
    color: #4e95ff;
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

.artist a {
    color: #ffffff;
    text-decoration: none;
}

.artist a:hover {
    color: #ffffff;
    text-decoration: underline;
}



.titleBox {
    width: 100%;
    height: 70px;
    /*
    background: linear-gradient(90deg, #ffffff70, #00000050), url(../images/bg7.jpg);
    background-attachment: fixed;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
    */
    background-color: #555555;
    color: #222;
    position: relative;
    border-radius: 8px;
}

.title {
    font-size: 33px;
    /*font-weight: bold;*/
    font-family: nototob;
    height: 68px;
    width: fit-content;
    display: grid;
    place-items: center;
    position: absolute;
    top: 0;
    left: 20px;
}

h2 {
    font-size: 23px;
    font-weight: normal;
    font-family: nototob;
    line-height: 100%;
}

#footer {
    width: 100%;
    height: auto;
    padding: 15px 0;
    color: #999;
    font-size: 18px;
    overflow-y: hidden;
    text-align: center;
    border-radius: 8px;
    background: #444;
}


.songs {
    width: 100%;
    height: 45px;
    position: relative;
    margin: 12px 0;
    transition: all .3s;
    box-shadow: 0 0 10px #0006;
}

.songs:hover {
    height: 105px;
}

.songData {
    width: 100%;
    height: 45px;
    /*background: linear-gradient(140deg, #ff82f5, #00eeff, #b8ffa6);*/
    background: linear-gradient(140deg, #ff82f5d0, #00eeffd0, #b8ffa6d0);
    color: #ffffff;
    font-size: 20px;
    position: absolute;
    top: 0;
    left: 0;
    border-radius: 8px;
    transition: all .3s;
}

.songs:hover .songData {
    border-radius: 8px 8px 0 0;
}

.songName {
    width: fit-content;
    height: 45px;
    padding-left: 15px;
    position: absolute;
    left: 0;
    top: 0;
    display: grid;
    place-items: center;
    /*font-weight: bold;*/
    font-family: nototob;
}

.rankingBtn {
    width: 45px;
    height: 45px;
    position: absolute;
    top: 0;
    right: 4px;
    display: grid;
    place-items: center;
}

.rankingBtn img {
    height: 24px;
    opacity: 1;
    transition: all .2s;
}

.rankingBtn:hover img {
    height: 28px;
    opacity: 1;
}

.artist {
    width: fit-content;
    height: 45px;
    padding-left: 15px;
    font-size: 16px;
    /*font-weight: normal;*/
    font-family: nototo;
}

.chartData {
    width: 100%;
    height: 0;
    font-size: 0;
    background-color: #ffffff;
    position: absolute;
    top: 45px;
    left: 0;
    opacity: 0;
    border-radius: 0 0 8px 8px;
    transition: all .3s;
}

.songs:hover .chartData {
    width: 100%;
    height: 60px;
    font-size: 0;
    position: absolute;
    top: 45px;
    left: 0;
    border-radius: 0 0 8px 8px;
    opacity: 1;
}

.albumArt {
    width: 120px;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    border-radius: 0 0 0 8px;
}

.highScore {
    width: 200px;
    height: 100%;
    position: absolute;
    top: 0;
    left: 110px;
}

.highDif {
    height: 0;
    font-size: 0;
    line-height: 100%;
    font-family: nototo;
    position: absolute;
    top: 0;
    left: 0;
    transition: all .3s;
}

.songs:hover .highDif {
    height: auto;
    font-size: 12px;
    top: 7px;
}

.hses {
    color: #08f;
}

.hshd {
    color: #f80;
}

.hsex {
    color: #f33;
}

.hsov {
    color: #666;
}

.score {
    height: 0;
    font-size: 0;
    line-height: 100%;
    color: #222;
    font-family: nototo;
    position: absolute;
    top: 0;
    left: 0;
    transition: all .3s;
}

.songs:hover .score {
    height: auto;
    font-size: 18px;
    top: 23px;
}

.grade {
    height: 0;
    font-size: 0;
    line-height: 100%;
    font-family: nototob;
    position: absolute;
    top: 0;
    left: 0;
    transition: all .3s;
}

.songs:hover .grade {
    height: auto;
    font-size: 22px;
    top: 20px;
    left: 88px;
}

.gm {
    color: #c0f;
}

.gs {
    color: #0af;
}

.ga {
    color: #f80;
}

.gb {
    color: #190;
}

.gc {
    color: #04f;
}

.gd {
    color: #666;
}

.difficulty {
    width: 200px;
    height: 100%;
    position: absolute;
    top: 0;
    right: 0;
}

.difBtn {
    width: 50px;
    height: 100%;
    display: grid;
    place-items: center;
    font-size: 0;
    color: #ffffff;
    font-family: nototob;
    position: absolute;
    transition: font-size .3s;
}

.songs:hover .difBtn {
    width: 50px;
    height: 100%;
    font-size: 20px;
    position: absolute;
    transition: all .1s;
}

.songs:hover .difBtn:hover {
    width: 50px;
    height: 92%;
    font-size: 20px;
    position: absolute;
}

.easy {
    background: linear-gradient(180deg, #329cff, #329cff40);
    bottom: 0;
    right: 150px;
}

.hard {
    background: linear-gradient(180deg, #ff953f, #ff953f40);
    bottom: 0;
    right: 100px;
}

.expert {
    background: linear-gradient(180deg, #ff1d69, #ff1d6940);
    bottom: 0;
    right: 50px;
}

.over {
    background: linear-gradient(180deg, #666666, #66666640);
    bottom: 0;
    right: 0px;
    border-radius: 0 0 8px 0;
}

.lamp {
    height: 0;
    width: 0;
    box-sizing: border-box;
    border: solid 0px #ffffff00;
    border-radius: 0 0 2px 2px;
    position: absolute;
    top: 0;
    left: 25px;
    background-color: #ffffff;
    transition: all .1s;
}

.songs:hover .lamp {
    border: solid 1px #ffffff;
    left: 15px;
    height: 6px;
    width: 20px;
}

.lamp_tc {
    background-color: #ffffff;
}

.lamp_ta {
    background-color: #190;
}

.lamp_mc {
    background-color: #f80;
}

.lamp_pc {
    background-color: #0af;
}

.lamp_ac {
    background-color: #c0f;
}


#continueHowto {
    height: 28px;
    width: 100%;
    border-radius: 2px;
    border: solid 1px #666;
    color: #666;
    font-family: nototo;
    font-size: 14px;
    display: grid;
    place-items: center;
    background-color: #333;
}

#continueHowto:hover {
    background-color: #2c2c2c;
}

#hiddenHowto {
    height: 0;
    opacity: 0;
    font-size: 0;
    transition: all .3s;
}

#hiddenHowto[class="showHT"] {
    height: auto;
    opacity: 1;
    font-size: 17px;
}

#hiddenHowto h2 {
    font-size: 0;
}

#hiddenHowto[class="showHT"] h2 {
    font-size: 23px;
}

@media screen and (min-width:1000px) {
    section {
        width: 800px;
        min-height: 100vh;
        height: auto;
        margin: 0 auto;
        color: #aaa;
        font-size: 17px;
    }
}

@media screen and (min-width:500px) and (max-width:999px) {
    section {
        width: 88%;
        min-height: 100vh;
        height: auto;
        margin: 0 auto;
        color: #aaa;
        font-size: 17px;
    }
}

@media screen and (max-width:499px) {
    section {
        width: 94%;
        min-height: 100vh;
        height: auto;
        margin: 0 auto;
        color: #aaa;
        font-size: 17px;
    }
}







#keyConf {
    position: fixed;
    height: 100vh;
    width: 100%;
    top: calc(-100vh - 10px);
    background-color: #000000b9;
    backdrop-filter: blur(0);
    left: 0;
    opacity: 0;
    transition: opacity .2s, backdrop-filter;
    z-index: 10000;
    display: grid;
    place-items: center;
    opacity: 0;
    font-family: combo;
    color: #c0c0c0;
    font-size: 17px;
    text-align: center;
}

#keyConf[class="show"] {
    top: 0;
    opacity: 1;
    backdrop-filter: blur(10px);
}

#confKey {
    height: 100px;
    width: 400px;
    font-size: 26px;
    position: relative;
    border-radius: 12px;
    margin-top: 12px;
    border: solid 1px #505050;
}

.confKey {
    height: 100px;
    width: 100px;
    margin: 0;
    display: grid;
    place-items: center;
    border-radius: 12px;
    position: absolute;
    top: 0;
    font-size: 18px;
    font-family: combo;
    word-break: break-all;
}

#confKey1 {
    left: 0;
}

#confKey2 {
    left: 100px;
}

#confKey3 {
    left: 200px;
}

#confKey4 {
    left: 300px;
}

#keyChoose {
    height: 100px;
    width: 100px;
    box-sizing: border-box;
    border: solid 3px #0026d1;
    border-radius: 12px;
    transition: all .2s;
    position: absolute;
    top: 0;
    left: 0;
}

#keyChoose[class="pos1"] {
    left: 0;
}

#keyChoose[class="pos2"] {
    left: 100px;
}

#keyChoose[class="pos3"] {
    left: 200px;
}

#keyChoose[class="pos4"] {
    left: 300px;
}

#sub_keyConf {
    position: fixed;
    height: 100vh;
    width: 100%;
    top: calc(-100vh - 10px);
    background-color: #000000b9;
    backdrop-filter: blur(0);
    left: 0;
    opacity: 0;
    transition: opacity .2s, backdrop-filter .2s;
    z-index: 10000;
    display: grid;
    place-items: center;
    opacity: 0;
    font-family: combo;
    color: #c0c0c0;
    font-size: 17px;
    text-align: center;
}

#sub_keyConf[class="show"] {
    top: 0;
    backdrop-filter: blur(10px);
    opacity: 1;
}

#sub_confKey {
    height: 100px;
    width: 450px;
    font-size: 26px;
    position: relative;
    border-radius: 12px;
    margin-top: 12px;
    border: solid 1px #505050;
}

.sub_confKey {
    height: 100px;
    width: 150px;
    margin: 0;
    display: grid;
    place-items: center;
    border-radius: 12px;
    position: absolute;
    top: 0;
    font-size: 18px;
    font-family: combo;
    word-break: break-all;
}

#sub_confKey1 {
    left: 0;
}

#sub_confKey2 {
    left: 150px;
}

#sub_confKey3 {
    left: 300px;
}

#sub_keyChoose {
    height: 100px;
    width: 150px;
    box-sizing: border-box;
    border: solid 3px #0026d1;
    border-radius: 12px;
    transition: all .2s;
    position: absolute;
    top: 0;
    left: 0;
}

#sub_keyChoose[class="pos1"] {
    left: 0;
}

#sub_keyChoose[class="pos2"] {
    left: 150px;
}

#sub_keyChoose[class="pos3"] {
    left: 300px;
}