body { background: linear-gradient(135deg, #0f0c29, #302b63, #24243e); color: white; scroll-behavior: smooth; } header { background: linear-gradient(135deg, #0f0c29, #302b63, #24243e); position: fixed; width: 100%; top: 0; z-index: 1000; animation: slideDown 1s ease-in-out; } @keyframes slideDown { 0% { transform: translateY(-100%); } 100% { transform: translateY(0); } } .logo { animation: fadeIn 1s ease-in-out 1s forwards; opacity: 0; } .logo img { height: 40px; width: auto; } @keyframes fadeIn { 0% { opacity: 0; transform: translateY(-20px); } 100% { opacity: 1; transform: translateY(0); } } .nav-link { opacity: 0; position: relative; transition: color 0.3s ease, transform 0.3s ease; padding-bottom: 4px; } .nav-link::after { content: ''; position: absolute; width: 0; height: 2px; bottom: 0; left: 0; background-color: #0062ff; transition: width 0.3s ease; } .nav-link.active, .nav-link:hover { color: #0062ff; transform: translateY(-2px); box-shadow: 0 0 8px #0062ff; } .nav-link.active::after, .nav-link:hover::after { width: 100%; } .nav-link.animate-nav { animation: slideInRightSeq 0.5s ease-in-out forwards; } .nav-link:nth-child(1).animate-nav { animation-delay: 2.1s; } .nav-link:nth-child(2).animate-nav { animation-delay: 2.2s; } .nav-link:nth-child(3).animate-nav { animation-delay: 2.3s; } .nav-link:nth-child(4).animate-nav { animation-delay: 2.4s; } .nav-link:nth-child(5).animate-nav { animation-delay: 2.5s; } .nav-link:nth-child(6).animate-nav { animation-delay: 2.6s; } .nav-link:nth-child(7).animate-nav { animation-delay: 2.7s; } @keyframes slideInRightSeq { 0% { opacity: 0; transform: translateX(50px); } 100% { opacity: 1; transform: translateX(0); } } .hamburger span { transition: all 0.3s ease; } .hamburger.active span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); } .hamburger.active span:nth-child(2) { opacity: 0; } .hamburger.active span:nth-child(3) { transform: rotate(-45deg) translate(7px, -7px); } section { min-height: 100vh; padding: 6rem 2rem; transition: opacity 0.3s ease; } footer { transition: opacity 0.3s ease; } .hidden-content { opacity: 0; pointer-events: none; } nav { transition: transform 0.1s ease-in-out; } nav ul { display: flex; gap: 1.5rem; } @media (max-width: 767px) { nav { position: fixed; top: 0; right: 0; height: 100%; width: 16rem; background: #000000; transform: translateX(100%); padding: 4rem 2rem; } nav.open { transform: translateX(0); } nav ul { flex-direction: column; gap: 1rem; } } @media (min-width: 768px) { nav { display: flex; align-items: center; } } /* Home Section Styles */ #home { display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; overflow: hidden; } @media (min-width: 1024px) { #home { flex-direction: row; justify-content: space-between; max-width: 1200px; margin: 0 auto; gap: 2rem; } } .particles { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; animation: fadeIn 1.5s ease-in-out 5.3s forwards; opacity: 0; } .star { position: absolute; width: 0; height: 0; background: transparent; animation: float 10s infinite ease-in-out, twinkle 1.5s infinite ease-in-out; } .star::before, .star::after { content: ''; position: absolute; background: rgba(255, 255, 255, 0.9); border-radius: 2px; } .star::before { width: 10px; height: 2px; transform: translate(-50%, -50%); } .star::after { width: 2px; height: 10px; transform: translate(-50%, -50%); } .star:nth-child(1) { left: 10%; top: 20%; animation-delay: 0s, 0.2s; width: 10px; height: 10px; } .star:nth-child(2) { left: 10%; top: 50%; animation-delay: 2s, 0.5s; width: 12px; height: 12px; } .star:nth-child(3) { left: 50%; top: 50%; animation-delay: 4s, 0.8s; width: 8px; height: 8px; } .star:nth-child(4) { left: 70%; top: 20%; animation-delay: 6s, 1.1s; width: 10px; height: 10px; } .star:nth-child(5) { left: 5%; top: 30%; animation-delay: 8s, 1.4s; width: 9px; height: 9px; } .star:nth-child(6) { left: 50%; top: 90%; animation-delay: 0s, 0.2s; width: 10px; height: 10px; } .star:nth-child(7) { left: 30%; top: 80%; animation-delay: 2s, 0.5s; width: 12px; height: 12px; } .star:nth-child(8) { left: 10%; top: 90%; animation-delay: 4s, 0.8s; width: 8px; height: 8px; } .star:nth-child(9) { left: 95%; top: 90%; animation-delay: 6s, 1.1s; width: 10px; height: 10px; } .star:nth-child(10) { left: 90%; top: 90%; animation-delay: 8s, 1.4s; width: 9px; height: 9px; } @keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-50px); } } @keyframes twinkle { 0%, 100% { opacity: 0.9; transform: scale(1); } 50% { opacity: 0.4; transform: scale(0.8); } } .left-column { max-width: 500px; width: 100%; z-index: 1; padding: 1rem; } @media (min-width: 1024px) { .left-column { text-align: left; } } @media (max-width: 1023px) { .left-column { text-align: center; } } .hello-world { animation: fadeIn 1.5s ease-in-out 3s forwards; opacity: 0; } .name { animation: fadeIn 1.5s ease-in-out 3.2s forwards; opacity: 0; } .name .highlight { color: #0062ff; } .typewriter { animation: fadeIn 1.5s ease-in-out 3.4s forwards; opacity: 0; font-weight: bold; } .typewriter span { color: #0062ff; } .cv-button { animation: fadeIn 1.5s ease-in-out 3.6s forwards; opacity: 0; display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.75rem 1.5rem; background: #0062ff; color: white; border-radius: 9999px; transition: transform 0.3s ease, box-shadow 0.3s ease; font-weight: bold; } .cv-button:hover { transform: scale(1.05); box-shadow: 0 0 15px #0062ff; } .right-column { max-width: 500px; width: 100%; position: relative; z-index: 1; padding: 1rem; display: flex; justify-content: center; align-items: center; } .profile-image { animation: fadeIn 1.5s ease-in-out 4s forwards; opacity: 0; position: relative; width:auto; height: auto; transform-style: preserve-3d; perspective: 1000px; z-index: 10; pointer-events: all; transform: none; } .profile-image img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; box-shadow: 0 0 20px #0062ff; } .ring { position: absolute; top: auto; left: auto; width: auto; height: auto; background: transparent; border: 6px solid #0062ff; border-radius: 50%; transform: translate(-50%, -50%); animation: glow 2s ease-in-out infinite, fadeIn 1.5s ease-in-out 4.2s forwards; opacity: 0; z-index: -1; pointer-events: none; } @keyframes glow { 0%, 100% { box-shadow: 0 0 50px #0062ff; } 50% { box-shadow: 0 0 20px #0062ff; } } @keyframes upDown { 0%, 100% { transform: translate(-50%, -50%) translateY(0); } 50% { transform: translate(-50%, -50%) translateY(-20px); } } /* About Section Styles */ #about { display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; overflow: hidden; } @media (min-width: 1024px) { #about .content { display: flex; flex-direction: row; justify-content: space-between; max-width: 1200px; margin: 0 auto; gap: 2rem; } } #about .section-title { font-size: 3rem; font-weight: bold; margin-bottom: 2rem; text-align: center; opacity: 0; } #about .section-title .highlight { color: #0062ff; } #about .about-left { max-width: 500px; width: 100%; position: relative; display: flex; justify-content: center; align-items: center; padding: 1rem; } #about .about-image { position: relative; width: 300px; height: 300px; transform-style: preserve-3d; perspective: 1000px; z-index: 10; pointer-events: all; opacity: 0; transform: none; } #about .about-image img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; box-shadow: 0 0 20px rgba(0, 0, 0, 0.5); } #about .elegant-shape { position: absolute; top: 50%; left: 50%; width: 340px; height: 340px; background: linear-gradient(135deg, #2193b0, #6dd5ed); border-radius: 50%; transform: translate(-50%, -50%); z-index: -1; opacity: 0; animation: pulse 4s ease-in-out infinite; pointer-events: none; } @keyframes pulse { 0%, 100% { transform: translate(-50%, -50%) scale(1); } 50% { transform: translate(-50%, -50%) scale(1.05); } } #about .about-right { max-width: 500px; width: 100%; padding: 1rem; display: flex; flex-direction: column; justify-content: center; } #about .about-name { font-size: 2.5rem; font-weight: bold; margin-bottom: 1rem; opacity: 0; } #about .about-name .highlight { color: #0062ff; } #about .about-title { font-size: 1.5rem; margin-bottom: 1rem; opacity: 0; } #about .about-description { font-size: 1rem; line-height: 1.6; opacity: 0; } /* Experience Section Styles */ #experience { display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; } #experience .section-title { font-size: 3rem; font-weight: bold; margin-bottom: 2rem; text-align: center; opacity: 0; } #experience .section-title .highlight { color: #0062ff; } #experience .experience-container { display: flex; flex-wrap: wrap; justify-content: center; gap: 2rem; max-width: 1200px; margin: 0 auto; } #experience .experience-item { display: flex; flex-direction: column; align-items: center; width: 200px; text-align: center; } #experience .experience-image { position: relative; width: 150px; height: 150px; transform-style: preserve-3d; perspective: 1000px; z-index: 10; pointer-events: all; opacity: 0; transform: none; } #experience .experience-image img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; box-shadow: 0 0 15px rgba(0, 0, 0, 0.5); } #experience .company-name { font-size: 1.25rem; font-weight: bold; margin-top: 1rem; opacity: 0; } #experience .job-title { font-size: 1rem; margin-top: 0.5rem; opacity: 0; } #experience .years { font-size: 0.875rem; margin-top: 0.5rem; opacity: 0; } #experience .view-detail { margin-top: 1rem; padding: 0.5rem 1rem; background: #3B82F6; color: white; border-radius: 9999px; transition: transform 0.3s ease, box-shadow 0.3s ease; opacity: 0; } #experience .view-detail:hover { transform: scale(1.05); box-shadow: 0 0 10px rgba(59, 130, 246, 0.7); } /* Portfolio Section Styles */ #portfolio { display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; } #portfolio .section-title { font-size: 3rem; font-weight: bold; margin-bottom: 2rem; text-align: center; opacity: 0; } #portfolio .section-title .highlight { color: #0062ff; } #portfolio .filter-buttons { display: flex; gap: 1rem; margin-bottom: 2rem; flex-wrap: wrap; justify-content: center; } #portfolio .filter-button { padding: 0.5rem 1rem; background: #0062ff; color: white; border-radius: 9999px; cursor: pointer; transition: transform 0.3s ease, background 0.3s ease, box-shadow 0.3s ease; opacity: 0; } #portfolio .filter-button:hover { background: #ff000d; transform: scale(1.1); box-shadow: 0 0 15px rgba(59, 130, 246, 0.7); } #portfolio .filter-button.active { background: #ff000d; transform: scale(1.05); box-shadow: 0 0 25px rgba(255, 0, 4, 0.9); } #portfolio .filter-button.active:hover { background: #ff000d; transform: scale(1.1); box-shadow: 0 0 25px rgba(13, 0, 255, 0.9); } #portfolio .slider-container { position: relative; width: 100%; max-width: 1200px; overflow: hidden; } #portfolio .slider { display: flex; transition: transform 0.5s ease; } #portfolio .portfolio-item { flex: 0 0 300px; margin: 0 10px; opacity: 0; transform: scale(0.8); transition: opacity 0.3s ease, transform 0.3s ease; } #portfolio .portfolio-item.visible { opacity: 1; transform: scale(1); } #portfolio .portfolio-item img { width: 100%; height: 200px; object-fit: cover; border-radius: 10px; cursor: pointer; box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); } #portfolio .slider-nav { position: absolute; top: 50%; width: 100%; display: flex; justify-content: space-between; transform: translateY(-50%); } #portfolio .slider-nav button { background: rgba(59, 130, 246, 0.7); color: white; border-radius: 50%; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background 0.3s ease; } #portfolio .slider-nav button:hover { background: #3B82F6; } #portfolio .pagination { display: flex; gap: 0.5rem; margin-top: 1rem; opacity: 0; } #portfolio .pagination button { width: 12px; height: 12px; background: #3B82F6; border-radius: 50%; cursor: pointer; transition: background 0.3s ease; } #portfolio .pagination button.active { background: #EF4444; } /* Skill Section Styles */ #skill { display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; } #skill .section-title { font-size: 3rem; font-weight: bold; margin-bottom: 2rem; text-align: center; opacity: 0; } #skill .section-title .highlight { color: #0062ff; } #skill .skill-container { display: flex; flex-direction: row; max-width: 1200px; width: 100%; gap: 2rem; justify-content: space-between; } @media (max-width: 767px) { #skill .skill-container { flex-direction: column; align-items: center; } } #skill .technical-skills, #skill .professional-skills { flex: 1; padding: 1rem; } #skill .technical-skills .skill-item { display: flex; flex-direction: column; align-items: start; margin-bottom: 1.5rem; opacity: 0; } #skill .technical-skills .skill-item i { color: #0062ff; font-size: 2rem; margin-bottom: 0.5rem; } #skill .technical-skills .skill-name { color: white; font-size: 0.8rem; font-weight: bold; margin-bottom: 0.5rem; } #skill .professional-skills .skill-item { display: flex; align-items: center; margin-bottom: 1rem; opacity: 0; } #skill .professional-skills .skill-item i { margin-right: 0.5rem; color: #3B82F6; font-size: 1.5rem; } #skill .professional-skills .skill-name { font-size: 1rem; font-weight: bold; } #skill .progress-bar { width: 100%; height: 12px; background: #1a2a44; border-radius: 5px; overflow: hidden; position: relative; } #skill .progress { height: 100%; background: #3B82F6; width: 0; position: relative; transition: width 1.5s ease-in-out; } #skill .percentage { position: absolute; right: 5px; top: 50%; transform: translateY(-50%); font-size: 0.8rem; color: white; font-weight: bold; } #skill .circle-progress { position: relative; width: 100px; height: 100px; margin: 0 auto; } #skill .circle-progress svg { width: 100%; height: 100%; transform: rotate(-90deg); } #skill .circle-progress .bg-circle { fill: none; stroke: #1a2a44; stroke-width: 10; } #skill .circle-progress .progress-circle { fill: none; stroke: #3B82F6; stroke-width: 10; stroke-linecap: round; stroke-dasharray: 283; stroke-dashoffset: 283; transition: stroke-dashoffset 1.5s ease-in-out; } #skill .circle-progress .percentage { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 1rem; font-weight: bold; color: #3B82F6; } /* Education Section Styles */ #education { display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; padding: 6rem 2rem; } #education .section-title { font-size: 3rem; font-weight: bold; margin-bottom: 2rem; text-align: center; opacity: 0; } #education .section-title .highlight { color: #0062ff; } #education .education-container { display: flex; flex-wrap: wrap; justify-content: center; gap: 2rem; max-width: 1200px; margin: 0 auto; } #education .education-item { display: flex; flex-direction: column; align-items: center; width: 200px; text-align: center; } #education .education-image { position: relative; width: 150px; height: 150px; transform-style: preserve-3d; perspective: 1000px; z-index: 10; opacity: 0; } #education .education-image img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; box-shadow: 0 0 15px rgba(0, 0, 0, 0.5); } #education .school-name { font-size: 1.25rem; font-weight: bold; margin-top: 1rem; opacity: 0; } #education .years { font-size: 1rem; margin-top: 0.5rem; opacity: 0; } #education .description { font-size: 0.875rem; margin-top: 0.5rem; opacity: 0; } /* Contact Section Styles */ #contact { display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; padding: 6rem 2rem; } #contact .section-title { font-size: 3rem; font-weight: bold; margin-bottom: 2rem; text-align: center; opacity: 0; } #contact .section-title .highlight { color: #0062ff; } #contact .contact-container { display: flex; flex-direction: row; max-width: 1200px; width: 100%; gap: 4rem; justify-content: space-between; } @media (max-width: 767px) { #contact .contact-container { flex-direction: column; align-items: center; gap: 2rem; } } #contact .contact-left { flex: 1; display: flex; flex-direction: row; align-items: center; justify-content: center; gap: 1.5rem; padding: 1rem; } #contact .contact-right { flex: 1; display: flex; flex-direction: column; align-items: flex-start; padding: 1rem; text-align: left; } #contact .social-item { opacity: 0; } #contact .social-item a { color: #3B82F6; font-size: 2rem; transition: transform 0.3s ease, color 0.3s ease, box-shadow 0.3s ease; } #contact .social-item a:hover { color: #EF4444; transform: scale(1.2); box-shadow: 0 0 10px rgba(239, 68, 68, 0.7); } #contact .contact-item { display: flex; align-items: center; margin-bottom: 1.5rem; opacity: 0; } #contact .contact-item i { color: #3B82F6; font-size: 1.5rem; margin-right: 1rem; } #contact .contact-item p { font-size: 1rem; color: white; } #contact .contact-item a { color: white; transition: color 0.3s ease; } #contact .contact-item a:hover { color: #EF4444; } /* Footer Section Styles */ footer { background: linear-gradient(135deg, #0f0c29, #302b63, #24243e); color: white; width: 100%; padding: 1rem 2rem; text-align: center; } footer p { font-size: 0.875rem; line-height: 1.5; } footer .heart { color: #EF4444; } /* Pop-up Styles */ .popup { display: none; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background: #1a2a44; padding: 2rem; border-radius: 10px; box-shadow: 0 0 20px rgba(0, 0, 0, 0.5); z-index: 1000; max-width: 90%; max-height: 90%; overflow: auto; } .popup.active { display: block; animation: popIn 0.5s ease-in-out forwards; } .popup-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.7); z-index: 999; } .popup-overlay.active { display: block; } .popup-content h3 { font-size: 1.5rem; margin-bottom: 1rem; } .popup-content ul { font-size: 1rem; line-height: 1.6; margin-bottom: 1rem; list-style-type: disc; padding-left: 1.5rem; } .popup-content .close-popup { position: absolute; top: 10px; right: 3px; padding: 0.5rem 1rem; color: #0062ff; cursor: pointer; transition: transform 0.3s ease; } .popup-content .close-popup:hover { transform: scale(1.05); } .popup-content img { max-width: 100%; max-height: 70vh; object-fit: contain; border-radius: 10px; } @keyframes popIn { 0% { transform: translate(-50%, -50%) scale(0.8); opacity: 0; } 100% { transform: translate(-50%, -50%) scale(1); opacity: 1; } } /* Animation Classes */ .animate-title { animation: slideInTop 1s ease-in-out forwards; } .animate-image { animation: slideInLeft 1s ease-in-out 0.2s forwards; } .animate-shape { animation: fadeIn 1s ease-in-out 0.4s forwards; } .animate-name { animation: slideInRight 1s ease-in-out 0.6s forwards; } .animate-title-text { animation: slideInRight 1s ease-in-out 0.8s forwards; } .animate-description { animation: slideInRight 1s ease-in-out 1s forwards; } .animate-exp-image { animation: scaleIn 1s ease-in-out forwards; } .animate-exp-name { animation: slideInUp 1s ease-in-out 0.2s forwards; } .animate-exp-title { animation: slideInUp 1s ease-in-out 0.4s forwards; } .animate-exp-years { animation: slideInUp 1s ease-in-out 0.6s forwards; } .animate-exp-button { animation: slideInUp 1s ease-in-out 0.8s forwards; } .animate-filter { animation: fadeIn 1s ease-in-out forwards; } .animate-portfolio-item { animation: scaleIn 1s ease-in-out forwards; } .animate-pagination { animation: slideInUp 1s ease-in-out 0.2s forwards; } .animate-skill-item { animation: fadeIn 1s ease-in-out forwards; } .animate-progress { animation: fillRight 1.5s ease-in-out forwards; } .animate-circle-progress { animation: fillCircle 1.5s ease-in-out forwards; } .animate-skill-title-left { animation: slideInLeft 1s ease-in-out forwards; } .animate-skill-title-right { animation: slideInRight 1s ease-in-out forwards; } .animate-edu-title { animation: slideInTop 1s ease-in-out forwards; } .animate-edu-image:nth-child(1) { animation: scaleIn 1s ease-in-out 0s forwards; } .animate-edu-image:nth-child(2) { animation: scaleIn 1s ease-in-out 0.2s forwards; } .animate-edu-image:nth-child(3) { animation: scaleIn 1s ease-in-out 0.4s forwards; } .animate-edu-image:nth-child(4) { animation: scaleIn 1s ease-in-out 0.6s forwards; } .animate-edu-name:nth-child(1) { animation: slideInLeft 1s ease-in-out 0.2s forwards; } .animate-edu-name:nth-child(2) { animation: slideInLeft 1s ease-in-out 0.4s forwards; } .animate-edu-name:nth-child(3) { animation: slideInLeft 1s ease-in-out 0.6s forwards; } .animate-edu-name:nth-child(4) { animation: slideInLeft 1s ease-in-out 0.8s forwards; } .animate-edu-years:nth-child(1) { animation: slideInRight 1s ease-in-out 0.4s forwards; } .animate-edu-years:nth-child(2) { animation: slideInRight 1s ease-in-out 0.6s forwards; } .animate-edu-years:nth-child(3) { animation: slideInRight 1s ease-in-out 0.8s forwards; } .animate-edu-years:nth-child(4) { animation: slideInRight 1s ease-in-out 1.0s forwards; } .animate-edu-desc:nth-child(1) { animation: fadeIn 1s ease-in-out 0.6s forwards; } .animate-edu-desc:nth-child(2) { animation: fadeIn 1s ease-in-out 0.8s forwards; } .animate-edu-desc:nth-child(3) { animation: fadeIn 1s ease-in-out 1.0s forwards; } .animate-edu-desc:nth-child(4) { animation: fadeIn 1s ease-in-out 1.2s forwards; } .animate-contact-title { animation: slideInTop 1s ease-in-out forwards; } .animate-contact-icon:nth-child(1) { animation: slideInLeft 1s ease-in-out 0.2s forwards; } .animate-contact-icon:nth-child(2) { animation: slideInLeft 1s ease-in-out 0.4s forwards; } .animate-contact-icon:nth-child(3) { animation: slideInLeft 1s ease-in-out 0.6s forwards; } .animate-contact-icon:nth-child(4) { animation: slideInLeft 1s ease-in-out 0.8s forwards; } .animate-contact-icon:nth-child(5) { animation: slideInLeft 1s ease-in-out 1.0s forwards; } .animate-contact-item:nth-child(1) { animation: slideInRight 1s ease-in-out 0.2s forwards; } .animate-contact-item:nth-child(2) { animation: slideInRight 1s ease-in-out 0.4s forwards; } .animate-contact-item:nth-child(3) { animation: slideInRight 1s ease-in-out 0.6s forwards; } @keyframes slideInTop { 0% { opacity: 0; transform: translateY(-50px); } 100% { opacity: 1; transform: translateY(0); } } @keyframes slideInLeft { 0% { opacity: 0; transform: translateX(-50px); } 100% { opacity: 1; transform: translateX(0); } } @keyframes slideInRight { 0% { opacity: 0; transform: translateX(50px); } 100% { opacity: 1; transform: translateX(0); } } @keyframes slideInUp { 0% { opacity: 0; transform: translateY(50px); } 100% { opacity: 1; transform: translateY(0); } } @keyframes scaleIn { 0% { opacity: 0; transform: scale(0.8); } 100% { opacity: 1; transform: scale(1); } } @keyframes fillRight { 0% { width: 0; } 100% { width: var(--progress-width); } } @keyframes fillCircle { 0% { stroke-dashoffset: 283; } 100% { stroke-dashoffset: var(--circle-offset); } } /* Back To Top */ #back-to-top { position: fixed; bottom: 20px; right: 20px; background-color: #0062ff; color: #fff; border: none; padding: 10px 15px; font-size: 18px; cursor: pointer; display: none; animation: fadeIn 0.5s ease-in-out; } #back-to-top:hover { background-color: #555; } #back-to-top i { font-size: 18px; } @keyframes fadeIn { 0% { opacity: 0; transform: translateY(-20px); } 100% { opacity: 1; transform: translateY(0); } }