Spaces:
Sleeping
Sleeping
| /* Move these keyframes to the top */ | |
| @keyframes gradientBG { | |
| 0% { background-position: 0% 50%; } | |
| 50% { background-position: 100% 50%; } | |
| 100% { background-position: 0% 50%; } | |
| } | |
| @keyframes animate { | |
| 0% { background-position: 0% 50%; } | |
| 100% { background-position: 200% 50%; } | |
| } | |
| /* Reset and base styles */ | |
| * { | |
| margin: 0; | |
| padding: 0; | |
| box-sizing: border-box; | |
| } | |
| /* Important: Set background color immediately on html */ | |
| html { | |
| background: #000428; | |
| } | |
| /* Body styles with gradient */ | |
| body { | |
| margin: 0; | |
| padding: 20px; | |
| min-height: 100vh; | |
| width: 100%; | |
| background: linear-gradient(-45deg, #000428, #004e92, #000428, #002454); | |
| background-size: 400% 400%; | |
| animation: gradientBG 15s ease infinite; | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| color: white; | |
| } | |
| /* Add a mesh overlay */ | |
| body::before { | |
| content: ''; | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| background-image: | |
| linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), | |
| linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px); | |
| background-size: 20px 20px; | |
| pointer-events: none; | |
| z-index: 1; | |
| } | |
| .container { | |
| position: relative; | |
| z-index: 2; | |
| width: 90%; | |
| min-width: 320px; | |
| max-width: 1400px; | |
| margin: 40px auto; | |
| padding: 40px; | |
| font-family: Arial, sans-serif; | |
| background: rgba(10, 12, 25, 0.85); | |
| backdrop-filter: blur(10px); | |
| -webkit-backdrop-filter: blur(10px); | |
| border-radius: 20px; | |
| box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.5); | |
| display: flex; | |
| flex-direction: column; | |
| min-height: 85vh; | |
| } | |
| .btn { | |
| background: linear-gradient(90deg, #4A00E0, #8E2DE2); | |
| border: none; | |
| color: white; | |
| padding: 12px 30px; | |
| border-radius: 50px; | |
| font-family: 'Space Grotesk', sans-serif; | |
| font-size: 1rem; | |
| font-weight: 600; | |
| margin: 1rem 0; | |
| box-shadow: 0 4px 15px rgba(74, 0, 224, 0.3); | |
| cursor: pointer; | |
| transition: all 0.3s ease; | |
| display: inline-block; | |
| } | |
| .btn:hover { | |
| background: linear-gradient(90deg, #8E2DE2, #4A00E0); | |
| transform: translateY(-2px); | |
| box-shadow: 0 6px 20px rgba(74, 0, 224, 0.4); | |
| } | |
| .btn:active { | |
| transform: translateY(1px); | |
| } | |
| .text-box { | |
| border: 1px solid #ccc; | |
| padding: 15px; | |
| margin: 10px 0; | |
| min-height: 150px; | |
| max-height: 400px; | |
| overflow-y: auto; | |
| white-space: pre-wrap; | |
| background-color: #f8f9fa; | |
| border-radius: 5px; | |
| background: rgba(15, 15, 25, 0.7); | |
| backdrop-filter: blur(5px); | |
| border: 1px solid rgba(255, 255, 255, 0.15); | |
| color: #ffffff; | |
| font-size: 1.1rem; | |
| line-height: 1.6; | |
| letter-spacing: 0.2px; | |
| text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); | |
| width: 100%; | |
| } | |
| .hidden { | |
| display: none; | |
| } | |
| h1, h2 { | |
| color: white; | |
| text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3); | |
| } | |
| #upload-section { | |
| text-align: center; | |
| padding: 40px 0; | |
| } | |
| /* Add these styles */ | |
| .canvas-container { | |
| position: relative; | |
| width: 100%; | |
| height: 600px; | |
| border: 1px solid #ccc; | |
| border-radius: 5px; | |
| overflow: hidden; | |
| background-color: #f8f9fa; | |
| } | |
| .canvas-container canvas { | |
| width: 100% ; | |
| height: 100% ; | |
| } | |
| .plot-controls { | |
| margin: 10px 0; | |
| padding: 10px; | |
| background-color: #f8f9fa; | |
| border: 1px solid #ccc; | |
| border-radius: 5px; | |
| } | |
| .plot-controls label { | |
| display: block; | |
| margin: 5px 0; | |
| } | |
| .plot-controls input[type="range"] { | |
| width: 100%; | |
| } | |
| .pcl-stats { | |
| position: absolute; | |
| top: 10px; | |
| left: 10px; | |
| background: rgba(15, 15, 25, 0.9); | |
| padding: 10px; | |
| border-radius: 5px; | |
| font-size: 12px; | |
| pointer-events: none; | |
| color: #ffffff; | |
| font-weight: 500; | |
| text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); | |
| } | |
| .pcl-stats p { | |
| margin: 0; | |
| padding: 2px 0; | |
| color: #ffffff; | |
| } | |
| /* Add the font import at the top */ | |
| @import url('https://fonts.googleapis.com/css?family=Space%20Grotesk:700|Space%20Grotesk:400'); | |
| /* Add the custom properties */ | |
| :root { | |
| --m: 2rem; | |
| --button-bg: #141516; | |
| --border-width: 3px; | |
| --border-radius: 100px; | |
| --glow-spread: 40px; | |
| } | |
| /* Update the gradient-btn class */ | |
| .gradient-btn { | |
| position: relative; | |
| padding: 1em 2em; | |
| font-family: 'Space Grotesk', sans-serif; | |
| font-size: var(--m); | |
| font-weight: 500; | |
| color: #fff; | |
| background: var(--button-bg); | |
| border: var(--border-width) solid transparent; | |
| border-radius: var(--border-radius); | |
| cursor: pointer; | |
| overflow: hidden; | |
| transition: all 0.3s ease; | |
| } | |
| .gradient-btn::before, | |
| .gradient-btn::after { | |
| content: ''; | |
| position: absolute; | |
| inset: calc(-1 * var(--border-width)); | |
| border-radius: var(--border-radius); | |
| background: linear-gradient( | |
| 90deg, | |
| #FF8A00, | |
| #e52e71, | |
| #FF8A00, | |
| #e52e71 | |
| ); | |
| background-size: 300% 100%; | |
| animation: moveGradient 2s linear infinite; | |
| z-index: -2; | |
| } | |
| .gradient-btn::after { | |
| filter: blur(var(--glow-spread)); | |
| opacity: 0.7; | |
| z-index: -1; | |
| } | |
| .gradient-btn:hover::before, | |
| .gradient-btn:hover::after { | |
| animation: moveGradient 1s linear infinite; | |
| } | |
| @keyframes moveGradient { | |
| 0% { | |
| background-position: 0% 50%; | |
| } | |
| 100% { | |
| background-position: 150% 50%; | |
| } | |
| } | |
| /* Media query for responsive design */ | |
| @media screen and (max-width: 768px) { | |
| :root { | |
| --m: 1.5rem; | |
| --border-width: 2px; | |
| --glow-spread: 20px; | |
| } | |
| } | |
| /* New button styles */ | |
| .glow-button { | |
| position: relative; | |
| width: 300px; | |
| padding: 16px 32px; | |
| font-family: 'Space Grotesk', sans-serif; | |
| font-size: 24px; | |
| color: #ffffff; | |
| background: #141516; | |
| border: none; | |
| border-radius: 50px; | |
| cursor: pointer; | |
| overflow: hidden; | |
| box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.1); | |
| font-weight: 600; | |
| letter-spacing: 0.8px; | |
| text-shadow: 0 2px 4px rgba(0, 0, 0, 0.4); | |
| } | |
| .glow-button::before { | |
| content: ''; | |
| position: absolute; | |
| left: -2px; | |
| top: -2px; | |
| right: -2px; | |
| bottom: -2px; | |
| border-radius: 50px; | |
| background: linear-gradient( | |
| 90deg, | |
| #FF8A00, | |
| #e52e71, | |
| #FF8A00, | |
| #e52e71 | |
| ); | |
| background-size: 300% 100%; | |
| z-index: -2; | |
| } | |
| .glow-button::after { | |
| content: ''; | |
| position: absolute; | |
| inset: 2px; | |
| border-radius: 48px; | |
| background: #141516; | |
| z-index: -1; | |
| } | |
| .glow-button:hover::before { | |
| animation: borderRotate 2s linear infinite; | |
| } | |
| @keyframes borderRotate { | |
| from { | |
| background-position: 0% center; | |
| } | |
| to { | |
| background-position: 200% center; | |
| } | |
| } | |
| /* Update text colors and styles */ | |
| h1 { | |
| color: #ffffff; | |
| font-family: 'Space Grotesk', sans-serif; | |
| font-size: 2.5rem; | |
| font-weight: 700; | |
| text-shadow: 0 2px 8px rgba(0, 0, 0, 0.5); | |
| letter-spacing: 0.5px; | |
| } | |
| h2 { | |
| color: #e0e0ff; | |
| font-family: 'Space Grotesk', sans-serif; | |
| font-size: 1.8rem; | |
| margin-top: 2rem; | |
| margin-bottom: 1rem; | |
| text-shadow: 0 2px 4px rgba(0, 0, 0, 0.4); | |
| letter-spacing: 0.3px; | |
| font-weight: 600; | |
| background: linear-gradient(90deg, #ffffff, #e0e0ff); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| display: inline-block; | |
| } | |
| /* Update container background for better contrast */ | |
| .container { | |
| background: rgba(10, 12, 25, 0.85); | |
| box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.5); | |
| } | |
| /* Update text-box for better readability */ | |
| .text-box { | |
| background: rgba(15, 15, 25, 0.7); | |
| border: 1px solid rgba(255, 255, 255, 0.15); | |
| color: #E0E0FF ; | |
| font-size: 1.1rem; | |
| line-height: 1.6; | |
| letter-spacing: 0.2px; | |
| text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); | |
| font-family: 'Space Grotesk', sans-serif; | |
| } | |
| /* Update the text sections for better contrast */ | |
| #text-section h2, | |
| #processed-section h2, | |
| #augmented-section h2 { | |
| position: relative; | |
| padding-left: 0.5rem; | |
| } | |
| #text-section h2::before, | |
| #processed-section h2::before, | |
| #augmented-section h2::before { | |
| content: ''; | |
| position: absolute; | |
| left: -5px; | |
| top: 50%; | |
| transform: translateY(-50%); | |
| width: 3px; | |
| height: 70%; | |
| background: linear-gradient(180deg, #FF8A00, #e52e71); | |
| border-radius: 2px; | |
| } | |
| /* Add new styles for the reset button */ | |
| #reset-btn { | |
| background: linear-gradient(90deg, #FF416C, #FF4B2B); | |
| text-transform: uppercase; | |
| letter-spacing: 1px; | |
| box-shadow: 0 4px 15px rgba(255, 65, 108, 0.3); | |
| margin: 2rem auto; | |
| display: block; | |
| width: fit-content; | |
| } | |
| #reset-btn:hover { | |
| background: linear-gradient(90deg, #FF4B2B, #FF416C); | |
| box-shadow: 0 6px 20px rgba(255, 65, 108, 0.4); | |
| } | |
| /* Update container to handle centered button */ | |
| .container { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: stretch; | |
| min-height: 400px; | |
| } | |
| /* Style the Process Data and Augment Data buttons */ | |
| #process-btn, #decode-btn { | |
| /* Remove all individual styles as they're handled by .btn class */ | |
| } | |
| /* Update section headings */ | |
| h2 { | |
| color: #E0E0FF ; | |
| font-family: 'Space Grotesk', sans-serif; | |
| font-size: 1.8rem; | |
| margin-top: 2rem; | |
| text-shadow: 0 2px 4px rgba(0, 0, 0, 0.4); | |
| font-weight: 600; | |
| background: none; | |
| -webkit-text-fill-color: #E0E0FF; | |
| } | |
| /* Description section styles */ | |
| .description-section { | |
| text-align: center; | |
| margin: 2rem auto; | |
| max-width: 800px; | |
| padding: 2rem; | |
| background: rgba(255, 255, 255, 0.05); | |
| border-radius: 15px; | |
| backdrop-filter: blur(10px); | |
| border: 1px solid rgba(255, 255, 255, 0.1); | |
| } | |
| .description-text { | |
| color: #E0E0FF; | |
| font-size: 1.2rem; | |
| margin-bottom: 2rem; | |
| font-family: 'Space Grotesk', sans-serif; | |
| text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); | |
| } | |
| .supported-types { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); | |
| gap: 1.5rem; | |
| text-align: left; | |
| } | |
| .type-item { | |
| padding: 1rem; | |
| background: rgba(255, 255, 255, 0.05); | |
| border-radius: 10px; | |
| border: 1px solid rgba(255, 255, 255, 0.1); | |
| transition: all 0.3s ease; | |
| cursor: pointer; | |
| } | |
| .type-header { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.5rem; | |
| } | |
| .type-item:hover { | |
| transform: translateY(-2px); | |
| background: rgba(255, 255, 255, 0.08); | |
| } | |
| .type-title { | |
| color: #ffffff; | |
| font-size: 1.1rem; | |
| font-weight: 600; | |
| font-family: 'Space Grotesk', sans-serif; | |
| } | |
| .type-desc { | |
| color: #E0E0FF; | |
| font-size: 0.9rem; | |
| opacity: 0.9; | |
| font-family: 'Space Grotesk', sans-serif; | |
| } | |
| /* Sample buttons inside type-item */ | |
| .type-item .sample-buttons { | |
| margin-top: 1rem; | |
| padding-top: 1rem; | |
| border-top: 1px solid rgba(255, 255, 255, 0.1); | |
| display: flex; | |
| gap: 0.5rem; | |
| justify-content: center; | |
| } | |
| .type-item .sample-btn { | |
| padding: 0.5rem 1rem; | |
| background: rgba(255, 255, 255, 0.1); | |
| border: 1px solid rgba(255, 255, 255, 0.2); | |
| border-radius: 8px; | |
| color: #ffffff; | |
| font-family: 'Space Grotesk', sans-serif; | |
| cursor: pointer; | |
| transition: all 0.3s ease; | |
| } | |
| .type-item .sample-btn:hover { | |
| background: rgba(255, 255, 255, 0.2); | |
| transform: translateY(-1px); | |
| } | |
| /* Animation for sample buttons */ | |
| @keyframes slideDown { | |
| from { | |
| opacity: 0; | |
| transform: translateY(-10px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| .sample-buttons.show { | |
| display: flex; | |
| animation: slideDown 0.3s ease-out; | |
| } | |
| /* Operation description styles */ | |
| .operation-description { | |
| margin: 1rem 0; | |
| padding: 1rem; | |
| background: rgba(74, 0, 224, 0.1); | |
| border-left: 4px solid #4A00E0; | |
| border-radius: 0 8px 8px 0; | |
| color: #E0E0FF; | |
| font-family: 'Space Grotesk', sans-serif; | |
| font-size: 0.95rem; | |
| line-height: 1.5; | |
| animation: slideDown 0.3s ease-out; | |
| } | |
| .operation-description ul { | |
| margin: 0.5rem 0 0 1.2rem; | |
| } | |
| .operation-description li { | |
| margin: 0.3rem 0; | |
| } | |
| @keyframes slideDown { | |
| from { | |
| opacity: 0; | |
| transform: translateY(-10px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| /* Add these styles to your existing CSS */ | |
| .sample-section { | |
| text-align: center; | |
| padding: 1rem 0; | |
| } | |
| .sample-section h3 { | |
| color: #ffffff; | |
| font-family: 'Space Grotesk', sans-serif; | |
| margin-bottom: 1.5rem; | |
| font-size: 1.3rem; | |
| font-weight: 600; | |
| text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); | |
| } | |
| .sample-buttons { | |
| display: flex; | |
| gap: 1.5rem; | |
| justify-content: center; | |
| margin: 1.5rem 0; | |
| } | |
| .sample-btn { | |
| padding: 8px 16px; | |
| background: linear-gradient(to bottom, #ffffff 0%, #f3f3f3 100%); | |
| border: 1px solid #ccc; | |
| border-radius: 4px; | |
| color: #333333; | |
| font-family: 'Space Grotesk', sans-serif; | |
| font-size: 0.9rem; | |
| font-weight: 400; | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); | |
| } | |
| .sample-btn:hover { | |
| background: linear-gradient(to bottom, #f3f3f3 0%, #e6e6e6 100%); | |
| border-color: #adadad; | |
| transform: translateY(0); | |
| box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); | |
| } | |
| .sample-btn:active { | |
| background: #e6e6e6; | |
| border-color: #adadad; | |
| box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); | |
| transform: translateY(1px); | |
| } | |
| .sample-description { | |
| color: #E0E0FF; | |
| font-size: 0.9rem; | |
| opacity: 0.8; | |
| margin-top: 1rem; | |
| } | |
| /* Add these new styles */ | |
| .input-section { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| gap: 1rem; | |
| margin: 2rem 0; | |
| } | |
| .sample-section { | |
| background: rgba(255, 255, 255, 0.1); | |
| padding: 1.5rem; | |
| border-radius: 8px; | |
| } | |
| .sample-section h3 { | |
| color: #ffffff; | |
| font-family: 'Space Grotesk', sans-serif; | |
| margin-bottom: 1rem; | |
| font-size: 1.2rem; | |
| } | |
| .sample-buttons { | |
| display: flex; | |
| gap: 0.5rem; | |
| justify-content: center; | |
| margin: 1rem 0; | |
| } | |
| .separator { | |
| display: flex; | |
| align-items: center; | |
| text-align: center; | |
| margin: 1rem 0; | |
| } | |
| .separator::before, | |
| .separator::after { | |
| content: ''; | |
| flex: 1; | |
| border-bottom: 1px solid rgba(255, 255, 255, 0.2); | |
| margin: 0 1.5rem; | |
| } | |
| .separator span { | |
| font-size: 1rem; | |
| color: rgba(255, 255, 255, 0.6); | |
| font-family: 'Space Grotesk', sans-serif; | |
| text-transform: uppercase; | |
| letter-spacing: 1px; | |
| } | |
| #upload-section { | |
| margin-top: 1rem; | |
| text-align: center; | |
| } | |
| /* Update existing styles */ | |
| .type-item { | |
| cursor: default; | |
| } | |
| .type-item:hover { | |
| transform: none; | |
| } | |
| /* New glow-on-hover effect for sample buttons */ | |
| .glow-on-hover { | |
| /* Remove these styles as they're no longer needed */ | |
| } | |
| /* Add styles for decode button */ | |
| /* #decode-btn { | |
| background: linear-gradient(90deg, #4A00E0, #8E2DE2); | |
| border: none; | |
| color: white; | |
| padding: 12px 30px; | |
| border-radius: 50px; | |
| font-weight: 600; | |
| margin: 1rem 0; | |
| box-shadow: 0 4px 15px rgba(74, 0, 224, 0.3); | |
| } | |
| #decode-btn:hover { | |
| background: linear-gradient(90deg, #8E2DE2, #4A00E0); | |
| transform: translateY(-2px); | |
| box-shadow: 0 6px 20px rgba(74, 0, 224, 0.4); | |
| } */ | |
| /* Update section styles to include decoded section */ | |
| #decoded-section { | |
| margin-top: 2rem; | |
| } | |
| #decoded-section h2 { | |
| color: #E0E0FF; | |
| } | |
| /* Style both Process Text and Decode Tokens buttons consistently */ | |
| #process-btn, #decode-btn { | |
| background: linear-gradient(90deg, #4A00E0, #8E2DE2); | |
| border: none; | |
| color: white; | |
| padding: 12px 30px; | |
| border-radius: 50px; | |
| font-family: 'Space Grotesk', sans-serif; | |
| font-size: 1rem; | |
| font-weight: 600; | |
| margin: 1rem 0; | |
| box-shadow: 0 4px 15px rgba(74, 0, 224, 0.3); | |
| cursor: pointer; | |
| transition: all 0.3s ease; | |
| } | |
| #process-btn:hover, #decode-btn:hover { | |
| background: linear-gradient(90deg, #8E2DE2, #4A00E0); | |
| transform: translateY(-2px); | |
| box-shadow: 0 6px 20px rgba(74, 0, 224, 0.4); | |
| } | |
| #process-btn:active, #decode-btn:active { | |
| transform: translateY(1px); | |
| } | |
| /* Create a new class specifically for these action buttons */ | |
| .action-btn { | |
| background: linear-gradient(90deg, #4A00E0, #8E2DE2); | |
| border: none; | |
| color: white; | |
| padding: 12px 30px; | |
| border-radius: 50px; | |
| font-family: 'Space Grotesk', sans-serif; | |
| font-size: 1rem; | |
| font-weight: 600; | |
| margin: 1rem 0; | |
| box-shadow: 0 4px 15px rgba(74, 0, 224, 0.3); | |
| cursor: pointer; | |
| transition: all 0.3s ease; | |
| display: inline-block; | |
| } | |
| .action-btn:hover { | |
| background: linear-gradient(90deg, #8E2DE2, #4A00E0); | |
| transform: translateY(-2px); | |
| box-shadow: 0 6px 20px rgba(74, 0, 224, 0.4); | |
| } | |
| .action-btn:active { | |
| transform: translateY(1px); | |
| } | |
| /* Remove any individual button styles */ | |
| #process-btn, #decode-btn { | |
| /* Remove all individual styles */ | |
| } |