/* Text selection in studio ink — detail-level consistency. */
::selection { background: #111; color: #fff; }
::-moz-selection { background: #111; color: #fff; }

/* =============================================
   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: 1.25rem; left: 1.25rem;
  transform: translateY(calc(100% + 2.5rem));
  width: min(400px, calc(100vw - 2.5rem));
  background: #fff; color: #111;
  border: 1px solid rgba(17, 17, 17, 0.18);
  padding: 1.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.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.cookie-bar.show { transform: translateY(0); }
.cookie-bar__copy {
  flex: 1 1 180px;
  font-size: 0.58rem; line-height: 1.7; letter-spacing: 0.03em;
  color: #555;
  margin: 0;
}
.cookie-bar__btns { display: flex; gap: 1.1rem; align-items: center; }
.cookie-bar__btn {
  background: none; border: none; cursor: pointer;
  font-family: 'Space Mono', monospace;
  font-size: 0.55rem; font-weight: 700; letter-spacing: 0.2em;
  text-transform: uppercase;
  padding: 0.2rem 0;
  transition: opacity 0.2s;
}
.cookie-bar__btn--decline { color: rgba(17, 17, 17, 0.45); }
.cookie-bar__btn--decline:hover { color: #111; }
.cookie-bar__btn--accept {
  color: #111;
  border-bottom: 1px solid #111;
}
.cookie-bar__btn--accept:hover { opacity: 0.5; }
.cookie-bar__btn:focus-visible { outline: 1px solid #111; outline-offset: 3px; }

@media (max-width: 480px) {
  .cookie-bar {
    left: 1rem; bottom: 1rem;
    width: calc(100vw - 2rem);
    padding: 1rem 1.1rem;
  }
  .cookie-bar__btns { justify-content: flex-end; width: 100%; }
}

/* ── 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;
}
