@charset "utf-8";
/* CSS Document */
body {
            font-family: "Hina Mincho", serif;
  font-weight: 400;
  font-style: normal;
            background: linear-gradient(145deg, #2c3e50, #2c3e50);
            color: #f8f9fa;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            height: 100svh;
            margin: 0;
            line-height: 1.6; background-image: url("../img/bg.jpg"); background-repeat: no-repeat; background-position: center; background-size: cover;
        }
        .container {
            background: rgba(0, 0, 0, 0.4);
            border-radius: 20px;
            padding: 35px;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3), 0 0 20px rgba(226, 177, 117, 0.1);
            width: 90%;
            max-width: 800px;
            backdrop-filter: blur(5px);
        }
        h1 { position: fixed; top:50%; left: 0;
            font-size: 5vw;
            text-align: center;
            margin: 0px;
            color: #D94002;
            font-weight: 400;
            letter-spacing: 1px; width: 100%; text-align: center; transform: translateY(-50%); transition: all 1s ease 0s;
        }
.play h1 { opacity: 0;}
h1 span { font-size: 50%; display: block;}
        .subtitle {
            text-align: center;
            margin-top: -25px;
            margin-bottom: 30px;
            font-size: 16px;
            color: #ccc;
            font-style: italic;
        }
        .player {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 25px; width: 100%; position: fixed; bottom: 0; left: 0;
        }
        .controls {
            display: flex;
            gap: 20px;
            align-items: center;
            margin-bottom: 5px;
        }
        button {
            background: none; background-color: transparent;
            color: #2c3e50;
            border: none;
            border-radius: 50%;
            width: 80px; height: 80px; background-position: center; background-repeat: no-repeat; background-size: 60px;
            font-size: 16px;
            font-weight: bold;
            cursor: pointer;
            transition: all 0.3s ease;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 12px;
        }
        button:hover {
            
        }
        button:active {
            
        }
        button:disabled {
            background: #a0aec0;
            cursor: not-allowed;
            transform: none;
            box-shadow: none;
            opacity: 0.7; display: none;
        }

