:root{font-family:Microsoft YaHei,PingFang SC,Helvetica Neue,Arial,sans-serif;line-height:1.5;font-weight:400;--primary-color: #00d4ff;--secondary-color: #ff6b35;--accent-color: #ffd700;--bg-dark: #0a0a0a;--bg-panel: rgba(0, 0, 0, .8);--text-light: #ffffff;--text-muted: #cccccc;--border-color: rgba(255, 255, 255, .2);color:var(--text-light);background-color:var(--bg-dark);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;overflow:hidden;background:linear-gradient(135deg,#0a0a0a,#1a1a2e,#16213e)}#app{position:relative;width:100vw;height:100vh}#three-canvas{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}#ui-container{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;pointer-events:none}#timeline-controller{position:absolute;bottom:30px;left:50%;transform:translate(-50%);background:var(--bg-panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border-color);border-radius:15px;padding:20px;min-width:400px;pointer-events:auto}.timeline-header h3{color:var(--primary-color);margin-bottom:15px;text-align:center;font-size:1.1em}.timeline-slider-container{position:relative}.timeline-controls{display:flex;align-items:center;justify-content:center;gap:10px;margin:10px 0}.timeline-btn{background:#ffffff1a;border:1px solid var(--border-color);border-radius:50%;width:35px;height:35px;display:flex;align-items:center;justify-content:center;font-size:14px;cursor:pointer;transition:all .2s ease}.timeline-btn:hover{background:var(--primary-color);transform:scale(1.1)}.timeline-tip{font-size:.7em;color:var(--text-muted);opacity:.8}#timeline-slider{width:100%;height:6px;background:linear-gradient(90deg,var(--secondary-color) 0%,var(--primary-color) 100%);border-radius:3px;outline:none;-webkit-appearance:none;appearance:none}#timeline-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;background:var(--accent-color);border-radius:50%;cursor:pointer;box-shadow:0 0 10px #ffd70080}#timeline-slider::-moz-range-thumb{width:20px;height:20px;background:var(--accent-color);border-radius:50%;cursor:pointer;border:none;box-shadow:0 0 10px #ffd70080}.timeline-labels{display:flex;justify-content:space-between;align-items:center;margin-top:15px;font-size:.9em;color:var(--text-muted)}.timeline-info{display:flex;flex-direction:column;align-items:flex-start}.current-era{color:var(--primary-color);font-weight:700;font-size:1em;margin-bottom:2px}.current-year{color:var(--accent-color);font-size:.8em}.next-info{display:flex;flex-direction:column;align-items:flex-end}.next-era{color:var(--text-muted);font-size:.8em;opacity:.7}#info-panel{position:absolute;top:30px;right:30px;width:350px;max-height:70vh;background:var(--bg-panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border-color);border-radius:15px;overflow:hidden;transform:translate(100%);transition:transform .3s ease;pointer-events:auto}#info-panel.active{transform:translate(0)}.info-header{display:flex;justify-content:space-between;align-items:center;padding:20px;background:linear-gradient(90deg,var(--primary-color),var(--secondary-color));color:#fff}.info-header h3{font-size:1.2em;margin:0}#close-info{background:none;border:none;color:#fff;font-size:1.5em;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s}#close-info:hover{background-color:#fff3}.info-content{padding:20px;max-height:calc(70vh - 80px);overflow-y:auto}#info-title{color:var(--primary-color);margin-bottom:10px;font-size:1.1em}#info-description{color:var(--text-muted);line-height:1.6;margin-bottom:15px}#info-specs{border-top:1px solid var(--border-color);padding-top:15px}.spec-item{display:flex;justify-content:space-between;margin-bottom:8px;padding:5px 0}.spec-label{color:var(--text-muted);font-weight:500}.spec-value{color:var(--text-light);text-align:right;max-width:60%;word-wrap:break-word}.no-specs{color:var(--text-muted);font-style:italic;text-align:center;padding:20px}#navigation-controls{position:absolute;top:30px;left:30px;display:flex;flex-direction:column;gap:10px;pointer-events:auto}button{background:var(--bg-panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border-color);border-radius:8px;padding:12px 20px;color:var(--text-light);cursor:pointer;transition:all .3s ease;font-family:inherit;font-size:.9em}button:hover{background:var(--primary-color);border-color:var(--primary-color);transform:translateY(-2px);box-shadow:0 5px 15px #00d4ff4d}button:active{transform:translateY(0)}#component-selector{margin-top:20px;padding:15px;background:var(--bg-panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border-color);border-radius:10px;transition:opacity .3s ease}#component-selector.hidden{opacity:0;pointer-events:none}#component-selector h4{color:var(--primary-color);margin-bottom:10px;font-size:.9em;text-align:center}.component-btn{width:100%;margin-bottom:8px;padding:8px 12px;font-size:.8em;background:#ffffff1a;border:1px solid var(--border-color)}.component-btn.active{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.component-btn:hover{background:var(--secondary-color);border-color:var(--secondary-color)}#help-panel{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:500px;max-height:80vh;background:var(--bg-panel);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border:1px solid var(--border-color);border-radius:15px;overflow:hidden;z-index:200;transition:opacity .3s ease;pointer-events:auto}#help-panel.hidden{opacity:0;pointer-events:none}.help-header{display:flex;justify-content:space-between;align-items:center;padding:20px;background:linear-gradient(90deg,var(--primary-color),var(--secondary-color));color:#fff}.help-header h3{margin:0;font-size:1.3em}#close-help{background:none;border:none;color:#fff;font-size:1.5em;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s}#close-help:hover{background-color:#fff3}.help-content{padding:20px;max-height:calc(80vh - 80px);overflow-y:auto}.help-section{margin-bottom:25px}.help-section h4{color:var(--primary-color);margin-bottom:10px;font-size:1.1em;display:flex;align-items:center;gap:8px}.help-section ul{list-style:none;padding:0;margin:0}.help-section li{padding:8px 0;border-bottom:1px solid rgba(255,255,255,.1);color:var(--text-muted);line-height:1.4}.help-section li:last-child{border-bottom:none}.help-section li:before{content:"•";color:var(--accent-color);margin-right:10px}#performance-monitor{position:absolute;top:20px;right:20px;z-index:50;pointer-events:none}.fps-counter{background:#000000b3;color:var(--accent-color);padding:8px 12px;border-radius:5px;font-family:Courier New,monospace;font-size:.8em;border:1px solid var(--border-color)}#loading-screen{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#0a0a0a,#1a1a2e,#16213e);display:flex;align-items:center;justify-content:center;z-index:100;transition:opacity .5s ease}#loading-screen.hidden{opacity:0;pointer-events:none}.loading-content{text-align:center;color:var(--text-light)}.loading-content h2{font-size:2.5em;margin-bottom:30px;background:linear-gradient(90deg,var(--primary-color),var(--secondary-color),var(--accent-color));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.loading-spinner{width:60px;height:60px;border:3px solid var(--border-color);border-top:3px solid var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 20px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-content p{color:var(--text-muted);font-size:1.1em}@media (max-width: 768px){#timeline-controller{bottom:20px;left:20px;right:20px;transform:none;min-width:auto}#info-panel{top:20px;right:20px;left:20px;width:auto}#navigation-controls{top:20px;left:20px}.loading-content h2{font-size:2em}}
