.event-point{position:absolute;top:50%;transform:translate(-50%,-50%);cursor:pointer;z-index:10}.point-marker{position:relative;width:16px;height:16px}.point-inner{width:100%;height:100%;background:var(--label-color, var(--color-point));border-radius:50%;border:3px solid var(--color-bg);box-shadow:0 0 0 2px var(--label-color, var(--color-point)),0 0 15px color-mix(in srgb,var(--label-color, #00d4ff) 50%,transparent);transition:all var(--transition-fast)}.point-pulse{position:absolute;top:50%;left:50%;width:100%;height:100%;transform:translate(-50%,-50%);background:var(--label-color, var(--color-point));border-radius:50%;opacity:0;animation:pulse-ring 2s ease-out infinite}@keyframes pulse-ring{0%{transform:translate(-50%,-50%) scale(1);opacity:.5}to{transform:translate(-50%,-50%) scale(2.5);opacity:0}}.point-label{position:absolute;top:-28px;left:50%;transform:translate(-50%);font-size:.75rem;font-weight:500;color:var(--color-text);white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis;opacity:0;transition:opacity var(--transition-fast);text-shadow:0 1px 3px rgba(0,0,0,.5)}.point-label-below{top:auto;bottom:-28px}.event-point.hovered .point-label,.event-point:hover .point-label{opacity:1}.event-point.hovered .point-inner{transform:scale(1.3);box-shadow:0 0 0 3px var(--label-color, var(--color-point)),0 0 25px color-mix(in srgb,var(--label-color, #00d4ff) 70%,transparent)}.event-span{position:absolute;top:50%;transform:translateY(-50%);height:18px;cursor:pointer;z-index:5}.span-body{display:flex;align-items:center;height:100%;transition:all var(--transition-fast)}.span-cap{width:2px;height:100%;background:var(--label-color, var(--color-accent));flex-shrink:0;border-radius:1px;box-shadow:0 0 8px color-mix(in srgb,var(--label-color, var(--color-accent)) 40%,transparent)}.span-line{position:relative;flex:1;height:2px;background:var(--label-color, var(--color-accent));opacity:.8;box-shadow:0 0 8px color-mix(in srgb,var(--label-color, var(--color-accent)) 40%,transparent)}.span-line:before{content:"";position:absolute;top:50%;left:4px;right:4px;height:8px;transform:translateY(-50%);background:repeating-linear-gradient(90deg,var(--label-color, var(--color-accent)) 0px,var(--label-color, var(--color-accent)) 1px,transparent 1px,transparent 10px);opacity:.5}.span-label{position:absolute;top:-20px;left:50%;transform:translate(-50%);font-size:.7rem;font-weight:500;color:var(--color-text);white-space:nowrap;max-width:150px;overflow:hidden;text-overflow:ellipsis;opacity:.7;transition:opacity var(--transition-fast);text-shadow:0 1px 3px rgba(0,0,0,.5)}.span-label-below{top:auto;bottom:-20px}.event-span.hovered .span-label,.event-span:hover .span-label{opacity:1}.event-span.hovered .span-body .span-cap{height:120%}.event-span.hovered .span-body .span-line{height:3px;opacity:1}.event-span.hovered .span-body .span-line:before{height:10px;opacity:.7}.event-point.selected .point-inner{background:#22c55e;transform:scale(1.4);box-shadow:0 0 0 3px #22c55e,0 0 30px #22c55ecc;border-color:var(--color-bg)}.event-point.selected .point-pulse{background:#22c55e;animation:pulse-ring-selected 1.5s ease-out infinite}@keyframes pulse-ring-selected{0%{transform:translate(-50%,-50%) scale(1);opacity:.6}to{transform:translate(-50%,-50%) scale(3);opacity:0}}.event-point.selected .point-label{opacity:1;color:#4ade80;font-weight:600}.event-span.selected .span-cap,.event-span.selected .span-line{background:#22c55e;box-shadow:0 0 12px #22c55e99}.event-span.selected .span-cap{height:130%}.event-span.selected .span-line{height:3px;opacity:1}.event-span.selected .span-line:before{height:10px;opacity:.7;background:repeating-linear-gradient(90deg,#22c55e 0px,#22c55e 1px,transparent 1px,transparent 10px)}.event-span.selected .span-label{opacity:1;color:#4ade80;font-weight:600}.event-point.game-overlay-ghost,.event-span.game-overlay-ghost{opacity:.75}.event-point.game-overlay-ghost .point-inner{border-style:dashed}.event-point.game-overlay-guess,.event-span.game-overlay-guess{opacity:.68;z-index:22}.event-point.game-overlay-guess .point-inner{transform:scale(.94)}.event-point.game-overlay-guess .point-pulse{animation-duration:2.8s;opacity:.2}.event-span.game-overlay-guess .span-line,.event-span.game-overlay-guess .span-cap{opacity:.78}.event-span.game-overlay-guess .span-line{background:repeating-linear-gradient(90deg,var(--label-color, var(--color-accent)) 0px,var(--label-color, var(--color-accent)) 5px,transparent 5px,transparent 10px)}.event-span.game-overlay-guess .span-line:before{opacity:.2}.event-point.game-overlay-actual,.event-span.game-overlay-actual{opacity:1;z-index:28}.event-point.game-overlay-actual .point-inner{box-shadow:0 0 0 2px var(--label-color, var(--color-point)),0 0 24px color-mix(in srgb,var(--label-color, #00d4ff) 78%,transparent)}.event-span.game-overlay-actual .span-line,.event-span.game-overlay-actual .span-cap{box-shadow:0 0 14px color-mix(in srgb,var(--label-color, var(--color-accent)) 65%,transparent)}.logarithmic-minimap{width:100%;padding:1rem;background:var(--color-surface, #1a1a2e);border-radius:12px;margin-top:1.5rem}.minimap-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;font-size:.875rem;color:var(--color-text-secondary, #a0a0a0)}.minimap-hint{font-size:.75rem;opacity:.7}.minimap-with-controls{display:flex;align-items:center;gap:.5rem}.minimap-center{flex:1;display:flex;flex-direction:column;gap:.5rem}.minimap-nav-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--color-surface-hover, #252540);border:1px solid rgba(99,102,241,.3);border-radius:8px;color:var(--color-text-secondary, #a0a0a0);cursor:pointer;transition:all .2s ease}.minimap-nav-btn:hover{background:var(--color-primary, #6366f1);color:#fff;border-color:var(--color-primary, #6366f1);transform:scale(1.05)}.minimap-nav-btn:active{transform:scale(.95)}.minimap-nav-btn svg{width:20px;height:20px}.minimap-zoom-controls{display:flex;justify-content:center;gap:.5rem}.minimap-zoom-controls .minimap-nav-btn{width:32px;height:28px}.minimap-zoom-controls .minimap-nav-btn svg{width:16px;height:16px}.minimap-container{position:relative;height:60px;background:var(--color-background, #0f0f1a);border-radius:8px;overflow:hidden;cursor:pointer}.minimap-eras{position:absolute;top:0;left:0;right:0;bottom:0;display:flex}.minimap-era{position:absolute;top:0;height:100%;opacity:.3;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:opacity .2s ease}.minimap-era:hover{opacity:.5}.era-label{font-size:.65rem;color:#fff;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.5);pointer-events:none}.minimap-ticks{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none}.minimap-tick{position:absolute;top:0;height:100%;transform:translate(-50%)}.tick-line{width:1px;height:8px;background:#ffffff4d}.tick-label{position:absolute;bottom:4px;left:50%;transform:translate(-50%);font-size:.6rem;color:#ffffff80;white-space:nowrap}.minimap-events{position:absolute;top:50%;left:0;right:0;height:0;pointer-events:none}.minimap-event-dot{position:absolute;top:-4px;width:8px;height:8px;border-radius:50%;transform:translate(-50%);box-shadow:0 0 4px currentColor;pointer-events:auto;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.minimap-event-dot:hover{transform:translate(-50%) scale(1.5);box-shadow:0 0 8px currentColor}.minimap-viewfinder{position:absolute;top:0;height:100%;background:#6366f133;border:2px solid var(--color-primary, #6366f1);border-radius:4px;cursor:move;display:flex;z-index:10}.minimap-viewfinder.dragging{background:#6366f14d}.viewfinder-handle{position:absolute;top:0;width:12px;height:100%;cursor:ew-resize;z-index:11}.viewfinder-handle:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:4px;height:24px;background:var(--color-primary, #6366f1);border-radius:2px;opacity:.7;transition:opacity .2s ease}.viewfinder-handle:hover:after{opacity:1}.viewfinder-handle.left{left:-6px}.viewfinder-handle.right{right:-6px}.viewfinder-center{flex:1;cursor:move}.minimap-present-marker{position:absolute;right:4px;top:50%;transform:translateY(-50%);font-size:.6rem;color:var(--color-success, #10b981);text-transform:uppercase;letter-spacing:.5px;pointer-events:none}.minimap-view-info{display:flex;justify-content:center;align-items:center;gap:.5rem;margin-top:.75rem;font-size:.8rem;color:var(--color-text-secondary, #a0a0a0)}.view-separator{opacity:.5}@media (max-width: 768px){.minimap-container{height:50px}.minimap-label{flex-direction:column;gap:.25rem;align-items:flex-start}.era-label{font-size:.55rem}.tick-label{font-size:.5rem}.minimap-nav-btn{width:32px;height:32px}.minimap-nav-btn svg{width:16px;height:16px}.minimap-zoom-controls .minimap-nav-btn{width:28px;height:24px}.minimap-zoom-controls .minimap-nav-btn svg{width:14px;height:14px}}.history-arrow-container{position:relative;padding:2rem 0}.timeline-header-panel{margin-bottom:1rem;border:1px solid rgba(148,163,184,.22);border-radius:12px;background:#0f172a59;padding:.65rem .8rem}.timeline-header-toggle{width:100%;border:1px solid rgba(148,163,184,.3);border-radius:8px;background:#0f172a8c;color:var(--color-text-secondary, #cbd5e1);padding:.45rem .65rem;display:flex;align-items:center;justify-content:space-between;gap:.6rem;font-size:.78rem;font-weight:600;cursor:pointer;transition:border-color .2s ease,background .2s ease,color .2s ease}.timeline-header-toggle:hover{border-color:#94a3b88c;background:#0f172ac7;color:var(--color-text, #f8fafc)}.timeline-header-toggle svg{width:16px;height:16px}.timeline-header{display:flex;justify-content:space-between;align-items:center;margin-top:.7rem}.timeline-header.has-inline-map{display:grid;grid-template-columns:minmax(260px,200px) minmax(0,1fr) auto;align-items:center;gap:.75rem 1rem}.timeline-title{font-size:1.25rem;font-weight:600;color:var(--color-text, #fff);margin:0}.timeline-title-group{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;min-width:0}.timeline-title-row{display:flex;align-items:baseline;gap:.5rem}.timeline-title-hint{font-size:.72rem;color:var(--color-text-secondary, #94a3b8);opacity:.9}.timeline-demographics{display:flex;align-items:stretch;gap:.5rem;width:100%}.timeline-demographic-item{position:relative;min-width:150px;display:flex;flex-direction:column;gap:.15rem;padding:.35rem .5rem;border:1px solid rgba(148,163,184,.25);border-radius:8px;background:#0f172a73}.demographic-label{font-size:.62rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary, #94a3b8)}.demographic-value{font-size:.86rem;font-weight:600;color:var(--color-text, #f8fafc)}.demographic-year{font-size:.67rem;color:var(--color-text-secondary, #94a3b8)}.demographic-tooltip{position:absolute;z-index:16;left:0;top:calc(100% + .35rem);display:none;min-width:190px;max-width:240px;padding:.42rem .5rem;border-radius:8px;border:1px solid rgba(148,163,184,.35);background:#020617f5;box-shadow:0 10px 20px #00000059}.timeline-demographic-item:hover .demographic-tooltip{display:block}.demographic-tooltip-title{font-size:.63rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#cbd5e1;margin-bottom:.3rem}.demographic-tooltip-row{display:flex;align-items:center;justify-content:space-between;gap:.65rem;font-size:.68rem;color:#cbd5e1;margin-bottom:.2rem}.demographic-tooltip-row strong{color:#f8fafc;font-weight:600}.demographic-tooltip-footnote,.demographic-tooltip-empty{font-size:.62rem;color:#94a3b8}.demographic-tooltip-footnote{margin-top:.2rem}.timeline-attribution{display:flex;flex-direction:column;gap:.18rem;font-size:.6rem;line-height:1.35;color:var(--color-text-secondary, #94a3b8)}.timeline-attribution a{color:#a5b4fc}.timeline-attribution a:hover{color:#c7d2fe}.timeline-actions{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}.center-input-form{display:flex;flex-direction:column;align-items:flex-end;gap:.3rem}.center-input-row{display:flex;align-items:center;gap:.35rem}.center-input-type,.center-input-field{height:34px;border-radius:8px;border:1px solid rgba(148,163,184,.35);background:#0f172a99;color:#e2e8f0;font-size:.8rem;padding:0 .6rem}.center-input-type{min-width:128px}.center-input-field{min-width:152px}.center-input-btn{height:34px;padding:0 .75rem;border-radius:8px;border:1px solid rgba(16,185,129,.45);background:#10b9812e;color:#a7f3d0;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s ease}.center-input-btn:hover{background:#10b98147;color:#d1fae5}.center-input-error{color:#fca5a5;font-size:.72rem;max-width:280px;text-align:right}.random-event-btn{display:flex;align-items:center;gap:.5rem;padding:.45rem .95rem;background:#6366f12e;border:1px solid rgba(99,102,241,.45);border-radius:var(--radius-md, 8px);color:#c7d2fe;font-size:.82rem;cursor:pointer;transition:all .2s ease}.random-event-btn:hover{background:#6366f147;color:#eef2ff;border-color:#818cf8bf}.random-event-btn svg{width:14px;height:14px}.reset-view-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md, 8px);color:var(--color-text-secondary, #a0a0a0);font-size:.85rem;cursor:pointer;transition:all .2s ease}.reset-view-btn:hover{background:#ffffff1a;color:var(--color-text, #fff);border-color:#fff3}.reset-view-btn svg{width:16px;height:16px}.timeline-wrapper{position:relative;height:calc(var(--timeline-base-height, 200px) + (var(--timeline-lane-depth-px, 0px) * 2));margin:1rem 0;overflow:hidden;background:linear-gradient(180deg,transparent 0%,rgba(99,102,241,.03) 50%,transparent 100%);border-radius:var(--radius-lg);cursor:crosshair}.inline-geological-map{align-self:start;width:100%;max-width:500px}.inline-geological-map-trigger{width:100%;border:0;background:transparent;padding:0;margin:0;cursor:zoom-in;color:inherit;text-align:inherit}.inline-geological-map-viewport{position:relative;width:100%;aspect-ratio:16 / 9;border-radius:8px;border:1px solid rgba(148,163,184,.26);background:#020617d1;overflow:hidden}.inline-geological-map-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;-webkit-user-select:none;user-select:none;pointer-events:none}.inline-geological-map-fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.66rem;color:#94a3b8;background:linear-gradient(135deg,#1e293b99,#020617bf)}.inline-geological-map-year{margin-top:.28rem;text-align:center;font-size:.66rem;font-weight:600;color:#cbd5e1}.inline-map-mini-timeline{margin-top:.25rem;padding:.35rem .2rem .45rem;display:flex;flex-direction:column;gap:.22rem;cursor:crosshair;border-radius:8px}.inline-map-mini-track{position:relative;display:flex;align-items:center;width:100%;min-height:14px}.inline-map-mini-body{flex:1;height:2px;border-radius:999px;background:linear-gradient(90deg,#6366f1eb,#10b981eb);box-shadow:0 0 10px #6366f159}.inline-map-mini-head{width:9px;height:9px;margin-left:1px;clip-path:polygon(0 0,100% 50%,0 100%);background:#10b981f2}.inline-map-mini-hover{position:absolute;top:50%;width:6px;height:6px;border-radius:999px;background:#f8fafc;border:1px solid rgba(15,23,42,.6);box-shadow:0 0 0 2px #f8fafc33;transform:translate(-50%,-50%);pointer-events:none}.inline-map-mini-labels{display:flex;justify-content:space-between;font-size:.58rem;font-weight:500;color:#94a3b8;line-height:1}.geological-map-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;display:flex;align-items:center;justify-content:center;padding:1.2rem;background:#020617bf;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.geological-map-modal{width:min(1080px,92vw);max-height:92vh;display:flex;flex-direction:column;gap:.5rem;padding:.85rem;border-radius:12px;border:1px solid rgba(148,163,184,.35);background:#0f172af0;box-shadow:0 18px 48px #0206178c}.geological-map-modal-close{align-self:flex-end;width:32px;height:32px;border:1px solid rgba(148,163,184,.4);border-radius:999px;background:#1e293bb8;color:#e2e8f0;font-size:1.3rem;line-height:1;cursor:pointer}.geological-map-modal-close:hover{background:#334155e0}.geological-map-modal-viewport{position:relative;width:100%;aspect-ratio:16 / 9;border-radius:10px;border:1px solid rgba(148,163,184,.22);background:#020617e6;overflow:hidden}.geological-map-modal-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;-webkit-user-select:none;user-select:none;pointer-events:none}.geological-map-modal-fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.95rem;color:#94a3b8;background:linear-gradient(135deg,#1e293b99,#020617bf)}.geological-map-modal-year{text-align:center;font-size:.95rem;font-weight:600;color:#cbd5e1}.timeline-content{position:relative;height:100%;padding:0 60px}.arrow-line{position:absolute;top:50%;left:24px;right:24px;transform:translateY(-50%);display:flex;align-items:center}.arrow-center-indicator{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:.35rem;pointer-events:none}.arrow-center-dot{width:10px;height:10px;border-radius:9999px;background:#34d399;box-shadow:0 0 0 3px #34d39933}.arrow-center-label{background:#0f172ae6;border:1px solid rgba(52,211,153,.5);color:#d1fae5;font-size:.72rem;font-weight:600;padding:.2rem .45rem;border-radius:6px;white-space:nowrap}.arrow-body{flex:1;height:4px;background:linear-gradient(90deg,var(--color-timeline) 0%,var(--color-accent) 100%);border-radius:2px;box-shadow:0 0 20px #6366f166}.arrow-head{width:30px;height:30px;color:var(--color-accent);margin-left:-5px;filter:drop-shadow(0 0 10px rgba(99,102,241,.5))}.arrow-head svg{width:100%;height:100%}.timeline-ticks{position:absolute;top:0;left:40px;right:40px;bottom:0;pointer-events:none}.timeline-tick{position:absolute;top:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center}.tick-mark{width:2px;height:20px;background:#fff3;border-radius:1px}.tick-label{position:absolute;top:calc(50% + 25px);font-size:.75rem;color:var(--color-text-secondary);white-space:nowrap;transform:rotate(-45deg);transform-origin:top left}.events-layer{position:absolute;top:0;left:40px;right:40px;bottom:0}.timeline-sub-focus{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;--sub-focus-above-nudge: -20px;--sub-focus-below-nudge: -17px}.event-point--sub-focus .point-marker{animation:sub-point-pop .35s ease-out both}.event-point--sub-focus-above{margin-top:var(--sub-focus-above-nudge)}.event-point--sub-focus-below{margin-top:var(--sub-focus-below-nudge)}.event-point--sub-focus:before{content:"";position:absolute;left:50%;width:2px;transform:translate(-50%);background:color-mix(in srgb,var(--label-color, #00d4ff) 70%,transparent);border-radius:999px;opacity:.9;pointer-events:none}.event-point--sub-focus-above:before{top:16px;height:12px}.event-point--sub-focus-below:before{bottom:16px;height:12px}@keyframes sub-point-pop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.view-range-labels{position:absolute;top:10px;left:40px;right:40px;display:flex;justify-content:space-between;pointer-events:none}.range-label{font-size:.7rem;color:var(--color-text-muted, #6b7280);background:#0000004d;padding:.25rem .5rem;border-radius:4px}.range-label.past{color:var(--color-primary, #6366f1)}.range-label.present{color:var(--color-success, #10b981)}.timeline-hover-indicator{position:absolute;top:0;bottom:0;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;pointer-events:none;z-index:50}.hover-line{width:2px;flex:1;margin-top:20px;background:linear-gradient(to bottom,rgba(99,102,241,.8),rgba(99,102,241,.8) 80%,transparent)}.hover-time{position:absolute;top:24px;left:50%;transform:translate(-50%);background:var(--color-bg-secondary, #1a1a2e);border:1px solid var(--color-accent, #6366f1);color:var(--color-accent, #6366f1);font-size:.75rem;font-weight:600;padding:.35rem .6rem;border-radius:var(--radius-md, 8px);white-space:nowrap;box-shadow:0 2px 10px #6366f14d}.hover-time-secondary{position:absolute;top:58px;left:50%;transform:translate(-50%);background:#1a1a2eeb;border:1px solid rgba(99,102,241,.55);color:#bdc4fff2;font-size:.68rem;font-weight:500;padding:.28rem .5rem;border-radius:var(--radius-md, 8px);display:flex;flex-direction:column;gap:.15rem;white-space:nowrap;box-shadow:0 2px 10px #6366f133}.hover-time-secondary-line{display:block}.timeline-legend{display:flex;justify-content:center;gap:2rem;margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.05)}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--color-text-secondary)}.legend-point{width:12px;height:12px;background:var(--color-point);border-radius:50%;box-shadow:0 0 8px #f59e0b80}.legend-span{width:30px;height:12px;background:var(--color-span);border-radius:6px;border:2px solid var(--color-accent)}.legend-hint{font-size:.75rem;opacity:.6;font-style:italic}@media (max-width: 768px){.timeline-header.has-inline-map{grid-template-columns:minmax(170px,46vw) minmax(0,1fr);align-items:start;gap:.6rem .75rem}.timeline-title-group{gap:.25rem}.timeline-title-hint{white-space:normal;font-size:.68rem}.timeline-demographics{width:100%;flex-wrap:wrap}.timeline-demographic-item{flex:1 1 160px}.demographic-tooltip{min-width:170px;max-width:min(260px,80vw)}.timeline-attribution{font-size:.58rem}.timeline-actions{grid-column:1 / -1;width:100%;align-items:flex-start}.center-input-form{align-items:flex-start;width:100%}.center-input-row{width:100%;flex-wrap:wrap}.center-input-type,.center-input-field{flex:1;min-width:130px}.center-input-error{text-align:left}.timeline-content{padding:0 30px}.inline-geological-map-viewport{width:min(260px,46vw);aspect-ratio:16 / 9}.inline-geological-map-year{font-size:.61rem}.geological-map-modal{width:96vw;padding:.65rem}.geological-map-modal-year{font-size:.85rem}.arrow-line{left:14px;right:14px}.timeline-ticks,.events-layer,.view-range-labels{left:30px;right:30px}.tick-label{font-size:.65rem}.timeline-legend{gap:1rem;flex-wrap:wrap}}.selected-event-detail{background:linear-gradient(135deg,#1e293bf2,#0f172afa);border:1px solid rgba(148,163,184,.2);border-radius:16px;margin:1.5rem auto;max-width:800px;overflow:hidden;box-shadow:0 4px 6px -1px #0003,0 10px 15px -3px #0000004d,0 0 40px #3b82f61a}.selected-event-content{padding:1.5rem 2rem}.selected-event-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.selected-event-badges{display:flex;gap:.5rem;flex-wrap:wrap}.event-badge{font-size:.75rem;font-weight:600;padding:.25rem .75rem;border-radius:9999px;text-transform:uppercase;letter-spacing:.05em}.event-badge.astronomical{background:linear-gradient(135deg,#8b5cf64d,#8b5cf61a);color:#c4b5fd;border:1px solid rgba(139,92,246,.3)}.event-badge.historical{background:linear-gradient(135deg,#3b82f64d,#3b82f61a);color:#93c5fd;border:1px solid rgba(59,130,246,.3)}.event-badge.span{background:linear-gradient(135deg,#10b9814d,#10b9811a);color:#6ee7b7;border:1px solid rgba(16,185,129,.3)}.event-badge.point{background:linear-gradient(135deg,#f59e0b4d,#f59e0b1a);color:#fcd34d;border:1px solid rgba(245,158,11,.3)}.event-badge.unpublished{background:linear-gradient(135deg,#ef444440,#ef44441a);color:#fca5a5;border:1px solid rgba(239,68,68,.35)}.selected-event-actions{display:flex;gap:.5rem;align-items:center}.edit-btn{background:#3b82f626;border:1px solid rgba(59,130,246,.25);border-radius:8px;padding:.5rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.edit-btn:hover{background:#3b82f64d;border-color:#3b82f680}.edit-btn svg{width:18px;height:18px;color:#60a5fa;transition:color .2s ease}.edit-btn:hover svg{color:#93c5fd}.close-btn{background:#64748b33;border:1px solid rgba(148,163,184,.2);border-radius:8px;padding:.5rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.close-btn:hover{background:#ef444433;border-color:#ef444466}.close-btn svg{width:18px;height:18px;color:#94a3b8;transition:color .2s ease}.close-btn:hover svg{color:#f87171}.selected-event-title{font-size:1.75rem;font-weight:700;color:#f1f5f9;margin:0 0 .75rem;line-height:1.3}.selected-event-image-wrapper{margin-bottom:1rem}.selected-event-image{max-width:100%;max-height:300px;width:auto;height:auto;object-fit:contain;border-radius:12px;border:1px solid rgba(148,163,184,.2);cursor:zoom-in}.selected-event-image-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background:#020617d1;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:1.25rem}.selected-event-image-zoomed-wrap{display:inline-block;max-width:min(95vw,1200px);max-height:90vh;line-height:0;border-radius:12px;overflow:hidden;background:#ffffff4d;border:1px solid rgba(148,163,184,.35);box-shadow:0 25px 50px -12px #000000a6,0 0 0 1px #ffffff0f;cursor:zoom-out}.selected-event-image-zoomed{display:block;max-width:min(95vw,1200px);max-height:90vh;width:auto;height:auto}.selected-event-dates{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.date-value{font-size:1rem;font-weight:500;color:#60a5fa;background:#3b82f61a;padding:.375rem .75rem;border-radius:8px;border:1px solid rgba(59,130,246,.2)}.date-separator{color:#64748b;font-weight:600;font-size:1.25rem}.selected-event-description{font-size:1rem;color:#cbd5e1;line-height:1.7;margin:0}.selected-event-video{margin-top:.9rem;border-radius:12px;overflow:hidden;border:1px solid rgba(148,163,184,.2);background:#0f172a99}.selected-event-video-frame{display:block;width:100%;aspect-ratio:16 / 9;border:0}.selected-event-note{font-size:.95rem;color:#fbbf24;background:#f59e0b1f;border:1px solid rgba(245,158,11,.25);border-radius:10px;padding:.75rem .9rem;margin:0}.selected-event-link{display:inline-flex;margin-top:.85rem;color:#93c5fd;text-decoration:underline;text-underline-offset:2px;font-weight:500;transition:color .2s ease}.selected-event-link:hover{color:#bfdbfe}.selected-event-attribution{margin-top:.85rem;font-size:.88rem;color:#94a3b8;line-height:1.55}.selected-event-attribution-row{margin:0}.selected-event-attribution-row+.selected-event-attribution-row{margin-top:.15rem}.selected-event-attribution-title{color:#cbd5e1;font-weight:600}.selected-event-attribution-link{color:#93c5fd;text-decoration:underline;text-underline-offset:2px}.selected-event-attribution-link:hover{color:#bfdbfe}.selected-event-indicator{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;background:#0003;border-top:1px solid rgba(148,163,184,.1);font-size:.875rem;color:#64748b}.text-btn{background:none;border:none;color:#60a5fa;cursor:pointer;padding:0;font-size:inherit;font-weight:500;transition:color .2s ease}.text-btn:hover{color:#93c5fd;text-decoration:underline}.selected-event-sub-timeline{margin-top:1.5rem;padding-left:.25rem;display:flex;flex-direction:column;gap:1.75rem}.selected-event-sub-row{display:grid;grid-template-columns:28px 1fr;gap:.75rem 1rem;align-items:start}.selected-event-sub-track{position:relative;display:flex;flex-direction:column;align-items:center;min-height:100%;padding-top:.35rem}.selected-event-sub-axis{position:absolute;left:50%;top:0;bottom:0;width:14px;transform:translate(-50%);border-radius:8px;opacity:.95;background:linear-gradient(to right,transparent 0,transparent 5px,var(--sub-event-accent, #22c55e) 5px,var(--sub-event-accent, #22c55e) 9px,transparent 9px),repeating-linear-gradient(to bottom,transparent 0,transparent 8px,color-mix(in srgb,var(--sub-event-accent, #22c55e) 90%,transparent) 8px,color-mix(in srgb,var(--sub-event-accent, #22c55e) 90%,transparent) 10px,transparent 10px,transparent 16px)}.selected-event-sub-connector{position:relative;z-index:1;display:block;width:16px;height:2px;margin-top:10px;margin-right:-14px;align-self:flex-end;background:color-mix(in srgb,var(--sub-event-accent, #22c55e) 85%,transparent);border-radius:1px}.selected-event-sub-body{min-width:0}.selected-event-sub-title{font-weight:700;color:var(--color-text, #f8fafc);margin:0 0 .35rem;font-size:1rem}.selected-event-sub-meta{font-weight:500;font-size:.78rem;color:var(--color-text-secondary, #94a3b8)}.selected-event-sub-text{margin:0;font-size:.92rem;line-height:1.55;color:var(--color-text-secondary, #cbd5e1)}.selected-event-sub-image-wrap{margin-top:.75rem;border-radius:10px;overflow:hidden;border:1px solid rgba(148,163,184,.2)}.selected-event-sub-image{display:block;width:100%;max-height:220px;object-fit:cover}.selected-event-sub-image-credit{margin:0;padding:.45rem .6rem .5rem;font-size:.74rem;line-height:1.4;color:var(--color-text-secondary, #cbd5e1);background:#0f172ac7;border-top:1px solid rgba(148,163,184,.2)}.selected-event-sub-image-credit-title{font-weight:600;color:var(--color-text, #f8fafc)}.selected-event-sub-video{margin-top:.75rem;border-radius:10px;overflow:hidden;border:1px solid rgba(148,163,184,.2);background:#000}.selected-event-sub-video-frame{display:block;width:100%;aspect-ratio:16 / 9;border:0}.selected-event-sub-link{display:inline-block;margin-top:.6rem;font-size:.84rem;color:#93c5fd;text-decoration:underline;text-underline-offset:2px}@media (max-width: 768px){.selected-event-detail{margin:1rem;border-radius:12px}.selected-event-content{padding:1.25rem 1.5rem}.selected-event-title{font-size:1.5rem}.selected-event-dates{flex-direction:column;align-items:flex-start;gap:.5rem}.date-separator{display:none}.selected-event-indicator{flex-direction:column;gap:.25rem;text-align:center}}.event-form{padding:2rem}.form-header{margin-bottom:2rem}.form-header h2{font-size:1.5rem;margin-bottom:.5rem}.form-header p{font-size:.9rem;color:var(--color-text-secondary)}.form-error-banner{padding:.75rem 1rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);color:var(--color-danger);font-size:.9rem;margin-bottom:1.5rem}.form-input.error,.form-textarea.error{border-color:var(--color-danger)}.form-input.error:focus,.form-textarea.error:focus{box-shadow:0 0 0 3px #ef444433}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.date-type-toggle{display:flex;gap:.5rem;margin-bottom:.5rem}.date-type-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;background:var(--color-bg-tertiary, rgba(255, 255, 255, .05));border:2px solid transparent;border-radius:var(--radius-md, 8px);color:var(--color-text-secondary, #a0a0a0);font-size:.9rem;cursor:pointer;transition:all .2s ease}.date-type-btn svg{width:18px;height:18px}.date-type-btn:hover{background:#ffffff1a;color:var(--color-text, #ffffff)}.date-type-btn.active{background:#6366f126;border-color:var(--color-primary, #6366f1);color:var(--color-primary, #6366f1)}.form-hint{font-size:.8rem;color:var(--color-text-muted, #6b7280);margin-top:.25rem}.label-selector{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}.label-btn{padding:.5rem .75rem;background:var(--color-bg-tertiary, rgba(255, 255, 255, .05));border:2px solid transparent;border-radius:var(--radius-md, 8px);color:var(--color-text-secondary, #a0a0a0);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s ease}.label-btn:hover{background:#ffffff1a}.label-btn.active{color:#fff}.astronomical-input-group{display:flex;gap:.5rem}.astronomical-input-group .form-input{flex:1}.astronomical-input-group .form-select{width:auto;min-width:140px}.form-select{padding:.75rem 1rem;background:var(--color-bg-secondary, #1a1a2e);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md, 8px);color:var(--color-text, #ffffff);font-size:.95rem;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease}.form-select:focus{outline:none;border-color:var(--color-primary, #6366f1);box-shadow:0 0 0 3px #6366f133}.form-preview{display:block;font-size:.85rem;color:var(--color-primary, #6366f1);margin-top:.5rem;font-style:italic}.image-preview-container{display:flex;flex-direction:column;gap:.75rem}.image-preview{max-width:100%;max-height:200px;object-fit:contain;border-radius:var(--radius-md, 8px);border:1px solid rgba(255,255,255,.1)}.image-preview-actions{display:flex;gap:.5rem}.image-upload-options{display:flex;flex-direction:column;gap:.75rem}.image-url-input .form-input{width:100%}.image-upload-divider{font-size:.85rem;color:var(--color-text-muted, #6b7280);text-align:center}.image-file-input{position:absolute;opacity:0;width:0;height:0}.image-file-upload{display:flex;align-items:center}.span-toggle{padding:1rem;background:var(--color-bg-tertiary, rgba(255, 255, 255, .05));border-radius:var(--radius-md, 8px)}.rights-toggle-group{display:flex;flex-direction:column;gap:.75rem;padding:1rem;background:var(--color-bg-tertiary, rgba(255, 255, 255, .05));border-radius:var(--radius-md, 8px)}.toggle-label{display:flex;align-items:center;gap:.75rem;cursor:pointer}.toggle-label input{position:absolute;opacity:0;width:0;height:0}.toggle-switch{position:relative;width:44px;height:24px;background:#ffffff1a;border-radius:12px;transition:background var(--transition-fast);flex-shrink:0}.toggle-switch:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform var(--transition-fast)}.toggle-label input:checked+.toggle-switch{background:var(--color-accent)}.toggle-label input:checked+.toggle-switch:after{transform:translate(20px)}.toggle-text{font-size:.9rem;color:var(--color-text-secondary)}.form-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:2rem;padding-top:2rem;border-top:1px solid rgba(255,255,255,.05)}@media (max-width: 480px){.event-form{padding:1.5rem}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column-reverse}.form-actions .btn{width:100%}}.event-sub-events-panel{display:flex;flex-direction:column;width:100%;max-width:26rem;margin-top:1.25rem;margin-bottom:.25rem;padding:1rem 1.1rem;border:1px solid rgba(148,163,184,.2);border-radius:10px;background:#0f172a73;box-sizing:border-box}.event-sub-events-header{flex-shrink:0}.event-sub-events-title{font-size:.95rem;margin:0 0 .35rem;font-family:inherit;font-weight:600}.event-sub-events-hint{font-size:.75rem;line-height:1.4;color:var(--color-text-secondary, #94a3b8);margin:0 0 .65rem}.event-sub-events-body{flex:1 1 auto;min-height:2.5rem;max-height:11rem;overflow-y:auto;margin-bottom:.65rem;padding-right:.15rem}.event-sub-events-body::-webkit-scrollbar{width:6px}.event-sub-events-body::-webkit-scrollbar-thumb{background:#94a3b859;border-radius:3px}.event-sub-events-empty{font-size:.82rem;color:var(--color-text-secondary, #94a3b8);margin:.35rem 0 0}.event-sub-events-list{list-style:none;margin:0;padding:0}.event-sub-events-item{display:flex;align-items:flex-start;justify-content:space-between;gap:.65rem;padding:.45rem 0;border-bottom:1px solid rgba(255,255,255,.06);font-size:.86rem}.event-sub-events-item:last-child{border-bottom:none;padding-bottom:0}.event-sub-events-item-main{min-width:0;flex:1}.event-sub-events-item-main strong{display:block;font-weight:600}.event-sub-events-date{display:block;font-size:.72rem;color:var(--color-text-secondary, #94a3b8);margin-top:.12rem}.event-sub-events-item-actions{display:flex;gap:.3rem;flex-shrink:0}.event-sub-events-footer{flex-shrink:0;display:flex;justify-content:flex-end;padding-top:.15rem;border-top:1px solid rgba(148,163,184,.12);margin-top:auto}.event-sub-events-add-btn{display:inline-flex;align-items:center;justify-content:center;padding:.45rem .9rem;font-size:.78rem;font-weight:600;letter-spacing:.02em;color:var(--color-text, #e2e8f0);background:transparent;border:1px solid rgba(148,163,184,.45);border-radius:999px;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease}.event-sub-events-add-btn:hover{border-color:#22c55ea6;background:#22c55e14;color:#86efac}.event-sub-events-add-btn:focus-visible{outline:2px solid rgba(34,197,94,.5);outline-offset:2px}.form-overlay--sub{z-index:10020}.home-page{max-width:100vw;margin:0 auto}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.hero-section{text-align:center;padding:3rem 1rem;margin-bottom:2rem}.hero-title{font-size:3.5rem;background:linear-gradient(135deg,var(--color-text),var(--color-accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:1rem}.hero-subtitle{font-size:1.2rem;color:var(--color-text-secondary);max-width:600px;margin:0 auto;line-height:1.7}.filter-section{display:flex;justify-content:center;margin-bottom:2rem}.filter-buttons{display:flex;gap:.5rem;padding:.25rem;background:var(--color-bg-secondary);border-radius:var(--radius-lg)}.filter-btn{padding:.75rem 1.25rem;background:transparent;border:none;border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:.9rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.filter-btn:hover{color:var(--color-text);background:#ffffff0d}.filter-btn.active{background:var(--color-accent);color:#fff}.label-filter-bar{display:flex;align-items:center;justify-content:center;gap:.5rem;flex-wrap:wrap;margin-bottom:1.5rem}.label-filter-bar .filter-label-text{font-size:.85rem;color:var(--color-text-secondary);font-weight:500;margin-right:.25rem}.filter-mode-toggle{display:flex;background:var(--color-bg-secondary);border:1px solid rgba(255,255,255,.08);border-radius:999px;padding:2px;margin-right:.35rem}.filter-mode-btn{padding:.3rem .7rem;background:transparent;border:none;border-radius:999px;color:var(--color-text-secondary);font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.filter-mode-btn:hover{color:var(--color-text)}.filter-mode-btn.active{background:var(--color-accent);color:#fff;box-shadow:0 1px 4px #6366f14d}.label-filter-chip{padding:.4rem .85rem;background:var(--color-bg-secondary);border:1.5px solid rgba(255,255,255,.08);border-radius:999px;color:var(--color-text-secondary);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.label-filter-chip:hover{border-color:#fff3;color:var(--color-text);background:#ffffff0f}.label-filter-chip.active{color:#fff}.event-label-badge{display:inline-block;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:.2rem .5rem;border-radius:var(--radius-sm)}.timeline-section{margin-bottom:3rem}.loading-state,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;color:var(--color-text-secondary)}.loading-spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--color-accent);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.error-state{color:var(--color-warning);font-style:italic}.selected-event-section{padding:0 1rem;margin-bottom:2rem}.events-list-section{padding-top:2rem;border-top:1px solid rgba(255,255,255,.05)}.events-list-section h2{text-align:center;margin-bottom:1.25rem;color:var(--color-text)}.search-bar-wrapper{position:relative;max-width:480px;margin:0 auto 2rem}.search-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--color-text-secondary);pointer-events:none}.search-input{width:100%;padding:.75rem 2.5rem .75rem 2.75rem;background:var(--color-bg-secondary);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);color:var(--color-text);font-size:.95rem;font-family:var(--font-body);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);outline:none}.search-input::placeholder{color:var(--color-text-secondary);opacity:.6}.search-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-light)}.search-clear-btn{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:#ffffff0f;border:none;border-radius:50%;color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.search-clear-btn:hover{background:#ffffff1f;color:var(--color-text)}.events-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.event-card{background:var(--color-bg-secondary);border:1px solid rgba(255,255,255,.05);border-radius:var(--radius-lg);padding:1.5rem;cursor:pointer;transition:all var(--transition-normal)}.event-card:hover{border-color:var(--color-accent);transform:translateY(-2px);box-shadow:0 8px 30px #6366f126}.event-card--selected{border-color:var(--color-accent);background:var(--color-bg-tertiary);box-shadow:0 0 0 2px var(--color-accent-light),0 8px 30px #6366f133}.event-card--selected:hover{box-shadow:0 0 0 2px var(--color-accent-light),0 8px 30px #6366f140}.event-card-header{margin-bottom:1rem}.event-badges{display:flex;gap:.5rem;margin-bottom:.75rem;flex-wrap:wrap}.event-type-badge{display:inline-block;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:.2rem .5rem;border-radius:var(--radius-sm)}.event-type-badge.point{background:#f59e0b33;color:var(--color-point)}.event-type-badge.span{background:#6366f133;color:var(--color-accent)}.event-type-badge.astronomical{background:#8b5cf633;color:#a78bfa}.event-type-badge.historical{background:#10b98133;color:var(--color-success, #10b981)}.event-type-badge.unpublished{background:#ef444433;color:#fca5a5}.event-card h3{font-size:1.2rem;color:var(--color-text);line-height:1.4}.event-description{font-size:.9rem;color:var(--color-text-secondary);line-height:1.6;margin-bottom:1rem;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.event-description--restricted{color:#fbbf24;background:#f59e0b1a;border:1px dashed rgba(245,158,11,.35);border-radius:8px;padding:.55rem .65rem;line-clamp:unset;-webkit-line-clamp:unset;-webkit-box-orient:initial;display:block}.event-dates{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--color-accent);font-weight:500}.date-arrow{opacity:.5}.home-page .form-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.home-page .form-modal{width:100%;max-width:500px;max-height:90vh;overflow-y:auto;background:var(--color-bg-secondary);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}@media (max-width: 768px){.hero-title{font-size:2.5rem}.hero-subtitle{font-size:1rem}.filter-buttons{flex-wrap:wrap;justify-content:center}.filter-btn{padding:.5rem 1rem;font-size:.85rem}.events-grid{grid-template-columns:1fr}}.game-page .game-hero{padding-bottom:1.5rem;margin-bottom:1.25rem}.multiplayer-panel{position:fixed;top:84px;left:16px;z-index:80;width:min(320px,calc(100vw - 32px));padding:.75rem;border-radius:12px;border:1px solid rgba(148,163,184,.28);background:#020617cc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;flex-direction:column;gap:.45rem}.multiplayer-panel h3{margin:0 0 .1rem;font-size:.9rem;color:#e2e8f0}.player-row{display:flex;align-items:center;gap:.5rem}.player-row input{flex:1;min-width:0;background:#0f172acc;border:1px solid rgba(148,163,184,.4);border-radius:8px;color:#f8fafc;font-size:.84rem;padding:.38rem .55rem}.player-row.active input{border-color:#22c55ed9;box-shadow:0 0 0 2px #22c55e33}.player-meta{min-width:82px;display:inline-flex;align-items:center;justify-content:flex-end;gap:.38rem;color:#cbd5e1;font-size:.78rem;font-weight:600}.player-color{width:10px;height:10px;border-radius:999px;box-shadow:0 0 0 1px #ffffff40}.multiplayer-mode-pill{align-self:flex-start;border-radius:999px;border:1px solid rgba(59,130,246,.55);background:#2563eb38;color:#bfdbfe;font-size:.72rem;font-weight:700;letter-spacing:.03em;padding:.24rem .52rem}.game-controls{margin-top:1rem;display:flex;align-items:center;justify-content:center;gap:.75rem;flex-wrap:wrap}.game-status-pill{border-radius:999px;padding:.45rem .8rem;font-size:.82rem;font-weight:600;letter-spacing:.01em}.game-status-pill.active{border:1px solid rgba(45,212,191,.6);background:#0d948833;color:#99f6e4}.game-status-pill.revealed{border:1px solid rgba(249,115,22,.6);background:#ea580c33;color:#fdba74}.game-total-points{border:1px solid rgba(148,163,184,.45);background:#0f172a73;color:#e2e8f0;border-radius:999px;padding:.42rem .78rem;font-size:.8rem;font-weight:600}.points-popup{margin:.55rem auto 0;width:fit-content;border:1px solid rgba(34,197,94,.6);background:#14532d73;color:#86efac;border-radius:999px;padding:.36rem .72rem;font-size:.86rem;font-weight:700;letter-spacing:.01em}.game-error{margin-top:.8rem;text-align:center;color:#fca5a5;font-size:.9rem}.game-page.game-round-focus .label-filter-bar,.game-page.game-round-focus .events-list-section,.game-page.game-round-focus .selected-event-section{display:none}@media (max-width: 960px){.multiplayer-panel{position:static;width:100%;margin-bottom:.8rem}}.admin-page{max-width:1200px;margin:0 auto}.admin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid rgba(255,255,255,.05)}.header-content h1{font-size:2rem;margin-bottom:.5rem}.header-content p{color:var(--color-text-secondary)}.btn-icon{width:18px;height:18px}.action-message{padding:1rem 1.5rem;border-radius:var(--radius-md);margin-bottom:1.5rem;font-size:.9rem}.action-message.success{background:#10b9811a;border:1px solid rgba(16,185,129,.3);color:var(--color-success)}.action-message.error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:var(--color-danger)}.search-container{margin-bottom:1.5rem}.search-input-wrapper{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:1rem;width:20px;height:20px;color:var(--color-text-secondary);pointer-events:none}.search-input{width:100%;padding:.875rem 2.75rem .875rem 3rem;background:var(--color-bg-secondary);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-lg);color:var(--color-text);font-size:.95rem;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.search-input::placeholder{color:var(--color-text-secondary)}.search-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #6366f126}.search-clear-btn{position:absolute;right:.75rem;display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:#ffffff0d;border:none;border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.search-clear-btn:hover{background:#ffffff1a;color:var(--color-text)}.search-clear-btn svg{width:14px;height:14px}.search-results-count{display:block;margin-top:.5rem;font-size:.85rem;color:var(--color-text-secondary)}.admin-filter-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:.85rem}.admin-filter-item{display:flex;flex-direction:column;gap:.35rem}.admin-filter-item span{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary)}.admin-filter-select{padding:.55rem .65rem;background:var(--color-bg-secondary);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);color:var(--color-text)}.admin-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem;margin-bottom:2rem}.stat-card{background:var(--color-bg-secondary);border:1px solid rgba(255,255,255,.05);border-radius:var(--radius-lg);padding:1.5rem;text-align:center}.stat-number{display:block;font-size:2.5rem;font-weight:700;color:var(--color-accent);margin-bottom:.25rem}.stat-label{font-size:.9rem;color:var(--color-text-secondary)}.form-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.form-modal{width:100%;max-width:500px;max-height:90vh;overflow-y:auto;background:var(--color-bg-secondary);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.events-table-container{background:var(--color-bg-secondary);border:1px solid rgba(255,255,255,.05);border-radius:var(--radius-lg);overflow:hidden}.events-table{width:100%;border-collapse:collapse}.events-table th,.events-table td{padding:1rem 1.25rem;text-align:left}.events-table th{background:var(--color-bg-tertiary);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary)}.events-table th.sortable-header{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast),color var(--transition-fast)}.events-table th.sortable-header:hover{background:#ffffff0d;color:var(--color-text)}.events-table th .header-content{display:flex;align-items:center;gap:.5rem}.sort-indicator{display:flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--color-accent)}.sort-indicator svg{width:14px;height:14px}.events-table tbody tr{border-top:1px solid rgba(255,255,255,.05);transition:background var(--transition-fast)}.events-table tbody tr:hover{background:#ffffff05}.event-title-cell{display:flex;flex-direction:column;gap:.25rem}.event-title-cell strong{color:var(--color-text)}.event-preview{font-size:.8rem;color:var(--color-text-secondary)}.type-badge{display:inline-block;font-size:.7rem;font-weight:600;text-transform:uppercase;padding:.25rem .5rem;border-radius:var(--radius-sm)}.type-badge.point{background:#f59e0b33;color:var(--color-point)}.type-badge.span{background:#6366f133;color:var(--color-accent)}.type-badge.astronomical{background:#8b5cf633;color:#a78bfa}.type-badge.historical{background:#10b98133;color:var(--color-success, #10b981)}.admin-status-badges{display:flex;flex-wrap:wrap;gap:.35rem}.status-badge{display:inline-block;font-size:.68rem;font-weight:600;text-transform:uppercase;padding:.2rem .5rem;border-radius:var(--radius-sm)}.status-badge.published{background:#10b9812e;color:#34d399}.status-badge.unpublished{background:#ef44442e;color:#fca5a5}.status-badge.checked{background:#3b82f62e;color:#93c5fd}.status-badge.unchecked{background:#f59e0b2e;color:#fcd34d}.label-badge{display:inline-block;font-size:.7rem;font-weight:600;text-transform:uppercase;padding:.25rem .5rem;border-radius:var(--radius-sm)}.label-badge.label-none{background:#6b728033;color:#9ca3af}.label-management{background:var(--color-bg-secondary);border:1px solid rgba(255,255,255,.05);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.5rem}.label-management-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.label-management-header h2{font-size:1.1rem;margin:0}.label-add-form{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;overflow:hidden}.label-add-form .form-input{flex:1;padding:.5rem .75rem;background:var(--color-bg-tertiary, rgba(255, 255, 255, .05));border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);color:var(--color-text);font-size:.9rem}.color-picker{width:36px;height:36px;border:none;border-radius:var(--radius-md);cursor:pointer;padding:0;background:none}.color-picker::-webkit-color-swatch-wrapper{padding:2px}.color-picker::-webkit-color-swatch{border:1px solid rgba(255,255,255,.2);border-radius:4px}.label-chips{display:flex;flex-wrap:wrap;gap:.5rem}.label-chip{display:flex;align-items:center;gap:.4rem;padding:.35rem .6rem;border:1.5px solid;border-radius:999px;font-size:.8rem}.label-chip-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.label-chip-name{color:var(--color-text);font-weight:500}.label-chip-count{font-size:.7rem;color:var(--color-text-secondary);background:#ffffff0f;padding:0 .4rem;border-radius:999px}.label-chip--clickable{cursor:pointer;transition:all .15s ease}.label-chip--clickable:hover{transform:translateY(-1px);box-shadow:0 2px 8px #0003}.label-chip--editing{gap:.35rem;padding:.25rem .5rem}.label-edit-color{width:24px;height:24px;border:none;border-radius:50%;cursor:pointer;padding:0;background:none;flex-shrink:0}.label-edit-color::-webkit-color-swatch-wrapper{padding:1px}.label-edit-color::-webkit-color-swatch{border:1px solid rgba(255,255,255,.2);border-radius:50%}.label-edit-name{width:100px;padding:.2rem .4rem;background:var(--color-bg-tertiary, rgba(255, 255, 255, .05));border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-sm);color:var(--color-text);font-size:.8rem;font-weight:500;outline:none}.label-edit-name:focus{border-color:var(--color-accent)}.label-edit-save,.label-edit-cancel{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:2px;border-radius:50%;transition:all .15s ease}.label-edit-save{color:var(--color-success, #10b981)}.label-edit-save:hover{background:#10b98126}.label-edit-save:disabled{opacity:.4;cursor:not-allowed}.label-edit-cancel{color:var(--color-text-secondary)}.label-edit-cancel:hover{color:var(--color-danger, #ef4444);background:#ef44441a}.label-chip-delete{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:2px;border-radius:50%;transition:all .15s ease}.label-chip-delete:hover{color:var(--color-danger, #ef4444);background:#ef44441a}.label-chips-empty{font-size:.85rem;color:var(--color-text-secondary);font-style:italic}.date-cell{font-size:.85rem;color:var(--color-text-secondary);max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action-buttons{display:flex;gap:.5rem}.action-buttons .btn{width:36px;height:36px;padding:0}.action-buttons svg{width:16px;height:16px}.loading-state,.error-state,.empty-state{padding:4rem 2rem;text-align:center}.loading-spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--color-accent);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}@keyframes spin{to{transform:rotate(360deg)}}.empty-icon{width:60px;height:60px;color:var(--color-text-secondary);margin-bottom:1rem}.empty-state h3{margin-bottom:.5rem}.empty-state p{margin-bottom:1.5rem}@media (max-width: 1024px){.admin-stats{grid-template-columns:repeat(3,1fr)}}@media (max-width: 768px){.admin-header{flex-direction:column;gap:1rem;text-align:center}.admin-stats{grid-template-columns:repeat(2,1fr)}.events-table{display:block;overflow-x:auto}.events-table th,.events-table td{padding:.75rem 1rem;white-space:nowrap}.admin-filter-row{grid-template-columns:1fr}.form-overlay{padding:1rem}.date-cell{max-width:120px}}@media (max-width: 480px){.admin-stats{grid-template-columns:1fr}}.admin-badge-sub{display:inline-block;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:.15rem .4rem;border-radius:4px;background:#22c55e33;color:#22c55e;margin-right:.5rem;vertical-align:middle}.login-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - 200px);padding:2rem}.login-card{width:100%;max-width:420px;background:var(--color-bg-secondary);border:1px solid rgba(255,255,255,.05);border-radius:var(--radius-lg);padding:2.5rem;box-shadow:var(--shadow-lg)}.login-header{text-align:center;margin-bottom:2rem}.login-icon{width:60px;height:60px;margin:0 auto 1.5rem;padding:1rem;background:var(--color-accent-light);border-radius:50%;color:var(--color-accent)}.login-icon svg{width:100%;height:100%}.login-header h1{font-size:1.75rem;margin-bottom:.5rem}.login-header p{font-size:.9rem;color:var(--color-text-secondary)}.login-form{margin-bottom:1.5rem}.form-message{padding:.75rem 1rem;border-radius:var(--radius-md);font-size:.9rem;margin-bottom:1.25rem}.form-message.error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:var(--color-danger)}.form-message.success{background:#10b9811a;border:1px solid rgba(16,185,129,.3);color:var(--color-success)}.login-btn{width:100%;padding:1rem;font-size:1rem;margin-top:.5rem}.btn-loading{display:flex;align-items:center;justify-content:center;gap:.25rem}.loading-dot{width:6px;height:6px;background:#fff;border-radius:50%;animation:bounce 1.4s infinite ease-in-out both}.loading-dot:nth-child(1){animation-delay:-.32s}.loading-dot:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.login-footer{text-align:center;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.05)}.login-footer p{font-size:.9rem;color:var(--color-text-secondary)}.toggle-btn{background:none;border:none;color:var(--color-accent);font-size:.9rem;font-weight:500;cursor:pointer;margin-left:.5rem;transition:color var(--transition-fast)}.toggle-btn:hover{color:var(--color-accent-hover)}.login-info{margin-top:2rem;padding:1.5rem;background:var(--color-bg-tertiary);border-radius:var(--radius-lg);text-align:center;max-width:420px}.login-info h3{font-size:1rem;margin-bottom:.5rem;color:var(--color-text-secondary)}.login-info p{font-size:.85rem;color:var(--color-text-secondary);line-height:1.6}@media (max-width: 480px){.login-card{padding:1.5rem}.login-header h1{font-size:1.5rem}}.header{background:var(--color-bg-secondary);border-bottom:1px solid rgba(255,255,255,.05);position:sticky;top:0;z-index:100}.header-container{max-width:1400px;margin:0 auto;padding:1rem 2rem;display:flex;align-items:center;justify-content:space-between}.header-logo{display:flex;align-items:center;gap:.75rem;color:var(--color-text);text-decoration:none;transition:color var(--transition-fast)}.header-logo:hover{color:var(--color-accent)}.logo-icon{width:28px;height:28px;color:var(--color-accent)}.logo-text{font-family:var(--font-display);font-size:1.5rem;font-weight:600}.header-nav{display:flex;align-items:center;gap:1.5rem}.nav-link{color:var(--color-text-secondary);font-size:.9rem;font-weight:500;transition:color var(--transition-fast)}.nav-link:hover{color:var(--color-text)}.nav-user{display:flex;align-items:center;gap:1rem}.user-email{font-size:.85rem;color:var(--color-text-secondary)}@media (max-width: 768px){.header-container{padding:1rem}.logo-text{font-size:1.25rem}.user-email{display:none}.header-nav{gap:1rem}}:root{--color-bg: #141425;--color-bg-secondary: #1a1a2e;--color-bg-tertiary: #252542;--color-text: #ffffff;--color-text-secondary: #a0a0b0;--color-accent: #6366f1;--color-accent-hover: #818cf8;--color-accent-light: rgba(99, 102, 241, .15);--color-success: #10b981;--color-warning: #f59e0b;--color-danger: #ef4444;--color-timeline: #4f46e5;--color-point: #f59e0b;--color-span: rgba(99, 102, 241, .6);--font-display: "Playfair Display", serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .4);--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-body);background:var(--color-bg);color:var(--color-text);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:600;line-height:1.3}h1{font-size:3rem}h2{font-size:2.25rem}h3{font-size:1.5rem}h4{font-size:1.25rem}p{color:var(--color-text-secondary)}a{color:var(--color-accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent-hover)}.app{min-height:100vh;display:flex;flex-direction:column}.main-content{flex:1;padding:2rem;max-width:1400px;margin:0 auto;width:100%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;font-family:var(--font-body);font-size:.9rem;font-weight:500;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.btn-primary{background:var(--color-accent);color:#fff}.btn-primary:hover{background:var(--color-accent-hover);transform:translateY(-1px)}.btn-secondary{background:var(--color-bg-tertiary);color:var(--color-text);border:1px solid rgba(255,255,255,.1)}.btn-secondary:hover{background:var(--color-bg-secondary);border-color:var(--color-accent)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{background:#dc2626}.btn-sm{padding:.5rem 1rem;font-size:.8rem}.form-group{margin-bottom:1.25rem}.form-label{display:block;margin-bottom:.5rem;font-size:.9rem;font-weight:500;color:var(--color-text-secondary)}.form-input,.form-textarea,.form-select{width:100%;padding:.75rem 1rem;font-family:var(--font-body);font-size:1rem;color:var(--color-text);background:var(--color-bg-tertiary);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);transition:all var(--transition-fast)}.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-light)}.form-textarea{min-height:120px;resize:vertical}.form-error{margin-top:.25rem;font-size:.8rem;color:var(--color-danger)}.card{background:var(--color-bg-secondary);border:1px solid rgba(255,255,255,.05);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-md)}.text-center{text-align:center}.text-right{text-align:right}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.mb-4{margin-bottom:2rem}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:.5rem}.gap-2{gap:1rem}.gap-3{gap:1.5rem}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-fade-in{animation:fadeIn .4s ease forwards}@media (max-width: 768px){h1{font-size:2rem}h2{font-size:1.75rem}.main-content{padding:1rem}}
