/* psychoSocial — iOS Polish (ios_polish patch)
   Touch-only overrides to feel app-like on iOS, while preserving desktop.
*/

@media (hover: none) and (pointer: coarse){
  html{ -webkit-text-size-adjust: 100%; }
  a, button, [role="button"]{ -webkit-tap-highlight-color: transparent; }

  /* Tap targets — Apple min 44×44pt */
  .pageTag,
  .pageTagLink{ min-height:44px; }

  /* Neutralize sticky hover states on touch devices */
  .btn:hover{ background:rgba(255,255,255,.08); }
  .iconBtn:hover{ background:rgba(255,255,255,.08); }
  .pageTag:hover{ transform:none; }

  /* Light theme parity (keep base, remove hover-only deltas) */
  html[data-theme="light"] .btn:hover{ background:rgba(0,0,0,.03); }
  html[data-theme="light"] .iconBtn:hover{ background:rgba(0,0,0,.03); }

  /* Specific sticky hover offenders (light theme tags) */
  html[data-theme="light"] .pageTag.blogTag:hover,
  html[data-theme="light"] .pageTag.resourcesTag:hover{
    box-shadow:0 0 0 1px rgba(0,0,0,.06) inset;
    text-shadow:none;
    transform:none;
  }

  /* Gate-specific (defined inline in gate.html) */
  #splash .splashHint:hover{ background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.22); transform:translateX(-50%); }

  /* Tap targets — icon buttons only in primary action contexts */
  #psAppNav .iconBtn:not(.textBtn),
  .fixedHeader .iconBtn:not(.textBtn),
  .modal .iconBtn:not(.textBtn),
  .tagRow .iconBtn:not(.textBtn),
  .topbar .iconBtn:not(.textBtn),
  #homeDashDropToggle,
  .homeDashDropHead .iconBtn:not(.textBtn){
    min-width:44px;
    min-height:44px;
  }
}
