.site-header{background:var(--color-surface-primary);border-bottom:1px solid var(--color-border-subtle);position:sticky;top:0;z-index:var(--z-index-header);height:var(--nav-height);transition:background-color var(--animation-duration-normal)ease,border-color var(--animation-duration-normal)ease}.header-container{max-width:var(--content-max-width);margin:0 auto;padding:0 var(--space-lg);height:100%}.header-content{display:flex;align-items:center;justify-content:space-between;height:100%}.site-branding{flex-shrink:0;z-index:1}.site-logo{display:flex;align-items:center;text-decoration:none;color:var(--color-text-primary);font-weight:700;font-size:clamp(1.125rem,2.5vw,1.5rem);transition:color var(--animation-duration-fast)ease,transform var(--animation-duration-fast)ease}.site-logo:hover{color:var(--color-interactive-primary);transform:scale(1.02)}.site-logo:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px;border-radius:var(--border-radius-sm)}.logo-image{height:clamp(1.75rem,4vw,2.5rem);width:auto;margin-right:var(--space-sm);transition:transform var(--animation-duration-fast)ease}.site-logo:hover .logo-image{transform:scale(1.05)}.site-title{font-size:inherit;font-weight:inherit;margin:0;line-height:1.2}.desktop-nav{display:none}@media(min-width:768px){.desktop-nav{display:flex;align-items:center;gap:var(--space-lg)}}.nav-menu{display:flex !important;flex-direction:row !important;align-items:center;gap:var(--space-xs);list-style:none;margin:0;padding:0}.nav-item{margin:0;position:relative}.nav-link{display:block;padding:var(--space-sm)var(--space-lg);border-radius:var(--border-radius-md);font-weight:500;font-size:var(--text-body-medium);color:var(--color-text-primary);text-decoration:none;position:relative;transition:background-color var(--animation-duration-fast)ease,color var(--animation-duration-fast)ease,transform var(--animation-duration-fast)ease}.nav-link::after{content:'';position:absolute;bottom:0;left:50%;width:0;height:2px;background:var(--color-interactive-primary);border-radius:1px;transition:width var(--animation-duration-normal)ease,left var(--animation-duration-normal)ease}.nav-link:hover{background:var(--color-surface-secondary);color:var(--color-interactive-primary);transform:translateY(-1px)}.nav-link:hover::after{width:80%;left:10%}.nav-item.active .nav-link{background:var(--color-surface-elevated);color:var(--color-interactive-primary);font-weight:600}.nav-item.active .nav-link::after{width:80%;left:10%}.nav-link:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px;background:var(--color-surface-secondary)}.mobile-menu-toggle{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-sm);border-radius:var(--border-radius-md);background:0 0;border:none;color:var(--color-text-primary);cursor:pointer;transition:background-color var(--animation-duration-fast)ease,transform var(--animation-duration-fast)ease;position:relative;z-index:2}@media(min-width:768px){.mobile-menu-toggle{display:none}}.mobile-menu-toggle:hover{background:var(--color-surface-secondary);transform:scale(1.05)}.mobile-menu-toggle:active{transform:scale(.95)}.mobile-menu-toggle:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.hamburger-icon{position:relative;width:1.5rem;height:1.25rem;display:flex;flex-direction:column;justify-content:space-between;transform:rotate(0);transition:transform var(--animation-duration-normal)ease}.hamburger-icon .line{display:block;position:relative;width:100%;height:2px;background:var(--color-text-primary);border-radius:1px;opacity:1;left:0;transform:rotate(0);transition:transform var(--animation-duration-normal)ease,opacity var(--animation-duration-normal)ease,left var(--animation-duration-normal)ease,background-color var(--animation-duration-fast)ease;transform-origin:left center}.hamburger-icon .line:nth-child(1){transform-origin:left center}.hamburger-icon .line:nth-child(2){transform-origin:left center}.hamburger-icon .line:nth-child(3){transform-origin:left center}.hamburger-icon.open .line:nth-child(1){transform:rotate(45deg);top:-1px;left:2px}.hamburger-icon.open .line:nth-child(2){width:0%;opacity:0}.hamburger-icon.open .line:nth-child(3){transform:rotate(-45deg);top:1px;left:2px}.mobile-menu-toggle:hover .hamburger-icon .line{background:var(--color-interactive-primary)}.mobile-navigation{display:block;position:absolute;top:100%;left:0;right:0;background:var(--color-surface-primary);border-top:1px solid var(--color-border-subtle);border-bottom:1px solid var(--color-border-subtle);padding:var(--space-lg)0;box-shadow:var(--shadow-card);z-index:1;transform:translateY(-100%);opacity:0;visibility:hidden;transition:transform var(--animation-duration-normal)ease,opacity var(--animation-duration-normal)ease,visibility var(--animation-duration-normal)ease}.mobile-navigation[x-show]{transform:translateY(0);opacity:1;visibility:visible}@media(min-width:768px){.mobile-navigation{display:none}}.mobile-nav-menu{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}.mobile-nav-item{margin:0;transform:translateX(-20px);opacity:0;animation:slideInFromLeft var(--animation-duration-normal)ease forwards}.mobile-nav-item:nth-child(1){animation-delay:.1s}.mobile-nav-item:nth-child(2){animation-delay:.15s}.mobile-nav-item:nth-child(3){animation-delay:.2s}.mobile-nav-item:nth-child(4){animation-delay:.25s}.mobile-nav-item:nth-child(5){animation-delay:.3s}@keyframes slideInFromLeft{to{transform:translateX(0);opacity:1}}.mobile-nav-link{display:block;padding:var(--space-lg)var(--space-xl);font-weight:500;font-size:var(--text-body-large);color:var(--color-text-primary);text-decoration:none;border-radius:var(--border-radius-md);margin:0 var(--space-lg);position:relative;transition:background-color var(--animation-duration-fast)ease,color var(--animation-duration-fast)ease,padding-left var(--animation-duration-fast)ease,transform var(--animation-duration-fast)ease;min-height:44px;display:flex;align-items:center}.mobile-nav-link::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:0;height:60%;background:var(--color-interactive-primary);border-radius:0 2px 2px 0;transition:width var(--animation-duration-fast)ease}.mobile-nav-link:hover{background:var(--color-surface-secondary);color:var(--color-interactive-primary);padding-left:calc(var(--space-xl) + var(--space-sm));transform:translateX(4px)}.mobile-nav-link:hover::before{width:3px}.mobile-nav-link:active{transform:translateX(2px)scale(.98)}.mobile-nav-item.active .mobile-nav-link{background:var(--color-surface-elevated);color:var(--color-interactive-primary);font-weight:600;padding-left:calc(var(--space-xl) + var(--space-sm))}.mobile-nav-item.active .mobile-nav-link::before{width:3px}.mobile-nav-link:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.mobile-menu-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.3);backdrop-filter:blur(2px);z-index:0;opacity:0;visibility:hidden;transition:opacity var(--animation-duration-normal)ease,visibility var(--animation-duration-normal)ease}.mobile-menu-backdrop.show{opacity:1;visibility:visible}.mobile-color-scheme-toggle{display:flex;justify-content:center;padding:var(--space-lg)var(--space-xl);margin-top:var(--space-md);border-top:1px solid var(--color-border-subtle)}@media(min-width:768px){.mobile-color-scheme-toggle{display:none}}.nav-controls{display:flex;align-items:center;gap:var(--space-lg)}.color-scheme-toggle{display:none}@media(min-width:768px){.color-scheme-toggle{display:flex;align-items:center}.color-scheme-toggle .toggle-container{display:flex;gap:.125rem;padding:.25rem;background:var(--color-surface-secondary);border:1px solid var(--color-border-subtle);border-radius:var(--border-radius-md);transition:background-color var(--animation-duration-normal)ease,border-color var(--animation-duration-normal)ease,box-shadow var(--animation-duration-fast)ease}.color-scheme-toggle .toggle-container:hover{background:var(--color-surface-elevated);box-shadow:var(--shadow-card)}.color-scheme-toggle .toggle-button{display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:.375rem;background:0 0;border:none;border-radius:calc(var(--border-radius-md) - .125rem);color:var(--color-text-secondary);cursor:pointer;transition:background-color var(--animation-duration-fast)ease,color var(--animation-duration-fast)ease,transform var(--animation-duration-fast)ease}.color-scheme-toggle .toggle-button:hover{background:var(--color-surface-tertiary);color:var(--color-text-primary);transform:scale(1.05)}.color-scheme-toggle .toggle-button:active{transform:scale(.95)}.color-scheme-toggle .toggle-button.active{background:var(--color-interactive-primary);color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.1)}.color-scheme-toggle .toggle-button:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.color-scheme-toggle .toggle-icon{width:1.125rem;height:1.125rem;stroke-width:2;transition:transform var(--animation-duration-fast)ease}.color-scheme-toggle .toggle-button:hover .toggle-icon{transform:scale(1.1)}}.skip-to-content{position:absolute;top:-100vh;left:50%;transform:translateX(-50%);z-index:var(--z-index-modal);padding:var(--space-md)var(--space-lg);background:var(--color-interactive-primary);color:#fff;text-decoration:none;border-radius:var(--border-radius-md);font-weight:600;transition:top var(--animation-duration-fast)ease}.skip-to-content:focus{top:var(--space-md)}@media(prefers-reduced-motion:reduce){.nav-link::after,.hamburger-icon .line,.mobile-nav-item,.mobile-navigation{transition:none;animation:none}.mobile-nav-item{transform:none;opacity:1}}.theme-high-contrast .nav-link{border:1px solid transparent}.theme-high-contrast .nav-link:hover,.theme-high-contrast .nav-item.active .nav-link{border-color:var(--color-border-subtle)}.theme-high-contrast .mobile-nav-link{border:1px solid transparent}.theme-high-contrast .mobile-nav-link:hover,.theme-high-contrast .mobile-nav-item.active .mobile-nav-link{border-color:var(--color-border-subtle)}.mobile-navigation[x-show]{contain:layout style}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.card{background:var(--color-surface-elevated);border:1px solid var(--color-border-subtle);border-radius:var(--card-border-radius);padding:var(--space-xl);transition:transform var(--animation-duration-normal)ease,box-shadow var(--animation-duration-normal)ease;box-shadow:var(--shadow-card)}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card-elevated)}.project-card{background:var(--color-surface-elevated);border:1px solid var(--color-border-subtle);border-radius:var(--card-border-radius);overflow:hidden;transition:transform var(--animation-duration-normal)ease,box-shadow var(--animation-duration-normal)ease,border-color var(--animation-duration-fast)ease;box-shadow:var(--shadow-card);display:flex;flex-direction:column;height:100%;cursor:pointer;position:relative}.project-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-card-elevated);border-color:var(--color-interactive-primary)}.project-card:focus-visible{outline:3px solid var(--color-border-focus);outline-offset:2px}.project-image{aspect-ratio:16/9;overflow:hidden;background:var(--color-surface-secondary);position:relative}.project-image::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient( 135deg,transparent 0%,rgba(0,0,0,.1) 50%,rgba(0,0,0,.3) 100% );opacity:0;transition:opacity var(--animation-duration-normal)ease;z-index:1}.project-card:hover .project-image::before{opacity:1}.project-image img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform var(--animation-duration-normal)ease}.project-card:hover .project-image img{transform:scale(1.08)}.project-content{padding:1.5rem;display:flex;flex-direction:column;gap:1rem;flex-grow:1;position:relative}.project-title{font-size:var(--text-heading-3);font-weight:700;color:var(--color-text-primary);margin:0;line-height:var(--line-height-tight);transition:color var(--animation-duration-fast)ease}.project-card:hover .project-title{color:var(--color-interactive-primary)}.project-description{color:var(--color-text-secondary);font-size:var(--text-body-medium);line-height:var(--line-height-normal);margin:0;flex-grow:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.project-technologies{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0}.tech-tag{padding:.375rem .75rem;background:var(--color-interactive-primary);color:#fff;border-radius:9999px;font-size:.75rem;font-weight:600;letter-spacing:.025em;text-transform:uppercase;transition:all var(--animation-duration-fast)ease;border:1px solid transparent}.tech-tag:nth-child(even){background:var(--color-surface-secondary);color:var(--color-text-primary);border-color:var(--color-border-subtle)}.project-card:hover .tech-tag{transform:translateY(-1px)}.project-card:hover .tech-tag:nth-child(even){background:var(--color-surface-elevated);border-color:var(--color-interactive-primary)}.project-meta{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:1rem;border-top:1px solid var(--color-border-subtle)}.project-status{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--color-text-secondary);font-weight:500}.status-indicator{width:.5rem;height:.5rem;border-radius:50%;flex-shrink:0}.status-indicator.completed{background:#10b981}.status-indicator.in-progress{background:#f59e0b}.status-indicator.archived{background:#6b7280}.project-links{display:flex;gap:.5rem}.project-link{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;background:var(--color-surface-secondary);color:var(--color-text-secondary);border-radius:50%;transition:all var(--animation-duration-fast)ease;border:1px solid var(--color-border-subtle)}.project-link:hover{background:var(--color-interactive-primary);color:#fff;transform:translateY(-2px);box-shadow:0 4px 8px rgba(0,0,0,.15)}.project-link svg{width:1.25rem;height:1.25rem}.project-actions{display:flex;gap:var(--space-sm);margin-top:auto;padding-top:var(--space-md)}.project-action-btn{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm)var(--space-md);background:var(--color-interactive-primary);color:#fff;text-decoration:none;border-radius:var(--border-radius-md);font-weight:600;font-size:var(--text-body-small);transition:background-color var(--animation-duration-fast)ease,transform var(--animation-duration-fast)ease}.project-action-btn:hover{background:var(--color-interactive-hover);transform:translateY(-1px)}.project-action-btn.secondary{background:var(--color-surface-secondary);color:var(--color-text-primary);border:1px solid var(--color-border-subtle)}.project-action-btn.secondary:hover{background:var(--color-surface-elevated)}.skill-card{background:var(--color-surface-elevated);border:1px solid var(--color-border-subtle);border-radius:var(--card-border-radius);padding:var(--space-xl);transition:transform var(--animation-duration-normal)ease,box-shadow var(--animation-duration-normal)ease,border-color var(--animation-duration-fast)ease;box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:var(--space-lg);position:relative;overflow:hidden}.skill-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--color-interactive-primary),var(--color-interactive-hover));opacity:0;transition:opacity var(--animation-duration-normal)ease}.skill-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card-elevated);border-color:var(--color-interactive-primary)}.skill-card:hover::before{opacity:1}.skill-card:focus-within{outline:2px solid var(--color-border-focus);outline-offset:2px}.skill-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md)}.skill-title-group{flex:1;min-width:0}.skill-title{font-size:var(--text-heading-3);font-weight:700;color:var(--color-text-primary);margin:0 0 var(--space-xs);line-height:var(--line-height-tight);word-wrap:break-word}.skill-category{display:inline-block;padding:var(--space-xs)var(--space-sm);background:var(--color-surface-secondary);color:var(--color-text-secondary);border-radius:var(--border-radius-full);font-size:var(--text-body-small);font-weight:600;border:1px solid var(--color-border-subtle);text-transform:uppercase;letter-spacing:.025em;transition:all var(--animation-duration-fast)ease}.skill-card:hover .skill-category{background:var(--color-interactive-primary);color:#fff;border-color:var(--color-interactive-primary)}.skill-proficiency-badge{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);padding:var(--space-sm)var(--space-md);border-radius:var(--border-radius-lg);min-width:80px;text-align:center;transition:all var(--animation-duration-fast)ease;border:2px solid transparent}.skill-proficiency-badge .proficiency-text{font-size:var(--text-body-small);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.skill-proficiency-badge .proficiency-score{font-size:var(--text-heading-4);font-weight:800;line-height:1}.skill-proficiency-badge--expert{background:linear-gradient(135deg,#059669,#10b981);color:#fff;box-shadow:0 4px 12px rgba(5,150,105,.3)}.skill-proficiency-badge--advanced{background:linear-gradient(135deg,var(--color-interactive-primary),var(--color-interactive-hover));color:#fff;box-shadow:0 4px 12px rgba(249,115,22,.3)}.skill-proficiency-badge--intermediate{background:linear-gradient(135deg,#3b82f6,#60a5fa);color:#fff;box-shadow:0 4px 12px rgba(59,130,246,.3)}.skill-proficiency-badge--beginner{background:linear-gradient(135deg,#8b5cf6,#a78bfa);color:#fff;box-shadow:0 4px 12px rgba(139,92,246,.3)}.skill-card:hover .skill-proficiency-badge{transform:scale(1.05)}.skill-description{flex-grow:1}.skill-description p{color:var(--color-text-secondary);font-size:var(--text-body-medium);line-height:var(--line-height-relaxed);margin:0}.skill-proficiency{display:flex;flex-direction:column;gap:var(--space-sm)}.proficiency-label{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-body-small);font-weight:600;color:var(--color-text-primary)}.proficiency-level{color:var(--color-interactive-primary);font-weight:700}.proficiency-bar{height:8px;background:var(--color-surface-secondary);border-radius:var(--border-radius-full);overflow:hidden;position:relative;border:1px solid var(--color-border-subtle)}.proficiency-fill{height:100%;border-radius:var(--border-radius-full);transition:width 1.2s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.proficiency-fill--expert{background:linear-gradient(90deg,#059669,#10b981,#34d399);box-shadow:0 0 8px rgba(5,150,105,.4)}.proficiency-fill--advanced{background:linear-gradient(90deg,var(--color-interactive-primary),var(--color-interactive-hover),#fb923c);box-shadow:0 0 8px rgba(249,115,22,.4)}.proficiency-fill--intermediate{background:linear-gradient(90deg,#3b82f6,#60a5fa,#93c5fd);box-shadow:0 0 8px rgba(59,130,246,.4)}.proficiency-fill--beginner{background:linear-gradient(90deg,#8b5cf6,#a78bfa,#c4b5fd);box-shadow:0 0 8px rgba(139,92,246,.4)}.proficiency-fill::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:proficiency-shimmer 2.5s infinite;animation-delay:.5s}@keyframes proficiency-shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}.skill-experience{padding-top:var(--space-md);border-top:1px solid var(--color-border-subtle)}.experience-item{display:flex;align-items:center;gap:var(--space-sm);color:var(--color-text-secondary);font-size:var(--text-body-small);font-weight:500}.experience-icon{width:1rem;height:1rem;flex-shrink:0;color:var(--color-interactive-primary)}.experience-text{line-height:1.4}.skill-card--expert{border-left:4px solid #10b981}.skill-card--advanced{border-left:4px solid var(--color-interactive-primary)}.skill-card--intermediate{border-left:4px solid #3b82f6}.skill-card--beginner{border-left:4px solid #8b5cf6}.skill-card--expert:hover{border-color:#10b981;box-shadow:var(--shadow-card-elevated),0 0 20px rgba(16,185,129,.2)}.skill-card--advanced:hover{border-color:var(--color-interactive-primary);box-shadow:var(--shadow-card-elevated),0 0 20px rgba(249,115,22,.2)}.skill-card--intermediate:hover{border-color:#3b82f6;box-shadow:var(--shadow-card-elevated),0 0 20px rgba(59,130,246,.2)}.skill-card--beginner:hover{border-color:#8b5cf6;box-shadow:var(--shadow-card-elevated),0 0 20px rgba(139,92,246,.2)}.cards-grid{display:grid;gap:var(--space-xl);grid-template-columns:1fr}@media(min-width:640px){.cards-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.cards-grid{grid-template-columns:repeat(3,1fr)}}.portfolio-grid{display:grid;gap:2rem;grid-template-columns:1fr;align-items:start}@media(min-width:640px){.portfolio-grid{grid-template-columns:repeat(2,1fr);gap:2.5rem}}@media(min-width:1024px){.portfolio-grid{grid-template-columns:repeat(3,1fr);gap:3rem}}@media(min-width:1280px){.portfolio-grid{gap:3.5rem}}.portfolio-grid.masonry{grid-template-rows:masonry}@supports not (grid-template-rows:masonry){.portfolio-grid.masonry{display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start;max-height:200vh}@media(min-width:640px){.portfolio-grid.masonry{max-height:150vh}}@media(min-width:1024px){.portfolio-grid.masonry{max-height:120vh}}}.cards-grid.two-column{grid-template-columns:1fr}@media(min-width:768px){.cards-grid.two-column{grid-template-columns:repeat(2,1fr)}}.grid-container{width:100%;max-width:var(--layout-container-max-width);margin:0 auto;padding:0 var(--layout-section-padding-x)}.grid-auto-fit{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-xl)}.grid-auto-fill{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-xl)}.grid-item-stretch{align-self:stretch}.grid-item-start{align-self:start}.grid-item-center{align-self:center}.grid-item-end{align-self:end}.card-loading{background:var(--color-surface-secondary);background-image:linear-gradient( 90deg,transparent,rgba(255,255,255,.4),transparent );background-size:200% 100%;animation:loading-shimmer 1.5s infinite}@keyframes loading-shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}.card:focus-within{outline:2px solid var(--color-border-focus);outline-offset:2px}.project-card:focus-within,.skill-card:focus-within{outline:2px solid var(--color-border-focus);outline-offset:2px}.skills-filter-section{margin-bottom:var(--space-3xl)}.skills-filter-container{background:var(--color-surface-elevated);border:1px solid var(--color-border-subtle);border-radius:var(--card-border-radius);padding:var(--space-xl);box-shadow:var(--shadow-card)}.skills-filter-title{font-size:var(--text-heading-3);font-weight:700;color:var(--color-text-primary);margin:0 0 var(--space-lg);line-height:var(--line-height-tight)}.skills-filter-controls{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-lg)}.filter-btn{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm)var(--space-lg);background:var(--color-surface-secondary);color:var(--color-text-secondary);border:2px solid var(--color-border-subtle);border-radius:var(--border-radius-full);font-weight:600;font-size:var(--text-body-small);text-transform:uppercase;letter-spacing:.025em;transition:all var(--animation-duration-fast)ease;cursor:pointer;position:relative;overflow:hidden}.filter-btn::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left var(--animation-duration-normal)ease}.filter-btn:hover{background:var(--color-surface-elevated);border-color:var(--color-interactive-primary);color:var(--color-text-primary);transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.15)}.filter-btn:hover::before{left:100%}.filter-btn:focus{outline:none;box-shadow:0 0 0 3px rgba(var(--color-interactive-primary-rgb),.3)}.filter-btn--active{background:var(--color-interactive-primary);color:#fff;border-color:var(--color-interactive-primary);box-shadow:0 4px 12px rgba(249,115,22,.3)}.filter-btn--active:hover{background:var(--color-interactive-hover);border-color:var(--color-interactive-hover);transform:translateY(-2px);box-shadow:0 6px 16px rgba(249,115,22,.4)}.filter-btn-text{font-weight:700}.filter-btn-count{padding:.125rem .375rem;background:rgba(255,255,255,.2);border-radius:var(--border-radius-full);font-size:.75rem;font-weight:700;min-width:1.5rem;text-align:center}.filter-btn--active .filter-btn-count{background:rgba(255,255,255,.3)}.skills-stats{display:flex;gap:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid var(--color-border-subtle)}.stat-item{display:flex;align-items:center;gap:var(--space-sm)}.stat-label{font-size:var(--text-body-small);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.stat-value{font-size:var(--text-heading-4);font-weight:800;color:var(--color-interactive-primary)}.skills-chart-section{margin-bottom:var(--space-3xl)}.skills-chart-container{background:var(--color-surface-elevated);border:1px solid var(--color-border-subtle);border-radius:var(--card-border-radius);padding:var(--space-xl);box-shadow:var(--shadow-card)}.skills-chart-title{font-size:var(--text-heading-2);font-weight:700;color:var(--color-text-primary);margin:0 0 var(--space-xl);line-height:var(--line-height-tight)}.skills-chart-wrapper{position:relative;height:400px;border-radius:var(--border-radius-lg);overflow:hidden}.skills-content{position:relative}.skills-grid{display:grid;gap:var(--space-xl);grid-template-columns:1fr;align-items:start}@media(min-width:640px){.skills-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-2xl)}}@media(min-width:1024px){.skills-grid{grid-template-columns:repeat(3,1fr);gap:var(--space-2xl)}}@media(min-width:1280px){.skills-grid{gap:var(--space-3xl)}}.skill-grid-item{width:100%}.skill-enter{transition:all .4s cubic-bezier(.4,0,.2,1)}.skill-enter-start{opacity:0;transform:translateY(20px)scale(.95)}.skill-enter-end{opacity:1;transform:translateY(0)scale(1)}.skill-leave{transition:all .3s cubic-bezier(.4,0,.6,1)}.skill-leave-start{opacity:1;transform:translateY(0)scale(1)}.skill-leave-end{opacity:0;transform:translateY(-10px)scale(.98)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-3xl);text-align:center;background:var(--color-surface-elevated);border:2px dashed var(--color-border-subtle);border-radius:var(--card-border-radius);margin:var(--space-xl)0}.empty-state-icon{width:4rem;height:4rem;color:var(--color-text-secondary);margin-bottom:var(--space-lg);opacity:.6}.empty-state-icon svg{width:100%;height:100%}.empty-state-title{font-size:var(--text-heading-3);font-weight:700;color:var(--color-text-primary);margin:0 0 var(--space-sm)}.empty-state-description{font-size:var(--text-body-medium);color:var(--color-text-secondary);margin:0;max-width:24rem;line-height:var(--line-height-relaxed)}.skills-grid[data-category="Programming Languages"] .skill-card{border-left-color:#3b82f6}.skills-grid[data-category=Frameworks] .skill-card{border-left-color:#10b981}.skills-grid[data-category=Tools] .skill-card{border-left-color:#f59e0b}.skills-grid[data-category=Databases] .skill-card{border-left-color:#8b5cf6}.skills-grid[data-category="Cloud Services"] .skill-card{border-left-color:#ef4444}@media(max-width:640px){.skills-filter-controls{flex-direction:column;align-items:stretch}.filter-btn{justify-content:space-between;width:100%}.skills-stats{flex-direction:column;gap:var(--space-md)}}@media(max-width:768px){.skills-filter-container,.skills-chart-container{padding:var(--space-lg)}.skills-filter-title,.skills-chart-title{font-size:var(--text-heading-4)}.skills-chart-wrapper{height:300px}}.skills-grid{contain:layout style}.skill-grid-item{contain:layout style paint}@media(prefers-reduced-motion:reduce){.skill-enter,.skill-leave,.filter-btn,.skill-card{transition:none !important;animation:none !important}.proficiency-fill::after{animation:none !important}}@media(prefers-contrast:high){.filter-btn{border-width:3px}.filter-btn--active{border-color:var(--color-text-primary);background:var(--color-text-primary)}.skill-card{border-width:2px}}@media print{.skills-filter-section,.skills-chart-section{display:none}.skills-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-lg)}.skill-card{-moz-column-break-inside:avoid;break-inside:avoid;box-shadow:none;border:1px solid #000}}.contact-form{display:flex;flex-direction:column;gap:var(--space-xl);max-width:32rem;width:100%}.form{display:flex;flex-direction:column;gap:var(--space-xl);max-width:32rem;width:100%}.form-wide{max-width:48rem}.form-field{display:flex;flex-direction:column;gap:var(--space-sm)}.form-field.horizontal{flex-direction:row;align-items:center;gap:var(--space-md)}.form-field.horizontal .form-label{flex-shrink:0;min-width:8rem}.form-label{font-weight:600;font-size:.875rem;color:var(--color-text-primary);line-height:1.25;margin-bottom:var(--space-sm)}.form-label.required::after{content:' *';color:var(--color-error)}.form-label-description{font-weight:400;font-size:.75rem;color:var(--color-text-secondary);margin-top:var(--space-xs)}.form-input,.form-textarea,.form-select{padding:.75rem 1rem;border:2px solid var(--color-border-subtle);border-radius:var(--border-radius-lg);background:var(--color-surface-primary);color:var(--color-text-primary);font-size:1rem;line-height:1.5;transition:border-color var(--animation-duration-fast)ease,box-shadow var(--animation-duration-fast)ease,background-color var(--animation-duration-fast)ease;width:100%;box-sizing:border-box}.form-input::-moz-placeholder,.form-textarea::-moz-placeholder{color:var(--color-text-muted);opacity:1}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-text-muted);opacity:1}.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px rgba(var(--color-border-focus-rgb),.1);background:var(--color-surface-primary)}.form-input:disabled,.form-textarea:disabled,.form-select:disabled{background:var(--color-surface-secondary);color:var(--color-text-muted);cursor:not-allowed;opacity:.7;border-color:var(--color-border-subtle)}.form-textarea{min-height:8rem;resize:vertical;font-family:inherit}.form-select{cursor:pointer;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");background-position:right .75rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem}.form-field.error .form-input,.form-field.error .form-textarea,.form-field.error .form-select,.form-input.error,.form-textarea.error,.form-select.error{border-color:var(--color-error);background:var(--color-surface-primary)}.form-field.error .form-input:focus,.form-field.error .form-textarea:focus,.form-field.error .form-select:focus,.form-input.error:focus,.form-textarea.error:focus,.form-select.error:focus{box-shadow:0 0 0 3px rgba(var(--color-error-rgb),.1);border-color:var(--color-error)}.form-field.success .form-input,.form-field.success .form-textarea,.form-field.success .form-select,.form-input.success,.form-textarea.success,.form-select.success{border-color:var(--color-success)}.form-field.success .form-input:focus,.form-field.success .form-textarea:focus,.form-field.success .form-select:focus,.form-input.success:focus,.form-textarea.success:focus,.form-select.success:focus{box-shadow:0 0 0 3px rgba(var(--color-success-rgb),.1)}.form-message{font-size:.875rem;line-height:1.25;margin-top:var(--space-sm);display:flex;align-items:flex-start;gap:var(--space-xs)}.form-message.error{color:var(--color-error)}.form-message.success{color:var(--color-success)}.form-message.info{color:var(--color-text-secondary)}.form-message .icon{width:1rem;height:1rem;flex-shrink:0;margin-top:.125rem}.form-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:.875rem 2rem;border:none;border-radius:var(--border-radius-lg);font-weight:600;font-size:1rem;line-height:1.25;cursor:pointer;transition:background-color var(--animation-duration-fast)ease,transform var(--animation-duration-fast)ease,box-shadow var(--animation-duration-fast)ease,opacity var(--animation-duration-fast)ease;text-decoration:none;box-sizing:border-box;position:relative;overflow:hidden}.form-button:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.form-button.primary{background:var(--color-interactive-primary);color:#fff;box-shadow:0 4px 6px -1px rgba(0,0,0,.1)}.form-button.primary:hover:not(:disabled){background:var(--color-interactive-hover);transform:translateY(-1px);box-shadow:0 10px 15px -3px rgba(0,0,0,.1)}.form-button.primary:active:not(:disabled){transform:translateY(0);box-shadow:0 4px 6px -1px rgba(0,0,0,.1)}.form-button.secondary{background:var(--color-surface-secondary);color:var(--color-text-primary);border:1px solid var(--color-border-subtle)}.form-button.secondary:hover:not(:disabled){background:var(--color-surface-elevated);transform:translateY(-1px)}.form-button:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.form-button.loading{color:transparent;pointer-events:none}.form-button.loading::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:1.25rem;height:1.25rem;border:2px solid transparent;border-top:2px solid;border-radius:50%;animation:button-spin 1s linear infinite}.form-button.primary.loading::after{border-top-color:#fff}.form-button.secondary.loading::after{border-top-color:var(--color-text-primary)}@keyframes button-spin{0%{transform:translate(-50%,-50%)rotate(0)}100%{transform:translate(-50%,-50%)rotate(360deg)}}.form-button.small{padding:.5rem 1rem;font-size:.875rem}.form-button.large{padding:1rem 2.5rem;font-size:1.125rem}.form-button.full-width{width:100%}.form-actions{display:flex;gap:var(--space-md);align-items:center;flex-wrap:wrap;margin-top:var(--space-lg)}.form-actions.centered{justify-content:center}.form-actions.right{justify-content:flex-end}.form-actions.space-between{justify-content:space-between}.form-checkbox,.form-radio{display:flex;align-items:flex-start;gap:var(--space-md);cursor:pointer;padding:var(--space-sm)0}.form-checkbox input[type=checkbox],.form-radio input[type=radio]{width:1.25rem;height:1.25rem;margin:0;cursor:pointer;accent-color:var(--color-interactive-primary);border-radius:var(--border-radius-sm);border:2px solid var(--color-border-subtle);background:var(--color-surface-primary);transition:border-color var(--animation-duration-fast)ease,background-color var(--animation-duration-fast)ease}.form-checkbox input[type=checkbox]:focus,.form-radio input[type=radio]:focus{outline:2px solid var(--color-border-focus);outline-offset:2px}.form-checkbox input[type=checkbox]:checked,.form-radio input[type=radio]:checked{border-color:var(--color-interactive-primary);background:var(--color-interactive-primary)}.form-checkbox-label,.form-radio-label{font-size:.875rem;color:var(--color-text-primary);cursor:pointer;line-height:1.5;flex:1}.form-checkbox-label a,.form-radio-label a{color:var(--color-interactive-primary);text-decoration:underline;transition:color var(--animation-duration-fast)ease}.form-checkbox-label a:hover,.form-radio-label a:hover{color:var(--color-interactive-hover)}.form-file{position:relative;display:inline-block;cursor:pointer}.form-file input[type=file]{position:absolute;opacity:0;width:100%;height:100%;cursor:pointer}.form-file-label{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-md)var(--space-lg);background:var(--color-surface-secondary);color:var(--color-text-primary);border:2px dashed var(--color-border-subtle);border-radius:var(--border-radius-md);font-weight:500;transition:background-color var(--animation-duration-fast)ease,border-color var(--animation-duration-fast)ease}.form-file:hover .form-file-label{background:var(--color-surface-elevated);border-color:var(--color-border-focus)}.captcha-container{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-lg);background:var(--color-surface-secondary);border:1px solid var(--color-border-subtle);border-radius:var(--border-radius-lg);transition:background-color var(--animation-duration-normal)ease,border-color var(--animation-duration-normal)ease}.captcha-challenge{display:flex;align-items:center;gap:var(--space-md);font-weight:600;color:var(--color-text-primary)}.captcha-input{max-width:8rem}.captcha-refresh{padding:var(--space-sm);background:var(--color-surface-primary);border:1px solid var(--color-border-subtle);border-radius:var(--border-radius-sm);cursor:pointer;transition:background-color var(--animation-duration-fast)ease,transform var(--animation-duration-fast)ease}.captcha-refresh:hover{background:var(--color-surface-elevated);transform:translateY(-1px)}.captcha-refresh:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.h-captcha,.g-recaptcha{border-radius:var(--border-radius-md);overflow:hidden;transition:opacity var(--animation-duration-normal)ease}.captcha-container.error{border-color:var(--color-error);background:rgba(var(--color-error-rgb),.05)}.captcha-container.loading{opacity:.7;pointer-events:none}.captcha-container.loading::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:1.5rem;height:1.5rem;border:2px solid transparent;border-top:2px solid var(--color-interactive-primary);border-radius:50%;animation:captcha-spin 1s linear infinite}@keyframes captcha-spin{0%{transform:translate(-50%,-50%)rotate(0)}100%{transform:translate(-50%,-50%)rotate(360deg)}}.form-validation-summary{padding:var(--space-lg);background:rgba(var(--color-error-rgb),.05);border:1px solid var(--color-error);border-radius:var(--border-radius-lg);margin-bottom:var(--space-xl);transition:background-color var(--animation-duration-normal)ease,border-color var(--animation-duration-normal)ease}.form-validation-summary.success{border-color:var(--color-success);background:rgba(var(--color-success-rgb),.05)}.form-validation-summary.info{border-color:var(--color-interactive-primary);background:rgba(var(--color-border-focus-rgb),.05)}.form-validation-title{font-weight:600;color:var(--color-error);margin:0 0 var(--space-sm);display:flex;align-items:center;gap:var(--space-sm)}.form-validation-summary.success .form-validation-title{color:var(--color-success)}.form-validation-summary.info .form-validation-title{color:var(--color-interactive-primary)}.form-validation-title .icon{width:1.25rem;height:1.25rem;flex-shrink:0}.form-validation-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}.form-validation-item{font-size:.875rem;color:var(--color-error);line-height:1.5}.form-validation-summary.success .form-validation-item{color:var(--color-success)}.form-validation-summary.info .form-validation-item{color:var(--color-interactive-primary)}.contact-form-container{background:var(--color-surface-elevated);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-card);padding:2rem;transition:background-color var(--animation-duration-normal)ease,box-shadow var(--animation-duration-normal)ease}.contact-form-header{margin-bottom:2rem}.contact-form-title{font-size:1.5rem;font-weight:700;color:var(--color-text-primary);margin:0 0 .5rem}.contact-form-description{color:var(--color-text-secondary);font-size:.875rem;line-height:1.5;margin:0}.contact-form .form-field{margin-bottom:1.5rem}.contact-form .form-label{display:block;font-weight:500;color:var(--color-text-primary);margin-bottom:.5rem;font-size:.875rem}.contact-form .form-input,.contact-form .form-textarea{width:100%;padding:.75rem 1rem;border:2px solid var(--color-border-subtle);border-radius:var(--border-radius-lg);background:var(--color-surface-primary);color:var(--color-text-primary);font-size:1rem;transition:border-color var(--animation-duration-fast)ease,box-shadow var(--animation-duration-fast)ease}.contact-form .form-input::-moz-placeholder,.contact-form .form-textarea::-moz-placeholder{color:var(--color-text-muted)}.contact-form .form-input::placeholder,.contact-form .form-textarea::placeholder{color:var(--color-text-muted)}.contact-form .form-input:focus,.contact-form .form-textarea:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px rgba(var(--color-border-focus-rgb),.1)}.contact-form .submit-button{width:100%;background:var(--color-interactive-primary);color:#fff;padding:.875rem 2rem;border:none;border-radius:var(--border-radius-lg);font-weight:600;font-size:1rem;cursor:pointer;transition:background-color var(--animation-duration-fast)ease,transform var(--animation-duration-fast)ease,box-shadow var(--animation-duration-fast)ease;display:flex;align-items:center;justify-content:center;gap:.5rem;box-shadow:0 4px 6px -1px rgba(0,0,0,.1)}.contact-form .submit-button:hover:not(:disabled){background:var(--color-interactive-hover);transform:translateY(-1px);box-shadow:0 10px 15px -3px rgba(0,0,0,.1)}.contact-form .submit-button:active:not(:disabled){transform:translateY(0)}.contact-form .submit-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.contact-form .submit-button:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.form-status-message{padding:1rem 1.5rem;border-radius:var(--border-radius-lg);margin-top:1.5rem;display:flex;align-items:flex-start;gap:.75rem;transition:opacity var(--animation-duration-normal)ease,transform var(--animation-duration-normal)ease}.form-status-message.success{background:rgba(var(--color-success-rgb),.1);border:1px solid var(--color-success);color:var(--color-success)}.form-status-message.error{background:rgba(var(--color-error-rgb),.1);border:1px solid var(--color-error);color:var(--color-error)}.form-status-message .icon{width:1.25rem;height:1.25rem;flex-shrink:0;margin-top:.125rem}.form-status-message-content{flex:1}.form-status-message-title{font-weight:600;margin:0 0 .25rem}.form-status-message-text{font-size:.875rem;margin:0;line-height:1.5}.captcha-widget-container{position:relative;display:flex;flex-direction:column;gap:var(--space-sm);margin:var(--space-lg)0}.captcha-widget-container .form-label{font-weight:500;color:var(--color-text-primary);margin-bottom:var(--space-sm)}.h-captcha{border-radius:var(--border-radius-md) !important;overflow:hidden !important;border:2px solid var(--color-border-subtle) !important;transition:border-color var(--animation-duration-fast)ease !important}.h-captcha:focus-within{border-color:var(--color-border-focus) !important;box-shadow:0 0 0 3px rgba(var(--color-border-focus-rgb),.1) !important}.g-recaptcha{border-radius:var(--border-radius-md) !important;overflow:hidden !important;border:2px solid var(--color-border-subtle) !important;transition:border-color var(--animation-duration-fast)ease !important}.g-recaptcha:focus-within{border-color:var(--color-border-focus) !important;box-shadow:0 0 0 3px rgba(var(--color-border-focus-rgb),.1) !important}.captcha-widget-container.error .h-captcha,.captcha-widget-container.error .g-recaptcha{border-color:var(--color-error) !important}.captcha-widget-container.error .h-captcha:focus-within,.captcha-widget-container.error .g-recaptcha:focus-within{box-shadow:0 0 0 3px rgba(var(--color-error-rgb),.1) !important}.captcha-widget-container.success .h-captcha,.captcha-widget-container.success .g-recaptcha{border-color:var(--color-success) !important}.captcha-config-warning{padding:var(--space-lg);background:rgba(var(--color-warning-rgb),.1);border:1px solid var(--color-warning);border-radius:var(--border-radius-lg);color:var(--color-warning);font-size:.875rem;line-height:1.5;display:flex;align-items:flex-start;gap:var(--space-sm)}.captcha-config-warning .icon{width:1.25rem;height:1.25rem;flex-shrink:0;margin-top:.125rem}.captcha-config-warning-content{flex:1}.captcha-config-warning-title{font-weight:600;margin:0 0 .25rem}.captcha-config-warning-text{margin:0}.theme-dark .h-captcha,.theme-dark .g-recaptcha{filter:invert(1)hue-rotate(180deg) !important}.theme-dark .h-captcha>div,.theme-dark .g-recaptcha>div{filter:invert(1)hue-rotate(180deg) !important}.theme-high-contrast .h-captcha,.theme-high-contrast .g-recaptcha{border-width:3px !important;border-color:var(--color-border-subtle) !important}.theme-high-contrast .captcha-widget-container.error .h-captcha,.theme-high-contrast .captcha-widget-container.error .g-recaptcha{border-color:var(--color-error) !important}.captcha-loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(var(--color-surface-primary),.8);display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-md);z-index:10}.captcha-loading-spinner{width:2rem;height:2rem;border:3px solid var(--color-border-subtle);border-top:3px solid var(--color-interactive-primary);border-radius:50%;animation:captcha-loading-spin 1s linear infinite}@keyframes captcha-loading-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.captcha-widget-container[aria-describedby]{position:relative}.captcha-instructions{font-size:.75rem;color:var(--color-text-secondary);margin-top:var(--space-xs);line-height:1.4}.captcha-error-message{color:var(--color-error);font-size:.875rem;margin-top:var(--space-sm);display:flex;align-items:flex-start;gap:var(--space-xs)}.captcha-error-message .icon{width:1rem;height:1rem;flex-shrink:0;margin-top:.125rem}.captcha-retry-button{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm)var(--space-md);background:var(--color-surface-secondary);border:1px solid var(--color-border-subtle);border-radius:var(--border-radius-sm);color:var(--color-text-primary);font-size:.875rem;cursor:pointer;transition:background-color var(--animation-duration-fast)ease,transform var(--animation-duration-fast)ease;margin-top:var(--space-sm)}.captcha-retry-button:hover{background:var(--color-surface-elevated);transform:translateY(-1px)}.captcha-retry-button:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.captcha-retry-button .icon{width:1rem;height:1rem}@media(max-width:640px){.h-captcha,.g-recaptcha{transform:scale(.85) !important;transform-origin:0 0 !important}.captcha-widget-container{overflow:hidden}}.captcha-widget-container.fade-in{animation:captcha-fade-in .3s ease-out}.captcha-widget-container.fade-out{animation:captcha-fade-out .3s ease-out}@keyframes captcha-fade-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes captcha-fade-out{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}.captcha-widget-container:focus-within{outline:2px solid var(--color-border-focus);outline-offset:2px;border-radius:var(--border-radius-md)}.captcha-status-indicator{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:.75rem;margin-top:var(--space-xs)}.captcha-status-indicator.success{color:var(--color-success)}.captcha-status-indicator.error{color:var(--color-error)}.captcha-status-indicator.pending{color:var(--color-text-secondary)}.captcha-status-indicator .icon{width:.875rem;height:.875rem}.captcha-provider-info{font-size:.75rem;color:var(--color-text-muted);text-align:center;margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--color-border-subtle)}.captcha-provider-info a{color:var(--color-interactive-primary);text-decoration:none;transition:color var(--animation-duration-fast)ease}.captcha-provider-info a:hover{color:var(--color-interactive-hover);text-decoration:underline}.modal-overlay{position:fixed;inset:0;z-index:var(--z-index-modal);display:flex;align-items:center;justify-content:center;padding:var(--space-lg);background:var(--color-overlay-bg);backdrop-filter:blur(4px);opacity:0;visibility:hidden;transition:opacity var(--animation-duration-normal)ease,visibility var(--animation-duration-normal)ease}.modal-overlay.modal-open{opacity:1;visibility:visible}.modal-content{position:relative;background:var(--color-surface-primary);border-radius:var(--card-border-radius);box-shadow:var(--shadow-modal);max-width:56rem;max-height:90vh;width:100%;overflow:hidden;display:flex;flex-direction:column;transform:scale(.95)translateY(1rem);transition:transform var(--animation-duration-normal)ease}.modal-overlay.modal-open .modal-content{transform:scale(1)translateY(0)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-xl);border-bottom:1px solid var(--color-border-subtle);flex-shrink:0}.modal-title{font-size:var(--text-heading-2);font-weight:700;color:var(--color-text-primary);margin:0;line-height:var(--line-height-tight)}.modal-close{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;padding:0;background:0 0;border:none;border-radius:var(--border-radius-md);color:var(--color-text-secondary);cursor:pointer;transition:background-color var(--animation-duration-fast)ease,color var(--animation-duration-fast)ease}.modal-close:hover{background:var(--color-surface-secondary);color:var(--color-text-primary)}.modal-close:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.modal-close-icon{width:1.5rem;height:1.5rem;stroke:currentColor;stroke-width:2;fill:none}.modal-body{padding:var(--space-xl);overflow-y:auto;flex-grow:1}.modal-body::-webkit-scrollbar{width:.5rem}.modal-body::-webkit-scrollbar-track{background:var(--color-surface-secondary)}.modal-body::-webkit-scrollbar-thumb{background:var(--color-border-subtle);border-radius:var(--border-radius-full)}.modal-body::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-md);padding:var(--space-xl);border-top:1px solid var(--color-border-subtle);flex-shrink:0}.modal-footer.centered{justify-content:center}.modal-footer.space-between{justify-content:space-between}.project-modal .modal-content{max-width:64rem}.project-modal-image{width:100%;aspect-ratio:16/9;-o-object-fit:cover;object-fit:cover;background:var(--color-surface-secondary)}.project-modal-meta{display:flex;flex-wrap:wrap;gap:var(--space-lg);margin:var(--space-xl)0;padding:var(--space-lg);background:var(--color-surface-secondary);border-radius:var(--border-radius-md)}.project-modal-meta-item{display:flex;flex-direction:column;gap:var(--space-xs)}.project-modal-meta-label{font-size:var(--text-body-small);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.project-modal-meta-value{font-size:var(--text-body-medium);color:var(--color-text-primary);font-weight:500}.project-modal-technologies{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.project-modal-tech-tag{padding:var(--space-xs)var(--space-sm);background:var(--color-interactive-primary);color:#fff;border-radius:var(--border-radius-full);font-size:var(--text-body-small);font-weight:500}.project-modal-description{font-size:var(--text-body-medium);line-height:var(--line-height-relaxed);color:var(--color-text-primary)}.project-modal-description h3{font-size:var(--text-heading-4);margin:var(--space-xl)0 var(--space-md);color:var(--color-text-primary)}.project-modal-description p{margin:0 0 var(--space-md)}.project-modal-description ul,.project-modal-description ol{margin:0 0 var(--space-md);padding-left:var(--space-xl)}.project-modal-description li{margin-bottom:var(--space-xs)}.project-modal-links{display:flex;flex-wrap:wrap;gap:var(--space-md);margin-top:var(--space-xl)}.project-modal-link{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-md)var(--space-lg);background:var(--color-interactive-primary);color:#fff;text-decoration:none;border-radius:var(--border-radius-md);font-weight:600;transition:background-color var(--animation-duration-fast)ease,transform var(--animation-duration-fast)ease}.project-modal-link:hover{background:var(--color-interactive-hover);transform:translateY(-1px)}.project-modal-link.secondary{background:var(--color-surface-secondary);color:var(--color-text-primary);border:1px solid var(--color-border-subtle)}.project-modal-link.secondary:hover{background:var(--color-surface-elevated)}@media(max-width:640px){.modal-overlay{padding:var(--space-md)}.modal-content{max-height:95vh}.modal-header,.modal-body,.modal-footer{padding:var(--space-lg)}.modal-title{font-size:var(--text-heading-3)}.project-modal-meta{flex-direction:column;gap:var(--space-md)}.project-modal-links{flex-direction:column}.project-modal-link{justify-content:center}}.modal-overlay.fade-in{animation:modal-fade-in var(--animation-duration-normal)ease}.modal-overlay.fade-out{animation:modal-fade-out var(--animation-duration-normal)ease}@keyframes modal-fade-in{from{opacity:0}to{opacity:1}}@keyframes modal-fade-out{from{opacity:1}to{opacity:0}}.modal-content.slide-up{animation:modal-slide-up var(--animation-duration-normal)ease}.modal-content.slide-down{animation:modal-slide-down var(--animation-duration-normal)ease}@keyframes modal-slide-up{from{transform:scale(.95)translateY(2rem);opacity:0}to{transform:scale(1)translateY(0);opacity:1}}@keyframes modal-slide-down{from{transform:scale(1)translateY(0);opacity:1}to{transform:scale(.95)translateY(2rem);opacity:0}}.modal-overlay[aria-hidden=true]{display:none}.modal-content:focus{outline:none}body.modal-open{overflow:hidden}.typography-scale{--text-display-large:clamp(2.5rem, 6vw + 1rem, 5rem);--text-display-medium:clamp(2rem, 5vw + 0.5rem, 3.5rem);--text-display-small:clamp(1.75rem, 4vw + 0.25rem, 2.75rem);--text-heading-1:clamp(1.875rem, 3.5vw + 0.5rem, 2.5rem);--text-heading-2:clamp(1.625rem, 3vw + 0.25rem, 2rem);--text-heading-3:clamp(1.375rem, 2.5vw + 0.125rem, 1.75rem);--text-heading-4:clamp(1.25rem, 2vw + 0.125rem, 1.5rem);--text-heading-5:clamp(1.125rem, 1.5vw + 0.125rem, 1.25rem);--text-heading-6:clamp(1rem, 1.25vw + 0.125rem, 1.125rem);--text-body-large:clamp(1.125rem, 1vw + 0.75rem, 1.25rem);--text-body-medium:clamp(1rem, 0.5vw + 0.875rem, 1.125rem);--text-body-small:clamp(0.875rem, 0.25vw + 0.8125rem, 1rem);--text-body-xs:clamp(0.75rem, 0.25vw + 0.6875rem, 0.875rem);--line-height-display:1.1;--line-height-heading:1.25;--line-height-tight:1.375;--line-height-normal:1.5;--line-height-relaxed:1.625;--line-height-loose:1.75;--letter-spacing-tighter:-0.05em;--letter-spacing-tight:-0.025em;--letter-spacing-normal:0;--letter-spacing-wide:0.025em;--letter-spacing-wider:0.05em;--letter-spacing-widest:0.1em;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900}.text-display-large{font-size:var(--text-display-large);font-weight:var(--font-weight-black);line-height:var(--line-height-display);letter-spacing:var(--letter-spacing-tighter);color:var(--color-text-primary);text-wrap:balance}.text-display-medium{font-size:var(--text-display-medium);font-weight:var(--font-weight-extrabold);line-height:var(--line-height-display);letter-spacing:var(--letter-spacing-tight);color:var(--color-text-primary);text-wrap:balance}.text-display-small{font-size:var(--text-display-small);font-weight:var(--font-weight-bold);line-height:var(--line-height-heading);letter-spacing:var(--letter-spacing-tight);color:var(--color-text-primary);text-wrap:balance}.text-heading-1,h1{font-size:var(--text-heading-1);font-weight:var(--font-weight-bold);line-height:var(--line-height-heading);letter-spacing:var(--letter-spacing-tight);color:var(--color-text-primary);margin:0 0 var(--space-lg);text-wrap:balance}.text-heading-2,h2{font-size:var(--text-heading-2);font-weight:var(--font-weight-bold);line-height:var(--line-height-heading);letter-spacing:var(--letter-spacing-tight);color:var(--color-text-primary);margin:var(--space-xl)0 var(--space-md);text-wrap:balance}.text-heading-3,h3{font-size:var(--text-heading-3);font-weight:var(--font-weight-semibold);line-height:var(--line-height-heading);letter-spacing:var(--letter-spacing-normal);color:var(--color-text-primary);margin:var(--space-lg)0 var(--space-md);text-wrap:balance}.text-heading-4,h4{font-size:var(--text-heading-4);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-normal);color:var(--color-text-primary);margin:var(--space-lg)0 var(--space-sm)}.text-heading-5,h5{font-size:var(--text-heading-5);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-wide);color:var(--color-text-primary);margin:var(--space-md)0 var(--space-sm)}.text-heading-6,h6{font-size:var(--text-heading-6);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-widest);color:var(--color-text-primary);text-transform:uppercase;margin:var(--space-md)0 var(--space-sm)}.text-body-large{font-size:var(--text-body-large);font-weight:var(--font-weight-normal);line-height:var(--line-height-relaxed);color:var(--color-text-primary);margin:0 0 var(--space-md)}.text-body-medium,p{font-size:var(--text-body-medium);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--color-text-primary);margin:0 0 var(--space-md)}.text-body-small{font-size:var(--text-body-small);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--color-text-secondary);margin:0 0 var(--space-sm)}.text-body-xs{font-size:var(--text-body-xs);font-weight:var(--font-weight-normal);line-height:var(--line-height-tight);color:var(--color-text-secondary);margin:0 0 var(--space-sm)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-accent{color:var(--color-interactive-primary)}.text-muted{color:var(--color-text-muted)}.text-error{color:var(--color-error)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-light{font-weight:300}.text-normal{font-weight:400}.text-medium{font-weight:500}.text-semibold{font-weight:600}.text-bold{font-weight:700}.text-extrabold{font-weight:800}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.text-uppercase{text-transform:uppercase;letter-spacing:var(--letter-spacing-wider)}.text-lowercase{text-transform:lowercase}.text-capitalize{text-transform:capitalize}.text-underline{text-decoration:underline}.text-no-underline{text-decoration:none}.text-line-through{text-decoration:line-through}a{color:var(--color-interactive-primary);text-decoration:none;transition:color var(--animation-duration-fast)ease}a:hover{color:var(--color-interactive-hover)}a:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px;border-radius:2px}strong,b{font-weight:var(--font-weight-bold);color:var(--color-text-primary)}em,i{font-style:italic;color:var(--color-text-primary)}mark{background:var(--color-highlight-bg);color:var(--color-highlight-text);padding:.125em .375em;border-radius:var(--border-radius-sm);font-weight:var(--font-weight-medium)}code{font-family:ui-monospace,SFMono-Regular,sf mono,Monaco,Consolas,liberation mono,courier new,monospace;font-size:.9em;background:var(--color-surface-secondary);color:var(--color-interactive-primary);padding:.2em .4em;border-radius:var(--border-radius-sm);border:1px solid var(--color-border-subtle);font-weight:var(--font-weight-medium)}::-moz-selection{background:var(--color-interactive-primary);color:#fff}::selection{background:var(--color-interactive-primary);color:#fff}::-moz-selection{background:var(--color-interactive-primary);color:#fff}pre{font-family:ui-monospace,SFMono-Regular,sf mono,Monaco,Consolas,liberation mono,courier new,monospace;background:var(--color-surface-secondary);color:var(--color-text-primary);padding:var(--space-lg);border-radius:var(--border-radius-md);border:1px solid var(--color-border-subtle);overflow-x:auto;margin:var(--space-xl)0;line-height:var(--line-height-relaxed);font-size:var(--text-body-small);scrollbar-width:thin;scrollbar-color:var(--color-border-subtle)transparent}pre::-webkit-scrollbar{height:8px}pre::-webkit-scrollbar-track{background:0 0}pre::-webkit-scrollbar-thumb{background:var(--color-border-subtle);border-radius:var(--border-radius-sm)}pre::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}pre code{background:0 0;border:none;padding:0;font-size:inherit;color:inherit;line-height:inherit}blockquote{border-left:4px solid var(--color-interactive-primary);padding:var(--space-lg)var(--space-xl);margin:var(--space-xl)0;background:var(--color-surface-secondary);border-radius:0 var(--border-radius-md)var(--border-radius-md)0;position:relative}blockquote::before{content:"\201C";font-size:3rem;color:var(--color-interactive-primary);position:absolute;top:var(--space-sm);left:var(--space-md);line-height:1;opacity:.3}blockquote p{font-style:italic;font-size:var(--text-body-large);color:var(--color-text-primary);margin:0;line-height:var(--line-height-relaxed);padding-left:var(--space-lg)}blockquote cite{display:block;margin-top:var(--space-md);font-size:var(--text-body-small);color:var(--color-text-muted);font-style:normal;font-weight:var(--font-weight-medium);padding-left:var(--space-lg)}blockquote cite::before{content:"— ";color:var(--color-interactive-primary)}ul,ol{margin:0 0 var(--space-md);padding-left:var(--space-xl)}li{margin-bottom:var(--space-xs);line-height:var(--line-height-normal)}ul ul,ol ol,ul ol,ol ul{margin:var(--space-xs)0}dl{margin:0 0 var(--space-md)}dt{font-weight:600;color:var(--color-text-primary);margin-bottom:var(--space-xs)}dd{margin:0 0 var(--space-md)var(--space-lg);color:var(--color-text-secondary)}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.text-nowrap{white-space:nowrap}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp-1{display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.prose{max-width:65ch;line-height:var(--line-height-relaxed);color:var(--color-text-primary)}.prose-wide{max-width:75ch;line-height:var(--line-height-normal)}.prose-narrow{max-width:55ch;line-height:var(--line-height-relaxed)}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{margin-top:var(--space-2xl);margin-bottom:var(--space-lg);color:var(--color-text-primary)}.prose h1:first-child,.prose h2:first-child,.prose h3:first-child,.prose h4:first-child,.prose h5:first-child,.prose h6:first-child{margin-top:0}.prose p+p{margin-top:var(--space-lg)}.prose img{margin:var(--space-xl)0;border-radius:var(--border-radius-md);max-width:100%;height:auto}.prose ul,.prose ol{margin:var(--space-lg)0;padding-left:var(--space-xl)}.prose li{margin-bottom:var(--space-sm);line-height:var(--line-height-normal)}.prose li>p{margin:var(--space-xs)0}.text-high-contrast{color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.text-readable{line-height:var(--line-height-relaxed);font-size:var(--text-body-medium);max-width:65ch}.measure-narrow{max-width:20em}.measure{max-width:30em}.measure-wide{max-width:34em}@media(max-width:640px){.prose{max-width:none;padding:0 var(--space-md)}h1,.text-heading-1{margin-bottom:var(--space-md);text-wrap:balance}h2,.text-heading-2{margin-bottom:var(--space-sm);margin-top:var(--space-lg);text-wrap:balance}h3,.text-heading-3{margin-top:var(--space-md);text-wrap:balance}a{min-height:44px;display:inline-flex;align-items:center}p{margin-bottom:var(--space-lg)}blockquote{margin:var(--space-lg)0;padding:var(--space-md)var(--space-lg)}pre{margin:var(--space-lg)calc(-1 * var(--space-md));border-radius:0;padding:var(--space-md)}}@media(min-width:1024px){.prose{font-size:var(--text-body-large)}.text-display-large{letter-spacing:var(--letter-spacing-tighter)}}@media(prefers-contrast:high){h1,h2,h3,h4,h5,h6,.text-heading-1,.text-heading-2,.text-heading-3,.text-heading-4,.text-heading-5,.text-heading-6{font-weight:var(--font-weight-black)}strong,b{font-weight:var(--font-weight-black)}code{border-width:2px;font-weight:var(--font-weight-bold)}blockquote{border-left-width:6px}}@media(prefers-reduced-motion:reduce){*{-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}}.icon-system{--icon-size-xs:0.75rem;--icon-size-sm:1rem;--icon-size-md:1rem;--icon-size-lg:1.5rem;--icon-size-xl:1.5rem;--icon-size-2xl:1.5rem;--icon-spacing-xs:0.25rem;--icon-spacing-sm:0.5rem;--icon-spacing-md:0.75rem;--icon-spacing-lg:1rem;--icon-color-primary:var(--color-text-primary);--icon-color-secondary:var(--color-text-secondary);--icon-color-muted:var(--color-text-muted);--icon-color-accent:var(--color-interactive-primary);--icon-color-hover:var(--color-interactive-hover);--icon-color-active:var(--color-interactive-active)}.icon{display:inline-block;width:var(--icon-size-md);height:var(--icon-size-md);fill:currentColor;stroke:currentColor;flex-shrink:0;vertical-align:middle;transition:color var(--animation-duration-fast)ease,transform var(--animation-duration-fast)ease,opacity var(--animation-duration-fast)ease;shape-rendering:geometricPrecision;color:var(--icon-color-primary)}.icon-xs{width:var(--icon-size-xs);height:var(--icon-size-xs)}.icon-sm{width:var(--icon-size-sm);height:var(--icon-size-sm)}.icon-md{width:var(--icon-size-md);height:var(--icon-size-md)}.icon-lg{width:var(--icon-size-lg);height:var(--icon-size-lg)}.icon-xl{width:var(--icon-size-xl);height:var(--icon-size-xl)}.icon-2xl{width:var(--icon-size-2xl);height:var(--icon-size-2xl)}.icon-primary{color:var(--icon-color-primary)}.icon-secondary{color:var(--icon-color-secondary)}.icon-muted{color:var(--icon-color-muted)}.icon-accent{color:var(--icon-color-accent)}.icon-success{color:var(--color-success)}.icon-warning{color:var(--color-warning)}.icon-error{color:var(--color-error)}.icon-interactive{cursor:pointer;transition:color var(--animation-duration-fast)ease,transform var(--animation-duration-fast)ease}.icon-interactive:hover{color:var(--icon-color-hover);transform:scale(1.1)}.icon-interactive:active{color:var(--icon-color-active);transform:scale(.95)}.icon-interactive:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px;border-radius:var(--border-radius-sm)}.icon-button{display:inline-flex;align-items:center;justify-content:center;padding:var(--icon-spacing-sm);border:none;background:0 0;border-radius:var(--border-radius-md);cursor:pointer;transition:background-color var(--animation-duration-fast)ease,transform var(--animation-duration-fast)ease;min-width:2.75rem;min-height:2.75rem}.icon-button:hover{background:var(--color-surface-secondary);transform:translateY(-1px)}.icon-button:active{transform:translateY(0)}.icon-button:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.icon-button-sm{padding:var(--icon-spacing-xs);min-width:2rem;min-height:2rem}.icon-button-lg{padding:var(--icon-spacing-md);min-width:3.5rem;min-height:3.5rem}.icon-text{display:inline-flex;align-items:center;gap:var(--icon-spacing-sm)}.icon-text-sm{gap:var(--icon-spacing-xs)}.icon-text-lg{gap:var(--icon-spacing-md)}.icon-list{display:flex;align-items:center;gap:var(--icon-spacing-md);list-style:none;padding:0;margin:0}.icon-list-sm{gap:var(--icon-spacing-sm)}.icon-list-lg{gap:var(--icon-spacing-lg)}.icon-list-vertical{flex-direction:column;align-items:flex-start}.icon-badge{position:relative;display:inline-flex}.icon-badge::after{content:'';position:absolute;top:-2px;right:-2px;width:8px;height:8px;background:var(--color-error);border-radius:50%;border:2px solid var(--color-surface-primary)}.icon-badge-success::after{background:var(--color-success)}.icon-badge-warning::after{background:var(--color-warning)}.icon-loading{animation:icon-spin 1s linear infinite}@keyframes icon-spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}.icon-pulse{animation:icon-pulse 2s cubic-bezier(.4,0,.6,1)infinite}@keyframes icon-pulse{0%,100%{opacity:1}50%{opacity:.5}}.icon-container{display:inline-flex;align-items:center;justify-content:center;padding:var(--icon-spacing-sm);border-radius:var(--border-radius-md);background:var(--color-surface-secondary)}.icon-container-accent{background:var(--color-interactive-primary);color:#fff}.icon-container-success{background:var(--color-success-bg);color:var(--color-success)}@media(max-width:640px){.icon-responsive{width:var(--icon-size-sm);height:var(--icon-size-sm)}.icon-button{min-width:2.5rem;min-height:2.5rem;padding:var(--icon-spacing-xs)}}@media(min-width:1024px){.icon-responsive-lg{width:var(--icon-size-lg);height:var(--icon-size-lg)}}.icon[aria-hidden=true]{pointer-events:none}.icon[role=img]{cursor:default}.theme-high-contrast .icon{stroke-width:2px}.theme-high-contrast .icon-button{border:2px solid var(--color-border-subtle)}.theme-high-contrast .icon-button:hover{border-color:var(--color-interactive-primary)}@media(prefers-reduced-motion:reduce){.icon,.icon-button,.icon-interactive{transition:none}.icon-loading,.icon-pulse{animation:none}.icon-interactive:hover{transform:none}}@media print{.icon-button{background:0 0 !important;box-shadow:none !important}.icon{color:#000 !important}}.icon.icon-github,.icon.icon-linkedin,.icon.icon-twitter,.icon.icon-email,.icon.icon-mastodon,.icon.icon-gitlab,.icon.icon-codepen,.icon.icon-stackoverflow,.icon.icon-youtube,.icon.icon-instagram,.icon.icon-facebook,.icon.icon-dribbble,.icon.icon-behance{width:var(--icon-size-md);height:var(--icon-size-md)}.external-link{display:inline-flex;align-items:center;gap:var(--icon-spacing-sm);padding:var(--icon-spacing-sm)var(--icon-spacing-md);background:var(--color-surface-secondary);border:1px solid var(--color-border-subtle);border-radius:var(--border-radius-md);text-decoration:none;color:var(--color-text-primary);font-weight:500;transition:all var(--animation-duration-fast)ease;min-height:2.75rem;position:relative}.external-link::after{content:'';display:inline-block;width:var(--icon-size-xs);height:var(--icon-size-xs);margin-left:var(--icon-spacing-xs);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='currentColor'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;background-position:50%;opacity:.7;transition:opacity var(--animation-duration-fast)ease}.external-link:hover{background:var(--color-surface-elevated);border-color:var(--color-interactive-primary);transform:translateY(-1px);box-shadow:0 4px 8px rgba(0,0,0,.1)}.external-link:hover::after{opacity:1}.external-link:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.external-link:active{transform:translateY(0)}.external-link-primary{background:var(--color-interactive-primary);color:#fff;border-color:var(--color-interactive-primary)}.external-link-primary:hover{background:var(--color-interactive-hover);border-color:var(--color-interactive-hover);color:#fff}.external-link-secondary{background:0 0;border-color:var(--color-interactive-primary);color:var(--color-interactive-primary)}.external-link-secondary:hover{background:var(--color-interactive-primary);color:#fff}.external-link-ghost{background:0 0;border:none;padding:var(--icon-spacing-xs)var(--icon-spacing-sm)}.external-link-ghost:hover{background:var(--color-surface-secondary)}.external-link-sm{padding:var(--icon-spacing-xs)var(--icon-spacing-sm);font-size:.875rem;min-height:2rem;gap:var(--icon-spacing-xs)}.external-link-sm::after{width:.625rem;height:.625rem}.external-link-lg{padding:var(--icon-spacing-md)var(--icon-spacing-lg);font-size:1.125rem;min-height:3.5rem;gap:var(--icon-spacing-md)}.external-link-lg::after{width:var(--icon-size-sm);height:var(--icon-size-sm)}.external-link-with-icon{gap:var(--icon-spacing-sm)}.external-link-with-icon .icon{color:currentColor;transition:transform var(--animation-duration-fast)ease}.external-link-with-icon:hover .icon{transform:scale(1.1)}.external-link-text{color:inherit;font-weight:inherit;text-decoration:none}.external-links-container{width:100%}.external-links-list{display:flex;flex-wrap:wrap;gap:var(--space-sm);list-style:none;padding:0;margin:0}.external-link-item{margin:0}.external-links-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--icon-spacing-md)}.external-links-vertical{flex-direction:column;align-items:flex-start}.external-links-center{justify-content:center}.external-link-social{border-radius:50%;width:3rem;height:3rem;padding:0;justify-content:center;min-height:auto}.external-link-social::after{display:none}.external-link-social .external-link-text{display:none}.external-link-social .icon{width:var(--icon-size-md);height:var(--icon-size-md)}.external-link[aria-describedby]{}.external-link-description{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.external-link:focus .external-link-description,.external-link:hover .external-link-description{position:static;width:auto;height:auto;overflow:visible;background:var(--color-surface-primary);border:1px solid var(--color-border-subtle);border-radius:var(--border-radius-sm);padding:var(--icon-spacing-xs)var(--icon-spacing-sm);font-size:.875rem;color:var(--color-text-secondary);margin-top:var(--icon-spacing-xs);box-shadow:0 2px 4px rgba(0,0,0,.1)}.theme-high-contrast .external-link{border-width:2px;font-weight:600}.theme-high-contrast .external-link::after{opacity:1;filter:contrast(2)}.theme-high-contrast .external-link:hover{border-width:3px}.theme-dark .external-link::after{filter:invert(1)}.theme-light .external-link::after{opacity:.8}@media(max-width:640px){.external-links-list{gap:var(--icon-spacing-sm)}.external-link{padding:var(--icon-spacing-xs)var(--icon-spacing-sm);font-size:.875rem;min-height:2.5rem}.external-links-grid{grid-template-columns:1fr}}@media(max-width:480px){.external-link-text{display:none}.external-link{width:2.5rem;height:2.5rem;padding:0;justify-content:center;min-height:auto}.external-link::after{display:none}}@media(prefers-reduced-motion:reduce){.external-link,.external-link .icon{transition:none}.external-link:hover{transform:none}.external-link:hover .icon{transform:none}}@media print{.external-link{background:0 0 !important;border:1px solid #000 !important;color:#000 !important;box-shadow:none !important}.external-link::after{display:inline !important;opacity:1 !important}.external-link-text::after{content:" (" attr(href)")";font-size:.8em;color:#666}}.icon-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(4rem,1fr));gap:var(--space-lg);padding:var(--space-lg)}.icon-grid-item{display:flex;flex-direction:column;align-items:center;gap:var(--icon-spacing-sm);padding:var(--space-md);border-radius:var(--border-radius-md);background:var(--color-surface-secondary);text-align:center}.icon-grid-item:hover{background:var(--color-surface-elevated)}.icon-grid-label{font-size:.75rem;color:var(--color-text-secondary);font-weight:500}.footer-section.external-links .external-links-container{margin-top:0;width:100%}.footer-section.external-links .external-links-list{gap:var(--space-xs);justify-content:flex-start;flex-wrap:wrap}.footer-section.external-links .external-link{min-height:2rem;height:2rem;font-size:.8rem;padding:var(--space-xs)var(--space-sm);gap:var(--space-xs);background:var(--color-surface-primary)}.footer-section.external-links .external-link .icon{width:1rem;height:1rem;flex-shrink:0}.footer-section.external-links .external-link::after{display:none}@media(max-width:768px){.footer-section.external-links .external-links-list{justify-content:center}.footer-section.external-links .external-link{min-height:2.25rem;height:auto}}.responsive-image-container{position:relative;overflow:hidden;background:var(--color-surface-secondary)}.responsive-image{width:20rem;max-width:100%;height:20rem;max-height:100%;-o-object-fit:cover;object-fit:cover;transition:transform var(--animation-duration-normal)ease,opacity var(--animation-duration-normal)ease}.responsive-image:hover{transform:scale(1.05)}.responsive-image[loading=lazy]{opacity:0;transition:opacity var(--animation-duration-normal)ease}.responsive-image[loading=lazy].loaded{opacity:1}.image-placeholder{display:flex;align-items:center;justify-content:center;background:var(--color-surface-secondary);border:2px dashed var(--color-border-subtle);border-radius:var(--border-radius-md);position:relative;overflow:hidden}.image-placeholder::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient( 90deg,transparent,rgba(255,255,255,.1),transparent );animation:shimmer 1.5s infinite}@keyframes shimmer{0%{left:-100%}100%{left:100%}}.image-placeholder-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);color:var(--color-text-muted);text-align:center;padding:var(--space-lg)}.image-placeholder-icon{width:3rem;height:3rem;opacity:.5}.image-placeholder-text{font-size:var(--text-body-small);font-weight:500}.skeleton-image{background:linear-gradient( 90deg,var(--color-surface-secondary) 25%,var(--color-surface-elevated) 50%,var(--color-surface-secondary) 75% );background-size:200% 100%;animation:skeleton-loading 1.5s infinite;border-radius:var(--border-radius-md)}@keyframes skeleton-loading{0%{background-position:-200% 0}100%{background-position:200% 0}}.aspect-ratio-16-9{aspect-ratio:16/9}.aspect-ratio-4-3{aspect-ratio:4/3}.aspect-ratio-3-2{aspect-ratio:3/2}.aspect-ratio-1-1{aspect-ratio:1/1}.aspect-ratio-video{aspect-ratio:16/9}.aspect-ratio-square{aspect-ratio:1/1}.aspect-ratio-portrait{aspect-ratio:3/4}.aspect-ratio-landscape{aspect-ratio:4/3}.img-cover{-o-object-fit:cover;object-fit:cover}.img-contain{-o-object-fit:contain;object-fit:contain}.img-fill{-o-object-fit:fill;object-fit:fill}.img-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.img-none{-o-object-fit:none;object-fit:none}.img-center{-o-object-position:center;object-position:center}.img-top{-o-object-position:top;object-position:top}.img-bottom{-o-object-position:bottom;object-position:bottom}.img-left{-o-object-position:left;object-position:left}.img-right{-o-object-position:right;object-position:right}.lazy-image{opacity:0;transition:opacity var(--animation-duration-normal)ease}.lazy-image.loaded{opacity:1}.lazy-image.error{opacity:.5;filter:grayscale(100%)}.blur-up{filter:blur(5px);transition:filter var(--animation-duration-normal)ease}.blur-up.loaded{filter:blur(0)}.progressive-image{position:relative;overflow:hidden}.progressive-image .image-placeholder{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.progressive-image .responsive-image{position:relative;z-index:2}.progressive-image .responsive-image.loaded+.image-placeholder{opacity:0;pointer-events:none}.image-error{display:flex;align-items:center;justify-content:center;background:var(--color-surface-secondary);border:2px solid var(--color-border-subtle);border-radius:var(--border-radius-md);color:var(--color-text-muted);font-size:var(--text-body-small);text-align:center;padding:var(--space-lg)}.image-error-icon{width:2rem;height:2rem;margin-bottom:var(--space-sm);opacity:.5}.image-gallery{display:grid;gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.image-gallery-item{position:relative;overflow:hidden;border-radius:var(--border-radius-md);cursor:pointer;transition:transform var(--animation-duration-fast)ease}.image-gallery-item:hover{transform:scale(1.02)}.image-gallery-item .responsive-image{transition:transform var(--animation-duration-normal)ease}.image-gallery-item:hover .responsive-image{transform:scale(1.1)}.image-caption{margin-top:var(--space-sm);font-size:var(--text-body-small);color:var(--color-text-secondary);text-align:center;font-style:italic}@media(max-width:640px){.responsive-image-container{border-radius:var(--border-radius-sm)}.image-placeholder-icon{width:2rem;height:2rem}.image-gallery{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-sm)}}@media(min-width:1024px){.image-gallery{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-lg)}}@media print{.image-placeholder,.skeleton-image{display:none}.responsive-image{max-width:50%;height:auto;page-break-inside:avoid}}@media(prefers-contrast:high){.image-placeholder{border-color:var(--color-text-primary);border-width:3px}.image-error{border-color:var(--color-text-primary);border-width:3px}}@media(prefers-reduced-motion:reduce){.responsive-image,.lazy-image,.blur-up,.image-gallery-item,.image-gallery-item .responsive-image{transition:none}.image-placeholder::before{animation:none}.skeleton-image{animation:none}.responsive-image:hover,.image-gallery-item:hover,.image-gallery-item:hover .responsive-image{transform:none}}.cv-container{max-width:56rem;margin-left:auto;margin-right:auto;padding:var(--space-md)var(--space-lg)}@media(min-width:768px){.cv-container{padding:var(--space-xl)var(--space-lg)}}.cv-header{margin-bottom:var(--space-3xl);text-align:center}.cv-name{font-size:2.25rem;font-weight:700;margin-bottom:var(--space-md);color:var(--color-text-primary)}.cv-contact-info{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-lg);color:var(--color-text-secondary)}.cv-contact-item{display:flex;align-items:center;gap:var(--space-sm)}.cv-contact-icon{width:1.25rem;height:1.25rem;flex-shrink:0}.cv-section{margin-bottom:var(--space-3xl)}.cv-section-title{font-size:1.5rem;font-weight:700;margin-bottom:var(--space-lg);color:var(--color-text-primary);border-bottom:2px solid var(--color-interactive-primary);padding-bottom:var(--space-sm)}.cv-section-content{color:var(--color-text-secondary);line-height:1.7}.cv-timeline{display:flex;flex-direction:column;gap:var(--space-2xl)}.cv-timeline-item{position:relative;padding-left:var(--space-xl);border-left:2px solid var(--color-border-secondary)}.theme-dark .cv-timeline-item,.dark .cv-timeline-item{border-left-color:var(--color-border-primary)}.cv-timeline-dot{position:absolute;left:-.5rem;top:0;width:1rem;height:1rem;border-radius:50%;background-color:var(--color-interactive-primary);border:2px solid var(--color-surface-primary)}.cv-timeline-header{margin-bottom:var(--space-sm)}.cv-timeline-title{font-size:1.25rem;font-weight:600;color:var(--color-text-primary);margin:0}.cv-timeline-company{color:var(--color-interactive-primary);font-weight:500}.cv-timeline-meta{display:flex;flex-wrap:wrap;gap:var(--space-lg);font-size:.875rem;color:var(--color-text-secondary);margin-top:var(--space-xs)}.cv-timeline-description{color:var(--color-text-secondary);margin-bottom:var(--space-md);line-height:1.6}.cv-projects{margin-top:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md)}.cv-projects-title{font-size:1.125rem;font-weight:600;color:var(--color-text-primary);margin:0 0 var(--space-sm)}.cv-project-card{background-color:var(--color-surface-secondary);border-radius:var(--border-radius-lg);padding:var(--space-md);border:1px solid var(--color-border-primary)}.cv-project-title{font-weight:600;color:var(--color-text-primary);margin:0 0 var(--space-sm)}.cv-project-description{color:var(--color-text-secondary);font-size:.875rem;margin-bottom:var(--space-md);line-height:1.5}.cv-project-skills{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.cv-skill-tag{padding:var(--space-xs)var(--space-sm);background-color:var(--color-surface-elevated);color:var(--color-interactive-primary);border-radius:var(--border-radius-full);font-size:.75rem;font-weight:500;border:1px solid var(--color-border-secondary)}.cv-skills-grid{display:grid;grid-template-columns:repeat(1,1fr);gap:var(--space-2xl)}@media(min-width:1024px){.cv-skills-grid{grid-template-columns:repeat(2,1fr)}}.cv-skills-category{display:flex;flex-direction:column;gap:var(--space-md)}.cv-skills-category-title{font-size:1.125rem;font-weight:600;color:var(--color-text-primary);margin:0}.cv-skills-list{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.cv-certifications{display:flex;flex-direction:column;gap:var(--space-lg)}.cv-certification-item{display:flex;align-items:flex-start;gap:var(--space-md)}.cv-certification-icon{width:2.5rem;height:2.5rem;padding:var(--space-sm);background-color:var(--color-surface-elevated);border-radius:var(--border-radius-full);flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--color-interactive-primary)}.cv-certification-icon svg{width:1.25rem;height:1.25rem}.cv-certification-content{flex:1}.cv-certification-name{font-weight:600;color:var(--color-text-primary);margin:0}.cv-certification-issuer{color:var(--color-text-secondary);font-size:.875rem}.cv-certification-date{font-size:.75rem;color:var(--color-text-tertiary);margin-top:var(--space-xs)}.cv-languages{display:flex;flex-wrap:wrap;gap:var(--space-lg)}.cv-language-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm)var(--space-md);background-color:var(--color-surface-secondary);border-radius:var(--border-radius-md);border:1px solid var(--color-border-primary)}.cv-language-name{font-weight:500;color:var(--color-text-primary)}.cv-language-level{font-size:.875rem;color:var(--color-text-secondary)}.cv-download-section{margin-top:var(--space-3xl);padding-top:var(--space-2xl);border-top:1px solid var(--color-border-primary);text-align:center}.cv-download-button{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm)var(--space-xl);background-color:var(--color-interactive-primary);color:#fff;border-radius:var(--border-radius-md);font-weight:500;text-decoration:none;transition:background-color var(--animation-duration-fast)ease,transform var(--animation-duration-fast)ease}.cv-download-button:hover{background-color:var(--color-interactive-primary-hover);transform:translateY(-1px)}.cv-download-button:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.cv-download-button svg{width:1.25rem;height:1.25rem}.cv-loading{display:flex;align-items:center;justify-content:center;padding:var(--space-3xl)}.cv-loading-spinner{width:2.5rem;height:2.5rem;border:3px solid var(--color-border-primary);border-top-color:var(--color-interactive-primary);border-radius:50%;animation:spin 1s linear infinite}.contact-container{max-width:56rem;margin-left:auto;margin-right:auto;padding:var(--space-md)var(--space-lg)}@media(min-width:768px){.contact-container{padding:var(--space-xl)var(--space-lg)}}.contact-header{margin-bottom:var(--space-3xl);text-align:center}.contact-title{font-size:2.25rem;font-weight:700;margin-bottom:var(--space-md);color:var(--color-text-primary)}.contact-subtitle{font-size:1.125rem;color:var(--color-text-secondary);max-width:42rem;margin-left:auto;margin-right:auto;line-height:1.6}.contact-content{text-align:center;margin-bottom:var(--space-3xl)}.contact-content .prose-content{max-width:none;margin:0 auto}.contact-grid{display:grid;grid-template-columns:1fr;gap:var(--space-2xl);margin-bottom:var(--space-3xl)}@media(min-width:1024px){.contact-grid{grid-template-columns:1fr 1fr}}.contact-info-section{display:flex;flex-direction:column;gap:var(--space-xl)}.contact-info-card{background-color:var(--color-surface-primary);border-radius:var(--border-radius-lg);padding:var(--space-xl);box-shadow:var(--shadow-card);border:1px solid var(--color-border-subtle)}@media(min-width:1024px){.contact-info-card{padding:var(--space-2xl)}}.contact-info-title{font-size:1.5rem;font-weight:700;color:var(--color-text-primary);margin:0 0 var(--space-lg)}.contact-info-description{color:var(--color-text-secondary);line-height:1.6;margin:0 0 var(--space-lg)}.contact-info-list{display:flex;flex-direction:column;gap:var(--space-lg)}.contact-info-item{display:flex;align-items:flex-start;gap:var(--space-md)}.contact-info-icon{width:2.5rem;height:2.5rem;padding:var(--space-sm);background-color:var(--color-surface-elevated);border-radius:var(--border-radius-lg);flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--color-interactive-primary)}.contact-info-icon svg{width:1.25rem;height:1.25rem}.contact-info-content{flex:1}.contact-info-label{font-weight:500;font-size:.875rem;color:var(--color-text-secondary);margin:0 0 var(--space-xs)}.contact-info-value{color:var(--color-text-primary);margin:0}.contact-info-link{color:var(--color-text-primary);text-decoration:none;transition:color var(--animation-duration-fast)ease}.contact-info-link:hover{color:var(--color-interactive-primary)}.contact-social-list{display:flex;flex-direction:column;gap:var(--space-sm)}.contact-social-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm)var(--space-md);border-radius:var(--border-radius-lg);text-decoration:none;transition:background-color var(--animation-duration-fast)ease}.contact-social-item:hover{background-color:var(--color-surface-secondary)}.contact-social-icon{width:2.5rem;height:2.5rem;padding:var(--space-sm);background-color:var(--color-surface-elevated);border-radius:var(--border-radius-lg);flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--color-interactive-primary);transition:background-color var(--animation-duration-fast)ease}.contact-social-item:hover .contact-social-icon{background-color:var(--color-interactive-primary);color:#fff}.contact-social-icon svg{width:1.25rem;height:1.25rem}.contact-social-name{flex:1;font-weight:500;color:var(--color-text-primary);transition:color var(--animation-duration-fast)ease}.contact-social-item:hover .contact-social-name{color:var(--color-interactive-primary)}.contact-social-arrow{width:1.25rem;height:1.25rem;color:var(--color-text-tertiary);transition:color var(--animation-duration-fast)ease}.contact-social-item:hover .contact-social-arrow{color:var(--color-interactive-primary)}.contact-availability{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm)var(--space-md);background-color:var(--color-surface-elevated);border-radius:var(--border-radius-md);border:1px solid var(--color-border-subtle);margin-top:var(--space-lg)}.contact-availability-dot{width:.5rem;height:.5rem;border-radius:50%;background-color:#22c55e;animation:pulse-availability 2s infinite}@keyframes pulse-availability{0%,100%{opacity:1}50%{opacity:.5}}.contact-availability-text{font-size:.875rem;color:var(--color-text-primary)}.contact-social-links{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-lg)}.contact-social-link{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:var(--border-radius-md);background-color:var(--color-surface-secondary);color:var(--color-text-secondary);text-decoration:none;transition:background-color var(--animation-duration-fast)ease,color var(--animation-duration-fast)ease,transform var(--animation-duration-fast)ease}.contact-social-link:hover{background-color:var(--color-interactive-primary);color:#fff;transform:translateY(-2px)}.contact-social-link svg{width:1.25rem;height:1.25rem}.required-marker{color:var(--color-error);font-weight:500}.contact-alternative{padding:var(--space-xl);background-color:var(--color-surface-secondary);border-radius:var(--border-radius-lg);border:1px solid var(--color-border-primary);text-align:center}.contact-alternative-title{font-size:1.25rem;font-weight:600;color:var(--color-text-primary);margin:0 0 var(--space-md)}.contact-alternative-text{color:var(--color-text-secondary);margin:0 0 var(--space-lg);line-height:1.6}.contact-alternative-email{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm)var(--space-lg);background-color:var(--color-surface-primary);border:1px solid var(--color-border-primary);border-radius:var(--border-radius-md);color:var(--color-text-primary);text-decoration:none;font-weight:500;transition:border-color var(--animation-duration-fast)ease,background-color var(--animation-duration-fast)ease}.contact-alternative-email:hover{border-color:var(--color-interactive-primary);background-color:var(--color-surface-elevated)}.contact-alternative-email svg{width:1.25rem;height:1.25rem;color:var(--color-interactive-primary)}.contact-response-notice{margin-top:var(--space-xl);padding:var(--space-md);background-color:var(--color-surface-elevated);border-radius:var(--border-radius-md);border-left:3px solid var(--color-interactive-primary)}.contact-response-notice p{margin:0;font-size:.875rem;color:var(--color-text-secondary)}.contact-response-notice strong{color:var(--color-text-primary)}:root{--animation-duration-fast:0.15s;--animation-duration-normal:0.3s;--animation-duration-slow:0.5s;--animation-timing-ease:ease;--animation-timing-ease-in:ease-in;--animation-timing-ease-out:ease-out;--animation-timing-ease-in-out:ease-in-out}.animate-fade-in{animation:fade-in var(--animation-duration-normal)var(--animation-timing-ease-out)}.animate-fade-out{animation:fade-out var(--animation-duration-normal)var(--animation-timing-ease-in)}.animate-slide-up{animation:slide-up var(--animation-duration-normal)var(--animation-timing-ease-out)}.animate-slide-down{animation:slide-down var(--animation-duration-normal)var(--animation-timing-ease-out)}.animate-slide-left{animation:slide-left var(--animation-duration-normal)var(--animation-timing-ease-out)}.animate-slide-right{animation:slide-right var(--animation-duration-normal)var(--animation-timing-ease-out)}.animate-scale-up{animation:scale-up var(--animation-duration-normal)var(--animation-timing-ease-out)}.animate-scale-down{animation:scale-down var(--animation-duration-normal)var(--animation-timing-ease-in)}.animate-bounce{animation:bounce .6s var(--animation-timing-ease-out)}.animate-pulse{animation:pulse 2s infinite}.animate-spin{animation:spin 1s linear infinite}@keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes fade-out{from{opacity:1}to{opacity:0}}@keyframes slide-up{from{transform:translateY(1rem);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slide-down{from{transform:translateY(-1rem);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slide-left{from{transform:translateX(1rem);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slide-right{from{transform:translateX(-1rem);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes scale-up{from{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}@keyframes scale-down{from{transform:scale(1.05);opacity:0}to{transform:scale(1);opacity:1}}@keyframes bounce{0%,20%,53%,80%,100%{transform:translate3d(0,0,0)}40%,43%{transform:translate3d(0,-.5rem,0)}70%{transform:translate3d(0,-.25rem,0)}90%{transform:translate3d(0,-.125rem,0)}}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}.hover-lift{transition:transform var(--animation-duration-fast)var(--animation-timing-ease-out),box-shadow var(--animation-duration-fast)var(--animation-timing-ease-out)}.hover-lift:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.15)}.hover-lift-more{transition:transform var(--animation-duration-fast)var(--animation-timing-ease-out),box-shadow var(--animation-duration-fast)var(--animation-timing-ease-out)}.hover-lift-more:hover{transform:translateY(-4px);box-shadow:0 8px 25px rgba(0,0,0,.15)}.hover-scale{transition:transform var(--animation-duration-fast)var(--animation-timing-ease-out)}.hover-scale:hover{transform:scale(1.05)}.hover-scale-sm{transition:transform var(--animation-duration-fast)var(--animation-timing-ease-out)}.hover-scale-sm:hover{transform:scale(1.02)}.hover-scale-lg{transition:transform var(--animation-duration-fast)var(--animation-timing-ease-out)}.hover-scale-lg:hover{transform:scale(1.08)}.hover-rotate{transition:transform var(--animation-duration-fast)var(--animation-timing-ease-out)}.hover-rotate:hover{transform:rotate(5deg)}.hover-rotate-reverse{transition:transform var(--animation-duration-fast)var(--animation-timing-ease-out)}.hover-rotate-reverse:hover{transform:rotate(-5deg)}.hover-glow{transition:box-shadow var(--animation-duration-fast)var(--animation-timing-ease-out)}.hover-glow:hover{box-shadow:0 0 20px rgba(var(--color-interactive-primary-rgb),.4)}.hover-brighten{transition:filter var(--animation-duration-fast)var(--animation-timing-ease-out)}.hover-brighten:hover{filter:brightness(1.1)}.hover-saturate{transition:filter var(--animation-duration-fast)var(--animation-timing-ease-out)}.hover-saturate:hover{filter:saturate(1.2)}.hover-button{position:relative;overflow:hidden;transition:transform var(--animation-duration-fast)var(--animation-timing-ease-out),box-shadow var(--animation-duration-fast)var(--animation-timing-ease-out),background-color var(--animation-duration-fast)var(--animation-timing-ease-out)}.hover-button::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left var(--animation-duration-normal)var(--animation-timing-ease-out)}.hover-button:hover{transform:translateY(-2px);box-shadow:0 8px 25px rgba(0,0,0,.15)}.hover-button:hover::before{left:100%}.hover-button:active{transform:translateY(0);box-shadow:0 4px 12px rgba(0,0,0,.15)}.hover-underline{position:relative;text-decoration:none}.hover-underline::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:2px;background:var(--color-interactive-primary);transition:width var(--animation-duration-normal)var(--animation-timing-ease-out)}.hover-underline:hover::after{width:100%}.hover-underline-center{position:relative;text-decoration:none}.hover-underline-center::after{content:'';position:absolute;bottom:-2px;left:50%;width:0;height:2px;background:var(--color-interactive-primary);transition:width var(--animation-duration-normal)var(--animation-timing-ease-out),left var(--animation-duration-normal)var(--animation-timing-ease-out)}.hover-underline-center:hover::after{width:100%;left:0}.hover-icon-bounce{transition:transform var(--animation-duration-fast)var(--animation-timing-ease-out)}.hover-icon-bounce:hover{animation:icon-bounce .6s var(--animation-timing-ease-out)}@keyframes icon-bounce{0%,20%,50%,80%,100%{transform:translateY(0)}40%{transform:translateY(-8px)}60%{transform:translateY(-4px)}}.hover-icon-spin{transition:transform var(--animation-duration-normal)var(--animation-timing-ease-out)}.hover-icon-spin:hover{transform:rotate(360deg)}.hover-icon-wiggle{transition:transform var(--animation-duration-fast)var(--animation-timing-ease-out)}.hover-icon-wiggle:hover{animation:icon-wiggle .5s var(--animation-timing-ease-out)}@keyframes icon-wiggle{0%,100%{transform:rotate(0)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}.focus-ring{transition:box-shadow var(--animation-duration-fast)var(--animation-timing-ease-out)}.focus-ring:focus-visible{box-shadow:0 0 0 3px rgba(var(--color-border-focus-rgb),.3)}.loading-shimmer{background:linear-gradient( 90deg,var(--color-surface-secondary) 0%,var(--color-surface-elevated) 50%,var(--color-surface-secondary) 100% );background-size:200% 100%;animation:shimmer 1.5s infinite}@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}.loading-dots{display:inline-flex;gap:.25rem}.loading-dots::after{content:'';animation:loading-dots 1.4s infinite both}@keyframes loading-dots{0%,80%,100%{content:''}20%{content:'.'}40%{content:'..'}60%{content:'...'}}.loading-spinner{width:2rem;height:2rem;border:3px solid var(--color-border-subtle);border-top:3px solid var(--color-interactive-primary);border-radius:50%;animation:spinner-spin 1s linear infinite}.loading-spinner-sm{width:1rem;height:1rem;border-width:2px}.loading-spinner-lg{width:3rem;height:3rem;border-width:4px}@keyframes spinner-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.loading-pulse{animation:loading-pulse 2s cubic-bezier(.4,0,.6,1)infinite}@keyframes loading-pulse{0%,100%{opacity:1}50%{opacity:.5}}.loading-skeleton{background:linear-gradient( 90deg,var(--color-surface-secondary) 25%,var(--color-surface-elevated) 50%,var(--color-surface-secondary) 75% );background-size:200% 100%;animation:skeleton-loading 1.5s infinite}@keyframes skeleton-loading{0%{background-position:200% 0}100%{background-position:-200% 0}}.form-loading{position:relative;pointer-events:none}.form-loading::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(var(--color-surface-primary-rgb),.8);display:flex;align-items:center;justify-content:center;border-radius:inherit;z-index:10}.form-loading::before{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:1.5rem;height:1.5rem;border:2px solid var(--color-border-subtle);border-top:2px solid var(--color-interactive-primary);border-radius:50%;animation:spinner-spin 1s linear infinite;z-index:11}.color-scheme-transition{transition:background-color var(--animation-duration-normal)var(--animation-timing-ease-in-out),color var(--animation-duration-normal)var(--animation-timing-ease-in-out),border-color var(--animation-duration-normal)var(--animation-timing-ease-in-out),box-shadow var(--animation-duration-normal)var(--animation-timing-ease-in-out)}.color-scheme-transition-fast{transition:background-color var(--animation-duration-fast)var(--animation-timing-ease-in-out),color var(--animation-duration-fast)var(--animation-timing-ease-in-out),border-color var(--animation-duration-fast)var(--animation-timing-ease-in-out),box-shadow var(--animation-duration-fast)var(--animation-timing-ease-in-out)}.color-scheme-transition-slow{transition:background-color var(--animation-duration-slow)var(--animation-timing-ease-in-out),color var(--animation-duration-slow)var(--animation-timing-ease-in-out),border-color var(--animation-duration-slow)var(--animation-timing-ease-in-out),box-shadow var(--animation-duration-slow)var(--animation-timing-ease-in-out)}.theme-toggle-animation{animation:theme-toggle-pulse .3s var(--animation-timing-ease-out)}@keyframes theme-toggle-pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}100%{transform:scale(1)}}.state-change-fade{animation:state-fade .3s var(--animation-timing-ease-in-out)}@keyframes state-fade{0%{opacity:.7}50%{opacity:1}100%{opacity:1}}.state-change-highlight{animation:state-highlight .6s var(--animation-timing-ease-out)}@keyframes state-highlight{0%{background-color:var(--color-interactive-primary);transform:scale(1)}50%{background-color:var(--color-interactive-hover);transform:scale(1.02)}100%{background-color:var(--color-surface-elevated);transform:scale(1)}}.state-change-slide{animation:state-slide .4s var(--animation-timing-ease-out)}@keyframes state-slide{0%{transform:translateX(-10px);opacity:.8}100%{transform:translateX(0);opacity:1}}.success-animation{animation:success-bounce .6s var(--animation-timing-ease-out)}@keyframes success-bounce{0%{transform:scale(1)}25%{transform:scale(1.05)}50%{transform:scale(.98)}75%{transform:scale(1.02)}100%{transform:scale(1)}}.error-animation{animation:error-shake .5s var(--animation-timing-ease-out)}@keyframes error-shake{0%,100%{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-4px)}20%,40%,60%,80%{transform:translateX(4px)}}.stagger-children>*{animation-delay:calc(var(--stagger-delay,.1s) * var(--stagger-index,0))}.transition-all{transition:all var(--animation-duration-fast)var(--animation-timing-ease)}.transition-colors{transition:color var(--animation-duration-fast)var(--animation-timing-ease),background-color var(--animation-duration-fast)var(--animation-timing-ease),border-color var(--animation-duration-fast)var(--animation-timing-ease)}.transition-transform{transition:transform var(--animation-duration-fast)var(--animation-timing-ease)}.transition-opacity{transition:opacity var(--animation-duration-fast)var(--animation-timing-ease)}.transition-shadow{transition:box-shadow var(--animation-duration-fast)var(--animation-timing-ease)}.duration-fast{animation-duration:var(--animation-duration-fast);transition-duration:var(--animation-duration-fast)}.duration-normal{animation-duration:var(--animation-duration-normal);transition-duration:var(--animation-duration-normal)}.duration-slow{animation-duration:var(--animation-duration-slow);transition-duration:var(--animation-duration-slow)}.ease-linear{animation-timing-function:linear;transition-timing-function:linear}.ease-in{animation-timing-function:var(--animation-timing-ease-in);transition-timing-function:var(--animation-timing-ease-in)}.ease-out{animation-timing-function:var(--animation-timing-ease-out);transition-timing-function:var(--animation-timing-ease-out)}.ease-in-out{animation-timing-function:var(--animation-timing-ease-in-out);transition-timing-function:var(--animation-timing-ease-in-out)}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}.animate-fade-in,.animate-fade-out,.animate-slide-up,.animate-slide-down,.animate-slide-left,.animate-slide-right,.animate-scale-up,.animate-scale-down,.animate-bounce,.animate-pulse,.animate-spin{animation:none !important}.hover-lift:hover,.hover-lift-more:hover{transform:none !important;box-shadow:0 4px 12px rgba(0,0,0,.15) !important}.hover-scale:hover,.hover-scale-sm:hover,.hover-scale-lg:hover{transform:none !important}.hover-rotate:hover,.hover-rotate-reverse:hover{transform:none !important}.hover-glow:hover{box-shadow:none !important}.hover-brighten:hover,.hover-saturate:hover{filter:none !important}.hover-button:hover{transform:none !important}.hover-button::before{display:none !important}.hover-icon-bounce:hover,.hover-icon-spin:hover,.hover-icon-wiggle:hover{animation:none !important;transform:none !important}.loading-shimmer,.loading-skeleton{animation:none !important;background:var(--color-surface-secondary) !important}.loading-spinner,.loading-spinner-sm,.loading-spinner-lg{animation:none !important}.loading-pulse{animation:none !important;opacity:.7 !important}.state-change-fade,.state-change-highlight,.state-change-slide,.success-animation,.error-animation,.theme-toggle-animation{animation:none !important}.hover-underline::after,.hover-underline-center::after{transition:none !important;width:100% !important;left:0 !important}.focus-ring:focus-visible{transition:none !important;box-shadow:0 0 0 3px rgba(var(--color-border-focus-rgb),.3) !important}.color-scheme-transition,.color-scheme-transition-fast,.color-scheme-transition-slow{transition:none !important}}.gpu-accelerated{transform:translateZ(0);backface-visibility:hidden;perspective:1000px}.will-change-transform{will-change:transform}.will-change-opacity{will-change:opacity}.will-change-scroll{will-change:scroll-position}.will-change-contents{will-change:contents}.will-change-auto{will-change:auto}.composite-layer{transform:translateZ(0);will-change:transform}.composite-layer-opacity{transform:translateZ(0);will-change:opacity}.hover-optimized{transform:translateZ(0);transition:transform var(--animation-duration-fast)var(--animation-timing-ease-out);will-change:transform}.hover-optimized:hover{transform:translateZ(0)translateY(-2px)}.smooth-scroll{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){.smooth-scroll{scroll-behavior:auto}}.animate-60fps{animation-fill-mode:both;animation-timing-function:cubic-bezier(.4,0,.2,1);transform:translateZ(0);will-change:transform,opacity}.animate-hardware-accelerated{transform:translate3d(0,0,0);backface-visibility:hidden;perspective:1000px}.animate-on-scroll{opacity:0;transform:translateY(20px);transition:opacity .6s var(--animation-timing-ease-out),transform .6s var(--animation-timing-ease-out)}.animate-on-scroll.in-view{opacity:1;transform:translateY(0)}@media(prefers-reduced-motion:reduce){.animate-on-scroll{opacity:1 !important;transform:none !important;transition:none !important}}@container(min-width:768px){.container-responsive-animation {
    animation-duration: var(--animation-duration-normal);
  }
}@container(max-width:767px){.container-responsive-animation {
    animation-duration: var(--animation-duration-fast);
  }
}@media(min-resolution:120dpi){.high-refresh-animation{animation-duration:calc(var(--animation-duration-normal) * .8)}}@media(prefers-reduced-data:reduce){.data-heavy-animation{animation:none !important}.loading-shimmer,.loading-skeleton{animation:none !important;background:var(--color-surface-secondary) !important}}.focus-trap-active .animate-fade-in,.focus-trap-active .animate-slide-up{animation-duration:var(--animation-duration-fast)}.debug-animations *{animation-duration:2s !important;transition-duration:2s !important}.stagger-optimized>*{animation-delay:calc(var(--stagger-delay,.05s) * var(--stagger-index,0));animation-fill-mode:both;transform:translateZ(0)}@media(prefers-reduced-motion:reduce){.reduced-motion-alternative{opacity:.8;transition:opacity var(--animation-duration-fast)ease}.reduced-motion-alternative:hover,.reduced-motion-alternative:focus{opacity:1}}@supports not (animation:none){.fallback-no-animation{opacity:1 !important;transform:none !important}}.gpu-accelerated{transform:translateZ(0);backface-visibility:hidden;perspective:1000px}.container{width:100%;max-width:var(--content-max-width);margin:0 auto;padding-left:var(--space-lg);padding-right:var(--space-lg)}.container-sm{max-width:40rem}.container-md{max-width:48rem}.container-lg{max-width:64rem}.container-xl{max-width:80rem}.container-2xl{max-width:96rem}.container-full{max-width:none}@media(min-width:640px){.container{padding-left:var(--space-xl);padding-right:var(--space-xl)}}@media(min-width:768px){.container{padding-left:var(--space-2xl);padding-right:var(--space-2xl)}}@media(min-width:1024px){.container{padding-left:var(--space-2xl);padding-right:var(--space-2xl)}}@media(min-width:1280px){.container{padding-left:var(--space-3xl);padding-right:var(--space-3xl)}}.container-fluid{width:100%;max-width:none;margin:0 auto;padding:0}.container-padded{width:100%;max-width:var(--content-max-width);margin:0 auto;padding:var(--space-lg)}@media(min-width:640px){.container-padded{padding:var(--space-xl)}}@media(min-width:768px){.container-padded{padding:var(--space-2xl)}}@media(min-width:1024px){.container-padded{padding:var(--space-2xl)var(--space-3xl)}}.section{padding-top:var(--section-spacing);padding-bottom:var(--section-spacing)}.section-sm{padding-top:calc(var(--section-spacing) * .5);padding-bottom:calc(var(--section-spacing) * .5)}.section-md{padding-top:calc(var(--section-spacing) * .75);padding-bottom:calc(var(--section-spacing) * .75)}.section-lg{padding-top:calc(var(--section-spacing) * 1.5);padding-bottom:calc(var(--section-spacing) * 1.5)}.section-xl{padding-top:calc(var(--section-spacing) * 2);padding-bottom:calc(var(--section-spacing) * 2)}.section-hero{padding-top:calc(var(--section-spacing) * 1.5);padding-bottom:calc(var(--section-spacing) * 1.5)}.section-content{padding-top:var(--section-spacing);padding-bottom:var(--section-spacing)}.section-compact{padding-top:calc(var(--section-spacing) * .5);padding-bottom:calc(var(--section-spacing) * .5)}@media(max-width:767px){.section{padding-top:calc(var(--section-spacing) * .6);padding-bottom:calc(var(--section-spacing) * .6)}.section-hero{padding-top:calc(var(--section-spacing) * .8);padding-bottom:calc(var(--section-spacing) * .8)}.section-lg{padding-top:var(--section-spacing);padding-bottom:var(--section-spacing)}.section-xl{padding-top:calc(var(--section-spacing) * 1.2);padding-bottom:calc(var(--section-spacing) * 1.2)}}@media(min-width:1024px){.section-hero{padding-top:calc(var(--section-spacing) * 2);padding-bottom:calc(var(--section-spacing) * 2)}}.section-container{padding-top:var(--section-spacing);padding-bottom:var(--section-spacing)}.section-container>.container{width:100%;max-width:var(--content-max-width);margin:0 auto;padding-left:var(--space-lg);padding-right:var(--space-lg)}@media(min-width:640px){.section-container>.container{padding-left:var(--space-xl);padding-right:var(--space-xl)}}@media(min-width:768px){.section-container>.container{padding-left:var(--space-2xl);padding-right:var(--space-2xl)}}.grid{display:grid;gap:var(--space-lg)}.grid-cols-1{grid-template-columns:repeat(1,1fr)}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.grid-cols-6{grid-template-columns:repeat(6,1fr)}.grid-cols-12{grid-template-columns:repeat(12,1fr)}@media(min-width:640px){.sm\:grid-cols-1{grid-template-columns:repeat(1,1fr)}.sm\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.sm\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.sm\:grid-cols-4{grid-template-columns:repeat(4,1fr)}}@media(min-width:768px){.md\:grid-cols-1{grid-template-columns:repeat(1,1fr)}.md\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.md\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.md\:grid-cols-4{grid-template-columns:repeat(4,1fr)}}@media(min-width:1024px){.lg\:grid-cols-1{grid-template-columns:repeat(1,1fr)}.lg\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.lg\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.lg\:grid-cols-4{grid-template-columns:repeat(4,1fr)}}.grid-auto-fit{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr))}.grid-auto-fit-sm{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr))}.grid-auto-fit-lg{grid-template-columns:repeat(auto-fit,minmax(20rem,1fr))}.gap-xs{gap:var(--space-xs)}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.gap-xl{gap:var(--space-xl)}.gap-2xl{gap:var(--space-2xl)}.gap-3xl{gap:var(--space-3xl)}.flex{display:flex}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.flex-1{flex:1}.flex-auto{flex:auto}.flex-none{flex:none}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-stretch{align-self:stretch}.space-y-xs>*+*{margin-top:var(--space-xs)}.space-y-sm>*+*{margin-top:var(--space-sm)}.space-y-md>*+*{margin-top:var(--space-md)}.space-y-lg>*+*{margin-top:var(--space-lg)}.space-y-xl>*+*{margin-top:var(--space-xl)}.space-y-2xl>*+*{margin-top:var(--space-2xl)}.space-x-xs>*+*{margin-left:var(--space-xs)}.space-x-sm>*+*{margin-left:var(--space-sm)}.space-x-md>*+*{margin-left:var(--space-md)}.space-x-lg>*+*{margin-left:var(--space-lg)}.space-x-xl>*+*{margin-left:var(--space-xl)}.space-x-2xl>*+*{margin-left:var(--space-2xl)}.p-0{padding:0}.p-xs{padding:var(--space-xs)}.p-sm{padding:var(--space-sm)}.p-md{padding:var(--space-md)}.p-lg{padding:var(--space-lg)}.p-xl{padding:var(--space-xl)}.p-2xl{padding:var(--space-2xl)}.p-3xl{padding:var(--space-3xl)}.px-0{padding-left:0;padding-right:0}.px-xs{padding-left:var(--space-xs);padding-right:var(--space-xs)}.px-sm{padding-left:var(--space-sm);padding-right:var(--space-sm)}.px-md{padding-left:var(--space-md);padding-right:var(--space-md)}.px-lg{padding-left:var(--space-lg);padding-right:var(--space-lg)}.px-xl{padding-left:var(--space-xl);padding-right:var(--space-xl)}.px-2xl{padding-left:var(--space-2xl);padding-right:var(--space-2xl)}.py-0{padding-top:0;padding-bottom:0}.py-xs{padding-top:var(--space-xs);padding-bottom:var(--space-xs)}.py-sm{padding-top:var(--space-sm);padding-bottom:var(--space-sm)}.py-md{padding-top:var(--space-md);padding-bottom:var(--space-md)}.py-lg{padding-top:var(--space-lg);padding-bottom:var(--space-lg)}.py-xl{padding-top:var(--space-xl);padding-bottom:var(--space-xl)}.py-2xl{padding-top:var(--space-2xl);padding-bottom:var(--space-2xl)}.m-0{margin:0}.m-auto{margin:auto}.m-xs{margin:var(--space-xs)}.m-sm{margin:var(--space-sm)}.m-md{margin:var(--space-md)}.m-lg{margin:var(--space-lg)}.m-xl{margin:var(--space-xl)}.m-2xl{margin:var(--space-2xl)}.mx-auto{margin-left:auto;margin-right:auto}.mx-0{margin-left:0;margin-right:0}.mx-xs{margin-left:var(--space-xs);margin-right:var(--space-xs)}.mx-sm{margin-left:var(--space-sm);margin-right:var(--space-sm)}.mx-md{margin-left:var(--space-md);margin-right:var(--space-md)}.mx-lg{margin-left:var(--space-lg);margin-right:var(--space-lg)}.mx-xl{margin-left:var(--space-xl);margin-right:var(--space-xl)}.my-0{margin-top:0;margin-bottom:0}.my-xs{margin-top:var(--space-xs);margin-bottom:var(--space-xs)}.my-sm{margin-top:var(--space-sm);margin-bottom:var(--space-sm)}.my-md{margin-top:var(--space-md);margin-bottom:var(--space-md)}.my-lg{margin-top:var(--space-lg);margin-bottom:var(--space-lg)}.my-xl{margin-top:var(--space-xl);margin-bottom:var(--space-xl)}.w-full{width:100%}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.h-full{height:100%}.h-auto{height:auto}.h-fit{height:-moz-fit-content;height:fit-content}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.min-h-full{min-height:100%}.max-w-none{max-width:none}.max-w-xs{max-width:20rem}.max-w-sm{max-width:24rem}.max-w-md{max-width:28rem}.max-w-lg{max-width:32rem}.max-w-xl{max-width:36rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-auto{overflow:auto}.overflow-scroll{overflow:scroll}.overflow-x-hidden{overflow-x:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-hidden{overflow-y:hidden}.overflow-y-auto{overflow-y:auto}.block{display:block}.inline{display:inline}.inline-block{display:inline-block}.hidden{display:none}.visible{visibility:visible}.invisible{visibility:hidden}@media(max-width:639px){.sm\:hidden{display:none}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:grid{display:grid}}@media(min-width:640px){.sm\:hidden{display:none}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:grid{display:grid}}@media(min-width:768px){.md\:hidden{display:none}.md\:block{display:block}.md\:flex{display:flex}.md\:grid{display:grid}}@media(min-width:1024px){.lg\:hidden{display:none}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:grid{display:grid}}.hero-section{position:relative;min-height:60vh;display:flex;align-items:center;justify-content:center;background:var(--color-surface-primary)}.hero-content{text-align:center;max-width:48rem;margin:0 auto}.hero-text{display:flex;flex-direction:column;gap:var(--space-xl);align-items:center}.hero-title{margin:0;font-size:var(--text-display-large);font-weight:800;line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);color:var(--color-text-primary);text-wrap:balance}.hero-subtitle{margin:0;font-size:var(--text-body-large);line-height:var(--line-height-relaxed);color:var(--color-text-secondary);max-width:42rem;text-wrap:pretty}.hero-actions{display:flex;flex-direction:column;gap:var(--space-md);align-items:center;width:100%}.hero-cta,.hero-cta-secondary{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-md)var(--space-2xl);border-radius:var(--border-radius-md);font-weight:600;text-decoration:none;transition:all var(--animation-duration-fast)ease;min-width:10rem;text-align:center}.hero-cta{background:var(--color-interactive-primary);color:#fff;border:2px solid var(--color-interactive-primary)}.hero-cta:hover{background:var(--color-interactive-hover);border-color:var(--color-interactive-hover);transform:translateY(-2px);box-shadow:0 4px 12px rgba(var(--color-interactive-primary),.3)}.hero-cta-secondary{background:0 0;color:var(--color-interactive-primary);border:2px solid var(--color-interactive-primary)}.hero-cta-secondary:hover{background:var(--color-interactive-primary);color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px rgba(var(--color-interactive-primary),.2)}@media(min-width:640px){.hero-section{min-height:70vh}.hero-actions{flex-direction:row;justify-content:center;gap:var(--space-lg)}.hero-cta,.hero-cta-secondary{min-width:12rem}}@media(min-width:768px){.hero-section{min-height:75vh}.hero-text{gap:var(--space-2xl)}}@media(min-width:1024px){.hero-section{min-height:80vh}}.hero-section-compact{min-height:50vh}.hero-section-full{min-height:100vh}.hero-section-centered{text-align:center}.hero-section-left{text-align:left}.hero-section-left .hero-content{max-width:none;text-align:left}.hero-section-left .hero-text{align-items:flex-start}.hero-section-left .hero-actions{justify-content:flex-start}.home-page{min-height:100vh}.section-header{text-align:center;margin-bottom:var(--space-3xl);max-width:48rem;margin-left:auto;margin-right:auto}.section-title{margin:0 0 var(--space-md);color:var(--color-text-primary)}.section-subtitle{margin:0;color:var(--color-text-secondary);text-wrap:pretty}.section-footer{margin-top:var(--space-3xl)}.featured-work-section{background:var(--color-surface-primary)}.featured-work-grid{margin-bottom:var(--space-2xl)}.project-card{height:100%;display:flex;flex-direction:column}.project-card-content{display:flex;flex-direction:column;gap:var(--space-md);height:100%}.project-title{margin:0;color:var(--color-text-primary)}.project-summary{flex-grow:1;margin:0}.project-meta{margin-top:auto}.project-technologies{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-bottom:var(--space-md)}.tech-tag{display:inline-block;padding:var(--space-xs)var(--space-sm);background:var(--color-surface-secondary);color:var(--color-text-secondary);border-radius:var(--border-radius-sm);font-size:var(--text-body-xs);font-weight:500;border:1px solid var(--color-border-subtle)}.project-link{align-self:flex-start;margin-top:var(--space-sm)}.skills-overview-section{background:var(--color-surface-secondary)}.skills-grid{margin-bottom:var(--space-2xl)}.skill-card{text-align:center;padding:var(--space-lg)}.skill-card-content{display:flex;flex-direction:column;gap:var(--space-md);align-items:center}.skill-title{margin:0;color:var(--color-text-primary);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider)}.skill-proficiency{width:100%;max-width:8rem}.proficiency-bar{width:100%;height:.5rem;background:var(--color-surface-primary);border-radius:var(--border-radius-sm);overflow:hidden;border:1px solid var(--color-border-subtle)}.proficiency-fill{height:100%;background:linear-gradient(90deg,var(--color-interactive-primary),var(--color-interactive-hover));border-radius:var(--border-radius-sm);transition:width .8s ease-out}.about-section{background:var(--color-surface-primary)}.about-content{align-items:center}.about-text{display:flex;flex-direction:column;gap:var(--space-xl)}.about-description{color:var(--color-text-secondary);line-height:var(--line-height-relaxed)}.about-actions{display:flex;flex-direction:column;gap:var(--space-md)}.about-visual{display:flex;justify-content:center;align-items:center}.about-placeholder{width:100%;max-width:20rem;aspect-ratio:1;background:var(--color-surface-secondary);border:2px dashed var(--color-border-subtle);border-radius:var(--border-radius-lg);display:flex;align-items:center;justify-content:center}.placeholder-content{text-align:center;color:var(--color-text-muted)}.contact-cta-section{background:var(--color-surface-secondary)}.contact-cta-content{text-align:center;max-width:48rem;margin:0 auto}.cta-title{margin:0 0 var(--space-md);color:var(--color-text-primary)}.cta-subtitle{margin:0 0 var(--space-xl);color:var(--color-text-secondary);text-wrap:pretty}.cta-actions{display:flex;justify-content:center}@media(min-width:640px){.about-actions{flex-direction:row;gap:var(--space-lg)}}@media(min-width:768px){.section-header{margin-bottom:var(--space-3xl)}.featured-work-grid,.skills-grid{margin-bottom:var(--space-3xl)}}@media(min-width:1024px){.about-text{padding-right:var(--space-xl)}}.home-page section:nth-child(odd){background:var(--color-surface-primary)}.home-page section:nth-child(even){background:var(--color-surface-secondary)}.hero-section{background:var(--color-surface-primary) !important}.featured-work-section{background:var(--color-surface-primary) !important}.skills-overview-section{background:var(--color-surface-secondary) !important}.about-section{background:var(--color-surface-primary) !important}.contact-cta-section{background:var(--color-surface-secondary) !important}.aspect-ratio-16-9{aspect-ratio:16/9}.aspect-ratio-4-3{aspect-ratio:4/3}.aspect-ratio-3-2{aspect-ratio:3/2}.aspect-ratio-1-1{aspect-ratio:1/1}.aspect-ratio-video{aspect-ratio:16/9}.aspect-ratio-square{aspect-ratio:1/1}img{max-width:100%;height:auto;display:block}.img-responsive{width:100%;height:auto;display:block}.img-cover{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.img-contain{-o-object-fit:contain;object-fit:contain;width:100%;height:100%}.skeleton{background:linear-gradient( 90deg,var(--color-surface-secondary) 25%,var(--color-surface-elevated) 50%,var(--color-surface-secondary) 75% );background-size:200% 100%;animation:skeleton-loading 1.5s infinite}@keyframes skeleton-loading{0%{background-position:-200% 0}100%{background-position:200% 0}}.skeleton-text{height:1rem;border-radius:var(--border-radius-sm);margin-bottom:var(--space-xs)}.skeleton-text-lg{height:1.5rem;border-radius:var(--border-radius-sm);margin-bottom:var(--space-sm)}.skeleton-avatar{width:3rem;height:3rem;border-radius:50%}.skeleton-card{height:12rem;border-radius:var(--border-radius-lg)}.prose{max-width:65ch;line-height:1.7}.prose p{margin-bottom:var(--space-lg)}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{margin-top:var(--space-2xl);margin-bottom:var(--space-lg);line-height:1.3}.prose h1:first-child,.prose h2:first-child,.prose h3:first-child,.prose h4:first-child,.prose h5:first-child,.prose h6:first-child{margin-top:0}.prose ul,.prose ol{margin-bottom:var(--space-lg);padding-left:var(--space-xl)}.prose li{margin-bottom:var(--space-xs)}.prose blockquote{margin:var(--space-xl)0;padding-left:var(--space-lg);border-left:4px solid var(--color-interactive-primary);font-style:italic;color:var(--color-text-secondary)}.prose code{background:var(--color-surface-secondary);padding:var(--space-xs)var(--space-sm);border-radius:var(--border-radius-sm);font-size:.875em;color:var(--color-text-primary)}.prose pre{background:var(--color-surface-secondary);padding:var(--space-lg);border-radius:var(--border-radius-md);overflow-x:auto;margin:var(--space-lg)0}.prose pre code{background:0 0;padding:0}.text-display-large{font-size:clamp(2.5rem,5vw,4rem);line-height:1.1;font-weight:700;letter-spacing:-.025em}.text-display-medium{font-size:clamp(2rem,4vw,3rem);line-height:1.2;font-weight:700;letter-spacing:-.025em}.text-heading-1{font-size:clamp(1.75rem,3vw,2.25rem);line-height:1.25;font-weight:700;letter-spacing:-.025em}.text-heading-2{font-size:clamp(1.5rem,2.5vw,1.875rem);line-height:1.3;font-weight:700}.text-heading-3{font-size:clamp(1.25rem,2vw,1.5rem);line-height:1.35;font-weight:600}.text-heading-4{font-size:clamp(1.125rem,1.5vw,1.25rem);line-height:1.4;font-weight:600}.text-heading-5{font-size:1.125rem;line-height:1.45;font-weight:600}.text-heading-6{font-size:1rem;line-height:1.5;font-weight:600}.text-body-large{font-size:1.125rem;line-height:1.6}.text-body-medium{font-size:1rem;line-height:1.5}.text-body-small{font-size:.875rem;line-height:1.4}.text-body-xs{font-size:.75rem;line-height:1.3}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-muted{color:var(--color-text-muted)}.text-accent{color:var(--color-text-accent)}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.line-height-tight{line-height:1.25}.line-height-normal{line-height:1.5}.line-height-relaxed{line-height:1.75}.letter-spacing-tight{letter-spacing:-.025em}.letter-spacing-normal{letter-spacing:0}.letter-spacing-wide{letter-spacing:.025em}.letter-spacing-wider{letter-spacing:.05em}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.focus-visible-ring{outline:2px solid transparent;outline-offset:2px}.focus-visible-ring:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.transition-theme{transition:background-color var(--animation-duration-normal)ease,color var(--animation-duration-normal)ease,border-color var(--animation-duration-normal)ease}.transition-fast{transition:all var(--animation-duration-fast)ease}.transition-normal{transition:all var(--animation-duration-normal)ease}.transition-slow{transition:all var(--animation-duration-slow)ease}.will-change-transform{will-change:transform}.will-change-opacity{will-change:opacity}.will-change-auto{will-change:auto}.gpu-accelerated{transform:translateZ(0);backface-visibility:hidden;perspective:1000px}.contain-layout{contain:layout}.contain-style{contain:style}.contain-paint{contain:paint}.contain-strict{contain:strict}.site-footer{background:var(--color-surface-secondary);border-top:1px solid var(--color-border-subtle);padding:var(--space-xl)0;margin-top:auto}.footer-container{max-width:var(--content-max-width);margin:0 auto;padding:0 var(--space-lg)}.footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-xl);align-items:start}.footer-section{display:flex;flex-direction:column;gap:var(--space-sm)}.footer-heading{font-size:.875rem;font-weight:600;color:var(--color-text-primary);margin:0 0 var(--space-sm);text-transform:uppercase;letter-spacing:.05em}.footer-menu{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}.footer-menu-item{margin:0}.footer-link{color:var(--color-text-secondary);text-decoration:none;font-size:.875rem;transition:color var(--animation-duration-fast)ease}.footer-link:hover{color:var(--color-interactive-primary)}.footer-info{font-size:.875rem;color:var(--color-text-secondary)}.footer-info p{margin:0 0 var(--space-xs)}.footer-info p:last-child{margin-bottom:0}.copyright{font-weight:500;color:var(--color-text-primary)}.site-info,.last-updated{font-size:.8rem;color:var(--color-text-muted)}.dev-mode{color:var(--color-interactive-primary);font-style:italic}.back-to-top{display:flex;justify-content:center;margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--color-border-subtle)}.back-to-top-button{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;background:var(--color-surface-primary);border:1px solid var(--color-border-subtle);border-radius:var(--border-radius-full);color:var(--color-text-secondary);cursor:pointer;transition:all var(--animation-duration-fast)ease}.back-to-top-button:hover{background:var(--color-interactive-primary);border-color:var(--color-interactive-primary);color:#fff;transform:translateY(-2px)}@media(max-width:768px){.footer-content{grid-template-columns:1fr;gap:var(--space-lg);text-align:center}.footer-section{align-items:center}.footer-menu{align-items:center}}@media(min-width:769px) and (max-width:1024px){.footer-content{grid-template-columns:repeat(2,1fr)}}@media(min-width:1025px){.footer-content{grid-template-columns:repeat(3,1fr)}}*,::before,::after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}::before,::after{--tw-content:''}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol,noto color emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,courier new,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}html{scroll-behavior:smooth}body{background-color:var(--bg-primary);color:var(--text-primary);transition:background-color .3s ease,color .3s ease}a{color:var(--link-color)}a:hover{color:var(--link-hover)}a{transition:color .2s ease}h1,h2,h3,h4,h5,h6{font-weight:700;color:var(--text-primary)}h1{font-size:2.25rem;line-height:2.5rem}@media(min-width:768px){h1{font-size:3rem;line-height:1}}h2{font-size:1.875rem;line-height:2.25rem}@media(min-width:768px){h2{font-size:2.25rem;line-height:2.5rem}}h3{font-size:1.5rem;line-height:2rem}@media(min-width:768px){h3{font-size:1.875rem;line-height:2.25rem}}h4{font-size:1.25rem;line-height:1.75rem}@media(min-width:768px){h4{font-size:1.5rem;line-height:2rem}}h5{font-size:1.125rem;line-height:1.75rem}@media(min-width:768px){h5{font-size:1.25rem;line-height:1.75rem}}h6{font-size:1rem;line-height:1.5rem}@media(min-width:768px){h6{font-size:1.125rem;line-height:1.75rem}}html{scroll-behavior:smooth;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,segoe ui,Roboto,helvetica neue,Arial,sans-serif}body{background:var(--color-surface-primary);color:var(--color-text-primary);transition:background-color var(--animation-duration-normal)ease,color var(--animation-duration-normal)ease;line-height:1.5;-webkit-text-size-adjust:100%}*{box-sizing:border-box}*:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.form-select,select{background:var(--color-surface-primary);color:var(--color-text-primary);border:2px solid var(--color-border-subtle);border-radius:var(--border-radius-md);padding:var(--space-md)var(--space-lg);transition:border-color var(--animation-duration-fast)ease}.form-select:focus,select:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px rgba(var(--color-border-focus-rgb),.1)}.form-select option,select option{background:var(--color-surface-primary) !important;color:var(--color-text-primary) !important}[x-cloak]{display:none !important}[x-cloak]{display:none !important}:root{--content-max-width:80rem;--nav-height:4rem;--section-spacing:5rem;--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--border-radius-sm:0.25rem;--border-radius-md:0.5rem;--border-radius-lg:0.75rem;--border-radius-xl:1rem;--border-radius-full:9999px;--card-border-radius:var(--border-radius-lg);--shadow-card:0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);--shadow-card-elevated:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);--shadow-modal:0 25px 50px -12px rgba(0, 0, 0, 0.25);--z-index-dropdown:10;--z-index-sticky:20;--z-index-fixed:30;--z-index-header:40;--z-index-modal:50;--animation-duration-fast:0.15s;--animation-duration-normal:0.3s;--animation-duration-slow:0.5s}.theme-light{--bg-primary:#ffffff;--bg-secondary:#f8fafc;--bg-tertiary:#f1f5f9;--text-primary:#0f172a;--text-secondary:#475569;--text-accent:#ea580c;--border-color:#e2e8f0;--border-focus:#ea580c;--link-color:#dc2626;--link-hover:#b91c1c;--card-bg:#ffffff;--card-shadow:rgba(0, 0, 0, 0.1);--overlay-bg:rgba(0, 0, 0, 0.5);--color-surface-primary:#ffffff;--color-surface-secondary:#f8fafc;--color-surface-elevated:#ffffff;--color-surface-tertiary:#f1f5f9;--color-text-primary:#0f172a;--color-text-secondary:#475569;--color-text-muted:#64748b;--color-text-accent:#ea580c;--color-interactive-primary:#b91c1c;--color-interactive-hover:#991b1b;--color-interactive-active:#7f1d1d;--color-interactive-primary-rgb:185, 28, 28;--color-interactive-hover-rgb:153, 27, 27;--color-border-subtle:#e2e8f0;--color-border-focus:#ea580c;--color-border-focus-rgb:234, 88, 12;--color-overlay-bg:rgba(0, 0, 0, 0.5);--color-surface-primary-rgb:255, 255, 255;--color-surface-secondary-rgb:248, 250, 252;--color-error:#dc2626;--color-error-rgb:220, 38, 38;--color-success:#16a34a;--color-success-rgb:22, 163, 74;--color-success-bg:#f0fdf4;--color-warning:#d97706;--color-warning-rgb:217, 119, 6;--color-highlight-bg:#fef3c7;--color-highlight-text:#92400e}.theme-dark{--bg-primary:#0f172a;--bg-secondary:#1e293b;--bg-tertiary:#334155;--text-primary:#f8fafc;--text-secondary:#cbd5e1;--text-accent:#fb923c;--border-color:#334155;--border-focus:#fb923c;--link-color:#f97316;--link-hover:#ea580c;--card-bg:#1e293b;--card-shadow:rgba(0, 0, 0, 0.3);--overlay-bg:rgba(0, 0, 0, 0.7);--color-surface-primary:#0f172a;--color-surface-secondary:#1e293b;--color-surface-elevated:#334155;--color-surface-tertiary:#475569;--color-text-primary:#f8fafc;--color-text-secondary:#cbd5e1;--color-text-muted:#94a3b8;--color-text-accent:#fb923c;--color-interactive-primary:#f97316;--color-interactive-hover:#ea580c;--color-interactive-active:#dc2626;--color-interactive-primary-rgb:249, 115, 22;--color-interactive-hover-rgb:234, 88, 12;--color-border-subtle:#334155;--color-border-focus:#fb923c;--color-border-focus-rgb:251, 146, 60;--color-overlay-bg:rgba(0, 0, 0, 0.7);--color-surface-primary-rgb:15, 23, 42;--color-surface-secondary-rgb:30, 41, 59;--color-error:#f87171;--color-error-rgb:248, 113, 113;--color-success:#4ade80;--color-success-rgb:74, 222, 128;--color-success-bg:#064e3b;--color-warning:#fbbf24;--color-warning-rgb:251, 191, 36;--color-highlight-bg:#451a03;--color-highlight-text:#fdba74}.theme-high-contrast{--bg-primary:#000000;--bg-secondary:#1a1a1a;--bg-tertiary:#2d2d2d;--text-primary:#ffffff;--text-secondary:#e0e0e0;--text-accent:#ffff00;--border-color:#ffffff;--border-focus:#ffff00;--link-color:#ffff00;--link-hover:#ffff99;--card-bg:#1a1a1a;--card-shadow:rgba(255, 255, 255, 0.1);--overlay-bg:rgba(0, 0, 0, 0.9);--color-surface-primary:#000000;--color-surface-secondary:#1a1a1a;--color-surface-elevated:#2d2d2d;--color-surface-tertiary:#404040;--color-text-primary:#ffffff;--color-text-secondary:#e0e0e0;--color-text-muted:#cccccc;--color-text-accent:#ffff00;--color-interactive-primary:#ffff00;--color-interactive-hover:#ffff99;--color-interactive-active:#ffff33;--color-interactive-primary-rgb:255, 255, 0;--color-interactive-hover-rgb:255, 255, 153;--color-border-subtle:#ffffff;--color-border-focus:#ffff00;--color-border-focus-rgb:255, 255, 0;--color-overlay-bg:rgba(0, 0, 0, 0.9);--color-surface-primary-rgb:0, 0, 0;--color-surface-secondary-rgb:26, 26, 26;--color-error:#ff6666;--color-error-rgb:255, 102, 102;--color-success:#66ff66;--color-success-rgb:102, 255, 102;--color-success-bg:#003300;--color-warning:#ffcc00;--color-warning-rgb:255, 204, 0;--color-highlight-bg:#ffff00;--color-highlight-text:#000000}.theme-high-contrast *{border-width:2px}.theme-high-contrast a{text-decoration:underline}.theme-high-contrast button,.theme-high-contrast .btn-primary,.theme-high-contrast .btn-secondary{border:2px solid var(--border-color)}*:focus-visible{outline:3px solid var(--color-border-focus);outline-offset:2px;border-radius:2px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--color-border-focus);outline-offset:2px;box-shadow:0 0 0 1px var(--color-surface-primary),0 0 0 4px rgba(var(--color-border-focus-rgb),.2)}.project-card:focus-visible,.skill-card:focus-visible,.card:focus-visible{outline:3px solid var(--color-border-focus);outline-offset:2px;transform:translateY(-2px);box-shadow:var(--shadow-card-elevated),0 0 0 1px var(--color-surface-primary),0 0 0 4px rgba(var(--color-border-focus-rgb),.2)}.skip-to-content{position:absolute;top:-100vh;left:50%;transform:translateX(-50%);z-index:100;background:var(--color-interactive-primary);color:#fff;padding:.75rem 1.5rem;border-radius:.5rem;text-decoration:none;font-weight:600;box-shadow:var(--shadow-modal);transition:top .3s ease}.skip-to-content:focus{top:1rem;outline:3px solid #fff;outline-offset:2px}.keyboard-nav *:focus{outline:3px solid var(--color-border-focus);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.modal-content:focus{outline:none}.btn-primary:focus-visible,.btn-secondary:focus-visible{outline:3px solid var(--color-border-focus);outline-offset:2px;box-shadow:0 0 0 1px var(--color-surface-primary),0 0 0 4px rgba(var(--color-border-focus-rgb),.2)}.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 1px var(--color-border-focus),0 0 0 4px rgba(var(--color-border-focus-rgb),.1)}.form-input.error:focus,.form-textarea.error:focus{border-color:var(--color-error);box-shadow:0 0 0 1px var(--color-error),0 0 0 4px rgba(var(--color-error-rgb),.1)}.nav-link:focus-visible,.mobile-nav-link:focus-visible{outline:3px solid var(--color-border-focus);outline-offset:2px;background:var(--color-surface-secondary)}.external-link:focus-visible{outline:3px solid var(--color-border-focus);outline-offset:2px;box-shadow:0 0 0 1px var(--color-surface-primary),0 0 0 4px rgba(var(--color-border-focus-rgb),.2)}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}}@media print{.skip-to-content,header nav,footer,.color-scheme-toggle{display:none}body{background:#fff;color:#000}}@supports not (display:grid){.grid{display:flex;flex-wrap:wrap}.grid>*{flex:1 1 300px;margin:.5rem}.grid-cols-1>*{flex-basis:100%}.grid-cols-2>*{flex-basis:calc(50% - 1rem)}.grid-cols-3>*{flex-basis:calc(33.333% - 1rem)}.grid-cols-4>*{flex-basis:calc(25% - 1rem)}@media(max-width:768px){.grid>*{flex-basis:100%}}}@supports not (color:var(--custom-property)){body{background-color:#fff;color:#0f172a}.card{background-color:#fff;border:1px solid #e2e8f0}.btn-primary{background-color:#dc2626;color:#fff}.btn-secondary{background-color:#f8fafc;color:#0f172a;border:1px solid #e2e8f0}@media(prefers-color-scheme:dark){body{background-color:#0f172a;color:#f8fafc}.card{background-color:#1e293b;border:1px solid #334155}}}@supports not (font-size:clamp(1rem,2vw,2rem)){.text-display-large{font-size:3rem}.text-display-medium{font-size:2.5rem}.text-heading-1{font-size:2rem}.text-heading-2{font-size:1.75rem}.text-heading-3{font-size:1.5rem}@media(max-width:768px){.text-display-large{font-size:2rem}.text-display-medium{font-size:1.75rem}.text-heading-1{font-size:1.5rem}.text-heading-2{font-size:1.25rem}.text-heading-3{font-size:1.125rem}}}@supports not (backdrop-filter:blur(4px)){.modal-overlay{background:rgba(0,0,0,.8)}}@supports not (aspect-ratio:16/9){.project-image{position:relative;width:100%;height:0;padding-bottom:56.25%;overflow:hidden}.project-image img,.project-image>*{position:absolute;top:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}}@supports not (scroll-behavior:smooth){html{scroll-behavior:auto}}@supports not selector(:focus-visible){*:focus{outline:3px solid var(--color-border-focus,#ea580c);outline-offset:2px}}.project-card,.skill-card,.card,.btn-primary,.btn-secondary,.modal-content{transform:translateZ(0);will-change:transform}.project-card:hover,.skill-card:hover,.card:hover{will-change:transform,box-shadow}.project-image,.skill-card,.modal-content{contain:layout style paint}@font-face{font-family:system ui;src:local('system-ui'),local('-apple-system'),local('BlinkMacSystemFont');font-display:swap}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}.project-card:hover,.skill-card:hover,.card:hover{transform:none !important}}@supports(-webkit-appearance:none){button,.btn-primary,.btn-secondary{-webkit-appearance:none;-webkit-border-radius:0}input,textarea,select{-webkit-appearance:none;-webkit-border-radius:0}.modal-content,.mobile-navigation{-webkit-overflow-scrolling:touch}}@-moz-document url-prefix(){button::-moz-focus-inner{border:0;padding:0}input[type=number]{-moz-appearance:textfield}}@supports(-ms-ime-align:auto){.grid{display:-ms-grid}.hero-actions,.project-links,.skill-proficiency{display:-ms-flexbox}}@supports(-webkit-background-clip:text){.project-card,.skill-card{backface-visibility:hidden}}@media print{.skip-to-content,.mobile-menu-toggle,.color-scheme-toggle,.modal-overlay,.back-to-top,button:not(.print-visible){display:none !important}*{background:#fff !important;color:#000 !important;box-shadow:none !important}.container{max-width:none !important;padding:0 !important}.section-content{page-break-inside:avoid}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}@media(min-resolution:192dpi){.project-image img,.profile-image{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}}@media(prefers-reduced-data:reduce){.project-image img,.profile-image{loading:lazy}.project-card:hover,.skill-card:hover{transform:none}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}}@media(prefers-contrast:high){:root{--color-border-subtle:var(--color-text-primary);--shadow-card:0 0 0 2px var(--color-border-subtle)}}@media print{.skip-to-content,header nav,footer,.color-scheme-toggle{display:none}body{background:#fff !important;color:#000 !important}}