/* Basic Reset */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: Arial, sans-serif; overflow: hidden; display: flex; flex-direction: column; height: 100vh; background-color: #f8f9fa; } /* Screen Management */ .screen { position: absolute; top: 0; left: 0; width: 100%; height: 100%; display: none; background-color: #f8f9fa; } .screen.active { display: block; } .screen-content { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; padding: 20px; } /* Settings Screen */ h1 { margin-bottom: 30px; color: #333; text-align: center; } .settings-form { background-color: white; padding: 30px; border-radius: 8px; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); width: 100%; max-width: 500px; } .form-group { margin-bottom: 20px; } .form-group label { display: block; margin-bottom: 8px; font-weight: bold; color: #555; } .form-group input, .form-group select { width: 100%; padding: 10px; border: 1px solid #ddd; border-radius: 4px; font-size: 16px; } .primary-btn { background-color: #4285f4; color: white; border: none; padding: 12px 24px; border-radius: 4px; cursor: pointer; font-size: 16px; width: 100%; margin-top: 10px; transition: background-color 0.3s; } .primary-btn:hover { background-color: #3367d6; } /* Loading Screen */ .progress-container { width: 100%; max-width: 500px; height: 20px; background-color: #eee; border-radius: 10px; margin: 20px 0; overflow: hidden; } .progress-bar { height: 100%; width: 0%; background-color: #4285f4; transition: width 0.3s ease; } #progress-text { font-size: 16px; color: #555; } /* Visualization Screen */ #vis-controls { padding: 12px 20px; background-color: #f0f0f0; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #ddd; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } #vis-controls button { padding: 8px 12px; margin-right: 10px; border: 1px solid #ccc; border-radius: 4px; background-color: #fff; cursor: pointer; font-size: 14px; } #back-btn { background-color: #f8f9fa; } #regenerate-btn { background-color: #4285f4; color: white; } #vis-controls button:hover { opacity: 0.9; } #vis-controls label { margin-right: 5px; font-size: 14px; } /* Main Visualization Area */ #visualization { display: flex; flex: 1; height: calc(100% - 50px); overflow: hidden; } #threejs-container, #d3-container { flex: 1; overflow: hidden; position: relative; } #threejs-container { background-color: #000; } #d3-container { border-left: 1px solid #ccc; } /* D3 Map Specific Styles */ .map-label { font-family: 'Arial', sans-serif; font-size: 10px; pointer-events: none; text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.7); } .graticule { fill: none; stroke: rgba(255, 255, 255, 0.5); stroke-width: 0.5px; } .equator { fill: none; stroke: #00ffff; stroke-width: 2px; } .prime-meridian { fill: none; stroke: #ff0000; stroke-width: 2px; } .continent-outline { fill: #d3b683; stroke: #a89070; stroke-width: 0.5px; opacity: 0.15; } .planet-point { opacity: 0.8; } /* Responsive adjustments */ @media (max-width: 768px) { #visualization { flex-direction: column; } #threejs-container, #d3-container { flex: 1; height: 50%; } #d3-container { border-left: none; border-top: 1px solid #ccc; } #vis-controls { flex-direction: column; align-items: flex-start; } #vis-controls > div { margin-bottom: 10px; } .settings-form { padding: 20px; } }