| * { | |
| margin: 0; | |
| padding: 0; | |
| box-sizing: border-box; | |
| } | |
| body { | |
| font-family: 'Arial', sans-serif; | |
| background: linear-gradient(135deg, #ffb3d9, #ff99cc, #ffccdd); | |
| min-height: 100vh; | |
| padding: 20px; | |
| } | |
| .container { | |
| max-width: 800px; | |
| margin: 0 auto; | |
| background: rgba(255, 255, 255, 0.95); | |
| border-radius: 20px; | |
| box-shadow: 0 10px 30px rgba(255, 105, 180, 0.3); | |
| padding: 30px; | |
| border: 3px solid #ff69b4; | |
| } | |
| .header { | |
| text-align: center; | |
| margin-bottom: 40px; | |
| position: relative; | |
| } | |
| .neko-ears { | |
| font-size: 2em; | |
| margin-bottom: 10px; | |
| animation: wiggle 2s infinite; | |
| } | |
| @keyframes wiggle { | |
| 0%, 100% { transform: rotate(0deg); } | |
| 25% { transform: rotate(-5deg); } | |
| 75% { transform: rotate(5deg); } | |
| } | |
| .title { | |
| color: #ff1493; | |
| font-size: 2.5em; | |
| margin-bottom: 10px; | |
| text-shadow: 2px 2px 4px rgba(255, 105, 180, 0.5); | |
| } | |
| .subtitle { | |
| color: #d63384; | |
| font-size: 1.1em; | |
| font-style: italic; | |
| } | |
| .upload-section { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| gap: 20px; | |
| margin-bottom: 30px; | |
| } | |
| .upload-group { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| } | |
| .upload-box { | |
| width: 100%; | |
| height: 120px; | |
| border: 3px dashed #ff69b4; | |
| border-radius: 15px; | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| cursor: pointer; | |
| transition: all 0.3s ease; | |
| background: linear-gradient(45deg, #fff0f5, #ffe4e6); | |
| } | |
| .upload-box:hover { | |
| border-color: #ff1493; | |
| background: linear-gradient(45deg, #ffe4e6, #ffb3d9); | |
| transform: translateY(-2px); | |
| } | |
| .upload-icon { | |
| font-size: 2em; | |
| margin-bottom: 5px; | |
| } | |
| .upload-text { | |
| color: #d63384; | |
| font-weight: bold; | |
| } | |
| .file-name { | |
| margin-top: 10px; | |
| color: #ff1493; | |
| font-size: 0.9em; | |
| text-align: center; | |
| max-width: 200px; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| white-space: nowrap; | |
| } | |
| .settings-section { | |
| background: #fff0f5; | |
| padding: 20px; | |
| border-radius: 15px; | |
| margin-bottom: 30px; | |
| border: 2px solid #ffb3d9; | |
| } | |
| .settings-section h3 { | |
| color: #d63384; | |
| margin-bottom: 20px; | |
| text-align: center; | |
| } | |
| .setting-group { | |
| margin-bottom: 15px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| } | |
| .setting-group label { | |
| color: #d63384; | |
| font-weight: bold; | |
| flex: 1; | |
| } | |
| .pink-select, .pink-input { | |
| flex: 1; | |
| margin-left: 15px; | |
| padding: 8px 12px; | |
| border: 2px solid #ff69b4; | |
| border-radius: 10px; | |
| background: white; | |
| color: #d63384; | |
| font-size: 1em; | |
| } | |
| .pink-select:focus, .pink-input:focus { | |
| outline: none; | |
| border-color: #ff1493; | |
| box-shadow: 0 0 5px rgba(255, 20, 147, 0.3); | |
| } | |
| .analyze-button { | |
| width: 100%; | |
| padding: 15px; | |
| background: linear-gradient(45deg, #ff69b4, #ff1493); | |
| color: white; | |
| border: none; | |
| border-radius: 15px; | |
| font-size: 1.2em; | |
| font-weight: bold; | |
| cursor: pointer; | |
| transition: all 0.3s ease; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 10px; | |
| } | |
| .analyze-button:hover:not(:disabled) { | |
| background: linear-gradient(45deg, #ff1493, #dc143c); | |
| transform: translateY(-2px); | |
| box-shadow: 0 5px 15px rgba(255, 20, 147, 0.4); | |
| } | |
| .analyze-button:disabled { | |
| background: #cccccc; | |
| cursor: not-allowed; | |
| } | |
| .neko-icon { | |
| font-size: 1.1em; | |
| } | |
| .loading { | |
| text-align: center; | |
| margin: 30px 0; | |
| } | |
| .neko-loading { | |
| font-size: 3em; | |
| animation: bounce 1s infinite; | |
| } | |
| @keyframes bounce { | |
| 0%, 100% { transform: translateY(0); } | |
| 50% { transform: translateY(-10px); } | |
| } | |
| .results { | |
| margin-top: 30px; | |
| padding: 20px; | |
| background: #fff0f5; | |
| border-radius: 15px; | |
| border: 2px solid #ffb3d9; | |
| } | |
| .results h3 { | |
| color: #d63384; | |
| margin-bottom: 20px; | |
| text-align: center; | |
| } | |
| .duration-info { | |
| background: white; | |
| padding: 15px; | |
| border-radius: 10px; | |
| margin-bottom: 20px; | |
| text-align: center; | |
| color: #d63384; | |
| font-weight: bold; | |
| border: 1px solid #ff69b4; | |
| } | |
| .timeline { | |
| background: white; | |
| border: 2px solid #ff69b4; | |
| border-radius: 10px; | |
| padding: 20px; | |
| margin-bottom: 20px; | |
| min-height: 100px; | |
| position: relative; | |
| } | |
| .timeline-bar { | |
| height: 40px; | |
| background: linear-gradient(to right, #ffb3d9, #ff99cc); | |
| border-radius: 20px; | |
| position: relative; | |
| margin: 20px 0; | |
| } | |
| .marker { | |
| position: absolute; | |
| top: -10px; | |
| font-size: 1.5em; | |
| transform: translateX(-50%); | |
| } | |
| .marker.rhythm-good { color: #00ff00; } | |
| .marker.rhythm-bad { color: #ff0000; } | |
| .marker.pitch-good { color: #00ff00; } | |
| .marker.pitch-bad { color: #ff0000; } | |
| .advice { | |
| background: white; | |
| padding: 20px; | |
| border-radius: 10px; | |
| border: 2px solid #ff69b4; | |
| } | |
| .advice h4 { | |
| color: #d63384; | |
| margin-bottom: 15px; | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| } | |
| .advice-item { | |
| background: #fff0f5; | |
| padding: 10px; | |
| margin: 10px 0; | |
| border-radius: 8px; | |
| border-left: 4px solid #ff69b4; | |
| } | |
| .documentation-section { | |
| background: linear-gradient(135deg, #fff0f8, #ffe6f2); | |
| border: 2px solid #ff69b4; | |
| border-radius: 15px; | |
| padding: 20px; | |
| margin: 20px 0; | |
| } | |
| .documentation-section h3 { | |
| color: #d63384; | |
| margin-bottom: 15px; | |
| text-align: center; | |
| } | |
| .doc-content { | |
| max-height: 0; | |
| overflow: hidden; | |
| transition: max-height 0.3s ease; | |
| } | |
| .documentation-section:hover .doc-content { | |
| max-height: 500px; | |
| } | |
| .doc-step { | |
| display: flex; | |
| align-items: flex-start; | |
| margin: 15px 0; | |
| padding: 10px; | |
| background: white; | |
| border-radius: 10px; | |
| border-left: 4px solid #ff69b4; | |
| } | |
| .step-number { | |
| background: #ff69b4; | |
| color: white; | |
| border-radius: 50%; | |
| width: 30px; | |
| height: 30px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| font-weight: bold; | |
| margin-right: 15px; | |
| flex-shrink: 0; | |
| } | |
| .doc-step ul { | |
| margin: 5px 0; | |
| padding-left: 20px; | |
| } | |
| .doc-step li { | |
| margin: 5px 0; | |
| } | |
| .legend { | |
| margin-top: 10px; | |
| padding: 10px; | |
| background: #f8f9fa; | |
| border-radius: 8px; | |
| } | |
| .legend-item { | |
| display: flex; | |
| align-items: center; | |
| margin: 8px 0; | |
| gap: 10px; | |
| } | |
| .marker-example { | |
| font-size: 1.2em; | |
| padding: 2px 6px; | |
| border-radius: 4px; | |
| background: white; | |
| border: 1px solid #ddd; | |
| } | |
| .marker-example.rhythm-good { color: #00ff00; } | |
| .marker-example.rhythm-bad { color: #ff0000; } | |
| .marker-example.pitch-good { | |
| color: #00aa00; | |
| font-weight: bold; | |
| } | |
| .marker-example.pitch-bad { | |
| color: #aa0000; | |
| font-weight: bold; | |
| } | |
| .hidden { | |
| display: none; | |
| } | |
| @media (max-width: 600px) { | |
| .upload-section { | |
| grid-template-columns: 1fr; | |
| } | |
| .setting-group { | |
| flex-direction: column; | |
| align-items: stretch; | |
| } | |
| .setting-group label { | |
| margin-bottom: 5px; | |
| } | |
| .pink-select, .pink-input { | |
| margin-left: 0; | |
| } | |
| } | |