.timeline-heading{font-size:var(--font-size-4xl);font-family:Poppins,sans-serif;font-weight:var(--font-weight-bold);color:var(--color-text);text-align:center;margin:var(--space-xl) 0 var(--space-xl)}.timeline-filter{justify-content:center;gap:var(--space-sm);margin-bottom:var(--space-lg);flex-wrap:wrap;display:flex}.timeline-filter-btn{border-radius:var(--radius-full);border:1px solid var(--color-border);color:var(--medium-grey);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;background:0 0;padding:5px 18px;font-family:inherit;transition:background .2s,color .2s,border-color .2s}.timeline-filter-btn:hover,.timeline-filter-btn.active{background:var(--accent-orange);color:#fff;border-color:var(--accent-orange)}.timeline-filter-btn.filter-work.active{color:#c85a1a;background:#c85a1a26;border-color:#c85a1a80}.timeline-filter-btn.filter-education.active{color:#9a7020;background:#d4a84326;border-color:#d4a84380}.timeline-filter-btn.filter-community.active{color:#5a6e40;background:#6478501f;border-color:#64785080}.timeline{padding:var(--space-xl) 0 var(--space-lg);opacity:0;transition:opacity var(--transition-slow), transform var(--transition-slow);grid-template-columns:1fr 40px 1fr;display:grid;position:relative;overflow:hidden;transform:translateY(20px)}.timeline.is-visible{opacity:1;transform:translateY(0)}.timeline:before{content:"";background:var(--color-border);z-index:0;width:2px;position:absolute;top:0;bottom:18px;left:50%;transform:translate(-1px)}.timeline:after{content:"";border-left:8px solid #0000;border-right:8px solid #0000;border-top:8px solid var(--color-border);z-index:2;width:0;height:0;position:absolute;top:0;left:50%;transform:translate(-50%)}.timeline-dot{background:var(--accent-amber);border-radius:var(--radius-full);z-index:3;width:12px;height:12px;position:absolute;top:5px;left:50%;transform:translate(-50%)}.timeline-icon-frame{align-items:center;height:72px;display:flex}.timeline-icon{object-fit:contain;object-position:center;width:auto;max-width:240px;height:72px}.timeline-category-badge{border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.4px;text-transform:uppercase;white-space:nowrap;margin-top:var(--space-xs);margin-bottom:var(--space-xs);padding:2px 10px;display:inline-block}.category-work{color:#c85a1a;background:#c85a1a26;border:1px solid #c85a1a4d}.category-education{color:#9a7020;background:#d4a84326;border:1px solid #d4a8434d}.category-community{color:#5a6e40;background:#6478501f;border:1px solid #64785040}.timeline-item{grid-column:1/-1;grid-template-columns:subgrid;margin-top:var(--space-xl);margin-bottom:var(--space-xl);box-sizing:border-box;opacity:0;transition:opacity var(--transition-slow) ease-out, transform var(--transition-slow) ease-out;display:grid;position:relative;transform:translateY(20px)}.timeline-item.is-visible{opacity:1;transform:translateY(0)}.timeline-item .timeline-date-text-container{z-index:2;box-sizing:border-box;grid-row:1;min-width:0}.timeline-number{font-size:var(--font-size-base);color:var(--medium-grey);font-weight:var(--font-weight-bold);margin-bottom:var(--space-xs)}.timeline-title-block{margin-bottom:var(--space-xs)}.timeline-job-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--dark-grey);font-family:Poppins,sans-serif;line-height:var(--line-height-tight)}.timeline-org-name{font-size:var(--font-size-base);color:var(--medium-grey);font-weight:var(--font-weight-normal);margin-top:2px}.timeline-item .timeline-icon-container{z-index:1;grid-row:1;justify-content:center;align-self:start;min-width:0;height:auto;min-height:0;display:flex}.timeline-content,.timeline-item.right .timeline-content{text-align:justify}.timeline-item.has-details{transition:opacity var(--transition-slow) ease-out, transform var(--transition-slow) ease-out, box-shadow .2s ease}.timeline-item.has-details:hover{filter:brightness(1.05)}.view-details-hint{font-size:var(--font-size-sm);color:var(--accent-orange);margin-top:var(--space-xs);opacity:.7;font-style:italic;transition:opacity .2s;display:block}.timeline-item.has-details:hover .view-details-hint{opacity:1}.timeline-text p{font-size:var(--font-size-xl);color:var(--medium-grey);margin:0}.timeline-item.right .timeline-date-text-container{padding-right:var(--space-lg);text-align:right;grid-column:1}.timeline-item.right .timeline-number{text-align:right}.timeline-item.right .timeline-icon-container{margin-left:var(--space-xs);grid-column:3;justify-self:start;padding-left:0}.timeline-item.left .timeline-date-text-container{padding-left:var(--space-lg);grid-column:3}.timeline-item.left .timeline-number{text-align:left}.timeline-item.left .timeline-icon-container{margin-right:var(--space-xs);grid-column:1;justify-self:end;padding-right:0}.timeline-item:last-child:after{content:"";border-left:8px solid #0000;border-right:8px solid #0000;border-top:8px solid var(--color-border);z-index:2;width:0;height:0;position:absolute;bottom:-65px;left:50%;transform:translate(-50%)}@media (width<=768px){.timeline{padding-top:var(--space-lg);padding-left:var(--space-lg);grid-template-columns:1fr;position:relative}.timeline:before{content:"";background:var(--color-border);z-index:0;width:2px;display:block;position:absolute;inset:0 90px 5px auto;transform:none}.timeline:after{display:none}.timeline-item{margin-top:var(--space-lg);margin-bottom:var(--space-lg);flex-direction:row;grid-column:1;align-items:flex-start;padding-right:100px;display:flex;position:relative}.timeline-dot{background:var(--accent-amber);border-radius:var(--radius-full);z-index:3;width:12px;height:12px;position:absolute;top:5px;left:auto;right:85px;transform:none}.timeline-left-content-group{text-align:right;padding-right:var(--space-lg);flex-direction:column;flex:1;align-items:flex-end;display:flex}.timeline-number{font-size:var(--font-size-base);color:var(--medium-grey);font-weight:var(--font-weight-bold);margin-bottom:var(--space-xs)}.timeline-content{text-align:right;grid-column:1;width:100%;padding:0}.timeline-icon-container{z-index:3;justify-content:center;align-items:flex-start;width:80px;height:auto;margin:0;padding:0;display:flex;position:absolute;top:5px;right:0}.timeline-category-badge{padding:1px 6px;font-size:10px}.timeline-icon-frame{height:40px}.timeline-icon{object-fit:contain;object-position:center;width:auto;max-width:70px;height:40px}.timeline-item.right .timeline-date-text-container,.timeline-item.left .timeline-date-text-container,.timeline-item.right .timeline-number,.timeline-item.left .timeline-number,.timeline-item.right .timeline-icon-container,.timeline-item.left .timeline-icon-container{text-align:right;grid-column:1;justify-self:end;margin:0;padding:0}.timeline-title-block{text-align:right}.timeline-job-title{font-size:var(--font-size-base)}.timeline-org-name{font-size:var(--font-size-sm)}.timeline-item:last-child:after{display:none}}.modal-backdrop{z-index:1000;background:#3d2b1a8c;justify-content:center;align-items:center;padding:20px;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;width:100%;max-width:800px;max-height:90vh;animation:.3s ease-out slideUp;position:relative;overflow-y:auto;box-shadow:0 8px 32px #3d2b1a33}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.modal-backdrop,.modal-content{animation:none}}.modal-close{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:32px;line-height:1;transition:background-color .2s,color .2s;display:flex;position:absolute;top:16px;right:16px}.modal-close:hover{background-color:var(--color-surface-raised);color:var(--color-text)}.modal-close:focus-visible{outline:2px solid var(--accent-amber);outline-offset:2px}.modal-header{border-bottom:1px solid var(--color-border);padding:32px 32px 16px}.modal-header h2{color:var(--color-text);margin:0 0 8px;font-family:Poppins,sans-serif;font-size:28px}.modal-header h3{color:var(--color-text-muted);margin:0 0 8px;font-size:20px;font-weight:500}.modal-dates{color:var(--color-text-muted);margin:0;font-size:14px;font-style:italic}.modal-body{padding:24px 32px 32px}.modal-description{color:var(--color-text);margin-bottom:24px;line-height:1.6}.modal-projects{margin-top:32px}.modal-projects h3{color:var(--color-text);border-bottom:2px solid var(--accent-amber);margin:0 0 16px;padding-bottom:8px;font-family:Poppins,sans-serif;font-size:20px}.project-card{background:var(--color-surface-raised);border-left:4px solid var(--accent-amber);border-radius:4px;margin-bottom:16px;padding:16px;transition:transform .2s,box-shadow .2s}.project-card:hover{transform:translate(4px);box-shadow:0 2px 8px #3d2b1a26}.project-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.project-card h4{color:var(--color-text);margin:0;font-family:Poppins,sans-serif;font-size:18px}.project-years{color:var(--color-text-muted);font-size:14px;font-weight:500}.project-card p{color:var(--color-text-muted);margin:0 0 12px;line-height:1.6}.project-technologies{flex-wrap:wrap;gap:8px;display:flex}.tech-tag{color:var(--accent-amber);background:#c85a1a1a;border-radius:12px;padding:4px 12px;font-size:13px;font-weight:500;display:inline-block}.modal-courses{margin-top:32px}.modal-courses h3{color:var(--color-text);border-bottom:2px solid var(--accent-amber);margin:0 0 16px;padding-bottom:8px;font-family:Poppins,sans-serif;font-size:20px}.courses-table{border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;width:100%;overflow:hidden}.courses-table thead{background:var(--color-surface-raised)}.courses-table th{text-align:left;color:var(--color-text);border-bottom:2px solid var(--color-border);padding:12px 16px;font-weight:600}.courses-table th:first-child{width:10%}.courses-table th:nth-child(2){width:30%}.courses-table th:nth-child(3){width:60%}.courses-table td{border-bottom:1px solid var(--color-border);color:var(--color-text-muted);padding:12px 16px;line-height:1.6}.courses-table td.course-number{color:var(--color-text-muted);font-family:Courier New,monospace;font-size:14px}.courses-table td:nth-child(2){color:var(--color-text);font-weight:500}.courses-table tbody tr:nth-child(2n){background:var(--color-surface-raised)}.courses-table tbody tr:hover{background:#c85a1a0f}.courses-table tbody tr:last-child td{border-bottom:none}@media (width<=768px){.modal-backdrop{padding:0}.modal-content{border-radius:0;max-width:100%;max-height:100vh}.modal-header{padding:24px 20px 12px}.modal-header h2{padding-right:40px;font-size:24px}.modal-header h3{font-size:18px}.modal-body{padding:16px 20px 24px}.modal-close{top:12px;right:12px}.project-card{padding:12px}.project-card h4{font-size:16px}@media (width<=600px){.courses-table th:first-child{width:15%}.courses-table th:nth-child(2){width:35%}.courses-table th:nth-child(3){width:50%}}@media (width<=480px){.courses-table{font-size:13px}.courses-table th,.courses-table td{padding:8px 6px}.courses-table td.course-number{font-size:12px}}}
