/* Exoticz SF — accessibility + consistency layer (2026-10-08). Loaded on staff + customer pages. Visual-only. */
/* visible keyboard focus everywhere (mouse/touch clicks don't show it) */
html body a:focus-visible, html body button:focus-visible, html body [role="button"]:focus-visible,
html body summary:focus-visible, html body [tabindex]:not([tabindex="-1"]):focus-visible {
  outline: 3px solid #9BE22D !important; outline-offset: 2px !important; box-shadow: 0 0 0 6px rgba(123, 63, 228, .45) !important;
}
html body input:focus-visible, html body select:focus-visible, html body textarea:focus-visible {
  outline: 3px solid rgba(123, 63, 228, .55) !important; outline-offset: 1px !important;
}
/* no double-tap zoom delay on controls (page zoom itself stays allowed) */
button, a, input, select, label, summary, [role="button"] { touch-action: manipulation; }
/* skip link */
.exz-skip { position: fixed; left: 12px; top: -60px; z-index: 2000; padding: 12px 16px; border-radius: 12px; background: #0B0612; color: #fff !important; font-weight: 800; text-decoration: none; transition: top .15s; }
.exz-skip:focus { top: 12px; }
/* toasts: one consistent shape — readable rounded card (not a pill blob) when text wraps; above dialogs */
body.noir .toast, body.noir .toast.bx-toast { border-radius: 16px !important; line-height: 1.35; text-align: left; z-index: 1100 !important; max-width: min(calc(100vw - 32px), 460px) !important; }
body.noir .toast .bx-ti { align-self: flex-start; }
/* reduced motion: stop decorative transitions/animations */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}
/* low-end devices (html.exz-lite from exz-perf.js): no decorative layers even if a script already added them */
html.exz-lite .exz-waves, html.exz-lite canvas.exz-smoke { display: none !important; }
