  /* phone-embed keyframes (from the app prototype) */
  @keyframes hw-screen-in { from { opacity: 0; transform: translateY(11px) scale(0.986); } to { opacity: 1; transform: translateY(0) scale(1); } }
  @keyframes hw-token { 0% { opacity: 0; transform: translate(0,0) scale(0.6); } 12% { opacity: 1; transform: translate(0,-8px) scale(1.14); } 72% { opacity: 1; } 100% { opacity: 0; transform: translate(var(--tx,0px),var(--ty,-180px)) scale(0.5); } }
  @keyframes hw-puff { 0% { transform: translateY(0) scale(0.5); opacity: 0.95; } 100% { transform: translateY(-22px) scale(1.7); opacity: 0; } }
  @keyframes hw-crane-sway { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
  @keyframes hw-scaffold-sway { 0%,100% { transform: rotate(-0.6deg); } 50% { transform: rotate(0.6deg); } }
  @keyframes hw-mote-drift { 0% { transform: translateY(0); opacity: 0; } 20% { opacity: 0.85; } 85% { opacity: 0.3; } 100% { transform: translateY(-26px); opacity: 0; } }

