.portfolio-timeline{background:#eef0e5;border-block:1px solid #d5dbc8;padding:110px 0 105px;overflow:hidden;position:relative}
.timeline-intro{display:grid;grid-template-columns:1.2fr .8fr;gap:80px;align-items:end;margin-bottom:28px}
.timeline-intro h2{font-size:clamp(3.3rem,4.8vw,5.2rem);margin:18px 0 0}.timeline-intro h2 em{color:#819165}.timeline-intro>div:last-child>p{max-width:430px;font-size:.95rem}
.timeline-legend{display:flex;flex-wrap:wrap;gap:12px 22px;margin-top:25px;border-top:1px solid #cdd5c1;padding-top:17px}.timeline-legend span{display:inline-flex;align-items:center;gap:8px;color:#6e7f5b;font-size:.76rem}.timeline-legend .icon{height:18px;width:18px;flex-basis:18px}
.timeline-scrollhint{display:flex;justify-content:flex-end;align-items:center;gap:12px;color:#7b886d;font-size:.72rem;letter-spacing:.06em;margin:13px 0 35px}.timeline-scrollhint span{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid #afbea1;border-radius:50%;transform:rotate(90deg)}.timeline-scrollhint .icon{width:15px;height:15px;flex-basis:15px}
.timeline-shell{position:relative;padding:10px 0 35px}.timeline-rail{position:absolute;top:0;bottom:0;left:50%;width:2px;background:#c5d0b5;transform:translateX(-50%);overflow:hidden}.timeline-rail span{display:block;width:100%;height:100%;background:linear-gradient(#8a9e6d,#596b49 75%,#a4885c);transform:scaleY(0);transform-origin:top center;transition:transform .18s linear}
.timeline-list{list-style:none;margin:0;padding:0}.timeline-entry{display:grid;grid-template-columns:1fr 76px 1fr;gap:28px;align-items:start;position:relative;min-height:190px;opacity:.38;transform:translateY(26px);transition:opacity .5s ease,transform .6s ease}.timeline-entry:nth-child(odd) article{grid-column:3}.timeline-entry:nth-child(odd) .timeline-date{text-align:right;grid-column:1;grid-row:1}.timeline-entry:nth-child(even) article{grid-column:1;grid-row:1}.timeline-entry:nth-child(even) .timeline-date{text-align:left;grid-column:3;grid-row:1}
.timeline-date{padding-top:25px;color:#7e8f67;font-family:var(--serif);font-size:1.5rem;line-height:1.15}.timeline-node{grid-column:2;grid-row:1;z-index:2;width:52px;height:52px;margin:14px auto 0;border-radius:50%;background:#eef0e5;border:1px solid #9cab87;display:flex;align-items:center;justify-content:center;color:#788d5e;box-shadow:0 0 0 8px #eef0e5;transition:background .35s,color .35s,border-color .35s,transform .35s}.timeline-node .icon{width:23px;height:23px;flex-basis:23px}
.timeline-entry article{grid-row:1;padding:24px 28px 25px;background:#f8f7f0;border:1px solid #d1d8c6;min-height:155px;position:relative;box-shadow:0 8px 24px #51624209;transition:background .35s,border-color .35s,box-shadow .35s}.timeline-entry:nth-child(odd) article:before{content:'';position:absolute;left:-9px;top:31px;width:16px;height:16px;background:#f8f7f0;border-left:1px solid #d1d8c6;border-bottom:1px solid #d1d8c6;transform:rotate(45deg)}.timeline-entry:nth-child(even) article:before{content:'';position:absolute;right:-9px;top:31px;width:16px;height:16px;background:#f8f7f0;border-right:1px solid #d1d8c6;border-top:1px solid #d1d8c6;transform:rotate(45deg)}
.timeline-entry.is-timeline-active{opacity:1;transform:none}.timeline-entry.is-timeline-active .timeline-node{background:#596b49;color:white;border-color:#596b49;transform:scale(1.08)}.timeline-entry.is-timeline-active article{background:#fbfaf3;border-color:#b4c19e;box-shadow:0 12px 30px #51624218}.timeline-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.timeline-category{font-size:.67rem;letter-spacing:.12em;color:#789061}.timeline-marker{display:flex;color:#9aa983}.timeline-marker .icon{width:17px;height:17px;flex-basis:17px}.timeline-entry h3{font-size:2rem;margin:14px 0 10px}.timeline-entry p{font-size:.88rem;margin-bottom:13px}.timeline-caption{display:inline-block;color:#9b845d;font-size:.74rem;letter-spacing:.03em}.timeline-source{max-width:700px;margin:28px auto 0;text-align:center;color:#7d8676;font-size:.75rem;line-height:1.7}
@media(max-width:900px){.timeline-intro{gap:45px}.timeline-entry{grid-template-columns:1fr 60px 1fr;gap:18px}.timeline-entry article{padding-inline:22px}.timeline-entry h3{font-size:1.75rem}.timeline-date{font-size:1.25rem}.timeline-node{width:45px;height:45px}.timeline-rail{left:50%}}
@media(max-width:600px){.portfolio-timeline{padding:70px 0 65px}.timeline-intro{grid-template-columns:1fr;gap:24px}.timeline-intro h2{font-size:3.25rem}.timeline-intro>div:last-child>p{font-size:.9rem}.timeline-legend{gap:10px 17px}.timeline-scrollhint{justify-content:flex-start;margin-top:22px}.timeline-shell{padding-top:5px}.timeline-rail{left:19px;transform:none}.timeline-entry,.timeline-entry:nth-child(odd),.timeline-entry:nth-child(even){display:grid;grid-template-columns:40px 1fr;gap:16px;min-height:0;margin-bottom:29px;opacity:.38;transform:translateY(20px)}.timeline-entry:nth-child(odd) article,.timeline-entry:nth-child(even) article{grid-column:2;grid-row:1}.timeline-entry:nth-child(odd) .timeline-date,.timeline-entry:nth-child(even) .timeline-date{grid-column:2;grid-row:1;text-align:left;padding:0 0 0 22px;margin-bottom:8px;align-self:start;transform:translateY(-27px);font-size:1.05rem;position:absolute;top:0}.timeline-node{grid-column:1;grid-row:1;width:39px;height:39px;margin:0;box-shadow:0 0 0 7px #eef0e5}.timeline-node .icon{width:18px;height:18px;flex-basis:18px}.timeline-entry article{margin-top:32px;padding:22px 20px 20px;min-height:0}.timeline-entry:nth-child(odd) article:before,.timeline-entry:nth-child(even) article:before{left:-9px;right:auto;top:25px;width:15px;height:15px;border-left:1px solid #d1d8c6;border-bottom:1px solid #d1d8c6;border-right:0;border-top:0}.timeline-entry h3{font-size:1.7rem;margin:13px 0 9px}.timeline-entry p{font-size:.86rem;line-height:1.65}.timeline-category{font-size:.61rem}.timeline-caption{font-size:.72rem}.timeline-source{text-align:left;font-size:.75rem;margin-left:56px;margin-right:4px}.timeline-intro .section-kicker{font-size:.68rem}}
.portfolio-timeline{background:radial-gradient(ellipse at 0% 20%,#c4ab6620,transparent 45%),#eef0e5}.timeline-intro h2 em{color:#a48b50}.timeline-rail{background:#bca76e40}.timeline-rail span{background:linear-gradient(#c4a45b,#8a9058 65%,#ac8741)}.timeline-entry{opacity:1;transform:none;margin-bottom:35px}.timeline-ready .timeline-entry{opacity:.4;transform:translateY(22px)}.timeline-ready .timeline-entry.is-timeline-seen{opacity:1;transform:none}.timeline-date{color:#967b41}.timeline-entry article{padding:0;overflow:hidden;border-radius:4px;border-color:#b7a67766;cursor:zoom-in}.timeline-entry article:before{display:none}.timeline-entry.is-timeline-active article{border-color:#b09550;box-shadow:0 16px 40px #65532618}.timeline-entry.is-timeline-active .timeline-node{background:#9c8248;border-color:#9c8248}.timeline-card-content{padding:24px 26px}.timeline-evidence.zoom{display:block;width:100%;height:260px;position:relative;border:0;border-bottom:1px solid #bba46c45;border-radius:0;background:#e7e5d9;padding:16px;cursor:zoom-in;overflow:hidden}.timeline-evidence img{object-fit:contain;transition:transform .5s;filter:none}.timeline-evidence:hover img{transform:scale(1.025)}.timeline-evidence>span{position:absolute;right:12px;bottom:12px;display:flex;align-items:center;gap:8px;padding:7px 11px;background:#26372be8;color:#f1dfb5;font-size:.62rem;border:1px solid #d4bd7c50;border-radius:3px}.timeline-evidence>span .icon{width:14px;height:14px;flex-basis:14px}.evidence-source{display:block;padding-top:14px;margin-top:16px;border-top:1px solid #bda76b30;font-size:.63rem;line-height:1.5;color:#747d65}.timeline-category{color:#987c40}.timeline-caption{color:#8d713a}.timeline-node{border-color:#baa66d;color:#a08443}
@media(max-width:900px){.timeline-entry article{padding:0}.timeline-card-content{padding:22px}.timeline-evidence.zoom{height:220px}}
@media(max-width:600px){.timeline-entry,.timeline-entry:nth-child(odd),.timeline-entry:nth-child(even){grid-template-columns:40px minmax(0,1fr);gap:10px 16px;margin-bottom:34px;opacity:1;transform:none}.timeline-ready .timeline-entry{opacity:.4;transform:translateY(22px)}.timeline-ready .timeline-entry.is-timeline-seen{opacity:1;transform:none}.timeline-entry:nth-child(odd) .timeline-date,.timeline-entry:nth-child(even) .timeline-date{grid-column:2;grid-row:1;position:static;transform:none;padding:9px 0 0;margin:0;font-size:1.1rem}.timeline-entry:nth-child(odd) article,.timeline-entry:nth-child(even) article{grid-column:2;grid-row:2;margin:0;padding:0}.timeline-node{grid-row:1}.timeline-card-content{padding:20px 18px}.timeline-evidence.zoom{height:210px;padding:12px}.timeline-entry h3{font-size:1.8rem}.timeline-source{margin-left:0}.timeline-evidence>span{right:8px;bottom:8px;font-size:.57rem}}
@media(prefers-reduced-motion:reduce){.timeline-ready .timeline-entry,.timeline-entry{opacity:1;transform:none;transition:none}.timeline-rail span{transform:scaleY(1)!important;transition:none}.timeline-node,.timeline-entry article,.timeline-evidence img{transition:none;transform:none}}
