body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.timeline-container{width:100%;height:100vh;position:relative;overflow:hidden;font-family:Roboto,Arial,sans-serif;background:linear-gradient(to bottom,#0a0a2e,#16213e,#0f3460)}.timeline-ui{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.event-details-panel{position:absolute;top:20px;right:20px;background:#040a16d9;padding:20px;border-radius:12px;color:#fff;max-width:320px;box-shadow:0 8px 32px #00000080,0 0 20px #4ec4ff4d;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.15);transition:all .3s cubic-bezier(.4,0,.2,1);z-index:100;animation:panelFadeIn .4s ease-out}@keyframes panelFadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.event-details-panel h3{margin-top:0;color:#fff;border-bottom:1px solid rgba(255,255,255,.2);padding-bottom:12px;font-size:1.3rem;font-weight:700;letter-spacing:-.01em}.category-indicator{position:absolute;left:0;top:0;width:5px;height:100%;border-radius:12px 0 0 12px;box-shadow:0 0 15px #ffffff4d}.event-meta{display:flex;justify-content:space-between;margin-bottom:16px;font-size:.9rem;color:#fffc;font-weight:500}.event-description{margin-bottom:16px;line-height:1.6;font-size:.95rem;color:#ffffffe6}.event-importance{font-size:.9rem;color:#fffc;font-weight:500}.importance-bar{height:6px;width:100%;background-color:#ffffff1a;border-radius:3px;margin-top:8px;overflow:hidden}.importance-level{height:100%;border-radius:3px;transition:width .5s cubic-bezier(.4,0,.2,1);box-shadow:0 0 10px #ffffff80}@keyframes pulse-glow{0%{box-shadow:0 8px 32px #00000080,0 0 10px #4ec4ff4d}50%{box-shadow:0 8px 32px #00000080,0 0 25px #4ec4ff99}to{box-shadow:0 8px 32px #00000080,0 0 10px #4ec4ff4d}}.event-details-panel{animation:pulse-glow 3s infinite}.timeline-controls{position:absolute;bottom:25px;left:25px;background:#040a16bf;padding:20px;border-radius:12px;color:#fff;max-width:280px;z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1);box-shadow:0 8px 32px #00000080;-webkit-user-select:none;user-select:none}.timeline-controls h3{margin-top:0;color:#4fc3f7;border-bottom:1px solid rgba(255,255,255,.2);padding-bottom:10px;font-size:1.2rem;font-weight:700;letter-spacing:-.01em}.timeline-controls p{margin:8px 0;font-size:.95rem;color:#ffffffe6;display:flex;align-items:center}.category-filters{position:absolute;top:25px;left:25px;background:#040a16bf;padding:20px;border-radius:12px;color:#fff;max-width:450px;z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1);box-shadow:0 8px 32px #00000080}.category-filters h4{margin-top:0;margin-bottom:16px;color:#fff;font-size:1.1rem;font-weight:600;letter-spacing:-.01em}.filter-buttons{display:flex;flex-wrap:wrap;gap:10px}.filter-button{padding:8px 14px;border-radius:24px;background-color:transparent;color:#fff;border:2px solid;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);font-size:.9rem;font-weight:500;outline:none;box-shadow:0 2px 10px #0003}.filter-button.active{color:#fff;font-weight:600;transform:translateY(-2px);box-shadow:0 5px 15px #0000004d}.filter-button:hover{opacity:.9;transform:translateY(-2px);box-shadow:0 5px 15px #0000004d}.event-marker-tooltip{background-color:#040a16d9;color:#fff;padding:12px 16px;border-radius:12px;white-space:normal;pointer-events:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.2);box-shadow:0 8px 32px #0006;min-width:180px;max-width:240px;text-align:center;transform:translate(-50%,-50%)}.tooltip-date{font-size:.85rem;font-weight:500;color:#fffc;margin-bottom:6px;letter-spacing:.02em}.tooltip-title{font-size:1.1rem;font-weight:600;color:#fff;line-height:1.3;letter-spacing:-.01em;margin-bottom:8px}.year-label{font-family:Roboto,Arial,sans-serif;font-weight:600;opacity:.8;text-shadow:0 2px 5px rgba(0,0,0,.5)}canvas{background:linear-gradient(to bottom,#0a0a2e,#16213e,#0f3460)}::selection{background-color:#4fc3f7;color:#fff}.loading-spinner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:60px;height:60px;border:6px solid rgba(255,255,255,.1);border-top:6px solid #4fc3f7;border-radius:50%;animation:spin 1.5s linear infinite}@keyframes spin{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}@media (max-width: 768px){.event-details-panel{top:15px;right:15px;max-width:calc(100% - 30px);font-size:.9em;padding:15px}.timeline-controls{bottom:15px;left:15px;font-size:.9em;padding:15px}.category-filters{top:15px;left:15px;max-width:calc(100% - 30px);padding:15px}.filter-button{padding:6px 10px;font-size:.8rem}}.timeline-container{width:100%;height:100vh;position:relative;overflow:hidden;font-family:Roboto,Arial,sans-serif;background:#0a0a1e;color:#fff}.timeline-ui{position:absolute;top:20px;left:20px;z-index:10;pointer-events:none}.timeline-ui>*{pointer-events:auto}.navigation-toggle{position:absolute;top:20px;right:20px;width:40px;height:40px;background:#040a16d9;border:1px solid rgba(255,255,255,.2);border-radius:50%;color:#fff;font-size:18px;cursor:pointer;transition:all .3s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;display:flex;align-items:center;justify-content:center}.navigation-toggle:hover{background:#040a16f2;border-color:#fff6;transform:scale(1.1)}.timeline-controls{background:#000c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;padding:20px;margin-bottom:20px;pointer-events:auto;border:1px solid rgba(255,255,255,.1);box-shadow:0 8px 32px #00000080}.timeline-controls:hover{background:#0a1428e6}.timeline-controls h3{margin:0 0 15px;font-size:18px;font-weight:600;color:#fff}.timeline-controls p{margin:5px 0;font-size:14px;color:#b0b0b0;line-height:1.4}.timeline-controls p:before{content:"";display:inline-block;width:6px;height:6px;background-color:#4fc3f7;border-radius:50%;margin-right:10px}.effect-toggle{margin-top:15px;background:#4fc3f7;color:#0a0a1e;border:none;border-radius:20px;padding:8px 16px;font-weight:600;cursor:pointer;transition:all .3s ease;outline:none;font-family:Roboto,Arial,sans-serif;font-size:.9rem;width:100%}.effect-toggle:hover{background:#81d4fa;transform:translateY(-2px);box-shadow:0 4px 8px #0000004d}.effect-toggle:active{transform:translateY(0)}.zoom-controls{margin-top:20px;padding-top:15px;border-top:1px solid rgba(255,255,255,.1)}.zoom-controls label{display:block;margin-bottom:10px;font-size:14px;font-weight:500;color:#fff}.zoom-slider{width:100%;height:6px;border-radius:3px;background:#fff3;outline:none;margin-bottom:15px;cursor:pointer}.zoom-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#4a9eff;cursor:pointer;border:2px solid #ffffff;box-shadow:0 2px 8px #0000004d}.zoom-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#4a9eff;cursor:pointer;border:2px solid #ffffff;box-shadow:0 2px 8px #0000004d}.zoom-buttons{display:flex;gap:8px;flex-wrap:wrap}.zoom-btn{background:#4a9eff33;border:1px solid rgba(74,158,255,.4);color:#4a9eff;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease}.zoom-btn:hover{background:#4a9eff4d;border-color:#4a9eff99;transform:translateY(-1px)}.zoom-btn:active{transform:translateY(0)}.event-details-panel{background:#000000e6;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border-radius:12px;padding:20px;max-width:400px;pointer-events:auto;border:1px solid rgba(255,255,255,.1);box-shadow:0 8px 32px #00000080;animation:fadeIn .5s ease-out;transform-origin:top right;overflow:hidden}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.event-details-panel h3{margin:0 0 10px;font-size:18px;font-weight:600;color:#fff;line-height:1.3}.category-indicator{width:4px;height:20px;border-radius:2px;margin-bottom:15px}.event-description{margin:0;font-size:14px;color:#b0b0b0;line-height:1.5}.canvas-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(ellipse at center,#0a0a1e00 30%,#0a0a1e80);pointer-events:none;z-index:5}
