.vtimeline-wrapper { flex-shrink: 0; width: 148px; display: flex; flex-direction: column; background: linear-gradient(90deg, #1a1a2e 0%, #16213e 100%); border-right: 2px solid #c9a96e; padding: 8px 8px 12px; z-index: 100; min-height: 0; } .vtimeline-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 8px; flex-shrink: 0; } .vtimeline-controls button { width: 28px; height: 28px; border: 1px solid #c9a96e; background: rgba(201, 169, 110, 0.15); color: #e8d5b5; border-radius: 4px; cursor: pointer; font-size: 16px; line-height: 1; } .vtimeline-controls button:hover { background: rgba(201, 169, 110, 0.35); } .vtimeline-range { width: 100%; color: #f5e6c8; font-family: 'Georgia', serif; font-size: 12px; font-weight: 700; line-height: 1.25; text-align: center; text-shadow: 0 1px 3px rgba(0, 0, 0, 0.85); } .vtimeline-container { position: relative; flex: 1; min-height: 120px; cursor: grab; user-select: none; border: 1px solid rgba(201, 169, 110, 0.3); border-radius: 4px; overflow: hidden; } .vtimeline-container:active { cursor: grabbing; } .vtimeline-track { position: absolute; inset: 0; } .vtimeline-era-block { position: absolute; left: 0; right: 28px; margin: 0; padding: 4px 2px; border: none; cursor: pointer; overflow: hidden; display: flex; align-items: center; justify-content: center; } .vtimeline-era-label { writing-mode: vertical-rl; transform: rotate(180deg); font-family: 'Georgia', serif; font-size: 11px; color: rgba(255, 245, 220, 0.92); text-shadow: 0 1px 2px rgba(0, 0, 0, 0.7); pointer-events: none; white-space: nowrap; } .vtimeline-lifespan-overlays { position: absolute; inset: 0; z-index: 6; pointer-events: none; } .vtimeline-lifespan-dim { position: absolute; left: 0; right: 0; background: rgba(0, 0, 0, 0.55); } .vtimeline-lifespan-highlight { position: absolute; left: 0; right: 0; background: linear-gradient( 0deg, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0.28) 50%, rgba(255, 255, 255, 0.05) 100% ); box-shadow: inset 0 0 0 2px rgba(255, 240, 200, 0.5); border-top: 2px solid rgba(255, 230, 180, 0.75); border-bottom: 2px solid rgba(255, 230, 180, 0.75); } .vtimeline-events { position: absolute; inset: 0; z-index: 4; pointer-events: none; } .vtimeline-event-mark, .vtimeline-event-span { position: absolute; left: 4px; right: 30px; margin: 0; padding: 0; border: none; background: rgba(232, 196, 120, 0.55); pointer-events: auto; cursor: pointer; } .vtimeline-event-mark { height: 3px; transform: translateY(50%); } .vtimeline-event-span { min-height: 4px; background: rgba(232, 196, 120, 0.28); border-left: 2px solid rgba(232, 196, 120, 0.7); } .vtimeline-event-label { position: absolute; left: 100%; margin-left: 4px; top: 50%; transform: translateY(-50%); writing-mode: horizontal-tb; font-size: 9px; color: rgba(245, 230, 200, 0.85); white-space: nowrap; pointer-events: none; display: none; } .vtimeline-ticks { position: absolute; inset: 0; z-index: 5; pointer-events: none; } .vtimeline-tick { position: absolute; right: 0; left: auto; width: 26px; transform: translateY(50%); border-bottom: 1px solid rgba(201, 169, 110, 0.35); text-align: right; padding-right: 2px; } .vtimeline-tick span { display: block; font-size: 9px; color: rgba(232, 213, 181, 0.85); font-family: ui-monospace, 'Cascadia Code', monospace; line-height: 1; transform: translateY(4px); } .vtimeline-brush { position: absolute; left: 0; right: 0; height: 10px; z-index: 8; cursor: ns-resize; background: rgba(201, 169, 110, 0.25); } .vtimeline-brush-start { bottom: 0; } .vtimeline-brush-end { top: 0; } .vtimeline-hint { margin: 8px 0 0; font-size: 10px; line-height: 1.3; color: rgba(201, 169, 110, 0.55); font-family: 'Georgia', serif; font-style: italic; text-align: center; flex-shrink: 0; } @media (max-width: 720px) { .vtimeline-wrapper { width: 112px; } }