.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{outline:2px solid #0067ff!important;outline-offset:2px!important;border-radius:4px}a:focus,button:focus{box-shadow:0 0 0 2px #0067ff,0 0 0 4px rgba(0,103,255,.2)!important}.bg-\\[\\\#0067FF\\]:focus,.bg-blue-500:focus,.bg-blue-600:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px hsla(0,0%,100%,.3)!important;outline:2px solid #fff!important}.skip-link{position:absolute;top:-40px;left:6px;background:#000;color:#fff;padding:8px;text-decoration:none;border-radius:0 0 4px 4px;z-index:1001;font-weight:700;transition:top .3s ease}.skip-link:focus{top:0}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.animate-bounce,.animate-pulse,.animate-spin{animation:none!important}}@media (prefers-contrast:high){.border-gray-200,.border-gray-300{border-color:#000!important;border-width:2px!important}.text-\\[\\\#6C757D\\]{color:#333!important}:focus{outline:3px solid #0067ff!important;outline-offset:3px!important}}@media (prefers-color-scheme:dark){.bg-white{background-color:#1a1a1a!important}.bg-white,.text-\\[\\\#323232\\]{color:#fff!important}.text-\\[\\\#6C757D\\]{color:#ccc!important}.border-gray-200{border-color:#444!important}}@media (pointer:coarse){[role=button],[tabindex]:not([tabindex="-1"]),a,button,input,select,textarea{min-height:48px;min-width:48px;display:inline-flex;align-items:center;justify-content:center;padding:12px 16px}.flex.gap-2{gap:16px!important}.flex.gap-3{gap:20px!important}#portfolio [role=group]{gap:12px!important}}@media (min-width:1px){.text-xs{font-size:max(.75rem,14px)!important}.text-sm{font-size:max(.875rem,14px)!important}}.accessible-text{line-height:1.6;letter-spacing:.1em;word-spacing:.16em}@keyframes accessible-pulse{0%,to{opacity:1}50%{opacity:.7}}.animate-pulse{animation:accessible-pulse 2s cubic-bezier(.4,0,.6,1) infinite}.error-text{color:#d32f2f;font-weight:500}.error-border{border-color:#d32f2f!important;border-width:2px!important}.success-text{color:#2e7d32;font-weight:500}.success-border{border-color:#2e7d32!important;border-width:2px!important}[aria-live]{speak:predictable}[aria-live=polite]{speak:normal}[aria-live=assertive]{speak:urgent}[aria-hidden=true]{display:inline!important;visibility:visible!important}.focus-trap{position:relative}.focus-trap:focus{outline:none}.keyboard-user :focus{outline:3px solid #0067ff!important;outline-offset:2px!important}.mouse-user :focus{outline:none!important;box-shadow:0 0 0 2px #0067ff!important}@media print{.sr-only{position:static!important;width:auto!important;height:auto!important;clip:auto!important;overflow:visible!important;white-space:normal!important}*{background:#fff!important;color:#000!important}a[href]:after{content:" (" attr(href) ")"}}#portfolio button[aria-pressed=true]{position:relative}#portfolio button[aria-pressed=true]:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px #0067ff!important}.loading-skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;animation:loading 2s infinite}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.announcement{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}[data-testid=portfolio-card]{position:relative}[data-testid=portfolio-card]:focus-within{outline:2px solid #0067ff;outline-offset:4px}[role=img][aria-label]{display:inline-block}.rating-container{display:inline-flex;align-items:center;gap:4px}.rating-container [aria-hidden=true]{pointer-events:none}#portfolio{scroll-margin-top:80px}#portfolio [role=group] button{position:relative;overflow:hidden}#portfolio [role=group] button:hover{transform:translateY(-1px);box-shadow:0 4px 8px rgba(0,103,255,.2)}#portfolio [role=group] button[aria-pressed=true]{position:relative}#portfolio [role=group] button[aria-pressed=true]:before{content:"✓";position:absolute;top:2px;right:4px;font-size:12px;line-height:1}[data-testid=portfolio-card]{transition:all .3s cubic-bezier(.4,0,.2,1)}[data-testid=portfolio-card]:hover{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}[data-testid=portfolio-card] h3 a:focus{color:#0067ff;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}[role=img] svg{flex-shrink:0;width:16px;height:16px}.loading-skeleton{position:relative;overflow:hidden;border-radius:8px}.loading-skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.6),transparent);transform:translateX(-100%);animation:shimmer 2s infinite}@keyframes shimmer{to{transform:translateX(100%)}}.validation-error{border:2px solid #dc3545;background-color:#fff5f5;color:#721c24}.validation-success{border:2px solid #16a085;background-color:#f0fff4;color:#065f46}.bg-\[\#0067FF\]:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px #0067ff!important;outline:none!important}video[role=presentation]{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}[aria-hidden=true]{speak:none;speak-as:never}@media (max-width:640px){#portfolio [role=group]{gap:8px}#portfolio [role=group] button{min-height:48px;min-width:88px;padding:14px 18px}[data-testid=portfolio-card] a{min-height:48px;min-width:48px}[role=img][aria-label]{min-height:44px;min-width:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px}}.text-\[\#6C757D\]{color:#495057!important}.text-xs{color:#343a40!important}@media (prefers-reduced-motion:no-preference){.hover\:scale-105:hover{transform:scale(1.02)}.hover\:-translate-y-2:hover{transform:translateY(-4px)}}[aria-live=polite],[role=status]{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}h1,h2,h3,h4,h5,h6{scroll-margin-top:1rem}a:not(.skip-link):not([role=button]){text-decoration-line:underline;text-decoration-style:solid;text-decoration-thickness:1px;text-underline-offset:2px}a:not(.skip-link):not([role=button]):focus,a:not(.skip-link):not([role=button]):hover{text-decoration-thickness:2px}