@charset "UTF-8";

*, *::before, *::after {
    box-sizing: border-box;
    padding: 0;
    margin: 0;
}
:root {
    --main-color: #CC00FF;
    --default-color: #3307FF;
    --sub-color: #00ECFF;
    --text-color: #191970;
    /*--text-color: #0000FF;*/
}
html, body {
    background-color: var(--default-color);
    padding: 0;
    margin: 0;
    font-size: 100%;
    width: 100%;
    height: 100%;
}
body {
    opacity: 0.7;
}

.container {
    display: grid;
    grid-template-columns: 1fr minmax(0, 450px) 1fr; /*よこ 左右に均等な余白、中央は最大650pxで画面幅を超えない*/
    grid-template-rows: 5% minmax(auto, 90%) 5%; /*縦　上下はヘッダーフッター、真ん中はメイン*/
    grid-template-areas:
      ". . ."
      "time main visual"
      ". . .";
    justify-content: center;
    align-content: center;
}

    #time-temp {
        opacity: 0.5;
        grid-area: time;
        position: absolute;
        top: 83%;
        left: 2%;
        padding: 8px;
        border: 12px double;
        border-radius: 8px;
        font-size: clamp(0.6rem, 0.13rem + 1.6vw, 0.96rem);
        font-family: "WDXL Lubrifont JP N", sans-serif;
        font-weight: 500;
        font-style: normal;
    }
    #time {
        text-decoration: none;
        font-family: "Wallpoet", sans-serif;
        font-weight: 400;
        font-style: normal;
        font-size: clamp(0.8rem, -0.416rem + 2.34vw, 1.2rem);
    }


.back-visual {
    z-index: -1;
    position: fixed;
    background: url("../images/bg-building.png") right top / contain repeat;
    width: 100%;
    height: 100vh;
    opacity: 0.1;
}
.main-visual {
    grid-area: visual;
    z-index: 1;
    pointer-events: none;
    position: fixed;
    top: 0;
    /*right: -220px;*/
    left: clamp(25rem, -1.517rem + 53.44vw, 51.25rem);
    opacity: 0.5;
    width: 855px;
    height: 100vh;
    background-image: url("../images/bg-girl.png");
    background-repeat: no-repeat;
    background-size: contain;
}


.appframe {
    opacity: 1;
    grid-area: main;
    justify-items: center;
    display: grid;
    grid-template-rows: 1.14fr 3fr 2fr 0.1fr 1fr;
    row-gap: 8px;
    border: 3px solid var(--main-color);
    border-radius: 20px;
    padding-bottom: 1.1rem;
}

marquee {
    width: 315px;
}
    h1 {
        z-index: 2;
        color: var(--main-color);
        text-shadow: 5px 4px 0px #000033;
        font-size: 1.8rem;
        padding: 0;
        margin: 0.7rem auto;
        font-style: italic;
    }

.tape {
    background: url("../images/bg-tape-clear.png") center center / cover no-repeat scroll;
    cursor: pointer;
    max-width: 100%;
    width: 350px;
    height: 220px;
    position: relative;
    z-index: 1;
}
    #roll-left {
        background: url("../images/image-tape-rolling.png") center center / cover no-repeat scroll;
        width: 39.0px;
        height: 38.0px;
        position: absolute;
        z-index: 2;
        top: 31.9%;
        left: 24.2%;
    }
    #roll-right {
        background: url("../images/image-tape-rolling.png") center center / cover no-repeat scroll;
        width: 39.0px;
        height: 38.0px;
        position: absolute;
        z-index: 2;
        top: 31.9%;
        left: 63.9%;
    }
    .rotating {
        animation: spin 4s linear infinite;
    }
    @keyframes spin {
        from {transform: rotate(0deg);}
        to {transform: rotate(360deg);}
    }

h2 {
    font-style: italic;
    font-size: 1.25rem;
    position: absolute;
    left: 21%;
    top: 8.5%;
}

.choose {
    font-weight: 600;
    font-style: italic;
    position: absolute;
    left: 17%;
    top: 59%;
}
    span {
        text-decoration: underline wavy var(--sub-color) 2px;
    }
    p a {
        font-size: 1.04rem;
        font-style: italic;
        font-weight: 800;
        font-family: "Rampart One", sans-serif;
        text-decoration: underline double red 1.9px;
        color: var(--default-color);
    }

.start {
    z-index: 999;
    position: absolute;
    left: 39%;
    top: 24.3%;
}
    .start:hover {
        transform: scale(0.9);
    }

p, strong {
    z-index: 2;
    color: var(--sub-color);
    font-size: 0.9rem;
}

img {
    width: 22%;
    height: auto;
    /*margin: 10px;*/
}

ul {
    text-align: center;
    list-style-position: inside;
    list-style-type: decimal;
    font-family: "Faster One", system-ui;
    font-weight: 400;
    font-style: normal;
    background-color: var(--default-color);
}
::marker {
    font-size: 23px;
}
    li {
        border-top: 1px solid var(--main-color);
        border-bottom: 1px solid var(--main-color);
        margin: 0 auto;
        padding: 2px;
        cursor: pointer;
        color: var(--main-color);
        width: 300px;
        font-size: 17px;
    }
        li:hover {
            background-color: var(--sub-color);
            color: var(--default-color);
        }

    .active {
        background-color: var(--text-color);
        color: var(--sub-color);
    }

audio {
    color: #CC00FF;
    border: 3px solid var(--main-color);
    border-radius: 50px;
}
audio::-webkit-media-controls-panel {
    background-color: var(--sub-color);
}

@media screen and (max-width: 767px) {
    .back-visual {
        z-index: 1;
        position: fixed;
        bottom: -300px;
        width: 100%;
        height: 900px;
        opacity: 0.07;
        pointer-events: none;
        background-repeat: no-repeat;
    }
    .main-visual {
        z-index: -100;
        top: 230px;
        left: 50%;
        opacity: 0.8;
        width: 400px;
        height: 100vh;
        background-repeat: no-repeat;
        background-size: contain;
        background-position: right top;
    }

    #time-temp {
        border: 3px double;
        top: 0;
        left: 50%;
        translate: -50%;
    }
    li {
        width: 220px;
    }
}

@media screen and (max-width: 500px) {
    .back-visual {
        bottom: -87%;
        opacity: 0.09;
    }
}