body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0;overflow-x:hidden;width:100%}*{box-sizing:border-box}html{overflow-x:hidden;width:100%}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}h2{display:flex;flex-direction:column;font-size:2.2rem!important;font-weight:700!important;gap:2.5rem;margin-bottom:2rem;padding-bottom:1.5rem;padding-top:1.5rem}html{scroll-behavior:smooth}.section{scroll-margin-top:4.5rem}body,html{color:#111;font-family:Segoe UI,Arial,"sans-serif";font-size:1.18rem;overflow-x:hidden}.banner-nav{align-items:center;background:linear-gradient(90deg,#1a237e 60%,#1976d2);box-shadow:0 2px 12px 0 #1e3c781a;box-sizing:border-box;color:#fff;display:flex;gap:2.5rem;justify-content:space-between;left:0;max-width:100vw;overflow:visible;padding:.7rem 2.5rem;position:fixed!important;right:0;top:0;width:100vw;z-index:3000}.App{color:#111;padding-top:3.5rem}.container{padding:24px}.banner-title{letter-spacing:.04em}.banner-title,.banner-title.small{color:#fff;font-size:1.7rem;font-weight:700}.banner-logo{display:block;height:4.5rem;margin-bottom:-.8rem;margin-top:-.8rem;object-fit:cover;width:auto}.banner-logo-text{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff14;border:1px solid #ffffff26;border-radius:6px;display:flex;flex-direction:row;gap:1.5rem;justify-content:flex-start;line-height:1;margin-bottom:-.2rem;margin-top:-.2rem;min-width:280px;overflow:hidden;padding:.6rem 1.5rem;position:relative;transition:all .3s ease}.banner-logo-text:before{animation:shimmer 3s infinite;background:linear-gradient(90deg,#0000,#ffffff1a 50%,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;width:100%}.banner-logo-text:hover{background:#ffffff1f;border-color:#ffffff40;box-shadow:0 4px 12px #00000026;transform:translateY(-1px)}@keyframes shimmer{0%{left:-100%}50%{left:-100%}to{left:100%}}.logo-edwards{-webkit-text-fill-color:#0000;background:linear-gradient(45deg,#fff,#e3f2fd);background-clip:text;-webkit-background-clip:text;color:#fff;font-weight:600;letter-spacing:.08em;text-shadow:0 1px 3px #0003}.logo-edwards,.logo-engineering{font-family:Segoe UI,Arial,sans-serif;font-size:1.5rem;margin:0;transition:all .3s ease}.logo-engineering{color:#90caf9;font-weight:300;letter-spacing:.12em;position:relative;text-shadow:0 0 8px #90caf94d;text-transform:uppercase}.logo-engineering:before{background:linear-gradient(90deg,#0000,#90caf9);box-shadow:0 0 4px #90caf980;content:"";height:1px;left:-1rem;position:absolute;top:50%;transform:translateY(-50%);width:.5rem}.banner-logo-text:hover .logo-edwards{text-shadow:0 0 12px #fff6}.banner-logo-text:hover .logo-engineering{color:#64b5f6;text-shadow:0 0 12px #90caf980}@media (max-width:700px){.banner-logo{height:3.5rem;margin-bottom:-.5rem;margin-top:-.5rem}.banner-logo-text{flex-shrink:1;gap:1rem;margin-bottom:-.1rem;margin-top:-.1rem;min-width:220px;padding:.4rem 1rem}.logo-edwards{font-size:1.1rem}.logo-engineering{font-size:1.1rem;letter-spacing:.08em}.App{padding-top:4.5rem}.section{scroll-margin-top:4.5rem}.banner-nav{gap:1rem;padding:.5rem 1rem}.banner-links{flex-wrap:wrap;gap:1.5rem}}.banner-links{display:flex;gap:2.2rem;list-style:none;margin:0;padding:0}.banner-links li a{border-bottom:2px solid #0000;color:#fff;font-size:1.1rem;font-weight:500;letter-spacing:.01em;padding-bottom:2px;text-decoration:none;transition:color .2s,border-bottom .2s}.banner-links li a:hover{border-bottom:2px solid #ffe082;color:#ffe082}.banner-links.banner-categories{display:flex;gap:2.2rem;list-style:none;margin:0;padding:0}.banner-links.banner-categories li a{border-bottom:2px solid #0000;color:#fff;font-size:1.1rem;font-weight:500;letter-spacing:.01em;padding-bottom:2px;text-decoration:none;transition:color .2s,border-bottom .2s}.banner-links.banner-categories li a:hover{border-bottom:2px solid #ffe082;color:#ffe082}.banner-back-link{border-bottom:2px solid #0000;color:#fff;font-size:1.1rem;font-weight:600;margin-left:2.2rem;padding-bottom:2px;text-decoration:none;transition:color .2s,border-bottom .2s}.banner-back-link:hover{border-bottom:2px solid #ffe082;color:#ffe082}.card,.links,.main-container,.profile-bio,.profile-pic,.section,.skills-grid{box-sizing:border-box;margin:24px auto;max-width:1200px;width:100%}.body{color:#333;display:flex;flex-direction:column;font-family:Arial,sans-serif;margin:0}.section{background:#0000;border:none;border-radius:18px;border-radius:0;box-shadow:none;margin:2rem auto;margin:2.5rem auto;max-width:1200px;padding:2.5rem 2.5rem 2rem;padding:2.7rem 2.7rem 2.2rem;text-align:center;width:100%}.profile-bio{align-items:center;background:#f7f7fad9;border:none;border-radius:14px;box-shadow:0 2px 8px 0 #0000000a;display:flex;flex-direction:column;margin:1.5rem auto 0;max-width:900px;padding:1.5rem 2rem;width:100%}.profile-pic{border:4px solid #e0e0e0;border-radius:5%;box-shadow:0 2px 12px 0 #0000001a;height:auto;margin-bottom:1.2rem;max-width:260px;min-width:120px;object-fit:cover;width:30vw}.links a{color:#444;font-size:1.7rem;margin:0 12px;text-decoration:none;transition:color .2s,transform .2s;vertical-align:middle}.links a:hover{color:#1976d2;transform:translateY(-2px) scale(1.12)}footer.section{background:#0000;box-shadow:0 2px 8px 0 #0000000a;margin:2rem auto 1.5rem;max-width:800px;padding:1.5rem 2rem;text-align:center}.skills-grid,footer.section{border:none;border-radius:18px}.skills-grid{box-shadow:none;display:flex;flex-direction:column;margin:2rem auto;max-width:100%;padding:2.5rem 2.5rem 2rem;width:-webkit-fit-content;width:fit-content}.skills-grid,.skills-row{align-items:center;justify-content:center}.skills-row{grid-gap:2.2rem 2.5rem;display:grid;gap:2.2rem 2.5rem;grid-template-columns:repeat(6,1fr);justify-items:center;margin:0 auto;max-width:1200px;width:100%}.skill{align-items:center;background:#f7f7fad9;border-radius:12px;box-shadow:0 2px 8px 0 #0000000a;display:flex;flex-direction:column;font-size:1.1rem;gap:.3rem;max-width:200px;min-width:140px;padding:1.1rem 1.2rem 1rem;transition:box-shadow .2s,background .2s;width:170px}.skill:hover{background:#f0f4fa;box-shadow:0 4px 16px 0 #0000001a}.skill-name{color:#222;font-size:1.1rem;font-weight:600;margin-top:.3em}.skill-desc,.skill-name{letter-spacing:.01em;margin-bottom:.1em}.skill-desc{color:#888;font-size:.9rem;font-weight:400;margin-top:.1em;white-space:nowrap}.skill-icon{box-sizing:border-box;cursor:pointer;filter:drop-shadow(0 1px 2px rgba(0,0,0,.04));height:40px;margin-bottom:.1em;object-fit:contain;transition:transform .2s,box-shadow .2s,opacity .2s;width:40px}.main-section-title{color:#222;font-size:2.2rem;font-weight:700;letter-spacing:.01em;margin-bottom:2.1rem;text-align:center}.experience-card{align-items:flex-start;background:#f7f7faeb;border-radius:14px;box-shadow:0 2px 8px 0 #0000000f;display:flex;flex:1 1 300px;flex-direction:column;font-family:Segoe UI,Arial,"sans-serif";margin-bottom:2.5rem;max-width:900px;min-width:260px;padding:1.7rem 2rem 1.3rem;transition:box-shadow .2s,background .2s;width:100%}.experience-card:hover{background:#f0f4fa;box-shadow:0 4px 16px 0 #0000001a}.experience-card h3{color:#1976d2;font-family:Segoe UI,Arial,"sans-serif";font-size:1.25rem;font-weight:600;margin-bottom:.7rem;margin-top:0}.experience-card ul{color:#444;font-family:Segoe UI,Arial,"sans-serif";font-size:1.05rem;line-height:1.6;margin:0;padding-left:1.1em}.experience-card li{font-family:Segoe UI,Arial,"sans-serif";line-height:1.5;margin-bottom:.5em}.experience-card strong{font-family:Segoe UI,Arial,"sans-serif";font-weight:600}.experience-card:not(:last-child){margin-bottom:2.5rem}.experience-grid{display:flex;flex-direction:column;gap:1.5rem;margin:0 auto;max-width:900px}.section#references{margin-bottom:5rem}.contact-container{grid-gap:3rem;align-items:start;display:grid;gap:3rem;grid-template-columns:1fr 1fr;margin:0 auto 1rem;max-width:1200px;padding:0 2rem}.contact-info{display:flex;flex-direction:column;gap:1rem}.contact-info h3{color:#1976d2;font-size:1.8rem;font-weight:600;margin-bottom:1rem;margin-top:0}.contact-info h3,.contact-info>p{background:#fff;border:1px solid #0000000d;border-radius:12px;box-shadow:0 4px 16px #0000000f;padding:1.5rem}.contact-info>p{color:#555;font-size:1.1rem;line-height:1.6;margin:0}.contact-details{background:#fff;border:1px solid #0000000d;border-radius:12px;box-shadow:0 4px 16px #0000000f;display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem}.contact-item{align-items:flex-start;display:flex;gap:1rem}.contact-icon{color:#1976d2;flex-shrink:0;font-size:1.3rem;margin-top:.2rem}.contact-item div{display:flex;flex-direction:column;gap:.3rem}.contact-item strong{color:#333;font-size:1.1rem;font-weight:600}.contact-item p{color:#666;font-size:1rem;margin:0}.contact-cta{background:#fff;border:1px solid #0000000d;border-left:4px solid #1976d2;border-radius:12px;box-shadow:0 4px 16px #0000000f;padding:1.5rem}.contact-cta h4{color:#1976d2;font-size:1.2rem;font-weight:600;margin-bottom:1rem;margin-top:0}.contact-cta ul{color:#555;margin:0;padding-left:1.2rem}.contact-cta li{line-height:1.4;margin-bottom:.5rem}.contact-details-horizontal{align-items:flex-start;background:#fff;border:1px solid #0000000d;border-radius:16px;box-shadow:0 8px 32px #00000014;display:flex;gap:2rem;justify-content:space-around;margin:0 auto;max-width:1200px;padding:2rem}.contact-details-horizontal .contact-item{align-items:flex-start;display:flex;flex:1 1;gap:1rem;justify-content:center;text-align:center}.contact-details-horizontal .contact-icon{color:#1976d2;flex-shrink:0;font-size:1.5rem;margin-top:.2rem}.contact-details-horizontal .contact-item div{align-items:center;display:flex;flex-direction:column;gap:.3rem}.contact-details-horizontal .contact-item strong{color:#333;font-size:1.1rem;font-weight:600}.contact-details-horizontal .contact-item p{color:#666;font-size:1rem;margin:0}.contact-form-container{background:#fff;border:1px solid #0000000d;border-radius:16px;box-shadow:0 8px 32px #00000014;display:flex;flex-direction:column;height:-webkit-fit-content;height:fit-content;padding:2rem}.contact-form h3{color:#333;font-size:1.6rem;font-weight:600;margin-bottom:1.5rem;margin-top:0}.contact-form{display:flex;flex-direction:column}.form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr;margin-bottom:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{color:#333;font-size:.95rem;font-weight:500}.form-group input,.form-group textarea{background:#fafbfc;border:2px solid #e1e5e9;border-radius:8px;font-family:inherit;font-size:1rem;padding:.75rem 1rem;transition:border-color .3s,box-shadow .3s}.form-group input:focus,.form-group textarea:focus{background:#fff;border-color:#1976d2;box-shadow:0 0 0 3px #1976d21a;outline:none}.form-group textarea{flex:1 1;min-height:235px;resize:vertical}.form-group:has(textarea){display:flex;flex:1 1;flex-direction:column}.form-group:has(textarea) textarea{flex:1 1}.submit-btn{align-items:center;background:linear-gradient(135deg,#1976d2,#1565c0);border:none;border-radius:10px;box-shadow:0 4px 16px #1976d24d;color:#fff;cursor:pointer;display:flex;font-size:1.1rem;font-weight:600;gap:.5rem;justify-content:center;margin-top:1rem;padding:1rem 2rem;transition:all .3s ease;width:100%}.submit-btn:hover:not(:disabled){background:linear-gradient(135deg,#1565c0,#0d47a1);box-shadow:0 6px 20px #1976d266;transform:translateY(-2px)}.submit-btn:disabled{box-shadow:0 4px 16px #1976d233;cursor:not-allowed;opacity:.7;transform:none}@media (max-width:768px){body,html{font-size:1rem}.App,body,html{overflow-x:hidden}.App{max-width:100vw;padding-top:4.5rem;width:100%}.banner-nav{flex-wrap:wrap;gap:1rem;min-height:4rem;padding:.5rem 1rem}.banner-links{flex-wrap:wrap;font-size:.9rem;gap:1rem}.banner-links li a{font-size:.9rem;padding:.3rem .5rem}.section{margin:1rem auto;max-width:100%;padding:1.5rem .5rem;width:calc(100% - 1rem)}h2{font-size:1.8rem!important;margin-bottom:1.5rem;padding-bottom:1rem;padding-top:1rem}.skills-row{gap:.8rem;grid-template-columns:repeat(2,1fr);padding:0;width:100%}.skill{font-size:.9rem;max-width:none;min-width:auto;padding:.7rem .5rem;width:100%}.skill-name{font-size:.95rem;margin-bottom:.2rem}.skill-desc{font-size:.75rem;line-height:1.2;text-align:center;white-space:normal}.profile-bio{margin:1rem auto;padding:1.2rem .8rem;width:calc(100% - 1rem)}.contact-container,.projects-grid{gap:1.5rem;grid-template-columns:1fr;padding:0;width:100%}.contact-form-container{box-sizing:border-box;margin:0 auto;padding:1.2rem .8rem;width:calc(100% - 1rem)}.form-row{gap:1rem;grid-template-columns:1fr}.contact-form{width:100%}.form-group input,.form-group select,.form-group textarea{box-sizing:border-box;font-size:1rem;padding:.8rem;width:100%}.contact-details-horizontal{flex-direction:column;gap:1rem;margin:0 auto;padding:1.2rem .8rem;width:calc(100% - 1rem)}.contact-details-horizontal .contact-item{justify-content:flex-start;text-align:left}.contact-details-horizontal .contact-item div{align-items:flex-start}.contact-info{width:100%}.contact-info h3{font-size:1.4rem}.contact-info h3,.contact-info>p{margin:0 auto 1rem;padding:1.2rem .8rem;width:calc(100% - 1rem)}.contact-info>p{font-size:1rem}.contact-cta{margin:0 auto}.contact-cta,.experience-card{padding:1.2rem .8rem;width:calc(100% - 1rem)}.experience-card{margin-bottom:1.5rem;margin-left:auto;margin-right:auto}.footer{margin:0 auto;padding:1.5rem .8rem;text-align:center;width:calc(100% - 1rem)}.btn,.contact-form button{font-size:1rem;padding:.8rem 1rem;width:100%}.container,.main-container{margin:0 auto;max-width:100%;padding:1rem .5rem;width:calc(100% - 1rem)}}@media (max-width:480px){.banner-nav{flex-direction:column;gap:.5rem;min-height:auto;padding:.5rem}.banner-logo-text{min-width:200px;padding:.3rem .8rem}.logo-edwards,.logo-engineering{font-size:1rem}.banner-links{justify-content:center;width:100%}.skills-row{gap:.6rem;grid-template-columns:repeat(2,1fr)}.skill{padding:.6rem .3rem}.skill-name{font-size:.85rem}.skill-desc{font-size:.7rem}.section{padding:1rem .25rem;width:calc(100% - .5rem)}.contact-cta,.contact-details-horizontal,.contact-form-container,.contact-info h3,.contact-info>p,.experience-card{padding:1rem .5rem;width:calc(100% - .5rem)}h2{font-size:1.5rem!important}.App{padding-top:6rem}}.project-card{align-items:stretch;background:#f7f7faeb;border-radius:14px;box-shadow:0 2px 8px 0 #0000000f;display:flex;flex-direction:row;gap:2rem;margin:0 auto 2rem;max-width:900px;padding:2rem;transition:box-shadow .2s,background .2s;width:100%}.project-card:hover{background:#f0f4fa;box-shadow:0 4px 16px 0 #0000001a}.project-card.image-left .project-image-placeholder{order:0}.project-card.image-left .project-card-content,.project-card.image-right .project-image-placeholder{order:1}.project-card.image-right .project-card-content{order:0}.project-card-content{display:flex;flex:1 1;flex-direction:column;justify-content:center;min-width:0;text-align:left}.project-card-content h3{color:#1976d2;font-size:1.25rem;margin-bottom:.7rem;margin-top:0}.project-card-content ul{color:#444;font-size:1.05rem;margin:0;padding-left:1.1em}.project-card-content li{line-height:1.5;margin-bottom:.5em}.project-links{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.project-links a{background:#1976d214;border-radius:6px;color:#1976d2;display:inline-block;font-weight:600;padding:.3rem .8rem;text-decoration:none;transition:all .2s ease;white-space:nowrap}.project-links a:hover{background:#1976d226;transform:translateY(-1px)}.link-separator{color:#666;font-weight:400;margin:0 .3rem}.project-image-placeholder{border-radius:10px;flex:0 0 300px;height:300px;overflow:hidden;width:300px}.project-image-placeholder img{display:block;height:100%;object-fit:cover;width:100%}.project-group-label{align-items:center;color:#1a237e;display:flex;font-size:1.08rem;font-weight:700;letter-spacing:.01em;margin:0 0 1.5rem}.project-group-label:before{background:#1976d2;border-radius:3px;content:"";display:inline-block;height:1.5em;margin-right:.7em;opacity:.85;width:5px}.projects-grid{display:flex;flex-direction:column;gap:1.5rem;margin:0 auto;max-width:1200px;width:100%}.show-all-btn{background:#1976d2;border-radius:8px;color:#fff;display:inline-block;font-size:1.1rem;font-weight:600;padding:.8rem 1.8rem;text-decoration:none;transition:background .2s,transform .2s}.show-all-btn:hover{background:#1565c0;transform:translateY(-1px)}@media (max-width:768px){.project-card{flex-direction:column!important;gap:1.5rem;margin:0 auto 1.5rem;max-width:none;padding:1.2rem .8rem;width:calc(100% - 1rem)}.project-card.image-left .project-card-content,.project-card.image-left .project-image-placeholder,.project-card.image-right .project-card-content,.project-card.image-right .project-image-placeholder{order:0}.project-image-placeholder{height:200px;margin:0;max-width:100%;width:100%!important}.project-card-content{text-align:left;width:100%}.project-card-content h3{font-size:1.3rem;margin-bottom:.5rem}.project-card-content p{font-size:1rem;line-height:1.5}.projects-grid{gap:1rem;padding:0;width:100%}.show-all-btn{box-sizing:border-box;font-size:1rem;margin:1rem auto;padding:.8rem 1.2rem;text-align:center;width:calc(100% - 1rem)}}@media (max-width:480px){.project-card{gap:1rem;padding:1rem}.project-image-placeholder{height:150px}.project-card-content h3{font-size:1.2rem}.project-card-content p{font-size:.9rem}}.all-projects-page .container{padding:24px}.back-link{color:#0366d6;display:inline-block;margin-top:18px}.category-nav{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0 18px}.category-btn{background:#0000;border:1px solid #dbe6f7;border-radius:8px;color:#1976d2;cursor:pointer;padding:8px 12px}.project-group{margin-top:28px}.project-group .project-group-label{margin-bottom:12px;text-align:left}@media (max-width:768px){.all-projects-page .container{padding:1rem}.category-nav{gap:.5rem;justify-content:center;margin:.5rem 0 1rem}.category-btn{flex:1 1;font-size:.9rem;min-width:-webkit-fit-content;min-width:fit-content;padding:.6rem 1rem;text-align:center}.project-group{margin-top:1.5rem}.back-link{font-size:1rem;margin-top:1rem}}@media (max-width:480px){.category-nav{flex-direction:column;gap:.5rem}.category-btn{text-align:center;width:100%}}
/*# sourceMappingURL=main.e189dabe.css.map*/