.skills-cloud-container{margin:2rem 0}.category-filter{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-bottom:2rem;display:flex}.category-btn{cursor:pointer;background:#fff;border:2px solid #e5e7eb;border-radius:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:all .3s}.category-btn:hover{color:#3b82f6;border-color:#3b82f6;transform:translateY(-2px)}.category-btn.active{color:#fff;background:#3b82f6;border-color:#3b82f6}.skills-cloud{background:linear-gradient(135deg,#f9fafb 0%,#f3f4f6 100%);border-radius:1rem;flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;padding:2rem;display:flex}.skill-tag{color:#666;cursor:default;white-space:nowrap;background:#f0f0f0;border-radius:4px;padding:.1rem .6rem;font-size:13px;transition:color .2s;animation:.5s backwards fadeInUp;display:inline-block}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (width<=768px){.skills-cloud{padding:1rem}.skill-tag{padding:.375rem .75rem;font-size:.875rem!important}.category-btn{padding:.375rem .75rem;font-size:.75rem}}.timeline-container{margin:2rem 0}.tech-filter{background:#f9fafb;border-radius:.5rem;align-items:center;gap:1rem;margin-bottom:2rem;padding:1rem;display:flex}.tech-filter label{color:#374151;font-weight:600}.tech-filter select{cursor:pointer;border:2px solid #e5e7eb;border-radius:.5rem;flex:1;padding:.5rem;font-size:.875rem;transition:border-color .3s}.tech-filter select:hover,.tech-filter select:focus{border-color:#3b82f6;outline:none}.timeline{padding-left:2rem;position:relative}.timeline:before{content:"";background:linear-gradient(#3b82f6 0%,#8b5cf6 100%);width:2px;position:absolute;top:0;bottom:0;left:0}.timeline-item{cursor:pointer;margin-bottom:2rem;position:relative}.timeline-item:nth-child(n){animation-delay:calc(.1s * var(--item-index,0))}.timeline-marker{z-index:1;background:#fff;border:3px solid #3b82f6;border-radius:50%;width:1rem;height:1rem;transition:all .3s;position:absolute;top:.5rem;left:-2.5rem}.timeline-item:hover .timeline-marker,.timeline-item.expanded .timeline-marker{background:#3b82f6;transform:scale(1.5);box-shadow:0 0 0 4px #3b82f633}.timeline-content{background:#fff;border:2px solid #e5e7eb;border-radius:.75rem;padding:1.5rem;transition:all .3s;position:relative}.timeline-item:hover .project-content{box-shadow:0 0 24px #0000001a}.timeline-item.expanded .project-content{box-shadow:0 0 24px #3b82f640}.no-results{text-align:center;color:#9ca3af;padding:3rem;font-style:italic}@media (width<=768px){.timeline{padding-left:1.5rem}.timeline-marker{left:-2rem}.tech-filter{flex-direction:column;align-items:stretch}.tech-filter select{width:100%}}.project-content{padding:1rem;transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;top:-25px;overflow:hidden}.project-content:before{content:"";opacity:0;background:#fff;height:4px;transition:opacity .4s;position:absolute;top:0;left:0;right:0}.project-date{color:#1e40af;letter-spacing:.025em;text-transform:uppercase;margin:0 0 1rem;padding:.375rem .875rem;font-size:.813rem;font-weight:600;display:inline-block}.project-title{color:#111827;letter-spacing:-.025em;background:linear-gradient(135deg,#1f2937 0%,#3b82f6 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0 0 .5rem;font-size:1.5rem;font-weight:800}.project-content>p{color:#4b5563;margin:0 0 .75rem;font-size:1rem;line-height:1.7}.project-header{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:.5rem;display:flex}.project-date{color:#999;text-transform:none;width:160px;margin:0;padding:.25rem .6rem;font-size:12px;font-weight:100;display:inline-block}.project-name{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;flex:auto;margin:0;font-size:1.05rem;font-weight:700;overflow:hidden}.project-client{color:#374151;background:0 0;margin-left:auto;font-size:.9rem;font-weight:600}.project-details{background:linear-gradient(#fff,#fff) padding-box padding-box,linear-gradient(90deg,#3b82f6) border-box;border-top:2px solid #0000;border-image:linear-gradient(90deg,#3b82f6) 1;margin-top:1.5rem;padding-top:1.5rem;animation:.4s cubic-bezier(.4,0,.2,1) project-expandDown}.project-section{padding:1rem 0}.project-section:last-child{margin-bottom:0}.project-section h4{color:#1f2937;margin:0 0 .5rem;font-size:14px;font-weight:700}.project-section p{color:#6b7280;text-align:justify;font-size:13px;line-height:1.5}.project-section ul{color:#4b5563;margin:0;padding-left:1.5rem;line-height:1.75}.project-section li{color:#6b7280;margin-bottom:.2rem;padding-left:.5rem;font-size:13px;line-height:1.5;position:relative}.project-section li::marker{color:#3b82f6;font-weight:700}.project-expand-hint{color:#9ca3af;text-align:center;border-top:1px dashed #e5e7eb;margin-top:1rem;padding-top:1rem;font-size:.813rem;font-style:italic;font-weight:500;transition:color .3s}@keyframes project-expandDown{0%{opacity:0;max-height:0;transform:translateY(-10px)}to{opacity:1;max-height:2000px;transform:translateY(0)}}@media (width<=768px){.project-content{padding:1.5rem}.project-title{font-size:1.25rem}.project-section{padding:1rem}.project-tech-tag{padding:.375rem .75rem;font-size:.813rem}}.stats-card{background:#fff;border:2px solid #e5e7eb;border-radius:1rem;align-items:center;gap:1.5rem;padding:1.5rem;transition:all .3s;animation:.5s backwards scaleIn;display:flex}.stats-card:hover{border-color:var(--card-color,#3b82f6);transform:translateY(-5px);box-shadow:0 10px 25px #0000001a}.stats-icon{border-radius:1rem;flex-shrink:0;justify-content:center;align-items:center;width:4rem;height:4rem;font-size:2rem;display:flex}.stats-content{flex:1}.stats-value{color:#1f2937;margin-bottom:.25rem;font-size:2.5rem;font-weight:700;line-height:1}.stats-label{color:#6b7280;text-transform:uppercase;letter-spacing:.05em;font-size:.875rem;font-weight:500}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@media (width<=768px){.stats-card{gap:1rem;padding:1rem}.stats-icon{width:3rem;height:3rem;font-size:1.5rem}.stats-value{font-size:2rem}.stats-label{font-size:.75rem}}.teaching-list{flex-direction:column;gap:1rem;display:flex}.teaching-item{background:#fff;border:2px solid #e5e7eb;border-radius:.75rem;align-items:flex-start;gap:1rem;padding:1.5rem;transition:all .3s;animation:.5s backwards slideIn;display:flex}.teaching-item:nth-child(n){animation-delay:calc(50ms * var(--item-index,0))}.teaching-item:hover{border-color:#10b981;transform:translate(5px);box-shadow:0 10px 25px #10b9811a}.teaching-icon{flex-shrink:0;font-size:2rem}.teaching-content{color:#4b5563;flex:1;line-height:1.6}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes postEntrance{0%{opacity:0;transform:translateY(500px)}to{opacity:1;transform:translateY(0)}}@media (width<=768px){.teaching-item{padding:1rem}.teaching-icon{font-size:1.5rem}}.teaching-list-grid{grid-template-columns:repeat(3,1fr);align-items:start;gap:1rem;display:grid}.teaching-column{flex-direction:column;gap:1rem;display:flex}.column-heading{color:#1f2937;text-align:center;margin:1rem 0 0;font-size:1.25rem}.column-list{flex-direction:column;gap:.75rem;display:flex}.teaching-card,.talk-card,.publication-card{text-align:left;box-sizing:border-box;opacity:0;will-change:transform, opacity;width:100%;animation:1s cubic-bezier(.22,.9,.32,1) forwards postEntrance;animation-delay:calc(sqrt(var(--order,0)) * .2s + (var(--order,0) * 50ms));background:0 0;border:none;border-left:1px solid #0000;gap:.75rem;margin-bottom:20px;padding:8px;display:flex;transform:translateY(64px)}.teaching-card:hover,.talk-card:hover,.publication-card:hover{box-shadow:0 0 24px #00000014}.card-icon{flex-shrink:0;width:2rem;font-size:1.5rem}.card-body{flex:1}.card-dates{color:#6b7280;margin:0;font-size:.9rem}.card-title{color:#111827;margin:.25rem 0;font-size:15px}.card-desc{color:#4b5563;margin:.25rem 0 0;font-size:13px}.card-meta,.card-authors{color:#6b7280;margin-top:.5rem;font-size:.875rem;line-height:1em}.card-authors:before{content:"• ";color:#d1d5db;margin-right:.25rem}@media (width<=992px){.teaching-list-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.teaching-list-grid{grid-template-columns:1fr}}.about-page{max-width:75rem;margin:0 auto;padding:2rem 1rem}.about-hero{text-align:center;margin-bottom:3rem;animation:.5s fadeIn}.about-hero h1{color:#1f2937;margin-bottom:1rem;font-size:2.5rem;font-weight:500}.about-summary{color:#6b7280;max-width:48rem;margin:0 auto;font-size:1.25rem;line-height:1.8}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:3rem;display:grid}.contact-section{margin-bottom:3rem}.social-icon{width:32px;height:32px;margin:1rem;transition:filter .3s}.tab-navigation{border-bottom:2px solid #e5e7eb;flex-wrap:wrap;justify-content:center;gap:1rem;margin-bottom:2rem;padding-bottom:0;display:flex}.tab-btn{cursor:pointer;color:#6b7280;background:0 0;border:none;border-bottom:3px solid #0000;padding:1rem 1.5rem;font-size:1rem;font-weight:600;transition:all .3s;position:relative;bottom:-2px}.tab-btn:hover{color:#3b82f6}.tab-btn.active{color:#3b82f6;border-bottom-color:#3b82f6}.tab-content{min-height:400px;animation:.3s fadeIn}.overview-section,.skills-section,.projects-section,.teaching-section{animation:.3s slideUp}.overview-section h2,.skills-section h2,.projects-section h2,.teaching-section h2{color:#1f2937;margin-bottom:1.5rem;font-size:2rem}.overview-section p{color:#4b5563;margin-bottom:1.5rem;font-size:1.125rem;line-height:1.8}.section-intro{color:#6b7280;margin-bottom:2rem;font-size:1rem;font-style:italic}.education-section{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem;margin-top:1rem;animation:.3s slideUp;display:grid}.education-item{text-align:center;background:#fff;padding:1.25rem;font-family:Times New Roman,Times,serif}.education-institution{color:#111827;margin:0 0 .25rem;font-size:1rem}.education-degree{color:#374151;margin:0 0 .5rem;font-size:1.5rem;font-weight:600}.education-dates{color:#6b7280;margin:0 0 .5rem;font-size:.95rem}.education-details{color:#4b5563;margin:0;font-size:.98rem;line-height:1.6}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (width<=768px){.about-hero h1{font-size:2rem}.about-summary{font-size:1rem}.stats-grid{grid-template-columns:1fr}.tab-navigation{gap:.5rem}.tab-btn{padding:.75rem 1rem;font-size:.875rem}}
