.timeline-river{position:relative;padding:2rem 0;overflow:visible;pointer-events:none}.timeline-river>*{pointer-events:auto}.river-path-container{position:absolute;left:0;right:0;top:0;bottom:0;pointer-events:none;z-index:1;overflow:visible}.river-path-svg{position:absolute;left:50%;top:0;width:120px;height:100%;transform:translate(-50%);overflow:visible}.river-svg-container{position:absolute;left:0;right:0;top:0;bottom:0;pointer-events:none;z-index:1;overflow:visible}.river-svg{position:absolute;left:50%;top:0;width:100px;height:100%;transform:translate(-50%);overflow:visible}.river-path{fill:none;stroke:var(--python-blue);stroke-width:8;stroke-linecap:round;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 20px rgba(55,118,171,.4)) drop-shadow(0 0 40px rgba(55,118,171,.2))}.river-flow-path{fill:none;stroke:url(#riverGradient);stroke-width:8;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:60 40;animation:riverFlowAnimation 4s linear infinite}.river-glow-path{fill:none;stroke:var(--python-yellow);stroke-width:12;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.2;filter:blur(8px);animation:riverGlowPulse 3s ease-in-out infinite}.river-highlight-path{fill:none;stroke:#ffffff4d;stroke-width:4;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:40 60;animation:riverFlowAnimation 3s linear infinite reverse}@keyframes riverFlowAnimation{0%{stroke-dashoffset:0}to{stroke-dashoffset:100}}@keyframes riverGlowPulse{0%,to{opacity:.15;stroke-width:12}50%{opacity:.3;stroke-width:16}}.river-wave{position:absolute;left:50%;top:0;bottom:0;width:20px;transform:translate(-50%);pointer-events:none;z-index:3;background:repeating-linear-gradient(to bottom,transparent 0px,rgba(255,255,255,.1) 50px,transparent 100px);animation:waveFlow 2s linear infinite;opacity:.5}@keyframes waveFlow{0%{background-position:0 0}to{background-position:0 100px}}.timeline-event{position:relative;display:flex;align-items:flex-start;margin:3rem 0;opacity:0;transform:translateY(30px);transition:opacity .6s ease-out,transform .6s ease-out;z-index:10}.timeline-event.visible{opacity:1;transform:translateY(0)}.timeline-event:nth-child(odd){flex-direction:row;padding-right:52%}.timeline-event:nth-child(2n){flex-direction:row-reverse;padding-left:52%}.timeline-dot{position:absolute;left:50%;top:1.5rem;width:24px;height:24px;background:var(--python-blue);border:4px solid var(--python-yellow);border-radius:50%;transform:translate(-50%);z-index:50;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 0 #ffd43b66,0 4px 12px #00000026;animation:dotFloat 4s ease-in-out infinite}@keyframes dotFloat{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-3px)}}.timeline-event:nth-child(odd) .timeline-dot{animation-delay:0s}.timeline-event:nth-child(2n) .timeline-dot{animation-delay:2s}.timeline-event:hover .timeline-dot{transform:translate(-50%) scale(1.3);box-shadow:0 0 0 10px #ffd43b40,0 0 30px #ffd43b66,0 8px 20px #0003;animation:none}.timeline-dot:before{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border:2px solid var(--python-yellow);border-radius:50%;opacity:0;animation:dotRipple 3s ease-out infinite}@keyframes dotRipple{0%{transform:scale(.8);opacity:.6}to{transform:scale(1.8);opacity:0}}.timeline-dot.major{width:36px;height:36px;background:linear-gradient(135deg,var(--python-yellow) 0%,#e6c135 100%);border-color:var(--python-blue);border-width:5px;box-shadow:0 0 20px #ffd43b80,0 4px 15px #0003}.timeline-dot.pep{background:linear-gradient(135deg,#10b981,#059669);border-color:#34d399;box-shadow:0 0 15px #10b98166,0 4px 12px #00000026}.timeline-dot.organization{background:linear-gradient(135deg,#8b5cf6,#7c3aed);border-color:#a78bfa;box-shadow:0 0 15px #8b5cf666,0 4px 12px #00000026}.timeline-dot.community{background:linear-gradient(135deg,#ec4899,#db2777);border-color:#f472b6;box-shadow:0 0 15px #ec489966,0 4px 12px #00000026}.timeline-connector{position:absolute;top:2rem;height:2px;background:linear-gradient(to right,var(--python-blue),rgba(55,118,171,.3));z-index:5}.timeline-event:nth-child(odd) .timeline-connector{right:48%;left:auto;width:2%}.timeline-event:nth-child(2n) .timeline-connector{left:48%;right:auto;width:2%;background:linear-gradient(to left,var(--python-blue),rgba(55,118,171,.3))}.timeline-card{position:relative;background:oklch(var(--b1));border-radius:1rem;padding:1.5rem;box-shadow:0 4px 20px #0000001a;transition:all .3s ease;cursor:pointer;width:100%;overflow:hidden}.timeline-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--python-blue),var(--python-yellow));transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.timeline-card:hover{transform:translateY(-4px);box-shadow:0 8px 30px #00000026}.timeline-card:hover:before{transform:scaleX(1)}.timeline-card.major-release{border-left:4px solid var(--python-yellow)}.timeline-card.pep-card{border-left:4px solid #10b981}.timeline-card.org-card{border-left:4px solid #8b5cf6}.timeline-card.community-card{border-left:4px solid #ec4899}.timeline-year{display:inline-flex;align-items:center;gap:.5rem;padding:.25rem .75rem;background:linear-gradient(135deg,var(--python-blue),#2c5f8a);color:#fff;border-radius:9999px;font-size:.875rem;font-weight:600;margin-bottom:.75rem}.timeline-year-month{opacity:.8;font-weight:400}.timeline-title{font-size:1.25rem;font-weight:700;color:var(--python-blue);margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem}.timeline-tag{display:inline-block;padding:.125rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.timeline-tag.release{background:#ffd43b33;color:#b8860b}.timeline-tag.pep{background:#10b98133;color:#059669}.timeline-tag.event{background:#8b5cf633;color:#7c3aed}.timeline-tag.milestone{background:#ec489933;color:#db2777}.timeline-description{color:oklch(var(--bc) / .7);line-height:1.6;margin-bottom:1rem}.timeline-details{max-height:0;overflow:hidden;transition:max-height .4s ease-out,padding .4s ease-out;padding:0}.timeline-details.expanded{max-height:500px;padding-top:1rem;border-top:1px solid oklch(var(--bc) / .1)}.timeline-details-content{opacity:0;transform:translateY(-10px);transition:opacity .3s ease,transform .3s ease;transition-delay:.1s}.timeline-details.expanded .timeline-details-content{opacity:1;transform:translateY(0)}.timeline-expand{display:flex;align-items:center;gap:.25rem;color:var(--python-blue);font-size:.875rem;font-weight:500;cursor:pointer;transition:color .2s}.timeline-expand:hover{color:var(--python-yellow)}.timeline-expand-icon{transition:transform .3s ease}.timeline-expand.expanded .timeline-expand-icon{transform:rotate(180deg)}.pep-link{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;background:#3776ab1a;color:var(--python-blue);border-radius:.25rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .2s}.pep-link:hover{background:var(--python-blue);color:#fff}.timeline-highlights{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.timeline-highlight{padding:.25rem .75rem;background:oklch(var(--b2));border-radius:9999px;font-size:.8rem;color:oklch(var(--bc) / .8)}.timeline-highlight-rainbow{background:linear-gradient(135deg,#ff6b6b,#feca57,#48dbfb,#ff9ff3,#54a0ff);background-size:300% 300%;animation:rainbowShift 3s ease infinite;color:#fff;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.3);border:2px solid rgba(255,255,255,.3);box-shadow:0 2px 10px #ff6b6b66}.repl-rainbow:nth-child(1){color:#ff6b6b}.repl-rainbow:nth-child(2){color:#feca57}.repl-rainbow:nth-child(3){color:#48dbfb}.repl-rainbow:nth-child(4){color:#ff9ff3}.timeline-highlight-rainbow .repl-rainbow{color:inherit;font-weight:800;animation:letterPop .5s ease forwards}.timeline-highlight-rainbow .repl-rainbow:nth-child(1){animation-delay:0s}.timeline-highlight-rainbow .repl-rainbow:nth-child(2){animation-delay:.1s}.timeline-highlight-rainbow .repl-rainbow:nth-child(3){animation-delay:.2s}.timeline-highlight-rainbow .repl-rainbow:nth-child(4){animation-delay:.3s}@keyframes rainbowShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes letterPop{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.timeline-links{display:flex;flex-wrap:wrap;gap:.5rem}.timeline-external-link{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;background:#3776ab1a;color:var(--python-blue);border-radius:.25rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .2s}.timeline-external-link:hover{background:var(--python-blue);color:#fff}.timeline-external-link svg{width:1rem;height:1rem}.timeline-particles{position:absolute;left:50%;top:0;bottom:0;width:100px;transform:translate(-50%);pointer-events:none;overflow:hidden}.particle{position:absolute;width:8px;height:8px;background:var(--python-yellow);border-radius:50%;opacity:0;animation:particleFloat 6s ease-in-out infinite;box-shadow:0 0 10px #ffd43bcc}.particle:nth-child(1){left:45%;animation-delay:0s}.particle:nth-child(2){left:50%;animation-delay:1.2s}.particle:nth-child(3){left:55%;animation-delay:2.4s}.particle:nth-child(4){left:48%;animation-delay:3.6s}.particle:nth-child(5){left:52%;animation-delay:4.8s}@keyframes particleFloat{0%{transform:translateY(100vh) scale(.5);opacity:0}5%{opacity:1}95%{opacity:1}to{transform:translateY(-100px) scale(1);opacity:0}}.timeline-era{position:relative;text-align:center;margin:4rem 0 2rem;z-index:20}.timeline-era-badge{display:inline-block;padding:.75rem 2rem;background:linear-gradient(135deg,var(--python-blue) 0%,#2c5f8a 100%);color:#fff;border-radius:9999px;font-size:1.125rem;font-weight:700;box-shadow:0 4px 15px #3776ab66;animation:eraPulse 2s ease-in-out infinite}@keyframes eraPulse{0%,to{box-shadow:0 4px 15px #3776ab66}50%{box-shadow:0 4px 25px #3776ab99}}.timeline-progress{position:fixed;left:1rem;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:.5rem;z-index:100;opacity:0;transition:opacity .3s}.timeline-progress.visible{opacity:1}.progress-dot{width:12px;height:12px;border-radius:50%;background:oklch(var(--b3));border:2px solid oklch(var(--bc) / .2);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}.progress-dot.active{width:18px;height:18px;background:var(--python-blue);border-color:var(--python-yellow);border-width:3px;box-shadow:0 0 0 4px #ffd43b4d,0 0 12px #3776ab80}.progress-dot:hover{transform:scale(1.2)}.progress-dot.active:hover{transform:scale(1.1)}.progress-dot:after{content:attr(data-year);position:absolute;left:1.5rem;top:50%;transform:translateY(-50%);background:var(--python-blue);color:#fff;padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s}.progress-dot:hover:after{opacity:1}@media(max-width:768px){.river-svg{left:1.5rem;transform:translate(0)}.timeline-event,.timeline-event:nth-child(odd),.timeline-event:nth-child(2n){flex-direction:row;padding-left:4rem;padding-right:1rem}.timeline-dot{left:1.5rem}.timeline-connector{display:none}.timeline-particles{left:1.5rem}.timeline-progress{display:none}.timeline-card{padding:1rem}.timeline-title{font-size:1rem}}.timeline-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin-bottom:2rem}.timeline-filter-btn{padding:.5rem 1rem;border:2px solid oklch(var(--bc) / .2);background:transparent;border-radius:9999px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.timeline-filter-btn:hover{border-color:var(--python-blue);color:var(--python-blue)}.timeline-filter-btn.active{background:var(--python-blue);border-color:var(--python-blue);color:#fff}.timeline-filter-btn[data-filter=release].active{background:#b8860b;border-color:#b8860b}.timeline-filter-btn[data-filter=pep].active{background:#059669;border-color:#059669}.timeline-filter-btn[data-filter=event].active{background:#7c3aed;border-color:#7c3aed}.timeline-filter-btn[data-filter=milestone].active{background:#db2777;border-color:#db2777}.timeline-scroll-hint{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;animation:scrollHintBounce 2s ease-in-out infinite}.scroll-hint-text{font-size:.875rem;color:oklch(var(--bc) / .6);margin-bottom:.5rem}.scroll-hint-arrow{width:24px;height:24px;border-right:2px solid var(--python-blue);border-bottom:2px solid var(--python-blue);transform:rotate(45deg)}@keyframes scrollHintBounce{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(10px)}}.timeline-search{position:relative;max-width:400px;margin:0 auto 2rem}.timeline-search-input{width:100%;padding:.75rem 1rem .75rem 2.5rem;border:2px solid oklch(var(--bc) / .2);border-radius:9999px;background:oklch(var(--b1));font-size:1rem;transition:all .2s}.timeline-search-input:focus{outline:none;border-color:var(--python-blue);box-shadow:0 0 0 3px #3776ab33}.timeline-search-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:oklch(var(--bc) / .5)}.timeline-stats{display:flex;justify-content:center;gap:2rem;padding:1.5rem;background:oklch(var(--b2));border-radius:1rem;margin-bottom:2rem}.timeline-stat{text-align:center}.timeline-stat-value{font-size:2rem;font-weight:700;color:var(--python-blue);line-height:1}.timeline-stat-label{font-size:.875rem;color:oklch(var(--bc) / .6);margin-top:.25rem}.version-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.25rem .75rem;background:linear-gradient(135deg,var(--python-yellow),#e6c135);color:#1a1a1a;border-radius:.375rem;font-weight:600;font-size:.875rem}.version-badge svg{width:16px;height:16px}.timeline-terminus{position:relative;display:flex;flex-direction:column;align-items:center;margin-top:2rem;padding:0 2rem 3rem;z-index:30;background:transparent}.timeline-terminus:after,.timeline-terminus:before{display:none}.terminus-logo-container{position:relative;width:100px;height:100px;display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,#3776ab,#306998,#ffd43b);border-radius:50%;box-shadow:0 0 0 4px oklch(var(--b1)),0 0 0 6px var(--python-blue),0 0 25px #3776ab4d;animation:terminusPulse 3s ease-in-out infinite}.terminus-logo{width:60px;height:60px}.terminus-year{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1.5rem;padding:.625rem 2rem;background:var(--python-blue);color:#fff;border-radius:9999px;font-weight:700;font-size:1.25rem;box-shadow:0 4px 15px #3776ab66,0 0 0 4px oklch(var(--b1)),0 0 0 6px var(--python-yellow);z-index:40}.terminus-year:before{content:"";width:10px;height:10px;background:var(--python-yellow);border-radius:50%;animation:terminusBlink 1.5s ease-in-out infinite}.terminus-text{margin-top:1.5rem;text-align:center;position:relative;z-index:50}.terminus-title{font-size:1.75rem;font-weight:800;color:var(--python-blue);letter-spacing:-.02em}.terminus-subtitle{font-size:1rem;color:oklch(var(--bc) / .5);margin-top:.5rem;font-style:italic}@keyframes terminusPulse{0%,to{box-shadow:0 0 0 4px oklch(var(--b1)),0 0 0 6px var(--python-blue),0 0 25px #3776ab4d}50%{box-shadow:0 0 0 4px oklch(var(--b1)),0 0 0 6px var(--python-blue),0 0 40px #3776ab80}}@keyframes terminusBlink{0%,to{opacity:1}50%{opacity:.4}}@media(max-width:768px){.timeline-terminus:before{left:1.5rem;transform:translate(0)}.terminus-logo-container{width:100px;height:100px}.terminus-logo{width:55px;height:55px}.terminus-title{font-size:1.25rem}}
