:root{--color-primary: #2c3e50;--color-secondary: #3498db;--color-accent: #e74c3c;--color-text: #2c3e50;--color-text-light: #5a6c7d;--color-background: #ffffff;--color-background-alt: #f8f9fa;--color-border: #dee2e6;--color-border-light: #e9ecef;--color-link: #2874a6;--color-link-hover: #1b4f72;--color-focus: #d68910;--font-family-base: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;--font-family-mono: 'SF Mono', Monaco, Inconsolata, 'Roboto Mono', 'Droid Sans Mono', 'Liberation Mono', Menlo, Courier, monospace;--font-size-xs: 0.875rem;--font-size-sm: 1rem;--font-size-base: 1.125rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-size-2xl: 1.75rem;--font-size-3xl: 2rem;--font-size-4xl: 2.5rem;--line-height-tight: 1.35;--line-height-normal: 1.6;--line-height-relaxed: 1.75;--spacing-xs: 0.25rem;--spacing-sm: 0.5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--border-radius: 0.375rem;--border-radius-lg: 0.5rem;--box-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);--box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);--box-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);--transition-base: all 0.2s ease-in-out;--transition-colors: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out}*,*::before,*::after{box-sizing:border-box}html{font-size:100%;font-family:var(--font-family-base);line-height:var(--line-height-normal);-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{margin:0;padding:0;font-size:var(--font-size-base);color:var(--color-text);background-color:var(--color-background);line-height:var(--line-height-normal)}h1,h2,h3,h4,h5,h6{margin:0 0 var(--spacing-md);font-weight:600;line-height:var(--line-height-tight);color:var(--color-text)}h1{font-size:var(--font-size-3xl)}@media (min-width: 768px){h1{font-size:var(--font-size-4xl)}}h2{font-size:var(--font-size-2xl)}@media (min-width: 768px){h2{font-size:var(--font-size-3xl)}}h3{font-size:var(--font-size-xl)}@media (min-width: 768px){h3{font-size:var(--font-size-2xl)}}h4{font-size:var(--font-size-lg)}@media (min-width: 768px){h4{font-size:var(--font-size-xl)}}h5,h6{font-size:var(--font-size-base)}@media (min-width: 768px){h5,h6{font-size:var(--font-size-lg)}}p{margin:0 0 var(--spacing-md);line-height:var(--line-height-relaxed)}a{color:var(--color-link);text-decoration:underline;text-decoration-thickness:0.125em;text-underline-offset:0.125em;transition:var(--transition-colors)}a:hover,a:focus{color:var(--color-link-hover);text-decoration-thickness:0.1875em}a:focus{outline:2px solid var(--color-focus);outline-offset:2px;border-radius:var(--border-radius)}ul,ol{margin:0 0 var(--spacing-md);padding-left:var(--spacing-lg)}li{margin-bottom:var(--spacing-xs)}img{max-width:100%;height:auto;border-radius:var(--border-radius)}table{width:100%;border-collapse:collapse;margin-bottom:var(--spacing-md)}th,td{padding:var(--spacing-sm) var(--spacing-md);text-align:left;border-bottom:1px solid var(--color-border)}th{font-weight:600;background-color:var(--color-background-alt)}input,textarea,select{font-family:inherit;font-size:var(--font-size-base);line-height:var(--line-height-normal);border:1px solid var(--color-border);border-radius:var(--border-radius);padding:var(--spacing-sm) var(--spacing-md);transition:var(--transition-colors)}input:focus,textarea:focus,select:focus{outline:2px solid var(--color-focus);outline-offset:2px;border-color:var(--color-secondary)}.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}.sr-only-focusable:focus{position:static;width:auto;height:auto;padding:var(--spacing-sm) var(--spacing-md);margin:0;overflow:visible;clip:auto;white-space:normal;background-color:var(--color-focus);color:var(--color-text);text-decoration:none;border-radius:var(--border-radius)}.container{width:100%;max-width:1200px;margin:0 auto;padding-left:var(--spacing-md);padding-right:var(--spacing-md)}@media (min-width: 640px){.container{padding-left:var(--spacing-lg);padding-right:var(--spacing-lg)}}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-family-mono)}.hidden{display:none !important}@media (max-width: 767px){.hidden-mobile{display:none !important}}@media (min-width: 768px){.hidden-desktop{display:none !important}}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-base);font-weight:500;line-height:var(--line-height-tight);text-decoration:none;border:2px solid transparent;border-radius:var(--border-radius);cursor:pointer;transition:var(--transition-colors);min-height:44px;min-width:44px}.btn:focus{outline:2px solid var(--color-focus);outline-offset:2px}.btn.btn-primary{color:white;background-color:#1b4f72;border-color:#1b4f72}.btn.btn-primary:hover,.btn.btn-primary:focus{background-color:#154360;border-color:#154360;color:white;text-decoration:none}.btn.btn-outline{color:var(--color-secondary);background-color:transparent;border-color:var(--color-secondary)}.btn.btn-outline:hover,.btn.btn-outline:focus{color:white;background-color:var(--color-secondary);text-decoration:none}.btn.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm)}.btn.btn-lg{padding:var(--spacing-md) var(--spacing-xl);font-size:var(--font-size-lg)}.card{background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);box-shadow:var(--box-shadow);overflow:hidden;transition:var(--transition-base)}.card:hover{box-shadow:var(--box-shadow-lg);transform:translateY(-2px)}.card .card-header{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border-light);background-color:var(--color-background-alt)}.card .card-body{padding:var(--spacing-lg)}.card .card-footer{padding:var(--spacing-lg);border-top:1px solid var(--color-border-light);background-color:var(--color-background-alt)}.nav{display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0}.nav .nav-item{margin:0}.nav .nav-link{display:block;padding:var(--spacing-sm) var(--spacing-md);color:var(--color-text);text-decoration:none;border-radius:var(--border-radius);transition:var(--transition-colors);min-height:44px;display:flex;align-items:center}.nav .nav-link:hover,.nav .nav-link:focus{color:#1b4f72;background-color:var(--color-background-alt);text-decoration:none}.nav .nav-link.nav-link-active{color:#1b4f72;font-weight:600}.menu-toggle{display:block;background:none;border:2px solid var(--color-border);border-radius:var(--border-radius);padding:var(--spacing-sm);cursor:pointer;min-width:44px;min-height:44px}@media (min-width: 768px){.menu-toggle{display:none}}.menu-toggle:focus{outline:2px solid var(--color-focus);outline-offset:2px}.menu-toggle .menu-icon{display:block;width:20px;height:2px;background-color:var(--color-text);position:relative;transition:var(--transition-base)}.menu-toggle .menu-icon::before,.menu-toggle .menu-icon::after{content:'';position:absolute;width:100%;height:100%;background-color:var(--color-text);transition:var(--transition-base)}.menu-toggle .menu-icon::before{top:-6px}.menu-toggle .menu-icon::after{bottom:-6px}.menu-toggle.menu-open .menu-icon{background-color:transparent}.menu-toggle.menu-open .menu-icon::before{transform:rotate(45deg);top:0}.menu-toggle.menu-open .menu-icon::after{transform:rotate(-45deg);bottom:0}.grid{display:grid;gap:var(--spacing-lg)}.grid.grid-cols-1{grid-template-columns:1fr}.grid.grid-cols-2{grid-template-columns:1fr}@media (min-width: 640px){.grid.grid-cols-2{grid-template-columns:repeat(2, 1fr)}}.grid.grid-cols-3{grid-template-columns:1fr}@media (min-width: 640px){.grid.grid-cols-3{grid-template-columns:repeat(2, 1fr)}}@media (min-width: 1024px){.grid.grid-cols-3{grid-template-columns:repeat(3, 1fr)}}.grid.grid-cols-4{grid-template-columns:1fr}@media (min-width: 640px){.grid.grid-cols-4{grid-template-columns:repeat(2, 1fr)}}@media (min-width: 1024px){.grid.grid-cols-4{grid-template-columns:repeat(4, 1fr)}}.tag{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm);font-weight:500;background-color:var(--color-background-alt);color:var(--color-text);border-radius:var(--border-radius);margin:var(--spacing-xs) var(--spacing-xs) var(--spacing-xs) 0}.tag.tag-primary{background-color:var(--color-secondary);color:white}.tag.tag-accent{background-color:var(--color-accent);color:white}.alert{padding:var(--spacing-md);border-radius:var(--border-radius);margin-bottom:var(--spacing-md);border-left:4px solid transparent}.alert.alert-info{background-color:rgba(52,152,219,0.1);border-left-color:var(--color-secondary);color:var(--color-text)}.alert.alert-success{background-color:rgba(39,174,96,0.1);border-left-color:#27ae60;color:var(--color-text)}.alert.alert-warning{background-color:rgba(243,156,18,0.1);border-left-color:#f39c12;color:var(--color-text)}.alert.alert-error{background-color:rgba(231,76,60,0.1);border-left-color:var(--color-accent);color:var(--color-text)}.spinner{display:inline-block;width:20px;height:20px;border:2px solid var(--color-border);border-radius:50%;border-top-color:var(--color-secondary);animation:spin 1s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}.img-responsive{max-width:100%;height:auto;border-radius:var(--border-radius)}.img-circle{border-radius:50%}.profile-image{width:120px;height:120px;border-radius:50%;object-fit:cover;border:3px solid var(--color-border)}@media (min-width: 768px){.profile-image{width:150px;height:150px}}.skip-link{position:absolute;top:-40px;left:6px;background:var(--color-focus);color:var(--color-text);padding:var(--spacing-sm) var(--spacing-md);text-decoration:none;border-radius:var(--border-radius);z-index:1000}.skip-link:focus{top:6px}.container{width:100%;margin:0 auto;padding-left:var(--spacing-md);padding-right:var(--spacing-md)}@media (min-width: 640px){.container{padding-left:var(--spacing-lg);padding-right:var(--spacing-lg)}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1200px}}.text-responsive{font-size:var(--font-size-sm)}@media (min-width: 768px){.text-responsive{font-size:var(--font-size-base)}}@media (min-width: 1024px){.text-responsive{font-size:var(--font-size-lg)}}.spacing-responsive{margin-bottom:var(--spacing-md)}@media (min-width: 768px){.spacing-responsive{margin-bottom:var(--spacing-lg)}}@media (min-width: 1024px){.spacing-responsive{margin-bottom:var(--spacing-xl)}}@media (max-width: 767px){.mobile-nav{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--color-background);z-index:1000;padding:var(--spacing-lg);transform:translateX(-100%);transition:transform 0.3s ease-in-out}.mobile-nav.mobile-nav-open{transform:translateX(0)}.mobile-nav .nav{flex-direction:column;height:100%;justify-content:center;align-items:center}.mobile-nav .nav-link{font-size:var(--font-size-xl);padding:var(--spacing-lg);text-align:center;min-height:60px}}@media (min-width: 768px){.mobile-nav{position:static;transform:none;background-color:transparent;padding:0}.mobile-nav .nav{flex-direction:row;height:auto;justify-content:flex-start;align-items:center}.mobile-nav .nav-link{font-size:var(--font-size-base);padding:var(--spacing-sm) var(--spacing-md);min-height:44px}}.touch-target{min-width:44px;min-height:44px;padding:var(--spacing-sm)}@media (min-width: 768px){.touch-target{min-width:40px;min-height:40px}}.responsive-image{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover}@media (min-width: 768px){.responsive-image{aspect-ratio:auto;object-fit:contain}}.flex-mobile-column{display:flex;flex-direction:column}@media (min-width: 768px){.flex-mobile-column{flex-direction:row;align-items:center}}.flex-mobile-stack{display:flex;flex-direction:column;gap:var(--spacing-md)}@media (min-width: 768px){.flex-mobile-stack{flex-direction:row;gap:var(--spacing-lg)}}.grid-responsive-2{display:grid;grid-template-columns:1fr;gap:var(--spacing-md)}@media (min-width: 768px){.grid-responsive-2{grid-template-columns:repeat(2, 1fr);gap:var(--spacing-lg)}}.grid-responsive-3{display:grid;grid-template-columns:1fr;gap:var(--spacing-md)}@media (min-width: 640px){.grid-responsive-3{grid-template-columns:repeat(2, 1fr)}}@media (min-width: 1024px){.grid-responsive-3{grid-template-columns:repeat(3, 1fr);gap:var(--spacing-lg)}}.grid-responsive-auto{display:grid;grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));gap:var(--spacing-md)}@media (min-width: 768px){.grid-responsive-auto{gap:var(--spacing-lg)}}.text-center-mobile{text-align:center}@media (min-width: 768px){.text-center-mobile{text-align:left}}.text-left-mobile{text-align:left}@media (min-width: 768px){.text-left-mobile{text-align:center}}.show-mobile-only{display:block}@media (min-width: 768px){.show-mobile-only{display:none}}.hide-mobile{display:none}@media (min-width: 768px){.hide-mobile{display:block}}.show-tablet-up{display:none}@media (min-width: 768px){.show-tablet-up{display:block}}.show-desktop-up{display:none}@media (min-width: 1024px){.show-desktop-up{display:block}}.form-responsive .form-group{display:flex;flex-direction:column;margin-bottom:var(--spacing-md)}@media (min-width: 768px){.form-responsive .form-group{flex-direction:row;align-items:center}.form-responsive .form-group label{flex:0 0 200px;margin-right:var(--spacing-md);margin-bottom:0}.form-responsive .form-group input,.form-responsive .form-group textarea,.form-responsive .form-group select{flex:1}}.form-responsive .form-actions{display:flex;flex-direction:column;gap:var(--spacing-sm)}@media (min-width: 768px){.form-responsive .form-actions{flex-direction:row;justify-content:flex-end}}.hero-responsive{padding:var(--spacing-xl) 0;text-align:center}@media (min-width: 768px){.hero-responsive{padding:var(--spacing-3xl) 0}.hero-responsive .hero-content{display:flex;align-items:center;text-align:left;gap:var(--spacing-xl)}.hero-responsive .hero-text{flex:1}.hero-responsive .hero-image{flex:0 0 300px}}@media (min-width: 1024px){.hero-responsive .hero-image{flex:0 0 400px}}@media (max-width: 767px){*{animation-duration:0.1s !important;animation-delay:0s !important;transition-duration:0.1s !important}.card,.btn{box-shadow:var(--box-shadow-sm)}}.touch-target-enhanced{min-width:44px !important;min-height:44px !important;display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-sm) !important}.mobile-device{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-overflow-scrolling:touch}.mobile-device input,.mobile-device select,.mobile-device textarea{font-size:16px}.touch-device.no-hover .card:hover,.touch-device.no-hover .btn:hover,.touch-device.no-hover a:hover{transform:none;box-shadow:var(--box-shadow)}.touch-device .btn:active,.touch-device a:active,.touch-device button:active{transform:scale(0.98);opacity:0.8}.mobile-contact-hint{background-color:var(--color-background-alt);padding:var(--spacing-sm);border-radius:var(--border-radius);margin-top:var(--spacing-md);border-left:3px solid var(--color-secondary)}.full-height-mobile{height:100vh;height:calc(var(--vh, 1vh) * 100)}@media (max-width: 767px){*:focus{outline:3px solid var(--color-focus) !important;outline-offset:3px !important;border-radius:var(--border-radius)}.tag,.keyword-tag{min-height:32px;display:inline-flex;align-items:center;padding:var(--spacing-sm) var(--spacing-md)}.nav-link{min-height:56px;display:flex;align-items:center;font-size:var(--font-size-lg)}input,textarea,select{min-height:44px;padding:var(--spacing-md);font-size:16px}.btn{min-height:48px;padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-base)}h1{font-size:var(--font-size-2xl);line-height:1.2}h2{font-size:var(--font-size-xl);line-height:1.3}p{line-height:1.6}.container{padding-left:var(--spacing-md);padding-right:var(--spacing-md)}img{height:auto;max-width:100%}.profile-image{width:100px;height:100px}}@media screen and (orientation: landscape) and (max-height: 500px){.hero{padding:var(--spacing-lg) 0}.profile-summary{padding:var(--spacing-lg) 0}.mobile-nav{padding:var(--spacing-md)}}@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi){.profile-image,img{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}}@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}.card:hover{transform:none !important}}@media (prefers-color-scheme: dark){.mobile-device{color-scheme:dark}}
