Spaces:
Sleeping
Sleeping
| @import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700;900&family=Space+Mono:wght@400;700&display=swap'); | |
| :root { | |
| --bg-night: #090511; | |
| --bg-deep: #150b2e; | |
| --panel: rgba(18, 10, 38, 0.75); | |
| --panel-border: rgba(255, 67, 176, 0.4); | |
| --panel-glow: 0 0 42px rgba(255, 67, 176, 0.24); | |
| --text-main: #f4deff; | |
| --text-soft: #c89cff; | |
| --neon-pink: #ff3fb0; | |
| --neon-cyan: #3ef4ff; | |
| --neon-blue: #55a4ff; | |
| --neon-violet: #8b40ff; | |
| --neon-green: #8affc7; | |
| --danger: #ff5f7a; | |
| --keyboard-white-top: #fef0ff; | |
| --keyboard-white-bottom: #f1d6ff; | |
| --keyboard-black-top: #321355; | |
| --keyboard-black-bottom: #120727; | |
| --radius-l: 20px; | |
| --radius-m: 14px; | |
| --radius-s: 10px; | |
| } | |
| * { | |
| box-sizing: border-box; | |
| } | |
| html, | |
| body { | |
| width: 100%; | |
| min-height: 100%; | |
| max-width: 100%; | |
| overflow-x: clip; | |
| background-color: var(--bg-night); | |
| } | |
| gradio-app, | |
| .gradio-container, | |
| .gradio-container .main, | |
| .gradio-container .contain, | |
| .gradio-container .wrap { | |
| background: transparent ; | |
| } | |
| .gradio-container { | |
| max-width: 100% ; | |
| } | |
| body { | |
| margin: 0; | |
| min-height: 100vh; | |
| position: relative; | |
| overflow-x: clip; | |
| color: var(--text-main); | |
| font-family: 'Space Mono', monospace; | |
| background: | |
| radial-gradient(1000px 500px at 10% -5%, rgba(139, 64, 255, 0.35), transparent 60%), | |
| radial-gradient(800px 480px at 100% 0%, rgba(62, 244, 255, 0.2), transparent 60%), | |
| linear-gradient(175deg, var(--bg-night), var(--bg-deep)); | |
| } | |
| body::before, | |
| body::after { | |
| content: ''; | |
| position: fixed; | |
| inset: 0; | |
| pointer-events: none; | |
| z-index: 0; | |
| } | |
| body::before { | |
| background: | |
| radial-gradient(circle at 50% 12%, rgba(255, 112, 190, 0.22) 0 18%, transparent 42%), | |
| repeating-linear-gradient( | |
| 90deg, | |
| rgba(62, 244, 255, 0.06) 0 2px, | |
| transparent 2px 90px | |
| ); | |
| opacity: 0.9; | |
| animation: skyPulse 7s ease-in-out infinite alternate; | |
| } | |
| body::after { | |
| top: 52%; | |
| height: 62%; | |
| background: | |
| linear-gradient(180deg, rgba(139, 64, 255, 0.08), rgba(9, 5, 17, 0.8)), | |
| repeating-linear-gradient( | |
| 0deg, | |
| rgba(62, 244, 255, 0.15) 0 2px, | |
| transparent 2px 28px | |
| ), | |
| repeating-linear-gradient( | |
| 90deg, | |
| rgba(255, 63, 176, 0.18) 0 1px, | |
| transparent 1px 62px | |
| ); | |
| transform-origin: top center; | |
| transform: perspective(650px) rotateX(62deg); | |
| animation: gridRush 9s linear infinite; | |
| } | |
| .app-shell { | |
| max-width: 1360px; | |
| margin: 0 auto; | |
| padding: 20px 18px 30px; | |
| position: relative; | |
| z-index: 1; | |
| overflow-x: clip; | |
| } | |
| .app-shell::before { | |
| content: ''; | |
| position: absolute; | |
| left: 0; | |
| right: 0; | |
| top: 118px; | |
| height: 120px; | |
| background: | |
| radial-gradient(closest-side, rgba(62, 244, 255, 0.42), transparent 72%), | |
| radial-gradient(closest-side, rgba(255, 63, 176, 0.36), transparent 76%); | |
| filter: blur(22px); | |
| opacity: 0.6; | |
| animation: waveDrift 6.5s ease-in-out infinite; | |
| transform: scaleX(1.15); | |
| pointer-events: none; | |
| } | |
| .welcome-header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| margin-bottom: 18px; | |
| position: relative; | |
| } | |
| .welcome-header h1 { | |
| font-size: 3.2rem; | |
| font-weight: 900; | |
| margin: 0 0 12px 0; | |
| letter-spacing: 3px; | |
| font-family: 'Orbitron', monospace; | |
| } | |
| .welcome-header .synth { | |
| color: var(--neon-cyan); | |
| text-shadow: 0 0 20px rgba(62, 244, 255, 0.8), 0 0 40px rgba(62, 244, 255, 0.5); | |
| } | |
| .welcome-header .ia { | |
| color: #da00ff; | |
| text-shadow: 0 0 20px rgba(218, 0, 255, 0.8), 0 0 40px rgba(218, 0, 255, 0.5); | |
| font-style: italic; | |
| font-weight: 700; | |
| } | |
| .welcome-header::after { | |
| content: ''; | |
| position: absolute; | |
| left: 50%; | |
| bottom: -14px; | |
| width: min(640px, 88%); | |
| height: 10px; | |
| transform: translateX(-50%); | |
| background: | |
| radial-gradient(circle at 10% 50%, rgba(62, 244, 255, 0.7), transparent 35%), | |
| radial-gradient(circle at 50% 50%, rgba(255, 63, 176, 0.65), transparent 34%), | |
| radial-gradient(circle at 90% 50%, rgba(139, 64, 255, 0.7), transparent 35%); | |
| filter: blur(8px); | |
| border-radius: 999px; | |
| animation: waveDrift 5.8s ease-in-out infinite; | |
| } | |
| .eyebrow { | |
| margin: 0 0 8px; | |
| text-transform: uppercase; | |
| letter-spacing: 0.24em; | |
| font-size: 11px; | |
| color: var(--neon-cyan); | |
| text-shadow: 0 0 12px rgba(62, 244, 255, 0.7); | |
| } | |
| .logo-wrap { | |
| width: min(700px, 96%); | |
| margin: 0 auto 2px; | |
| padding: 0; | |
| border: 0; | |
| background: none; | |
| box-shadow: none; | |
| } | |
| .logo-image { | |
| display: block; | |
| width: 100%; | |
| max-height: 186px; | |
| object-fit: contain; | |
| filter: | |
| drop-shadow(0 0 8px rgba(255, 63, 176, 0.72)) | |
| drop-shadow(0 0 26px rgba(62, 244, 255, 0.52)) | |
| drop-shadow(0 0 50px rgba(139, 64, 255, 0.42)); | |
| animation: logoFloat 4.2s ease-in-out infinite; | |
| } | |
| .welcome-text { | |
| max-width: 900px; | |
| margin: 20px auto; | |
| padding: 0 20px; | |
| text-align: left; | |
| } | |
| .welcome-intro { | |
| font-size: clamp(1.3rem, 3vw, 1.7rem); | |
| color: var(--text-main); | |
| text-align: center; | |
| margin-bottom: 24px; | |
| line-height: 1.6; | |
| } | |
| .features-guide { | |
| background: rgba(0, 0, 0, 0.3); | |
| border: 1px solid rgba(255, 63, 176, 0.2); | |
| border-radius: 12px; | |
| padding: 20px 24px; | |
| margin-top: 16px; | |
| } | |
| .features-guide h3 { | |
| margin: 0 0 14px 0; | |
| color: var(--neon-cyan); | |
| font-size: 1.2rem; | |
| text-transform: uppercase; | |
| letter-spacing: 0.08em; | |
| text-shadow: 0 0 10px rgba(62, 244, 255, 0.6); | |
| } | |
| .features-list { | |
| margin: 0; | |
| padding: 0 0 0 20px; | |
| list-style: none; | |
| } | |
| .features-list li { | |
| margin-bottom: 10px; | |
| color: var(--text-soft); | |
| font-size: clamp(0.88rem, 2vw, 0.98rem); | |
| line-height: 1.5; | |
| position: relative; | |
| } | |
| .features-list li::before { | |
| content: '▸'; | |
| position: absolute; | |
| left: -20px; | |
| color: var(--neon-magenta); | |
| text-shadow: 0 0 8px rgba(255, 63, 176, 0.7); | |
| } | |
| .features-list li strong { | |
| color: var(--neon-magenta); | |
| font-weight: 600; | |
| text-shadow: 0 0 6px rgba(255, 63, 176, 0.4); | |
| } | |
| .sub-list { | |
| margin: 8px 0 0 20px; | |
| padding: 0 0 0 20px; | |
| list-style: none; | |
| color: var(--text-soft); | |
| font-size: 0.95em; | |
| } | |
| .sub-list li { | |
| margin-bottom: 5px; | |
| padding-left: 0; | |
| } | |
| .sub-list li::before { | |
| content: '○'; | |
| position: absolute; | |
| left: -20px; | |
| color: var(--neon-cyan); | |
| text-shadow: 0 0 6px rgba(62, 244, 255, 0.5); | |
| font-weight: bold; | |
| } | |
| .sub-list li em { | |
| color: var(--neon-cyan); | |
| font-style: italic; | |
| text-shadow: 0 0 4px rgba(62, 244, 255, 0.3); | |
| } | |
| .subtitle { | |
| margin: 4px 0 0; | |
| color: var(--text-soft); | |
| font-size: clamp(0.92rem, 2.2vw, 1.04rem); | |
| } | |
| #mainContainer { | |
| display: grid; | |
| grid-template-columns: minmax(0, 1fr); | |
| gap: 20px; | |
| } | |
| .card { | |
| background: var(--panel); | |
| border: 1px solid var(--panel-border); | |
| border-radius: var(--radius-l); | |
| box-shadow: | |
| var(--panel-glow), | |
| inset 0 0 20px rgba(139, 64, 255, 0.17), | |
| 0 0 0 1px rgba(62, 244, 255, 0.12); | |
| backdrop-filter: blur(6px); | |
| } | |
| .keyboard-section { | |
| padding: 18px; | |
| } | |
| #keyboard { | |
| display: flex; | |
| justify-content: center; | |
| width: 100%; | |
| padding: 20px 14px; | |
| border-radius: 16px; | |
| border: 1px solid rgba(62, 244, 255, 0.38); | |
| background: | |
| linear-gradient(180deg, rgba(21, 10, 43, 0.92), rgba(10, 4, 23, 0.92)), | |
| radial-gradient(circle at 50% 0, rgba(62, 244, 255, 0.14), transparent 60%); | |
| box-shadow: | |
| inset 0 0 20px rgba(62, 244, 255, 0.16), | |
| 0 0 22px rgba(62, 244, 255, 0.2), | |
| 0 0 34px rgba(255, 63, 176, 0.18); | |
| user-select: none; | |
| touch-action: none; | |
| overflow-x: auto; | |
| } | |
| .key { | |
| width: 44px; | |
| height: 190px; | |
| margin: 0 1px; | |
| border: 1px solid rgba(255, 63, 176, 0.45); | |
| border-bottom-width: 4px; | |
| border-radius: 0 0 11px 11px; | |
| background: linear-gradient(180deg, var(--keyboard-white-top), var(--keyboard-white-bottom)); | |
| position: relative; | |
| display: flex; | |
| align-items: flex-end; | |
| justify-content: center; | |
| cursor: pointer; | |
| color: #51176e; | |
| font-size: 11px; | |
| font-weight: 700; | |
| transition: transform 120ms ease, box-shadow 120ms ease, filter 120ms ease; | |
| } | |
| .key:hover { | |
| transform: translateY(1px); | |
| box-shadow: inset 0 -5px 12px rgba(255, 63, 176, 0.16); | |
| } | |
| .key.black { | |
| width: 30px; | |
| height: 118px; | |
| margin-left: -15px; | |
| margin-right: -15px; | |
| z-index: 3; | |
| border-radius: 0 0 9px 9px; | |
| border-color: rgba(62, 244, 255, 0.55); | |
| border-bottom-width: 3px; | |
| background: linear-gradient(180deg, var(--keyboard-black-top), var(--keyboard-black-bottom)); | |
| color: #bdf6ff; | |
| box-shadow: 0 6px 10px rgba(0, 0, 0, 0.55); | |
| } | |
| .key.black:hover { | |
| box-shadow: 0 0 16px rgba(62, 244, 255, 0.4); | |
| } | |
| .key .shortcut-hint { | |
| display: block; | |
| opacity: 0; | |
| font-size: 10px; | |
| color: var(--neon-violet); | |
| text-shadow: 0 0 9px rgba(139, 64, 255, 0.8); | |
| transition: opacity 160ms ease; | |
| } | |
| .key.black .shortcut-hint { | |
| color: var(--neon-cyan); | |
| text-shadow: 0 0 9px rgba(62, 244, 255, 0.95); | |
| } | |
| .shortcuts-visible .key .shortcut-hint { | |
| opacity: 1; | |
| } | |
| .keyboard-toggle-row { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| margin-top: 10px; | |
| margin-bottom: 2px; | |
| gap: 12px; | |
| } | |
| .tooltip-display-area { | |
| padding: 8px 12px; | |
| margin-top: 8px; | |
| background: rgba(62, 244, 255, 0.1); | |
| border: 1px solid rgba(62, 244, 255, 0.4); | |
| border-radius: var(--radius-s); | |
| color: var(--neon-cyan); | |
| font-size: 12px; | |
| min-height: 20px; | |
| display: flex; | |
| align-items: center; | |
| text-shadow: 0 0 8px rgba(62, 244, 255, 0.5); | |
| box-shadow: 0 0 12px rgba(62, 244, 255, 0.15); | |
| } | |
| .keyboard-toggle-pill { | |
| position: relative; | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 10px; | |
| padding: 8px 12px; | |
| border-radius: 999px; | |
| border: 1px solid rgba(62, 244, 255, 0.36); | |
| background: linear-gradient(160deg, rgba(22, 10, 46, 0.9), rgba(10, 6, 26, 0.92)); | |
| box-shadow: | |
| 0 0 16px rgba(62, 244, 255, 0.16), | |
| inset 0 0 12px rgba(255, 63, 176, 0.12); | |
| cursor: pointer; | |
| user-select: none; | |
| } | |
| .keyboard-toggle-pill input[type='checkbox'] { | |
| position: absolute; | |
| opacity: 0; | |
| width: 0; | |
| height: 0; | |
| margin: 0; | |
| } | |
| .toggle-track { | |
| position: relative; | |
| width: 44px; | |
| height: 24px; | |
| border-radius: 999px; | |
| border: 1px solid rgba(255, 63, 176, 0.5); | |
| background: rgba(10, 8, 25, 0.95); | |
| box-shadow: inset 0 0 8px rgba(255, 63, 176, 0.22); | |
| transition: background 140ms ease, border-color 140ms ease, box-shadow 140ms ease; | |
| } | |
| .toggle-track::before { | |
| content: ''; | |
| position: absolute; | |
| top: 2px; | |
| left: 2px; | |
| width: 18px; | |
| height: 18px; | |
| border-radius: 50%; | |
| background: linear-gradient(180deg, #ff77d0, #ff3fb0); | |
| box-shadow: 0 0 10px rgba(255, 63, 176, 0.6); | |
| transition: transform 140ms ease, background 140ms ease, box-shadow 140ms ease; | |
| } | |
| .keyboard-toggle-pill input[type='checkbox']:checked + .toggle-track { | |
| border-color: rgba(62, 244, 255, 0.8); | |
| background: linear-gradient(90deg, rgba(255, 63, 176, 0.32), rgba(62, 244, 255, 0.38)); | |
| box-shadow: | |
| inset 0 0 10px rgba(62, 244, 255, 0.3), | |
| 0 0 14px rgba(62, 244, 255, 0.25); | |
| } | |
| .keyboard-toggle-pill input[type='checkbox']:checked + .toggle-track::before { | |
| transform: translateX(20px); | |
| background: linear-gradient(180deg, #9ffcff, #3ef4ff); | |
| box-shadow: 0 0 11px rgba(62, 244, 255, 0.8); | |
| } | |
| .keyboard-toggle-pill input[type='checkbox']:focus-visible + .toggle-track { | |
| outline: 2px solid rgba(62, 244, 255, 0.75); | |
| outline-offset: 2px; | |
| } | |
| .toggle-text { | |
| color: #d9e3ff; | |
| font-size: 12px; | |
| font-weight: 700; | |
| letter-spacing: 0.02em; | |
| text-shadow: 0 0 8px rgba(62, 244, 255, 0.25); | |
| } | |
| .controls { | |
| margin-top: 16px; | |
| padding: 16px; | |
| border-radius: var(--radius-m); | |
| border: 1px solid rgba(62, 244, 255, 0.35); | |
| background: rgba(11, 6, 24, 0.72); | |
| } | |
| .control-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(165px, 1fr)); | |
| gap: 10px; | |
| } | |
| .primary-control-grid { | |
| grid-template-columns: repeat(4, minmax(150px, 1fr)); | |
| } | |
| .advanced-settings { | |
| margin-top: 12px; | |
| border-radius: var(--radius-s); | |
| border: 1px solid rgba(62, 244, 255, 0.34); | |
| background: linear-gradient(160deg, rgba(18, 11, 37, 0.85), rgba(10, 6, 24, 0.92)); | |
| box-shadow: | |
| inset 0 0 12px rgba(62, 244, 255, 0.08), | |
| 0 0 20px rgba(62, 244, 255, 0.12); | |
| } | |
| .advanced-settings > summary { | |
| list-style: none; | |
| cursor: pointer; | |
| user-select: none; | |
| padding: 11px 14px; | |
| color: var(--neon-cyan); | |
| font-family: 'Orbitron', sans-serif; | |
| font-size: 12px; | |
| letter-spacing: 0.08em; | |
| text-transform: uppercase; | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| } | |
| .advanced-settings > summary::-webkit-details-marker { | |
| display: none; | |
| } | |
| .advanced-settings > summary::after { | |
| content: '▾'; | |
| color: #ff8fd5; | |
| font-size: 14px; | |
| transition: transform 120ms ease; | |
| } | |
| .advanced-settings[open] > summary::after { | |
| transform: rotate(180deg); | |
| } | |
| .advanced-settings-body { | |
| padding: 10px; | |
| border-top: 1px solid rgba(255, 63, 176, 0.25); | |
| } | |
| .advanced-control-grid { | |
| grid-template-columns: repeat(auto-fit, minmax(165px, 1fr)); | |
| } | |
| .control-item { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 7px; | |
| padding: 10px; | |
| border-radius: var(--radius-s); | |
| border: 1px solid rgba(255, 63, 176, 0.32); | |
| background: linear-gradient(160deg, rgba(31, 15, 62, 0.88), rgba(16, 8, 34, 0.9)); | |
| color: #f5d4ff; | |
| font-size: 12px; | |
| font-weight: 700; | |
| letter-spacing: 0.01em; | |
| position: relative; | |
| } | |
| .control-item-toggle { | |
| flex-direction: row; | |
| align-items: center; | |
| justify-content: flex-start; | |
| gap: 10px; | |
| font-size: 13px; | |
| } | |
| .btn-tooltip-wrapper { | |
| position: relative; | |
| display: inline-block; | |
| } | |
| .btn-tooltip { | |
| display: none; | |
| position: absolute; | |
| bottom: 100%; | |
| left: 50%; | |
| transform: translateX(-50%); | |
| margin-bottom: 6px; | |
| padding: 8px 12px; | |
| background: rgba(62, 244, 255, 0.15); | |
| border: 1px solid rgba(62, 244, 255, 0.6); | |
| border-radius: var(--radius-s); | |
| color: var(--neon-cyan); | |
| font-size: 12px; | |
| white-space: nowrap; | |
| z-index: 100; | |
| box-shadow: 0 0 20px rgba(62, 244, 255, 0.3); | |
| text-shadow: 0 0 8px rgba(62, 244, 255, 0.5); | |
| pointer-events: none; | |
| } | |
| .btn-tooltip-wrapper:hover .btn-tooltip { | |
| display: block; | |
| animation: tooltipAppear 0.2s ease-out; | |
| } | |
| .runtime-tooltip.show { | |
| display: block; | |
| animation: tooltipAppear 0.2s ease-out; | |
| } | |
| @keyframes tooltipAppear { | |
| from { | |
| opacity: 0; | |
| transform: translateX(-50%) translateY(4px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateX(-50%) translateY(0); | |
| } | |
| } | |
| select, | |
| button { | |
| font-family: 'Space Mono', monospace; | |
| } | |
| select { | |
| width: 100%; | |
| padding: 8px 10px; | |
| border: 1px solid rgba(62, 244, 255, 0.42); | |
| border-radius: 9px; | |
| background: rgba(10, 6, 22, 0.92); | |
| color: var(--neon-cyan); | |
| font-size: 13px; | |
| } | |
| select:focus, | |
| button:focus, | |
| input[type='checkbox']:focus { | |
| outline: 2px solid rgba(62, 244, 255, 0.6); | |
| outline-offset: 1px; | |
| } | |
| input[type='checkbox'] { | |
| -webkit-appearance: none; | |
| appearance: none; | |
| width: 20px; | |
| height: 20px; | |
| border-radius: 5px; | |
| border: 2px solid var(--neon-pink); | |
| background: rgba(11, 6, 24, 0.95); | |
| position: relative; | |
| cursor: pointer; | |
| box-shadow: inset 0 0 8px rgba(255, 63, 176, 0.2); | |
| } | |
| input[type='checkbox']::after { | |
| content: ''; | |
| position: absolute; | |
| left: 5px; | |
| top: 1px; | |
| width: 5px; | |
| height: 10px; | |
| border: solid var(--neon-cyan); | |
| border-width: 0 2px 2px 0; | |
| transform: rotate(45deg) scale(0); | |
| transition: transform 90ms ease; | |
| filter: drop-shadow(0 0 5px rgba(62, 244, 255, 0.8)); | |
| } | |
| input[type='checkbox']:checked { | |
| background: rgba(255, 63, 176, 0.26); | |
| box-shadow: | |
| inset 0 0 10px rgba(255, 63, 176, 0.6), | |
| 0 0 10px rgba(255, 63, 176, 0.45); | |
| } | |
| input[type='checkbox']:checked::after { | |
| transform: rotate(45deg) scale(1); | |
| } | |
| .action-row { | |
| margin-top: 14px; | |
| display: flex; | |
| flex-wrap: wrap; | |
| align-items: center; | |
| gap: 8px; | |
| } | |
| .btn { | |
| border: 0; | |
| border-radius: 10px; | |
| padding: 9px 14px; | |
| font-size: 13px; | |
| font-weight: 700; | |
| color: #fff; | |
| cursor: pointer; | |
| transition: transform 120ms ease, box-shadow 120ms ease, opacity 120ms ease; | |
| text-shadow: 0 0 8px rgba(0, 0, 0, 0.45); | |
| } | |
| .btn:hover:not(:disabled) { | |
| transform: translateY(-1px); | |
| filter: saturate(1.1) brightness(1.08); | |
| } | |
| .btn:disabled { | |
| opacity: 0.42; | |
| cursor: not-allowed; | |
| } | |
| .btn-primary { | |
| background: linear-gradient(180deg, #ff4fbd, #d42f8e); | |
| box-shadow: 0 0 18px rgba(255, 79, 189, 0.45); | |
| } | |
| .btn-secondary { | |
| background: linear-gradient(180deg, #5464ff, #383fbc); | |
| box-shadow: 0 0 15px rgba(84, 100, 255, 0.38); | |
| } | |
| .btn-game { | |
| background: linear-gradient(180deg, #43d3ff, #2f9bff); | |
| color: #041322; | |
| text-shadow: none; | |
| box-shadow: 0 0 18px rgba(67, 211, 255, 0.45); | |
| } | |
| .btn-danger { | |
| background: linear-gradient(180deg, #ff6688, #e9385f); | |
| box-shadow: 0 0 18px rgba(255, 102, 136, 0.42); | |
| } | |
| #status { | |
| margin-left: auto; | |
| padding: 8px 12px; | |
| border-radius: 999px; | |
| border: 1px solid rgba(62, 244, 255, 0.6); | |
| background: rgba(10, 9, 28, 0.8); | |
| color: var(--neon-green); | |
| text-shadow: 0 0 8px rgba(138, 255, 199, 0.75); | |
| font-size: 12px; | |
| font-weight: 700; | |
| } | |
| .monitor-section { | |
| overflow: hidden; | |
| } | |
| .turn-grid-section { | |
| overflow: hidden; | |
| } | |
| .turn-grid-header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 12px; | |
| padding: 12px 14px; | |
| border-bottom: 1px solid rgba(255, 63, 176, 0.28); | |
| background: | |
| linear-gradient(180deg, rgba(40, 17, 78, 0.86), rgba(18, 8, 36, 0.78)), | |
| radial-gradient(circle at 14% 30%, rgba(62, 244, 255, 0.16), transparent 48%); | |
| } | |
| .turn-grid-header h4 { | |
| margin: 0; | |
| font-family: 'Orbitron', sans-serif; | |
| font-size: 14px; | |
| letter-spacing: 0.1em; | |
| color: var(--neon-cyan); | |
| text-shadow: 0 0 12px rgba(62, 244, 255, 0.75); | |
| } | |
| #gridPhaseBadge { | |
| border-radius: 999px; | |
| padding: 6px 10px; | |
| border: 1px solid rgba(255, 63, 176, 0.5); | |
| background: rgba(10, 8, 23, 0.82); | |
| color: #f9d0ff; | |
| font-size: 11px; | |
| letter-spacing: 0.05em; | |
| text-transform: uppercase; | |
| box-shadow: | |
| inset 0 0 8px rgba(255, 63, 176, 0.16), | |
| 0 0 12px rgba(255, 63, 176, 0.2); | |
| } | |
| .turn-grid-body { | |
| padding: 12px; | |
| display: grid; | |
| gap: 10px; | |
| } | |
| .turn-grid-lane { | |
| border-radius: 12px; | |
| border: 1px solid rgba(62, 244, 255, 0.24); | |
| background: | |
| linear-gradient(180deg, rgba(13, 8, 28, 0.92), rgba(8, 4, 20, 0.95)), | |
| repeating-linear-gradient( | |
| 90deg, | |
| rgba(62, 244, 255, 0.04) 0 1px, | |
| transparent 1px 40px | |
| ); | |
| box-shadow: | |
| inset 0 0 16px rgba(62, 244, 255, 0.08), | |
| inset 0 0 24px rgba(255, 63, 176, 0.06); | |
| padding: 8px 10px 10px; | |
| } | |
| .turn-grid-lane.user-lane { | |
| border-color: rgba(62, 244, 255, 0.32); | |
| } | |
| .turn-grid-lane.ai-lane { | |
| border-color: rgba(255, 63, 176, 0.36); | |
| } | |
| .turn-grid-lane-header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| margin-bottom: 7px; | |
| } | |
| .lane-label { | |
| font-family: 'Orbitron', sans-serif; | |
| font-size: 11px; | |
| letter-spacing: 0.12em; | |
| color: #ddf9ff; | |
| } | |
| .lane-meta { | |
| color: #c5d5ff; | |
| font-size: 11px; | |
| } | |
| .turn-grid-canvas { | |
| display: block; | |
| width: 100%; | |
| height: 124px; | |
| border-radius: 10px; | |
| border: 1px solid rgba(62, 244, 255, 0.2); | |
| background: rgba(5, 3, 15, 0.75); | |
| } | |
| #countdownOverlay { | |
| position: fixed; | |
| inset: 0; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| background: radial-gradient(circle at center, rgba(11, 7, 25, 0.2), rgba(4, 2, 12, 0.72)); | |
| opacity: 0; | |
| pointer-events: none; | |
| z-index: 30; | |
| transition: opacity 220ms ease; | |
| } | |
| #countdownOverlay.active { | |
| opacity: 1; | |
| } | |
| #countdownText { | |
| min-width: 180px; | |
| padding: 20px 28px; | |
| text-align: center; | |
| font-family: 'Orbitron', sans-serif; | |
| font-weight: 900; | |
| letter-spacing: 0.08em; | |
| font-size: clamp(2.8rem, 10vw, 6.2rem); | |
| color: #c2feff; | |
| text-shadow: | |
| 0 0 20px rgba(62, 244, 255, 0.72), | |
| 0 0 42px rgba(62, 244, 255, 0.45), | |
| 0 0 76px rgba(139, 64, 255, 0.36); | |
| transform: scale(0.84); | |
| opacity: 0; | |
| } | |
| #countdownOverlay.active #countdownText.pulse { | |
| animation: countdownPulse 560ms ease both; | |
| } | |
| #countdownOverlay.active #countdownText.go { | |
| color: #ffd8f2; | |
| text-shadow: | |
| 0 0 18px rgba(255, 63, 176, 0.88), | |
| 0 0 44px rgba(255, 63, 176, 0.56), | |
| 0 0 84px rgba(62, 244, 255, 0.35); | |
| } | |
| .terminal-header { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| gap: 12px; | |
| padding: 12px 14px; | |
| border-bottom: 1px solid rgba(62, 244, 255, 0.28); | |
| background: linear-gradient(180deg, rgba(33, 16, 70, 0.85), rgba(20, 9, 40, 0.75)); | |
| } | |
| .terminal-header h4 { | |
| margin: 0; | |
| font-family: 'Orbitron', sans-serif; | |
| font-size: 14px; | |
| letter-spacing: 0.08em; | |
| color: var(--neon-pink); | |
| text-shadow: 0 0 12px rgba(255, 63, 176, 0.8); | |
| } | |
| #terminal { | |
| margin: 0; | |
| min-height: 220px; | |
| max-height: 320px; | |
| overflow-y: auto; | |
| padding: 14px; | |
| white-space: pre-wrap; | |
| word-wrap: break-word; | |
| background: | |
| radial-gradient(700px 220px at 100% 0, rgba(62, 244, 255, 0.18), transparent 62%), | |
| #07040f; | |
| color: #a5ffd2; | |
| font-family: 'Space Mono', monospace; | |
| font-size: 12px; | |
| line-height: 1.35; | |
| } | |
| #terminal .note-on { | |
| color: #8affc7; | |
| text-shadow: 0 0 8px rgba(138, 255, 199, 0.75); | |
| } | |
| #terminal .note-off { | |
| color: #8dc5ff; | |
| text-shadow: 0 0 8px rgba(141, 197, 255, 0.7); | |
| } | |
| #terminal .timestamp { | |
| color: #ffdd84; | |
| text-shadow: 0 0 8px rgba(255, 221, 132, 0.7); | |
| } | |
| #terminal::-webkit-scrollbar { | |
| width: 10px; | |
| } | |
| #terminal::-webkit-scrollbar-track { | |
| background: rgba(8, 5, 18, 0.7); | |
| } | |
| #terminal::-webkit-scrollbar-thumb { | |
| border-radius: 10px; | |
| background: linear-gradient(180deg, #ff3fb0, #8b40ff); | |
| } | |
| @keyframes logoFloat { | |
| 0% { | |
| transform: translateY(0) scale(1); | |
| } | |
| 50% { | |
| transform: translateY(-4px) scale(1.01); | |
| } | |
| 100% { | |
| transform: translateY(0) scale(1); | |
| } | |
| } | |
| @keyframes waveDrift { | |
| 0% { | |
| transform: translateX(-2%) translateY(0); | |
| } | |
| 50% { | |
| transform: translateX(2%) translateY(6px); | |
| } | |
| 100% { | |
| transform: translateX(-2%) translateY(0); | |
| } | |
| } | |
| @keyframes skyPulse { | |
| 0% { | |
| opacity: 0.82; | |
| filter: hue-rotate(0deg); | |
| } | |
| 100% { | |
| opacity: 1; | |
| filter: hue-rotate(12deg); | |
| } | |
| } | |
| @keyframes gridRush { | |
| 0% { | |
| background-position: 0 0, 0 0, 0 0; | |
| } | |
| 100% { | |
| background-position: 0 0, 0 220px, 62px 0; | |
| } | |
| } | |
| @keyframes countdownPulse { | |
| 0% { | |
| opacity: 0; | |
| transform: translateY(8px) scale(0.78); | |
| } | |
| 35% { | |
| opacity: 1; | |
| transform: translateY(0) scale(1.08); | |
| } | |
| 100% { | |
| opacity: 0.2; | |
| transform: translateY(-2px) scale(0.98); | |
| } | |
| } | |
| @media (max-width: 980px) { | |
| .app-shell { | |
| padding: 16px 12px 24px; | |
| } | |
| .keyboard-section { | |
| padding: 12px; | |
| } | |
| .controls { | |
| padding: 12px; | |
| } | |
| .turn-grid-body { | |
| padding: 10px; | |
| } | |
| .key { | |
| width: 35px; | |
| height: 158px; | |
| font-size: 9px; | |
| } | |
| .key.black { | |
| width: 24px; | |
| height: 98px; | |
| margin-left: -12px; | |
| margin-right: -12px; | |
| } | |
| .control-grid { | |
| grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); | |
| } | |
| .primary-control-grid { | |
| grid-template-columns: repeat(2, minmax(145px, 1fr)); | |
| } | |
| } | |
| @media (max-width: 640px) { | |
| .welcome-header { | |
| margin-bottom: 12px; | |
| } | |
| .logo-wrap { | |
| width: min(560px, 98%); | |
| padding: 0; | |
| } | |
| .logo-image { | |
| max-height: 132px; | |
| } | |
| .control-grid { | |
| grid-template-columns: 1fr 1fr; | |
| } | |
| .primary-control-grid { | |
| grid-template-columns: 1fr 1fr; | |
| } | |
| .keyboard-toggle-row { | |
| justify-content: center; | |
| margin-top: 12px; | |
| } | |
| #status { | |
| margin-left: 0; | |
| width: 100%; | |
| text-align: center; | |
| } | |
| #terminal { | |
| min-height: 180px; | |
| font-size: 11px; | |
| } | |
| .turn-grid-canvas { | |
| height: 108px; | |
| } | |
| } | |
| @media (max-width: 480px) { | |
| .app-shell::before { | |
| top: 90px; | |
| height: 80px; | |
| } | |
| .control-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .primary-control-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| #keyboard { | |
| justify-content: flex-start; | |
| } | |
| .key { | |
| width: 27px; | |
| height: 126px; | |
| font-size: 8px; | |
| } | |
| .key.black { | |
| width: 18px; | |
| height: 76px; | |
| margin-left: -9px; | |
| margin-right: -9px; | |
| } | |
| } | |
| .welcome-header-inner { text-align: center; flex: 1; } | |
| .synthia-logo { | |
| margin: 0 auto 4px; | |
| font-family: 'Orbitron', sans-serif; | |
| font-weight: 900; | |
| font-size: 3.2rem; | |
| letter-spacing: 0.12em; | |
| color: var(--neon-pink); | |
| text-shadow: | |
| 0 0 8px rgba(255, 63, 176, 0.72), | |
| 0 0 26px rgba(62, 244, 255, 0.52), | |
| 0 0 50px rgba(139, 64, 255, 0.42); | |
| } | |
| .synthia-logo em { | |
| font-style: italic; | |
| color: var(--neon-cyan); | |
| } | |
| /* Gear button */ | |
| .settings-toggle-btn { | |
| position: absolute; right: 0; top: 50%; transform: translateY(-50%); | |
| width: 44px; height: 44px; border-radius: 50%; | |
| border: 1px solid rgba(62,244,255,0.5); | |
| background: rgba(11,6,24,0.85); color: var(--neon-cyan); font-size: 22px; | |
| cursor: pointer; display: flex; align-items: center; justify-content: center; | |
| box-shadow: 0 0 14px rgba(62,244,255,0.25); | |
| transition: box-shadow 150ms, border-color 150ms, transform 150ms ease; | |
| } | |
| .settings-toggle-btn:hover { | |
| border-color: rgba(62,244,255,0.85); box-shadow: 0 0 22px rgba(62,244,255,0.5); | |
| transform: translateY(-50%) rotate(30deg); | |
| } | |
| /* Backdrop */ | |
| .settings-backdrop { | |
| position: fixed; inset: 0; background: rgba(4,2,12,0.55); z-index: 999; | |
| opacity: 0; pointer-events: none; transition: opacity 260ms ease; | |
| backdrop-filter: blur(2px); | |
| } | |
| .settings-backdrop.open { opacity: 1; pointer-events: auto; } | |
| /* Settings panel */ | |
| .settings-panel { | |
| position: fixed; top: 0; right: 0; height: 100%; width: 320px; z-index: 1000; | |
| background: rgba(13,7,28,0.97); | |
| border-left: 1px solid rgba(255,67,176,0.45); | |
| box-shadow: -6px 0 42px rgba(255,63,176,0.2), -2px 0 12px rgba(62,244,255,0.1); | |
| backdrop-filter: blur(12px); | |
| transform: translateX(100%); transition: transform 280ms cubic-bezier(0.4,0,0.2,1); | |
| overflow-y: auto; display: flex; flex-direction: column; | |
| } | |
| .settings-panel.open { transform: translateX(0); } | |
| .settings-panel-header { | |
| display: flex; align-items: center; justify-content: space-between; | |
| padding: 16px 18px; border-bottom: 1px solid rgba(62,244,255,0.28); | |
| background: linear-gradient(180deg, rgba(28,12,58,0.95), rgba(15,7,34,0.9)); | |
| position: sticky; top: 0; z-index: 1; flex-shrink: 0; | |
| } | |
| .settings-panel-title { | |
| font-family: 'Orbitron', sans-serif; font-size: 13px; letter-spacing: 0.1em; | |
| text-transform: uppercase; color: var(--neon-cyan); | |
| text-shadow: 0 0 12px rgba(62,244,255,0.65); | |
| } | |
| .settings-close-btn { | |
| width: 34px; height: 34px; border-radius: 50%; | |
| border: 1px solid rgba(255,63,176,0.45); background: rgba(14,7,30,0.9); | |
| color: var(--neon-pink); font-size: 20px; cursor: pointer; | |
| display: flex; align-items: center; justify-content: center; | |
| transition: box-shadow 140ms, border-color 140ms; | |
| } | |
| .settings-close-btn:hover { border-color: var(--neon-pink); box-shadow: 0 0 16px rgba(255,63,176,0.45); } | |
| .settings-panel-body { padding: 16px; flex: 1; } | |
| .settings-control-grid { display: flex; flex-direction: column; gap: 10px; } | |
| /* Big game toggle button */ | |
| .game-btn-row { display: flex; justify-content: center; padding: 20px 0 8px; } | |
| .btn-game-toggle { | |
| min-width: 200px; min-height: 56px; padding: 14px 36px; | |
| font-size: 16px; font-family: 'Orbitron', sans-serif; letter-spacing: 0.1em; | |
| border-radius: 14px; | |
| box-shadow: 0 0 24px rgba(67,211,255,0.5), 0 0 48px rgba(67,211,255,0.2); | |
| transition: transform 120ms ease, box-shadow 120ms ease, background 200ms ease; | |
| } | |
| .btn-game-toggle.active { | |
| background: linear-gradient(180deg, #ff6688, #e9385f); color: #fff; | |
| box-shadow: 0 0 24px rgba(255,102,136,0.55), 0 0 48px rgba(255,102,136,0.25); | |
| } | |
| @media (max-width: 640px) { | |
| .settings-panel { width: 100%; max-width: 320px; } | |
| .btn-game-toggle { min-width: 160px; width: 100%; max-width: 340px; font-size: 15px; } | |
| .game-btn-row { padding: 16px 0 6px; } | |
| } | |
| @media (max-width: 480px) { | |
| .settings-panel { max-width: 100%; } | |
| } | |