#playBtn { background-image: url("../img/play.svg");}
#stopBtn { background-image: url("../img/pause.svg");}

        .progress-wrapper {
            width: 100%;
            position: relative; padding: 0 20px; box-sizing: border-box;
        }
        .progress-container {
            width: 100%;
            height: 12px;
            background: rgba(255, 255, 255, 0.1);
            border-radius: 10px;
            overflow: hidden;
            box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2);
        }
        .progress-bar {
            height: 100%;
            width: 0;
            background: linear-gradient(90deg, #d4a064, #e2b175);
            transition: width 0.5s ease;
            border-radius: 10px;
            box-shadow: 0 0 8px rgba(226, 177, 117, 0.6);
        }
        .time-display {
            display: flex;
            justify-content: space-between;
            width: 100%;
            font-size: 12px;
            color: #aaa;
            margin-top: 5px;
        }
        .status {
            font-size: 14px;
            text-align: center;
            margin-top: 5px;
            color: #e2b175;
            font-weight: bold; display: none;
        }
        .now-playing {
            margin: 15px 0 5px 0;
            text-align: center;
            font-size: 22px;
            color: #e2b175;
            font-weight: 300;
            letter-spacing: 0.5px;
            transition: all 0.5s ease; display: none;
        }
        .movement-description {
            text-align: center;
            font-size: 14px;
            color: #ddd;
            margin: 0 0 20px 0;
            max-width: 600px;
            font-style: italic; display: none;
        }
        .visualization {
            width: 100%;
            height: 100svh;
            background: rgba(0, 0, 0, 0.2);
            overflow: hidden;
            position: relative; position: fixed; top:0; left: 0;
        }
        canvas {
            width: 100%;
            height: 100%;
            display: block;
        }
        .movements {
            width: 100%;
            display: flex;
            flex-direction: column;
            gap: 10px;
            margin-top: 20px; display: none;
        }
        .movement {
            background: rgba(255, 255, 255, 0.05);
            border-radius: 8px;
            padding: 15px;
            transition: all 0.3s ease;
            border-left: 3px solid transparent;
        }
        .movement.active {
            background: rgba(226, 177, 117, 0.1);
            border-left: 3px solid #e2b175;
            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
        }
        .movement-title {
            font-size: 16px;
            margin: 0 0 5px 0;
            color: #e2b175;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        .movement-title span {
            font-size: 12px;
            color: #aaa;
        }
        .movement-description {
            font-size: 13px;
            line-height: 1.4;
            margin: 0;
            color: #ddd;
            text-align: left;
        }
        .loading-overlay {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 0, 0.7);
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            z-index: 1000;
        }
        .loading-overlay2 { display: none; }
        .loading-text {
            color: #e2b175;
            font-size: 18px;
            margin-top: 20px;
        }
        .spinner {
            width: 50px;
            height: 50px;
            border: 5px solid rgba(226, 177, 117, 0.3);
            border-radius: 50%;
            border-top: 5px solid #e2b175;
            animation: spin 1s linear infinite;
        }
        @keyframes spin {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }
        .audio-debugger {
            width: 100%;
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.3s ease;
            background: rgba(0, 0, 0, 0.2);
            border-radius: 8px;
            margin-top: 10px;
        }
        .audio-debugger.open {
            max-height: 200px;
            padding: 10px;
        }
        #debugOutput {
            font-family: monospace;
            font-size: 12px;
            overflow-y: auto;
            max-height: 180px;
            color: #aaa;
        }
        .volume-control {
            display: flex;
            align-items: center;
            gap: 10px;
            margin-top: 5px; display: none;
        }
        .volume-slider {
            width: 100px;
            height: 6px;
            -webkit-appearance: none;
            appearance: none;
            background: rgba(255, 255, 255, 0.2);
            outline: none;
            border-radius: 3px;
        }
        .volume-slider::-webkit-slider-thumb {
            -webkit-appearance: none;
            appearance: none;
            width: 14px;
            height: 14px;
            background: #e2b175;
            border-radius: 50%;
            cursor: pointer;
        }
        .volume-slider::-moz-range-thumb {
            width: 14px;
            height: 14px;
            background: #e2b175;
            border-radius: 50%;
            cursor: pointer;
            border: none;
        }
        .volume-icon {
            color: #aaa;
            font-size: 18px;
        }
        
        /* モバイル向け調整 */
        @media (max-width: 768px) {
            .container {
                padding: 20px;
            }
            h1 {
                font-size: 10vw;
            }
            .subtitle {
                font-size: 14px;
            }
            .controls {
                gap: 10px;
            }
            button {
                padding: 10px 20px;
                font-size: 14px;
            }
            
            .movement-title {
                font-size: 14px;
            }
            .movement-description {
                font-size: 12px;
            }
        }

#book { width: 70px; height: 70px; position: fixed; top:0; right: 0; background-image: url("../img/book.svg"); background-repeat: no-repeat; background-position: center; background-size: 30px; cursor: pointer; z-index: 1;}
#modal { width: 100%; height: 100svh; background-color: #FFF; border-radius: 0em; position: fixed; top:50%; left: 50%; transform: translate(-50%,-50%); z-index: -1; opacity: 0; transition: all .4s ease 0s;}
.opens #modal { z-index: 99; opacity: 1; }
#modal #close { width: 60px; height: 60px; position: absolute; top:0; right: 0; cursor: pointer; background-image: url("../img/close2.svg"); background-repeat: no-repeat; background-position: center; background-size: 25px;}
#modal .inner { width: 100%; position: absolute; top:60px; height: calc( 100% - 60px );}
#modal .inner iframe { width: 100%; height: 100%; border: none;}
#overlay3 { width: 100%; height: 100svh; position: fixed; top:0; left: 0; background-color: rgba(0,0,0,.6); z-index: -1; opacity: 0; transition: all .4s ease 0s;}
.opens #overlay3 { opacity: 1; z-index: 99;}
