/* Sticky-date timeline adapted to this static portfolio from Aceternity UI's Timeline pattern. */
.journey-timeline-section{--timeline-orange:var(--orange,#f27746);--timeline-text:#f5efeb;--timeline-muted:#b4aaa2}
.timeline-intro{max-width:48ch;color:var(--timeline-muted);font-size:15px;line-height:1.8;margin:-8px 0 44px}
.experience-timeline{position:relative;isolation:isolate}
.timeline-entries{list-style:none;padding:0;margin:0}
.timeline-entry{position:relative;display:grid;grid-template-columns:165px minmax(0,1fr);column-gap:24px;padding:28px 0 88px}
.timeline-entry:last-child{padding-bottom:40px}
.timeline-year{position:sticky;top:112px;align-self:start;z-index:2;padding:0 0 0 44px;min-height:58px}
.timeline-year-text{display:block;font-size:38px;font-weight:700;line-height:1.15;letter-spacing:-1.6px;color:#a79a91;transition:color .4s}
.timeline-year-caption{display:block;font-size:10px;line-height:1.5;color:#a79a91;margin-top:10px;max-width:14ch}
.timeline-dot{position:absolute;left:10px;top:12px;width:12px;height:12px;border-radius:50%;border:1px solid #7b6659;background:#27201c;box-shadow:0 0 0 8px var(--bg,#151312);transition:background .4s,border-color .4s,box-shadow .4s}
.timeline-entry.is-active .timeline-year-text{color:var(--timeline-text)}
.timeline-entry.is-active .timeline-dot,.timeline-entry.is-past .timeline-dot{background:var(--timeline-orange);border-color:#f9b68a;box-shadow:0 0 0 8px var(--bg,#151312),0 0 22px #f2774630}
.timeline-rail{position:absolute;left:15px;top:40px;bottom:28px;width:2px;z-index:0;background:#ffffff12;overflow:hidden;mask-image:linear-gradient(transparent,#000 2%,#000 97%,transparent)}
.timeline-beam{position:absolute;inset:0;background:linear-gradient(to bottom,#eea17733,#e79b62 45%,#f27746 85%,#ffc395);transform:scaleY(var(--timeline-progress,0));transform-origin:top;will-change:transform}
.timeline-body{min-width:0;padding:1px 0 0;transition:opacity .65s ease,transform .65s cubic-bezier(.2,.65,.25,1)}
.timeline-ready .timeline-entry:not(.is-visible) .timeline-body{opacity:0;transform:translateY(14px)}
.timeline-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px;color:var(--timeline-orange);font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500}
.timeline-current{border:1px solid #f2774640;background:#f277460d;border-radius:100px;padding:4px 8px;font-size:9px;letter-spacing:.06em;color:#f5b28b}
.timeline-body .timeline-period{font-size:12px;line-height:1.6;color:var(--timeline-muted);margin:0 0 12px}
.timeline-body h3{color:var(--timeline-text);font-size:25px;line-height:1.25;font-weight:600;letter-spacing:-.8px;margin:0 0 10px;text-wrap:balance}
.timeline-body .timeline-organization{font-size:14px;line-height:1.6;color:#e0cfc3;margin:0 0 22px}
.timeline-body>p{font-size:14px;line-height:1.85;color:var(--timeline-muted);margin:0 0 20px}
.timeline-highlights{list-style:none;padding:0;margin:0 0 26px;display:grid;gap:10px}
.timeline-highlights li{position:relative;padding-left:17px;color:var(--timeline-muted);font-size:12px;line-height:1.75}
.timeline-highlights li:before{content:'✓';position:absolute;left:0;top:0;color:var(--timeline-orange);font-size:12px}
.timeline-project{margin:0 0 22px;border:1px solid #ffffff16;border-radius:12px;overflow:hidden;background:#1c1917}
.timeline-project img{width:100%;height:auto;aspect-ratio:1.55;object-fit:cover;object-position:center;display:block}
.timeline-project figcaption{padding:14px 16px;color:#dfd4cd;font-size:12px;line-height:1.6}
.timeline-project figcaption>span{display:block;font-size:8px;letter-spacing:.12em;color:#c6a28a;margin-bottom:3px}
.timeline-tags{display:flex;flex-wrap:wrap;gap:7px}
.timeline-tags span{border:1px solid #ffffff17;border-radius:6px;padding:6px 9px;background:#ffffff03;color:#c7b9ae;font-size:10px;line-height:1.5}
.timeline-graduation{display:flex;align-items:center;gap:16px;padding:20px;border:1px solid #f277462b;border-radius:12px;background:linear-gradient(120deg,#f277460c,transparent);color:#bbaa9c}
.timeline-graduation ion-icon{font-size:30px;color:var(--timeline-orange)}
.timeline-graduation>span{font-size:12px;line-height:1.5}.timeline-graduation strong{display:block;font-size:27px;font-weight:500;letter-spacing:-.8px;color:var(--timeline-text);margin-top:3px}
@media(max-width:1150px) and (min-width:851px){.timeline-entry{grid-template-columns:130px minmax(0,1fr);gap:16px}.timeline-year-text{font-size:31px}.timeline-year{padding-left:38px}.timeline-body h3{font-size:22px}}
@media(max-width:620px){.timeline-intro{font-size:14px;margin-bottom:24px}.timeline-entry{display:block;padding:26px 0 58px 38px}.timeline-year{position:relative;top:auto;padding:0;margin-bottom:24px;min-height:0}.timeline-year-text{font-size:34px}.timeline-year-caption{max-width:none;font-size:11px;margin-top:5px}.timeline-dot{left:-31px;top:10px;width:10px;height:10px;box-shadow:0 0 0 6px var(--bg,#151312)}.timeline-rail{left:11px;top:36px}.timeline-body h3{font-size:23px}.timeline-body>p{font-size:14px}.timeline-meta{font-size:10px}.timeline-project figcaption{padding:12px}.timeline-entry:last-child{padding-bottom:24px}}
@media(prefers-reduced-motion:reduce){.timeline-body,.timeline-dot,.timeline-year-text{transition:none}.timeline-ready .timeline-entry:not(.is-visible) .timeline-body{opacity:1;transform:none}.timeline-beam{will-change:auto}}
@media print{.timeline-entry{break-inside:avoid;display:block;padding-left:30px}.timeline-year{position:static;padding-left:0;margin-bottom:16px}.timeline-body{opacity:1!important;transform:none!important}.timeline-rail,.timeline-dot{display:none}}
