/* ==========================================================================
   Neighborhood Cutz  ·  neighborhoodcutz.com

   Design and development by NORTH CODE LLC
   https://northcodellc.com  ·  hello@northcodellc.com

   Copyright (c) 2026 North Code LLC. All rights reserved.
   Original work, licensed to Neighborhood Cutz for use on this domain.
   Not to be copied, republished or adapted for another site without
   written consent.
   ========================================================================== */

/* EFFECTS
   Custom cursor, the page transition panel, and the mobile refinements,
   which must load last so they win the cascade. */

/* ============================================================
   15. CUSTOM CURSOR
   ============================================================ */
.cursor { position: fixed; top: 0; left: 0; z-index: 200; pointer-events: none; }
.cursor-bubble {
  display: inline-flex; align-items: center; gap: .5em;
  background: var(--c-brand); color: #fff; padding: .5em .7em;
  white-space: nowrap; font-size: var(--t-tag); letter-spacing: .06em;
  opacity: 0; transform: scale(0);
  transition: transform .15s cubic-bezier(.625,.05,0,1), opacity .15s cubic-bezier(.625,.05,0,1);
}
[data-cursor="active"] .cursor-bubble { opacity: 1; transform: scale(1); }
@media (hover: hover) and (pointer: fine) { [data-cursor-hover] { cursor: none; } }
@media (hover: none), (pointer: coarse) { .cursor { display: none; } }
/* ============================================================
   16. PAGE TRANSITION
   ============================================================ */
.page-content { opacity: 0; visibility: hidden; }
.page-transition {
  position: fixed; inset: 0; z-index: 9999; pointer-events: none;
  background: var(--c-brand); color: #fff; display: grid; place-items: center;
  transform: translateY(0%); will-change: transform;
}
/* ============================================================
   17. MOBILE REFINEMENTS
   ============================================================ */
@media (max-width: 767px) {
  /* Justified type gets ugly rivers at narrow widths. Go left. */
  .h-lg, .h-md, .body-mono { text-align: left; }
  .h-lg, .h-md { letter-spacing: -.01em; }

  .footer-list a, .link-arrow { min-height: 2.75em; display: inline-flex; align-items: center; }
  .hero-bottom { bottom: 1.25em; }
  .section-head { flex-direction: column; align-items: flex-start; gap: .5em; }
}

body.is-locked { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .page-content { opacity: 1 !important; visibility: visible !important; }
}
