/* =============================================
   Azzi Studios — site-wide accessibility + UX polish
   Linked by every page. Covers:
   • Skip-to-content link
   • Focus-visible outlines
   • Cookie consent banner
   • prefers-reduced-motion fallbacks
   ============================================= */

/* ── Skip link — hidden until focused ─────────────────── */
.skip-link {
  position: fixed;
  top: 0; left: 50%;
  transform: translate(-50%, -120%);
  background: #111; color: #fff;
  font-family: 'Space Mono', monospace;
  font-size: 0.6rem; font-weight: 700; letter-spacing: 0.2em;
  text-transform: uppercase; text-decoration: none;
  padding: 0.85rem 1.4rem;
  z-index: 99999;
  transition: transform 0.2s ease;
}
.skip-link:focus,
.skip-link:focus-visible {
  transform: translate(-50%, 0.6rem);
  outline: none;
}

/* ── Focus-visible outlines (keyboard users only) ────── */
:focus-visible {
  outline: 2px solid #111;
  outline-offset: 3px;
  border-radius: 1px;
}
/* Suppress focus ring for pointer clicks (mouse / tap) */
:focus:not(:focus-visible) { outline: none; }

/* ── Cookie consent banner ───────────────────────────── */
.cookie-bar {
  position: fixed;
  bottom: 1rem; left: 50%;
  transform: translate(-50%, calc(100% + 2rem));
  width: min(560px, calc(100vw - 2rem));
  background: #fff; color: #111;
  border: 1px solid #111;
  padding: 1rem 1.25rem;
  display: flex; align-items: center; gap: 1.25rem; flex-wrap: wrap;
  z-index: 99998;
  font-family: 'Space Mono', monospace;
  transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 18px 50px -20px rgba(0, 0, 0, 0.25);
}
.cookie-bar.show { transform: translate(-50%, 0); }
.cookie-bar__copy {
  flex: 1 1 200px;
  font-size: 0.65rem; line-height: 1.5; letter-spacing: 0.02em;
  margin: 0;
}
.cookie-bar__btns { display: flex; gap: 0.5rem; }
.cookie-bar__btn {
  background: none; border: 1px solid #111; cursor: pointer;
  font-family: 'Space Mono', monospace;
  font-size: 0.55rem; font-weight: 700; letter-spacing: 0.18em;
  text-transform: uppercase; color: #111;
  padding: 0.5rem 0.9rem;
  transition: background 0.2s, color 0.2s;
}
.cookie-bar__btn--accept { background: #111; color: #fff; }
.cookie-bar__btn--accept:hover { opacity: 0.85; }
.cookie-bar__btn--decline:hover { background: #111; color: #fff; }

@media (max-width: 480px) {
  .cookie-bar {
    flex-direction: column; align-items: stretch;
    padding: 0.9rem 1rem;
  }
  .cookie-bar__btns { justify-content: flex-end; }
}

/* ── Reduced motion — kill all animations, scroll snap,
   transitions, and parallax for users who set the OS pref. */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
  html { scroll-snap-type: none !important; }
}

/* Visually-hidden — for screen-reader-only H1s that anchor page topic
   without competing with the visual hierarchy. */
.sr-only{
  position:absolute !important;
  width:1px;height:1px;
  margin:-1px;padding:0;
  overflow:hidden;
  clip:rect(0,0,0,0);
  clip-path:inset(50%);
  border:0;white-space:nowrap;
}
