*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell",sans-serif;line-height:1.6;color:#1e293b;background-color:#fff}html{font-size:16px;scroll-behavior:smooth}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell",sans-serif;font-weight:400;line-height:1.6;color:#1e293b;background-color:#fff;margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;margin-bottom:1rem;color:#1e293b}h1{font-size:3rem;font-weight:700}@media(max-width: 768px){h1{font-size:2.25rem}}h2{font-size:2.25rem}@media(max-width: 768px){h2{font-size:1.875rem}}h3{font-size:1.875rem}@media(max-width: 768px){h3{font-size:1.5rem}}h4{font-size:1.5rem}@media(max-width: 768px){h4{font-size:1.25rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-bottom:1rem;color:#64748b}a{color:#2563eb;text-decoration:none;transition:all .2s ease-in-out}a:hover{color:#1d4ed8;text-decoration:underline}a:focus{outline:2px solid #2563eb;outline-offset:2px;border-radius:.375rem}.container{max-width:1200px;margin:0 auto;padding:0 1rem}.section__title{text-align:center;margin-bottom:4rem;position:relative}.section__title::after{content:"";position:absolute;bottom:-1rem;left:50%;transform:translateX(-50%);width:64px;height:4px;background:linear-gradient(90deg, #2563eb, #f59e0b);border-radius:.375rem}.btn{display:inline-flex;align-items:center;justify-content:center;padding:1rem 2rem;border-radius:.5rem;font-weight:500;text-decoration:none;transition:all .2s ease-in-out;border:none;cursor:pointer;font-size:1rem;line-height:1.5}.btn--primary{background:linear-gradient(135deg, #2563eb, #3b82f6);color:#fff;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.btn--primary:hover{transform:translateY(-2px);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);text-decoration:none}.btn--secondary{background:rgba(0,0,0,0);color:#2563eb;border:2px solid #2563eb}.btn--secondary:hover{background:#2563eb;color:#fff;text-decoration:none}*:focus{outline:2px solid #2563eb;outline-offset:2px}button:focus,.btn:focus{outline:2px solid #2563eb;outline-offset:2px}.site-header{background-color:#fff;border-bottom:1px solid #e2e8f0;position:sticky;top:0;z-index:100}.nav{max-width:1200px;margin:0 auto;padding:0 1rem}.nav__container{display:flex;align-items:center;justify-content:space-between;padding:1rem 0}.nav__logo{font-size:1.5rem;font-weight:700;color:#64748b}.nav__menu{display:flex;list-style:none;gap:2rem}@media(min-width: 768px){.nav__menu{gap:3rem}}.nav__link{color:#1e293b;font-weight:500;transition:color .2s ease}.nav__link:hover{color:#2563eb}.site-main{min-height:calc(100vh - 140px);padding:2rem 0}@media(min-width: 768px){.site-main{padding:0rem 0}}.site-footer{background-color:#f8fafc;border-top:1px solid #e2e8f0;padding:2rem 0;margin-top:auto}.footer__container{max-width:1200px;margin:0 auto;padding:0 1rem;text-align:center;color:#64748b}.grid{display:grid;gap:2rem}.grid--2{grid-template-columns:1fr}@media(min-width: 768px){.grid--2{grid-template-columns:repeat(2, 1fr)}}.grid--3{grid-template-columns:1fr}@media(min-width: 768px){.grid--3{grid-template-columns:repeat(2, 1fr)}}.hero{padding:4rem 0;background:linear-gradient(135deg, #f8fafc 0%, white 100%);min-height:50vh;display:flex;align-items:center;position:relative;overflow:hidden}.hero::before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grain" width="100" height="100" patternUnits="userSpaceOnUse"><circle cx="25" cy="25" r="1" fill="%23f8fafc"/><circle cx="75" cy="75" r="1" fill="%23f1f5f9"/><circle cx="50" cy="10" r="0.5" fill="%23e2e8f0"/></pattern></defs><rect width="100" height="100" fill="url(%23grain)"/></svg>');opacity:.3;pointer-events:none}.hero__container{max-width:1200px;margin:0 auto;padding:0 1rem;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;position:relative;z-index:1}@media(max-width: 1024px){.hero__container{grid-template-columns:1fr;gap:3rem;text-align:center}}.hero__content{max-width:600px}.hero__title{font-size:3.5rem;font-weight:700;margin-bottom:1rem;line-height:1.1}@media(max-width: 768px){.hero__title{font-size:2.5rem}}.hero__name{background:linear-gradient(135deg, #2563eb, #f59e0b);-webkit-background-clip:text;-webkit-text-fill-color:rgba(0,0,0,0);background-clip:text}.hero__subtitle{font-size:1.5rem;color:#64748b;margin-bottom:1.5rem;font-weight:500}@media(max-width: 768px){.hero__subtitle{font-size:1.25rem}}.hero__description{font-size:1.125rem;color:#64748b;margin-bottom:3rem;line-height:1.7}@media(max-width: 768px){.hero__description{font-size:1rem}}.hero__actions{display:flex;gap:1.5rem;flex-wrap:wrap}@media(max-width: 768px){.hero__actions{justify-content:center}}.hero__image{display:flex;justify-content:center;align-items:center}@media(max-width: 1024px){.hero__image{order:-1}}.hero__avatar{position:relative}.hero__avatar::before{content:"";position:absolute;top:-20px;left:-20px;right:-20px;bottom:-20px;background:linear-gradient(135deg, #2563eb, #f59e0b);border-radius:50%;opacity:.1;animation:pulse 2s infinite}.hero__avatar-image{width:300px;height:300px;border-radius:50%;object-fit:cover;object-position:center;box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);position:relative;z-index:1;border:4px solid #fff}@media(max-width: 768px){.hero__avatar-image{width:250px;height:250px}}@keyframes pulse{0%,100%{transform:scale(1);opacity:.1}50%{transform:scale(1.05);opacity:.2}}.about{padding:4rem 0;background:#fff}.about__container{max-width:1200px;margin:0 auto;padding:0 1rem}.about__content{display:grid;grid-template-columns:2fr 1fr;gap:4rem;align-items:start}@media(max-width: 1024px){.about__content{grid-template-columns:1fr;gap:3rem}}.about__text p{font-size:1.125rem;line-height:1.7;margin-bottom:1.5rem}.about__skills h3{margin-bottom:1.5rem;color:#1e293b}.skills__grid{display:flex;flex-wrap:wrap;gap:.5rem}.skill__tag{display:inline-block;padding:.5rem 1rem;background:#f8fafc;color:#1e293b;border-radius:.5rem;font-size:.875rem;font-weight:500;border:1px solid #e2e8f0;transition:all .2s ease}.skill__tag:hover{background:#2563eb;color:#fff;transform:translateY(-2px);box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.projects{padding:4rem 0;background:#f8fafc}.projects__container{max-width:1200px;margin:0 auto;padding:0 1rem}.projects__grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(350px, 1fr));gap:3rem}@media(max-width: 768px){.projects__grid{grid-template-columns:1fr}}.project__card{background:#fff;border-radius:.75rem;overflow:hidden;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);transition:all .3s ease;border:1px solid #e2e8f0}.project__card:hover{transform:translateY(-8px);box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.project__card__image{height:200px;background:#f8fafc;overflow:hidden}.project__card__placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.project__card__content{padding:2rem}.project__card__title{font-size:1.25rem;font-weight:600;margin-bottom:1rem;color:#1e293b}.project__card__description{color:#64748b;margin-bottom:1.5rem;line-height:1.6}.project__card__tech{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.project__card__links{display:flex;gap:1rem}.project__card__link{color:#2563eb;font-weight:500;text-decoration:none;transition:color .2s ease}.project__card__link:hover{color:#1d4ed8;text-decoration:underline}.tech__tag{display:inline-block;padding:.25rem .5rem;background:#2563eb;color:#fff;border-radius:.375rem;font-size:.75rem;font-weight:500}.contact{padding:4rem 0;background:#fff;display:flex;flex-direction:row;align-items:center;justify-content:center}@media(max-width: 768px){.contact{flex-direction:column}}.contact__container{max-width:1200px;margin:0 auto;padding:0 1rem;text-align:center}.contact__description{font-size:1.125rem;color:#64748b;margin-bottom:3rem;max-width:600px;margin-left:auto;margin-right:auto}.contact__info{display:grid;grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));gap:3rem;margin-top:4rem}@media(max-width: 768px){.contact__info{grid-template-columns:1fr;gap:2rem}}.contact__item h3{margin-bottom:1rem;color:#1e293b}.contact__item a{color:#2563eb;font-size:1.125rem;font-weight:500;text-decoration:none;transition:color .2s ease}.contact__item a:hover{color:#1d4ed8;text-decoration:underline}.contact__form{max-width:70%;min-width:50%;margin:0 auto;padding:4rem;margin-top:3rem;background:#f8fafc;border-radius:.75rem;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}@media(max-width: 768px){.contact__form{max-width:100%;padding:2rem}}.contact__form h2{font-size:1.75rem;font-weight:700;margin-bottom:3rem;color:#1e293b;text-align:center}.contact__form .contact-form{display:flex;flex-direction:column;gap:1.5rem}.contact__form .form-group{display:flex;flex-direction:column;position:relative}.contact__form .form-group label{font-size:1rem;font-weight:500;margin-bottom:.5rem;color:#1e293b;display:block}.contact__form .form-group label[for]{cursor:pointer}.contact__form .form-group.error input,.contact__form .form-group.error textarea{border-color:#ef4444;box-shadow:0 0 0 3px rgba(239,68,68,.1)}.contact__form .form-group.success input,.contact__form .form-group.success textarea{border-color:#10b981;box-shadow:0 0 0 3px rgba(16,185,129,.1)}.contact__form .form-group input,.contact__form .form-group textarea{width:100%;padding:1rem 1.5rem;border:2px solid #e2e8f0;border-radius:.5rem;font-size:1rem;font-weight:400;color:#1e293b;background:#fff;transition:all .2s ease;font-family:inherit}.contact__form .form-group input:focus,.contact__form .form-group textarea:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1)}.contact__form .form-group input:hover,.contact__form .form-group textarea:hover{border-color:#3b82f6}.contact__form .form-group input:invalid,.contact__form .form-group textarea:invalid{border-color:#ef4444}.contact__form .form-group input:valid,.contact__form .form-group textarea:valid{border-color:#10b981}.contact__form .form-group input::placeholder,.contact__form .form-group textarea::placeholder{color:#94a3b8;font-style:italic}.contact__form .form-group input:required,.contact__form .form-group textarea:required{position:relative}.contact__form .form-group input:required::after,.contact__form .form-group textarea:required::after{content:" *";color:#ef4444;font-weight:700}.contact__form .form-group textarea{resize:vertical;min-height:120px;line-height:1.5}.contact__form .submit-btn{background:#2563eb;color:#fff;border:none;padding:1rem 3rem;font-size:1.125rem;font-weight:600;border-radius:.5rem;cursor:pointer;transition:all .2s ease;margin-top:1.5rem;align-self:center;min-width:160px;font-family:inherit}.contact__form .submit-btn:hover{background:#1d4ed8;transform:translateY(-1px);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.contact__form .submit-btn:active{transform:translateY(0);box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.contact__form .submit-btn:focus{outline:none;box-shadow:0 0 0 3px rgba(37,99,235,.3)}.contact__form .submit-btn:disabled{background:#94a3b8;cursor:not-allowed;transform:none;box-shadow:none}.contact__form .submit-btn:disabled:hover{background:#94a3b8;transform:none;box-shadow:none}.contact__form .form-error{color:#ef4444;font-size:.875rem;margin-top:.25rem;display:block}.contact__form .form-success{color:#10b981;font-size:.875rem;margin-top:.25rem;display:block}.navbar{padding:1rem 0;background:hsla(0,0%,100%,.95);backdrop-filter:blur(10px);position:sticky;top:0;z-index:1000;border-bottom:1px solid rgba(0,0,0,.05)}.navbar .container{display:flex;align-items:center;justify-content:space-between;position:relative}.navbar-brand{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:inherit}.navbar-brand .logo{width:10rem;height:auto}.navbar-toggler{display:block;background:none;border:none;padding:.5rem;cursor:pointer}@media(min-width: 768px){.navbar-toggler{display:none}}.navbar-toggler-icon{display:block;width:1.5rem;height:2px;background:#000;position:relative;transition:background .3s ease}.navbar-toggler-icon::before,.navbar-toggler-icon::after{content:"";position:absolute;width:100%;height:100%;background:#000;transition:transform .3s ease}.navbar-toggler-icon::before{transform:translateY(-6px)}.navbar-toggler-icon::after{transform:translateY(6px)}.navbar-toggler.active .navbar-toggler-icon{background:rgba(0,0,0,0)}.navbar-toggler.active .navbar-toggler-icon::before{transform:rotate(45deg)}.navbar-toggler.active .navbar-toggler-icon::after{transform:rotate(-45deg)}.navbar-menu{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border-top:1px solid rgba(0,0,0,.05);box-shadow:0 4px 12px rgba(0,0,0,.1)}@media(min-width: 768px){.navbar-menu{position:static;display:block;background:none;border-top:none;box-shadow:none}}.navbar-menu.show{display:block}.navbar-nav{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:2rem}@media(max-width: 767px){.navbar-nav{flex-direction:column;gap:0;padding:1rem 0;align-items:stretch}}@media(max-width: 767px){.navbar .nav-item{border-bottom:1px solid rgba(0,0,0,.05)}.navbar .nav-item:last-child{border-bottom:none}}.navbar .nav-item .nav-link{color:#000;text-decoration:none;font-weight:500;transition:color .2s ease;display:block;padding:.75rem 1rem}@media(max-width: 767px){.navbar .nav-item .nav-link{padding:1rem 1.5rem;font-size:1.1rem;border-radius:0}.navbar .nav-item .nav-link:hover{background:rgba(106,117,79,.05)}}.navbar .nav-item .nav-link:hover{color:#2563eb}@media(max-width: 767px){.navbar .nav-item .btn.hero-cta{margin:1rem 1.5rem;text-align:center;display:block;width:calc(100% - 3rem);border-radius:.5rem;font-size:1rem;padding:.75rem 1rem}}.site-footer{background:#1e293b;color:#fff;padding:3rem 0}.site-footer__container{max-width:1200px;margin:0 auto;padding:0 1rem;display:flex;justify-content:space-between;align-items:center}@media(max-width: 768px){.site-footer__container{flex-direction:column;gap:1.5rem;text-align:center}}.site-footer__social{display:flex;gap:1.5rem}.site-footer__social a{color:#94a3b8;text-decoration:none;font-weight:500;transition:color .2s ease}.site-footer__social a:hover{color:#fff;text-decoration:none}p{margin:0;color:#94a3b8}.resume-header{text-align:center;padding:3rem;background:#f8fafc;box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.resume-header h1{font-size:2.5rem;margin-bottom:.25rem;color:#2563eb;font-weight:700}.resume-header .subtitle{font-size:1.2rem;color:#64748b;margin-bottom:.5rem}.resume-header .contact a{color:#1d4ed8;text-decoration:none;margin:0 .25rem}.resume-header .contact a:hover{text-decoration:underline}.resume-header .btn-primary{display:inline-block;margin-top:1rem;background:#2563eb;color:#fff;padding:.5rem 1.5rem;border-radius:.5rem;font-weight:500;text-decoration:none;box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.resume-header .btn-primary:hover{background:#1d4ed8}.resume-content{max-width:800px;margin:3rem auto;padding:0 1rem}.resume-content section{margin-bottom:3rem}.resume-content section h2{display:flex;align-items:center;gap:.5rem;font-size:1.4rem;font-weight:600;color:#2563eb;border-bottom:2px solid #f59e0b;padding-bottom:.25rem;margin-bottom:1.5rem}.resume-content section .job{position:relative;padding-left:2rem;margin-bottom:2rem}.resume-content section .job::before{content:"";position:absolute;left:.5rem;top:.5rem;bottom:-1rem;width:2px;background:#f1f5f9}.resume-content section .job::after{content:"";position:absolute;left:0;top:.5rem;width:.75rem;height:.75rem;background:#2563eb;border-radius:50%}.resume-content section .job h3{margin:0;font-size:1.1rem;font-weight:600}.resume-content section .job .date{font-size:.9rem;color:#64748b;display:block;margin-bottom:.25rem}.resume-content section .job ul{margin:0;padding-left:1.2rem}.resume-content section .job ul li{margin-bottom:.25rem;color:#1e293b}.resume-content section .skills{display:flex;flex-wrap:wrap;gap:.5rem}.resume-content section .skills span{background:linear-gradient(135deg, #3b82f6, #1d4ed8);color:#fff;padding:.25rem 1rem;border-radius:.75rem;font-size:.9rem;font-weight:500;box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}
