/* Accessibility improvements shared by the main portfolio pages. */
:root { --focus-ring: var(--text); }
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
  outline: 3px solid var(--focus-ring) !important; outline-offset: 4px !important;
  box-shadow: 0 0 0 2px var(--bg) !important;
}
.skip-link { position:fixed; }
:where([id],a,button,input,select,textarea,summary,[tabindex]) { scroll-margin-top:130px; scroll-margin-bottom:32px; }
.accent-swatch { min-width:24px; min-height:24px; }
.accent-swatches { gap:4px; }
.a11y-tools { display:flex; justify-content:flex-end; padding-block:8px; }
.motion-toggle { font:inherit; font-size:.75rem; padding:7px 12px; min-height:32px; color:var(--text); background:var(--surface,var(--bg)); border:1px solid var(--text-mid); border-radius:999px; cursor:pointer; }
.motion-toggle[aria-pressed=true] { border-style:double; border-width:3px; }
.motion-toggle:disabled { opacity:1; cursor:default; }
.a11y-footer { border-top:1px solid var(--border); margin-top:24px; padding-top:20px; font-size:.8rem; color:var(--text-mid); }
.a11y-footer summary { color:var(--text); cursor:pointer; padding:12px 0; min-height:44px; }
.a11y-footer p { max-width:75ch; margin:0 0 14px; line-height:1.7; }
.a11y-footer a { color:var(--text); text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
.a11y-footer details { max-width:80ch; }
.a11y-footer h3 { margin:18px 0 8px; font-size:1rem; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.cmdk-close { color:var(--text); background:var(--bg); border:1px solid var(--text-mid); padding:8px; min-width:44px; min-height:44px; border-radius:6px; cursor:pointer; }
.preview-exit { display:block; margin:8px 0 0; min-height:36px; background:var(--bg); color:var(--text); border:1px solid var(--text-mid); border-radius:6px; padding:8px 12px; }
.contact-email { overflow-wrap:anywhere; }
.json-status { min-height:2.5em; }
.json-output { white-space:pre-wrap; overflow-wrap:anywhere; }
[data-motion=reduced] *, [data-motion=reduced] *::before, [data-motion=reduced] *::after {
 animation:none!important; transition:none!important; scroll-behavior:auto!important;
}
[data-motion=reduced] [data-reveal] { opacity:1!important; transform:none!important; filter:none!important; }
[data-motion=reduced] :is(.btn,.cap-card,.marquee-track,.ribbon-track,.atelier-copy) { transform:none!important; }
[data-motion=reduced] :is(.cursor-halo,.cursor-dot,.cursor-label,.ripple) { display:none!important; }
[data-motion=reduced]::before,[data-motion=reduced]::after { animation:none!important; display:none!important; }
@media(max-width:1240px) { .site-header { position:relative!important; top:auto!important; } .primary-nav ul { position:absolute; top:100%; } }
@media(max-width:620px) {
 .header-inner { min-width:0; }
 .a11y-tools { padding-inline:22px; }
 .footer-inner { flex-wrap:wrap; }
 .demo,.site,.contact-grid,.money-grid { min-width:0; }
 .demo-app,.demo-copy,.site-app,.site-copy { min-width:0; }
 .json-controls { flex-wrap:wrap; }
 .a11y-footer { font-size:.85rem; }
}
@media(forced-colors:active) {
 button,.btn,.accent-swatch,.primary-nav li>a { border:1px solid ButtonText; }
 .accent-swatch[aria-pressed=true] { outline:3px solid Highlight; }
}

.preview-exit[hidden] { display:none; }
[data-motion=reduced] .ribbon-track { animation-play-state:paused!important; }

.theme-toggle-icon { box-shadow:0 0 0 1px var(--text); }
