/* --- Component structural styles --- */ mc-world, mc-timeline, mc-camera, mc-frame { display: none; } mc-diorama { display: block; position: relative; width: 100%; height: 20em; } mc-diorama canvas { display: block; width: 100%; height: 100%; } /* --- UI Controls styles --- */ .spacetime-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; display: flex; flex-direction: column; justify-content: space-between; box-sizing: border-box; padding: 12px; z-index: 10; } .reset-wrapper { display: flex; justify-content: flex-end; width: 100%; } .reset-btn { pointer-events: auto; padding: 6px 12px; background: rgba(0, 0, 0, 0.6); color: white; border: 1px solid rgba(255, 255, 255, 0.3); cursor: pointer; display: none; font-family: sans-serif; border-radius: 4px; font-weight: bold; backdrop-filter: blur(4px); } .reset-btn:hover { background: rgba(0, 0, 0, 0.8); } .visualizer-ui { pointer-events: auto; font-family: sans-serif; background: rgba(20, 20, 20, 0.85); padding: 12px; border-radius: 8px; display: flex; flex-direction: column; gap: 12px; color: white; user-select: none; backdrop-filter: blur(4px); border: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5); } .scrubber-row { display: flex; gap: 12px; align-items: center; } .btn { background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.2); color: white; padding: 4px 8px; border-radius: 4px; cursor: pointer; min-width: 4ch; text-align: center; font-weight: bold; transition: background 0.1s; } .btn:hover { background: rgba(255, 255, 255, 0.2); } .track-container { flex-grow: 1; height: 24px; padding: 0 10px; cursor: pointer; display: flex; align-items: center; } .track-inner { position: relative; width: 100%; height: 100%; pointer-events: none; } .track-bg { position: absolute; left: -10px; right: -10px; top: 8px; height: 8px; background: rgba(255, 255, 255, 0.2); border-radius: 4px; } .track-fill { position: absolute; left: -10px; top: 8px; height: 8px; background: #f00; width: 10px; border-radius: 4px; } .track-handle { position: absolute; width: 16px; height: 16px; background: #fff; border-radius: 50%; top: 12px; transform: translate(-50%, -50%); z-index: 3; box-shadow: 0 0 4px rgba(0, 0, 0, 0.5); } .marker { position: absolute; top: 8px; height: 8px; transform: translateX(-50%); pointer-events: none; z-index: 1; } .marker-event { width: 2px; background: rgba(255, 255, 255, 0.5); } .marker-label { width: 4px; background: gold; z-index: 2; } /* --- Hover Visibility Logic --- */ .spacetime-hover-reveal { opacity: 0; pointer-events: none; transition: opacity 0.2s ease; } .spacetime-container:hover .spacetime-hover-reveal { opacity: 1; pointer-events: auto; } .spacetime-indicator { position: absolute; left: 33px; bottom: 29px; display: flex; gap: 12px; color: rgba(255, 255, 255, 0.4); font-family: monospace; font-size: 14px; pointer-events: none; opacity: 1; transition: opacity 0.2s ease; } .spacetime-container:hover .spacetime-indicator { opacity: 0; }