.hero-section{padding:8rem 1.5rem 6rem}.hero-container{max-width:1152px;margin:0 auto}.hero-content{max-width:1024px}.hero-badge-container{margin-bottom:2rem}.hero-badge{display:inline-flex;align-items:center;gap:.5rem;background-color:#fff;padding:.375rem .75rem;border-radius:9999px;border:1px solid rgba(229,229,229,.8);box-shadow:0 1px 2px #0000000d}.status-dot{width:.375rem;height:.375rem;background-color:var(--emerald-500);border-radius:50%;animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.badge-text{font-size:.75rem;color:var(--neutral-600);font-weight:500}.hero-title{font-size:clamp(3rem,6vw,4.5rem);font-weight:200;margin-bottom:1.5rem;line-height:.95;letter-spacing:-.025em}.hero-subtitle{display:block;color:var(--neutral-500);margin-top:.5rem}.hero-description{font-size:1.125rem;color:var(--neutral-600);margin-bottom:2.5rem;max-width:36rem;line-height:1.6;font-weight:300}.hero-actions{display:flex;align-items:center;gap:1rem}.about-section{padding:6rem 0}.about-content{grid-column:2;display:flex;flex-direction:column;gap:1.5rem}.about-text{font-size:1rem;color:var(--neutral-700);line-height:1.6;display:flex;flex-direction:column;gap:1rem}.about-details{display:grid;grid-template-columns:1fr 1fr;gap:2rem;padding-top:1.5rem}@media(max-width:768px){.about-details{grid-template-columns:1fr}}.details-title{font-size:.875rem;font-weight:500;margin-bottom:1rem;color:var(--neutral-900);text-transform:uppercase;letter-spacing:.05em}.skills-categories{display:flex;flex-direction:column;gap:.75rem}.skill-category{border:1px solid var(--neutral-200);border-radius:.5rem;padding:.75rem;transition:all .2s ease}.skill-category:hover{border-color:var(--neutral-300);background-color:var(--neutral-50)}.skill-category[open]{border-color:var(--neutral-300)}.category-summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;list-style:none;padding:.25rem 0}.category-summary::-webkit-details-marker{display:none}.category-summary:before{content:"▶";font-size:.6rem;color:var(--neutral-500);transition:transform .2s ease;margin-right:.5rem}.skill-category[open] .category-summary:before{transform:rotate(90deg)}.category-title{font-size:.75rem;font-weight:600;color:var(--neutral-800);text-transform:uppercase;letter-spacing:.05em;margin:0}.category-count{font-size:.7rem;color:var(--neutral-500);font-weight:400}.skills-list{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.75rem;align-items:center}.skill-category:not([open]) .skills-list{display:none}.skill-item{font-size:.7rem;color:var(--neutral-600);background:var(--neutral-100);padding:.125rem .4rem;border-radius:.25rem;white-space:nowrap;transition:all .2s ease}.skill-item:hover{background:var(--neutral-200);color:var(--neutral-800)}.services-expand-btn{font-size:.7rem;color:var(--neutral-600);background-color:var(--neutral-200);border:1px solid var(--neutral-300);padding:.25rem .5rem;border-radius:.25rem;cursor:pointer;transition:all .2s ease;font-weight:500;white-space:nowrap}.services-expand-btn:hover{background-color:var(--neutral-300);color:var(--neutral-800);border-color:var(--neutral-400)}.services-hidden{display:contents}.services-list{display:flex;flex-direction:column;gap:.5rem}.service-item{font-size:.875rem;color:var(--neutral-600);padding:.5rem .75rem;border-radius:.375rem;background-color:var(--neutral-50);border:1px solid var(--neutral-200);transition:all .2s ease}.service-item:hover{background-color:var(--neutral-100);border-color:var(--neutral-300);color:var(--neutral-800)}@media(prefers-reduced-motion:reduce){.skill-category,.category-summary:before,.skill-item,.services-expand-btn,.service-item{transition:none}}@media(forced-colors:active){.skill-item,.service-item{border:1px solid}.services-expand-btn{border:2px solid}}@media(max-width:640px){.skills-list{gap:.2rem}.skill-item{font-size:.65rem;padding:.1rem .3rem}.about-details{gap:1.5rem}}.work-section{padding:6rem 0;background-color:#fff}.projects-list{grid-column:2;display:flex;flex-direction:column;gap:2rem}.project-card{cursor:pointer;transition:all .3s ease;will-change:transform}.project-content{padding:1.5rem;border-radius:.75rem;border:1px solid transparent;transition:all .3s ease}.project-card:hover .project-content{background-color:var(--neutral-50);border-color:var(--neutral-200)}.project-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.project-meta{display:flex;align-items:center;gap:.75rem}.project-links{display:flex;align-items:center;gap:.5rem}.project-year{font-size:.75rem;color:var(--neutral-500)}.project-status{font-size:.75rem;padding:.125rem .5rem;border-radius:9999px;font-weight:500}.project-status.completed{background-color:var(--emerald-100);color:var(--emerald-700)}.project-status.in-development{background-color:var(--blue-100);color:var(--blue-700)}.project-status.on-hold{background-color:var(--amber-100);color:var(--amber-700)}.project-status.archived{background-color:var(--neutral-100);color:var(--neutral-600)}.featured-badge{font-size:.75rem;padding:.125rem .5rem;border-radius:9999px;font-weight:500;background-color:var(--purple-100);color:var(--purple-700)}.project-icon{color:var(--neutral-400);transition:color .2s ease}.project-card:hover .project-icon{color:var(--neutral-600)}.project-title{font-size:1.125rem;font-weight:500;margin-bottom:.5rem;color:var(--neutral-900);transition:color .2s ease;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;line-height:1.4}.project-card:hover .project-title{color:var(--neutral-700)}.project-description{color:var(--neutral-600);margin-bottom:1rem;line-height:1.6;font-size:.875rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.project-tech{display:flex;flex-wrap:wrap;gap:.375rem;align-items:center}.tech-tag{font-size:.75rem;color:var(--neutral-700);background-color:var(--neutral-100);padding:.25rem .5rem;border-radius:.25rem}.tech-expand-btn{font-size:.75rem;color:var(--neutral-600);background-color:var(--neutral-200);border:none;padding:.25rem .5rem;border-radius:.25rem;cursor:pointer;transition:all .2s ease;font-weight:500}.tech-expand-btn:hover{background-color:var(--neutral-300);color:var(--neutral-800)}.tech-expand-btn:focus{outline:2px solid var(--neutral-500);outline-offset:2px}.tech-hidden{display:contents}.project-title-link{text-decoration:none;color:inherit;display:block}.project-title-link:hover .project-title{opacity:.8;transition:opacity .2s ease}.project-link-icon{text-decoration:none;color:inherit;display:inline-flex;align-items:center;justify-content:center;padding:4px;border-radius:4px;transition:background-color .2s ease}.project-link-icon:hover{background-color:#0000001a}.github-cta-link{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.5rem;padding:.625rem 1.25rem;border:1px solid var(--neutral-200);border-radius:.5rem;background-color:#fff;color:var(--neutral-800);text-decoration:none;font-weight:500;font-size:.875rem;transition:all .2s ease-in-out}.github-cta-link:hover{background-color:var(--neutral-50);border-color:var(--neutral-300);transform:translateY(-2px);box-shadow:0 4px 6px -1px #00000014,0 2px 4px -2px #00000014}@supports not (-webkit-line-clamp: 2){.project-title,.project-description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media(prefers-reduced-motion:reduce){.project-card,.project-content,.project-icon,.project-title,.tech-expand-btn{transition:none}}.articles-section{padding:6rem 0}.section-header-content{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem}.section-title-group{flex:1}.header-view-all-link{display:inline-flex;align-items:center;gap:.375rem;text-decoration:none;color:var(--neutral-700);font-size:.875rem;font-weight:500;transition:color .3s ease;white-space:nowrap;flex-shrink:0}.header-view-all-link:hover{color:var(--neutral-900)}.header-view-all-link .link-text{position:relative}.header-view-all-link .link-text:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:2px;background-color:var(--neutral-600);transition:width .3s ease}.header-view-all-link:hover .link-text:after{width:100%}.articles-list{grid-column:2;display:flex;flex-direction:column;gap:1.5rem}.article-card{display:block;text-decoration:none;color:inherit;border-radius:.5rem;transition:background-color .2s ease}.article-card:hover{background-color:var(--neutral-50)}.article-content{padding:1.5rem 0;border-bottom:1px solid var(--neutral-200);transition:border-color .2s ease}.article-card:hover .article-content{border-color:transparent}.article-meta{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.article-category{font-size:.75rem;background-color:var(--neutral-100);color:var(--neutral-600);padding:.125rem .5rem;border-radius:.25rem;font-weight:500}.article-details{display:flex;align-items:center;gap:.75rem;font-size:.75rem;color:var(--neutral-500)}.article-detail{display:flex;align-items:center;gap:.25rem}.article-title{font-size:1.125rem;font-weight:500;margin-bottom:.5rem;color:var(--neutral-900);transition:color .2s ease;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;line-height:1.4}.article-card:hover .article-title{color:var(--neutral-600)}.article-excerpt{color:var(--neutral-600);line-height:1.6;font-size:.875rem;margin-bottom:.75rem;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis}.article-read-more{display:flex;align-items:center;gap:.25rem;font-size:.75rem;color:var(--neutral-500);transition:color .2s ease;font-weight:500}.article-card:hover .article-read-more{color:var(--neutral-700)}.no-articles{grid-column:1 / -1;text-align:center;padding:2rem;color:var(--neutral-500)}.articles-view-all{grid-column:1 / -1;text-align:center;margin-top:2rem}.view-all-link{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--neutral-900);font-weight:500;transition:color .3s ease}.view-all-link:hover{color:var(--neutral-600)}.view-all-link .link-text{position:relative}.view-all-link .link-text:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:2px;background-color:var(--neutral-600);transition:width .3s ease}.view-all-link:hover .link-text:after{width:100%}@media(max-width:768px){.section-header-content{flex-direction:column;align-items:stretch;gap:1rem}.header-view-all-link{align-self:flex-start}}@supports not (-webkit-line-clamp: 2){.article-title,.article-excerpt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.contact-section{padding:6rem 0;background-color:#fff}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem}@media(max-width:1024px){.contact-grid{grid-template-columns:1fr}}.contact-description{font-size:1rem;color:var(--neutral-600);margin-bottom:2rem;line-height:1.6}.contact-details{display:flex;flex-direction:column;gap:1rem}.contact-item{display:flex;align-items:center;gap:.75rem}.contact-icon{color:var(--neutral-400)}.contact-link{color:var(--neutral-900);text-decoration:none;font-size:.875rem;transition:color .2s ease}.contact-link:hover{color:var(--neutral-600)}.social-links{display:flex;align-items:center;gap:1rem;padding-top:.5rem}.social-links [role=listitem]{display:flex}.social-link{color:var(--neutral-400);text-decoration:none;transition:color .2s ease}.social-link:hover{color:var(--neutral-900)}.contact-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column}.form-label{font-size:.75rem;color:var(--neutral-600);margin-bottom:.5rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.form-input,.form-textarea{width:100%;padding:.5rem 0;border:0;border-bottom:1px solid var(--neutral-300);background-color:transparent;color:var(--neutral-900);font-size:.875rem;transition:border-color .2s ease,transform .2s ease}.form-input:focus,.form-textarea:focus{outline:none;border-color:var(--neutral-600);transform:translateY(-1px)}.form-input::placeholder,.form-textarea::placeholder{color:var(--neutral-400)}.form-textarea{resize:none}.form-submit{width:fit-content;background-color:var(--neutral-900);color:#fff;padding:.75rem 1.5rem;border-radius:.5rem;border:none;font-weight:500;display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;margin-top:1rem;cursor:pointer;transition:all .2s ease;box-shadow:0 10px 25px -3px #1717171a,0 4px 6px -2px #1717170d}.form-submit:hover{background-color:var(--neutral-800);transform:translateY(-1px);box-shadow:0 20px 25px -5px #1717171a,0 10px 10px -5px #1717170a}.error-message{color:#dc3545;font-size:.875rem;margin-top:.25rem;display:none}.error-message.show{display:block}.status-message{margin-top:1rem;padding:.75rem;border-radius:.375rem;display:none}.status-message.success{background-color:#d4edda;border:1px solid #c3e6cb;color:#155724;display:block}.status-message.error{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24;display:block}.spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top:2px solid white;border-radius:50%;animation:spin 1s linear infinite;display:inline-block}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.form-submit:disabled{opacity:.7;cursor:not-allowed;transform:none}.form-submit:disabled:hover{background-color:var(--neutral-900);transform:none;box-shadow:0 10px 25px -3px #1717171a,0 4px 6px -2px #1717170d}@media(prefers-contrast:more){.contact-icon,.social-link{filter:contrast(1.2)}}@media(prefers-reduced-motion:reduce){.form-submit,.social-link{transition:none}}
