/* ================================================= */
/* HLF R3AL — CLEAN BASE + TICK3T + LANDING SENTINEL */
/* (NO DUPES, NO GLOBAL NUKES)                       */
/* ================================================= */

/* ---------- SAFE “no blue tap flash” (PUBLIC ONLY) ---------- */
/* Target only clickable UI (NOT global * and NOT selection) */
a, a *, .image-link, .image-link *, .tix-show, .tix-show *{
  -webkit-tap-highlight-color: rgba(0,0,0,0);
  -webkit-touch-callout: none;
}

a, a:visited, a:hover, a:active{
  color: inherit;
  text-decoration: none;
  outline: none;
}

/* Keep keyboard focus accessible but invisible-looking */
a:focus, a:focus-visible,
.image-link:focus, .image-link:focus-visible{
  outline: none;
  box-shadow: none;
}

/* IMPORTANT: do NOT kill ::selection or everything breaks while editing */
/* IMPORTANT: do NOT use *{ -webkit-tap-highlight-color: ... !important } */


/* ================================================= */
/* TICK3T                                             */
/* ================================================= */

.tix-wrap{
  font-family: Helvetica, Arial, sans-serif;
  margin: 0;
}

.tix-nav{ margin: 12px 0; }
.tix-spacer{ height: 40px; }

.tix-artist{
  width: min(92vw, 720px);
  margin: 0 auto;
  text-align: center;
}

.tix-artist-name h2{
  margin: 0;
  font-size: clamp(34px, 5.2vw, 64px);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #E6E6E6;
  line-height: 0.96;
}

.tix-divider{
  width: min(88vw, 560px);
  margin: 22px auto;
  border-top: 1px solid rgba(255,255,255,0.18);
  opacity: 0.45;
}

.tix-show{
  margin: 18px 0 22px;
  padding: 18px 16px 20px;
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 10px;
  background: rgba(0,0,0,0.18);
  backdrop-filter: blur(2px);
  transition: transform .08s ease, opacity .08s ease;
}

.tix-show:active{
  transform: scale(0.992);
  opacity: .9;
}

.tix-show h1{
  margin: 0 0 12px;
  font-size: clamp(14px, 2.2vw, 18px);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #D6D6D6;
  line-height: 1.18;
}

.tix-show a.image-link{ display: inline-block; }
.tix-show a.image-link img{
  display:block;
  transform: translateZ(0);
}

.tix-footer{ margin: 20px 0 0; }


/* ================================================= */
/* LANDING — SENTINEL SPIN                            */
/* ================================================= */

.sentinel-wrap{
  text-align:center;
  margin:40px 0;
}

.sentinel{ display:inline-block; }

.sentinel img{
  display:block;
  transform-origin:50% 50%;
  animation: sentinelSpin 3.6s linear infinite;
  will-change:transform;
}

@keyframes sentinelSpin{
  from{transform:rotate(0deg);}
  to{transform:rotate(360deg);}
}

.sentinel img{
  filter: drop-shadow(0 6px 18px rgba(0,0,0,0.35));
}
/* ================================================= */
/* LEDG3R — HLF R3AL ETCHED CONCRETE TYPE SYSTEM     */
/* ================================================= */

/* ---------- FONT ---------- */
/* Canela first, safe fallbacks if not loaded */

.ledger-wrap,
.ledger-wrap *{
  font-family:
    "Canela",
    "Canela Text",
    "Canela Deck",
    "Cormorant Garamond",
    Georgia,
    serif !important;
}


/* ---------- CORE SIZE / SPACING ---------- */

.ledger-wrap{
  font-size: 34px;
  font-weight: 600;
  letter-spacing: -0.015em;
  line-height: 1.42;

  color: rgba(232,236,236,0.94);
}


/* ---------- ETCHED / ENGRAVED EFFECT ---------- */

