| * { | |
| margin: 0; | |
| padding: 0; | |
| box-sizing: border-box; | |
| } | |
| body { | |
| font-family: 'Courier New', monospace; | |
| line-height: 1.6; | |
| color: #333; | |
| background-color: #f4f4f4; | |
| } | |
| header { | |
| background: #333; | |
| color: #fff; | |
| padding: 1rem; | |
| text-align: center; | |
| } | |
| header h1 { | |
| font-size: 1.8rem; | |
| } | |
| .container { | |
| display: flex; | |
| flex-direction: column; | |
| padding: 1rem; | |
| gap: 1rem; | |
| max-width: 1200px; | |
| margin: 0 auto; | |
| } | |
| .viewer-container { | |
| position: relative; | |
| width: 100%; | |
| background: #000; | |
| border-radius: 8px; | |
| overflow: hidden; | |
| min-height: 400px; | |
| } | |
| #ascii-canvas { | |
| width: 100%; | |
| height: 100%; | |
| font-family: 'Courier New', monospace; | |
| font-size: 8px; | |
| line-height: 1; | |
| letter-spacing: 0; | |
| color: #fff; | |
| white-space: pre; | |
| } | |
| .loading { | |
| position: absolute; | |
| top: 50%; | |
| left: 50%; | |
| transform: translate(-50%, -50%); | |
| color: #fff; | |
| font-size: 1.2rem; | |
| } | |
| .controls-panel { | |
| background: #fff; | |
| padding: 1.5rem; | |
| border-radius: 8px; | |
| box-shadow: 0 2px 5px rgba(0,0,0,0.1); | |
| } | |
| .control-group { | |
| margin-bottom: 1.5rem; | |
| } | |
| .control-group h3 { | |
| margin-bottom: 0.8rem; | |
| border-bottom: 1px solid #eee; | |
| padding-bottom: 0.5rem; | |
| } | |
| label { | |
| display: block; | |
| margin-bottom: 0.5rem; | |
| font-weight: bold; | |
| } | |
| select, input[type="range"], button { | |
| width: 100%; | |
| padding: 0.5rem; | |
| margin-bottom: 1rem; | |
| border: 1px solid #ddd; | |
| border-radius: 4px; | |
| font-family: inherit; | |
| } | |
| button { | |
| background: #333; | |
| color: #fff; | |
| border: none; | |
| cursor: pointer; | |
| transition: background 0.3s; | |
| } | |
| button:hover { | |
| background: #555; | |
| } | |
| input[type="checkbox"] { | |
| margin-right: 0.5rem; | |
| } | |
| footer { | |
| text-align: center; | |
| padding: 1rem; | |
| background: #333; | |
| color: #fff; | |
| margin-top: 2rem; | |
| } | |
| @media (min-width: 768px) { | |
| .container { | |
| flex-direction: row; | |
| } | |
| .viewer-container { | |
| flex: 2; | |
| } | |
| .controls-panel { | |
| flex: 1; | |
| min-width: 300px; | |
| } | |
| } |