/* Basic Reset */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif; background-color: #000; color: #f0f0f0; overflow: hidden; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } #boot-screen { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: black; color: #ffffff; display: flex; align-items: center; justify-content: center; z-index: 1000; } #boot-content { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; max-width: 500px; padding: 0 20px; opacity: 0; animation: fadeIn 0.5s cubic-bezier(0.4, 0, 0.2, 1) forwards; } .boot-content-inner { width: 100%; display: flex; flex-direction: column; align-items: center; gap: 30px; } .zap-logo { position: relative; margin-bottom: 20px; opacity: 0; transform: translateY(20px); animation: logoAppear 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards; animation-delay: 0.2s; } .logo-text { font-family: 'Orbitron', sans-serif; font-size: 64px; font-weight: 700; color: #ffffff; letter-spacing: 8px; text-transform: uppercase; text-shadow: 0 0 10px rgba(255, 255, 255, 0.8), 0 0 20px rgba(255, 255, 255, 0.4), 0 0 30px rgba(255, 255, 255, 0.2); animation: glowPulse 2s ease-in-out infinite; } @keyframes glowPulse { 0% { text-shadow: 0 0 10px rgba(255, 255, 255, 0.8), 0 0 20px rgba(255, 255, 255, 0.4), 0 0 30px rgba(255, 255, 255, 0.2); } 50% { text-shadow: 0 0 20px rgba(255, 255, 255, 0.8), 0 0 30px rgba(255, 255, 255, 0.4), 0 0 40px rgba(255, 255, 255, 0.2); } 100% { text-shadow: 0 0 10px rgba(255, 255, 255, 0.8), 0 0 20px rgba(255, 255, 255, 0.4), 0 0 30px rgba(255, 255, 255, 0.2); } } .progress-bar { width: 100%; max-width: 300px; height: 2px; background: rgba(255, 255, 255, 0.1); border-radius: 1px; overflow: hidden; opacity: 0; transform: translateY(20px); animation: fadeIn 0.5s cubic-bezier(0.4, 0, 0.2, 1) forwards; animation-delay: 0.3s; } .progress { width: 0%; height: 100%; background: #ffffff; box-shadow: 0 0 20px rgba(255, 255, 255, 0.5); transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1); } .status-text { color: rgba(255, 255, 255, 0.7); font-size: 13px; font-weight: 400; letter-spacing: 0.5px; text-align: center; opacity: 0; transform: translateY(20px); animation: fadeIn 0.5s cubic-bezier(0.4, 0, 0.2, 1) forwards; animation-delay: 0.4s; } #boot-log { width: 100%; max-width: 400px; margin: 0; min-height: 20px; font-size: 14px; line-height: 1.6; font-weight: 300; letter-spacing: 0.5px; text-align: center; color: rgba(255, 255, 255, 0.9); } @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @keyframes logoAppear { from { opacity: 0; transform: translateY(20px) scale(0.95); } to { opacity: 1; transform: translateY(0) scale(1); } } @keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } } /* Logo Animation Styles */ #logo-animation { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: #000; display: flex; justify-content: center; align-items: center; z-index: 999; } #logo-animation svg { width: 80%; max-width: 800px; } #logo-animation svg text { font-family: 'Orbitron', sans-serif !important; } .text-outline { fill: none; stroke: #ffffff; stroke-width: 2; stroke-dasharray: 2000; stroke-dashoffset: 2000; animation: drawZap 7s ease-in-out forwards; filter: drop-shadow(0 0 10px #ffffff33); } @keyframes drawZap { 0% { stroke-dashoffset: 2000; opacity: 0.2; filter: drop-shadow(0 0 2px #111); } 50% { opacity: 1; filter: drop-shadow(0 0 10px #ffffff55); } 100% { stroke-dashoffset: 0; opacity: 1; filter: drop-shadow(0 0 15px #ffffffaa); } } .text-fill { fill: #ffffff; opacity: 0; animation: revealFill 1s ease-in-out forwards; animation-delay: 7s; filter: drop-shadow(0 0 10px #ffffff55); } @keyframes revealFill { from { opacity: 0; filter: drop-shadow(0 0 2px #111); } to { opacity: 1; filter: drop-shadow(0 0 12px #ffffffaa); } } /* Fade animations */ .fade-out { animation: fadeOut 1s ease-in-out forwards; } .fade-in { animation: fadeIn 1s ease-in-out forwards; } .matrix-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(rgba(0, 255, 0, 0.05), rgba(0, 0, 0, 0.9)); opacity: 0.1; animation: matrix-rain 20s linear infinite; z-index: -1; } @keyframes matrix-rain { 0% { background-position: 0% 0%; } 100% { background-position: 0% 100%; } } .loading-ring { position: absolute; width: 100%; height: 100%; border: 4px solid transparent; border-top: 4px solid #00ff00; border-radius: 50%; opacity: 0; transform: scale(0.8); } .zap-logo.animate .loading-ring { animation: rotate 2s linear infinite, appear 0.5s ease forwards; } @keyframes rotate { 0% { transform: scale(0.8) rotate(0deg); } 100% { transform: scale(0.8) rotate(360deg); } } @keyframes appear { 0% { opacity: 0; } 100% { opacity: 1; } } .error-text { color: #ff0000; text-shadow: 0 0 5px rgba(255, 0, 0, 0.5); } .success-text { color: #00ff00; text-shadow: 0 0 5px rgba(0, 255, 0, 0.5); } .warning-text { color: #ffff00; text-shadow: 0 0 5px rgba(255, 255, 0, 0.5); } .blink { animation: blink 1s infinite; } @keyframes blink { 50% { opacity: 0; } } a { text-decoration: none; color: inherit; } .desktop { position: relative; width: 100vw; height: 100vh; background-image: url('background.jpg'); background-size: cover; background-position: center; opacity: 0; visibility: hidden; transition: opacity 0.5s ease, visibility 0s 0.5s; } .desktop.visible { opacity: 1; visibility: visible; transition: opacity 0.5s ease; } .icons { position: absolute; top: 50px; left: 20px; display: flex; flex-direction: column; gap: 30px; } .icon { display: flex; flex-direction: column; align-items: center; cursor: pointer; } .icon img { width: 60px; height: 60px; margin-bottom: 5px; transition: transform 0.4s ease; } .icon span { font-size: 16px; font-weight: 700; text-align: center; color: black; } .dock { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); display: flex; gap: 20px; align-items: center; background-color: rgba(0, 0, 0, 0.5); border-radius: 15px; padding: 10px; } .dock .icon { display: flex; flex-direction: column; align-items: center; cursor: pointer; } .dock img { width: 55px; height: 55px; transition: transform 0.4s ease; } .dock span { font-size: 14px; font-weight: 700; text-align: center; color: white; } .icon:hover img, .dock .icon:hover img { opacity: 0.6; transform: scale(1.2); } .terminal { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 80%; height: 60%; max-width: 800px; max-height: 500px; display: none; z-index: 5; transform: translate(-50%, -50%) scale(0.05); transition: opacity 0.4s ease, transform 0.4s ease; } .terminal.open { opacity: 1; transform: translate(-50%, -50%) scale(1); } .terminal-prompt { background-color: #1d1f21; color: #f0f0f0; font-family: 'Courier New', Courier, monospace; padding: 10px 20px; border-radius: 0 0 5px 5px; text-align: center; font-size: 16px; font-weight: bold; } .prompt-text { color: #00ff00; } .terminal.fullscreen { position: center; top: 0; left: 0; width: 100%; height: 100%; transform: none; border-radius: 0; overflow: hidden; } .terminal-window { background-color: #1d1f21; border-radius: 10px; display: flex; flex-direction: column; overflow: hidden; width: 100%; height: 100%; box-shadow: 0 0 10px rgba(0, 0, 0, 0.6); } .terminal-header { display: flex; gap: 10px; padding: 10px; background-color: #2e3436; border-bottom: 1px solid #555; align-items: center; justify-content: flex-start; } .button { width: 18px; height: 18px; border-radius: 50%; background-color: #ccc; cursor: pointer; display: flex; justify-content: center; align-items: center; color: #000; font-size: 10px; font-weight: bold; line-height: 1; user-select: none; } .red { background-color: red; } .red:hover { background-color: darkred; } .yellow { background-color: yellow; } .yellow:hover { background-color: #d4a017; } .green { background-color: green; } .green:hover { background-color: darkgreen; } .red::after { content: 'X'; font-weight: bold; color: white; font-size: 12px; } .yellow::after { content: '--'; font-weight: bold; color: black; font-size: 12px; } .green::after { content: '[]'; font-weight: bold; color: white; font-size: 12px; } .terminal-body { flex: 1; padding: 10px; color: #00ff00; font-family: 'Courier New', Courier, monospace; font-size: 16px; overflow-y: auto; white-space: pre-wrap; word-wrap: break-word; } .date-time { position: absolute; bottom: 10px; right: 20px; font-size: 16px; font-weight: 500; color: #ffffff; background-color: rgba(0, 0, 0, 0.5); padding: 5px 10px; border-radius: 5px; } #booting-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: black; color: #00ff00; font-family: 'Courier New', Courier, monospace; padding: 20px; overflow-y: auto; white-space: pre-wrap; word-wrap: break-word; z-index: 9999; } #booting-output { font-size: 18px; line-height: 1.5; } .certifications-window { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 80%; max-width: 800px; height: 70%; max-height: 600px; background-color: #1d1f21; display: none; border-radius: 10px; z-index: 6; box-shadow: 0 0 10px rgba(0, 0, 0, 0.6); overflow: hidden; color: #f0f0f0; transform: translate(-50%, -50%) scale(0.05); transition: opacity 0.4s ease, transform 0.4s ease; } .certifications-window.open { opacity: 1; transform: translate(-50%, -50%) scale(1); } .window-header { background-color: #2e3436; color: #fff; padding: 10px 20px; border-radius: 10px 10px 0 0; display: flex; justify-content: center; align-items: center; position: relative; } .window-header span { font-size: 20px; font-weight: bold; color: #f0f0f0; } .certifications-content { padding: 20px; overflow-y: auto; display: flex; flex-wrap: wrap; gap: 15px; justify-content: center; } .cert-image { width: 200px; height: 150px; object-fit: cover; border-radius: 10px; box-shadow: 0 0 5px rgba(0, 0, 0, 0.4); cursor: pointer; transition: transform 0.4s ease, box-shadow 0.4s ease; } .cert-image:hover { transform: scale(1.1); box-shadow: 0 0 15px rgba(0, 0, 0, 0.8); } .certifications-window .button { width: 18px; height: 18px; border-radius: 50%; background-color: #ccc; cursor: pointer; } .certifications-window .red { background-color: red; position: absolute; left: 20px; top: 50%; transform: translateY(-50%); cursor: pointer; width: 18px; height: 18px; border-radius: 50%; } .certifications-window .red:hover { background-color: darkred; } .certifications-window .red::after { content: 'X'; font-weight: bold; color: white; font-size: 12px; } .projects-window { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 80%; max-width: 800px; height: 70%; max-height: 600px; background-color: #1d1f21; display: none; border-radius: 10px; z-index: 6; box-shadow: 0 0 10px rgba(0, 0, 0, 0.6); overflow: hidden; color: #f0f0f0; transform: translate(-50%, -50%) scale(0.05); transition: opacity 0.4s ease, transform 0.4s ease; } .projects-window.open { opacity: 1; transform: translate(-50%, -50%) scale(1); } .projects-content { padding: 20px; overflow-y: auto; display: flex; flex-wrap: wrap; gap: 15px; justify-content: center; } .proj-image { width: 200px; height: 150px; object-fit: cover; border-radius: 10px; box-shadow: 0 0 5px rgba(0, 0, 0, 0.4); cursor: pointer; transition: transform 0.4s ease, box-shadow 0.4s ease; } .proj-image:hover { transform: scale(1.1); box-shadow: 0 0 15px rgba(0, 0, 0, 0.8); } .projects-window .button { width: 18px; height: 18px; border-radius: 50%; background-color: #ccc; cursor: pointer; } .projects-window .red { background-color: red; position: absolute; left: 20px; top: 50%; transform: translateY(-50%); cursor: pointer; width: 18px; height: 18px; border-radius: 50%; } .projects-window .red:hover { background-color: darkred; } .projects-window .red::after { content: 'X'; font-weight: bold; color: white; font-size: 12px; } @media (max-width: 1024px) { .desktop { background-position: top center; transition: opacity 0.5s ease, visibility 0s 0.5s; } .icons { top: 40px; left: 10px; gap: 20px; transition: transform 0.4s ease; } .dock { bottom: 10px; padding: 8px; gap: 15px; } .dock img { width: 45px; height: 45px; transition: transform 0.4s ease; } .date-time { display: none; } } @media (max-width: 768px) { .desktop { background-size: cover; } .icons { top: 20px; left: 10px; gap: 15px; } .dock { bottom: 5px; padding: 10px; gap: 15px; } .dock img { width: 60px; height: 60px; } .icon span, .dock span { font-size: 16px; } .terminal-body { display: block; height: 100%; overflow-y: auto; white-space: pre-wrap; word-wrap: break-word; padding-bottom: 50px; max-width: 100%; font-size: 16px; } .date-time { display: none; } } @media (max-width: 480px) { .desktop { background-position: center center; } .icons { top: 10px; left: 5px; gap: 10px; } .dock { bottom: 5px; padding: 7px; gap: 10px; } .dock img { width: 50px; height: 50px; } .icon span, .dock span { font-size: 13px; } .terminal-body { display: block; height: 100%; overflow-y: auto; white-space: pre-wrap; word-wrap: break-word; padding-bottom: 50px; max-width: 100%; font-size: 13px; } .date-time { display: none; } }