.ledger-wrap *{
  text-shadow:
    0 2px 0 rgba(0,0,0,0.70),   /* carve depth */
    0 -1px 0 rgba(255,255,255,0.05); /* highlight edge */
}


/* heavier carve for headings */
.ledger-wrap h1,
.ledger-wrap h2{
  font-weight: 600 !important;

  text-shadow:
    0 3px 0 rgba(0,0,0,0.75),
    0 -1px 0 rgba(255,255,255,0.08);
}


/* ---------- ICONS SHOULD NOT USE CANELA ---------- */

.ledger-icons,
.ledger-icons *{
  font-family: "Social Icons", "icons", sans-serif !important;
  text-shadow: none !important;
  letter-spacing: 0 !important;
}
/* ================================
   BEN MARC – "Pro Dock" Revamp
   Targets ONLY the bottom gallery (gid="4")
   ================================ */

.image-gallery[gid="4"]{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px 18px;            /* row gap, column gap */
  max-width: 980px;
  margin: 36px auto 0;
  padding: 18px 16px;
  border-radius: 18px;

  /* subtle panel vibe */
  background: rgba(0,0,0,0.06);
  backdrop-filter: blur(6px);
}

/* Normalize every child (images + links) */
.image-gallery[gid="4"] > *{
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Normalize images */
.image-gallery[gid="4"] img{
  width: 52px;               /* consistent button size */
  height: 52px;
  object-fit: contain;
  border-radius: 14px;

  /* clean shadow — one system */
  filter: drop-shadow(0 10px 18px rgba(0,0,0,0.18));
  transition: transform .18s ease, filter .18s ease, opacity .18s ease;
  will-change: transform;
}

/* Hover / tap states = intentional */
.image-gallery[gid="4"] a:hover img{
  transform: translateY(-2px) scale(1.03);
  filter: drop-shadow(0 14px 26px rgba(0,0,0,0.24));
}

.image-gallery[gid="4"] a:active img{
  transform: translateY(0px) scale(0.98);
  filter: drop-shadow(0 8px 14px rgba(0,0,0,0.20));
}

/* Make the big CTA (image 20 in your list) a hero button */
.image-gallery[gid="4"] > :nth-child(1) img{
  width: 86px;
  height: 86px;
  border-radius: 20px;
  filter: drop-shadow(0 18px 36px rgba(0,0,0,0.24));
}

/* ================================
   Controlled Motion (ONLY 3 items)
   7 = image 14 (ultra slow rotate)
   17 = image 28 (slow rotate)
   18 = image 5  (slow breathe)
   ================================ */

.image-gallery[gid="4"] > :nth-child(7) img{
  animation: spinUltra 90s linear infinite;
  transform-origin: center;
}

.image-gallery[gid="4"] > :nth-child(17) img{
  animation: spinSlow 32s linear infinite;
  transform-origin: center;
}

.image-gallery[gid="4"] > :nth-child(18) img{
  animation: breathe 6.5s ease-in-out infinite;
}

/* Keyframes */
@keyframes spinSlow{
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

@keyframes spinUltra{
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

@keyframes breathe{
  0%   { opacity: .55; }
  50%  { opacity: 1; }
  100% { opacity: .55; }
}

/* Mobile: smaller dock */
@media (max-width: 520px){
  .image-gallery[gid="4"]{
    gap: 10px 12px;
    padding: 14px 12px;
    margin-top: 22px;
  }

  .image-gallery[gid="4"] img{
    width: 44px;
    height: 44px;
    border-radius: 12px;
  }

  .image-gallery[gid="4"] > :nth-child(1) img{
    width: 72px;
    height: 72px;
    border-radius: 18px;
  }
}

/* =========
   IMAGE 28 – slow rotation
   (middle nav icon / LANDING)
   ========= */

.image-gallery a:nth-child(2) img {
  animation: ledgerSpin 28s linear infinite;
  transform-origin: center;
  will-change: transform;
}

@keyframes ledgerSpin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
