Spaces:
Sleeping
Sleeping
| /* Skills Section Styles - Interactive Circular Progress */ | |
| .skills { | |
| position: relative; | |
| overflow: hidden; | |
| padding: 6rem 0; | |
| } | |
| .skills::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| background-image: url('/static/image/image.png'); | |
| background-size: cover; | |
| background-position: center; | |
| background-repeat: no-repeat; | |
| opacity: 0.08; | |
| z-index: 0; | |
| } | |
| .tech-stack-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(400px, 1fr)); | |
| gap: 4rem; | |
| position: relative; | |
| z-index: 1; | |
| } | |
| .tech-category { | |
| background: var(--dark-light); | |
| padding: 3rem 2rem; | |
| border-radius: 20px; | |
| border: 1px solid var(--border); | |
| transition: all 0.3s ease; | |
| box-shadow: 0 10px 30px var(--shadow); | |
| } | |
| .tech-category:hover { | |
| transform: translateY(-10px); | |
| box-shadow: 0 20px 50px rgba(99, 102, 241, 0.2); | |
| } | |
| .tech-category h3 { | |
| margin-bottom: 3rem; | |
| color: var(--white); | |
| font-size: 1.5rem; | |
| font-weight: 600; | |
| display: flex; | |
| align-items: center; | |
| gap: 1rem; | |
| text-align: center; | |
| justify-content: center; | |
| } | |
| .tech-category h3 i { | |
| color: var(--primary); | |
| font-size: 1.8rem; | |
| } | |
| .tech-icons { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); | |
| gap: 2.5rem; | |
| justify-items: center; | |
| padding: 1rem 0; | |
| } | |
| .tech-icon { | |
| position: relative; | |
| cursor: pointer; | |
| transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); | |
| padding: 1.5rem; | |
| border-radius: 20px; | |
| background: rgba(255, 255, 255, 0.03); | |
| border: 1px solid rgba(99, 102, 241, 0.1); | |
| min-height: 120px; | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| } | |
| .tech-icon:hover { | |
| transform: translateY(-10px) scale(1.05); | |
| background: rgba(255, 255, 255, 0.08); | |
| border-color: rgba(99, 102, 241, 0.3); | |
| box-shadow: 0 20px 40px rgba(99, 102, 241, 0.15); | |
| } | |
| .icon-container { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| margin-bottom: 1rem; | |
| transition: all 0.3s ease; | |
| } | |
| .icon-container i, | |
| .icon-container [class*="devicon-"], | |
| .icon-container .custom-tech-icon { | |
| font-size: 3.5rem ; | |
| margin-bottom: 0.8rem; | |
| transition: all 0.3s ease; | |
| filter: drop-shadow(0 0 15px rgba(0, 0, 0, 0.2)); | |
| display: inline-block; | |
| line-height: 1; | |
| } | |
| /* Custom icon styling */ | |
| .icon-container .custom-tech-icon { | |
| width: 3.5rem; | |
| height: 3.5rem; | |
| object-fit: contain; | |
| border-radius: 8px; | |
| } | |
| .tech-icon:hover .icon-container i { | |
| filter: brightness(1.2) drop-shadow(0 0 20px currentColor); | |
| transform: scale(1.1); | |
| } | |
| .tech-icon:hover .icon-container [class*="devicon-"] { | |
| filter: brightness(1.1) drop-shadow(0 0 15px rgba(0,0,0,0.3)); | |
| transform: scale(1.1); | |
| } | |
| .tech-icon:hover .icon-container .custom-tech-icon { | |
| filter: brightness(1.1) drop-shadow(0 0 15px rgba(0,0,0,0.4)); | |
| transform: scale(1.1); | |
| } | |
| .tech-name { | |
| color: var(--light); | |
| font-size: 0.95rem; | |
| font-weight: 600; | |
| text-align: center; | |
| margin-top: 0.5rem; | |
| transition: all 0.3s ease; | |
| } | |
| .tech-icon:hover .tech-name { | |
| color: var(--white); | |
| transform: translateY(-2px); | |
| } | |
| .skill-circle { | |
| position: absolute; | |
| top: 50%; | |
| left: 50%; | |
| transform: translate(-50%, -50%); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 100px; | |
| height: 100px; | |
| opacity: 0; | |
| transition: opacity 0.4s ease; | |
| } | |
| .tech-icon:hover .skill-circle { | |
| opacity: 1; | |
| } | |
| .progress-ring { | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| transform: rotate(-90deg); | |
| width: 100px; | |
| height: 100px; | |
| } | |
| .progress-ring-circle { | |
| stroke: rgba(99, 102, 241, 0.2); | |
| stroke-width: 6; | |
| fill: transparent; | |
| stroke-dasharray: 188.5; | |
| stroke-dashoffset: 188.5; | |
| transition: stroke-dashoffset 2s cubic-bezier(0.4, 0, 0.2, 1); | |
| stroke-linecap: round; | |
| } | |
| .tech-icon:hover .progress-ring-circle { | |
| stroke: var(--primary); | |
| stroke-width: 8; | |
| filter: drop-shadow(0 0 10px rgba(99, 102, 241, 0.6)); | |
| } | |
| .percentage { | |
| position: absolute; | |
| font-size: 0.8rem; | |
| font-weight: 600; | |
| color: var(--white); | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| } | |
| .tech-icon:hover .percentage { | |
| opacity: 1; | |
| } | |
| /* Animation keyframes */ | |
| @keyframes fillCircle { | |
| from { | |
| stroke-dashoffset: 188.5; | |
| } | |
| to { | |
| stroke-dashoffset: var(--target-offset); | |
| } | |
| } | |
| /* Tech Stack Icons - Clean approach */ | |
| /* Reset any inherited colors and let icons use their natural colors */ | |
| .tech-icon .icon-container i, | |
| .tech-icon .icon-container [class*="devicon-"] { | |
| color: initial ; | |
| } | |
| /* Brand colors for specific technologies */ | |
| .tech-icon .icon-container .devicon-python-plain.colored { | |
| background: linear-gradient(45deg, #306998, #FFD43B); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| } | |
| .tech-icon .icon-container .devicon-javascript-plain.colored { | |
| color: #f7df1e ; | |
| text-shadow: 0 0 10px rgba(247, 223, 30, 0.5); | |
| } | |
| .tech-icon .icon-container .devicon-html5-plain.colored { | |
| color: #e34c26 ; | |
| text-shadow: 0 0 10px rgba(227, 76, 38, 0.5); | |
| } | |
| .tech-icon .icon-container .devicon-postgresql-plain.colored { | |
| color: #336791 ; | |
| text-shadow: 0 0 10px rgba(51, 103, 145, 0.5); | |
| } | |
| .tech-icon .icon-container .devicon-redis-plain.colored { | |
| color: #dc382d ; | |
| text-shadow: 0 0 10px rgba(220, 56, 45, 0.5); | |
| } | |
| .tech-icon .icon-container .devicon-mongodb-plain.colored { | |
| color: #47a248 ; | |
| text-shadow: 0 0 10px rgba(71, 162, 72, 0.5); | |
| } | |
| .tech-icon .icon-container .devicon-docker-plain.colored { | |
| color: #0db7ed ; | |
| text-shadow: 0 0 10px rgba(13, 183, 237, 0.5); | |
| } | |
| .tech-icon .icon-container .devicon-tensorflow-original.colored { | |
| color: #ff6f00 ; | |
| text-shadow: 0 0 10px rgba(255, 111, 0, 0.5); | |
| } | |
| .tech-icon .icon-container .devicon-pytorch-original.colored { | |
| color: #ee4c2c ; | |
| text-shadow: 0 0 10px rgba(238, 76, 44, 0.5); | |
| } | |
| .tech-icon .icon-container .devicon-kubernetes-plain.colored { | |
| color: #326ce5 ; | |
| text-shadow: 0 0 10px rgba(50, 108, 229, 0.5); | |
| } | |
| .tech-icon .icon-container .devicon-fastapi-plain.colored { | |
| color: #009688 ; | |
| text-shadow: 0 0 10px rgba(0, 150, 136, 0.5); | |
| } | |
| .tech-icon .icon-container .devicon-django-plain.colored { | |
| color: #092e20 ; | |
| text-shadow: 0 0 10px rgba(9, 46, 32, 0.5); | |
| } | |
| .tech-icon .icon-container .devicon-flask-original.colored { | |
| color: #ffffff ; | |
| text-shadow: 0 0 10px rgba(0, 0, 0, 0.8); | |
| } | |
| .tech-icon .icon-container .devicon-grafana-plain.colored { | |
| color: #ff6600 ; | |
| text-shadow: 0 0 10px rgba(255, 102, 0, 0.5); | |
| } | |
| .tech-icon .icon-container .devicon-sqldeveloper-plain.colored { | |
| color: #f29111 ; | |
| text-shadow: 0 0 10px rgba(242, 145, 17, 0.5); | |
| } | |
| /* FontAwesome fallback icons - custom colors */ | |
| .tech-icon .icon-container i.fas.fa-robot { | |
| color: #ff9500; /* Hugging Face orange */ | |
| } | |
| .tech-icon .icon-container i.fas.fa-brain { | |
| color: #00d4aa; /* OpenAI teal */ | |
| } | |
| .tech-icon .icon-container i.fas.fa-link { | |
| color: #1c1c1c; /* Langchain dark */ | |
| } | |
| .tech-icon .icon-container i.fas.fa-table { | |
| color: #f29111; /* SQL orange */ | |
| } | |
| .tech-icon .icon-container i.fas.fa-database { | |
| color: #c72e2e; /* MinIO red */ | |
| } | |
| .tech-icon .icon-container i.fas.fa-fire { | |
| color: #e6522c; /* Prometheus orange */ | |
| } | |
| .tech-icon .icon-container i.fas.fa-search { | |
| color: #f4b942; /* Loki yellow */ | |
| } | |
| /* Hover effects to maintain visibility */ | |
| .tech-icon:hover .icon-container i { | |
| filter: brightness(1.2) drop-shadow(0 0 20px currentColor); | |
| } | |
| .tech-icon:hover .icon-container [class*="devicon-"] { | |
| filter: brightness(1.1) drop-shadow(0 0 15px rgba(0,0,0,0.3)); | |
| } | |
| .tech-icon:hover .icon-container .custom-tech-icon { | |
| filter: brightness(1.1) drop-shadow(0 0 15px rgba(0,0,0,0.4)); | |
| } |