.timeline-content h3,.timeline-icon svg.icon{font-size:1.8rem;color:var(--text-color)}#timeline{padding:150px 0 100px;overflow:hidden;position:relative}.timeline-container{flex-direction:column;max-width:1200px;margin:0 auto;position:relative;padding:0 15px}.timeline{position:relative;width:100%;margin-top:100px}#timeline .projects-header{position:relative;top:auto;left:auto;transform:none;margin-bottom:60px;padding-top:0}.timeline-line,.timeline-line-fill{position:absolute;width:6px;transform:translateX(-50%);border-radius:3px;z-index:0;left:50%;top:0}.timeline-line{background-color:var(--timeline-line);bottom:0}.timeline-line-fill{height:0;background:linear-gradient(to bottom,var(--accent) 0,color-mix(in srgb,var(--accent),transparent 80%) 50%,var(--accent) 100%);background-size:100% 200%;animation:2s linear infinite timeline-flow;box-shadow:0 0 15px color-mix(in srgb,var(--accent),transparent 50%);transition:height .1s linear}@keyframes timeline-flow{0%{background-position:0 0}100%{background-position:0 200%}}.timeline-item{position:relative;width:100%;margin-bottom:60px;z-index:1;transition:transform .8s ease-out,opacity .8s ease-out;opacity:1;transform:translateX(0)}.timeline-icon{position:absolute;left:50%;top:0;transform:translateX(-50%);width:60px;height:60px;background-color:var(--bg-color);border:3px solid color-mix(in srgb,var(--accent),transparent 50%);border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:2;box-shadow:0 0 15px color-mix(in srgb,var(--accent),transparent 80%);transition:background-color .3s,box-shadow .3s,transform .3s cubic-bezier(.175, .885, .32, 1.275)}.timeline-icon svg.icon{transition:color .3s}.badge,.timeline-content .date{display:inline-block;color:var(--accent)}.timeline-content{position:relative;width:45%;padding:30px;border-radius:20px;background:color-mix(in srgb,var(--card-bg) 60%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid color-mix(in srgb,var(--border-color) 40%,transparent);transition:border-color .3s,box-shadow .3s,transform .3s cubic-bezier(.175, .885, .32, 1.275)}.timeline-content::after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at var(--x,50%) var(--y,50%),color-mix(in srgb,var(--accent),transparent 85%),transparent 40%);opacity:0;transition:opacity .3s;pointer-events:none;z-index:0}.timeline-item.left .timeline-content{left:0;text-align:right}.timeline-item.right .timeline-content{left:55%;text-align:left}.timeline-content::before{content:"";position:absolute;top:30px;transform:translateY(-50%);width:16px;height:16px;background-color:var(--card-bg);z-index:10;opacity:1;transition:border-color .3s}.timeline-item.left .timeline-content::before{right:-8px;border-top:1px solid color-mix(in srgb,var(--border-color) 40%,transparent);border-right:1px solid color-mix(in srgb,var(--border-color) 40%,transparent);transform:translateY(-50%) rotate(45deg);clip-path:polygon(0 0,100% 0,100% 100%)}.timeline-item.right .timeline-content::before{left:-8px;border-bottom:1px solid color-mix(in srgb,var(--border-color) 40%,transparent);border-left:1px solid color-mix(in srgb,var(--border-color) 40%,transparent);transform:translateY(-50%) rotate(45deg);clip-path:polygon(0 0,0 100%,100% 100%)}.timeline-content .date{font-weight:700;font-size:1.4rem;margin-bottom:5px}.timeline-content h3{margin-bottom:5px}.timeline-content h4{font-size:1.3rem;color:var(--text-muted);margin-bottom:10px;font-style:italic;font-weight:400}.timeline-content p{font-size:1.4rem;color:var(--text-color);font-weight:500;line-height:1.6;margin:15px 0 0;transition:color .5s}body.light-mode .timeline-content h3,body.light-mode .timeline-content h4,body.light-mode .timeline-content p{text-shadow:0 1px 2px rgba(255,255,255,.4)}.badge{margin-top:10px;padding:4px 12px;border-radius:12px;font-size:1rem;background-color:color-mix(in srgb,var(--accent),transparent 90%);border:1px solid var(--accent);font-weight:600}.timeline-item.left.hidden{transform:translateX(-100px);opacity:0}.timeline-item.right.hidden{transform:translateX(100px);opacity:0}.timeline-item.hidden.show{transform:translate(0,0);opacity:1}@media (hover:hover) and (pointer:fine){.timeline-content:hover::after{opacity:1}.timeline-content>*{position:relative;z-index:1}.timeline-item:hover .timeline-icon{background-color:var(--accent);box-shadow:0 0 25px color-mix(in srgb,var(--accent),transparent 50%);transform:translateX(-50%) scale(1.1)}.timeline-item:hover .timeline-icon svg.icon{color:var(--bg-color)}.timeline-item:hover .timeline-content{border-color:var(--accent);transform:translateY(-5px)}.timeline-item:hover.left .timeline-content::before{border-top-color:var(--accent);border-right-color:var(--accent)}.timeline-item:hover.right .timeline-content::before{border-bottom-color:var(--accent);border-left-color:var(--accent)}}@media only screen and (max-width:767px){.timeline-line,.timeline-line-fill{left:30px}.timeline-icon{left:30px;width:50px;height:50px;font-size:1.5rem}.timeline-content{margin-left:70px;left:0!important;width:auto;text-align:left!important}.timeline-item.left .timeline-content::before,.timeline-item.right .timeline-content::before{right:auto;left:-8px;top:25px;border-top:none;border-right:none;border-bottom:1px solid color-mix(in srgb,var(--border-color) 40%,transparent);border-left:1px solid color-mix(in srgb,var(--border-color) 40%,transparent);transform:translateY(-50%) rotate(45deg);clip-path:polygon(0 0,0 100%,100% 100%);opacity:1;background-color:var(--card-bg)}.timeline-item.left.hidden,.timeline-item.right.hidden{transform:translateY(50px)}}