html { scroll-behavior: smooth; } body { font-family: 'Inter', sans-serif; background: #0d0d18; color: #d1d5db; transition: all 0.5s ease; } .neon-section { background: linear-gradient(135deg, #0d0d18 0%, #14142f 100%); border-radius: 1rem; padding: 2rem; box-shadow: 0 0 40px rgba(0, 255, 255, 0.05); position: relative; overflow: hidden; } .neon-section::before { content: ''; position: absolute; inset: 0; background-image: radial-gradient(circle at top left, #00ffe7 0%, transparent 60%), radial-gradient(circle at bottom right, #7f00ff 0%, transparent 60%); opacity: 0.04; z-index: 0; } .neon-section > * { position: relative; z-index: 10; } .terminal { font-family: 'Fira Code', monospace; background-color: #1a1a2e; border: 2px solid #00ffe7; border-radius: 0.5rem; padding: 1rem; box-shadow: 0 0 30px rgba(0, 255, 231, 0.4); } .prompt { color: #00ffe7; } .stat-bar { background-color: #27293d; height: 8px; border-radius: 9999px; overflow: hidden; } .stat-fill { height: 100%; background-color: #00ffe7; border-radius: 9999px; animation: fill 2s ease-in-out forwards; } @keyframes fill { from { width: 0; } } .card { transition: 0.3s ease; } .card:hover { transform: translateY(-4px); box-shadow: 0 0 20px #00ffe7aa; } .cursor::after { content: '|'; animation: blink 1.3s infinite; } @keyframes blink { 0%, 50%, 100% { opacity: 1; } 25%, 75% { opacity: 0; } } .opacity-0 { opacity: 0 !important; } .translate-y-10 { transform: translateY(2.5rem) !important; } .opacity-100 { opacity: 1 !important; } .translate-y-0 { transform: translateY(0) !important; } .skill-wrapper { display: inline-flex; justify-content: center; align-items: center; width: 80px; height: 80px; border-radius: 0.5rem; background-color: #1a1a2e; transition: all 0.3s ease; position: relative; } .skill-wrapper:hover { box-shadow: 0 0 25px #00ffe7aa; } .skill-icon::before { filter: grayscale(100%) brightness(2); transition: filter 0.3s ease, transform 0.3s ease; } .skill-wrapper:hover .skill-icon::before { filter: grayscale(0%) brightness(1); } .skill-icon { position: relative; transition: transform 0.3s ease; } .skill-icon:hover { transform: scale(1.2); } .skill-icon::after { content: attr(data-name); position: absolute; top: 110%; left: 50%; transform: translateX(-50%); background: #1a1a2e; color: #00ffe7; font-size: 12px; padding: 4px 8px; border-radius: 0.25rem; opacity: 0; pointer-events: none; transition: opacity 0.2s ease; white-space: nowrap; } .skill-icon:hover::after { opacity: 1; } @keyframes fall { to { transform: translateY(100vh); } } .prompt { color: #00ffe7; font-weight: 600; } .shad-button { background-color: #0f172a; border: 1px solid #334155; color: #e2e8f0; padding: 0.5rem 1rem; border-radius: 0.5rem; font-weight: 500; transition: all 0.2s ease; } .shad-button:hover { background-color: #1e293b; border-color: #475569; } .shad-card { background-color: #0f172a; border: 1px solid #1e293b; border-radius: 1rem; padding: 1.5rem; box-shadow: 0 0 0 1px #334155; transition: 0.3s ease; } .shad-card:hover { box-shadow: 0 0 20px #00ffe755; } .tooltip::after { content: attr(data-name); position: absolute; top: 100%; left: 50%; transform: translateX(-50%); background: #1e293b; color: #e2e8f0; font-size: 0.75rem; padding: 4px 8px; border-radius: 0.25rem; white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity 0.3s; margin-top: 0.5rem; } .tooltip:hover::after { opacity: 1; } .animate-spin { animation: spin 1s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } } .opacity-0 { opacity: 0; }