*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,sans-serif;background:#f9fafb;color:#111827;line-height:1.6}nav{position:fixed;top:0;left:0;right:0;background:#fff;border-bottom:1px solid #e5e7eb;z-index:1000;padding:clamp(12px,3vw,16px) 5%;display:flex;justify-content:space-between;align-items:center;box-shadow:0 1px 3px #0000000d}.logo{font-size:clamp(1.4rem,5vw,1.8rem);font-weight:800;color:#111827}.desktop-links{display:flex;gap:clamp(1.5rem,4vw,2.5rem);font-weight:500}.desktop-links a{text-decoration:none;color:#374151;transition:color .2s ease}.desktop-links a:hover{color:#2563eb}.hamburger{display:none;background:none;border:none;cursor:pointer;width:40px;height:40px;padding:0;align-self:center}.hamburger-lines{display:flex;flex-direction:column;justify-content:space-between;height:20px;width:30px}.hamburger-lines span{width:100%;height:3px;background:#111827;transition:all .3s ease;border-radius:2px}.hamburger-lines.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.hamburger-lines.open span:nth-child(2){opacity:0}.hamburger-lines.open span:nth-child(3){transform:rotate(-45deg) translate(7px,-6px)}.mobile-menu{position:fixed;top:70px;left:0;width:100%;background:#fff;border-bottom:1px solid #e5e7eb;box-shadow:0 4px 12px #00000014;display:flex;flex-direction:column;align-items:center;gap:1.5rem;max-height:0;overflow:hidden;transition:max-height .4s ease,opacity .4s ease;opacity:0;z-index:999;text-align:center}.mobile-menu.open{max-height:500px;opacity:1;padding:2rem 1rem}.mobile-menu a{display:block;padding:1rem 0;font-size:1.25rem;font-weight:500;color:#374151;text-decoration:none;transition:color .2s;width:100%;max-width:300px}.mobile-menu a:hover{color:#2563eb}@media(max-width:768px){.desktop-links{display:none!important}.hamburger{display:flex!important}.page-container{padding-top:clamp(90px,15vh,120px)}}.page-container{padding:clamp(100px,15vh,140px) 5% 60px;max-width:1200px;margin:0 auto}.hero{padding:clamp(100px,15vh,140px) 5% 80px;text-align:center}.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,8vw,80px);align-items:center;max-width:1100px;margin:0 auto}.hero-text h1{font-size:clamp(2.5rem,8vw,3.6rem);font-weight:800;line-height:1.05;margin:0 0 24px;color:#111827}.hero-text .skills{font-size:clamp(1.2rem,5vw,1.5rem);font-weight:600;color:#4b5563;margin:0 0 32px}.hero-text .description{font-size:clamp(1rem,4vw,1.25rem);color:#4b5563;line-height:1.6;max-width:520px;margin:0 auto 48px}.profile-img{width:100%;max-width:clamp(280px,35vw,420px);border-radius:50%;box-shadow:0 10px 30px #0000001a;border:4px solid white;object-fit:cover;transition:transform .3s ease}.profile-img:hover{transform:scale(1.03)}@media(min-width:1200px){.profile-img{max-width:420px}}.cta-buttons{display:flex;gap:20px;flex-wrap:wrap;justify-content:center}@media(max-width:768px){.hero-grid{grid-template-columns:1fr;text-align:center}.profile-img{max-width:clamp(220px,55vw,280px)}.cta-buttons{flex-direction:column;align-items:center}}.ec2-card,.console-card{background:#fff;border-radius:12px;padding:clamp(20px,5vw,40px);box-shadow:0 4px 20px #0000000f;border:1px solid #e5e7eb;margin-bottom:clamp(40px,8vw,60px)}.ec2-card h2,.console-card h2{font-size:clamp(1.6rem,5vw,2rem);margin-bottom:1rem;text-align:center}.ec2-status{font-size:clamp(1.2rem,4vw,1.4rem);font-weight:700;margin-bottom:32px;text-align:center}.ec2-buttons{display:flex;justify-content:center;gap:clamp(1rem,4vw,2rem);flex-wrap:wrap;margin-bottom:40px}.ec2-log{background:#f8fafc;border-radius:8px;padding:clamp(12px,3vw,20px);max-height:clamp(300px,50vh,400px);overflow-y:auto;font-family:Courier New,Courier,monospace;font-size:clamp(.85rem,3vw,.95rem);color:#111827;border:1px solid #e5e7eb;margin-bottom:24px}.ec2-log-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:1rem}.ec2-log-clear{padding:6px 16px;background:#ef4444;color:#fff;border:none;border-radius:6px;font-size:.9rem;cursor:pointer;white-space:nowrap}.ec2-log-clear:disabled{background:#d1d5db;cursor:not-allowed;opacity:.6}.console-card p{text-align:center;margin-bottom:clamp(12px,4vw,16px);color:#6b7280;font-size:clamp(.95rem,3vw,1rem)}.console-buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(8px,2vw,12px);margin-bottom:clamp(16px,4vw,20px)}.console-btn{padding:clamp(8px,2vw,12px) clamp(12px,3vw,20px);background:#e5e7eb;color:#111827;border:none;border-radius:6px;cursor:pointer;font-size:clamp(.85rem,3vw,.95rem);transition:all .2s;flex:1 1 45%;max-width:220px;min-width:140px}.console-btn.active{background:#069;color:#fff}.console-btn:hover{background:#d1d5db}.console-output{background:#0d1117;color:#c9d1d9;font-family:Courier New,Courier,monospace;padding:clamp(12px,3vw,16px);border-radius:8px;max-height:clamp(300px,60vh,500px);overflow-y:auto;white-space:pre-wrap;word-break:break-word;font-size:clamp(.85rem,3vw,.95rem);line-height:1.5;border:1px solid #30363d}.console-prompt{color:#58a6ff;margin-bottom:8px;font-weight:700}.console-text{white-space:pre-wrap;word-break:break-word}.console-error{color:#ff6b6b;font-weight:700}.console-loading{color:#6b7280;text-align:center;padding:20px}footer{text-align:center;padding:60px 20px 40px;color:#6b7280;font-size:.95rem;border-top:1px solid #e5e7eb}@media(max-width:480px){.page-container{padding:90px 5% 40px}.ec2-card,.console-card{padding:20px 15px}.ec2-buttons button,.console-btn{width:100%;max-width:none}.ec2-log,.console-output{max-height:40vh}}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}
