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}.resume-header{margin-bottom:2.5rem;text-align:center}.resume-subtitle{color:#b3b3b3;font-size:1.05rem;font-weight:500;margin:-1rem 0 .5rem}.resume-meta{color:#8f8f8f;font-size:1rem;margin:0 0 1.5rem}.job h3{font-size:1.1rem;margin-bottom:.25rem}.job h4{color:#b3b3b3;font-weight:600;margin-top:0}.resume-container p{font-size:1.02rem}.job ul li,.resume-list li{font-size:1rem;line-height:1.75}*,:after,:before{box-sizing:border-box}:root{--color-bg:#000;--color-text:#fafafa;--color-accent:#bcbcbc;--color-border:#262626}.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:.6rem}.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-actions{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.cta-btn.outline{background:#0000;border:2px solid #fafafa;border:2px solid var(--color-text);color:#fafafa;color:var(--color-text)}.cta-btn.outline:hover{background:#fafafa;background:var(--color-text);color:#000;color:var(--color-bg)}.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%}}.headshot-wrap{border-radius:16px;display:inline-block;overflow:hidden;position:relative}.headshot-img{display:block;height:auto;width:100%}.photo-credit{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0000008c;border-radius:999px;bottom:50px;color:#ffffffeb;font-size:14px;line-height:1.2;padding:8px 12px;position:absolute;right:16px}.photo-credit a{color:#ffffffeb;text-decoration:underline;text-underline-offset:2px}.photo-credit a:focus-visible{outline:2px solid #fff;outline-offset:2px}@media (min-width:900px){.headshot-wrap{max-width:720px}}.headshot-wrap{width:min(720px,90vw)}@media (max-width:768px){.headshot-wrap{width:min(520px,86vw)}}@media (max-width:500px){.headshot-wrap{width:min(420px,84vw)}}.svx-line{align-items:center;color:var(--color-text-secondary);display:inline-flex;font-size:.9rem;gap:.5rem;letter-spacing:.4px;margin:0 0 .85rem;opacity:.92}.svx-label{opacity:.9}.svx-dot{opacity:.5}.svx-pill{align-items:center;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:10px;display:inline-flex;gap:.35rem;padding:.35rem .65rem;text-decoration:none;transition:transform .18s ease,background .18s ease,border-color .18s ease}.svx-pill,.svx-pill:hover{color:#fafafa;color:var(--color-text)}.svx-pill:hover{background:#ffffff1a;border-color:#ffffff29;transform:translateY(-1px)}.svx-pill:focus-visible{outline:2px solid #ffffff59;outline-offset:3px}.hero-title+.svx-line{margin-top:-1rem}.nav-bar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#00000059;border-bottom:1px solid var(--color-border);box-sizing:border-box;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}.nav-left a,.nav-link-btn{appearance:none;-webkit-appearance:none;background:#0000;border:0;color:var(--color-text);cursor:pointer;font-size:.9rem;letter-spacing:1px;text-decoration:none;transition:color .3s ease,opacity .3s ease}.nav-link-btn:active,.nav-link-btn:hover{background:#0000}.nav-link-btn:focus{outline:none}.nav-link-btn:focus-visible{border-radius:10px;outline:2px solid #ffffff59;outline-offset:4px}.nav-left a:hover,.nav-link-btn:hover{color:var(--color-accent);opacity:.85}.contact-btn{background:#0000;border:1px solid var(--color-accent);border-radius:25px;color:var(--color-accent);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:var(--color-accent);border-color:var(--color-accent);color:var(--color-bg)}.hamburger{display:none}.nav-dropdown{display:inline-block;position:relative}.nav-caret{display:inline-block;font-size:.9em;margin-left:8px;opacity:.8;transition:transform .2s ease}.nav-dropdown.is-open .nav-caret{transform:rotate(180deg)}.nav-dropdown .dropdown-menu{display:none}.nav-dropdown.is-open .dropdown-menu{display:block}.dropdown-menu{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0c0c0ce6;border:1px solid #ffffff1a;border-radius:14px;box-shadow:0 12px 32px #00000059;left:0;min-width:210px;padding:10px;position:absolute;top:calc(100% + 18px);z-index:2000}.dropdown-item{border-radius:10px;color:#fff;display:block;font-size:14px;padding:10px 12px;text-decoration:none}.dropdown-item:hover{background:#ffffff14}.mobile-subnav{display:none}@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{padding:0 1.5rem}.hamburger{-webkit-tap-highlight-color:transparent;appearance:none;-webkit-appearance:none;border:0;border-radius:10px;cursor:pointer;display:block;height:18px;padding:10px;position:relative;width:24px}.hamburger,.hamburger:active,.hamburger:hover{background:#0000!important}.hamburger:focus{outline:none}.hamburger:focus-visible{outline:2px solid #ffffff59;outline-offset:4px}.hamburger span{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)}.nav-left{align-items:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0c0c0cdb;border:1px solid #ffffff1a;border-radius:18px;box-shadow:0 18px 50px #0000008c;display:none;flex-direction:column;gap:.75rem;left:12px;padding:1.25rem 1rem 1.4rem;position:absolute;right:12px;text-align:center;top:70px;width:auto;z-index:2500}.nav-left.open{display:flex}.nav-left a,.nav-link-btn{border-radius:12px;display:inline-block;max-width:320px;padding:8px 12px;text-align:center;width:100%}.nav-left a:hover{background:#ffffff0f}.nav-dropdown{align-items:center;display:flex;flex-direction:column;gap:0;max-width:320px;width:100%}.nav-dropdown .dropdown-menu{display:none!important}.mobile-subnav{align-items:center;display:flex;flex-direction:column;gap:.4rem;margin-top:.35rem;max-width:320px;width:100%}.mobile-subnav-item{background:#0c0c0c8c;border:1px solid #ffffff14;border-radius:12px;color:#ffffffe0;display:block;font-size:.85rem;letter-spacing:.5px;padding:8px 0;text-align:center;text-decoration:none;width:min(320px,92%)}.mobile-subnav-item:hover{background:#0c0c0cbf}.nav-caret{display:none}.nav-portfolio-btn{opacity:.6;pointer-events:none}}@media (max-width:500px){.nav-bar{padding:0 1rem}.contact-btn{font-size:.7rem;padding:.4rem .9rem}}.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;box-sizing:border-box;color:#fff;font-family:DM Sans,sans-serif;font-size:1rem;width:100%}.contact-form input{height:44px;padding:.8rem}.contact-form textarea{max-height:220px;min-height:140px;overflow-y:auto;padding:.8rem;resize:none}.contact-form button{background:#4c8bf5;border:none;border-radius:6px;color:#fff;cursor:pointer;font-family:DM Sans,sans-serif;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)}}.footer{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000bf;border-top:1px solid var(--color-border);box-sizing:border-box;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;z-index:1000}.footer p{margin:0;overflow-wrap:anywhere}
/*# sourceMappingURL=main.11d3ef0f.css.map*/