diff --git a/style.css b/style.css index 6826186ae..4af269ddb 100644 --- a/style.css +++ b/style.css @@ -1,1397 +1,1250 @@ -#skills { - position: relative; - overflow: hidden; -} - -.skills-bg { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - background: linear-gradient(45deg, var(--primary), var(--secondary), var(--accent); - opacity: 0.1; - z-index: -1; - animation: gradientShift 8s ease infinite; - background-size: 400% 400%; -} - -@keyframes gradientShift { - 0% { background-position: 0% 50%; } - 50% { background-position: 100% 50%; } - 100% { background-position: 0% 50%; } -} -:root { - --primary: #3498db; - --primary-dark: #2980b9; - --secondary: #2ecc71; - --secondary-dark: #27ae60; - --accent: #e74c3c; - --accent-dark: #c0392b; - --text: #e0e0e0; - --text-light: #b0b0b0; - --text-dark: #888; - --bg: #0a0a0a; - --bg-light: #1a1a2e; - --bg-lighter: #2a2a3e; - --shadow: rgba(0, 0, 0, 0.3); - --gradient: linear-gradient(135deg, var(--primary), var(--secondary),)); - --gradient-dark: linear-gradient(135deg, var(--primary-dark), var(--secondary-dark)); -} - -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -html { - scroll-behavior: smooth; -} - -body { - font-family: 'Inter', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; - background: var(--bg); - color: var(--text); - overflow-x: hidden; - line-height: 1.6; -} - - -.loading-screen { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background: var(--bg); - display: flex; - align-items: center; - justify-content: center; - z-index: 9999; - z-index: 1; - transition: opacity 0.5s ease, visibility 0.5s ease; -} - -.loading-screen.fade-out { - opacity: 0; - visibility: hidden; -} - -.loading-animation { - text-align: center; -} - -.loading-ring { - width: 60px; - height: 60px; - border: 4px solid rgba(52, 152, 219, 0.2); - border-top: 4px solid var(--primary); - border-radius: 50%; - animation: spin 0s linear infinite;; - animation: fadeInUp 1s ease-out forwards; animation: fadeInUp; - margin: 0 auto 20px; -} - -@keyframes spin { - 0% { transform: rotate(0deg); } - 100% { transform: rotate(360deg); } -} - - -.cursor-dot, .cursor-outline { - position: fixed; - top: 0; - left: 0; - transform: translate(-50%, -50%); - border-radius: 50%; - z-index: 9999; - pointer-events: none; - opacity: 0; - transition: opacity 0.5s ease; -} - -.cursor-dot { - width: 8px; - height: 8px; - background: var(--primary); -} - -.cursor-outline { - width: 40px; - height: 40px; - border: 2px solid var(--primary); - transition: all 0.2s ease-out; -} - -body:hover .cursor-dot, -body:hover .cursor-outline { - opacity: 1; -} - -#particles-js { - position: fixed; - width: 100%; - height: 100%; - top: 0; - left: 0; - z-index: -1; -} -.container { - max-width: 1200px; - margin: 0 auto; - padding: 0 20px; -} - - -header { - position: fixed; - width: 100%; - padding: 20px 50px; - background: rgba(10, 10, 10, 0.95); - backdrop-filter: blur(10px); - z-index: 1000; - border-bottom: 2px solid rgba(52, 152, 219, 0.3); - transition: all 0.3s ease; -} - -.header-scrolled { - padding: 15px 50px; - background: rgba(10, 10, 10, 0.98); - box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1); -} - -nav { - display: flex; - justify-content: space-between; - align-items: center; -} - -.logo { - display: flex; - align-items: center; - font-size: 28px; - font-weight: bold; - cursor: pointer; - transition: all 0.3s ease; -} - -.logo-text { - background: var(--gradient); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; -} - -.logo-dot { - width: 8px; - height: 8px; - background: var(--secondary); - border-radius: 50%; - margin-left: 5px; - animation: pulse 2s infinite; -} - -@keyframes pulse { - 0%, 100% { opacity: 1; } - 50% { opacity: 0.5; } -} - -.logo:hover { - transform: scale(1.05); -} - -.nav-links { - display: flex; - gap: 30px; - list-style: none; -} - -.nav-links a { - color: var(--text); - text-decoration: none; - font-size: 16px; - font-weight: 500; - position: relative; - transition: all 0.3s ease; - cursor: pointer; -} - -.nav-links a::after { - content: ''; - position: absolute; - width: 0; - height: 2px; - bottom: -5px; - left: 0; - background: var(--gradient); - transition: width 0.3s ease; -} - -.nav-links a:hover::after, -.nav-links a.active::after { - width: 100%; -} - -.nav-links a:hover, -.nav-links a.active { - color: var(--primary); - transform: translateY(-2px); -} - -.mobile-menu { - display: none; - flex-direction: column; - cursor: pointer; -} - -.mobile-menu span { - width: 25px; - height: 3px; - background: var(--primary); - margin: 3px 0; - transition: 0.3s; -} - - -.hero { - min-height: 100vh; - display: flex; - align-items: center; - justify-content: center; - padding: 0 50px; - position: relative; - overflow: hidden; -} - -.hero-content { - display: flex; - align-items: center; - justify-content: space-between; - max-width: 1200px; - width: 100%; - gap: 50px; -} - -.hero-text { - flex: 1; - z-index: 1; - opacity: 0; - transform: translateY(50px); - animation: fadeInUp 1s ease-out forwards; -} - -@keyframes fadeInUp { - to { - opacity: 1; - transform: translateY(0); - } -} - -.hero-title { - font-size: 56px; - margin-bottom: -20px; - line-height: 1.2; -} - -.title-line { - display: block; -} - -.highlight { - background: var(--gradient); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - position: relative; -} - -.highlight::after { - content: ''; - position: absolute; - bottom: 0; - left: 0; - width: 100%; - height: 3px; - background: var(--gradient); - transform: scaleX(0); - transform-origin: left; - animation: expandWidth 1.5s ease forwards 0.5s; -} - -@keyframes expandWidth { - to { - transform: scaleX(1); - } -} - -.hero-subtitle { - font-size: 32px; - color: var(--primary); - margin-bottom: 20px; - font-weight: 600; -} - -.hero-description { - font-size: 18px; - line-height: 1.6; - margin-bottom: 30px; - color: var(--text-light); - max-width: 600px; -} - -.cta-buttons { - display: flex; - gap: 20px; - flex-wrap: wrap; -} - -.cta-button { - display: inline-flex; - align-items: center; - gap: 10px; - padding: 15px 40px; - border-radius: 50px; - font-weight: 600; - position: relative; - overflow: hidden; - transition: all 0.3s ease; - cursor: pointer; - border: none; - font-size: 16px; - text-decoration: none; -} - -.cta-button.primary { - background: var(--gradient); - color: white; -} - -.cta-button.secondary { - background: transparent; - border: 2px solid var(--primary); - color: var(--primary); -} - -.cta-button::before { - content: ''; - position: absolute; - top: 50%; - left: 50%; - width: 0; - height: 0; - border-radius: 50%; - background: rgba(255, 255, 255, 0.3); - transform: translate(-50%, -50%); - transition: width 0.6s, height 0.6s; -} - -.cta-button:hover::before { - width: 300px; - height: 300px; -} - -.cta-button:hover { - transform: translateY(-3px); - box-shadow: 0 10px 30px rgba(52, 152, 219, 0.4); -} - -.cta-button.secondary:hover { - background: var(--gradient); - color: white; -} - -.hero-visual { - flex: 1; - position: relative; - height: 400px; -} - -.floating-shapes { - position: relative; - width: 100%; - height: 100%; -} - -.shape { - position: absolute; - border-radius: 50%; - background: var(--gradient); - opacity: 0.7; - filter: blur(20px); - animation: float 6s ease-in-out infinite; -} - -.shape-1 { - width: 100px; - height: 100px; - top: 20%; - left: 10%; - animation-delay: 0s; -} - -.shape-2 { - width: 150px; - height: 150px; - top: 50%; - right: 10%; - animation-delay: 2s; -} - -.shape-3 { - width: 80px; - height: 80px; - bottom: 20%; - left: 30%; - animation-delay: 4s; -} - -@keyframes float { - 0%, 100% { - transform: translate(0, 0) scale(1); - } - 50% { - transform: translate(-20px, 20px) scale(1.1); - } -} - -.scroll-indicator { - position: absolute; - bottom: 30px; - left: 50%; - transform: translateX(-50%); - display: flex; - flex-direction: column; - align-items: center; - gap: 10px; - color: var(--text-light); - font-size: 14px; - opacity: 0; - animation: fadeIn 1s ease forwards 1.5s; -} - -@keyframes fadeIn { - to { - opacity: 1; - } -} - -.scroll-arrow { - width: 2px; - height: 30px; - background: var(--primary); - position: relative; -} - -.scroll-arrow::after { - content: ''; - position: absolute; - bottom: 0; - left: 50%; - transform: translateX(-50%); - width: 10px; - height: 10px; - border-right: 2px solid var(--primary); - border-bottom: 2px solid var(--primary); - transform: translateX(-50%) rotate(45deg); - animation: bounce 2s infinite; -} - -@keyframes bounce { - 0%, 20%, 50%, 80%, 100% { - transform: translateX(-50%) rotate(45deg) translateY(0); - } - 40% { - transform: translateX(-50%) rotate(45deg) translateY(-10px); - } - 60% { - transform: translateX(-50%) rotate(45deg) translateY(-5px); - } -} - - -section { - padding: 100px 0; -} - -.section-title { - font-size: 42px; - text-align: center; - margin-bottom: 60px; - position: relative; - color: var(--text); -} - -.section-title::after { - content: ''; - position: absolute; - bottom: -15px; - left: 50%; - transform: translateX(-50%); - width: 80px; - height: 4px; - background: var(--gradient); - border-radius: 2px; -} - - -.about-content { - display: flex; - align-items: center; - gap: 60px; -} - -.about-text { - flex: 1; -} - -.about-text p { - margin-bottom: 20px; - font-size: 18px; - line-height: 1.6; - color: var(--text-light); -} - -.about-stats { - display: flex; - gap: 30px; - margin-top: 40px; -} - -.stat { - text-align: center; -} - -.stat-number { - display: block; - font-size: 42px; - font-weight: bold; - background: var(--gradient); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - margin-bottom: 5px; -} - -.stat-label { - font-size: 16px; - color: var(--text-light); -} - -.about-image { - flex: 1; - display: flex; - justify-content: center; - align-items: center; -} - -.profile-container { - position: relative; - width: 300px; - height: 300px; -} - -.profile-ring { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - border-radius: 50%; - background: conic-gradient(var(--primary), var(--secondary), var(--primary)); - padding: 10px; - animation: rotate 10s linear infinite; -} - -.profile-ring-inner { - width: 100%; - height: 100%; - background: var(--bg-light); - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; -} - -.profile-initials { - font-size: 150px; - font-weight: bold; - background: var(--gradient); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; -} - - -.profile-glow { - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - width: 320px; - height: 320px; - background: var(--primary); - border-radius: 50%; - filter: blur(40px); - opacity: 0.3; - z-index: -1; - animation: pulse 3s ease-in-out infinite; -} - -@keyframes rotate { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} - - -.skills-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); - gap: 30px; -} - -.skill-card { - background: var(--bg-light); - padding: 40px 30px; - border-radius: 20px; - text-align: center; - transition: all 0.3s ease; - position: relative; - overflow: hidden; - border: 1px solid rgba(52, 152, 219, 0.1); -} - -.skill-card::before { - content: ''; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 5px; - background: var(--gradient); - transform: scaleX(0); - transform-origin: left; - transform-origin: right; - transition: transform 0.3s ease; -} - -.skill-card:hover::before { - transform: scaleX(1); -} - -.skill-card:hover { - transform: translateY(-10px); - box-shadow: 0 15px 30px rgba(0, 0, 0, 0.2); -} - -.skill-icon { - width: 80px; - height: 80px; - margin: 0 auto 20px; - background: rgba(52, 152, 219, 0.1); - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - color: var(--primary); -} -.skill-icon { color: red !important; } - - -.skill-card h3 { - font-size: 24px; - margin-bottom: 15px; - color: var(--text); -} - -.skill-card p { - color: var(--text-light); - margin-bottom: 20px; - transition: transform 0.3s -} -.skill-card:hover { transform: scale(1.1) } -.skill-tags { - display: flex; - flex-wrap: wrap; - gap: 10px; - justify-content: center; -} - -.skill-tagss { - background: rgba(52, 152, 219, 0.1); - color: var(--primary); - padding: 5px 15px; - border-radius: 20px; - font-size: 14px; - font-weight: 500; - transition: all 0.3s ease; -} - -.skill-tag:hover { - background: var(--primary); - color: white; - transform: translateY(-2px); -} - - -.projects-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); - gap: 30px; -} - -.project-card { - background: var(--bg-light); - border-radius: 20px; - overflow: hidden; - transition: all 0.3s ease; - border: 1px solid rgba(52, 152, 219, 0.1); -} - -.project-card:hover { - transform: translateY(-10px); - box-shadow: 0 15px 30px rgba(0, 0, 0, 0.2); -} - -.project-image { - height: 200px; - background: var(--bg-lighter); - position: relative; - display: flex; - align-items: center; - justify-content: center; - overflow: hidden; -} - -.project-icon { - font-size: 60px; -} - -.project-overlay { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - background: rgba(10, 10, 10, 0.9); - display: flex; - align-items: center; - justify-content: center; - opacity: 90; - opacity:1; - transition: all 0.3s ease; -} - -.project-card:hover .project-overlay { - opacity: 1; -} - -.project-links { - display: flex; - gap: 15px; -} - -.project-link { - padding: 10px 20px; - background: var(--gradient); - color: white; - text-decoration: none; - border-radius: 50px; - font-weight: 500; - transition: all 0.3s ease; -} - -.project-link:hover { - transform: translateY(-3px); - box-shadow: 0 5px 15px rgba(52, 152, 219, 0.4); -} - -.project-content { - padding: 30px; -} - -.project-content h3 { - font-size: 24px; - margin-bottom: 15px; - color: var(--text); -} - -.project-content p { - color: var(--text-light); - margin-bottom: 20px; -} - -.project-tags { - display: flex; - flex-wrap: wrap; - gap: 10px; -} - -.project-tag { - background: rgba(52, 152, 219, 0.1); - color: var(--primary); - padding: 5px 15px; - border-radius: 20px; - font-size: 14px; - font-weight: 500; -} - - -.contact-content { - display: flex; - gap: 60px; - align-items: flex-start; -} - -.contact-info { - flex: 1; -} - -.contact-info h3 { - font-size: 32px; - margin-bottom: 20px; - color: var(--text); -} - -.contact-info p { - color: var(--text-light); - margin-bottom: 40px; - font-size: 18px; -} - -.contact-details { - margin-bottom: 40px; -} - -.contact-item { - display: flex; - align-items: center; - gap: 20px; - margin-bottom: 25px; -} - -.contact-icon { - width: 50px; - height: 50px; - background: rgba(52, 152, 219, 0.1); - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - color: var(--primary); -} - -.contact-text span:first-child { - display: block; - font-weight: 600; - margin-bottom: 5px; -} - -.contact-text span:last-child { - color: var(--text-light); -} - -.social-links { - display: flex; - gap: 15px; -} - -.social-links a { - width: 50px; - height: 50px; - background: rgba(52, 152, 219, 0.1); - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - color: var(--primary); - transition: all 0.3s ease; - transition: none; -} - -.social-links a:hover { - background: var(--gradient); - color: white; - transform: translateY(-5px); -} - -.contact-form { - flex: 1; - background: var(--bg-light); - padding: 40px; - border-radius: 20px; - border: 1px solid rgba(52, 152, 219, 0.1); -} - -.form-group { - margin-bottom: 25px; -} - -.form-group label { - display: block; - margin-bottom: 10px; - font-weight: 500; - color: var(--text); -} - -.form-group input, -.form-group textarea { - width: 100%; - padding: 15px 20px; - background: var(--bg-lighter); - border: 1px solid rgba(52, 152, 219, 0.2); - border-radius: 10px; - color: var(--text); - font-size: 16px; - transition: all 0.3s ease; -} - -.form-group input:focus, -.form-group textarea:focus { - outline: none; - border-color: var(--primary); - box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.1); -} - -.form-group textarea { - min-height: 150px; - resize: vertical; -} - -.submit-button { - display: inline-flex; - align-items: center; - gap: 10px; - padding: 15px 40px; - background: var(--gradient); - color: white; - border: none; - border-radius: 50px; - font-weight: 600; - cursor: pointer; - transition: all 0.3s ease; - font-size: 16px; -} - -.submit-button:hover { - transform: translateY(-3px); - box-shadow: 0 10px 30px rgba(52, 152, 219, 0.4); -} - - -footer { - background: var(--bg-light); - padding: 60px 0 30px; - border-top: 1px solid rgba(52, 152, 219, 0.1); -} - -.footer-content { - display: flex; - justify-content: space-between; - align-items: flex-start; - margin-bottom: 40px; -} - -.footer-logo p { - color: var(--text-light); - margin-top: 10px; -} - -.footer-links { - display: flex; - gap: 30px; -} - -.footer-links a { - color: var(--text-light); - text-decoration: none; - transition: all 0.3s ease; - cursor: pointer; -} - -.footer-links a:hover { - color: var(--primary); - transform: translateY(-2px); -} - -.footer-bottom { - text-align: center; - padding-top: 30px; - border-top: 1px solid rgba(52, 152, 219, 0.1); - color: var(--text-light); - font-size: 14px; -} - -.footer-bottom p:first-child { - margin-bottom: 10px; -} - - -.back-to-top { - position: fixed; - bottom: 30px; - right: 30px; - width: 50px; - height: 50px; - background: var(--gradient); - color: white; - border: none; - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - cursor: pointer; - opacity: 0; - visibility: hidden; - transition: all 0.3s ease; - z-index: 100; -} - -.back-to-top.visible { - opacity: 1; - visibility: visible; -} - -.back-to-top:hover { - transform: translateY(-5px); - box-shadow: 0 10px 20px rgba(52, 152, 219, 0.4); -} - - -@media "max-width: 1024px":{ - .hero-title { - font-size: 48px; - } - - .hero-subtitle { - font-size: 28px; - } - - .about-content { - flex-direction: column; - text-align: center; - } - - .contact-content { - flex-direction: column; - } -} - -@media "max-width: 768px": { - header { - padding: 15px 20px; - } - - .header-scrolled { - padding: 10px 20px; - } - - .nav-links { - position: fixed; - top: 70px; - left: 0; - width: 100%; - background: var(--bg); - flex-direction: column; - align-items: center; - padding: 20px 0; - gap: 20px; - transform: translateY(-100%); - opacity: 0; - visibility: hidden; - transition: all 0.3s ease; - border-bottom: 2px solid rgba(52, 152, 219, 0.3); - } - - .nav-links.active { - transform: translateY(0); - opacity: 1; - visibility: visible; - } - - .mobile-menu { - display: flex; - } - - .mobile-menu.active span:nth-child(1) { - transform: rotate(45deg) translate(5px, 5px); - } - - .mobile-menu.active span:nth-child(2) { - opacity: 0; - } - - .mobile-menu.active span:nth-child(3) { - transform: rotate(-45deg) translate(7px, -6px); - } - - .hero { - padding: 0 20px; - } - - .hero-content { - flex-direction: column; - text-align: center; - } - - .hero-title { - font-size: 36px; - } - - .hero-subtitle { - font-size: 24px; - } - - .cta-buttons { - justify-content: center; - } - - .about-stats { - flex-direction: column; - gap: 20px; - } - - .footer-content { - flex-direction: column; - gap: 30px; - text-align: center; - } - - .footer-links { - justify-content: center; - } -} - -@media ('max-width: 480px") { - .hero-title { - font-size: 32px; - } - - .hero-subtitle { - font-size: 20px; - } - - .cta-button { - width: 100%; - justify-content: center; - } - - .section-title { - font-size: 32px; - } - - .projects-grid, - .skills-grid { - grid-template-columns: 1fr; - } - - .contact-form { - padding: 30px 20px; - } -} -.skill-visualization { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(80px, 1fr)); - gap: 20px; - margin-top: 40px; -} - -.skill-icon-3d { - width: 80px; - height: 80px; - background: var(--bg-light); - border-radius: 20px; - display: flex; - align-items: center; - justify-content: center; - transition: all 0.3s ease; - cursor: pointer; - position: relative; - overflow: hidden; -} - -.skill-icon-3d::before { - content: ''; - position: absolute; - top: 0; - left: -100%; - width: 100%; - height: 100%; - background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent); - transition: left 0.5s; -} - -.skill-icon-3d:hover::before { - left: 100%; -} - -.skill-icon-3d:hover { - transform: translateY(-10px) scale(1.1); - box-shadow: 0 15px 30px rgba(52, 152, 219, 0.3); -} -.timeline { - position: relative; - max-width: 800px; - margin: 50px auto; -} - -.timeline::before { - content: ''; - position: absolute; - left: 50%; - transform: translateX(-50%); - width: 4px; - height: 100%; - background: var(--gradient); -} - -.timeline-item { - margin: 40px 0; - opacity: 0; - transform: translateY(50px); - transition: all 0.6s ease; -} - -.timeline-item.animate-in { - opacity: 1; - transform: translateY(0); -} - -.timeline-content { - background: var(--bg-light); - padding: 25px; - border-radius: 15px; - position: relative; - width: 45%; - border: 1px solid rgba(52, 152, 219, 0.2); -} - -.timeline-item:nth-child(odd) .timeline-content { - margin-left: 55%; -} - -.timeline-item:nth-child(even) .timeline-content { - margin-right: 55%; -} -.code-showcase { - background: #1e1e1e; - border-radius: 10px; - padding: 20px; - margin: 20px 0; - position: relative; - overflow: hidden; -} - -.code-line { - display: block; - margin: 5px 0; - opacity: 0; - transform: translateX(-20px); - animation: typeIn 0.5s ease forwards; -} - -@keyframes typeIn { - to { - opacity: 1; - transform: translateX(0); - } -} - -.code-cursor { - display: inline-block; - width: 2px; - height: 1.2em; - background: var(--primary); - margin-left: 2px; - animation: blink 1s infinite; -} - -@keyframes blink { - 0%, 50% { opacity: 1; } - 51%, 100% { opacity: 0; } -} -.project-card { - perspective: 1000px; - height: 400px; -} - -.project-card-inner { - position: relative; - width: 100%; - height: 100%; - transform-style: preserve-3d; - transition: transform 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275); -} - -.project-card:hover .project-card-inner { - transform: rotateY(180deg); -} - -.project-card-front, -.project-card-back { - position: absolute; - width: 100%; - height: 100%; - backface-visibility: hidden; - border-radius: 20px; - background: var(--bg-light); - overflow: hidden; -} - -.project-card-back { - transform: rotateY(180deg); - padding: 30px; - display: flex; - flex-direction: column; - justify-content: center; - background: var(--gradient-dark); -} - -.tech-stack { - display: flex; - flex-wrap: wrap; - gap: 8px; - margin: 20px 0; -} - -.tech-item { - background: rgba(255, 255, 255, 0.2); - padding: 5px 12px; - border-radius: 15px; - font-size: 12px; - color: white; -} -.skill-level { - margin-top: 15px; -} - -.skill-progress { - height: 6px; - background: var(--bg-lighter); - border-radius: 10px; - overflow: hidden; - position: relative; -} - -.skill-progress-bar { - height: 100%; - background: var(--gradient); - border-radius: 10px; - transform: scaleX(0); - transform-origin: left; - transition: transform 1.5s ease-out; -} - -.skill-card.animate-in .skill-progress-bar { - transform: scaleX(1); -} - -.skill-percentage { - position: absolute; - right: 0; - top: -20px; - font-size: 12px; - font-weight: 600; - color: var(--primary); -} + /* ===== CSS Variables & Reset ===== */ + :root { + --primary-color: #8b5cf6; + --primary-dark: #7c3aed; + --secondary-color: #06b6d4; + --accent-color: #10b981; + --text-primary: #f8fafc; + --text-secondary: #cbd5e1; + --text-muted: #94a3b8; + --bg-primary: #0f172a; + --bg-secondary: #1e293b; + --bg-card: #334155; + --border-color: #475569; + --shadow: 0 10px 25px rgba(0, 0, 0, 0.3); + --shadow-lg: 0 25px 50px rgba(0, 0, 0, 0.4); + --gradient: linear-gradient(135deg, var(--primary-color), var(--secondary-color)); + --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + --border-radius: 12px; + --section-spacing: clamp(4rem, 8vw, 8rem); + } + + /* Alternative Color Themes */ + .theme-purple-cyan { + --primary-color: #8b5cf6; + --primary-dark: #7c3aed; + --secondary-color: #06b6d4; + --accent-color: #10b981; + } + + .theme-blue-pink { + --primary-color: #3b82f6; + --primary-dark: #2563eb; + --secondary-color: #ec4899; + --accent-color: #f59e0b; + } + + .theme-green-orange { + --primary-color: #10b981; + --primary-dark: #059669; + --secondary-color: #f97316; + --accent-color: #8b5cf6; + } + + .theme-red-teal { + --primary-color: #ef4444; + --primary-dark: #dc2626; + --secondary-color: #14b8a6; + --accent-color: #f59e0b; + } + + * { + margin: 0; + padding: 0; + box-sizing: border-box; + } + + html { + scroll-behavior: smooth; + font-size: 16px; + } + + body { + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; + line-height: 1.6; + color: var(--text-primary); + background: var(--bg-primary); + overflow-x: hidden; + transition: background-color 0.5s ease; + } + + /* ===== Theme Switcher ===== */ + .theme-switcher { + position: fixed; + top: 120px; + right: 20px; + z-index: 1001; + background: var(--bg-secondary); + border-radius: 50px; + padding: 10px; + box-shadow: var(--shadow); + border: 1px solid var(--border-color); + } + + .theme-option { + width: 30px; + height: 30px; + border-radius: 50%; + margin: 5px; + cursor: pointer; + border: 2px solid transparent; + transition: var(--transition); + } + + .theme-option.active { + border-color: var(--text-primary); + transform: scale(1.1); + } + + .theme-purple { + background: linear-gradient(135deg, #8b5cf6, #06b6d4); + } + + .theme-blue { + background: linear-gradient(135deg, #3b82f6, #ec4899); + } + + .theme-green { + background: linear-gradient(135deg, #10b981, #f97316); + } + + .theme-red { + background: linear-gradient(135deg, #ef4444, #14b8a6); + } + + /* ===== Loading Animation ===== */ + .loading-screen { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: var(--bg-primary); + display: flex; + justify-content: center; + align-items: center; + z-index: 9999; + transition: opacity 0.5s ease-out, visibility 0.5s ease-out; + } + + .loading-screen.fade-out { + opacity: 0; + visibility: hidden; + } + + .loading-animation { + text-align: center; + } + + .loading-ring { + width: 80px; + height: 80px; + border: 3px solid var(--border-color); + border-top: 3px solid var(--primary-color); + border-radius: 50%; + animation: spin 1s linear infinite; + margin: 0 auto 1.5rem; + } + + .loading-animation p { + color: var(--text-secondary); + font-size: clamp(1rem, 2vw, 1.2rem); + font-weight: 500; + } + + @keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } + } + + /* ===== Header & Navigation ===== */ + header { + position: fixed; + top: 0; + width: 100%; + background: rgba(15, 23, 42, 0.95); + backdrop-filter: blur(20px); + border-bottom: 1px solid var(--border-color); + z-index: 1000; + transition: var(--transition); + } + + header.scrolled { + background: rgba(15, 23, 42, 0.98); + box-shadow: var(--shadow); + } + + nav { + display: flex; + justify-content: space-between; + align-items: center; + padding: 1rem clamp(1rem, 5vw, 4rem); + max-width: 1400px; + margin: 0 auto; + } + + .logo { + display: flex; + align-items: center; + gap: 0.5rem; + cursor: pointer; + transition: var(--transition); + } + + .logo:hover { + transform: translateY(-2px); + } + + .logo-text { + font-size: clamp(1.25rem, 3vw, 1.5rem); + font-weight: 700; + background: var(--gradient); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; + } + + .logo-dot { + width: 50px; + height: 50px; + background: var(--gradient); + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-weight: 700; + color: white; + font-size: 1.2rem; + cursor: pointer; + animation: spin 4s linear infinite; + position: relative; + transition: var(--transition); + } + + .logo-dot::before { + content: 'MT'; + } + + .logo-dot:hover { + animation-duration: 1s; + transform: scale(1.1); + } + + .nav-links { + display: flex; + list-style: none; + gap: clamp(1.5rem, 3vw, 3rem); + } + + .nav-links a { + text-decoration: none; + color: var(--text-secondary); + font-weight: 500; + font-size: clamp(0.9rem, 1.5vw, 1rem); + transition: var(--transition); + position: relative; + } + + .nav-links a:hover, + .nav-links a:focus { + color: var(--text-primary); + } + + .nav-links a::after { + content: ''; + position: absolute; + bottom: -5px; + left: 0; + width: 0; + height: 2px; + background: var(--gradient); + transition: var(--transition); + } + + .nav-links a:hover::after, + .nav-links a:focus::after { + width: 100%; + } + + .mobile-menu { + display: none; + flex-direction: column; + gap: 4px; + cursor: pointer; + padding: 0.5rem; + } + + .mobile-menu span { + width: 25px; + height: 2px; + background: var(--text-primary); + transition: var(--transition); + } + + .mobile-menu.active span:nth-child(1) { + transform: rotate(45deg) translate(6px, 6px); + } + + .mobile-menu.active span:nth-child(2) { + opacity: 0; + } + + .mobile-menu.active span:nth-child(3) { + transform: rotate(-45deg) translate(6px, -6px); + } + + /* ===== Main Content ===== */ + main { + padding-top: 80px; + } + + .container { + max-width: 1200px; + margin: 0 auto; + padding: 0 clamp(1rem, 5vw, 2rem); + } + + section { + padding: var(--section-spacing) 0; + } + + /* ===== Hero Section ===== */ + .hero { + min-height: 100vh; + display: flex; + align-items: center; + position: relative; + overflow: hidden; + } + + .hero-content { + display: grid; + grid-template-columns: 1fr auto; + gap: clamp(2rem, 5vw, 4rem); + align-items: center; + max-width: 1400px; + margin: 0 auto; + padding: 0 clamp(1rem, 5vw, 4rem); + } + + .hero-text { + max-width: 600px; + } + + .hero-title { + font-size: clamp(2.5rem, 6vw, 4.5rem); + font-weight: 700; + line-height: 1.1; + margin-bottom: 1.5rem; + } + + .title-line { + display: block; + } + + .highlight { + background: var(--gradient); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; + position: relative; + } + + .hero-subtitle { + font-size: clamp(1.25rem, 3vw, 1.75rem); + color: var(--text-secondary); + font-weight: 600; + margin-bottom: 1.5rem; + } + + .hero-description { + font-size: clamp(1rem, 2vw, 1.2rem); + color: var(--text-muted); + margin-bottom: 2.5rem; + line-height: 1.7; + } + + .cta-buttons { + display: flex; + gap: 1.5rem; + flex-wrap: wrap; + } + + .cta-button { + display: flex; + align-items: center; + gap: 0.75rem; + padding: 1rem 2rem; + border: none; + border-radius: var(--border-radius); + font-size: clamp(0.9rem, 1.5vw, 1rem); + font-weight: 600; + cursor: pointer; + transition: var(--transition); + text-decoration: none; + position: relative; + overflow: hidden; + } + + .cta-button::before { + content: ''; + position: absolute; + top: 0; + left: -100%; + width: 100%; + height: 100%; + background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent); + transition: left 0.5s; + } + + .cta-button:hover::before { + left: 100%; + } + + .cta-button.primary { + background: var(--gradient); + color: white; + box-shadow: var(--shadow); + } + + .cta-button.primary:hover { + transform: translateY(-3px); + box-shadow: var(--shadow-lg); + } + + .cta-button.secondary { + background: transparent; + color: var(--text-primary); + border: 2px solid var(--border-color); + } + + .cta-button.secondary:hover { + border-color: var(--primary-color); + transform: translateY(-3px); + } + + .hero-visual { + position: relative; + width: 400px; + height: 400px; + } + + .floating-shapes { + position: relative; + width: 100%; + height: 100%; + } + + .shape { + position: absolute; + border-radius: 50%; + filter: blur(40px); + opacity: 0.7; + animation: float 6s ease-in-out infinite; + } + + .shape-1 { + width: 200px; + height: 200px; + background: var(--primary-color); + top: 50px; + left: 50px; + animation-delay: 0s; + } + + .shape-2 { + width: 150px; + height: 150px; + background: var(--secondary-color); + top: 150px; + right: 50px; + animation-delay: -2s; + } + + .shape-3 { + width: 100px; + height: 100px; + background: var(--accent-color); + bottom: 50px; + left: 150px; + animation-delay: -4s; + } + + @keyframes float { + 0%, 100% { transform: translateY(0px) scale(1); } + 50% { transform: translateY(-20px) scale(1.05); } + } + + .scroll-indicator { + position: absolute; + bottom: 2rem; + left: 50%; + transform: translateX(-50%); + text-align: center; + color: var(--text-muted); + font-size: 0.9rem; + } + + .scroll-arrow { + width: 2px; + height: 30px; + background: var(--text-muted); + margin: 0.5rem auto 0; + position: relative; + animation: bounce 2s infinite; + } + + .scroll-arrow::after { + content: ''; + position: absolute; + bottom: -8px; + left: -4px; + width: 10px; + height: 10px; + border-right: 2px solid var(--text-muted); + border-bottom: 2px solid var(--text-muted); + transform: rotate(45deg); + } + + @keyframes bounce { + 0%, 20%, 50%, 80%, 100% { transform: translateY(0); } + 40% { transform: translateY(-10px); } + 60% { transform: translateY(-5px); } + } + + /* ===== Section Styles ===== */ + .section-title { + font-size: clamp(2rem, 4vw, 3rem); + text-align: center; + margin-bottom: clamp(2rem, 5vw, 4rem); + background: var(--gradient); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; + } + + /* ===== About Section ===== */ + .about-content { + display: grid; + grid-template-columns: 1fr; + gap: clamp(3rem, 6vw, 6rem); + align-items: start; + text-align: center; + } + + .about-text p { + font-size: clamp(1rem, 2vw, 1.1rem); + color: var(--text-secondary); + margin-bottom: 1.5rem; + line-height: 1.7; + max-width: 800px; + margin-left: auto; + margin-right: auto; + } + + .about-stats { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); + gap: 2rem; + margin-top: 3rem; + max-width: 600px; + margin-left: auto; + margin-right: auto; + } + + .stat { + text-align: center; + padding: 1.5rem; + background: var(--bg-secondary); + border-radius: var(--border-radius); + transition: var(--transition); + } + + .stat:hover { + transform: translateY(-5px); + box-shadow: var(--shadow); + } + + .stat-number { + display: block; + font-size: clamp(2rem, 4vw, 2.5rem); + font-weight: 700; + background: var(--gradient); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; + margin-bottom: 0.5rem; + } + + .stat-label { + color: var(--text-muted); + font-size: 0.9rem; + font-weight: 500; + } + + /* ===== Skills Section ===== */ + .skills-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); + gap: 2rem; + } + + .skill-card { + background: var(--bg-secondary); + padding: 2.5rem; + border-radius: var(--border-radius); + transition: var(--transition); + border: 1px solid var(--border-color); + position: relative; + overflow: hidden; + } + + .skill-card::before { + content: ''; + position: absolute; + top: 0; + left: -100%; + width: 100%; + height: 100%; + background: linear-gradient(90deg, transparent, rgba(99, 102, 241, 0.1), transparent); + transition: left 0.5s; + } + + .skill-card:hover::before { + left: 100%; + } + + .skill-card:hover { + transform: translateY(-10px); + box-shadow: var(--shadow-lg); + border-color: var(--primary-color); + } + + .skill-icon { + width: 60px; + height: 60px; + background: var(--gradient); + border-radius: 12px; + display: flex; + align-items: center; + justify-content: center; + margin-bottom: 1.5rem; + } + + .skill-icon svg { + width: 28px; + height: 28px; + color: white; + } + + .skill-card h3 { + font-size: 1.5rem; + margin-bottom: 1rem; + color: var(--text-primary); + } + + .skill-card p { + color: var(--text-secondary); + margin-bottom: 1.5rem; + line-height: 1.6; + } + + .skill-tags { + display: flex; + flex-wrap: wrap; + gap: 0.5rem; + } + + .skill-tag { + background: rgba(99, 102, 241, 0.1); + color: var(--primary-color); + padding: 0.5rem 1rem; + border-radius: 20px; + font-size: 0.85rem; + font-weight: 500; + border: 1px solid rgba(99, 102, 241, 0.3); + transition: var(--transition); + } + + .skill-tag:hover { + background: var(--primary-color); + color: white; + transform: translateY(-2px); + } + + /* ===== Projects Section ===== */ + .projects-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(400px, 1fr)); + gap: 2.5rem; + } + + .project-card { + background: var(--bg-secondary); + border-radius: var(--border-radius); + overflow: hidden; + transition: var(--transition); + border: 1px solid var(--border-color); + position: relative; + transform-style: preserve-3d; + perspective: 1000px; + } + + .project-card:hover { + transform: translateY(-10px) rotateX(5deg); + box-shadow: var(--shadow-lg); + border-color: var(--primary-color); + } + + .project-image { + position: relative; + height: 250px; + background: var(--bg-card); + display: flex; + align-items: center; + justify-content: center; + overflow: hidden; + } + + .project-icon { + font-size: 4rem; + opacity: 0.7; + } + + .project-overlay { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(15, 23, 42, 0.9); + display: flex; + align-items: center; + justify-content: center; + opacity: 0; + transition: var(--transition); + } + + .project-card:hover .project-overlay { + opacity: 1; + } + + .project-links { + display: flex; + gap: 1rem; + } + + .project-link { + padding: 0.75rem 1.5rem; + background: var(--gradient); + color: white; + text-decoration: none; + border-radius: 25px; + font-weight: 600; + font-size: 0.9rem; + transition: var(--transition); + transform: translateY(20px); + } + + .project-card:hover .project-link { + transform: translateY(0); + } + + .project-link:hover { + transform: translateY(-2px); + box-shadow: var(--shadow); + } + + .project-content { + padding: 2rem; + } + + .project-content h3 { + font-size: 1.5rem; + margin-bottom: 1rem; + color: var(--text-primary); + } + + .project-content p { + color: var(--text-secondary); + margin-bottom: 1.5rem; + line-height: 1.6; + } + + .project-tags { + display: flex; + flex-wrap: wrap; + gap: 0.5rem; + } + + .project-tag { + background: rgba(16, 185, 129, 0.1); + color: var(--accent-color); + padding: 0.4rem 0.8rem; + border-radius: 15px; + font-size: 0.8rem; + font-weight: 500; + border: 1px solid rgba(16, 185, 129, 0.3); + transition: var(--transition); + } + + .project-tag:hover { + background: var(--accent-color); + color: white; + transform: translateY(-2px); + } + + /* ===== Contact Section ===== */ + .contact-content { + display: grid; + grid-template-columns: 1fr 1fr; + gap: clamp(3rem, 6vw, 6rem); + align-items: start; + } + + .contact-info h3 { + font-size: clamp(1.5rem, 3vw, 2rem); + margin-bottom: 1rem; + color: var(--text-primary); + } + + .contact-info > p { + color: var(--text-secondary); + margin-bottom: 2.5rem; + line-height: 1.7; + font-size: clamp(1rem, 2vw, 1.1rem); + } + + .contact-details { + display: flex; + flex-direction: column; + gap: 1.5rem; + margin-bottom: 2.5rem; + } + + .contact-item { + display: flex; + align-items: center; + gap: 1rem; + padding: 1rem; + background: var(--bg-secondary); + border-radius: var(--border-radius); + transition: var(--transition); + } + + .contact-item:hover { + transform: translateX(10px); + border-left: 4px solid var(--primary-color); + } + + .contact-icon { + width: 50px; + height: 50px; + background: var(--gradient); + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + } + + .contact-icon svg { + width: 20px; + height: 20px; + color: white; + } + + .contact-text { + display: flex; + flex-direction: column; + } + + .contact-text span:first-child { + color: var(--text-muted); + font-size: 0.9rem; + font-weight: 500; + } + + .contact-text span:last-child { + color: var(--text-primary); + font-weight: 600; + } + + .social-links { + display: flex; + gap: 1rem; + } + + .social-links a { + width: 50px; + height: 50px; + background: var(--bg-secondary); + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + transition: var(--transition); + position: relative; + overflow: hidden; + } + + .social-links a::before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: var(--gradient); + opacity: 0; + transition: var(--transition); + } + + .social-links a:hover::before { + opacity: 1; + } + + .social-links a:hover { + transform: translateY(-5px); + box-shadow: 0 10px 25px rgba(99, 102, 241, 0.3); + } + + .social-links a svg { + width: 20px; + height: 20px; + color: var(--text-primary); + position: relative; + z-index: 1; + transition: var(--transition); + } + + .social-links a:hover svg { + color: white; + transform: scale(1.1); + } + + .contact-form { + background: var(--bg-secondary); + padding: 2.5rem; + border-radius: var(--border-radius); + border: 1px solid var(--border-color); + } + + .form-group { + margin-bottom: 1.5rem; + } + + .form-group label { + display: block; + color: var(--text-primary); + margin-bottom: 0.5rem; + font-weight: 500; + font-size: 0.9rem; + } + + .form-group input, + .form-group textarea { + width: 100%; + padding: 1rem; + background: var(--bg-primary); + border: 1px solid var(--border-color); + border-radius: 8px; + color: var(--text-primary); + font-size: 1rem; + transition: var(--transition); + resize: vertical; + } + + .form-group input:focus, + .form-group textarea:focus { + outline: none; + border-color: var(--primary-color); + box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1); + } + + .form-group textarea { + min-height: 120px; + } + + .submit-button { + display: flex; + align-items: center; + gap: 0.75rem; + width: 100%; + padding: 1rem 2rem; + background: var(--gradient); + color: white; + border: none; + border-radius: var(--border-radius); + font-size: 1rem; + font-weight: 600; + cursor: pointer; + transition: var(--transition); + position: relative; + overflow: hidden; + } + + .submit-button:not(:disabled):hover { + transform: translateY(-3px); + box-shadow: var(--shadow-lg); + } + + .submit-button:disabled { + opacity: 0.6; + cursor: not-allowed; + } + + .submit-button::before { + content: ''; + position: absolute; + top: 0; + left: -100%; + width: 100%; + height: 100%; + background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent); + transition: left 0.5s; + } + + .submit-button:not(:disabled):hover::before { + left: 100%; + } + + /* ===== Footer ===== */ + footer { + background: var(--bg-secondary); + border-top: 1px solid var(--border-color); + padding: 3rem 0 1rem; + } + + .footer-content { + display: flex; + justify-content: space-between; + align-items: flex-start; + margin-bottom: 2rem; + flex-wrap: wrap; + gap: 2rem; + } + + .footer-logo .logo { + margin-bottom: 1rem; + } + + .footer-logo p { + color: var(--text-muted); + font-size: 0.9rem; + } + + .footer-links { + display: flex; + gap: 2rem; + flex-wrap: wrap; + } + + .footer-links a { + color: var(--text-secondary); + text-decoration: none; + font-weight: 500; + transition: var(--transition); + position: relative; + } + + .footer-links a:hover { + color: var(--text-primary); + } + + .footer-links a::after { + content: ''; + position: absolute; + bottom: -5px; + left: 0; + width: 0; + height: 2px; + background: var(--gradient); + transition: var(--transition); + } + + .footer-links a:hover::after { + width: 100%; + } + + .footer-bottom { + border-top: 1px solid var(--border-color); + padding-top: 2rem; + text-align: center; + } + + .footer-bottom p { + color: var(--text-muted); + font-size: 0.9rem; + margin-bottom: 0.5rem; + } + + /* ===== Back to Top Button ===== */ + .back-to-top { + position: fixed; + bottom: 2rem; + right: 2rem; + width: 50px; + height: 50px; + background: var(--gradient); + border: none; + border-radius: 50%; + color: white; + cursor: pointer; + transition: var(--transition); + opacity: 0; + visibility: hidden; + z-index: 1000; + box-shadow: var(--shadow); + } + + .back-to-top.visible { + opacity: 1; + visibility: visible; + } + + .back-to-top:hover { + transform: translateY(-5px); + box-shadow: var(--shadow-lg); + } + + /* ===== Scroll Animations ===== */ + .reveal { + opacity: 0; + transform: translateY(50px); + transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1); + } + + .reveal.active { + opacity: 1; + transform: translateY(0); + } + + .reveal-left { + opacity: 0; + transform: translateX(-50px); + transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1); + } + + .reveal-left.active { + opacity: 1; + transform: translateX(0); + } + + .reveal-right { + opacity: 0; + transform: translateX(50px); + transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1); + } + + .reveal-right.active { + opacity: 1; + transform: translateX(0); + } + + /* ===== Responsive Design ===== */ + @media (max-width: 1024px) { + .hero-content { + grid-template-columns: 1fr; + text-align: center; + } + + .hero-visual { + order: -1; + margin: 0 auto; + } + + .contact-content { + grid-template-columns: 1fr; + } + } + + @media (max-width: 768px) { + .nav-links { + position: fixed; + top: 80px; + left: 0; + width: 100%; + background: var(--bg-primary); + flex-direction: column; + padding: 2rem; + transform: translateY(-100%); + opacity: 0; + visibility: hidden; + transition: var(--transition); + border-bottom: 1px solid var(--border-color); + } + + .nav-links.active { + transform: translateY(0); + opacity: 1; + visibility: visible; + } + + .mobile-menu { + display: flex; + } + + .hero-visual { + width: 300px; + height: 300px; + } + + .skills-grid, + .projects-grid { + grid-template-columns: 1fr; + } + + .cta-buttons { + justify-content: center; + } + + .footer-content { + flex-direction: column; + text-align: center; + } + + .footer-links { + justify-content: center; + } + + .logo-dot { + width: 40px; + height: 40px; + font-size: 1rem; + } + + .theme-switcher { + top: 100px; + right: 10px; + } + } + + @media (max-width: 480px) { + .container { + padding: 0 1rem; + } + + .hero-content { + padding: 0 1rem; + } + + .skill-card, + .project-card, + .contact-form { + padding: 1.5rem; + } + + .about-stats { + grid-template-columns: 1fr; + } + + .social-links { + justify-content: center; + } + + .projects-grid { + grid-template-columns: 1fr; + } + }