body{-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--bg:#0d0d0d;--surface:#1a1a1a;--border:#262626;--text-primary:#fff;--text-secondary:#b3b3b3;--accent:#4c8bf5}body{-webkit-font-smoothing:antialiased;font-family:Inter,DM Sans,sans-serif;line-height:1.6;margin:0;padding:0}.app-container,body{background-color:#0d0d0d;background-color:var(--bg);color:#fff;color:var(--text-primary)}.app-container{box-sizing:border-box;margin:auto;min-height:100vh;padding-top:80px}.layout{margin:0 auto;max-width:1100px;padding:0 2rem}h1,h2,h3,h4{color:#fff;color:var(--text-primary);font-weight:700;margin-bottom:1rem}p{color:#b3b3b3;color:var(--text-secondary);line-height:1.7;margin-bottom:1.5rem}a{color:#4c8bf5;color:var(--accent);font-weight:500;text-decoration:none;transition:color .3s ease}a:hover{color:#8ab4ff}img{border-radius:12px;box-shadow:0 8px 20px #0006;margin:2rem 0;max-width:100%;transition:transform .3s ease}img:hover{transform:scale(1.01)}.btn,button{background:#fff;border:none;border-radius:6px;box-shadow:0 4px 12px #0003;color:#000;cursor:pointer;font-weight:600;padding:.8rem 1.6rem;transition:all .3s ease}.btn:hover,button:hover{background:#e5e5e5;transform:translateY(-2px)}footer{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000b3;border-top:1px solid #262626;border-top:1px solid var(--border);bottom:0;color:#b3b3b3;color:var(--text-secondary);font-size:.85rem;letter-spacing:.5px;padding:1.5rem 1rem;position:relative;text-align:center;width:100%}footer p{margin:0}footer a{color:#4c8bf5;color:var(--accent);text-decoration:none;transition:color .3s ease}footer a:hover{color:#fff;color:var(--text-primary)}@media (max-width:768px){main{padding:2rem 1rem}.posts{padding:1rem}.post-item{padding:1.5rem}.post-title{font-size:1.4rem}footer{font-size:.75rem;padding:1.2rem}}@media (min-width:1400px){.home-container h1,.home-container h2,.home-container p{max-width:60%}}main.home-container{align-items:center;background:#0d0d0d;background:var(--bg);box-sizing:border-box;color:#fff;color:var(--text-primary);display:flex;flex-direction:column;justify-content:center;margin:0;min-height:100vh;padding:0;width:100vw}.home-container h1,.home-container h2,.home-container p{margin:.5rem auto;max-width:800px;text-align:center}.home-container img{border-radius:12px;box-shadow:0 10px 30px #0009;height:auto;margin-top:2rem;max-width:700px;width:100%}.home-container .btn{margin-top:1.5rem;padding:.8rem 1.8rem}.posts{margin:6rem auto;max-width:1000px;padding:2rem;text-align:left}.posts,.posts h1{color:#fff;color:var(--text-primary)}.posts h1{font-size:2.5rem;font-weight:700;letter-spacing:.5px;margin-bottom:4rem;text-align:center}.api-post,.post-item{background:#1a1a1a;background:var(--surface);border:1px solid #262626;border:1px solid var(--border);border-radius:16px;box-shadow:0 6px 14px #0006;margin-bottom:4rem;padding:2rem;transition:transform .25s ease,box-shadow .25s ease}.api-post:hover,.post-item:hover{box-shadow:0 10px 24px #0000008c;transform:translateY(-4px)}.api-post-img,.post-img{border-radius:12px;box-shadow:0 8px 20px #0006;margin-bottom:1.5rem;transition:opacity .4s ease,transform .3s ease;width:100%}.api-post-img:hover,.post-img:hover{opacity:.95;transform:scale(1.02)}.api-post-title,.post-title{color:#fff;color:var(--text-primary);font-size:1.7rem;margin-bottom:1rem}.api-post-pargrphs,.post-pargrphs{color:#b3b3b3;color:var(--text-secondary);font-size:1rem;line-height:1.8;margin-bottom:1.5rem}.post-links{color:#4c8bf5;color:var(--accent);font-weight:500;text-decoration:none;transition:color .3s ease}.post-links:hover{color:#fff;color:var(--text-primary);text-decoration:underline}.post-link-title{color:#b3b3b3;color:var(--text-secondary);font-size:.95rem;letter-spacing:.3px;margin-bottom:.6rem;margin-top:1rem}.api-post ul{margin-left:1.2rem;padding-left:1rem}.api-post ul li{line-height:1.6;margin-bottom:1rem}.api-post h3{color:#4c8bf5;color:var(--accent);font-weight:600;margin-bottom:1rem;margin-top:2rem}@media (max-width:768px){.posts{padding:1rem}.api-post,.post-item{padding:1.2rem}.api-post-title,.post-title{font-size:1.4rem}}.portfolio{color:#fff;color:var(--text-primary);margin:6rem auto;max-width:1000px;padding:2rem}.portfolio h1{font-size:2.5rem;margin-bottom:1rem;text-align:center}.intro-text{color:#b3b3b3;color:var(--text-secondary);line-height:1.7;margin-bottom:3rem;text-align:center}.project-item{background:#1a1a1a;background:var(--surface);border:1px solid #262626;border:1px solid var(--border);border-radius:16px;box-shadow:0 6px 14px #0006;margin-bottom:3rem;padding:2rem;transition:transform .25s ease,box-shadow .25s ease}.project-item:hover{box-shadow:0 10px 24px #0000008c;transform:translateY(-4px)}.project-img{border-radius:12px;box-shadow:0 8px 20px #0006;margin-bottom:1.5rem;width:100%}.project-title{font-size:1.8rem;margin-bottom:.8rem}.project-desc{color:#b3b3b3;color:var(--text-secondary);font-size:1rem;line-height:1.8;margin-bottom:1.5rem}.project-tags{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1rem}.project-tags span{background:#262626;background:var(--border);border-radius:6px;color:#b3b3b3;color:var(--text-secondary);font-size:.9rem;padding:.3rem .8rem}.project-links{display:flex;gap:1.5rem}.project-links a{color:#4c8bf5;color:var(--accent);font-weight:600;text-decoration:none}.project-links a:hover{color:#fff;color:var(--text-primary);text-decoration:underline}.resume-container{color:#e5e5e5;font-family:DM Sans,sans-serif;margin:0 auto;max-width:900px;padding:3rem 1.5rem}.resume-title{color:#fff;font-size:2.5rem;margin-bottom:2rem;text-align:center}.resume-buttons{display:flex;gap:1rem;justify-content:center;margin-bottom:3rem}.resume-btn{background:#fbc531;border-radius:8px;color:#000;font-weight:600;padding:.7rem 1.4rem;text-decoration:none}.resume-btn.outline{background:#0000;border:2px solid #fbc531;color:#fbc531}.resume-section{margin-bottom:2.5rem}.resume-section h2{border-bottom:1px solid #555;font-size:1.6rem;margin-bottom:1rem;padding-bottom:.4rem}.resume-list li{margin-bottom:.4rem}.job{margin-bottom:1.5rem}.job-date{color:#bbb;font-size:.9rem;margin-bottom:.5rem}.contact p{margin-bottom:.3rem}.home-container{background:#000;background:var(--color-bg);color:#fafafa;color:var(--color-text);justify-content:center;margin:0;max-width:none;padding:8rem 2rem 4rem;text-align:center;width:100%}.hero-section,.home-container{align-items:center;display:flex;flex-direction:column}.hero-section{gap:1.5rem;margin-bottom:4rem;max-width:800px}.hero-name{font-size:3.5rem;font-weight:700;letter-spacing:1px;margin-bottom:1rem}.hero-title{color:#bcbcbc;color:var(--color-accent);font-size:1.6rem;font-weight:500;margin-bottom:1.5rem}.hero-text{color:#a3a3a3;font-size:1.1rem;line-height:1.8;margin:0 auto 3rem;max-width:700px}.cta-btn{background:#fafafa;background:var(--color-text);border:none;border-radius:6px;cursor:pointer;font-weight:600;letter-spacing:.5px;padding:.9rem 2rem;transition:all .3s ease}.cta-btn,.cta-btn:hover{color:#000;color:var(--color-bg)}.cta-btn:hover{background:#bcbcbc;background:var(--color-accent)}.hero-image{margin:0 auto;max-width:650px}.homepage-img{border-radius:12px;box-shadow:0 8px 20px #00000080;opacity:.3;transition:all .4s ease;width:100%}.homepage-img:hover{opacity:1;transform:scale(1.01)}@media (max-width:768px){.hero-name{font-size:2.4rem}.hero-title{font-size:1.2rem}.hero-text{font-size:1rem;padding:0 1rem}.hero-image{max-width:90%}}:root{--color-btn-bg:#fff;--color-btn-text:#000}.nav-bar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#00000059;border-bottom:1px solid #262626;border-bottom:1px solid var(--color-border);box-sizing:border-box;flex-wrap:wrap;height:70px;justify-content:space-between;left:0;padding:0 3rem;position:fixed;top:0;transition:all .3s ease;width:100%;z-index:1000}.nav-bar,.nav-left{align-items:center;display:flex}.nav-left{flex-grow:1;gap:2rem;justify-content:flex-start}.nav-left a{color:#fafafa;color:var(--color-text);font-size:.9rem;letter-spacing:1px;text-decoration:none;text-transform:uppercase;transition:color .3s ease,opacity .3s ease}.nav-left a:hover{opacity:.8}.contact-btn,.nav-left a:hover{color:#bcbcbc;color:var(--color-accent)}.contact-btn{background:#0000;border:1px solid #bcbcbc;border:1px solid var(--color-accent);border-radius:25px;cursor:pointer;flex-shrink:0;font-size:.8rem;letter-spacing:1px;padding:.6rem 1.4rem;text-transform:uppercase;transition:all .3s ease}.contact-btn:hover{background:#bcbcbc;background:var(--color-accent);border-color:#bcbcbc;border-color:var(--color-accent);color:#000;color:var(--color-bg)}@media (max-width:1024px){.nav-bar{height:65px;padding:0 2rem}.nav-left{gap:1.2rem}.contact-btn{font-size:.75rem;padding:.45rem 1rem}}@media (max-width:768px){.nav-bar{flex-direction:row;justify-content:space-between;padding:0 1.5rem}.nav-left{background:#000000e6;display:none;flex-direction:column;gap:1.5rem;left:0;padding:1rem 0;position:absolute;text-align:center;top:70px;width:100%}.nav-left.open{display:flex}.hamburger{cursor:pointer;display:block;height:18px;margin-right:auto;order:-1;position:relative;width:24px}.hamburger span{background:#bcbcbc;background:var(--color-accent);height:2px;left:0;position:absolute;transition:all .3s ease;width:100%}.hamburger span:first-child{top:0}.hamburger span:nth-child(2){top:8px}.hamburger span:nth-child(3){top:16px}.hamburger.active span:first-child{top:8px;transform:rotate(45deg)}.hamburger.active span:nth-child(2){opacity:0}.hamburger.active span:nth-child(3){top:8px;transform:rotate(-45deg)}}@media (max-width:500px){.nav-bar{padding:0 1rem}.contact-btn{font-size:.7rem;padding:.4rem .9rem}}.link-column{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000b3;display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:999}.modal-content{animation:fadeIn .3s ease-in-out;background:#1a1a1a;border-radius:12px;box-shadow:0 10px 30px #0009;color:#fff;max-width:500px;padding:2rem;width:90%}.modal-content h2{margin-top:0}.contact-form{display:flex;flex-direction:column;gap:.8rem;margin-top:1rem}.contact-form input,.contact-form textarea{background:#262626;border:none;border-radius:6px;color:#fff;font-size:1rem;padding:.8rem}.contact-form button{background:#4c8bf5;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;padding:.8rem;transition:background .3s ease}.contact-form button:hover{background:#6ea1ff}.close-btn{background:#0000;border:none;color:#b3b3b3;cursor:pointer;font-size:.9rem;margin-top:1.2rem}@keyframes fadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.spinner{animation:spin 1s ease-in-out infinite;vertical-align:middle}button[disabled]{cursor:not-allowed;opacity:.7}button[type=submit]{position:relative;transition:all .3s ease}button[type=submit]:hover:not([disabled]){background-color:#e5e5e5;transform:translateY(-2px)}.react-hot-toast{font-family:DM Sans,sans-serif}@keyframes toastFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.react-hot-toast>div{animation:toastFadeIn .4s ease forwards}.spinner{animation:spin 1s linear infinite;border:3px solid #ffffff4d;border-radius:50%;border-top-color:#fff;display:inline-block;height:18px;width:18px}@keyframes spin{to{transform:rotate(1turn)}}:root{--color-bg:#000;--color-surface:#1a1a1a;--color-text:#fafafa;--color-text-secondary:#a3a3a3;--color-accent:#bcbcbc;--color-border:#262626}.footer{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000bf;border-top:1px solid #262626;border-top:1px solid var(--color-border);color:#a3a3a3;color:var(--color-text-secondary);font-size:.85rem;height:auto;letter-spacing:.5px;padding:1.5rem 3rem;position:relative;text-align:center;transition:all .3s ease;width:100%;z-index:1000}.footer p:hover{color:#bcbcbc;color:var(--color-accent);transition:color .3s ease}@media (max-width:768px){.footer{font-size:.8rem;padding:1rem 2rem}}@media (max-width:500px){.footer{font-size:.75rem;padding:.8rem 1.5rem}}
/*# sourceMappingURL=main.abffd56d.css.map*/