* { 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; } }