.project-section{max-width:1100px;margin:0 auto;padding:4rem 1.5rem;display:flex;flex-direction:column;align-items:center;gap:3rem}.project-heading{font-size:1.8rem;text-align:center}.project-card{background:var(--color-secondary-bg);border:1px solid rgba(230,236,233,.08);border-radius:12px;padding:1.25rem;display:flex;flex-direction:column;gap:.75rem;transition:border-color .2s ease,transform .2s ease;height:100%}.project-card:hover{border-color:var(--color-tertiary);transform:translateY(-3px)}.project-cover{width:100%;aspect-ratio:16/9;border-radius:8px;overflow:hidden;background:var(--color-primary-bg)}.project-cover img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.project-card:hover .project-cover img{transform:scale(1.05)}.project-meta-row{display:flex;align-items:center;justify-content:space-between;font-size:.85rem;color:var(--color-secondary-font)}.project-language{display:flex;align-items:center;gap:.4rem}.language-dot{width:.6rem;height:.6rem;border-radius:50%;display:inline-block}.project-stats{display:flex;gap:.75rem}.project-title{font-size:1.15rem;font-weight:700;color:var(--color-primary-font)}.project-description{font-size:.9rem;line-height:1.55;color:var(--color-secondary-font);min-height:2.7em}.project-topics{display:flex;flex-wrap:wrap;gap:.4rem}.topic-pill{font-size:.7rem;padding:.2rem .6rem;border-radius:9999px;border:1px solid rgba(230,236,233,.12);color:var(--color-secondary-font)}.project-footer{display:flex;align-items:center;justify-content:space-between;padding-top:.75rem;border-top:1px solid rgba(230,236,233,.08);font-size:.8rem}.project-updated{color:var(--color-secondary-font)}.project-links{display:flex;align-items:center;gap:1rem}.project-links a{color:var(--color-secondary-font);font-weight:600;transition:color .15s ease}.project-links a:hover{color:var(--color-tertiary)}.carousel-wrapper{position:relative;width:100%;max-width:480px;overflow:hidden}.carousel-track{display:flex;transition:transform .5s ease-in-out}.carousel-slide{width:100%;flex-shrink:0;padding:.25rem}.carousel-arrow{position:absolute;top:40%;transform:translateY(-50%);background:var(--color-secondary-bg);border:1px solid rgba(230,236,233,.12);color:var(--color-primary-font);border-radius:9999px;width:2.25rem;height:2.25rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .15s ease}.carousel-arrow:hover{border-color:var(--color-tertiary)}.carousel-arrow-left{left:-1.1rem}.carousel-arrow-right{right:-1.1rem}.carousel-dots{display:flex;justify-content:center;gap:.4rem;margin-top:1rem}.carousel-dot{width:.5rem;height:.5rem;border-radius:9999px;background:rgba(230,236,233,.2);transition:all .2s ease;cursor:pointer}.carousel-dot-active{width:1.1rem;background:var(--color-tertiary)}.more-projects{width:100%;display:flex;flex-direction:column;gap:1.25rem}.more-projects-label{font-size:.7rem;text-transform:lowercase;letter-spacing:.02em;color:var(--color-secondary-font)}.more-projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.25rem}.project-skeleton{width:100%;max-width:480px;height:22rem;border-radius:12px;background:var(--color-secondary-bg);animation:skeleton-pulse 1.6s ease-in-out infinite}@keyframes skeleton-pulse{0%,to{opacity:.6}50%{opacity:1}}.project-error{text-align:center;color:var(--color-secondary-font);background:var(--color-secondary-bg);border:1px solid rgba(230,236,233,.08);border-radius:12px;padding:2rem}@media only screen and (max-width:650px){.carousel-arrow-left{left:.25rem}.carousel-arrow-right{right:.25rem}}